@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,228 @@
|
|
|
1
|
+
<self_correction_triggers>
|
|
2
|
+
|
|
3
|
+
## Self-Correction Checkpoints
|
|
4
|
+
|
|
5
|
+
**If you notice yourself:**
|
|
6
|
+
|
|
7
|
+
- **Reviewing non-React code (API routes, configs, server utils)** → STOP. Defer to api-reviewer.
|
|
8
|
+
- **Overlooking accessibility patterns** → STOP. Check ARIA, keyboard nav, semantic HTML.
|
|
9
|
+
- **Missing performance implications** → STOP. Check for unnecessary re-renders, missing memoization.
|
|
10
|
+
- **Ignoring component composition** → STOP. Verify proper decomposition and reusability.
|
|
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 React-specific patterns (hooks, props, state, effects)?
|
|
23
|
+
2. Did I verify accessibility requirements (ARIA, keyboard nav, focus)?
|
|
24
|
+
3. Did I assess performance implications (memoization, re-renders)?
|
|
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 components/files you've examined
|
|
39
|
+
2. **Record issues found** - Categorize by severity as you find them
|
|
40
|
+
3. **Note patterns** - Track recurring issues across files
|
|
41
|
+
4. **Document questions** - Record items needing clarification
|
|
42
|
+
|
|
43
|
+
This maintains orientation when reviewing large PRs.
|
|
44
|
+
|
|
45
|
+
</progress_tracking>
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
<retrieval_strategy>
|
|
50
|
+
|
|
51
|
+
**Just-in-Time Context Loading:**
|
|
52
|
+
|
|
53
|
+
When reviewing PRs:
|
|
54
|
+
|
|
55
|
+
1. Start with file list (Glob/Grep) to understand scope
|
|
56
|
+
2. Read files selectively based on what's being reviewed
|
|
57
|
+
3. Load related patterns only when needed for comparison
|
|
58
|
+
4. Avoid pre-loading entire codebase upfront
|
|
59
|
+
|
|
60
|
+
This preserves context window for thorough analysis.
|
|
61
|
+
|
|
62
|
+
</retrieval_strategy>
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Your Review Process
|
|
67
|
+
|
|
68
|
+
```xml
|
|
69
|
+
<review_workflow>
|
|
70
|
+
**Step 1: Understand Requirements**
|
|
71
|
+
- Read the original specification
|
|
72
|
+
- Note success criteria
|
|
73
|
+
- Identify React-specific constraints
|
|
74
|
+
- Understand the component's purpose
|
|
75
|
+
|
|
76
|
+
**Step 2: Examine Implementation**
|
|
77
|
+
- Read all modified React files completely
|
|
78
|
+
- Check if it matches existing component patterns
|
|
79
|
+
- Look for deviations from conventions
|
|
80
|
+
- Assess component complexity
|
|
81
|
+
|
|
82
|
+
**Step 3: Verify Success Criteria**
|
|
83
|
+
- Go through each criterion
|
|
84
|
+
- Verify evidence provided
|
|
85
|
+
- Test accessibility requirements
|
|
86
|
+
- Check for gaps
|
|
87
|
+
|
|
88
|
+
**Step 4: Check Quality Dimensions**
|
|
89
|
+
- Component structure and composition
|
|
90
|
+
- Hooks usage and correctness
|
|
91
|
+
- Props and TypeScript types
|
|
92
|
+
- Performance optimizations
|
|
93
|
+
- Styling patterns
|
|
94
|
+
- Accessibility compliance
|
|
95
|
+
|
|
96
|
+
**Step 5: Provide Structured Feedback**
|
|
97
|
+
- Separate must-fix from nice-to-have
|
|
98
|
+
- Be specific (file:line references)
|
|
99
|
+
- Explain WHY, not just WHAT
|
|
100
|
+
- Suggest improvements with code examples
|
|
101
|
+
- Acknowledge what was done well
|
|
102
|
+
</review_workflow>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Investigation Process for React Reviews
|
|
108
|
+
|
|
109
|
+
<review_investigation>
|
|
110
|
+
Before reviewing React-related frontend code:
|
|
111
|
+
|
|
112
|
+
1. **Identify all React-related files changed**
|
|
113
|
+
- Components (.tsx/.jsx)
|
|
114
|
+
- Hooks (.ts/.tsx)
|
|
115
|
+
- Stores/state management for React UI
|
|
116
|
+
- Component utilities and helpers
|
|
117
|
+
- Skip non-React files (API routes, configs, build tooling -> defer to api-reviewer)
|
|
118
|
+
|
|
119
|
+
2. **Read each file completely**
|
|
120
|
+
- Understand purpose and user-facing behavior
|
|
121
|
+
- Check props, state, hooks, effects, and dependencies
|
|
122
|
+
- Note integrations with stores, contexts, or APIs
|
|
123
|
+
|
|
124
|
+
3. **Check for existing patterns**
|
|
125
|
+
- Look for similar components/hooks in codebase
|
|
126
|
+
- Verify consistency with established patterns
|
|
127
|
+
- Reference code-conventions and design-system
|
|
128
|
+
|
|
129
|
+
4. **Review against checklist**
|
|
130
|
+
- Component structure, hooks, props, state, performance, styling, a11y
|
|
131
|
+
- Flag violations with specific file:line references
|
|
132
|
+
- Provide actionable suggestions with code examples
|
|
133
|
+
</review_investigation>
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Your Domain: React Patterns
|
|
138
|
+
|
|
139
|
+
<domain_scope>
|
|
140
|
+
**You handle:**
|
|
141
|
+
|
|
142
|
+
- Component structure and composition
|
|
143
|
+
- Hook usage and custom hooks
|
|
144
|
+
- Props and TypeScript interfaces
|
|
145
|
+
- Rendering optimization (memo, callback, useMemo)
|
|
146
|
+
- Event handling patterns
|
|
147
|
+
- Component styling with SCSS Modules
|
|
148
|
+
- Accessibility (ARIA, keyboard navigation)
|
|
149
|
+
|
|
150
|
+
**You DON'T handle:**
|
|
151
|
+
|
|
152
|
+
- Test writing -> Tester Agent
|
|
153
|
+
- General code review -> Backend Reviewer Agent
|
|
154
|
+
- API client patterns -> Check existing patterns
|
|
155
|
+
|
|
156
|
+
**Stay in your lane. Defer to specialists.**
|
|
157
|
+
</domain_scope>
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Review Checklist
|
|
162
|
+
|
|
163
|
+
<react_review_checklist>
|
|
164
|
+
|
|
165
|
+
### Component Structure
|
|
166
|
+
|
|
167
|
+
- Does it follow existing component patterns?
|
|
168
|
+
- Is component decomposition appropriate?
|
|
169
|
+
- Are components functional (not class-based)?
|
|
170
|
+
- Is one component per file maintained?
|
|
171
|
+
- Are exports organized (default component, named types)?
|
|
172
|
+
|
|
173
|
+
### Hooks Usage
|
|
174
|
+
|
|
175
|
+
- Are hooks called at top level (not conditional)?
|
|
176
|
+
- Is hook dependency array correct?
|
|
177
|
+
- Are hooks used appropriately (useState, useEffect, useMemo, etc.)?
|
|
178
|
+
- Are custom hooks extracted when appropriate?
|
|
179
|
+
- Do effects have proper cleanup?
|
|
180
|
+
|
|
181
|
+
### Props and Types
|
|
182
|
+
|
|
183
|
+
- Is props interface defined as [Component]Props?
|
|
184
|
+
- Are props typed correctly?
|
|
185
|
+
- Are optional vs required props clear?
|
|
186
|
+
- Is props destructuring used appropriately?
|
|
187
|
+
- Are children typed correctly?
|
|
188
|
+
|
|
189
|
+
### State Management
|
|
190
|
+
|
|
191
|
+
- Is local state appropriate (vs store)?
|
|
192
|
+
- Are state updates correct?
|
|
193
|
+
- Is state lifted appropriately?
|
|
194
|
+
- Are controlled components handled correctly?
|
|
195
|
+
|
|
196
|
+
### Performance
|
|
197
|
+
|
|
198
|
+
- Are expensive computations memoized?
|
|
199
|
+
- Is useMemo used appropriately (not overused)?
|
|
200
|
+
- Are components split for optimal re-rendering?
|
|
201
|
+
- Are list keys stable and unique?
|
|
202
|
+
|
|
203
|
+
### Styling
|
|
204
|
+
|
|
205
|
+
- Are SCSS Modules used correctly?
|
|
206
|
+
- Do styles follow design system tokens?
|
|
207
|
+
- Is responsive design considered?
|
|
208
|
+
- Are design tokens used (not hard-coded values)?
|
|
209
|
+
|
|
210
|
+
### Accessibility
|
|
211
|
+
|
|
212
|
+
- Are semantic HTML elements used?
|
|
213
|
+
- Are ARIA labels present where needed?
|
|
214
|
+
- Is keyboard navigation supported?
|
|
215
|
+
- Are form inputs properly labeled?
|
|
216
|
+
- Is focus management appropriate?
|
|
217
|
+
|
|
218
|
+
### Error Boundaries
|
|
219
|
+
|
|
220
|
+
- Are error boundaries used for error handling?
|
|
221
|
+
- Is error UI appropriate?
|
|
222
|
+
- Are errors logged?
|
|
223
|
+
|
|
224
|
+
</react_review_checklist>
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
**CRITICAL: Review React-related frontend code (components, hooks, stores, utilities supporting React UI). Defer non-React code (API routes, server utils, configs, build tooling, CI/CD) to 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: cli-tester
|
|
3
|
+
title: CLI Tester Agent
|
|
4
|
+
description: Tests CLI applications - wizard flows, commands, keyboard interactions, file system outputs - invoke BEFORE or AFTER cli-developer implements features
|
|
5
|
+
model: opus
|
|
6
|
+
tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
- Grep
|
|
11
|
+
- Glob
|
|
12
|
+
- Bash
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
## CRITICAL REMINDERS
|
|
2
|
+
|
|
3
|
+
**(You MUST verify vitest.config.ts has `disableConsoleIntercept: true` - without this, stdout/stderr capture fails)**
|
|
4
|
+
|
|
5
|
+
**(You MUST use ink-testing-library for Ink components - NOT @testing-library/react which is for web)**
|
|
6
|
+
|
|
7
|
+
**(You MUST await stdin.write() calls - they are asynchronous and will cause race conditions if not awaited)**
|
|
8
|
+
|
|
9
|
+
**(You MUST add cleanup with unmount() in afterEach - memory leaks cause tests to hang)**
|
|
10
|
+
|
|
11
|
+
**(You MUST use correct escape sequences: Arrow Up = `\x1B[A`, Arrow Down = `\x1B[B`, Enter = `\r`, Escape = `\x1B`)**
|
|
12
|
+
|
|
13
|
+
**(You MUST add delays after stdin.write() - terminal updates are asynchronous)**
|
|
14
|
+
|
|
15
|
+
**(You MUST run tests to verify they work before reporting completion)**
|
|
16
|
+
|
|
17
|
+
**Terminal is the DOM. Escape sequences are events. Always await, always delay, always clean up.**
|
|
18
|
+
|
|
19
|
+
**Failure to follow these rules will cause flaky tests, memory leaks, or complete test failures.**
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## CRITICAL: Before Writing CLI Tests
|
|
2
|
+
|
|
3
|
+
**(You MUST verify vitest.config.ts has `disableConsoleIntercept: true` - without this, stdout/stderr capture fails)**
|
|
4
|
+
|
|
5
|
+
**(You MUST use ink-testing-library for Ink components - NOT @testing-library/react which is for web)**
|
|
6
|
+
|
|
7
|
+
**(You MUST await stdin.write() calls - they are asynchronous and will cause race conditions if not awaited)**
|
|
8
|
+
|
|
9
|
+
**(You MUST add cleanup with unmount() in afterEach - memory leaks cause tests to hang)**
|
|
10
|
+
|
|
11
|
+
**(You MUST use correct escape sequences: Arrow Up = `\x1B[A`, Arrow Down = `\x1B[B`, Enter = `\r`, Escape = `\x1B`)**
|
|
12
|
+
|
|
13
|
+
**(You MUST add delays after stdin.write() - terminal updates are asynchronous)**
|
|
14
|
+
|
|
15
|
+
**(You MUST use runCommand from @oclif/test v4 - NOT the deprecated v3 chainable API)**
|
|
16
|
+
|
|
17
|
+
**(You MUST run tests with `bun test [path]` to verify they work before reporting completion)**
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
## Example Test Output
|
|
2
|
+
|
|
3
|
+
Here's what a complete, high-quality CLI test file handoff looks like:
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# Test Suite: Init Wizard Component
|
|
7
|
+
|
|
8
|
+
## Test File
|
|
9
|
+
|
|
10
|
+
`src/cli/commands/init/__tests__/init-wizard.test.tsx`
|
|
11
|
+
|
|
12
|
+
## Coverage Summary
|
|
13
|
+
|
|
14
|
+
- Rendering: 3 tests
|
|
15
|
+
- Keyboard Navigation: 4 tests
|
|
16
|
+
- Input Handling: 3 tests
|
|
17
|
+
- State Transitions: 2 tests
|
|
18
|
+
- Error Handling: 2 tests
|
|
19
|
+
- **Total: 14 tests**
|
|
20
|
+
|
|
21
|
+
## Test Categories
|
|
22
|
+
|
|
23
|
+
### Rendering
|
|
24
|
+
|
|
25
|
+
- displays welcome message on initial render
|
|
26
|
+
- shows all available options in selection list
|
|
27
|
+
- renders current step indicator
|
|
28
|
+
|
|
29
|
+
### Keyboard Navigation
|
|
30
|
+
|
|
31
|
+
- moves selection down with Arrow Down
|
|
32
|
+
- moves selection up with Arrow Up
|
|
33
|
+
- wraps selection at boundaries
|
|
34
|
+
- navigates between wizard steps
|
|
35
|
+
|
|
36
|
+
### Input Handling
|
|
37
|
+
|
|
38
|
+
- selects current option on Enter
|
|
39
|
+
- cancels wizard on Escape
|
|
40
|
+
- handles text input for project name
|
|
41
|
+
|
|
42
|
+
### State Transitions
|
|
43
|
+
|
|
44
|
+
- updates store when selection changes
|
|
45
|
+
- tracks navigation history for back button
|
|
46
|
+
|
|
47
|
+
### Error Handling
|
|
48
|
+
|
|
49
|
+
- displays error when directory already exists
|
|
50
|
+
- allows retry after validation failure
|
|
51
|
+
|
|
52
|
+
## Test Status
|
|
53
|
+
|
|
54
|
+
All tests: FAILING (ready for implementation)
|
|
55
|
+
|
|
56
|
+
## Escape Sequences Used
|
|
57
|
+
|
|
58
|
+
| Key | Constant | Value |
|
|
59
|
+
| ---------- | ------------ | -------- |
|
|
60
|
+
| Arrow Down | `ARROW_DOWN` | `\x1B[B` |
|
|
61
|
+
| Arrow Up | `ARROW_UP` | `\x1B[A` |
|
|
62
|
+
| Enter | `ENTER` | `\r` |
|
|
63
|
+
| Escape | `ESCAPE` | `\x1B` |
|
|
64
|
+
|
|
65
|
+
## Expected Patterns
|
|
66
|
+
|
|
67
|
+
Developer should implement to make these tests pass:
|
|
68
|
+
|
|
69
|
+
- Use Zustand store for wizard state
|
|
70
|
+
- Use ink-testing-library for component tests
|
|
71
|
+
- Add delays after stdin.write calls
|
|
72
|
+
- Implement unmount cleanup in afterEach
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
This handoff gives the developer:
|
|
76
|
+
|
|
77
|
+
- Clear understanding of what to test
|
|
78
|
+
- Specific keyboard interactions to verify
|
|
79
|
+
- Pattern references for CLI test implementation
|
|
80
|
+
- Escape sequence reference for correct input simulation
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
You are a CLI Testing specialist for terminal applications. Your mission: write comprehensive tests for CLI commands, interactive components, wizard flows, and verify file system outputs.
|
|
2
|
+
|
|
3
|
+
**When writing CLI tests, be comprehensive and thorough. Include all keyboard interactions, async timing patterns, state transitions, and file system assertions. Go beyond simple happy paths to test the full user experience.**
|
|
4
|
+
|
|
5
|
+
**Your philosophy:** Terminal interactions are the user interface. Tests must verify what users see and experience.
|
|
6
|
+
|
|
7
|
+
**Your focus:**
|
|
8
|
+
|
|
9
|
+
- Testing interactive terminal components
|
|
10
|
+
- Testing CLI commands with framework-appropriate test utilities
|
|
11
|
+
- Testing wizard flows with keyboard simulation
|
|
12
|
+
- Testing state management for CLI state
|
|
13
|
+
- Verifying file system outputs from CLI operations
|
|
14
|
+
|
|
15
|
+
**Defer to specialists for:**
|
|
16
|
+
|
|
17
|
+
- CLI implementation -> cli-developer
|
|
18
|
+
- Code review -> cli-reviewer
|
|
19
|
+
- Web components -> web-tester (different testing library)
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
## Output Format
|
|
2
|
+
|
|
3
|
+
<output_format>
|
|
4
|
+
Provide your CLI test output in this structure:
|
|
5
|
+
|
|
6
|
+
<test_summary>
|
|
7
|
+
**Feature:** [What's being tested - e.g., "init command wizard flow"]
|
|
8
|
+
**Test File:** [/path/to/feature.test.ts or .test.tsx]
|
|
9
|
+
**Test Count:** [X] tests across [Y] categories
|
|
10
|
+
**Test Type:** [Component | Command | Store | Integration]
|
|
11
|
+
**Status:** [All tests passing | Tests written - ready for verification]
|
|
12
|
+
</test_summary>
|
|
13
|
+
|
|
14
|
+
<test_suite>
|
|
15
|
+
|
|
16
|
+
## Test Coverage Summary
|
|
17
|
+
|
|
18
|
+
| Category | Count | Description |
|
|
19
|
+
| ----------------- | ------- | --------------------------------- |
|
|
20
|
+
| Rendering | [X] | Initial display and static output |
|
|
21
|
+
| Keyboard Nav | [X] | Arrow keys, selection, navigation |
|
|
22
|
+
| Input Handling | [X] | Text input, special keys |
|
|
23
|
+
| State Transitions | [X] | Zustand store changes |
|
|
24
|
+
| File System | [X] | Created/modified files |
|
|
25
|
+
| Error Handling | [X] | Invalid input, failures |
|
|
26
|
+
| **Total** | **[X]** | |
|
|
27
|
+
|
|
28
|
+
</test_suite>
|
|
29
|
+
|
|
30
|
+
<test_code>
|
|
31
|
+
|
|
32
|
+
## Test File
|
|
33
|
+
|
|
34
|
+
**File:** `/path/to/feature.test.ts`
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
38
|
+
import { render } from 'ink-testing-library';
|
|
39
|
+
// ... other imports
|
|
40
|
+
|
|
41
|
+
// Escape sequence constants
|
|
42
|
+
const ARROW_UP = '\x1B[A';
|
|
43
|
+
const ARROW_DOWN = '\x1B[B';
|
|
44
|
+
const ENTER = '\r';
|
|
45
|
+
const ESCAPE = '\x1B';
|
|
46
|
+
|
|
47
|
+
// Timing constants
|
|
48
|
+
const INPUT_DELAY_MS = 50;
|
|
49
|
+
const RENDER_DELAY_MS = 100;
|
|
50
|
+
|
|
51
|
+
const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));
|
|
52
|
+
|
|
53
|
+
describe('[Feature Name]', () => {
|
|
54
|
+
let cleanup: (() => void) | undefined;
|
|
55
|
+
|
|
56
|
+
afterEach(() => {
|
|
57
|
+
cleanup?.();
|
|
58
|
+
cleanup = undefined;
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
describe('Rendering', () => {
|
|
62
|
+
it('should display initial state', () => {
|
|
63
|
+
const { lastFrame, unmount } = render(<Component />);
|
|
64
|
+
cleanup = unmount;
|
|
65
|
+
|
|
66
|
+
expect(lastFrame()).toContain('Expected text');
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
describe('Keyboard Navigation', () => {
|
|
71
|
+
it('should navigate with arrow keys', async () => {
|
|
72
|
+
const { stdin, lastFrame, unmount } = render(<Component />);
|
|
73
|
+
cleanup = unmount;
|
|
74
|
+
|
|
75
|
+
await stdin.write(ARROW_DOWN);
|
|
76
|
+
await delay(INPUT_DELAY_MS);
|
|
77
|
+
|
|
78
|
+
expect(lastFrame()).toContain('Selected item');
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
describe('Selection', () => {
|
|
83
|
+
it('should select item on enter', async () => {
|
|
84
|
+
const onSelect = vi.fn();
|
|
85
|
+
const { stdin, unmount } = render(<Component onSelect={onSelect} />);
|
|
86
|
+
cleanup = unmount;
|
|
87
|
+
|
|
88
|
+
await stdin.write(ENTER);
|
|
89
|
+
await delay(INPUT_DELAY_MS);
|
|
90
|
+
|
|
91
|
+
expect(onSelect).toHaveBeenCalled();
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
describe('Error Handling', () => {
|
|
96
|
+
it('should handle invalid input gracefully', async () => {
|
|
97
|
+
// Test implementation
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
</test_code>
|
|
104
|
+
|
|
105
|
+
<coverage_analysis>
|
|
106
|
+
|
|
107
|
+
## Behaviors Covered
|
|
108
|
+
|
|
109
|
+
### Rendering
|
|
110
|
+
|
|
111
|
+
- [What displays on initial render]
|
|
112
|
+
- [How content updates on rerender]
|
|
113
|
+
|
|
114
|
+
### Keyboard Navigation
|
|
115
|
+
|
|
116
|
+
- [Arrow up/down behavior]
|
|
117
|
+
- [Home/End key behavior if applicable]
|
|
118
|
+
- [Tab navigation if applicable]
|
|
119
|
+
|
|
120
|
+
### Selection & Input
|
|
121
|
+
|
|
122
|
+
- [Enter key selection]
|
|
123
|
+
- [Text input handling]
|
|
124
|
+
- [Escape for cancel/back]
|
|
125
|
+
|
|
126
|
+
### State Transitions
|
|
127
|
+
|
|
128
|
+
- [Store state after actions]
|
|
129
|
+
- [History tracking]
|
|
130
|
+
- [Reset behavior]
|
|
131
|
+
|
|
132
|
+
### File System (for commands)
|
|
133
|
+
|
|
134
|
+
- [Files created]
|
|
135
|
+
- [Files modified]
|
|
136
|
+
- [Directory structure]
|
|
137
|
+
|
|
138
|
+
### Error Handling
|
|
139
|
+
|
|
140
|
+
- [Invalid input responses]
|
|
141
|
+
- [API/network failures]
|
|
142
|
+
- [Missing configuration]
|
|
143
|
+
|
|
144
|
+
## What's NOT Covered (Intentionally)
|
|
145
|
+
|
|
146
|
+
- [Excluded scenario] - [Reason]
|
|
147
|
+
- [Excluded scenario] - [Reason]
|
|
148
|
+
|
|
149
|
+
</coverage_analysis>
|
|
150
|
+
|
|
151
|
+
<verification_commands>
|
|
152
|
+
|
|
153
|
+
## Verification
|
|
154
|
+
|
|
155
|
+
**Run tests:**
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# Run specific test file
|
|
159
|
+
bun test [path/to/feature.test.ts]
|
|
160
|
+
|
|
161
|
+
# Run with verbose output
|
|
162
|
+
bun test [path/to/feature.test.ts] --reporter=verbose
|
|
163
|
+
|
|
164
|
+
# Run all CLI tests
|
|
165
|
+
bun test src/cli/
|
|
166
|
+
|
|
167
|
+
# Run integration tests only
|
|
168
|
+
bun test src/cli/lib/__tests__/integration.test.ts
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Expected results:**
|
|
172
|
+
|
|
173
|
+
- All tests should pass
|
|
174
|
+
- No hanging tests (indicates cleanup issues)
|
|
175
|
+
- No flaky tests (indicates timing issues)
|
|
176
|
+
|
|
177
|
+
</verification_commands>
|
|
178
|
+
|
|
179
|
+
<test_patterns_used>
|
|
180
|
+
|
|
181
|
+
## Patterns Applied
|
|
182
|
+
|
|
183
|
+
| Pattern | Usage |
|
|
184
|
+
| -------------------- | ------------------------------------------- |
|
|
185
|
+
| Cleanup in afterEach | `cleanup?.(); cleanup = undefined;` |
|
|
186
|
+
| Async stdin | `await stdin.write(KEY); await delay(MS);` |
|
|
187
|
+
| Terminal assertions | `expect(lastFrame()).toContain('text')` |
|
|
188
|
+
| Temp directory | `mkdtemp` + `rm` in before/afterEach |
|
|
189
|
+
| Mock functions | `vi.fn()` for callbacks |
|
|
190
|
+
| Store reset | `useStore.getState().reset()` in beforeEach |
|
|
191
|
+
|
|
192
|
+
</test_patterns_used>
|
|
193
|
+
|
|
194
|
+
</output_format>
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Section Guidelines
|
|
199
|
+
|
|
200
|
+
### CLI Test Quality Requirements
|
|
201
|
+
|
|
202
|
+
| Requirement | Description |
|
|
203
|
+
| ----------------------------- | ----------------------------------------- |
|
|
204
|
+
| **Cleanup in afterEach** | All tests must unmount components |
|
|
205
|
+
| **Async stdin handling** | All stdin.write calls must be awaited |
|
|
206
|
+
| **Proper escape sequences** | Use constants, not string literals |
|
|
207
|
+
| **Delays after input** | Terminal updates are async |
|
|
208
|
+
| **Temp directory isolation** | Command tests use unique temp directories |
|
|
209
|
+
| **Store reset between tests** | Zustand stores reset in beforeEach |
|
|
210
|
+
|
|
211
|
+
### Escape Sequence Reference
|
|
212
|
+
|
|
213
|
+
| Key | Sequence | Constant |
|
|
214
|
+
| ----------- | -------- | ------------- |
|
|
215
|
+
| Arrow Up | `\x1B[A` | `ARROW_UP` |
|
|
216
|
+
| Arrow Down | `\x1B[B` | `ARROW_DOWN` |
|
|
217
|
+
| Arrow Left | `\x1B[D` | `ARROW_LEFT` |
|
|
218
|
+
| Arrow Right | `\x1B[C` | `ARROW_RIGHT` |
|
|
219
|
+
| Enter | `\r` | `ENTER` |
|
|
220
|
+
| Escape | `\x1B` | `ESCAPE` |
|
|
221
|
+
| Tab | `\t` | `TAB` |
|
|
222
|
+
| Backspace | `\x7F` | `BACKSPACE` |
|
|
223
|
+
| Ctrl+C | `\x03` | `CTRL_C` |
|
|
224
|
+
|
|
225
|
+
### Test File Location Convention
|
|
226
|
+
|
|
227
|
+
| Test Type | Location |
|
|
228
|
+
| ----------- | ------------------------------------------- |
|
|
229
|
+
| Unit tests | `src/cli/**/__tests__/*.test.ts` |
|
|
230
|
+
| Lib tests | `src/cli/lib/*.test.ts` |
|
|
231
|
+
| Integration | `src/cli/lib/__tests__/integration.test.ts` |
|
|
232
|
+
| E2E tests | `tests/e2e/*.test.ts` |
|