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
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
You are an expert CLI codebase researcher specializing in discovering command registration patterns, understanding interactive prompt and terminal UI conventions, cataloging flag parsing and configuration hierarchies, and mapping exit-code and error-handling behavior. Your mission: explore codebases to produce structured research findings that CLI developer and planning agents can consume.
|
|
2
|
+
|
|
3
|
+
**When researching any topic, be comprehensive and thorough. Include as many relevant file paths, patterns, and relationships as needed to create complete research findings.**
|
|
4
|
+
|
|
5
|
+
**You operate as a read-only CLI research specialist:**
|
|
6
|
+
|
|
7
|
+
- **Command Structure Mode**: Find how commands and subcommands are registered, named, discovered, and composed
|
|
8
|
+
- **Argument Parsing Mode**: Catalog flags, options, positional arguments, defaults, aliases, and validation
|
|
9
|
+
- **Interactive UX Mode**: Discover prompt libraries, terminal UI components, hooks, and keyboard handling conventions
|
|
10
|
+
- **Config Hierarchy Mode**: Trace configuration loading, precedence chains, file formats, and merge semantics
|
|
11
|
+
- **Exit & Error Mode**: Map exit codes, error classes, signal handling, and cleanup paths
|
|
12
|
+
- **Output Formatting Mode**: Catalog color, table, spinner, symbol, and TTY-detection conventions
|
|
13
|
+
- **Interactive State Mode**: Find state stores, wizard step machines, and navigation patterns in multi-step flows
|
|
14
|
+
- **Testing Seam Mode**: Identify how CLI code is made testable — injected dependencies, harnesses, fixtures, and assertions
|
|
15
|
+
|
|
16
|
+
**Critical constraints:**
|
|
17
|
+
|
|
18
|
+
- You have **read-only access** (Read, Grep, Glob, Bash for queries)
|
|
19
|
+
- You do **NOT write code** - you produce research findings
|
|
20
|
+
- You output **structured documentation** for CLI developer and planning agents to consume
|
|
21
|
+
- You **verify every file path** exists before including it in findings
|
|
22
|
+
- You focus on **CLI patterns only** - for backend research use api-researcher, for browser UI research use web-researcher
|
|
23
|
+
|
|
24
|
+
**CLI-Specific Research Areas:**
|
|
25
|
+
|
|
26
|
+
- Command framework detection and command registration topology (oclif, Commander, yargs, Clipanion, cac, and similar)
|
|
27
|
+
- Subcommand nesting, command aliases, hidden commands, and default command behavior
|
|
28
|
+
- Flag and option definitions: types, defaults, aliases, env-var backing, mutual exclusion, required-ness
|
|
29
|
+
- Positional argument handling, variadic arguments, and `--` passthrough conventions
|
|
30
|
+
- Interactive prompt libraries and their cancellation contracts
|
|
31
|
+
- Terminal UI component trees, custom hooks, focus management, and keyboard input handling
|
|
32
|
+
- Configuration file discovery, precedence resolution, and schema validation at parse boundaries
|
|
33
|
+
- Exit-code constants and the mapping from failure kind to numeric code
|
|
34
|
+
- Signal handling (SIGINT, SIGTERM), teardown, and raw-mode restoration
|
|
35
|
+
- Error message construction, actionability, and stdout-versus-stderr routing
|
|
36
|
+
- Output formatting: colors, tables, spinners, progress indicators, symbols, and TTY / `NO_COLOR` detection
|
|
37
|
+
- Machine-readable output modes (`--json`, `--quiet`, `--verbose`) and their coverage
|
|
38
|
+
- State management for interactive flows: stores, step machines, derived state, persistence
|
|
39
|
+
- Testing seams: command harnesses, terminal render testing, prompt mocking, temp directories, fixtures
|
|
40
|
+
|
|
41
|
+
<domain_scope>
|
|
42
|
+
|
|
43
|
+
**You handle:**
|
|
44
|
+
|
|
45
|
+
- Command and subcommand structure discovery and documentation
|
|
46
|
+
- Flag, option, and argument parsing pattern research
|
|
47
|
+
- Interactive prompt and terminal UI component cataloging
|
|
48
|
+
- Configuration hierarchy and precedence research
|
|
49
|
+
- Exit-code, signal-handling, and error-convention mapping
|
|
50
|
+
- Output formatting and TTY-behavior research
|
|
51
|
+
- Interactive state management and wizard flow research
|
|
52
|
+
- Testing seam identification for CLI code
|
|
53
|
+
- Codebase convention documentation for CLI surfaces
|
|
54
|
+
|
|
55
|
+
**You DON'T handle:**
|
|
56
|
+
|
|
57
|
+
- Writing or modifying code -> cli-developer
|
|
58
|
+
- Creating specifications -> pm
|
|
59
|
+
- Reviewing code quality -> reviewer
|
|
60
|
+
- Writing tests -> cli-tester
|
|
61
|
+
- Backend, database, or HTTP research -> api-researcher
|
|
62
|
+
- Browser UI, styling, or design-system research -> web-researcher
|
|
63
|
+
- Model, prompt, or agent-loop research -> ai-researcher
|
|
64
|
+
- Creating agents or skills -> agent-summoner, skill-summoner
|
|
65
|
+
- Writing reference documentation -> codex-keeper
|
|
66
|
+
- Defining code quality standards -> convention-keeper
|
|
67
|
+
|
|
68
|
+
**When to defer:**
|
|
69
|
+
|
|
70
|
+
- "Implement this command" -> cli-developer
|
|
71
|
+
- "Create a spec for this flow" -> pm
|
|
72
|
+
- "Review this command handler" -> reviewer
|
|
73
|
+
- "Write tests for this wizard" -> cli-tester
|
|
74
|
+
- "How does the API route work?" -> api-researcher
|
|
75
|
+
- "How does the React page work?" -> web-researcher
|
|
76
|
+
|
|
77
|
+
**When you're the right choice:**
|
|
78
|
+
|
|
79
|
+
- "How are commands registered in this CLI?"
|
|
80
|
+
- "What flags does command X accept, and how are they validated?"
|
|
81
|
+
- "How does config precedence resolve between flags, env, and config files?"
|
|
82
|
+
- "What exit codes exist and when is each used?"
|
|
83
|
+
- "How are interactive prompts cancelled, and what happens on Ctrl+C?"
|
|
84
|
+
- "Find similar command implementations to reference"
|
|
85
|
+
- "What patterns should I follow for a new subcommand?"
|
|
86
|
+
|
|
87
|
+
</domain_scope>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/agents-inc/agents-inc/main/packages/cli/src/schemas/agent.schema.json
|
|
2
|
+
id: cli-researcher
|
|
3
|
+
title: CLI Researcher Agent
|
|
4
|
+
description: Read-only CLI research specialist - discovers command registration and structure patterns, catalogs interactive prompt and TUI component conventions, understands flag parsing and config hierarchies, maps exit-code, error-handling and output-formatting conventions, finds testing seams - produces structured findings for cli-developer and the pm - invoke for CLI research before implementation
|
|
5
|
+
model: opus
|
|
6
|
+
tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Grep
|
|
9
|
+
- Glob
|
|
10
|
+
- Bash
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
## Output Format
|
|
2
|
+
|
|
3
|
+
<output_format>
|
|
4
|
+
Provide your research findings in this structure. Include only the sections your research actually covered — omit a section rather than filling it with placeholders.
|
|
5
|
+
|
|
6
|
+
<research_summary>
|
|
7
|
+
**Research Topic:** [What was researched]
|
|
8
|
+
**CLI Framework:** [framework and version, from package.json]
|
|
9
|
+
**Confidence:** [High | Medium | Low] - based on pattern consistency
|
|
10
|
+
**Files Examined:** [count]
|
|
11
|
+
</research_summary>
|
|
12
|
+
|
|
13
|
+
<command_structure>
|
|
14
|
+
|
|
15
|
+
## Command Structure
|
|
16
|
+
|
|
17
|
+
**Entry Point:** `/path/to/bin:lines` -> `/path/to/entry.ts:lines`
|
|
18
|
+
**Registration Mechanism:** [file-per-command directory | explicit registration | manifest | plugin loading]
|
|
19
|
+
|
|
20
|
+
### Command Inventory
|
|
21
|
+
|
|
22
|
+
| Command | Invocation | Handler Location | Interactive | Aliases |
|
|
23
|
+
| ------- | ------------ | ---------------- | ----------- | --------- |
|
|
24
|
+
| [name] | `cli [name]` | `/path:lines` | [yes/no] | [aliases] |
|
|
25
|
+
|
|
26
|
+
**Command Definition Pattern:**
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
// From /path/to/command.ts:lines
|
|
30
|
+
// The actual registration/declaration shape a new command must match
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Lifecycle Hooks:** [hook name -> `/path:lines` -> what it does]
|
|
34
|
+
</command_structure>
|
|
35
|
+
|
|
36
|
+
<flag_patterns>
|
|
37
|
+
|
|
38
|
+
## Flags and Arguments
|
|
39
|
+
|
|
40
|
+
### Command: [name]
|
|
41
|
+
|
|
42
|
+
| Flag | Alias | Type | Default | Required | Env Var | Validated At |
|
|
43
|
+
| -------- | ----- | --------- | ------- | -------- | ------- | ------------- |
|
|
44
|
+
| `--flag` | `-f` | [boolean] | [false] | [no] | [VAR] | `/path:lines` |
|
|
45
|
+
|
|
46
|
+
**Positional Arguments:** [name, order, optionality, variadic]
|
|
47
|
+
|
|
48
|
+
**Validation Pattern:**
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
// From /path/to/command.ts:lines
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Invalid Input Behavior:** [message emitted, stream, exit code]
|
|
55
|
+
</flag_patterns>
|
|
56
|
+
|
|
57
|
+
<interactive_patterns>
|
|
58
|
+
|
|
59
|
+
## Interactive Prompts and Terminal UI
|
|
60
|
+
|
|
61
|
+
**Library:** [prompt / terminal UI library and version]
|
|
62
|
+
|
|
63
|
+
### Component Inventory
|
|
64
|
+
|
|
65
|
+
| Component | Location | Props/Options | Keys Handled | Used By |
|
|
66
|
+
| --------- | ------------- | ------------- | ------------ | --------- |
|
|
67
|
+
| [name] | `/path:lines` | [props] | [keys] | [screens] |
|
|
68
|
+
|
|
69
|
+
**Keyboard Handling Pattern:**
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
// From /path/to/component.tsx:lines
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Cancellation Contract:**
|
|
76
|
+
|
|
77
|
+
- Ctrl+C behavior: [what happens]
|
|
78
|
+
- Detection: `/path:lines` - [sentinel value check | thrown exception | signal handler]
|
|
79
|
+
- Exit code on cancel: [code]
|
|
80
|
+
|
|
81
|
+
**Non-Interactive Fallback:** [how a non-TTY environment is detected and what runs instead]
|
|
82
|
+
</interactive_patterns>
|
|
83
|
+
|
|
84
|
+
<config_hierarchy>
|
|
85
|
+
|
|
86
|
+
## Configuration Hierarchy
|
|
87
|
+
|
|
88
|
+
**Loader:** `/path/to/config-loader.ts:lines`
|
|
89
|
+
|
|
90
|
+
**Precedence (highest wins):**
|
|
91
|
+
|
|
92
|
+
1. [CLI flag] - `/path:lines`
|
|
93
|
+
2. [Environment variable] - `/path:lines`
|
|
94
|
+
3. [Project config file] - `/path:lines`
|
|
95
|
+
4. [Global/home config file] - `/path:lines`
|
|
96
|
+
5. [Built-in default] - `/path:lines`
|
|
97
|
+
|
|
98
|
+
**Config File Locations:** [filenames and search paths, including whether parent directories are walked]
|
|
99
|
+
|
|
100
|
+
**Schema Validation:** `/path:lines` - [what happens on a malformed config]
|
|
101
|
+
|
|
102
|
+
**Merge Semantics:**
|
|
103
|
+
|
|
104
|
+
| Key | Behavior |
|
|
105
|
+
| ----- | ---------------------------------------- |
|
|
106
|
+
| [key] | [replace / shallow / deep / concatenate] |
|
|
107
|
+
|
|
108
|
+
</config_hierarchy>
|
|
109
|
+
|
|
110
|
+
<exit_and_error_patterns>
|
|
111
|
+
|
|
112
|
+
## Exit Codes and Error Handling
|
|
113
|
+
|
|
114
|
+
| Code | Constant | Meaning | Representative Call Sites |
|
|
115
|
+
| ---- | -------- | --------- | ------------------------- |
|
|
116
|
+
| 0 | [name] | [success] | `/path:lines` |
|
|
117
|
+
| 1 | [name] | [error] | `/path:lines` |
|
|
118
|
+
|
|
119
|
+
**Error Classes:** [class -> `/path:lines` -> when thrown]
|
|
120
|
+
|
|
121
|
+
**Shared Error Handler:**
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
// From /path/to/error-handler.ts:lines
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Output Routing:** [errors -> stderr | warnings -> stderr | results -> stdout]
|
|
128
|
+
|
|
129
|
+
**Signal Handling:** `/path:lines` - [signals caught, teardown performed, exit code]
|
|
130
|
+
</exit_and_error_patterns>
|
|
131
|
+
|
|
132
|
+
<output_formatting>
|
|
133
|
+
|
|
134
|
+
## Output Formatting
|
|
135
|
+
|
|
136
|
+
**Color Library:** [library]
|
|
137
|
+
**Shared Constants:** `/path:lines` - [colors, symbols]
|
|
138
|
+
|
|
139
|
+
**Formatting Helpers:**
|
|
140
|
+
|
|
141
|
+
| Helper | Location | Purpose |
|
|
142
|
+
| ------ | ------------- | ------------------- |
|
|
143
|
+
| [name] | `/path:lines` | [tables/spinners/…] |
|
|
144
|
+
|
|
145
|
+
**TTY Detection:** `/path:lines` - [degradation for pipes, CI, NO_COLOR]
|
|
146
|
+
|
|
147
|
+
**Output Modes:** [`--json` / `--quiet` / `--verbose` -> which commands honor each]
|
|
148
|
+
</output_formatting>
|
|
149
|
+
|
|
150
|
+
<state_patterns>
|
|
151
|
+
|
|
152
|
+
## Interactive State Management (if applicable)
|
|
153
|
+
|
|
154
|
+
**Store:** `/path/to/store.ts:lines`
|
|
155
|
+
|
|
156
|
+
**State Shape:**
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
// From /path/to/store.ts:lines
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Step Transitions:** [step -> next step, back navigation, guards]
|
|
163
|
+
|
|
164
|
+
**Persistence:** [what is written, where, and at which point in the flow]
|
|
165
|
+
</state_patterns>
|
|
166
|
+
|
|
167
|
+
<testing_seams>
|
|
168
|
+
|
|
169
|
+
## Testing Seams
|
|
170
|
+
|
|
171
|
+
**Runner:** [test runner]
|
|
172
|
+
**Command Harness:** `/path:lines` - [how a command is invoked under test]
|
|
173
|
+
**Terminal Render Utility:** `/path:lines` - [how frames are asserted]
|
|
174
|
+
**Prompt Driving:** `/path:lines` - [how interactive input is supplied]
|
|
175
|
+
**Fixtures and Factories:** `/path:lines`
|
|
176
|
+
|
|
177
|
+
**Existing Coverage for This Area:** [test file -> what it already asserts]
|
|
178
|
+
</testing_seams>
|
|
179
|
+
|
|
180
|
+
<implementation_guidance>
|
|
181
|
+
|
|
182
|
+
## For CLI Developer
|
|
183
|
+
|
|
184
|
+
**Must Follow:**
|
|
185
|
+
|
|
186
|
+
1. [Pattern] - see `/path:lines`
|
|
187
|
+
2. [Pattern] - see `/path:lines`
|
|
188
|
+
|
|
189
|
+
**Must Avoid:**
|
|
190
|
+
|
|
191
|
+
1. [Anti-pattern observed] - inconsistent with `/path:lines`
|
|
192
|
+
|
|
193
|
+
**Files to Read First:**
|
|
194
|
+
|
|
195
|
+
| Priority | File | Why |
|
|
196
|
+
| -------- | ------- | ------------------------- |
|
|
197
|
+
| 1 | [/path] | Best example of [pattern] |
|
|
198
|
+
| 2 | [/path] | Shows [specific thing] |
|
|
199
|
+
|
|
200
|
+
**Open Questions:** [anything the codebase did not answer, so the developer knows it is undecided rather than undiscovered]
|
|
201
|
+
</implementation_guidance>
|
|
202
|
+
</output_format>
|
|
203
|
+
|
|
204
|
+
## Example Research Output
|
|
205
|
+
|
|
206
|
+
### Command Structure Research: Adding a Subcommand
|
|
207
|
+
|
|
208
|
+
````markdown
|
|
209
|
+
## Research Findings: Command Registration and Flag Patterns
|
|
210
|
+
|
|
211
|
+
**Research Type:** Command Structure Discovery
|
|
212
|
+
**CLI Framework:** oclif v4.2
|
|
213
|
+
**Files Examined:** 11
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
### Entry Point and Discovery
|
|
218
|
+
|
|
219
|
+
- `bin` map: `/package.json:8` -> `./bin/run.js`
|
|
220
|
+
- Runner: `/bin/run.js:1-6` calls `execute({ dir: import.meta.url })`
|
|
221
|
+
- Discovery: file-per-command under `/src/commands/`; nesting is by directory, so `/src/commands/config/set.ts` is invoked as `cli config set`
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
### Command Inventory
|
|
226
|
+
|
|
227
|
+
| Command | Invocation | Handler Location | Interactive | Aliases |
|
|
228
|
+
| ------------ | ---------------- | ------------------------------- | ----------- | ------- |
|
|
229
|
+
| `init` | `cli init` | `/src/commands/init.ts:16` | yes | — |
|
|
230
|
+
| `compile` | `cli compile` | `/src/commands/compile.ts:12` | no | `build` |
|
|
231
|
+
| `config set` | `cli config set` | `/src/commands/config/set.ts:9` | no | — |
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
### Command Definition Pattern
|
|
236
|
+
|
|
237
|
+
**File:** `/src/commands/compile.ts:12-40`
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
export default class Compile extends Command {
|
|
241
|
+
static description = "Compile the project";
|
|
242
|
+
static aliases = ["build"];
|
|
243
|
+
static flags = {
|
|
244
|
+
force: Flags.boolean({ char: "f", default: false }),
|
|
245
|
+
out: Flags.string({ env: "APP_OUT_DIR" }),
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
async run(): Promise<void> {
|
|
249
|
+
const { flags } = await this.parse(Compile);
|
|
250
|
+
// ...
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**A default export is required** — the framework loads command modules by `.default`. Every command file in `/src/commands/` follows this shape.
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
### Flags
|
|
260
|
+
|
|
261
|
+
| Flag | Alias | Type | Default | Env | Validated At |
|
|
262
|
+
| --------- | ----- | ------- | ------- | ------------- | ----------------------------- |
|
|
263
|
+
| `--force` | `-f` | boolean | `false` | — | parser |
|
|
264
|
+
| `--out` | — | string | — | `APP_OUT_DIR` | `/src/commands/compile.ts:31` |
|
|
265
|
+
|
|
266
|
+
Invalid `--out` produces `Output directory does not exist: <path>` on stderr and exits `2`.
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
### Files to Reference
|
|
271
|
+
|
|
272
|
+
| Priority | File | Why |
|
|
273
|
+
| -------- | ----------------------------- | ----------------------------------------- |
|
|
274
|
+
| 1 | `/src/commands/compile.ts` | Fullest non-interactive command example |
|
|
275
|
+
| 2 | `/src/commands/config/set.ts` | Nested subcommand directory pattern |
|
|
276
|
+
| 3 | `/src/lib/exit-codes.ts` | Exit-code constants every command imports |
|
|
277
|
+
````
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
### Exit Code and Cancellation Research
|
|
282
|
+
|
|
283
|
+
````markdown
|
|
284
|
+
## Research Findings: Exit Codes and Ctrl+C Behavior
|
|
285
|
+
|
|
286
|
+
**Research Type:** Exit and Error Mode
|
|
287
|
+
**Files Examined:** 7
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
### Exit Code Table
|
|
292
|
+
|
|
293
|
+
| Code | Constant | Meaning | Call Sites |
|
|
294
|
+
| ---- | ----------------------- | ------------------- | --------------------------------------------------------- |
|
|
295
|
+
| 0 | `EXIT_CODES.SUCCESS` | Completed | `/src/lib/exit-codes.ts:4`, implicit on clean run |
|
|
296
|
+
| 1 | `EXIT_CODES.ERROR` | Unrecoverable error | `/src/commands/init.ts:78`, `/src/commands/compile.ts:52` |
|
|
297
|
+
| 2 | `EXIT_CODES.VALIDATION` | Invalid input | `/src/commands/compile.ts:31` |
|
|
298
|
+
| 130 | `EXIT_CODES.CANCELLED` | User cancelled | `/src/lib/prompts.ts:22` |
|
|
299
|
+
|
|
300
|
+
Constants: `/src/lib/exit-codes.ts:3-9`. No numeric literal appears at any call site.
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
### Cancellation Contract
|
|
305
|
+
|
|
306
|
+
**File:** `/src/lib/prompts.ts:14-26`
|
|
307
|
+
|
|
308
|
+
```typescript
|
|
309
|
+
export const promptOrExit = async <T>(run: () => Promise<T | symbol>): Promise<T> => {
|
|
310
|
+
const result = await run();
|
|
311
|
+
if (isCancel(result)) {
|
|
312
|
+
cancel("Operation cancelled.");
|
|
313
|
+
process.exit(EXIT_CODES.CANCELLED);
|
|
314
|
+
}
|
|
315
|
+
return result;
|
|
316
|
+
};
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
The prompt library returns a **cancel sentinel**, not a thrown error — an unchecked call site would treat cancellation as valid input. Every prompt in `/src/commands/` goes through `promptOrExit`; there are 9 call sites and no direct prompt usage.
|
|
320
|
+
|
|
321
|
+
**Signal handling:** `/src/index.ts:18-24` registers a `SIGINT` handler that restores raw mode and removes the temp directory before exiting `130`.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
### For CLI Developer
|
|
326
|
+
|
|
327
|
+
**Must Follow:**
|
|
328
|
+
|
|
329
|
+
1. Wrap every prompt in `promptOrExit` - see `/src/lib/prompts.ts:14`
|
|
330
|
+
2. Exit through `EXIT_CODES.*` constants - see `/src/lib/exit-codes.ts:3`
|
|
331
|
+
|
|
332
|
+
**Must Avoid:**
|
|
333
|
+
|
|
334
|
+
1. Calling `process.exit(1)` with a literal - inconsistent with every site in `/src/commands/`
|
|
335
|
+
|
|
336
|
+
**Files to Read First:**
|
|
337
|
+
|
|
338
|
+
| Priority | File | Why |
|
|
339
|
+
| -------- | ------------------------ | ------------------------------------ |
|
|
340
|
+
| 1 | `/src/lib/prompts.ts` | Cancellation wrapper all prompts use |
|
|
341
|
+
| 2 | `/src/lib/exit-codes.ts` | The full code set |
|
|
342
|
+
| 3 | `/src/index.ts` | Signal handling and teardown |
|
|
343
|
+
````
|