agents-inc 0.152.1 → 0.153.0
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 +33 -0
- package/README.md +31 -35
- package/dist/{chunk-LDP5ASDM.js → chunk-2HC2SNRP.js} +2 -15
- package/dist/chunk-2HC2SNRP.js.map +1 -0
- package/dist/{chunk-WKTHWQKM.js → chunk-35VOK7XE.js} +1338 -2573
- package/dist/chunk-35VOK7XE.js.map +1 -0
- package/dist/{chunk-SX5H6TSC.js → chunk-4VYALFQZ.js} +11 -8
- package/dist/chunk-4VYALFQZ.js.map +1 -0
- package/dist/{chunk-KXYVJGJP.js → chunk-6CNRMCFM.js} +3 -2
- package/dist/{chunk-KXYVJGJP.js.map → chunk-6CNRMCFM.js.map} +1 -1
- package/dist/{chunk-LZ52XEPR.js → chunk-ACKC577F.js} +7 -6
- package/dist/chunk-ACKC577F.js.map +1 -0
- package/dist/{chunk-XHUODHZ4.js → chunk-BMGBA6HJ.js} +22 -49
- package/dist/chunk-BMGBA6HJ.js.map +1 -0
- package/dist/{chunk-FVDKAVOL.js → chunk-EFU6P3B7.js} +18 -51
- package/dist/chunk-EFU6P3B7.js.map +1 -0
- package/dist/{chunk-STMHDOZD.js → chunk-F7Z5I6GU.js} +12 -9
- package/dist/chunk-F7Z5I6GU.js.map +1 -0
- package/dist/{chunk-E5X6RJ4E.js → chunk-FIHTAFST.js} +29 -26
- package/dist/chunk-FIHTAFST.js.map +1 -0
- package/dist/{chunk-QZZJFYUQ.js → chunk-FRWKCE6R.js} +3 -3
- package/dist/chunk-FRWKCE6R.js.map +1 -0
- package/dist/{chunk-5UWKOOIS.js → chunk-HEBPKK5L.js} +129 -195
- package/dist/chunk-HEBPKK5L.js.map +1 -0
- package/dist/{chunk-MJ2KHG24.js → chunk-IO4VEW5U.js} +6 -6
- package/dist/{chunk-MJ2KHG24.js.map → chunk-IO4VEW5U.js.map} +1 -1
- package/dist/{chunk-TUPYW2IQ.js → chunk-JC7DBPRD.js} +9 -12
- package/dist/chunk-JC7DBPRD.js.map +1 -0
- package/dist/{chunk-5GUOIJSG.js → chunk-JFAUQDZM.js} +3 -15
- package/dist/chunk-JFAUQDZM.js.map +1 -0
- package/dist/{chunk-ZL7PFNHN.js → chunk-K3O3YQYG.js} +2 -2
- package/dist/{chunk-SKQWRUPX.js → chunk-K7PJDWER.js} +59 -33
- package/dist/chunk-K7PJDWER.js.map +1 -0
- package/dist/{chunk-MVR3SYMN.js → chunk-KET3EVGX.js} +4 -3
- package/dist/{chunk-MVR3SYMN.js.map → chunk-KET3EVGX.js.map} +1 -1
- package/dist/{chunk-MWG4VU64.js → chunk-M5HSTNYU.js} +50 -56
- package/dist/chunk-M5HSTNYU.js.map +1 -0
- package/dist/{chunk-TJJPWUMA.js → chunk-NSJ2S7R5.js} +3 -2
- package/dist/{chunk-TJJPWUMA.js.map → chunk-NSJ2S7R5.js.map} +1 -1
- package/dist/{chunk-IHUY4M22.js → chunk-NXGMM5YN.js} +4 -4
- package/dist/chunk-NXQAY5U7.js +18441 -0
- package/dist/chunk-NXQAY5U7.js.map +1 -0
- package/dist/{chunk-Q2KG7UV3.js → chunk-OJJLYHM3.js} +2 -1
- package/dist/{chunk-Q2KG7UV3.js.map → chunk-OJJLYHM3.js.map} +1 -1
- package/dist/{chunk-PZIZNMHK.js → chunk-ORJ5Y222.js} +159 -138
- package/dist/chunk-ORJ5Y222.js.map +1 -0
- package/dist/{chunk-NR3OZGL4.js → chunk-OZXAJNLA.js} +2 -1
- package/dist/{chunk-NR3OZGL4.js.map → chunk-OZXAJNLA.js.map} +1 -1
- package/dist/{chunk-MM7CTTAV.js → chunk-Q5FLW4JG.js} +2 -2
- package/dist/{chunk-MM7CTTAV.js.map → chunk-Q5FLW4JG.js.map} +1 -1
- package/dist/{chunk-GRVKW3CC.js → chunk-R4SEU3DF.js} +3 -2
- package/dist/{chunk-GRVKW3CC.js.map → chunk-R4SEU3DF.js.map} +1 -1
- package/dist/{chunk-76ADG7LQ.js → chunk-R54KIGN2.js} +8 -22
- package/dist/chunk-R54KIGN2.js.map +1 -0
- package/dist/{chunk-SBHBBZKF.js → chunk-REKOWTIB.js} +25 -120
- package/dist/chunk-REKOWTIB.js.map +1 -0
- package/dist/chunk-TY6CAOL7.js +40 -0
- package/dist/chunk-TY6CAOL7.js.map +1 -0
- package/dist/{chunk-BNSRA6HL.js → chunk-U2DNAHFE.js} +39 -176
- package/dist/chunk-U2DNAHFE.js.map +1 -0
- package/dist/{chunk-PMM2MYMA.js → chunk-U2YSGBHA.js} +624 -349
- package/dist/chunk-U2YSGBHA.js.map +1 -0
- package/dist/{chunk-DTSG5XZB.js → chunk-V3ENMW7G.js} +3 -3
- package/dist/{chunk-L7SZXUBJ.js → chunk-VECFAKM5.js} +7 -6
- package/dist/{chunk-L7SZXUBJ.js.map → chunk-VECFAKM5.js.map} +1 -1
- package/dist/chunk-VGEBYCQZ.js +59 -0
- package/dist/chunk-VGEBYCQZ.js.map +1 -0
- package/dist/chunk-VZRO7RYT.js +3694 -0
- package/dist/chunk-VZRO7RYT.js.map +1 -0
- package/dist/{chunk-LASI35KT.js → chunk-WDAO3RUY.js} +14 -28
- package/dist/chunk-WDAO3RUY.js.map +1 -0
- package/dist/{chunk-MQ7FLIYS.js → chunk-WG6V6VJV.js} +3 -2
- package/dist/{chunk-MQ7FLIYS.js.map → chunk-WG6V6VJV.js.map} +1 -1
- package/dist/chunk-X5XJ6WKO.js +284 -0
- package/dist/chunk-X5XJ6WKO.js.map +1 -0
- package/dist/{chunk-RNJWAKMO.js → chunk-XGMOXMS4.js} +9 -8
- package/dist/chunk-XGMOXMS4.js.map +1 -0
- package/dist/{chunk-IUQBOCSU.js → chunk-ZBPEFQ4G.js} +2 -1
- package/dist/{chunk-IUQBOCSU.js.map → chunk-ZBPEFQ4G.js.map} +1 -1
- package/dist/{chunk-QRDTLVXG.js → chunk-ZNDLUWWD.js} +9 -22
- package/dist/chunk-ZNDLUWWD.js.map +1 -0
- package/dist/commands/build/marketplace.js +114 -35
- package/dist/commands/build/marketplace.js.map +1 -1
- package/dist/commands/build/plugins.js +9 -10
- package/dist/commands/build/plugins.js.map +1 -1
- package/dist/commands/compile.js +97 -70
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/doctor.js +793 -64
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +169 -208
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +24 -39
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/init.js +41 -46
- package/dist/commands/list.js +10 -12
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/search.js +20 -81
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +25 -31
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +82 -332
- package/dist/commands/update.js.map +1 -1
- package/dist/components/common/confirm.js +1 -1
- package/dist/components/common/prompt-confirm.js +1 -1
- package/dist/components/common/select-list.js +2 -2
- package/dist/components/common/spinner.js +1 -1
- package/dist/components/wizard/category-grid.js +5 -6
- package/dist/components/wizard/checkbox-grid.js +5 -6
- package/dist/components/wizard/domain-selection.js +12 -13
- package/dist/components/wizard/run-wizard-session.js +30 -36
- package/dist/components/wizard/scroll-affordance.js +2 -2
- package/dist/components/wizard/skill-agent-summary.js +7 -7
- package/dist/components/wizard/source-grid.js +6 -11
- package/dist/components/wizard/stack-selection.js +9 -9
- package/dist/components/wizard/step-agents.js +12 -12
- package/dist/components/wizard/step-build.js +10 -11
- package/dist/components/wizard/step-confirm.js +11 -11
- package/dist/components/wizard/step-sources.js +11 -17
- package/dist/components/wizard/step-stack.js +10 -10
- package/dist/components/wizard/summary-panel.js +10 -10
- package/dist/components/wizard/toast.js +2 -2
- package/dist/components/wizard/wizard-layout.js +15 -16
- package/dist/components/wizard/wizard-tabs.js +6 -12
- package/dist/components/wizard/wizard.js +29 -35
- package/dist/config-exports.js +1 -1
- package/dist/copy-local-skills-KF2RAVD3.js +14 -0
- package/dist/hooks/init.js +49 -48
- package/dist/hooks/init.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/load-agent-defs-DGXGBU3Q.js +15 -0
- package/dist/{loader-5JP4S7CJ.js → loader-4U7UCE2Y.js} +7 -5
- package/dist/recompile-project-agents-CJVBAWDJ.js +20 -0
- package/dist/{source-loader-MZYCPL2S.js → source-loader-ZNSYJJCI.js} +6 -6
- package/dist/src/agents/developer/ai-developer/identity.md +4 -4
- package/dist/src/agents/developer/ai-developer/playbook.md +1 -1
- package/dist/src/agents/developer/api-developer/identity.md +4 -4
- package/dist/src/agents/developer/api-developer/metadata.yaml +1 -1
- package/dist/src/agents/developer/cli-developer/identity.md +4 -4
- package/dist/src/agents/developer/web-developer/identity.md +2 -2
- package/dist/src/agents/developer/web-developer/metadata.yaml +1 -1
- package/dist/src/agents/meta/agent-summoner/identity.md +4 -5
- package/dist/src/agents/meta/agent-summoner/output.md +2 -2
- package/dist/src/agents/meta/agent-summoner/playbook.md +15 -16
- package/dist/src/agents/meta/codex-keeper/identity.md +4 -4
- package/dist/src/agents/meta/codex-keeper/playbook.md +1 -1
- package/dist/src/agents/meta/convention-keeper/identity.md +1 -1
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +0 -34
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +27 -3
- package/dist/src/agents/meta/skill-summoner/identity.md +2 -2
- package/{src/agents/planning/web-pm → dist/src/agents/planning/pm}/critical-reminders.md +10 -7
- package/dist/src/agents/planning/{web-pm → pm}/critical-requirements.md +8 -4
- package/dist/src/agents/planning/pm/identity.md +47 -0
- package/dist/src/agents/planning/pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/{web-pm → pm}/output.md +7 -90
- package/dist/src/agents/planning/pm/playbook.md +185 -0
- package/dist/src/agents/researcher/ai-researcher/critical-reminders.md +58 -0
- package/dist/src/agents/researcher/ai-researcher/critical-requirements.md +40 -0
- package/dist/src/agents/researcher/ai-researcher/identity.md +86 -0
- package/dist/src/agents/researcher/ai-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/ai-researcher/output.md +363 -0
- package/dist/src/agents/researcher/ai-researcher/playbook.md +545 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +16 -0
- package/dist/src/agents/researcher/api-researcher/identity.md +7 -7
- package/dist/src/agents/researcher/cli-researcher/critical-reminders.md +50 -0
- package/dist/src/agents/researcher/cli-researcher/critical-requirements.md +36 -0
- package/dist/src/agents/researcher/cli-researcher/identity.md +87 -0
- package/dist/src/agents/researcher/cli-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/cli-researcher/output.md +343 -0
- package/dist/src/agents/researcher/cli-researcher/playbook.md +370 -0
- package/dist/src/agents/researcher/web-researcher/identity.md +5 -6
- package/dist/src/agents/reviewer/reviewer/critical-reminders.md +29 -0
- package/dist/src/agents/reviewer/reviewer/critical-requirements.md +31 -0
- package/dist/src/agents/reviewer/reviewer/identity.md +41 -0
- package/dist/src/agents/reviewer/reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/reviewer/output.md +202 -0
- package/dist/src/agents/reviewer/reviewer/playbook.md +141 -0
- package/dist/src/agents/tester/ai-tester/critical-reminders.md +48 -0
- package/dist/src/agents/tester/ai-tester/critical-requirements.md +49 -0
- package/dist/src/agents/tester/ai-tester/identity.md +62 -0
- package/dist/src/agents/tester/ai-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/ai-tester/output.md +375 -0
- package/dist/src/agents/tester/ai-tester/playbook.md +789 -0
- package/dist/src/agents/tester/api-tester/identity.md +3 -3
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +3 -3
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +2 -2
- package/dist/src/agents/tester/cli-tester/identity.md +3 -3
- package/dist/src/agents/tester/cli-tester/output.md +4 -4
- package/dist/src/agents/tester/cli-tester/playbook.md +3 -3
- package/dist/src/agents/tester/web-tester/identity.md +3 -3
- package/dist/stores/wizard-store.js +8 -6
- package/package.json +13 -2
- package/src/agents/developer/ai-developer/identity.md +4 -4
- package/src/agents/developer/ai-developer/playbook.md +1 -1
- package/src/agents/developer/api-developer/identity.md +4 -4
- package/src/agents/developer/api-developer/metadata.yaml +1 -1
- package/src/agents/developer/cli-developer/identity.md +4 -4
- package/src/agents/developer/web-developer/identity.md +2 -2
- package/src/agents/developer/web-developer/metadata.yaml +1 -1
- package/src/agents/meta/agent-summoner/identity.md +4 -5
- package/src/agents/meta/agent-summoner/output.md +2 -2
- package/src/agents/meta/agent-summoner/playbook.md +15 -16
- package/src/agents/meta/codex-keeper/identity.md +4 -4
- package/src/agents/meta/codex-keeper/playbook.md +1 -1
- package/src/agents/meta/convention-keeper/identity.md +1 -1
- package/src/agents/meta/skill-summoner/critical-reminders.md +0 -34
- package/src/agents/meta/skill-summoner/critical-requirements.md +27 -3
- package/src/agents/meta/skill-summoner/identity.md +2 -2
- package/{dist/src/agents/planning/web-pm → src/agents/planning/pm}/critical-reminders.md +10 -7
- package/src/agents/planning/{web-pm → pm}/critical-requirements.md +8 -4
- package/src/agents/planning/pm/identity.md +47 -0
- package/src/agents/planning/pm/metadata.yaml +12 -0
- package/src/agents/planning/{web-pm → pm}/output.md +7 -90
- package/src/agents/planning/pm/playbook.md +185 -0
- package/src/agents/researcher/ai-researcher/critical-reminders.md +58 -0
- package/src/agents/researcher/ai-researcher/critical-requirements.md +40 -0
- package/src/agents/researcher/ai-researcher/identity.md +86 -0
- package/src/agents/researcher/ai-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/ai-researcher/output.md +363 -0
- package/src/agents/researcher/ai-researcher/playbook.md +545 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +16 -0
- package/src/agents/researcher/api-researcher/identity.md +7 -7
- package/src/agents/researcher/cli-researcher/critical-reminders.md +50 -0
- package/src/agents/researcher/cli-researcher/critical-requirements.md +36 -0
- package/src/agents/researcher/cli-researcher/identity.md +87 -0
- package/src/agents/researcher/cli-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/cli-researcher/output.md +343 -0
- package/src/agents/researcher/cli-researcher/playbook.md +370 -0
- package/src/agents/researcher/web-researcher/identity.md +5 -6
- package/src/agents/reviewer/reviewer/critical-reminders.md +29 -0
- package/src/agents/reviewer/reviewer/critical-requirements.md +31 -0
- package/src/agents/reviewer/reviewer/identity.md +41 -0
- package/src/agents/reviewer/reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/reviewer/output.md +202 -0
- package/src/agents/reviewer/reviewer/playbook.md +141 -0
- package/src/agents/tester/ai-tester/critical-reminders.md +48 -0
- package/src/agents/tester/ai-tester/critical-requirements.md +49 -0
- package/src/agents/tester/ai-tester/identity.md +62 -0
- package/src/agents/tester/ai-tester/metadata.yaml +12 -0
- package/src/agents/tester/ai-tester/output.md +375 -0
- package/src/agents/tester/ai-tester/playbook.md +789 -0
- package/src/agents/tester/api-tester/identity.md +3 -3
- package/src/agents/tester/cli-tester/critical-reminders.md +3 -3
- package/src/agents/tester/cli-tester/critical-requirements.md +2 -2
- package/src/agents/tester/cli-tester/identity.md +3 -3
- package/src/agents/tester/cli-tester/output.md +4 -4
- package/src/agents/tester/cli-tester/playbook.md +3 -3
- package/src/agents/tester/web-tester/identity.md +3 -3
- package/src/schemas/metadata.schema.json +31 -2
- package/src/schemas/project-config.schema.json +61 -15
- package/src/schemas/project-source-config.schema.json +0 -47
- package/dist/chunk-5GUOIJSG.js.map +0 -1
- package/dist/chunk-5UWKOOIS.js.map +0 -1
- package/dist/chunk-76ADG7LQ.js.map +0 -1
- package/dist/chunk-BNSRA6HL.js.map +0 -1
- package/dist/chunk-E5X6RJ4E.js.map +0 -1
- package/dist/chunk-EEPELKOM.js +0 -5938
- package/dist/chunk-EEPELKOM.js.map +0 -1
- package/dist/chunk-F7T5AFFN.js +0 -20
- package/dist/chunk-F7T5AFFN.js.map +0 -1
- package/dist/chunk-FVDKAVOL.js.map +0 -1
- package/dist/chunk-KFB5CRXZ.js +0 -377
- package/dist/chunk-KFB5CRXZ.js.map +0 -1
- package/dist/chunk-KR65TPKC.js +0 -664
- package/dist/chunk-KR65TPKC.js.map +0 -1
- package/dist/chunk-LASI35KT.js.map +0 -1
- package/dist/chunk-LDP5ASDM.js.map +0 -1
- package/dist/chunk-LZ52XEPR.js.map +0 -1
- package/dist/chunk-M7HO7NBK.js +0 -88
- package/dist/chunk-M7HO7NBK.js.map +0 -1
- package/dist/chunk-MWG4VU64.js.map +0 -1
- package/dist/chunk-ODNDXQH2.js +0 -77
- package/dist/chunk-ODNDXQH2.js.map +0 -1
- package/dist/chunk-P44SXVH3.js +0 -80
- package/dist/chunk-P44SXVH3.js.map +0 -1
- package/dist/chunk-PMM2MYMA.js.map +0 -1
- package/dist/chunk-PZIZNMHK.js.map +0 -1
- package/dist/chunk-Q45ZU6HD.js +0 -37
- package/dist/chunk-Q45ZU6HD.js.map +0 -1
- package/dist/chunk-QRDTLVXG.js.map +0 -1
- package/dist/chunk-QZZJFYUQ.js.map +0 -1
- package/dist/chunk-R5NOI2LP.js +0 -170
- package/dist/chunk-R5NOI2LP.js.map +0 -1
- package/dist/chunk-RNJWAKMO.js.map +0 -1
- package/dist/chunk-SBHBBZKF.js.map +0 -1
- package/dist/chunk-SKQWRUPX.js.map +0 -1
- package/dist/chunk-STMHDOZD.js.map +0 -1
- package/dist/chunk-SX5H6TSC.js.map +0 -1
- package/dist/chunk-TUPYW2IQ.js.map +0 -1
- package/dist/chunk-UBEDZ4FD.js +0 -4198
- package/dist/chunk-UBEDZ4FD.js.map +0 -1
- package/dist/chunk-VY6MNOXL.js +0 -20
- package/dist/chunk-VY6MNOXL.js.map +0 -1
- package/dist/chunk-WBCPLH66.js +0 -42
- package/dist/chunk-WBCPLH66.js.map +0 -1
- package/dist/chunk-WKTHWQKM.js.map +0 -1
- package/dist/chunk-XHUODHZ4.js.map +0 -1
- package/dist/chunk-ZPPHXXAP.js +0 -252
- package/dist/chunk-ZPPHXXAP.js.map +0 -1
- package/dist/commands/import/skill.js +0 -344
- package/dist/commands/import/skill.js.map +0 -1
- package/dist/commands/new/agent.js +0 -300
- package/dist/commands/new/agent.js.map +0 -1
- package/dist/commands/new/marketplace.js +0 -310
- package/dist/commands/new/marketplace.js.map +0 -1
- package/dist/commands/new/skill.js +0 -26
- package/dist/commands/validate.js +0 -575
- package/dist/commands/validate.js.map +0 -1
- package/dist/components/wizard/search-modal.js +0 -13
- package/dist/components/wizard/selection-card.js +0 -9
- package/dist/components/wizard/step-settings.js +0 -18
- package/dist/copy-local-skills-6EMVN7RB.js +0 -14
- package/dist/load-agent-defs-BWOUVEAR.js +0 -15
- package/dist/load-agent-defs-BWOUVEAR.js.map +0 -1
- package/dist/loader-5JP4S7CJ.js.map +0 -1
- package/dist/recompile-project-agents-6DL45TDI.js +0 -19
- package/dist/recompile-project-agents-6DL45TDI.js.map +0 -1
- package/dist/source-loader-MZYCPL2S.js.map +0 -1
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +0 -48
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +0 -65
- package/dist/src/agents/developer/web-architecture/identity.md +0 -64
- package/dist/src/agents/developer/web-architecture/metadata.yaml +0 -12
- package/dist/src/agents/developer/web-architecture/output.md +0 -449
- package/dist/src/agents/developer/web-architecture/playbook.md +0 -481
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +0 -71
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +0 -31
- package/dist/src/agents/pattern/pattern-scout/identity.md +0 -25
- package/dist/src/agents/pattern/pattern-scout/metadata.yaml +0 -10
- package/dist/src/agents/pattern/pattern-scout/output.md +0 -290
- package/dist/src/agents/pattern/pattern-scout/playbook.md +0 -1806
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +0 -30
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +0 -28
- package/dist/src/agents/pattern/web-pattern-critique/identity.md +0 -41
- package/dist/src/agents/pattern/web-pattern-critique/metadata.yaml +0 -12
- package/dist/src/agents/pattern/web-pattern-critique/output.md +0 -314
- package/dist/src/agents/pattern/web-pattern-critique/playbook.md +0 -572
- package/dist/src/agents/planning/api-pm/critical-reminders.md +0 -48
- package/dist/src/agents/planning/api-pm/critical-requirements.md +0 -41
- package/dist/src/agents/planning/api-pm/identity.md +0 -39
- package/dist/src/agents/planning/api-pm/metadata.yaml +0 -12
- package/dist/src/agents/planning/api-pm/output.md +0 -475
- package/dist/src/agents/planning/api-pm/playbook.md +0 -129
- package/dist/src/agents/planning/web-pm/identity.md +0 -26
- package/dist/src/agents/planning/web-pm/metadata.yaml +0 -12
- package/dist/src/agents/planning/web-pm/playbook.md +0 -318
- package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +0 -40
- package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +0 -37
- package/dist/src/agents/reviewer/ai-reviewer/identity.md +0 -51
- package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +0 -10
- package/dist/src/agents/reviewer/ai-reviewer/output.md +0 -395
- package/dist/src/agents/reviewer/ai-reviewer/playbook.md +0 -90
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +0 -31
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +0 -27
- package/dist/src/agents/reviewer/api-reviewer/identity.md +0 -51
- package/dist/src/agents/reviewer/api-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/api-reviewer/output.md +0 -343
- package/dist/src/agents/reviewer/api-reviewer/playbook.md +0 -288
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +0 -33
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +0 -30
- package/dist/src/agents/reviewer/cli-reviewer/identity.md +0 -44
- package/dist/src/agents/reviewer/cli-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/cli-reviewer/output.md +0 -414
- package/dist/src/agents/reviewer/cli-reviewer/playbook.md +0 -218
- package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +0 -38
- package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +0 -38
- package/dist/src/agents/reviewer/infra-reviewer/identity.md +0 -53
- package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +0 -10
- package/dist/src/agents/reviewer/infra-reviewer/output.md +0 -364
- package/dist/src/agents/reviewer/infra-reviewer/playbook.md +0 -161
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +0 -31
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +0 -26
- package/dist/src/agents/reviewer/web-reviewer/identity.md +0 -40
- package/dist/src/agents/reviewer/web-reviewer/metadata.yaml +0 -12
- package/dist/src/agents/reviewer/web-reviewer/output.md +0 -333
- package/dist/src/agents/reviewer/web-reviewer/playbook.md +0 -156
- package/src/agents/developer/web-architecture/critical-reminders.md +0 -48
- package/src/agents/developer/web-architecture/critical-requirements.md +0 -65
- package/src/agents/developer/web-architecture/identity.md +0 -64
- package/src/agents/developer/web-architecture/metadata.yaml +0 -12
- package/src/agents/developer/web-architecture/output.md +0 -449
- package/src/agents/developer/web-architecture/playbook.md +0 -481
- package/src/agents/pattern/pattern-scout/critical-reminders.md +0 -71
- package/src/agents/pattern/pattern-scout/critical-requirements.md +0 -31
- package/src/agents/pattern/pattern-scout/identity.md +0 -25
- package/src/agents/pattern/pattern-scout/metadata.yaml +0 -10
- package/src/agents/pattern/pattern-scout/output.md +0 -290
- package/src/agents/pattern/pattern-scout/playbook.md +0 -1806
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +0 -30
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +0 -28
- package/src/agents/pattern/web-pattern-critique/identity.md +0 -41
- package/src/agents/pattern/web-pattern-critique/metadata.yaml +0 -12
- package/src/agents/pattern/web-pattern-critique/output.md +0 -314
- package/src/agents/pattern/web-pattern-critique/playbook.md +0 -572
- package/src/agents/planning/api-pm/critical-reminders.md +0 -48
- package/src/agents/planning/api-pm/critical-requirements.md +0 -41
- package/src/agents/planning/api-pm/identity.md +0 -39
- package/src/agents/planning/api-pm/metadata.yaml +0 -12
- package/src/agents/planning/api-pm/output.md +0 -475
- package/src/agents/planning/api-pm/playbook.md +0 -129
- package/src/agents/planning/web-pm/identity.md +0 -26
- package/src/agents/planning/web-pm/metadata.yaml +0 -12
- package/src/agents/planning/web-pm/playbook.md +0 -318
- package/src/agents/reviewer/ai-reviewer/critical-reminders.md +0 -40
- package/src/agents/reviewer/ai-reviewer/critical-requirements.md +0 -37
- package/src/agents/reviewer/ai-reviewer/identity.md +0 -51
- package/src/agents/reviewer/ai-reviewer/metadata.yaml +0 -10
- package/src/agents/reviewer/ai-reviewer/output.md +0 -395
- package/src/agents/reviewer/ai-reviewer/playbook.md +0 -90
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +0 -31
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +0 -27
- package/src/agents/reviewer/api-reviewer/identity.md +0 -51
- package/src/agents/reviewer/api-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/api-reviewer/output.md +0 -343
- package/src/agents/reviewer/api-reviewer/playbook.md +0 -288
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +0 -33
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +0 -30
- package/src/agents/reviewer/cli-reviewer/identity.md +0 -44
- package/src/agents/reviewer/cli-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/cli-reviewer/output.md +0 -414
- package/src/agents/reviewer/cli-reviewer/playbook.md +0 -218
- package/src/agents/reviewer/infra-reviewer/critical-reminders.md +0 -38
- package/src/agents/reviewer/infra-reviewer/critical-requirements.md +0 -38
- package/src/agents/reviewer/infra-reviewer/identity.md +0 -53
- package/src/agents/reviewer/infra-reviewer/metadata.yaml +0 -10
- package/src/agents/reviewer/infra-reviewer/output.md +0 -364
- package/src/agents/reviewer/infra-reviewer/playbook.md +0 -161
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +0 -31
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +0 -26
- package/src/agents/reviewer/web-reviewer/identity.md +0 -40
- package/src/agents/reviewer/web-reviewer/metadata.yaml +0 -12
- package/src/agents/reviewer/web-reviewer/output.md +0 -333
- package/src/agents/reviewer/web-reviewer/playbook.md +0 -156
- /package/dist/{chunk-ZL7PFNHN.js.map → chunk-K3O3YQYG.js.map} +0 -0
- /package/dist/{chunk-IHUY4M22.js.map → chunk-NXGMM5YN.js.map} +0 -0
- /package/dist/{chunk-DTSG5XZB.js.map → chunk-V3ENMW7G.js.map} +0 -0
- /package/dist/{commands/new/skill.js.map → copy-local-skills-KF2RAVD3.js.map} +0 -0
- /package/dist/{components/wizard/search-modal.js.map → load-agent-defs-DGXGBU3Q.js.map} +0 -0
- /package/dist/{components/wizard/selection-card.js.map → loader-4U7UCE2Y.js.map} +0 -0
- /package/dist/{components/wizard/step-settings.js.map → recompile-project-agents-CJVBAWDJ.js.map} +0 -0
- /package/dist/{copy-local-skills-6EMVN7RB.js.map → source-loader-ZNSYJJCI.js.map} +0 -0
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
You are a CLI specialist focusing on command-line application architecture, user experience, signal handling, and error feedback patterns. Your domain: CLI-specific patterns.
|
|
2
|
-
|
|
3
|
-
**When reviewing CLI code, be comprehensive and thorough in your analysis.**
|
|
4
|
-
|
|
5
|
-
**Your mission:** Quality gate for CLI-specific code patterns, safety (exit codes, signal handling), and user experience.
|
|
6
|
-
|
|
7
|
-
**Your focus:**
|
|
8
|
-
|
|
9
|
-
- Exit code correctness (named constants, no magic numbers)
|
|
10
|
-
- Signal handling (SIGINT/Ctrl+C)
|
|
11
|
-
- Prompt cancellation patterns
|
|
12
|
-
- Async command handling
|
|
13
|
-
- User feedback (spinners, progress, error messages)
|
|
14
|
-
- Configuration hierarchy
|
|
15
|
-
- Help text quality
|
|
16
|
-
|
|
17
|
-
**Defer to specialists for:**
|
|
18
|
-
|
|
19
|
-
- Test writing -> Tester Agent
|
|
20
|
-
- Non-CLI code -> Backend Reviewer Agent
|
|
21
|
-
- UI components -> Frontend Reviewer Agent
|
|
22
|
-
|
|
23
|
-
<domain_scope>
|
|
24
|
-
**You handle:**
|
|
25
|
-
|
|
26
|
-
- Commander.js command structure and registration
|
|
27
|
-
- @clack/prompts usage and cancellation handling
|
|
28
|
-
- Exit code patterns (named constants)
|
|
29
|
-
- Signal handling (SIGINT, SIGTERM)
|
|
30
|
-
- Spinner and progress feedback
|
|
31
|
-
- Error message quality and actionability
|
|
32
|
-
- Configuration hierarchy (flag > env > config > default)
|
|
33
|
-
- Help text and documentation
|
|
34
|
-
- CLI-specific testing patterns
|
|
35
|
-
|
|
36
|
-
**You DON'T handle:**
|
|
37
|
-
|
|
38
|
-
- React components -> Frontend Reviewer Agent
|
|
39
|
-
- API routes and server code -> Backend Reviewer Agent
|
|
40
|
-
- Test writing -> Tester Agent
|
|
41
|
-
- General TypeScript patterns -> Backend Reviewer Agent
|
|
42
|
-
|
|
43
|
-
**Stay in your lane. Defer to specialists.**
|
|
44
|
-
</domain_scope>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# yaml-language-server: $schema=https://raw.githubusercontent.com/agents-inc/agents-inc/main/packages/cli/src/schemas/agent.schema.json
|
|
2
|
-
id: cli-reviewer
|
|
3
|
-
title: CLI Reviewer Agent
|
|
4
|
-
description: Reviews CLI code ONLY - CLI commands, interactive prompts, exit codes, SIGINT handling, error messages, user feedback patterns - defers non-CLI code to api-reviewer
|
|
5
|
-
model: opus
|
|
6
|
-
tools:
|
|
7
|
-
- Read
|
|
8
|
-
- Write
|
|
9
|
-
- Edit
|
|
10
|
-
- Grep
|
|
11
|
-
- Glob
|
|
12
|
-
- Bash
|
|
@@ -1,414 +0,0 @@
|
|
|
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 CLI safety/UX issues]
|
|
10
|
-
</review_summary>
|
|
11
|
-
|
|
12
|
-
<files_reviewed>
|
|
13
|
-
|
|
14
|
-
| File | Lines | Review Focus |
|
|
15
|
-
| ---------------------------- | ----- | ---------------------- |
|
|
16
|
-
| [/path/to/cli/index.ts] | [X-Y] | Entry point, SIGINT |
|
|
17
|
-
| [/path/to/cli/commands/*.ts] | [X-Y] | Command implementation |
|
|
18
|
-
| [/path/to/cli/lib/*.ts] | [X-Y] | Exit codes, utilities |
|
|
19
|
-
|
|
20
|
-
</files_reviewed>
|
|
21
|
-
|
|
22
|
-
<cli_safety_audit>
|
|
23
|
-
|
|
24
|
-
## CLI Safety Review
|
|
25
|
-
|
|
26
|
-
### Signal Handling
|
|
27
|
-
|
|
28
|
-
- [ ] SIGINT handler exists in entry point
|
|
29
|
-
- [ ] SIGINT calls process.exit(EXIT_CODES.CANCELLED)
|
|
30
|
-
- [ ] SIGTERM handled (for container deployments)
|
|
31
|
-
|
|
32
|
-
### Exit Code Audit
|
|
33
|
-
|
|
34
|
-
- [ ] EXIT_CODES constant file exists
|
|
35
|
-
- [ ] All exit codes have JSDoc descriptions
|
|
36
|
-
- [ ] No magic numbers in process.exit() calls
|
|
37
|
-
- [ ] Correct exit code per scenario (SUCCESS, ERROR, CANCELLED, etc.)
|
|
38
|
-
|
|
39
|
-
### Prompt Cancellation
|
|
40
|
-
|
|
41
|
-
- [ ] p.isCancel() after EVERY @clack/prompts call
|
|
42
|
-
- [ ] p.cancel() with descriptive message on cancellation
|
|
43
|
-
- [ ] process.exit(EXIT_CODES.CANCELLED) after p.cancel()
|
|
44
|
-
|
|
45
|
-
### Async Handling
|
|
46
|
-
|
|
47
|
-
- [ ] parseAsync() used (not parse())
|
|
48
|
-
- [ ] Global error handler with .catch() on main
|
|
49
|
-
- [ ] Async errors not silently swallowed
|
|
50
|
-
|
|
51
|
-
**Safety Issues Found:**
|
|
52
|
-
|
|
53
|
-
| Finding | Location | Severity | Impact |
|
|
54
|
-
| ------- | ----------- | -------- | ------------------------- |
|
|
55
|
-
| [Issue] | [file:line] | Critical | [What happens if unfixed] |
|
|
56
|
-
|
|
57
|
-
</cli_safety_audit>
|
|
58
|
-
|
|
59
|
-
<must_fix>
|
|
60
|
-
|
|
61
|
-
## Critical Issues (Blocks Approval)
|
|
62
|
-
|
|
63
|
-
### Issue #1: [Descriptive Title]
|
|
64
|
-
|
|
65
|
-
**Location:** `/path/to/file.ts:45`
|
|
66
|
-
**Category:** [Signal Handling | Exit Codes | Cancellation | Async | Security]
|
|
67
|
-
|
|
68
|
-
**Problem:** [What's wrong - one sentence]
|
|
69
|
-
|
|
70
|
-
**Current code:**
|
|
71
|
-
|
|
72
|
-
```typescript
|
|
73
|
-
// The problematic code
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
**Recommended fix:**
|
|
77
|
-
|
|
78
|
-
```typescript
|
|
79
|
-
// The corrected code
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
**Impact:** [Why this matters - CLI crashes, undefined behavior, silent failures]
|
|
83
|
-
|
|
84
|
-
**Pattern reference:** [/path/to/similar/file:lines] (if applicable)
|
|
85
|
-
|
|
86
|
-
</must_fix>
|
|
87
|
-
|
|
88
|
-
<should_fix>
|
|
89
|
-
|
|
90
|
-
## Important Issues (Recommended Before Merge)
|
|
91
|
-
|
|
92
|
-
### Issue #1: [Title]
|
|
93
|
-
|
|
94
|
-
**Location:** `/path/to/file.ts:67`
|
|
95
|
-
**Category:** [Spinners | Error Messages | Config | Help Text]
|
|
96
|
-
|
|
97
|
-
**Issue:** [What could be better]
|
|
98
|
-
|
|
99
|
-
**Suggestion:**
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
// How to improve
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
**Benefit:** [Why this helps user experience]
|
|
106
|
-
|
|
107
|
-
</should_fix>
|
|
108
|
-
|
|
109
|
-
<nice_to_have>
|
|
110
|
-
|
|
111
|
-
## Minor Suggestions (Optional)
|
|
112
|
-
|
|
113
|
-
- **[Title]** at `/path:line` - [Brief suggestion with rationale]
|
|
114
|
-
- **[Title]** at `/path:line` - [Brief suggestion with rationale]
|
|
115
|
-
|
|
116
|
-
</nice_to_have>
|
|
117
|
-
|
|
118
|
-
<user_experience_review>
|
|
119
|
-
|
|
120
|
-
## User Experience Review
|
|
121
|
-
|
|
122
|
-
### Visual Feedback
|
|
123
|
-
|
|
124
|
-
- [ ] Spinners used for operations > 500ms
|
|
125
|
-
- [ ] Spinners stopped before any console output
|
|
126
|
-
- [ ] Success messages include result details
|
|
127
|
-
- [ ] Progress visible for multi-step operations
|
|
128
|
-
|
|
129
|
-
### Error Messages
|
|
130
|
-
|
|
131
|
-
- [ ] Messages explain WHAT failed
|
|
132
|
-
- [ ] Messages explain WHY it failed
|
|
133
|
-
- [ ] Messages suggest HOW to fix
|
|
134
|
-
- [ ] picocolors used consistently (red for errors)
|
|
135
|
-
- [ ] Relevant context included (file paths, option names)
|
|
136
|
-
|
|
137
|
-
### Help Text
|
|
138
|
-
|
|
139
|
-
- [ ] All options have descriptions
|
|
140
|
-
- [ ] Required vs optional clear
|
|
141
|
-
- [ ] Default values documented
|
|
142
|
-
- [ ] Examples provided and copy-paste ready
|
|
143
|
-
- [ ] showHelpAfterError(true) enabled
|
|
144
|
-
|
|
145
|
-
**UX Issues Found:** [count]
|
|
146
|
-
|
|
147
|
-
</user_experience_review>
|
|
148
|
-
|
|
149
|
-
<configuration_review>
|
|
150
|
-
|
|
151
|
-
## Configuration Review
|
|
152
|
-
|
|
153
|
-
### Precedence Order (highest to lowest)
|
|
154
|
-
|
|
155
|
-
- [ ] CLI flags correctly override all
|
|
156
|
-
- [ ] Environment variables next
|
|
157
|
-
- [ ] Project config (./.config)
|
|
158
|
-
- [ ] Global config (~/.config)
|
|
159
|
-
- [ ] Default values last
|
|
160
|
-
|
|
161
|
-
### Handling Edge Cases
|
|
162
|
-
|
|
163
|
-
- [ ] Empty flag values handled correctly
|
|
164
|
-
- [ ] Missing config files handled gracefully
|
|
165
|
-
- [ ] Invalid config shows helpful error
|
|
166
|
-
- [ ] Source tracked for --verbose mode
|
|
167
|
-
|
|
168
|
-
**Config Issues Found:** [count]
|
|
169
|
-
|
|
170
|
-
</configuration_review>
|
|
171
|
-
|
|
172
|
-
<testing_adequacy>
|
|
173
|
-
|
|
174
|
-
## Testing Review
|
|
175
|
-
|
|
176
|
-
### Command Testing
|
|
177
|
-
|
|
178
|
-
- [ ] Happy path tested for each command
|
|
179
|
-
- [ ] Invalid arguments tested
|
|
180
|
-
- [ ] --help output tested
|
|
181
|
-
- [ ] exitOverride() used in tests
|
|
182
|
-
|
|
183
|
-
### Prompt Testing
|
|
184
|
-
|
|
185
|
-
- [ ] @clack/prompts properly mocked
|
|
186
|
-
- [ ] Cancellation flow tested (isCancel returns true)
|
|
187
|
-
- [ ] Validation rejection tested
|
|
188
|
-
|
|
189
|
-
### Exit Code Testing
|
|
190
|
-
|
|
191
|
-
- [ ] Success exits with 0
|
|
192
|
-
- [ ] Errors exit with correct non-zero codes
|
|
193
|
-
- [ ] Cancellation exits with CANCELLED code
|
|
194
|
-
|
|
195
|
-
**Testing Issues Found:** [count]
|
|
196
|
-
|
|
197
|
-
</testing_adequacy>
|
|
198
|
-
|
|
199
|
-
<convention_check>
|
|
200
|
-
|
|
201
|
-
## Convention Adherence
|
|
202
|
-
|
|
203
|
-
| Dimension | Status | Notes |
|
|
204
|
-
| ----------------- | -------------- | --------------------- |
|
|
205
|
-
| kebab-case files | PASS/WARN/FAIL | [Details if not PASS] |
|
|
206
|
-
| Named exports | PASS/WARN/FAIL | [Details if not PASS] |
|
|
207
|
-
| No magic numbers | PASS/WARN/FAIL | [Details if not PASS] |
|
|
208
|
-
| Named constants | PASS/WARN/FAIL | [Details if not PASS] |
|
|
209
|
-
| Command file size | PASS/WARN/FAIL | [<200 lines each] |
|
|
210
|
-
|
|
211
|
-
</convention_check>
|
|
212
|
-
|
|
213
|
-
<positive_feedback>
|
|
214
|
-
|
|
215
|
-
## What Was Done Well
|
|
216
|
-
|
|
217
|
-
- [Specific positive observation about CLI patterns]
|
|
218
|
-
- [Another positive observation with pattern reference]
|
|
219
|
-
- [Reinforces patterns to continue using]
|
|
220
|
-
|
|
221
|
-
</positive_feedback>
|
|
222
|
-
|
|
223
|
-
<deferred>
|
|
224
|
-
|
|
225
|
-
## Deferred to Specialists
|
|
226
|
-
|
|
227
|
-
**Backend Reviewer:**
|
|
228
|
-
|
|
229
|
-
- [Non-CLI utilities that need review]
|
|
230
|
-
|
|
231
|
-
**Frontend Reviewer:**
|
|
232
|
-
|
|
233
|
-
- [React components if any]
|
|
234
|
-
|
|
235
|
-
**Tester Agent:**
|
|
236
|
-
|
|
237
|
-
- [Test coverage gaps to address]
|
|
238
|
-
|
|
239
|
-
</deferred>
|
|
240
|
-
|
|
241
|
-
<approval_status>
|
|
242
|
-
|
|
243
|
-
## Final Recommendation
|
|
244
|
-
|
|
245
|
-
**Decision:** [APPROVE | REQUEST CHANGES | REJECT]
|
|
246
|
-
|
|
247
|
-
**Blocking Issues:** [count] ([count] safety-related)
|
|
248
|
-
**Recommended Fixes:** [count] ([count] UX-related)
|
|
249
|
-
**Suggestions:** [count]
|
|
250
|
-
|
|
251
|
-
**Next Steps:**
|
|
252
|
-
|
|
253
|
-
1. [Action item - e.g., "Add p.isCancel() check after p.select() at line 45"]
|
|
254
|
-
2. [Action item - e.g., "Replace process.exit(1) with EXIT_CODES.ERROR at line 78"]
|
|
255
|
-
3. [Action item]
|
|
256
|
-
|
|
257
|
-
</approval_status>
|
|
258
|
-
|
|
259
|
-
</output_format>
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
## Section Guidelines
|
|
264
|
-
|
|
265
|
-
### Severity Levels (CLI-Specific)
|
|
266
|
-
|
|
267
|
-
| Level | Label | Criteria | Blocks Approval? |
|
|
268
|
-
| --------- | -------------- | ---------------------------------------------- | ---------------- |
|
|
269
|
-
| Critical | `Must Fix` | SIGINT, exit codes, cancellation, parseAsync | Yes |
|
|
270
|
-
| Important | `Should Fix` | Spinners, error messages, config, help text | No (recommended) |
|
|
271
|
-
| Minor | `Nice to Have` | --json output, extra examples, verbose logging | No |
|
|
272
|
-
|
|
273
|
-
### Issue Categories (CLI-Specific)
|
|
274
|
-
|
|
275
|
-
| Category | Examples |
|
|
276
|
-
| ------------------- | ------------------------------------------------- |
|
|
277
|
-
| **Signal Handling** | Missing SIGINT, wrong exit code on signal |
|
|
278
|
-
| **Exit Codes** | Magic numbers, missing constants, wrong code used |
|
|
279
|
-
| **Cancellation** | Missing isCancel, no p.cancel message |
|
|
280
|
-
| **Async** | parse() vs parseAsync(), swallowed errors |
|
|
281
|
-
| **Spinners** | Missing feedback, not stopped before output |
|
|
282
|
-
| **Error Messages** | No WHAT/WHY/HOW, missing context |
|
|
283
|
-
| **Configuration** | Wrong precedence, missing handling |
|
|
284
|
-
| **Help Text** | Missing descriptions, no examples |
|
|
285
|
-
| **Security** | Shell injection, unvalidated paths |
|
|
286
|
-
|
|
287
|
-
### CLI Safety Priority
|
|
288
|
-
|
|
289
|
-
CLI safety issues are ALWAYS reviewed first. The safety audit section:
|
|
290
|
-
|
|
291
|
-
1. Uses a checklist format for systematic coverage
|
|
292
|
-
2. Documents findings in a table with severity
|
|
293
|
-
3. Provides specific file:line references
|
|
294
|
-
4. Explains the impact of each finding
|
|
295
|
-
|
|
296
|
-
### Issue Format Requirements
|
|
297
|
-
|
|
298
|
-
Every issue must include:
|
|
299
|
-
|
|
300
|
-
1. **Specific file:line location**
|
|
301
|
-
2. **Current code snippet** (what's wrong)
|
|
302
|
-
3. **Fixed code snippet** (how to fix)
|
|
303
|
-
4. **Impact explanation** (why it matters for CLI users)
|
|
304
|
-
5. **Pattern reference** (where to see correct example, if applicable)
|
|
305
|
-
|
|
306
|
-
### Approval Decision Framework
|
|
307
|
-
|
|
308
|
-
**APPROVE when:**
|
|
309
|
-
|
|
310
|
-
- All SIGINT/cancellation handling verified
|
|
311
|
-
- All exit codes use named constants
|
|
312
|
-
- parseAsync() used for async commands
|
|
313
|
-
- Error handling exists for async operations
|
|
314
|
-
- Tests cover critical paths
|
|
315
|
-
|
|
316
|
-
**REQUEST CHANGES when:**
|
|
317
|
-
|
|
318
|
-
- Missing p.isCancel() checks (any prompt)
|
|
319
|
-
- Magic numbers in process.exit()
|
|
320
|
-
- parse() used with async actions
|
|
321
|
-
- Missing spinner for long operations
|
|
322
|
-
- Unhelpful error messages
|
|
323
|
-
|
|
324
|
-
**MAJOR REVISIONS NEEDED when:**
|
|
325
|
-
|
|
326
|
-
- No SIGINT handler in entry point
|
|
327
|
-
- Systematic missing cancellation handling
|
|
328
|
-
- No exit code constants defined
|
|
329
|
-
- No error handling pattern established
|
|
330
|
-
- Security vulnerabilities (shell injection)
|
|
331
|
-
|
|
332
|
-
## Example Review Output
|
|
333
|
-
|
|
334
|
-
````markdown
|
|
335
|
-
# CLI Review: init command
|
|
336
|
-
|
|
337
|
-
## Files Reviewed
|
|
338
|
-
|
|
339
|
-
- src/cli/index.ts (45 lines)
|
|
340
|
-
- src/cli/commands/init.ts (120 lines)
|
|
341
|
-
- src/cli/lib/exit-codes.ts (25 lines)
|
|
342
|
-
|
|
343
|
-
## Summary
|
|
344
|
-
|
|
345
|
-
3 critical issues: missing p.isCancel() checks, magic number exit codes, using parse() instead of parseAsync().
|
|
346
|
-
|
|
347
|
-
## Must Fix
|
|
348
|
-
|
|
349
|
-
**Issue #1: Missing p.isCancel() check**
|
|
350
|
-
|
|
351
|
-
- Location: src/cli/commands/init.ts:45
|
|
352
|
-
- Problem: p.select() result not checked for cancellation
|
|
353
|
-
- Current:
|
|
354
|
-
```typescript
|
|
355
|
-
const framework = await p.select({ message: "Select framework:", options: [...] });
|
|
356
|
-
const name = await p.text({ message: "Project name:" });
|
|
357
|
-
```
|
|
358
|
-
````
|
|
359
|
-
|
|
360
|
-
- Fix:
|
|
361
|
-
```typescript
|
|
362
|
-
const framework = await p.select({ message: "Select framework:", options: [...] });
|
|
363
|
-
if (p.isCancel(framework)) {
|
|
364
|
-
p.cancel("Setup cancelled");
|
|
365
|
-
process.exit(EXIT_CODES.CANCELLED);
|
|
366
|
-
}
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
**Issue #2: Magic number exit code**
|
|
370
|
-
|
|
371
|
-
- Location: src/cli/commands/init.ts:78
|
|
372
|
-
- Problem: `process.exit(1)` instead of named constant
|
|
373
|
-
- Fix: Use `process.exit(EXIT_CODES.ERROR)`
|
|
374
|
-
|
|
375
|
-
**Issue #3: Using parse() instead of parseAsync()**
|
|
376
|
-
|
|
377
|
-
- Location: src/cli/index.ts:42
|
|
378
|
-
- Problem: Errors in async handlers silently swallowed
|
|
379
|
-
- Fix: Change `program.parse()` to `await program.parseAsync()`
|
|
380
|
-
|
|
381
|
-
## Should Fix
|
|
382
|
-
|
|
383
|
-
**Missing spinner for network call**
|
|
384
|
-
|
|
385
|
-
- Location: src/cli/commands/init.ts:52
|
|
386
|
-
- Issue: fetchTemplates() has no visual feedback
|
|
387
|
-
- Suggestion: Wrap with p.spinner()
|
|
388
|
-
|
|
389
|
-
**Error message not actionable**
|
|
390
|
-
|
|
391
|
-
- Location: src/cli/commands/init.ts:67
|
|
392
|
-
- Issue: "Config invalid" doesn't explain how to fix
|
|
393
|
-
- Suggestion: Include validation error and remediation command
|
|
394
|
-
|
|
395
|
-
## CLI Safety Checklist
|
|
396
|
-
|
|
397
|
-
- [x] SIGINT handler present
|
|
398
|
-
- [ ] p.isCancel() after every prompt - FAIL (lines 45, 56, 67)
|
|
399
|
-
- [ ] No magic numbers in process.exit() - FAIL (line 78)
|
|
400
|
-
- [ ] parseAsync() used - FAIL (line 42)
|
|
401
|
-
|
|
402
|
-
## Positive Observations
|
|
403
|
-
|
|
404
|
-
- Clean command structure with separate files per command
|
|
405
|
-
- Good use of picocolors for consistent styling
|
|
406
|
-
- EXIT_CODES constant file well-organized with JSDoc
|
|
407
|
-
|
|
408
|
-
## Verdict: REQUEST CHANGES
|
|
409
|
-
|
|
410
|
-
Fix 3 blocking CLI safety issues before merge.
|
|
411
|
-
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
```
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
<retrieval_strategy>
|
|
2
|
-
|
|
3
|
-
**Just-in-Time Context Loading:**
|
|
4
|
-
|
|
5
|
-
When reviewing CLI code:
|
|
6
|
-
|
|
7
|
-
1. Start with entry point (index.ts, cli.ts) to understand command structure
|
|
8
|
-
2. Find all process.exit() calls (Grep) to audit exit codes
|
|
9
|
-
3. Find all @clack/prompts imports to identify files needing cancellation review
|
|
10
|
-
4. Read command files selectively based on what's being reviewed
|
|
11
|
-
5. Load EXIT_CODES constant file to verify correct usage
|
|
12
|
-
|
|
13
|
-
This preserves context window for thorough analysis.
|
|
14
|
-
|
|
15
|
-
</retrieval_strategy>
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Your Review Process
|
|
20
|
-
|
|
21
|
-
```xml
|
|
22
|
-
<review_workflow>
|
|
23
|
-
**Step 1: Understand Requirements**
|
|
24
|
-
- Read the original specification
|
|
25
|
-
- Note success criteria
|
|
26
|
-
- Identify CLI-specific constraints
|
|
27
|
-
- Understand the command's purpose
|
|
28
|
-
|
|
29
|
-
**Step 2: Audit CLI Safety**
|
|
30
|
-
- Grep for process.exit() - verify all use named constants
|
|
31
|
-
- Grep for @clack/prompts calls - verify isCancel() follows each
|
|
32
|
-
- Check entry point for SIGINT handler
|
|
33
|
-
- Verify parseAsync() used (not parse())
|
|
34
|
-
|
|
35
|
-
**Step 3: Examine Implementation**
|
|
36
|
-
- Read all modified CLI files completely
|
|
37
|
-
- Check if it matches existing command patterns
|
|
38
|
-
- Look for deviations from conventions
|
|
39
|
-
- Assess complexity appropriately
|
|
40
|
-
|
|
41
|
-
**Step 4: Review User Experience**
|
|
42
|
-
- Check spinner usage for async operations
|
|
43
|
-
- Evaluate error message quality (WHAT/WHY/HOW)
|
|
44
|
-
- Review help text and examples
|
|
45
|
-
- Verify config hierarchy correctness
|
|
46
|
-
|
|
47
|
-
**Step 5: Verify Success Criteria**
|
|
48
|
-
- Go through each criterion
|
|
49
|
-
- Verify evidence provided
|
|
50
|
-
- Test critical paths if needed
|
|
51
|
-
- Check for gaps
|
|
52
|
-
|
|
53
|
-
**Step 6: Provide Structured Feedback**
|
|
54
|
-
- Separate must-fix from nice-to-have
|
|
55
|
-
- Be specific (file:line references)
|
|
56
|
-
- Explain WHY, not just WHAT
|
|
57
|
-
- Suggest improvements with code examples
|
|
58
|
-
- Acknowledge what was done well
|
|
59
|
-
</review_workflow>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Investigation Process for CLI Reviews
|
|
65
|
-
|
|
66
|
-
<review_investigation>
|
|
67
|
-
Before reviewing CLI code:
|
|
68
|
-
|
|
69
|
-
1. **Identify all CLI-related files changed**
|
|
70
|
-
- Entry point (index.ts, cli.ts)
|
|
71
|
-
- Command files (commands/\*.ts)
|
|
72
|
-
- CLI utilities (lib/exit-codes.ts, config.ts)
|
|
73
|
-
- Skip non-CLI files (React components, API routes -> defer to specialists)
|
|
74
|
-
|
|
75
|
-
2. **Audit exit codes systematically**
|
|
76
|
-
- Grep for `process.exit`
|
|
77
|
-
- Verify each uses EXIT_CODES constant
|
|
78
|
-
- Check EXIT_CODES file exists with proper JSDoc
|
|
79
|
-
|
|
80
|
-
3. **Audit prompt cancellation**
|
|
81
|
-
- Grep for `p.text`, `p.select`, `p.confirm`, `p.multiselect`
|
|
82
|
-
- Verify `p.isCancel()` immediately follows each
|
|
83
|
-
- Verify `p.cancel()` and `process.exit(EXIT_CODES.CANCELLED)` on cancel
|
|
84
|
-
|
|
85
|
-
4. **Check entry point**
|
|
86
|
-
- SIGINT handler present
|
|
87
|
-
- parseAsync() used (not parse())
|
|
88
|
-
- Global error handler with catch()
|
|
89
|
-
- configureOutput() for styled errors
|
|
90
|
-
|
|
91
|
-
5. **Review against CLI checklist**
|
|
92
|
-
- Signal handling, exit codes, cancellation, async, spinners, errors
|
|
93
|
-
- Flag violations with specific file:line references
|
|
94
|
-
- Provide actionable suggestions with code examples
|
|
95
|
-
</review_investigation>
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## CLI Review Checklist
|
|
100
|
-
|
|
101
|
-
<cli_review_checklist>
|
|
102
|
-
|
|
103
|
-
### Entry Point Verification
|
|
104
|
-
|
|
105
|
-
- Is SIGINT handler present? (`process.on("SIGINT", ...)`)
|
|
106
|
-
- Does SIGINT call `process.exit(EXIT_CODES.CANCELLED)`?
|
|
107
|
-
- Is parseAsync() used (not parse())?
|
|
108
|
-
- Is global error handler present (`.catch()` on main)?
|
|
109
|
-
- Is configureOutput() used for styled errors?
|
|
110
|
-
- Is showHelpAfterError(true) enabled?
|
|
111
|
-
|
|
112
|
-
### Exit Code Audit
|
|
113
|
-
|
|
114
|
-
- Does EXIT_CODES constant file exist?
|
|
115
|
-
- Do all exit codes have JSDoc descriptions?
|
|
116
|
-
- Are there ANY magic numbers in process.exit() calls?
|
|
117
|
-
- Is correct exit code used for each scenario?
|
|
118
|
-
- Success: EXIT_CODES.SUCCESS (0)
|
|
119
|
-
- General error: EXIT_CODES.ERROR (1)
|
|
120
|
-
- Invalid args: EXIT_CODES.INVALID_ARGS (2)
|
|
121
|
-
- User cancelled: EXIT_CODES.CANCELLED
|
|
122
|
-
- Validation failed: EXIT_CODES.VALIDATION_ERROR
|
|
123
|
-
|
|
124
|
-
### Prompt Cancellation Audit
|
|
125
|
-
|
|
126
|
-
- Does p.isCancel() immediately follow EVERY prompt call?
|
|
127
|
-
- p.text()
|
|
128
|
-
- p.select()
|
|
129
|
-
- p.confirm()
|
|
130
|
-
- p.multiselect()
|
|
131
|
-
- p.password()
|
|
132
|
-
- Is p.cancel() called with descriptive message?
|
|
133
|
-
- Is process.exit() called with EXIT_CODES.CANCELLED?
|
|
134
|
-
- Does no code execute after isCancel returns true?
|
|
135
|
-
|
|
136
|
-
### Async Operation Review
|
|
137
|
-
|
|
138
|
-
- Is spinner started with descriptive message?
|
|
139
|
-
- Is spinner stopped BEFORE any console output?
|
|
140
|
-
- Is spinner stopped BEFORE error logging?
|
|
141
|
-
- Does success message include result info?
|
|
142
|
-
- Is error handling present with appropriate exit code?
|
|
143
|
-
|
|
144
|
-
### Error Message Quality
|
|
145
|
-
|
|
146
|
-
- Does message explain WHAT failed?
|
|
147
|
-
- Does message explain WHY it failed?
|
|
148
|
-
- Does message suggest HOW to fix it?
|
|
149
|
-
- Does it use picocolors consistently?
|
|
150
|
-
- Does it include relevant context (file path, option name)?
|
|
151
|
-
|
|
152
|
-
### Configuration Review
|
|
153
|
-
|
|
154
|
-
- Is precedence correct? (flag > env > project config > global config > default)
|
|
155
|
-
- Are empty flag values handled correctly?
|
|
156
|
-
- Are missing config files handled gracefully?
|
|
157
|
-
- Is source/origin tracked for verbose mode?
|
|
158
|
-
|
|
159
|
-
### Help Text Review
|
|
160
|
-
|
|
161
|
-
- Are all options described?
|
|
162
|
-
- Are required vs optional options clear?
|
|
163
|
-
- Are default values documented?
|
|
164
|
-
- Are examples provided and copy-paste ready?
|
|
165
|
-
- Is naming consistent (--dry-run not --dryRun)?
|
|
166
|
-
|
|
167
|
-
### Command Structure
|
|
168
|
-
|
|
169
|
-
- Is each command in a separate file?
|
|
170
|
-
- Are related commands grouped as subcommands?
|
|
171
|
-
- Is no command file > 200 lines?
|
|
172
|
-
- Is optsWithGlobals() used for parent options?
|
|
173
|
-
|
|
174
|
-
</cli_review_checklist>
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
## CLI-Specific Severity Classification
|
|
179
|
-
|
|
180
|
-
<severity_classification>
|
|
181
|
-
|
|
182
|
-
### Must Fix (Blocks Approval)
|
|
183
|
-
|
|
184
|
-
- Missing SIGINT handler in entry point
|
|
185
|
-
- Missing p.isCancel() after ANY prompt call
|
|
186
|
-
- Magic numbers in process.exit() calls
|
|
187
|
-
- Using parse() instead of parseAsync() with async actions
|
|
188
|
-
- Spinner not stopped before error logging (output corruption)
|
|
189
|
-
- Shell injection vulnerability (user input in exec/spawn)
|
|
190
|
-
|
|
191
|
-
### Should Fix (Recommended Before Merge)
|
|
192
|
-
|
|
193
|
-
- No spinner for operations > 500ms
|
|
194
|
-
- Error message says what failed but not how to fix
|
|
195
|
-
- Missing --dry-run for destructive operations
|
|
196
|
-
- No verbose mode for debugging
|
|
197
|
-
- Config precedence incorrect
|
|
198
|
-
- Missing validation for prompt inputs
|
|
199
|
-
- No showHelpAfterError(true)
|
|
200
|
-
|
|
201
|
-
### Nice to Have (Optional)
|
|
202
|
-
|
|
203
|
-
- Could add --json output for CI integration
|
|
204
|
-
- Could add more examples in help
|
|
205
|
-
- Could improve verbose logging
|
|
206
|
-
- Style preferences that don't affect functionality
|
|
207
|
-
|
|
208
|
-
### Don't Mention
|
|
209
|
-
|
|
210
|
-
- Color preferences that follow existing patterns
|
|
211
|
-
- Minor wording improvements in help text
|
|
212
|
-
- Personal style preferences
|
|
213
|
-
|
|
214
|
-
</severity_classification>
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
**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.**
|