feat: harden crawler/parser pipeline and expand plugin coverage#8
feat: harden crawler/parser pipeline and expand plugin coverage#8
Conversation
|
@copilot review |
|
@nsalvacao I've opened a new pull request, #9, to work on those changes. Once the pull request is ready, I'll request review from you. |
Summary of ChangesHello @nsalvacao, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the robustness and coverage of the CLI crawler and plugin generation pipeline. It addresses several edge cases in help text parsing, improves the reliability of version detection, and introduces a new tool for auditing configuration consistency. The changes also expand the range of CLIs for which plugins can be generated, ensuring a more comprehensive and accurate set of reference materials. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This is a substantial and impressive pull request that significantly hardens the crawler and generator, expands parser coverage, and improves the overall quality and maintainability of the project. The introduction of thread-safety in the crawler, robust version detection, and safety guards against executing mutating commands are excellent improvements. The expanded parser coverage for pnpm and GNU-style options is a great addition. I also appreciate the new config-audit tool for maintaining configuration hygiene and the move to canonical CLI identities. The plugin generator has been greatly enhanced with semantic keyword generation and a more user-friendly progressive disclosure format. The extensive suite of new tests accompanying these features demonstrates a strong commitment to quality. The code is well-structured and the changes are well-implemented. I only found a couple of minor typos in the documentation files. Fantastic work!
| * Run `cli-crawler <tool>` -> `generate-plugin <tool>`. | ||
| * Verify the output manually in D:\GitHub\cli-plugins\output and D:\GitHub\cli-plugins\plugins to prove the solution works in the wild. | ||
| 8. **MARK TASK**: Check off `[x]` in `specs/001-cli-plugins-base/tasks.md` (or relevant task file). | ||
| * Verify the quality of the output and the generated plugin against the main goal of the project. If the quality is not good, go back to step 5 ou defer creating new improvement tasks in `specs/001-cli-plugins-base/tasks.md` and `CLAUDE.local.md`. |
There was a problem hiding this comment.
There's a typo here. 'ou' should be 'or'.
| * Verify the quality of the output and the generated plugin against the main goal of the project. If the quality is not good, go back to step 5 ou defer creating new improvement tasks in `specs/001-cli-plugins-base/tasks.md` and `CLAUDE.local.md`. | |
| * Verify the quality of the output and the generated plugin against the main goal of the project. If the quality is not good, go back to step 5 or defer creating new improvement tasks in `specs/001-cli-plugins-base/tasks.md` and `CLAUDE.local.md`. |
| - [x] T005 [P] Setup Pytest for testing in `pyproject.toml` — add `[tool.pytest.ini_options]` with testpaths, markers for unit/integration/e2e | ||
| - [x] T032 [MOVED from Phase 6] Create CI/CD pipeline: `.github/workflows/ci.yml` — pytest matrix on Python 3.11+3.12, ruff lint, black check; runs on push and PR; add CI badge to `README.md` *(constitution §CI/CD Automatizado; execution-plan A7)* | ||
| - [x] T066 [P] [NEW] Add `__version__` to package via `src/__init__.py` sourced from `pyproject.toml`; add `--version` flag to `cli-crawler` and `generate-plugin` entry points *(evaluation-results A5, L3)* | ||
| - [x] **T001 Createeeee project directories** - `src/crawler`, `src/generator`, `src/config`, `src/lib`, `tests/unit`, `tests/integration`, `tests/end_to_end` — decision: migrate existing `crawler/` → `src/crawler/` (preserve git history with `git mv`) |
There was a problem hiding this comment.
There's a typo in the task title. 'Createeeee' should be 'Create'.
| - [x] **T001 Createeeee project directories** - `src/crawler`, `src/generator`, `src/config`, `src/lib`, `tests/unit`, `tests/integration`, `tests/end_to_end` — decision: migrate existing `crawler/` → `src/crawler/` (preserve git history with `git mv`) | |
| - [x] **T001 Create project directories** - `src/crawler`, `src/generator`, `src/config`, `src/lib`, `tests/unit`, `tests/integration`, `tests/end_to_end` — decision: migrate existing `crawler/` → `src/crawler/` (preserve git history with `git mv`) |
Summary
git.exe->git) for version matching and plugin slug generationconfig-audit) with tests and README policy/runbook updatesplugins/cli-jqlayoutValidation
ruff check ..venv-wsl/bin/python -m pytest tests/(206 passed)Commits