@agents-inc/cli 0.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +462 -0
- package/LICENSE +21 -0
- package/README.md +179 -0
- package/config/skills-matrix.yaml +926 -0
- package/config/stacks.yaml +2186 -0
- package/dist/chunk-3ZOIOVKT.js +365 -0
- package/dist/chunk-3ZOIOVKT.js.map +1 -0
- package/dist/chunk-4RAY5AOI.js +78 -0
- package/dist/chunk-4RAY5AOI.js.map +1 -0
- package/dist/chunk-5PIKNCZX.js +234 -0
- package/dist/chunk-5PIKNCZX.js.map +1 -0
- package/dist/chunk-66UDJBF6.js +96 -0
- package/dist/chunk-66UDJBF6.js.map +1 -0
- package/dist/chunk-7SOPVGDV.js +24 -0
- package/dist/chunk-7SOPVGDV.js.map +1 -0
- package/dist/chunk-A27LOC4Z.js +95 -0
- package/dist/chunk-A27LOC4Z.js.map +1 -0
- package/dist/chunk-B2UBHA66.js +301 -0
- package/dist/chunk-B2UBHA66.js.map +1 -0
- package/dist/chunk-BZN2Z5P7.js +882 -0
- package/dist/chunk-BZN2Z5P7.js.map +1 -0
- package/dist/chunk-BZQBJP34.js +186 -0
- package/dist/chunk-BZQBJP34.js.map +1 -0
- package/dist/chunk-DC5AK3LW.js +105 -0
- package/dist/chunk-DC5AK3LW.js.map +1 -0
- package/dist/chunk-DHET7RCE.js +50 -0
- package/dist/chunk-DHET7RCE.js.map +1 -0
- package/dist/chunk-EMJ2ZKS7.js +346 -0
- package/dist/chunk-EMJ2ZKS7.js.map +1 -0
- package/dist/chunk-FJQRVFMB.js +48 -0
- package/dist/chunk-FJQRVFMB.js.map +1 -0
- package/dist/chunk-FZGYSLJL.js +85 -0
- package/dist/chunk-FZGYSLJL.js.map +1 -0
- package/dist/chunk-H566H3MQ.js +87 -0
- package/dist/chunk-H566H3MQ.js.map +1 -0
- package/dist/chunk-IYG2LAIM.js +90 -0
- package/dist/chunk-IYG2LAIM.js.map +1 -0
- package/dist/chunk-IZZ4IIEG.js +29 -0
- package/dist/chunk-IZZ4IIEG.js.map +1 -0
- package/dist/chunk-JMVWYAHT.js +63 -0
- package/dist/chunk-JMVWYAHT.js.map +1 -0
- package/dist/chunk-LAPCUV4D.js +191 -0
- package/dist/chunk-LAPCUV4D.js.map +1 -0
- package/dist/chunk-LGUI3PMO.js +109 -0
- package/dist/chunk-LGUI3PMO.js.map +1 -0
- package/dist/chunk-MM7NK5N2.js +4542 -0
- package/dist/chunk-MM7NK5N2.js.map +1 -0
- package/dist/chunk-N6S7ZRIL.js +31 -0
- package/dist/chunk-N6S7ZRIL.js.map +1 -0
- package/dist/chunk-O4D67NN7.js +24 -0
- package/dist/chunk-O4D67NN7.js.map +1 -0
- package/dist/chunk-ODUOU55D.js +56 -0
- package/dist/chunk-ODUOU55D.js.map +1 -0
- package/dist/chunk-OGJIZ6QH.js +497 -0
- package/dist/chunk-OGJIZ6QH.js.map +1 -0
- package/dist/chunk-OMV7TLWD.js +340 -0
- package/dist/chunk-OMV7TLWD.js.map +1 -0
- package/dist/chunk-PBEHPQLK.js +146 -0
- package/dist/chunk-PBEHPQLK.js.map +1 -0
- package/dist/chunk-QPTOIZAT.js +32 -0
- package/dist/chunk-QPTOIZAT.js.map +1 -0
- package/dist/chunk-R3XFQKPG.js +111 -0
- package/dist/chunk-R3XFQKPG.js.map +1 -0
- package/dist/chunk-R74PZWQS.js +69 -0
- package/dist/chunk-R74PZWQS.js.map +1 -0
- package/dist/chunk-SO22IQPY.js +45 -0
- package/dist/chunk-SO22IQPY.js.map +1 -0
- package/dist/chunk-T4EXUIBY.js +19 -0
- package/dist/chunk-T4EXUIBY.js.map +1 -0
- package/dist/chunk-U3IGFMCY.js +31 -0
- package/dist/chunk-U3IGFMCY.js.map +1 -0
- package/dist/chunk-UICL22RT.js +318 -0
- package/dist/chunk-UICL22RT.js.map +1 -0
- package/dist/chunk-UX2H2K2G.js +183 -0
- package/dist/chunk-UX2H2K2G.js.map +1 -0
- package/dist/chunk-W2ZSCZ2U.js +93 -0
- package/dist/chunk-W2ZSCZ2U.js.map +1 -0
- package/dist/chunk-WEUVWHMA.js +189 -0
- package/dist/chunk-WEUVWHMA.js.map +1 -0
- package/dist/chunk-XY3XDVMI.js +15599 -0
- package/dist/chunk-XY3XDVMI.js.map +1 -0
- package/dist/chunk-YND42IXK.js +233 -0
- package/dist/chunk-YND42IXK.js.map +1 -0
- package/dist/chunk-YZTWZVGX.js +41 -0
- package/dist/chunk-YZTWZVGX.js.map +1 -0
- package/dist/chunk-Z4TWOP3H.js +81 -0
- package/dist/chunk-Z4TWOP3H.js.map +1 -0
- package/dist/cli/defaults/agent-mappings.yaml +271 -0
- package/dist/commands/build/marketplace.js +252 -0
- package/dist/commands/build/marketplace.js.map +1 -0
- package/dist/commands/build/plugins.js +114 -0
- package/dist/commands/build/plugins.js.map +1 -0
- package/dist/commands/build/stack.js +153 -0
- package/dist/commands/build/stack.js.map +1 -0
- package/dist/commands/compile.js +354 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/config/get.js +61 -0
- package/dist/commands/config/get.js.map +1 -0
- package/dist/commands/config/index.js +23 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/config/path.js +34 -0
- package/dist/commands/config/path.js.map +1 -0
- package/dist/commands/config/set-project.js +61 -0
- package/dist/commands/config/set-project.js.map +1 -0
- package/dist/commands/config/show.js +14 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/config/unset-project.js +57 -0
- package/dist/commands/config/unset-project.js.map +1 -0
- package/dist/commands/diff.js +742 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/doctor.js +370 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/edit.js +301 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/eject.js +262 -0
- package/dist/commands/eject.js.map +1 -0
- package/dist/commands/import/skill.js +361 -0
- package/dist/commands/import/skill.js.map +1 -0
- package/dist/commands/info.js +217 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.js +443 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.js +49 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/new/agent.js +224 -0
- package/dist/commands/new/agent.js.map +1 -0
- package/dist/commands/new/skill.js +199 -0
- package/dist/commands/new/skill.js.map +1 -0
- package/dist/commands/outdated.js +176 -0
- package/dist/commands/outdated.js.map +1 -0
- package/dist/commands/search.js +288 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/uninstall.js +302 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.js +304 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/validate.js +389 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/version/bump.js +79 -0
- package/dist/commands/version/bump.js.map +1 -0
- package/dist/commands/version/index.js +54 -0
- package/dist/commands/version/index.js.map +1 -0
- package/dist/commands/version/set.js +86 -0
- package/dist/commands/version/set.js.map +1 -0
- package/dist/commands/version/show.js +54 -0
- package/dist/commands/version/show.js.map +1 -0
- package/dist/components/common/confirm.js +9 -0
- package/dist/components/common/confirm.js.map +1 -0
- package/dist/components/common/confirm.test.js +203 -0
- package/dist/components/common/confirm.test.js.map +1 -0
- package/dist/components/common/message.js +20 -0
- package/dist/components/common/message.js.map +1 -0
- package/dist/components/common/spinner.js +14 -0
- package/dist/components/common/spinner.js.map +1 -0
- package/dist/components/skill-search/skill-search.js +12 -0
- package/dist/components/skill-search/skill-search.js.map +1 -0
- package/dist/components/wizard/category-grid.js +11 -0
- package/dist/components/wizard/category-grid.js.map +1 -0
- package/dist/components/wizard/category-grid.test.js +997 -0
- package/dist/components/wizard/category-grid.test.js.map +1 -0
- package/dist/components/wizard/domain-selection.js +14 -0
- package/dist/components/wizard/domain-selection.js.map +1 -0
- package/dist/components/wizard/help-modal.js +10 -0
- package/dist/components/wizard/help-modal.js.map +1 -0
- package/dist/components/wizard/menu-item.js +10 -0
- package/dist/components/wizard/menu-item.js.map +1 -0
- package/dist/components/wizard/search-modal.js +11 -0
- package/dist/components/wizard/search-modal.js.map +1 -0
- package/dist/components/wizard/search-modal.test.js +218 -0
- package/dist/components/wizard/search-modal.test.js.map +1 -0
- package/dist/components/wizard/section-progress.js +10 -0
- package/dist/components/wizard/section-progress.js.map +1 -0
- package/dist/components/wizard/section-progress.test.js +192 -0
- package/dist/components/wizard/section-progress.test.js.map +1 -0
- package/dist/components/wizard/source-grid.js +14 -0
- package/dist/components/wizard/source-grid.js.map +1 -0
- package/dist/components/wizard/source-grid.test.js +504 -0
- package/dist/components/wizard/source-grid.test.js.map +1 -0
- package/dist/components/wizard/stack-selection.js +17 -0
- package/dist/components/wizard/stack-selection.js.map +1 -0
- package/dist/components/wizard/step-build.js +17 -0
- package/dist/components/wizard/step-build.js.map +1 -0
- package/dist/components/wizard/step-build.test.js +600 -0
- package/dist/components/wizard/step-build.test.js.map +1 -0
- package/dist/components/wizard/step-confirm.js +12 -0
- package/dist/components/wizard/step-confirm.js.map +1 -0
- package/dist/components/wizard/step-confirm.test.js +366 -0
- package/dist/components/wizard/step-confirm.test.js.map +1 -0
- package/dist/components/wizard/step-refine.js +10 -0
- package/dist/components/wizard/step-refine.js.map +1 -0
- package/dist/components/wizard/step-refine.test.js +237 -0
- package/dist/components/wizard/step-refine.test.js.map +1 -0
- package/dist/components/wizard/step-settings.js +17 -0
- package/dist/components/wizard/step-settings.js.map +1 -0
- package/dist/components/wizard/step-settings.test.js +243 -0
- package/dist/components/wizard/step-settings.test.js.map +1 -0
- package/dist/components/wizard/step-sources.js +20 -0
- package/dist/components/wizard/step-sources.js.map +1 -0
- package/dist/components/wizard/step-sources.test.js +294 -0
- package/dist/components/wizard/step-sources.test.js.map +1 -0
- package/dist/components/wizard/step-stack.js +19 -0
- package/dist/components/wizard/step-stack.js.map +1 -0
- package/dist/components/wizard/step-stack.test.js +357 -0
- package/dist/components/wizard/step-stack.test.js.map +1 -0
- package/dist/components/wizard/view-title.js +10 -0
- package/dist/components/wizard/view-title.js.map +1 -0
- package/dist/components/wizard/wizard-layout.js +16 -0
- package/dist/components/wizard/wizard-layout.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.js +14 -0
- package/dist/components/wizard/wizard-tabs.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.test.js +294 -0
- package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
- package/dist/components/wizard/wizard.js +35 -0
- package/dist/components/wizard/wizard.js.map +1 -0
- package/dist/config/skills-matrix.yaml +926 -0
- package/dist/config/stacks.yaml +2186 -0
- package/dist/hooks/init.js +40 -0
- package/dist/hooks/init.js.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/magic-string.es-RGXYGAW3.js +1316 -0
- package/dist/magic-string.es-RGXYGAW3.js.map +1 -0
- package/dist/source-manager-SBPPLOQQ.js +16 -0
- package/dist/source-manager-SBPPLOQQ.js.map +1 -0
- package/dist/src/agents/_templates/agent.liquid +140 -0
- package/dist/src/agents/developer/api-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/api-developer/critical-reminders.md +23 -0
- package/dist/src/agents/developer/api-developer/critical-requirements.md +11 -0
- package/dist/src/agents/developer/api-developer/examples.md +72 -0
- package/dist/src/agents/developer/api-developer/intro.md +22 -0
- package/dist/src/agents/developer/api-developer/output-format.md +359 -0
- package/dist/src/agents/developer/api-developer/workflow.md +471 -0
- package/dist/src/agents/developer/cli-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/cli-developer/critical-reminders.md +28 -0
- package/dist/src/agents/developer/cli-developer/critical-requirements.md +15 -0
- package/dist/src/agents/developer/cli-developer/examples.md +68 -0
- package/dist/src/agents/developer/cli-developer/intro.md +23 -0
- package/dist/src/agents/developer/cli-developer/output-format.md +216 -0
- package/dist/src/agents/developer/cli-developer/workflow.md +509 -0
- package/dist/src/agents/developer/web-architecture/agent.yaml +12 -0
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +27 -0
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +35 -0
- package/dist/src/agents/developer/web-architecture/examples.md +187 -0
- package/dist/src/agents/developer/web-architecture/intro.md +35 -0
- package/dist/src/agents/developer/web-architecture/output-format.md +261 -0
- package/dist/src/agents/developer/web-architecture/workflow.md +599 -0
- package/dist/src/agents/developer/web-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/web-developer/critical-reminders.md +17 -0
- package/dist/src/agents/developer/web-developer/critical-requirements.md +15 -0
- package/dist/src/agents/developer/web-developer/examples.md +109 -0
- package/dist/src/agents/developer/web-developer/intro.md +5 -0
- package/dist/src/agents/developer/web-developer/output-format.md +213 -0
- package/dist/src/agents/developer/web-developer/workflow.md +459 -0
- package/dist/src/agents/meta/agent-summoner/agent.yaml +12 -0
- package/dist/src/agents/meta/agent-summoner/critical-reminders.md +31 -0
- package/dist/src/agents/meta/agent-summoner/critical-requirements.md +27 -0
- package/dist/src/agents/meta/agent-summoner/examples.md +176 -0
- package/dist/src/agents/meta/agent-summoner/intro.md +9 -0
- package/dist/src/agents/meta/agent-summoner/output-format.md +115 -0
- package/dist/src/agents/meta/agent-summoner/workflow.md +1540 -0
- package/dist/src/agents/meta/documentor/agent.yaml +11 -0
- package/dist/src/agents/meta/documentor/critical-reminders.md +23 -0
- package/dist/src/agents/meta/documentor/critical-requirements.md +13 -0
- package/dist/src/agents/meta/documentor/examples.md +147 -0
- package/dist/src/agents/meta/documentor/intro.md +11 -0
- package/dist/src/agents/meta/documentor/output-format.md +237 -0
- package/dist/src/agents/meta/documentor/workflow.md +1271 -0
- package/dist/src/agents/meta/skill-summoner/agent.yaml +13 -0
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +73 -0
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/dist/src/agents/meta/skill-summoner/examples.md +116 -0
- package/dist/src/agents/meta/skill-summoner/intro.md +5 -0
- package/dist/src/agents/meta/skill-summoner/output-format.md +279 -0
- package/dist/src/agents/meta/skill-summoner/workflow.md +1485 -0
- package/dist/src/agents/migration/cli-migrator/agent.yaml +12 -0
- package/dist/src/agents/migration/cli-migrator/anti-patterns.md +158 -0
- package/dist/src/agents/migration/cli-migrator/conversion-mappings.md +63 -0
- package/dist/src/agents/migration/cli-migrator/critical-reminders.md +17 -0
- package/dist/src/agents/migration/cli-migrator/critical-requirements.md +13 -0
- package/dist/src/agents/migration/cli-migrator/intro.md +15 -0
- package/dist/src/agents/migration/cli-migrator/output-format.md +164 -0
- package/dist/src/agents/migration/cli-migrator/workflow.md +230 -0
- package/dist/src/agents/pattern/pattern-scout/agent.yaml +10 -0
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +58 -0
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +17 -0
- package/dist/src/agents/pattern/pattern-scout/examples.md +93 -0
- package/dist/src/agents/pattern/pattern-scout/intro.md +3 -0
- package/dist/src/agents/pattern/pattern-scout/output-format.md +196 -0
- package/dist/src/agents/pattern/pattern-scout/workflow.md +1901 -0
- package/dist/src/agents/pattern/web-pattern-critique/agent.yaml +12 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +13 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +11 -0
- package/dist/src/agents/pattern/web-pattern-critique/examples.md +56 -0
- package/dist/src/agents/pattern/web-pattern-critique/intro.md +5 -0
- package/dist/src/agents/pattern/web-pattern-critique/output-format.md +257 -0
- package/dist/src/agents/pattern/web-pattern-critique/workflow.md +674 -0
- package/dist/src/agents/planning/web-pm/agent.yaml +12 -0
- package/dist/src/agents/planning/web-pm/critical-reminders.md +21 -0
- package/dist/src/agents/planning/web-pm/critical-requirements.md +17 -0
- package/dist/src/agents/planning/web-pm/examples.md +85 -0
- package/dist/src/agents/planning/web-pm/intro.md +3 -0
- package/dist/src/agents/planning/web-pm/output-format.md +228 -0
- package/dist/src/agents/planning/web-pm/workflow.md +393 -0
- package/dist/src/agents/researcher/api-researcher/agent.yaml +10 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/dist/src/agents/researcher/api-researcher/critical-requirements.md +13 -0
- package/dist/src/agents/researcher/api-researcher/examples.md +116 -0
- package/dist/src/agents/researcher/api-researcher/intro.md +32 -0
- package/dist/src/agents/researcher/api-researcher/output-format.md +135 -0
- package/dist/src/agents/researcher/api-researcher/workflow.md +261 -0
- package/dist/src/agents/researcher/web-researcher/agent.yaml +10 -0
- package/dist/src/agents/researcher/web-researcher/critical-reminders.md +23 -0
- package/dist/src/agents/researcher/web-researcher/critical-requirements.md +11 -0
- package/dist/src/agents/researcher/web-researcher/examples.md +126 -0
- package/dist/src/agents/researcher/web-researcher/intro.md +31 -0
- package/dist/src/agents/researcher/web-researcher/output-format.md +112 -0
- package/dist/src/agents/researcher/web-researcher/workflow.md +322 -0
- package/dist/src/agents/reviewer/api-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +16 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +13 -0
- package/dist/src/agents/reviewer/api-reviewer/examples.md +54 -0
- package/dist/src/agents/reviewer/api-reviewer/intro.md +22 -0
- package/dist/src/agents/reviewer/api-reviewer/output-format.md +288 -0
- package/dist/src/agents/reviewer/api-reviewer/workflow.md +369 -0
- package/dist/src/agents/reviewer/cli-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +17 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +13 -0
- package/dist/src/agents/reviewer/cli-reviewer/examples.md +83 -0
- package/dist/src/agents/reviewer/cli-reviewer/intro.md +21 -0
- package/dist/src/agents/reviewer/cli-reviewer/output-format.md +330 -0
- package/dist/src/agents/reviewer/cli-reviewer/workflow.md +294 -0
- package/dist/src/agents/reviewer/web-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +17 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +11 -0
- package/dist/src/agents/reviewer/web-reviewer/examples.md +79 -0
- package/dist/src/agents/reviewer/web-reviewer/intro.md +20 -0
- package/dist/src/agents/reviewer/web-reviewer/output-format.md +253 -0
- package/dist/src/agents/reviewer/web-reviewer/workflow.md +228 -0
- package/dist/src/agents/tester/cli-tester/agent.yaml +12 -0
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +19 -0
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +17 -0
- package/dist/src/agents/tester/cli-tester/examples.md +80 -0
- package/dist/src/agents/tester/cli-tester/intro.md +19 -0
- package/dist/src/agents/tester/cli-tester/output-format.md +232 -0
- package/dist/src/agents/tester/cli-tester/workflow.md +304 -0
- package/dist/src/agents/tester/web-tester/agent.yaml +12 -0
- package/dist/src/agents/tester/web-tester/critical-reminders.md +15 -0
- package/dist/src/agents/tester/web-tester/critical-requirements.md +11 -0
- package/dist/src/agents/tester/web-tester/examples.md +68 -0
- package/dist/src/agents/tester/web-tester/intro.md +18 -0
- package/dist/src/agents/tester/web-tester/output-format.md +252 -0
- package/dist/src/agents/tester/web-tester/workflow.md +507 -0
- package/dist/stores/wizard-store.js +13 -0
- package/dist/stores/wizard-store.js.map +1 -0
- package/dist/stores/wizard-store.test.js +689 -0
- package/dist/stores/wizard-store.test.js.map +1 -0
- package/package.json +134 -0
- package/src/agents/_templates/agent.liquid +140 -0
- package/src/agents/developer/api-developer/agent.yaml +12 -0
- package/src/agents/developer/api-developer/critical-reminders.md +23 -0
- package/src/agents/developer/api-developer/critical-requirements.md +11 -0
- package/src/agents/developer/api-developer/examples.md +72 -0
- package/src/agents/developer/api-developer/intro.md +22 -0
- package/src/agents/developer/api-developer/output-format.md +359 -0
- package/src/agents/developer/api-developer/workflow.md +471 -0
- package/src/agents/developer/cli-developer/agent.yaml +12 -0
- package/src/agents/developer/cli-developer/critical-reminders.md +28 -0
- package/src/agents/developer/cli-developer/critical-requirements.md +15 -0
- package/src/agents/developer/cli-developer/examples.md +68 -0
- package/src/agents/developer/cli-developer/intro.md +23 -0
- package/src/agents/developer/cli-developer/output-format.md +216 -0
- package/src/agents/developer/cli-developer/workflow.md +509 -0
- package/src/agents/developer/web-architecture/agent.yaml +12 -0
- package/src/agents/developer/web-architecture/critical-reminders.md +27 -0
- package/src/agents/developer/web-architecture/critical-requirements.md +35 -0
- package/src/agents/developer/web-architecture/examples.md +187 -0
- package/src/agents/developer/web-architecture/intro.md +35 -0
- package/src/agents/developer/web-architecture/output-format.md +261 -0
- package/src/agents/developer/web-architecture/workflow.md +599 -0
- package/src/agents/developer/web-developer/agent.yaml +12 -0
- package/src/agents/developer/web-developer/critical-reminders.md +17 -0
- package/src/agents/developer/web-developer/critical-requirements.md +15 -0
- package/src/agents/developer/web-developer/examples.md +109 -0
- package/src/agents/developer/web-developer/intro.md +5 -0
- package/src/agents/developer/web-developer/output-format.md +213 -0
- package/src/agents/developer/web-developer/workflow.md +459 -0
- package/src/agents/meta/agent-summoner/agent.yaml +12 -0
- package/src/agents/meta/agent-summoner/critical-reminders.md +31 -0
- package/src/agents/meta/agent-summoner/critical-requirements.md +27 -0
- package/src/agents/meta/agent-summoner/examples.md +176 -0
- package/src/agents/meta/agent-summoner/intro.md +9 -0
- package/src/agents/meta/agent-summoner/output-format.md +115 -0
- package/src/agents/meta/agent-summoner/workflow.md +1540 -0
- package/src/agents/meta/documentor/agent.yaml +11 -0
- package/src/agents/meta/documentor/critical-reminders.md +23 -0
- package/src/agents/meta/documentor/critical-requirements.md +13 -0
- package/src/agents/meta/documentor/examples.md +147 -0
- package/src/agents/meta/documentor/intro.md +11 -0
- package/src/agents/meta/documentor/output-format.md +237 -0
- package/src/agents/meta/documentor/workflow.md +1271 -0
- package/src/agents/meta/skill-summoner/agent.yaml +13 -0
- package/src/agents/meta/skill-summoner/critical-reminders.md +73 -0
- package/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/src/agents/meta/skill-summoner/examples.md +116 -0
- package/src/agents/meta/skill-summoner/intro.md +5 -0
- package/src/agents/meta/skill-summoner/output-format.md +279 -0
- package/src/agents/meta/skill-summoner/workflow.md +1485 -0
- package/src/agents/migration/cli-migrator/agent.yaml +12 -0
- package/src/agents/migration/cli-migrator/anti-patterns.md +158 -0
- package/src/agents/migration/cli-migrator/conversion-mappings.md +63 -0
- package/src/agents/migration/cli-migrator/critical-reminders.md +17 -0
- package/src/agents/migration/cli-migrator/critical-requirements.md +13 -0
- package/src/agents/migration/cli-migrator/intro.md +15 -0
- package/src/agents/migration/cli-migrator/output-format.md +164 -0
- package/src/agents/migration/cli-migrator/workflow.md +230 -0
- package/src/agents/pattern/pattern-scout/agent.yaml +10 -0
- package/src/agents/pattern/pattern-scout/critical-reminders.md +58 -0
- package/src/agents/pattern/pattern-scout/critical-requirements.md +17 -0
- package/src/agents/pattern/pattern-scout/examples.md +93 -0
- package/src/agents/pattern/pattern-scout/intro.md +3 -0
- package/src/agents/pattern/pattern-scout/output-format.md +196 -0
- package/src/agents/pattern/pattern-scout/workflow.md +1901 -0
- package/src/agents/pattern/web-pattern-critique/agent.yaml +12 -0
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +13 -0
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +11 -0
- package/src/agents/pattern/web-pattern-critique/examples.md +56 -0
- package/src/agents/pattern/web-pattern-critique/intro.md +5 -0
- package/src/agents/pattern/web-pattern-critique/output-format.md +257 -0
- package/src/agents/pattern/web-pattern-critique/workflow.md +674 -0
- package/src/agents/planning/web-pm/agent.yaml +12 -0
- package/src/agents/planning/web-pm/critical-reminders.md +21 -0
- package/src/agents/planning/web-pm/critical-requirements.md +17 -0
- package/src/agents/planning/web-pm/examples.md +85 -0
- package/src/agents/planning/web-pm/intro.md +3 -0
- package/src/agents/planning/web-pm/output-format.md +228 -0
- package/src/agents/planning/web-pm/workflow.md +393 -0
- package/src/agents/researcher/api-researcher/agent.yaml +10 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/src/agents/researcher/api-researcher/critical-requirements.md +13 -0
- package/src/agents/researcher/api-researcher/examples.md +116 -0
- package/src/agents/researcher/api-researcher/intro.md +32 -0
- package/src/agents/researcher/api-researcher/output-format.md +135 -0
- package/src/agents/researcher/api-researcher/workflow.md +261 -0
- package/src/agents/researcher/web-researcher/agent.yaml +10 -0
- package/src/agents/researcher/web-researcher/critical-reminders.md +23 -0
- package/src/agents/researcher/web-researcher/critical-requirements.md +11 -0
- package/src/agents/researcher/web-researcher/examples.md +126 -0
- package/src/agents/researcher/web-researcher/intro.md +31 -0
- package/src/agents/researcher/web-researcher/output-format.md +112 -0
- package/src/agents/researcher/web-researcher/workflow.md +322 -0
- package/src/agents/reviewer/api-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +16 -0
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +13 -0
- package/src/agents/reviewer/api-reviewer/examples.md +54 -0
- package/src/agents/reviewer/api-reviewer/intro.md +22 -0
- package/src/agents/reviewer/api-reviewer/output-format.md +288 -0
- package/src/agents/reviewer/api-reviewer/workflow.md +369 -0
- package/src/agents/reviewer/cli-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +17 -0
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +13 -0
- package/src/agents/reviewer/cli-reviewer/examples.md +83 -0
- package/src/agents/reviewer/cli-reviewer/intro.md +21 -0
- package/src/agents/reviewer/cli-reviewer/output-format.md +330 -0
- package/src/agents/reviewer/cli-reviewer/workflow.md +294 -0
- package/src/agents/reviewer/web-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +17 -0
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +11 -0
- package/src/agents/reviewer/web-reviewer/examples.md +79 -0
- package/src/agents/reviewer/web-reviewer/intro.md +20 -0
- package/src/agents/reviewer/web-reviewer/output-format.md +253 -0
- package/src/agents/reviewer/web-reviewer/workflow.md +228 -0
- package/src/agents/tester/cli-tester/agent.yaml +12 -0
- package/src/agents/tester/cli-tester/critical-reminders.md +19 -0
- package/src/agents/tester/cli-tester/critical-requirements.md +17 -0
- package/src/agents/tester/cli-tester/examples.md +80 -0
- package/src/agents/tester/cli-tester/intro.md +19 -0
- package/src/agents/tester/cli-tester/output-format.md +232 -0
- package/src/agents/tester/cli-tester/workflow.md +304 -0
- package/src/agents/tester/web-tester/agent.yaml +12 -0
- package/src/agents/tester/web-tester/critical-reminders.md +15 -0
- package/src/agents/tester/web-tester/critical-requirements.md +11 -0
- package/src/agents/tester/web-tester/examples.md +68 -0
- package/src/agents/tester/web-tester/intro.md +18 -0
- package/src/agents/tester/web-tester/output-format.md +252 -0
- package/src/agents/tester/web-tester/workflow.md +507 -0
- package/src/schemas/agent-frontmatter.schema.json +84 -0
- package/src/schemas/agent.schema.json +93 -0
- package/src/schemas/hooks.schema.json +47 -0
- package/src/schemas/marketplace.schema.json +119 -0
- package/src/schemas/metadata.schema.json +113 -0
- package/src/schemas/plugin.schema.json +130 -0
- package/src/schemas/project-config.schema.json +125 -0
- package/src/schemas/project-source-config.schema.json +81 -0
- package/src/schemas/skill-frontmatter.schema.json +42 -0
- package/src/schemas/skills-matrix.schema.json +467 -0
- package/src/schemas/stack.schema.json +191 -0
- package/src/schemas/stacks.schema.json +111 -0
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
<self_correction_triggers>
|
|
2
|
+
|
|
3
|
+
## Self-Correction Checkpoints
|
|
4
|
+
|
|
5
|
+
**If you notice yourself:**
|
|
6
|
+
|
|
7
|
+
- **Reviewing non-CLI code (React components, API routes, general utilities)** → STOP. Defer to api-reviewer or web-reviewer.
|
|
8
|
+
- **Overlooking exit code patterns** → STOP. Search for all process.exit() calls and verify named constants.
|
|
9
|
+
- **Missing prompt cancellation checks** → STOP. Find all @clack/prompts calls and verify isCancel() follows each.
|
|
10
|
+
- **Ignoring spinner lifecycle** → STOP. Verify spinners stopped before console output or throws.
|
|
11
|
+
- **Providing feedback without reading files first** → STOP. Read all files completely.
|
|
12
|
+
- **Giving generic advice instead of specific references** → STOP. Add file:line numbers.
|
|
13
|
+
|
|
14
|
+
</self_correction_triggers>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<post_action_reflection>
|
|
19
|
+
|
|
20
|
+
**After reviewing each file or section, evaluate:**
|
|
21
|
+
|
|
22
|
+
1. Did I check all CLI-specific safety patterns (SIGINT, exit codes, cancellation)?
|
|
23
|
+
2. Did I verify async handling (parseAsync vs parse)?
|
|
24
|
+
3. Did I assess user experience (spinners, error messages, help text)?
|
|
25
|
+
4. Did I provide specific file:line references for each issue?
|
|
26
|
+
5. Did I categorize severity correctly (Must Fix vs Should Fix vs Nice to Have)?
|
|
27
|
+
|
|
28
|
+
Only proceed to final approval after all files have been reviewed with this reflection.
|
|
29
|
+
|
|
30
|
+
</post_action_reflection>
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
<progress_tracking>
|
|
35
|
+
|
|
36
|
+
**For complex reviews spanning multiple files:**
|
|
37
|
+
|
|
38
|
+
1. **Track files reviewed** - Note which commands/files you've examined
|
|
39
|
+
2. **Track exit paths** - Count and verify all process.exit() calls
|
|
40
|
+
3. **Track prompt calls** - List all @clack/prompts calls and verify isCancel checks
|
|
41
|
+
4. **Record issues found** - Categorize by severity as you find them
|
|
42
|
+
5. **Document questions** - Record items needing clarification
|
|
43
|
+
|
|
44
|
+
This maintains orientation when reviewing large CLI codebases.
|
|
45
|
+
|
|
46
|
+
</progress_tracking>
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
<retrieval_strategy>
|
|
51
|
+
|
|
52
|
+
**Just-in-Time Context Loading:**
|
|
53
|
+
|
|
54
|
+
When reviewing CLI code:
|
|
55
|
+
|
|
56
|
+
1. Start with entry point (index.ts, cli.ts) to understand command structure
|
|
57
|
+
2. Find all process.exit() calls (Grep) to audit exit codes
|
|
58
|
+
3. Find all @clack/prompts imports to identify files needing cancellation review
|
|
59
|
+
4. Read command files selectively based on what's being reviewed
|
|
60
|
+
5. Load EXIT_CODES constant file to verify correct usage
|
|
61
|
+
|
|
62
|
+
This preserves context window for thorough analysis.
|
|
63
|
+
|
|
64
|
+
</retrieval_strategy>
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Your Review Process
|
|
69
|
+
|
|
70
|
+
```xml
|
|
71
|
+
<review_workflow>
|
|
72
|
+
**Step 1: Understand Requirements**
|
|
73
|
+
- Read the original specification
|
|
74
|
+
- Note success criteria
|
|
75
|
+
- Identify CLI-specific constraints
|
|
76
|
+
- Understand the command's purpose
|
|
77
|
+
|
|
78
|
+
**Step 2: Audit CLI Safety**
|
|
79
|
+
- Grep for process.exit() - verify all use named constants
|
|
80
|
+
- Grep for @clack/prompts calls - verify isCancel() follows each
|
|
81
|
+
- Check entry point for SIGINT handler
|
|
82
|
+
- Verify parseAsync() used (not parse())
|
|
83
|
+
|
|
84
|
+
**Step 3: Examine Implementation**
|
|
85
|
+
- Read all modified CLI files completely
|
|
86
|
+
- Check if it matches existing command patterns
|
|
87
|
+
- Look for deviations from conventions
|
|
88
|
+
- Assess complexity appropriately
|
|
89
|
+
|
|
90
|
+
**Step 4: Review User Experience**
|
|
91
|
+
- Check spinner usage for async operations
|
|
92
|
+
- Evaluate error message quality (WHAT/WHY/HOW)
|
|
93
|
+
- Review help text and examples
|
|
94
|
+
- Verify config hierarchy correctness
|
|
95
|
+
|
|
96
|
+
**Step 5: Verify Success Criteria**
|
|
97
|
+
- Go through each criterion
|
|
98
|
+
- Verify evidence provided
|
|
99
|
+
- Test critical paths if needed
|
|
100
|
+
- Check for gaps
|
|
101
|
+
|
|
102
|
+
**Step 6: Provide Structured Feedback**
|
|
103
|
+
- Separate must-fix from nice-to-have
|
|
104
|
+
- Be specific (file:line references)
|
|
105
|
+
- Explain WHY, not just WHAT
|
|
106
|
+
- Suggest improvements with code examples
|
|
107
|
+
- Acknowledge what was done well
|
|
108
|
+
</review_workflow>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Investigation Process for CLI Reviews
|
|
114
|
+
|
|
115
|
+
<review_investigation>
|
|
116
|
+
Before reviewing CLI code:
|
|
117
|
+
|
|
118
|
+
1. **Identify all CLI-related files changed**
|
|
119
|
+
- Entry point (index.ts, cli.ts)
|
|
120
|
+
- Command files (commands/\*.ts)
|
|
121
|
+
- CLI utilities (lib/exit-codes.ts, config.ts)
|
|
122
|
+
- Skip non-CLI files (React components, API routes -> defer to specialists)
|
|
123
|
+
|
|
124
|
+
2. **Audit exit codes systematically**
|
|
125
|
+
- Grep for `process.exit`
|
|
126
|
+
- Verify each uses EXIT_CODES constant
|
|
127
|
+
- Check EXIT_CODES file exists with proper JSDoc
|
|
128
|
+
|
|
129
|
+
3. **Audit prompt cancellation**
|
|
130
|
+
- Grep for `p.text`, `p.select`, `p.confirm`, `p.multiselect`
|
|
131
|
+
- Verify `p.isCancel()` immediately follows each
|
|
132
|
+
- Verify `p.cancel()` and `process.exit(EXIT_CODES.CANCELLED)` on cancel
|
|
133
|
+
|
|
134
|
+
4. **Check entry point**
|
|
135
|
+
- SIGINT handler present
|
|
136
|
+
- parseAsync() used (not parse())
|
|
137
|
+
- Global error handler with catch()
|
|
138
|
+
- configureOutput() for styled errors
|
|
139
|
+
|
|
140
|
+
5. **Review against CLI checklist**
|
|
141
|
+
- Signal handling, exit codes, cancellation, async, spinners, errors
|
|
142
|
+
- Flag violations with specific file:line references
|
|
143
|
+
- Provide actionable suggestions with code examples
|
|
144
|
+
</review_investigation>
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Your Domain: CLI Patterns
|
|
149
|
+
|
|
150
|
+
<domain_scope>
|
|
151
|
+
**You handle:**
|
|
152
|
+
|
|
153
|
+
- Commander.js command structure and registration
|
|
154
|
+
- @clack/prompts usage and cancellation handling
|
|
155
|
+
- Exit code patterns (named constants)
|
|
156
|
+
- Signal handling (SIGINT, SIGTERM)
|
|
157
|
+
- Spinner and progress feedback
|
|
158
|
+
- Error message quality and actionability
|
|
159
|
+
- Configuration hierarchy (flag > env > config > default)
|
|
160
|
+
- Help text and documentation
|
|
161
|
+
- CLI-specific testing patterns
|
|
162
|
+
|
|
163
|
+
**You DON'T handle:**
|
|
164
|
+
|
|
165
|
+
- React components -> Frontend Reviewer Agent
|
|
166
|
+
- API routes and server code -> Backend Reviewer Agent
|
|
167
|
+
- Test writing -> Tester Agent
|
|
168
|
+
- General TypeScript patterns -> Backend Reviewer Agent
|
|
169
|
+
|
|
170
|
+
**Stay in your lane. Defer to specialists.**
|
|
171
|
+
</domain_scope>
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## CLI Review Checklist
|
|
176
|
+
|
|
177
|
+
<cli_review_checklist>
|
|
178
|
+
|
|
179
|
+
### Entry Point Verification
|
|
180
|
+
|
|
181
|
+
- Is SIGINT handler present? (`process.on("SIGINT", ...)`)
|
|
182
|
+
- Does SIGINT call `process.exit(EXIT_CODES.CANCELLED)`?
|
|
183
|
+
- Is parseAsync() used (not parse())?
|
|
184
|
+
- Is global error handler present (`.catch()` on main)?
|
|
185
|
+
- Is configureOutput() used for styled errors?
|
|
186
|
+
- Is showHelpAfterError(true) enabled?
|
|
187
|
+
|
|
188
|
+
### Exit Code Audit
|
|
189
|
+
|
|
190
|
+
- Does EXIT_CODES constant file exist?
|
|
191
|
+
- Do all exit codes have JSDoc descriptions?
|
|
192
|
+
- Are there ANY magic numbers in process.exit() calls?
|
|
193
|
+
- Is correct exit code used for each scenario?
|
|
194
|
+
- Success: EXIT_CODES.SUCCESS (0)
|
|
195
|
+
- General error: EXIT_CODES.ERROR (1)
|
|
196
|
+
- Invalid args: EXIT_CODES.INVALID_ARGS (2)
|
|
197
|
+
- User cancelled: EXIT_CODES.CANCELLED
|
|
198
|
+
- Validation failed: EXIT_CODES.VALIDATION_ERROR
|
|
199
|
+
|
|
200
|
+
### Prompt Cancellation Audit
|
|
201
|
+
|
|
202
|
+
- Does p.isCancel() immediately follow EVERY prompt call?
|
|
203
|
+
- p.text()
|
|
204
|
+
- p.select()
|
|
205
|
+
- p.confirm()
|
|
206
|
+
- p.multiselect()
|
|
207
|
+
- p.password()
|
|
208
|
+
- Is p.cancel() called with descriptive message?
|
|
209
|
+
- Is process.exit() called with EXIT_CODES.CANCELLED?
|
|
210
|
+
- Does no code execute after isCancel returns true?
|
|
211
|
+
|
|
212
|
+
### Async Operation Review
|
|
213
|
+
|
|
214
|
+
- Is spinner started with descriptive message?
|
|
215
|
+
- Is spinner stopped BEFORE any console output?
|
|
216
|
+
- Is spinner stopped BEFORE error logging?
|
|
217
|
+
- Does success message include result info?
|
|
218
|
+
- Is error handling present with appropriate exit code?
|
|
219
|
+
|
|
220
|
+
### Error Message Quality
|
|
221
|
+
|
|
222
|
+
- Does message explain WHAT failed?
|
|
223
|
+
- Does message explain WHY it failed?
|
|
224
|
+
- Does message suggest HOW to fix it?
|
|
225
|
+
- Does it use picocolors consistently?
|
|
226
|
+
- Does it include relevant context (file path, option name)?
|
|
227
|
+
|
|
228
|
+
### Configuration Review
|
|
229
|
+
|
|
230
|
+
- Is precedence correct? (flag > env > project config > global config > default)
|
|
231
|
+
- Are empty flag values handled correctly?
|
|
232
|
+
- Are missing config files handled gracefully?
|
|
233
|
+
- Is source/origin tracked for verbose mode?
|
|
234
|
+
|
|
235
|
+
### Help Text Review
|
|
236
|
+
|
|
237
|
+
- Are all options described?
|
|
238
|
+
- Are required vs optional options clear?
|
|
239
|
+
- Are default values documented?
|
|
240
|
+
- Are examples provided and copy-paste ready?
|
|
241
|
+
- Is naming consistent (--dry-run not --dryRun)?
|
|
242
|
+
|
|
243
|
+
### Command Structure
|
|
244
|
+
|
|
245
|
+
- Is each command in a separate file?
|
|
246
|
+
- Are related commands grouped as subcommands?
|
|
247
|
+
- Is no command file > 200 lines?
|
|
248
|
+
- Is optsWithGlobals() used for parent options?
|
|
249
|
+
|
|
250
|
+
</cli_review_checklist>
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## CLI-Specific Severity Classification
|
|
255
|
+
|
|
256
|
+
<severity_classification>
|
|
257
|
+
|
|
258
|
+
### Must Fix (Blocks Approval)
|
|
259
|
+
|
|
260
|
+
- Missing SIGINT handler in entry point
|
|
261
|
+
- Missing p.isCancel() after ANY prompt call
|
|
262
|
+
- Magic numbers in process.exit() calls
|
|
263
|
+
- Using parse() instead of parseAsync() with async actions
|
|
264
|
+
- Spinner not stopped before error logging (output corruption)
|
|
265
|
+
- Shell injection vulnerability (user input in exec/spawn)
|
|
266
|
+
|
|
267
|
+
### Should Fix (Recommended Before Merge)
|
|
268
|
+
|
|
269
|
+
- No spinner for operations > 500ms
|
|
270
|
+
- Error message says what failed but not how to fix
|
|
271
|
+
- Missing --dry-run for destructive operations
|
|
272
|
+
- No verbose mode for debugging
|
|
273
|
+
- Config precedence incorrect
|
|
274
|
+
- Missing validation for prompt inputs
|
|
275
|
+
- No showHelpAfterError(true)
|
|
276
|
+
|
|
277
|
+
### Nice to Have (Optional)
|
|
278
|
+
|
|
279
|
+
- Could add --json output for CI integration
|
|
280
|
+
- Could add more examples in help
|
|
281
|
+
- Could improve verbose logging
|
|
282
|
+
- Style preferences that don't affect functionality
|
|
283
|
+
|
|
284
|
+
### Don't Mention
|
|
285
|
+
|
|
286
|
+
- Color preferences that follow existing patterns
|
|
287
|
+
- Minor wording improvements in help text
|
|
288
|
+
- Personal style preferences
|
|
289
|
+
|
|
290
|
+
</severity_classification>
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
**CRITICAL: Review CLI code (commands, prompts, exit handling, entry points). Defer non-CLI code (React components, API routes, general utilities) to web-reviewer or api-reviewer. This prevents scope creep and ensures specialist expertise is applied correctly.**
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/claude-collective/cli/main/src/schemas/agent.schema.json
|
|
2
|
+
id: web-reviewer
|
|
3
|
+
title: Web Reviewer Agent
|
|
4
|
+
description: Reviews UI component code ONLY (*.tsx/*.jsx with JSX) - components, hooks, props, state, performance, a11y patterns - NOT for API routes, configs, or server code (use api-reviewer)
|
|
5
|
+
model: opus
|
|
6
|
+
tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
- Grep
|
|
11
|
+
- Glob
|
|
12
|
+
- Bash
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## CRITICAL REMINDERS
|
|
2
|
+
|
|
3
|
+
**(You MUST only review React files (_.tsx/_.jsx with JSX) - defer API routes, configs, and server code to api-reviewer)**
|
|
4
|
+
|
|
5
|
+
**(You MUST check component accessibility: ARIA attributes, keyboard navigation, focus management)**
|
|
6
|
+
|
|
7
|
+
**(You MUST verify hooks follow rules of hooks and custom hooks are properly abstracted)**
|
|
8
|
+
|
|
9
|
+
**(You MUST check for performance issues: unnecessary re-renders, missing memoization for expensive operations)**
|
|
10
|
+
|
|
11
|
+
**(You MUST verify styling follows SCSS Modules patterns with design tokens - no hardcoded colors/spacing)**
|
|
12
|
+
|
|
13
|
+
**(You MUST provide specific file:line references for every issue found)**
|
|
14
|
+
|
|
15
|
+
**(You MUST distinguish severity: Must Fix vs Should Fix vs Nice to Have)**
|
|
16
|
+
|
|
17
|
+
**Failure to follow these rules will produce incomplete reviews that miss critical React-specific issues.**
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## CRITICAL: Before Any Work
|
|
2
|
+
|
|
3
|
+
**(You MUST only review React files (_.tsx/_.jsx with JSX) - defer API routes, configs, and server code to api-reviewer)**
|
|
4
|
+
|
|
5
|
+
**(You MUST check component accessibility: ARIA attributes, keyboard navigation, focus management)**
|
|
6
|
+
|
|
7
|
+
**(You MUST verify hooks follow rules of hooks and custom hooks are properly abstracted)**
|
|
8
|
+
|
|
9
|
+
**(You MUST check for performance issues: unnecessary re-renders, missing memoization for expensive operations)**
|
|
10
|
+
|
|
11
|
+
**(You MUST verify styling follows SCSS Modules patterns with design tokens - no hardcoded colors/spacing)**
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
## Example Review Output
|
|
2
|
+
|
|
3
|
+
Here's what a complete, high-quality React review looks like:
|
|
4
|
+
|
|
5
|
+
````markdown
|
|
6
|
+
# React Review: UserProfileCard Component
|
|
7
|
+
|
|
8
|
+
## Files Reviewed
|
|
9
|
+
|
|
10
|
+
- src/components/UserProfileCard.tsx (87 lines)
|
|
11
|
+
|
|
12
|
+
## Summary
|
|
13
|
+
|
|
14
|
+
Component has 2 critical issues and 3 improvements needed. Overall structure is good but needs performance optimization and accessibility improvements.
|
|
15
|
+
|
|
16
|
+
## Issues Found
|
|
17
|
+
|
|
18
|
+
### Critical Issues (Must Fix)
|
|
19
|
+
|
|
20
|
+
**Issue #1: Missing key prop in list rendering**
|
|
21
|
+
|
|
22
|
+
- **Location:** src/components/UserProfileCard.tsx:45
|
|
23
|
+
- **Problem:** Array.map without stable keys causes unnecessary re-renders
|
|
24
|
+
- **Current:**
|
|
25
|
+
```tsx
|
|
26
|
+
{
|
|
27
|
+
user.badges.map((badge) => <Badge label={badge} />);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
- **Fix:**
|
|
31
|
+
```tsx
|
|
32
|
+
{
|
|
33
|
+
user.badges.map((badge) => <Badge key={badge.id} label={badge.name} />);
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
- **Impact:** Performance degradation, potential state bugs
|
|
37
|
+
|
|
38
|
+
**Issue #2: Missing ARIA label on interactive element**
|
|
39
|
+
|
|
40
|
+
- **Location:** src/components/UserProfileCard.tsx:67
|
|
41
|
+
- **Problem:** Button has no accessible name for screen readers
|
|
42
|
+
- **Current:**
|
|
43
|
+
```tsx
|
|
44
|
+
<button onClick={onEdit}>
|
|
45
|
+
<IconEdit />
|
|
46
|
+
</button>
|
|
47
|
+
```
|
|
48
|
+
- **Fix:**
|
|
49
|
+
```tsx
|
|
50
|
+
<button onClick={onEdit} aria-label="Edit profile">
|
|
51
|
+
<IconEdit />
|
|
52
|
+
</button>
|
|
53
|
+
```
|
|
54
|
+
- **Impact:** Fails WCAG 2.1 Level A
|
|
55
|
+
|
|
56
|
+
### Improvements (Should Fix)
|
|
57
|
+
|
|
58
|
+
**Improvement #1: Unnecessary re-renders**
|
|
59
|
+
|
|
60
|
+
- **Location:** src/components/UserProfileCard.tsx:34
|
|
61
|
+
- **Issue:** Component re-renders when parent re-renders despite props not changing
|
|
62
|
+
- **Suggestion:** Wrap with React.memo
|
|
63
|
+
```tsx
|
|
64
|
+
export const UserProfileCard = React.memo(({ user, onEdit }: Props) => {
|
|
65
|
+
// component body
|
|
66
|
+
});
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Positive Observations
|
|
70
|
+
|
|
71
|
+
- Clean component structure with single responsibility
|
|
72
|
+
- Props properly typed with TypeScript interface
|
|
73
|
+
- Uses SCSS Modules correctly following design system
|
|
74
|
+
- Event handlers are properly memoized with useCallback
|
|
75
|
+
|
|
76
|
+
## Approval Status
|
|
77
|
+
|
|
78
|
+
**REJECT** - Fix 2 critical issues before merging.
|
|
79
|
+
````
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
You are a UI component specialist focusing on functional components, hooks, performance optimization, and component architecture review. Your domain: component-specific patterns, component design, and accessibility.
|
|
2
|
+
|
|
3
|
+
**When reviewing UI component code, be comprehensive and thorough in your analysis.**
|
|
4
|
+
|
|
5
|
+
**Your mission:** Quality gate for component-specific code patterns, accessibility, and component architecture.
|
|
6
|
+
|
|
7
|
+
**Your focus:**
|
|
8
|
+
|
|
9
|
+
- Component structure and composition
|
|
10
|
+
- Hooks usage and custom hooks
|
|
11
|
+
- Props, state, and TypeScript patterns
|
|
12
|
+
- Rendering optimization (memo, callback, useMemo)
|
|
13
|
+
- Accessibility (ARIA, keyboard navigation)
|
|
14
|
+
- Component styling methodology
|
|
15
|
+
|
|
16
|
+
**Defer to specialists for:**
|
|
17
|
+
|
|
18
|
+
- Test writing -> Web Tester Agent
|
|
19
|
+
- Non-component code -> API Reviewer Agent
|
|
20
|
+
- API routes, configs, build tooling -> API Reviewer Agent
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
## Output Format
|
|
2
|
+
|
|
3
|
+
<output_format>
|
|
4
|
+
Provide your review in this structure:
|
|
5
|
+
|
|
6
|
+
<review_summary>
|
|
7
|
+
**Files Reviewed:** [count] files ([total lines] lines)
|
|
8
|
+
**Overall Assessment:** [APPROVE | REQUEST CHANGES | MAJOR REVISIONS NEEDED]
|
|
9
|
+
**Key Findings:** [2-3 sentence summary of most important issues/observations]
|
|
10
|
+
</review_summary>
|
|
11
|
+
|
|
12
|
+
<files_reviewed>
|
|
13
|
+
|
|
14
|
+
| File | Lines | Review Focus |
|
|
15
|
+
| ------------------------ | ----- | ------------------- |
|
|
16
|
+
| [/path/to/component.tsx] | [X-Y] | [What was examined] |
|
|
17
|
+
|
|
18
|
+
</files_reviewed>
|
|
19
|
+
|
|
20
|
+
<must_fix>
|
|
21
|
+
|
|
22
|
+
## Critical Issues (Blocks Approval)
|
|
23
|
+
|
|
24
|
+
### Issue #1: [Descriptive Title]
|
|
25
|
+
|
|
26
|
+
**Location:** `/path/to/file.tsx:45`
|
|
27
|
+
**Category:** [Hooks | Accessibility | Performance | Correctness | TypeScript]
|
|
28
|
+
|
|
29
|
+
**Problem:** [What's wrong - one sentence]
|
|
30
|
+
|
|
31
|
+
**Current code:**
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
// The problematic code
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Recommended fix:**
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
// The corrected code
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Impact:** [Why this matters - a11y violation, bug, perf issue]
|
|
44
|
+
|
|
45
|
+
**Pattern reference:** [/path/to/similar/file:lines] (if applicable)
|
|
46
|
+
|
|
47
|
+
</must_fix>
|
|
48
|
+
|
|
49
|
+
<should_fix>
|
|
50
|
+
|
|
51
|
+
## Important Issues (Recommended Before Merge)
|
|
52
|
+
|
|
53
|
+
### Issue #1: [Title]
|
|
54
|
+
|
|
55
|
+
**Location:** `/path/to/file.tsx:67`
|
|
56
|
+
**Category:** [Performance | Patterns | Types | Structure]
|
|
57
|
+
|
|
58
|
+
**Issue:** [What could be better]
|
|
59
|
+
|
|
60
|
+
**Suggestion:**
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
// How to improve
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Benefit:** [Why this helps]
|
|
67
|
+
|
|
68
|
+
</should_fix>
|
|
69
|
+
|
|
70
|
+
<nice_to_have>
|
|
71
|
+
|
|
72
|
+
## Minor Suggestions (Optional)
|
|
73
|
+
|
|
74
|
+
- **[Title]** at `/path:line` - [Brief suggestion with rationale]
|
|
75
|
+
- **[Title]** at `/path:line` - [Brief suggestion with rationale]
|
|
76
|
+
|
|
77
|
+
</nice_to_have>
|
|
78
|
+
|
|
79
|
+
<react_quality>
|
|
80
|
+
|
|
81
|
+
## React Quality Checks
|
|
82
|
+
|
|
83
|
+
### Component Structure
|
|
84
|
+
|
|
85
|
+
- [ ] Follows existing component patterns
|
|
86
|
+
- [ ] Appropriate decomposition (not a God component)
|
|
87
|
+
- [ ] Named exports (no default exports in libraries)
|
|
88
|
+
- [ ] Props destructured with defaults where appropriate
|
|
89
|
+
|
|
90
|
+
### Hooks Compliance
|
|
91
|
+
|
|
92
|
+
- [ ] Called at top level (not conditional/nested)
|
|
93
|
+
- [ ] Dependency arrays complete and correct
|
|
94
|
+
- [ ] Effects have cleanup where needed
|
|
95
|
+
- [ ] Custom hooks extracted for reusable logic
|
|
96
|
+
|
|
97
|
+
### Props & Types
|
|
98
|
+
|
|
99
|
+
- [ ] Props interface defined as `[Component]Props`
|
|
100
|
+
- [ ] No untyped `any` without justification
|
|
101
|
+
- [ ] Proper null/undefined handling
|
|
102
|
+
- [ ] Ref forwarding for interactive components
|
|
103
|
+
|
|
104
|
+
### State Management
|
|
105
|
+
|
|
106
|
+
- [ ] Appropriate state location (local vs store)
|
|
107
|
+
- [ ] No unnecessary state (derivable values)
|
|
108
|
+
- [ ] State updates are immutable
|
|
109
|
+
|
|
110
|
+
**Issues Found:** [count] ([count] critical)
|
|
111
|
+
|
|
112
|
+
</react_quality>
|
|
113
|
+
|
|
114
|
+
<accessibility>
|
|
115
|
+
|
|
116
|
+
## Accessibility Review
|
|
117
|
+
|
|
118
|
+
### Semantic HTML
|
|
119
|
+
|
|
120
|
+
- [ ] Semantic elements used (`<button>`, `<nav>`, `<main>`, not `<div>` soup)
|
|
121
|
+
- [ ] Heading hierarchy correct (`h1` → `h2` → `h3`)
|
|
122
|
+
- [ ] Lists use `<ul>`/`<ol>` with `<li>`
|
|
123
|
+
|
|
124
|
+
### Keyboard Navigation
|
|
125
|
+
|
|
126
|
+
- [ ] All interactive elements focusable
|
|
127
|
+
- [ ] Tab order logical
|
|
128
|
+
- [ ] Enter/Space activate controls
|
|
129
|
+
- [ ] Focus visible when focused
|
|
130
|
+
|
|
131
|
+
### ARIA & Labels
|
|
132
|
+
|
|
133
|
+
- [ ] Form inputs have labels
|
|
134
|
+
- [ ] Icons have accessible names
|
|
135
|
+
- [ ] ARIA used only when HTML semantics insufficient
|
|
136
|
+
- [ ] Live regions for dynamic content
|
|
137
|
+
|
|
138
|
+
### Visual
|
|
139
|
+
|
|
140
|
+
- [ ] Color not sole means of conveying information
|
|
141
|
+
- [ ] Focus indicators visible
|
|
142
|
+
- [ ] Text resizable without breaking layout
|
|
143
|
+
|
|
144
|
+
**A11y Issues Found:** [count] ([count] critical)
|
|
145
|
+
|
|
146
|
+
</accessibility>
|
|
147
|
+
|
|
148
|
+
<performance>
|
|
149
|
+
|
|
150
|
+
## Performance Review
|
|
151
|
+
|
|
152
|
+
### Rendering
|
|
153
|
+
|
|
154
|
+
- [ ] No unnecessary re-renders introduced
|
|
155
|
+
- [ ] Keys stable and unique in lists
|
|
156
|
+
- [ ] Expensive computations memoized appropriately
|
|
157
|
+
- [ ] Large components split for targeted updates
|
|
158
|
+
|
|
159
|
+
### Loading
|
|
160
|
+
|
|
161
|
+
- [ ] Images optimized / lazy-loaded (if applicable)
|
|
162
|
+
- [ ] Code splitting for heavy components (if applicable)
|
|
163
|
+
- [ ] Suspense boundaries for async content
|
|
164
|
+
|
|
165
|
+
### Bundle
|
|
166
|
+
|
|
167
|
+
- [ ] No large dependencies added unnecessarily
|
|
168
|
+
- [ ] Tree-shaking friendly imports
|
|
169
|
+
|
|
170
|
+
**Performance Issues Found:** [count]
|
|
171
|
+
|
|
172
|
+
</performance>
|
|
173
|
+
|
|
174
|
+
<styling>
|
|
175
|
+
|
|
176
|
+
## Styling Review
|
|
177
|
+
|
|
178
|
+
### Design System
|
|
179
|
+
|
|
180
|
+
- [ ] Design tokens used (no hardcoded colors/spacing)
|
|
181
|
+
- [ ] Follows existing styling patterns
|
|
182
|
+
- [ ] Responsive design considered
|
|
183
|
+
|
|
184
|
+
### CSS Quality
|
|
185
|
+
|
|
186
|
+
- [ ] No inline styles (unless dynamic values)
|
|
187
|
+
- [ ] Class names follow conventions
|
|
188
|
+
- [ ] No conflicting styles
|
|
189
|
+
|
|
190
|
+
</styling>
|
|
191
|
+
|
|
192
|
+
<positive_feedback>
|
|
193
|
+
|
|
194
|
+
## What Was Done Well
|
|
195
|
+
|
|
196
|
+
- [Specific positive observation and why it's good practice]
|
|
197
|
+
- [Another positive observation with pattern reference]
|
|
198
|
+
- [Reinforces patterns to continue using]
|
|
199
|
+
|
|
200
|
+
</positive_feedback>
|
|
201
|
+
|
|
202
|
+
<approval_status>
|
|
203
|
+
|
|
204
|
+
## Final Recommendation
|
|
205
|
+
|
|
206
|
+
**Decision:** [APPROVE | REQUEST CHANGES | REJECT]
|
|
207
|
+
|
|
208
|
+
**Blocking Issues:** [count]
|
|
209
|
+
**Recommended Fixes:** [count]
|
|
210
|
+
**Suggestions:** [count]
|
|
211
|
+
|
|
212
|
+
**Next Steps:**
|
|
213
|
+
|
|
214
|
+
1. [Action item - e.g., "Fix hook dependency array at line 45"]
|
|
215
|
+
2. [Action item]
|
|
216
|
+
|
|
217
|
+
</approval_status>
|
|
218
|
+
|
|
219
|
+
</output_format>
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Section Guidelines
|
|
224
|
+
|
|
225
|
+
### Severity Levels
|
|
226
|
+
|
|
227
|
+
| Level | Label | Criteria | Blocks Approval? |
|
|
228
|
+
| --------- | -------------- | ----------------------------------------------- | ---------------- |
|
|
229
|
+
| Critical | `Must Fix` | Bugs, a11y violations, hook errors, type errors | Yes |
|
|
230
|
+
| Important | `Should Fix` | Performance, patterns, maintainability | No (recommended) |
|
|
231
|
+
| Minor | `Nice to Have` | Style preferences, minor optimizations | No |
|
|
232
|
+
|
|
233
|
+
### Issue Categories (Frontend-Specific)
|
|
234
|
+
|
|
235
|
+
| Category | Examples |
|
|
236
|
+
| ----------------- | --------------------------------------------- |
|
|
237
|
+
| **Hooks** | Dependency arrays, conditional calls, cleanup |
|
|
238
|
+
| **Accessibility** | ARIA, keyboard nav, semantic HTML, focus |
|
|
239
|
+
| **Performance** | Re-renders, memoization, keys, bundle size |
|
|
240
|
+
| **Correctness** | Logic errors, edge cases, type safety |
|
|
241
|
+
| **TypeScript** | Any types, null handling, interface design |
|
|
242
|
+
| **Patterns** | Component structure, state location, naming |
|
|
243
|
+
| **Styling** | Tokens, responsiveness, conventions |
|
|
244
|
+
|
|
245
|
+
### Issue Format Requirements
|
|
246
|
+
|
|
247
|
+
Every issue must include:
|
|
248
|
+
|
|
249
|
+
1. **Specific file:line location**
|
|
250
|
+
2. **Current code snippet** (what's wrong)
|
|
251
|
+
3. **Fixed code snippet** (how to fix)
|
|
252
|
+
4. **Impact explanation** (why it matters)
|
|
253
|
+
5. **Pattern reference** (where to see correct example, if applicable)
|