agents-inc 0.161.1 → 0.163.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 +42 -0
- package/dist/{chunk-DOQUAWL4.js → chunk-3CSK5CQN.js} +17 -16
- package/dist/chunk-3CSK5CQN.js.map +1 -0
- package/dist/{chunk-VFZF7LVY.js → chunk-3WVH2CTK.js} +3 -3
- package/dist/{chunk-SBL4AYSB.js → chunk-4VL3CEOS.js} +3 -3
- package/dist/{chunk-QM3ZNOWJ.js → chunk-6MV4JOCL.js} +2 -2
- package/dist/{chunk-ADSIYZGS.js → chunk-7ANJQLPJ.js} +2 -2
- package/dist/{chunk-3JDVBHWO.js → chunk-7REKOTKG.js} +2 -2
- package/dist/{chunk-MI7LKLD7.js → chunk-ABAZMMG4.js} +2 -2
- package/dist/{chunk-2P3MKX5Q.js → chunk-AOTCIUGX.js} +2 -2
- package/dist/{chunk-GUFRQJAE.js → chunk-ARYNOWKF.js} +8 -8
- package/dist/{chunk-3QBOVV6A.js → chunk-AVK2HEKB.js} +5 -5
- package/dist/{chunk-3QBOVV6A.js.map → chunk-AVK2HEKB.js.map} +1 -1
- package/dist/{chunk-Z56AUTER.js → chunk-B3Y3QMWI.js} +4 -4
- package/dist/{chunk-WDN4HAN7.js → chunk-DSL66I4N.js} +6 -6
- package/dist/{chunk-SXYFATQN.js → chunk-ECURHW3T.js} +12 -12
- package/dist/{chunk-TPRRWOHZ.js → chunk-FLW25ORT.js} +3 -3
- package/dist/{chunk-YC4CLTQE.js → chunk-IAVEMTN4.js} +35 -14
- package/dist/chunk-IAVEMTN4.js.map +1 -0
- package/dist/{chunk-F5JTW3HZ.js → chunk-JIERYE6B.js} +5 -5
- package/dist/{chunk-UE3MLDL2.js → chunk-K5ITEA3I.js} +4 -4
- package/dist/{chunk-Q4KCUR2T.js → chunk-LT5GXEB2.js} +6 -6
- package/dist/{chunk-C2K7Q7HO.js → chunk-NKGYKOB7.js} +3 -3
- package/dist/{chunk-X6KXPRKI.js → chunk-NQXO4LR3.js} +4 -4
- package/dist/{chunk-7ZFEZN4Y.js → chunk-NTF4UXGK.js} +71 -9
- package/dist/{chunk-7ZFEZN4Y.js.map → chunk-NTF4UXGK.js.map} +1 -1
- package/dist/{chunk-IAN7QDBR.js → chunk-O664ITBD.js} +108 -25
- package/dist/chunk-O664ITBD.js.map +1 -0
- package/dist/{chunk-77YZFVQD.js → chunk-PHCPUQVR.js} +2 -2
- package/dist/{chunk-U5O4BWKI.js → chunk-PM3374E7.js} +43 -41
- package/dist/chunk-PM3374E7.js.map +1 -0
- package/dist/{chunk-ESI3JYOQ.js → chunk-Q4IRRVXK.js} +3 -3
- package/dist/{chunk-EN5MEPAS.js → chunk-QGUP3QJF.js} +5 -5
- package/dist/{chunk-MSUTHS2V.js → chunk-QZX7SYKU.js} +2 -2
- package/dist/{chunk-ZPFM2VHZ.js → chunk-RGYDFBCT.js} +4 -4
- package/dist/{chunk-4NAWM4OQ.js → chunk-S63LXWMC.js} +2 -2
- package/dist/{chunk-QTLYSVYE.js → chunk-SMSB6YZW.js} +3 -3
- package/dist/{chunk-IV42Z63R.js → chunk-UITEKY2R.js} +19 -9
- package/dist/chunk-UITEKY2R.js.map +1 -0
- package/dist/{chunk-SWYV7QXX.js → chunk-URXIQE7I.js} +2 -2
- package/dist/{chunk-ZYXQUU2P.js → chunk-V5GLL2JB.js} +7 -7
- package/dist/{chunk-JEJJHRZA.js → chunk-X4SSJZLY.js} +77 -8
- package/dist/chunk-X4SSJZLY.js.map +1 -0
- package/dist/{chunk-QG4NRKZD.js → chunk-XATLUKXK.js} +5 -5
- package/dist/{chunk-RLSZWDTB.js → chunk-XHPWTL4I.js} +3 -3
- package/dist/{chunk-7WKNPDN2.js → chunk-XPDVAJDH.js} +112 -32
- package/dist/chunk-XPDVAJDH.js.map +1 -0
- package/dist/{chunk-FL2CJ5T5.js → chunk-YRS3QZP2.js} +3 -3
- package/dist/{chunk-FXL63LDL.js → chunk-ZVXGW2IC.js} +2 -2
- package/dist/commands/build/marketplace.js +7 -7
- package/dist/commands/build/plugins.js +7 -7
- package/dist/commands/compile.js +82 -30
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/doctor.js +10 -10
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +40 -38
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +10 -10
- package/dist/commands/init.js +36 -36
- package/dist/commands/list.js +8 -8
- package/dist/commands/new/marketplace.js +7 -7
- package/dist/commands/search.js +15 -14
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/share.js +22 -16
- package/dist/commands/share.js.map +1 -1
- package/dist/commands/uninstall.js +11 -11
- package/dist/commands/update.js +6 -6
- package/dist/components/common/removal-plan-confirm.js +2 -2
- package/dist/components/common/select-list.js +2 -2
- package/dist/components/wizard/category-grid.js +4 -4
- package/dist/components/wizard/checkbox-grid.js +4 -4
- package/dist/components/wizard/domain-selection.js +9 -9
- package/dist/components/wizard/run-wizard-session.js +26 -26
- package/dist/components/wizard/scroll-affordance.js +2 -2
- package/dist/components/wizard/skill-agent-summary.js +5 -5
- package/dist/components/wizard/source-grid.js +5 -5
- package/dist/components/wizard/stack-selection.js +7 -7
- package/dist/components/wizard/step-agents.js +8 -8
- package/dist/components/wizard/step-build.js +7 -7
- package/dist/components/wizard/step-confirm.js +9 -9
- package/dist/components/wizard/step-sources.js +8 -8
- package/dist/components/wizard/step-stack.js +8 -8
- package/dist/components/wizard/summary-panel.js +8 -8
- package/dist/components/wizard/toast.js +2 -2
- package/dist/components/wizard/wizard-layout.js +12 -12
- package/dist/components/wizard/wizard-tabs.js +2 -2
- package/dist/components/wizard/wizard.js +25 -25
- package/dist/hooks/init.js +36 -36
- package/dist/load-agent-defs-5J2MZLAA.js +13 -0
- package/dist/recompile-project-agents-FCJLHAE3.js +17 -0
- package/dist/{source-loader-7T754EZC.js → source-loader-GRBVNRAW.js} +4 -4
- package/dist/src/agents/_templates/agent.liquid +30 -122
- package/dist/src/agents/_templates/methodologies/operating-principles.liquid +27 -0
- package/dist/src/agents/developer/ai-developer/critical-reminders.md +9 -48
- package/dist/src/agents/developer/ai-developer/critical-requirements.md +29 -47
- package/dist/src/agents/developer/ai-developer/identity.md +31 -40
- package/dist/src/agents/developer/ai-developer/output.md +92 -245
- package/dist/src/agents/developer/ai-developer/playbook.md +116 -270
- package/dist/src/agents/developer/api-developer/critical-reminders.md +9 -40
- package/dist/src/agents/developer/api-developer/critical-requirements.md +19 -34
- package/dist/src/agents/developer/api-developer/identity.md +18 -33
- package/dist/src/agents/developer/api-developer/output.md +118 -255
- package/dist/src/agents/developer/api-developer/playbook.md +103 -284
- package/dist/src/agents/developer/cli-developer/critical-reminders.md +9 -45
- package/dist/src/agents/developer/cli-developer/critical-requirements.md +21 -39
- package/dist/src/agents/developer/cli-developer/identity.md +22 -36
- package/dist/src/agents/developer/cli-developer/output.md +72 -185
- package/dist/src/agents/developer/cli-developer/playbook.md +107 -307
- package/dist/src/agents/developer/web-developer/critical-reminders.md +9 -34
- package/dist/src/agents/developer/web-developer/critical-requirements.md +11 -30
- package/dist/src/agents/developer/web-developer/identity.md +15 -15
- package/dist/src/agents/developer/web-developer/output.md +67 -220
- package/dist/src/agents/developer/web-developer/playbook.md +93 -283
- package/dist/src/agents/meta/agent-summoner/critical-reminders.md +6 -39
- package/dist/src/agents/meta/agent-summoner/critical-requirements.md +6 -44
- package/dist/src/agents/meta/agent-summoner/identity.md +20 -23
- package/dist/src/agents/meta/agent-summoner/metadata.yaml +1 -1
- package/dist/src/agents/meta/agent-summoner/output.md +85 -261
- package/dist/src/agents/meta/agent-summoner/playbook.md +220 -1398
- package/dist/src/agents/meta/codex-keeper/critical-reminders.md +11 -32
- package/dist/src/agents/meta/codex-keeper/critical-requirements.md +32 -22
- package/dist/src/agents/meta/codex-keeper/identity.md +31 -32
- package/dist/src/agents/meta/codex-keeper/output.md +49 -335
- package/dist/src/agents/meta/codex-keeper/playbook.md +151 -1112
- package/dist/src/agents/meta/convention-keeper/critical-reminders.md +11 -26
- package/dist/src/agents/meta/convention-keeper/critical-requirements.md +36 -25
- package/dist/src/agents/meta/convention-keeper/identity.md +35 -21
- package/dist/src/agents/meta/convention-keeper/metadata.yaml +1 -1
- package/dist/src/agents/meta/convention-keeper/output.md +33 -123
- package/dist/src/agents/meta/convention-keeper/playbook.md +64 -144
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +8 -71
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +9 -73
- package/dist/src/agents/meta/skill-summoner/identity.md +18 -22
- package/dist/src/agents/meta/skill-summoner/metadata.yaml +1 -1
- package/dist/src/agents/meta/skill-summoner/output.md +164 -270
- package/dist/src/agents/meta/skill-summoner/playbook.md +150 -1398
- package/dist/src/agents/planning/pm/critical-requirements.md +23 -25
- package/dist/src/agents/planning/pm/identity.md +24 -23
- package/dist/src/agents/planning/pm/output.md +5 -9
- package/dist/src/agents/planning/pm/playbook.md +50 -140
- package/dist/src/agents/researcher/ai-researcher/critical-reminders.md +8 -53
- package/dist/src/agents/researcher/ai-researcher/critical-requirements.md +31 -26
- package/dist/src/agents/researcher/ai-researcher/identity.md +36 -77
- package/dist/src/agents/researcher/ai-researcher/output.md +44 -151
- package/dist/src/agents/researcher/ai-researcher/playbook.md +130 -394
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +6 -38
- package/dist/src/agents/researcher/api-researcher/critical-requirements.md +15 -17
- package/dist/src/agents/researcher/api-researcher/identity.md +29 -63
- package/dist/src/agents/researcher/api-researcher/output.md +61 -153
- package/dist/src/agents/researcher/api-researcher/playbook.md +63 -140
- package/dist/src/agents/researcher/cli-researcher/critical-reminders.md +8 -45
- package/dist/src/agents/researcher/cli-researcher/critical-requirements.md +29 -24
- package/dist/src/agents/researcher/cli-researcher/identity.md +36 -78
- package/dist/src/agents/researcher/cli-researcher/output.md +22 -128
- package/dist/src/agents/researcher/cli-researcher/playbook.md +108 -263
- package/dist/src/agents/researcher/web-researcher/critical-reminders.md +5 -34
- package/dist/src/agents/researcher/web-researcher/critical-requirements.md +11 -16
- package/dist/src/agents/researcher/web-researcher/identity.md +28 -60
- package/dist/src/agents/researcher/web-researcher/output.md +41 -134
- package/dist/src/agents/researcher/web-researcher/playbook.md +48 -162
- package/dist/src/agents/reviewer/reviewer/critical-reminders.md +9 -22
- package/dist/src/agents/reviewer/reviewer/critical-requirements.md +24 -19
- package/dist/src/agents/reviewer/reviewer/identity.md +23 -20
- package/dist/src/agents/reviewer/reviewer/metadata.yaml +7 -2
- package/dist/src/agents/reviewer/reviewer/output.md +8 -26
- package/dist/src/agents/reviewer/reviewer/playbook.md +50 -91
- package/dist/src/agents/tester/ai-tester/critical-reminders.md +7 -40
- package/dist/src/agents/tester/ai-tester/critical-requirements.md +39 -31
- package/dist/src/agents/tester/ai-tester/identity.md +25 -40
- package/dist/src/agents/tester/ai-tester/output.md +8 -144
- package/dist/src/agents/tester/ai-tester/playbook.md +28 -40
- package/dist/src/agents/tester/api-tester/critical-reminders.md +8 -35
- package/dist/src/agents/tester/api-tester/critical-requirements.md +36 -25
- package/dist/src/agents/tester/api-tester/identity.md +18 -29
- package/dist/src/agents/tester/api-tester/metadata.yaml +1 -1
- package/dist/src/agents/tester/api-tester/output.md +3 -86
- package/dist/src/agents/tester/api-tester/playbook.md +10 -2
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +7 -30
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +29 -21
- package/dist/src/agents/tester/cli-tester/identity.md +25 -33
- package/dist/src/agents/tester/cli-tester/output.md +13 -105
- package/dist/src/agents/tester/cli-tester/playbook.md +8 -5
- package/dist/src/agents/tester/web-tester/critical-reminders.md +7 -25
- package/dist/src/agents/tester/web-tester/critical-requirements.md +25 -16
- package/dist/src/agents/tester/web-tester/identity.md +24 -30
- package/dist/src/agents/tester/web-tester/output.md +11 -116
- package/dist/src/agents/tester/web-tester/playbook.md +58 -221
- package/dist/stores/wizard-store.js +4 -4
- package/package.json +2 -2
- package/src/agents/_templates/agent.liquid +30 -122
- package/src/agents/_templates/methodologies/operating-principles.liquid +27 -0
- package/src/agents/developer/ai-developer/critical-reminders.md +9 -48
- package/src/agents/developer/ai-developer/critical-requirements.md +29 -47
- package/src/agents/developer/ai-developer/identity.md +31 -40
- package/src/agents/developer/ai-developer/output.md +92 -245
- package/src/agents/developer/ai-developer/playbook.md +116 -270
- package/src/agents/developer/api-developer/critical-reminders.md +9 -40
- package/src/agents/developer/api-developer/critical-requirements.md +19 -34
- package/src/agents/developer/api-developer/identity.md +18 -33
- package/src/agents/developer/api-developer/output.md +118 -255
- package/src/agents/developer/api-developer/playbook.md +103 -284
- package/src/agents/developer/cli-developer/critical-reminders.md +9 -45
- package/src/agents/developer/cli-developer/critical-requirements.md +21 -39
- package/src/agents/developer/cli-developer/identity.md +22 -36
- package/src/agents/developer/cli-developer/output.md +72 -185
- package/src/agents/developer/cli-developer/playbook.md +107 -307
- package/src/agents/developer/web-developer/critical-reminders.md +9 -34
- package/src/agents/developer/web-developer/critical-requirements.md +11 -30
- package/src/agents/developer/web-developer/identity.md +15 -15
- package/src/agents/developer/web-developer/output.md +67 -220
- package/src/agents/developer/web-developer/playbook.md +93 -283
- package/src/agents/meta/agent-summoner/critical-reminders.md +6 -39
- package/src/agents/meta/agent-summoner/critical-requirements.md +6 -44
- package/src/agents/meta/agent-summoner/identity.md +20 -23
- package/src/agents/meta/agent-summoner/metadata.yaml +1 -1
- package/src/agents/meta/agent-summoner/output.md +85 -261
- package/src/agents/meta/agent-summoner/playbook.md +220 -1398
- package/src/agents/meta/codex-keeper/critical-reminders.md +11 -32
- package/src/agents/meta/codex-keeper/critical-requirements.md +32 -22
- package/src/agents/meta/codex-keeper/identity.md +31 -32
- package/src/agents/meta/codex-keeper/output.md +49 -335
- package/src/agents/meta/codex-keeper/playbook.md +151 -1112
- package/src/agents/meta/convention-keeper/critical-reminders.md +11 -26
- package/src/agents/meta/convention-keeper/critical-requirements.md +36 -25
- package/src/agents/meta/convention-keeper/identity.md +35 -21
- package/src/agents/meta/convention-keeper/metadata.yaml +1 -1
- package/src/agents/meta/convention-keeper/output.md +33 -123
- package/src/agents/meta/convention-keeper/playbook.md +64 -144
- package/src/agents/meta/skill-summoner/critical-reminders.md +8 -71
- package/src/agents/meta/skill-summoner/critical-requirements.md +9 -73
- package/src/agents/meta/skill-summoner/identity.md +18 -22
- package/src/agents/meta/skill-summoner/metadata.yaml +1 -1
- package/src/agents/meta/skill-summoner/output.md +164 -270
- package/src/agents/meta/skill-summoner/playbook.md +150 -1398
- package/src/agents/planning/pm/critical-requirements.md +23 -25
- package/src/agents/planning/pm/identity.md +24 -23
- package/src/agents/planning/pm/output.md +5 -9
- package/src/agents/planning/pm/playbook.md +50 -140
- package/src/agents/researcher/ai-researcher/critical-reminders.md +8 -53
- package/src/agents/researcher/ai-researcher/critical-requirements.md +31 -26
- package/src/agents/researcher/ai-researcher/identity.md +36 -77
- package/src/agents/researcher/ai-researcher/output.md +44 -151
- package/src/agents/researcher/ai-researcher/playbook.md +130 -394
- package/src/agents/researcher/api-researcher/critical-reminders.md +6 -38
- package/src/agents/researcher/api-researcher/critical-requirements.md +15 -17
- package/src/agents/researcher/api-researcher/identity.md +29 -63
- package/src/agents/researcher/api-researcher/output.md +61 -153
- package/src/agents/researcher/api-researcher/playbook.md +63 -140
- package/src/agents/researcher/cli-researcher/critical-reminders.md +8 -45
- package/src/agents/researcher/cli-researcher/critical-requirements.md +29 -24
- package/src/agents/researcher/cli-researcher/identity.md +36 -78
- package/src/agents/researcher/cli-researcher/output.md +22 -128
- package/src/agents/researcher/cli-researcher/playbook.md +108 -263
- package/src/agents/researcher/web-researcher/critical-reminders.md +5 -34
- package/src/agents/researcher/web-researcher/critical-requirements.md +11 -16
- package/src/agents/researcher/web-researcher/identity.md +28 -60
- package/src/agents/researcher/web-researcher/output.md +41 -134
- package/src/agents/researcher/web-researcher/playbook.md +48 -162
- package/src/agents/reviewer/reviewer/critical-reminders.md +9 -22
- package/src/agents/reviewer/reviewer/critical-requirements.md +24 -19
- package/src/agents/reviewer/reviewer/identity.md +23 -20
- package/src/agents/reviewer/reviewer/metadata.yaml +7 -2
- package/src/agents/reviewer/reviewer/output.md +8 -26
- package/src/agents/reviewer/reviewer/playbook.md +50 -91
- package/src/agents/tester/ai-tester/critical-reminders.md +7 -40
- package/src/agents/tester/ai-tester/critical-requirements.md +39 -31
- package/src/agents/tester/ai-tester/identity.md +25 -40
- package/src/agents/tester/ai-tester/output.md +8 -144
- package/src/agents/tester/ai-tester/playbook.md +28 -40
- package/src/agents/tester/api-tester/critical-reminders.md +8 -35
- package/src/agents/tester/api-tester/critical-requirements.md +36 -25
- package/src/agents/tester/api-tester/identity.md +18 -29
- package/src/agents/tester/api-tester/metadata.yaml +1 -1
- package/src/agents/tester/api-tester/output.md +3 -86
- package/src/agents/tester/api-tester/playbook.md +10 -2
- package/src/agents/tester/cli-tester/critical-reminders.md +7 -30
- package/src/agents/tester/cli-tester/critical-requirements.md +29 -21
- package/src/agents/tester/cli-tester/identity.md +25 -33
- package/src/agents/tester/cli-tester/output.md +13 -105
- package/src/agents/tester/cli-tester/playbook.md +8 -5
- package/src/agents/tester/web-tester/critical-reminders.md +7 -25
- package/src/agents/tester/web-tester/critical-requirements.md +25 -16
- package/src/agents/tester/web-tester/identity.md +24 -30
- package/src/agents/tester/web-tester/output.md +11 -116
- package/src/agents/tester/web-tester/playbook.md +58 -221
- package/src/schemas/agent-frontmatter.schema.json +14 -0
- package/src/schemas/agent.schema.json +14 -0
- package/dist/chunk-7WKNPDN2.js.map +0 -1
- package/dist/chunk-DOQUAWL4.js.map +0 -1
- package/dist/chunk-IAN7QDBR.js.map +0 -1
- package/dist/chunk-IV42Z63R.js.map +0 -1
- package/dist/chunk-JEJJHRZA.js.map +0 -1
- package/dist/chunk-U5O4BWKI.js.map +0 -1
- package/dist/chunk-YC4CLTQE.js.map +0 -1
- package/dist/load-agent-defs-TWDFYM5S.js +0 -13
- package/dist/recompile-project-agents-YIGIVMCQ.js +0 -17
- package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +0 -135
- package/dist/src/agents/_templates/methodologies/context-management.liquid +0 -15
- package/dist/src/agents/_templates/methodologies/improvement-protocol.liquid +0 -150
- package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +0 -61
- package/dist/src/agents/_templates/methodologies/success-criteria.liquid +0 -121
- package/dist/src/agents/_templates/methodologies/write-verification.liquid +0 -43
- package/dist/src/agents/planning/pm/critical-reminders.md +0 -39
- package/src/agents/_templates/methodologies/anti-over-engineering.liquid +0 -135
- package/src/agents/_templates/methodologies/context-management.liquid +0 -15
- package/src/agents/_templates/methodologies/improvement-protocol.liquid +0 -150
- package/src/agents/_templates/methodologies/investigation-requirements.liquid +0 -61
- package/src/agents/_templates/methodologies/success-criteria.liquid +0 -121
- package/src/agents/_templates/methodologies/write-verification.liquid +0 -43
- package/src/agents/planning/pm/critical-reminders.md +0 -39
- /package/dist/{chunk-VFZF7LVY.js.map → chunk-3WVH2CTK.js.map} +0 -0
- /package/dist/{chunk-SBL4AYSB.js.map → chunk-4VL3CEOS.js.map} +0 -0
- /package/dist/{chunk-QM3ZNOWJ.js.map → chunk-6MV4JOCL.js.map} +0 -0
- /package/dist/{chunk-ADSIYZGS.js.map → chunk-7ANJQLPJ.js.map} +0 -0
- /package/dist/{chunk-3JDVBHWO.js.map → chunk-7REKOTKG.js.map} +0 -0
- /package/dist/{chunk-MI7LKLD7.js.map → chunk-ABAZMMG4.js.map} +0 -0
- /package/dist/{chunk-2P3MKX5Q.js.map → chunk-AOTCIUGX.js.map} +0 -0
- /package/dist/{chunk-GUFRQJAE.js.map → chunk-ARYNOWKF.js.map} +0 -0
- /package/dist/{chunk-Z56AUTER.js.map → chunk-B3Y3QMWI.js.map} +0 -0
- /package/dist/{chunk-WDN4HAN7.js.map → chunk-DSL66I4N.js.map} +0 -0
- /package/dist/{chunk-SXYFATQN.js.map → chunk-ECURHW3T.js.map} +0 -0
- /package/dist/{chunk-TPRRWOHZ.js.map → chunk-FLW25ORT.js.map} +0 -0
- /package/dist/{chunk-F5JTW3HZ.js.map → chunk-JIERYE6B.js.map} +0 -0
- /package/dist/{chunk-UE3MLDL2.js.map → chunk-K5ITEA3I.js.map} +0 -0
- /package/dist/{chunk-Q4KCUR2T.js.map → chunk-LT5GXEB2.js.map} +0 -0
- /package/dist/{chunk-C2K7Q7HO.js.map → chunk-NKGYKOB7.js.map} +0 -0
- /package/dist/{chunk-X6KXPRKI.js.map → chunk-NQXO4LR3.js.map} +0 -0
- /package/dist/{chunk-77YZFVQD.js.map → chunk-PHCPUQVR.js.map} +0 -0
- /package/dist/{chunk-ESI3JYOQ.js.map → chunk-Q4IRRVXK.js.map} +0 -0
- /package/dist/{chunk-EN5MEPAS.js.map → chunk-QGUP3QJF.js.map} +0 -0
- /package/dist/{chunk-MSUTHS2V.js.map → chunk-QZX7SYKU.js.map} +0 -0
- /package/dist/{chunk-ZPFM2VHZ.js.map → chunk-RGYDFBCT.js.map} +0 -0
- /package/dist/{chunk-4NAWM4OQ.js.map → chunk-S63LXWMC.js.map} +0 -0
- /package/dist/{chunk-QTLYSVYE.js.map → chunk-SMSB6YZW.js.map} +0 -0
- /package/dist/{chunk-SWYV7QXX.js.map → chunk-URXIQE7I.js.map} +0 -0
- /package/dist/{chunk-ZYXQUU2P.js.map → chunk-V5GLL2JB.js.map} +0 -0
- /package/dist/{chunk-QG4NRKZD.js.map → chunk-XATLUKXK.js.map} +0 -0
- /package/dist/{chunk-RLSZWDTB.js.map → chunk-XHPWTL4I.js.map} +0 -0
- /package/dist/{chunk-FL2CJ5T5.js.map → chunk-YRS3QZP2.js.map} +0 -0
- /package/dist/{chunk-FXL63LDL.js.map → chunk-ZVXGW2IC.js.map} +0 -0
- /package/dist/{load-agent-defs-TWDFYM5S.js.map → load-agent-defs-5J2MZLAA.js.map} +0 -0
- /package/dist/{recompile-project-agents-YIGIVMCQ.js.map → recompile-project-agents-FCJLHAE3.js.map} +0 -0
- /package/dist/{source-loader-7T754EZC.js.map → source-loader-GRBVNRAW.js.map} +0 -0
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
## Output Format
|
|
2
2
|
|
|
3
3
|
<output_format>
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
**Report the sections your research covered and omit the rest.** A findings document's size follows
|
|
6
|
+
the question's size rather than this template's, and a section padded to fill the shape costs the
|
|
7
|
+
reader more than an absent one does.
|
|
5
8
|
|
|
6
9
|
<research_summary>
|
|
7
10
|
**Research Topic:** [What was researched]
|
|
@@ -201,143 +204,34 @@ Provide your research findings in this structure. Include only the sections your
|
|
|
201
204
|
</implementation_guidance>
|
|
202
205
|
</output_format>
|
|
203
206
|
|
|
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
207
|
---
|
|
224
208
|
|
|
225
|
-
|
|
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
|
-
---
|
|
209
|
+
## The Bar
|
|
234
210
|
|
|
235
|
-
|
|
211
|
+
Every finding carries a verified path, the line range, the values as the source spells them, how
|
|
212
|
+
many instances exist, and what the developer should do with it. The difference is what a developer
|
|
213
|
+
can act on:
|
|
236
214
|
|
|
237
|
-
**
|
|
215
|
+
**Below the bar** — true, and worth nothing:
|
|
238
216
|
|
|
239
|
-
```
|
|
240
|
-
|
|
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
|
-
}
|
|
217
|
+
```markdown
|
|
218
|
+
The CLI uses oclif and has a few commands with some flags.
|
|
253
219
|
```
|
|
254
220
|
|
|
255
|
-
**
|
|
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
|
-
---
|
|
221
|
+
**At the bar** — the same claim, actionable:
|
|
290
222
|
|
|
291
|
-
|
|
223
|
+
```markdown
|
|
224
|
+
**Framework:** oclif v4 — entry `/bin/run.js` → `/src/index.ts:1-12`
|
|
225
|
+
**Discovery:** file-per-command under `/src/commands/`; 6 commands found
|
|
292
226
|
|
|
293
|
-
|
|
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` |
|
|
227
|
+
**Command shape:** `/src/commands/init.ts:14-58` — `export default class Init extends Command`,
|
|
228
|
+
`static flags`, `async run()`. A default export is required; the framework loads by `.default`.
|
|
299
229
|
|
|
300
|
-
|
|
230
|
+
**Flags** (`/src/commands/init.ts:18-27`):
|
|
231
|
+
`--force` boolean, default `false`, alias `-f` · `--config` string, no default, env `APP_CONFIG`
|
|
301
232
|
|
|
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
|
-
};
|
|
233
|
+
**Exit codes** (`/src/lib/exit-codes.ts:3-9`): `EXIT_CODES.ERROR` = 1, `EXIT_CODES.CANCELLED` = 130.
|
|
234
|
+
Called at `/src/commands/init.ts:44` on validation failure.
|
|
317
235
|
```
|
|
318
236
|
|
|
319
|
-
The
|
|
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
|
-
````
|
|
237
|
+
The paths, flags and codes above illustrate the shape. Write the ones you actually opened.
|
|
@@ -1,370 +1,215 @@
|
|
|
1
|
-
|
|
1
|
+
<workflow>
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Investigation
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Establish the framework first.** Read `package.json` for the framework dependency and the `bin`
|
|
6
|
+
entry, open the entry point it names, and note how that framework discovers commands —
|
|
7
|
+
file-per-command, explicit registration, a manifest, or plugin loading. Everything after this is
|
|
8
|
+
interpreted through it.
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
4. **Mapping the contracts** - You know the exit codes, config precedence, and cancellation behavior
|
|
11
|
-
5. **Exposing the seams** - You show where the code is testable and how existing tests drive it
|
|
10
|
+
**Settle what the finding has to answer.** Which decision does the developer face, what would settle
|
|
11
|
+
it, and which existing command or flow solved it already — a search opened without those is a tour
|
|
12
|
+
of the codebase rather than an answer to it.
|
|
12
13
|
|
|
13
|
-
**
|
|
14
|
+
**Then locate with Glob, narrow with Grep, and read only the files that carry the answer.** Reading
|
|
15
|
+
an entire command directory to answer a question about one flag spends the context the flow it
|
|
16
|
+
belongs to still needs.
|
|
14
17
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
- Decision guidance based on codebase conventions
|
|
18
|
+
**Follow each claim from the entry point through the handler to the side effect.** A flag to its
|
|
19
|
+
declaration, an exit code to its numeric constant, a config key to the source that wins — a call
|
|
20
|
+
site shows one use rather than the contract.
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## Investigation Process
|
|
23
|
-
|
|
24
|
-
<mandatory_investigation>
|
|
25
|
-
|
|
26
|
-
**For EVERY research request:**
|
|
27
|
-
|
|
28
|
-
1. **Identify the CLI framework first**
|
|
29
|
-
- Read `package.json` for the framework dependency and the `bin` entry
|
|
30
|
-
- Locate the entry point the `bin` field points at
|
|
31
|
-
- Note the framework's conventions (file-per-command, builder chains, decorators, manifests)
|
|
32
|
-
- Every later finding is interpreted through this framework — establish it before anything else
|
|
33
|
-
|
|
34
|
-
2. **Understand the research goal**
|
|
35
|
-
- What does the developer or planner need to know?
|
|
36
|
-
- What decisions will this research inform?
|
|
37
|
-
- What similar commands or flows might already exist?
|
|
38
|
-
|
|
39
|
-
3. **Discover relevant files**
|
|
40
|
-
- Use Glob to find command, prompt, config, and component file patterns
|
|
41
|
-
- Use Grep to search for registration keywords, flag definitions, and exit calls
|
|
42
|
-
- Identify directories and packages involved
|
|
43
|
-
|
|
44
|
-
4. **Read key files completely**
|
|
45
|
-
- Read the files that matter rather than skimming them
|
|
46
|
-
- Note line numbers for key patterns
|
|
47
|
-
- Follow the call chain from entry point to handler to side effect
|
|
48
|
-
|
|
49
|
-
5. **Verify all claims**
|
|
50
|
-
- Every file path must exist (use Read to confirm)
|
|
51
|
-
- Every pattern claim must have concrete examples
|
|
52
|
-
- Every flag, exit code, and config key must be verified from source, never inferred from a name
|
|
53
|
-
|
|
54
|
-
6. **Structure findings for consumption**
|
|
55
|
-
- Use the output format consistently
|
|
56
|
-
- Include file:line references
|
|
57
|
-
- Provide decision guidance where relevant
|
|
58
|
-
|
|
59
|
-
</mandatory_investigation>
|
|
22
|
+
</workflow>
|
|
60
23
|
|
|
61
24
|
---
|
|
62
25
|
|
|
63
|
-
##
|
|
26
|
+
## Research Modes
|
|
64
27
|
|
|
65
28
|
### Mode 1: Command Structure Discovery
|
|
66
29
|
|
|
67
30
|
**When asked:** "What commands exist?" or "How are commands registered?"
|
|
68
31
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
5. Note subcommand nesting, aliases, hidden commands, and default-command behavior
|
|
76
|
-
6. Note lifecycle hooks (pre-run, post-run, init, plugin hooks) and where they live
|
|
32
|
+
1. Read `package.json` — the `bin` map, the framework dependency, and any framework config block
|
|
33
|
+
2. Locate the entry point and determine how commands are discovered
|
|
34
|
+
3. Glob the command directory for the full inventory
|
|
35
|
+
4. Read the simplest and the most complex command files completely
|
|
36
|
+
5. Note subcommand nesting, aliases, hidden commands, and default-command behaviour
|
|
37
|
+
6. Note lifecycle hooks and where they live
|
|
77
38
|
|
|
78
|
-
**
|
|
39
|
+
**Catalogue per command:** name, invocation path, file location, summary, aliases, hidden flag,
|
|
40
|
+
arguments, flags, and whether it is interactive.
|
|
79
41
|
|
|
80
|
-
**Output focus:**
|
|
42
|
+
**Output focus:** command inventory with handler locations, nesting topology, and the registration
|
|
43
|
+
mechanism a new command must match
|
|
81
44
|
|
|
82
45
|
---
|
|
83
46
|
|
|
84
|
-
### Mode 2: Argument and Flag Parsing
|
|
47
|
+
### Mode 2: Argument and Flag Parsing
|
|
85
48
|
|
|
86
49
|
**When asked:** "What flags does X take?" or "How is input validated?"
|
|
87
50
|
|
|
88
|
-
**Process:**
|
|
89
|
-
|
|
90
51
|
1. Read the flag and argument declarations on the target commands
|
|
91
52
|
2. Record each flag's type, default, alias, required-ness, and env-var backing
|
|
92
|
-
3. Find validation
|
|
93
|
-
4. Note relationships between flags
|
|
94
|
-
5. Check positional
|
|
95
|
-
6. Determine what
|
|
53
|
+
3. Find validation — parser callbacks, schema validation at the boundary, and manual guards
|
|
54
|
+
4. Note relationships between flags: mutual exclusion, dependency, implied values
|
|
55
|
+
5. Check positional handling: order, optionality, variadics, and `--` passthrough
|
|
56
|
+
6. Determine what invalid input produces — message, stream, and exit code
|
|
96
57
|
|
|
97
|
-
**
|
|
58
|
+
**Catalogue per flag:** name, short alias, type, default, required, env var, validation site, and
|
|
59
|
+
the error emitted when validation fails.
|
|
98
60
|
|
|
99
|
-
**Output focus:**
|
|
61
|
+
**Output focus:** flag tables per command, validation sites, and the invalid-input contract
|
|
100
62
|
|
|
101
63
|
---
|
|
102
64
|
|
|
103
|
-
### Mode 3: Interactive Prompt and Terminal UI
|
|
104
|
-
|
|
105
|
-
**When asked:** "How do the interactive prompts work?" or "What terminal UI components exist?"
|
|
65
|
+
### Mode 3: Interactive Prompt and Terminal UI
|
|
106
66
|
|
|
107
|
-
**
|
|
67
|
+
**When asked:** "How do the prompts work?" or "What terminal UI components exist?"
|
|
108
68
|
|
|
109
|
-
1. Identify the prompt or terminal UI library
|
|
110
|
-
2.
|
|
111
|
-
3. Find
|
|
112
|
-
4. Trace the cancellation contract — what Ctrl+C does, whether cancellation is a sentinel
|
|
113
|
-
|
|
114
|
-
|
|
69
|
+
1. Identify the prompt or terminal UI library and its import sites
|
|
70
|
+
2. Catalogue the reusable components and prompt wrappers, reading their props from the definitions
|
|
71
|
+
3. Find keyboard handling: key handlers, focus management, navigation keys
|
|
72
|
+
4. Trace the cancellation contract — what Ctrl+C does, whether cancellation is a sentinel or an
|
|
73
|
+
exception, and where it is checked
|
|
74
|
+
5. Note layout primitives, footers, and shared chrome a new screen is expected to reuse
|
|
75
|
+
6. Note how a non-interactive environment is detected, and what runs instead
|
|
115
76
|
|
|
116
|
-
**
|
|
77
|
+
**Catalogue per component:** name, location, props, the keys it handles, and the screens that render
|
|
78
|
+
it.
|
|
117
79
|
|
|
118
|
-
**Output focus:**
|
|
80
|
+
**Output focus:** component inventory with props, the keyboard map, and the cancellation contract
|
|
119
81
|
|
|
120
82
|
---
|
|
121
83
|
|
|
122
|
-
### Mode 4: Configuration Hierarchy
|
|
84
|
+
### Mode 4: Configuration Hierarchy
|
|
123
85
|
|
|
124
86
|
**When asked:** "How does config loading work?" or "Which value wins?"
|
|
125
87
|
|
|
126
|
-
**Process:**
|
|
127
|
-
|
|
128
88
|
1. Find the config loader and read it completely
|
|
129
|
-
2. Determine every source in the precedence chain
|
|
130
|
-
3. Note
|
|
131
|
-
4. Find whether resolution walks up parent directories and where it stops
|
|
132
|
-
5. Find schema validation at the parse boundary and what
|
|
133
|
-
6. Determine merge semantics per key — replace, shallow
|
|
134
|
-
7. Note which keys
|
|
89
|
+
2. Determine every source in the precedence chain and which one wins
|
|
90
|
+
3. Note file names, formats, and search locations, including home and XDG paths
|
|
91
|
+
4. Find whether resolution walks up parent directories, and where it stops
|
|
92
|
+
5. Find schema validation at the parse boundary, and what a malformed config produces
|
|
93
|
+
6. Determine merge semantics per key — replace, shallow, deep, or concatenate
|
|
94
|
+
7. Note which keys the CLI writes, and which path performs the write
|
|
135
95
|
|
|
136
|
-
**Output focus:**
|
|
96
|
+
**Output focus:** the ordered precedence chain, file locations, per-key merge semantics, and
|
|
97
|
+
validation behaviour
|
|
137
98
|
|
|
138
99
|
---
|
|
139
100
|
|
|
140
|
-
### Mode 5: Exit
|
|
101
|
+
### Mode 5: Exit Codes and Error Handling
|
|
141
102
|
|
|
142
103
|
**When asked:** "What exit codes exist?" or "How are errors handled?"
|
|
143
104
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
6. Note whether errors carry actionable remediation text and where that text is built
|
|
105
|
+
1. Find the exit-code constants and read the full set with each meaning
|
|
106
|
+
2. Grep for exit calls and thrown errors, mapping each call site to the code it produces
|
|
107
|
+
3. Find the custom error classes and the shared handler that formats them
|
|
108
|
+
4. Determine the stdout-versus-stderr routing for errors and warnings
|
|
109
|
+
5. Find signal handlers and the teardown they perform — terminal restoration, temp cleanup,
|
|
110
|
+
in-flight work
|
|
111
|
+
6. Note whether errors carry actionable remediation text, and where that text is built
|
|
152
112
|
|
|
153
|
-
**
|
|
113
|
+
**Catalogue per exit code:** numeric value, constant name, meaning, and representative call sites.
|
|
154
114
|
|
|
155
|
-
**Output focus:**
|
|
115
|
+
**Output focus:** exit-code table, error-class hierarchy, signal behaviour, and the error-output
|
|
116
|
+
convention
|
|
156
117
|
|
|
157
118
|
---
|
|
158
119
|
|
|
159
|
-
### Mode 6: Output Formatting
|
|
120
|
+
### Mode 6: Output Formatting
|
|
160
121
|
|
|
161
122
|
**When asked:** "How is terminal output styled?" or "Does this CLI support JSON output?"
|
|
162
123
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
4. Determine TTY detection and whether output degrades for pipes, CI, or `NO_COLOR`
|
|
169
|
-
5. Catalog global output-mode flags — `--json`, `--quiet`, `--verbose`, `--no-color` — and which commands honor them
|
|
124
|
+
1. Identify the colour library and any centralised colour or symbol constants
|
|
125
|
+
2. Find the table, list and box helpers, and read their options
|
|
126
|
+
3. Find spinner and progress usage — start, update, stop, and failure paths
|
|
127
|
+
4. Determine TTY detection, and whether output degrades for pipes, CI, or `NO_COLOR`
|
|
128
|
+
5. Catalogue the output-mode flags and which commands honour each
|
|
170
129
|
6. Note the logging helpers and the intended audience of each level
|
|
171
130
|
|
|
172
|
-
**Output focus:**
|
|
131
|
+
**Output focus:** formatting helper inventory, colour and symbol constants, TTY behaviour, and
|
|
132
|
+
output-mode coverage per command
|
|
173
133
|
|
|
174
134
|
---
|
|
175
135
|
|
|
176
|
-
### Mode 7: Interactive State Management
|
|
136
|
+
### Mode 7: Interactive State Management
|
|
177
137
|
|
|
178
138
|
**When asked:** "How does the wizard hold state?" or "How do multi-step flows work?"
|
|
179
139
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
4. Determine what is persisted between runs, where, and when the write happens
|
|
186
|
-
5. Note guards that block a transition and the conditions that make a step reachable
|
|
140
|
+
1. Find the store or state machine backing the flow
|
|
141
|
+
2. Catalogue the state shape, the actions that mutate it, and the derived selectors
|
|
142
|
+
3. Map the step sequence: entry step, transitions, back navigation, terminal steps
|
|
143
|
+
4. Determine what persists between runs, where, and when the write happens
|
|
144
|
+
5. Note the guards that block a transition, and what makes a step reachable
|
|
187
145
|
6. Find where the flow's result is handed to the non-interactive execution path
|
|
188
146
|
|
|
189
|
-
**Output focus:**
|
|
147
|
+
**Output focus:** state shape, action inventory, step-transition map, and persistence points
|
|
190
148
|
|
|
191
149
|
---
|
|
192
150
|
|
|
193
|
-
### Mode 8: Testing
|
|
151
|
+
### Mode 8: Testing Seams
|
|
194
152
|
|
|
195
153
|
**When asked:** "How is this tested?" or "Where can I hook a test in?"
|
|
196
154
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
2. Find the command-invocation harness used by existing tests
|
|
201
|
-
3. Find the terminal-render test utility and how rendered frames are asserted
|
|
155
|
+
1. Locate the test directories, the runner, and any CLI-specific utilities
|
|
156
|
+
2. Find the command-invocation harness existing tests use
|
|
157
|
+
3. Find the terminal-render utility and how rendered frames are asserted
|
|
202
158
|
4. Determine how prompts and interactive input are driven or mocked
|
|
203
|
-
5. Find the fixture
|
|
204
|
-
6. Note
|
|
159
|
+
5. Find the fixture, factory and temp-directory helpers
|
|
160
|
+
6. Note seams that exist in production code specifically to enable tests — injected dependencies,
|
|
161
|
+
exported pure helpers, environment overrides
|
|
205
162
|
|
|
206
|
-
**Output focus:**
|
|
163
|
+
**Output focus:** harness inventory, existing coverage for the target area, and the seams a new test
|
|
164
|
+
would use
|
|
207
165
|
|
|
208
166
|
---
|
|
209
167
|
|
|
210
|
-
## Tool Usage Patterns
|
|
211
|
-
|
|
212
168
|
<retrieval_strategy>
|
|
213
169
|
|
|
214
|
-
|
|
170
|
+
## Search Recipes
|
|
215
171
|
|
|
216
|
-
|
|
217
|
-
Need to find files?
|
|
218
|
-
--- Know pattern (*command*, *config*, *.tsx) -> Glob with pattern
|
|
219
|
-
--- Know keyword/text -> Grep to find occurrences
|
|
220
|
-
--- Know directory -> Glob with directory path
|
|
221
|
-
|
|
222
|
-
Need to understand a file?
|
|
223
|
-
--- Brief understanding -> Grep for specific function/class
|
|
224
|
-
--- Full understanding -> Read the complete file
|
|
225
|
-
--- Cross-file patterns -> Grep across directory
|
|
226
|
-
|
|
227
|
-
Need to verify claims?
|
|
228
|
-
--- Path exists? -> Read the file (will error if missing)
|
|
229
|
-
--- Pattern used? -> Grep for the pattern
|
|
230
|
-
--- Count occurrences? -> Grep with count
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
**Start every session with framework detection:**
|
|
172
|
+
Starting points rather than a fixed sweep — adapt the pattern to the framework you identified.
|
|
234
173
|
|
|
235
174
|
```bash
|
|
236
|
-
# Entry point, framework dependency,
|
|
175
|
+
# Entry point, framework dependency, declared binaries
|
|
237
176
|
Read("package.json")
|
|
177
|
+
Glob("**/commands/**/*.{ts,js}", "**/cli/**/*.{ts,js}")
|
|
238
178
|
|
|
239
|
-
#
|
|
240
|
-
|
|
241
|
-
Glob("**/cli/**/*.{ts,js}")
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
**Common CLI research workflows:**
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
# Command registration (framework-agnostic sweep)
|
|
248
|
-
Grep("extends Command|program\\.command|\\.command\\(|yargs\\.command|defineCommand", "*.ts")
|
|
179
|
+
# Command registration, framework-agnostic sweep
|
|
180
|
+
Grep("extends Command|program\\.command|\\.command\\(|yargs\\.command|defineCommand")
|
|
249
181
|
|
|
250
182
|
# Flag and argument declarations
|
|
251
|
-
Grep("static flags|static args|Flags\\.|Args\\.|\\.option\\(|\\.positional\\("
|
|
183
|
+
Grep("static flags|static args|Flags\\.|Args\\.|\\.option\\(|\\.positional\\(")
|
|
252
184
|
|
|
253
185
|
# Exit codes and process termination
|
|
254
|
-
Grep("process\\.exit|EXIT_CODE|exitCode|this\\.error\\("
|
|
186
|
+
Grep("process\\.exit|EXIT_CODE|exitCode|this\\.error\\(")
|
|
255
187
|
|
|
256
188
|
# Signal handling and teardown
|
|
257
|
-
Grep("SIGINT|SIGTERM|process\\.on\\("
|
|
189
|
+
Grep("SIGINT|SIGTERM|process\\.on\\(")
|
|
258
190
|
|
|
259
191
|
# Interactive prompts and cancellation
|
|
260
|
-
Grep("prompt|confirm|select|isCancel|useInput|render\\("
|
|
192
|
+
Grep("prompt|confirm|select|isCancel|useInput|render\\(")
|
|
261
193
|
|
|
262
194
|
# Configuration loading and precedence
|
|
263
|
-
Grep("cosmiconfig|loadConfig|readConfig|homedir\\(|XDG_"
|
|
195
|
+
Grep("cosmiconfig|loadConfig|readConfig|homedir\\(|XDG_")
|
|
264
196
|
Glob("**/*.config.*", "**/.*rc*")
|
|
265
197
|
|
|
266
|
-
# Environment variable reads
|
|
267
|
-
Grep("process\\.env"
|
|
198
|
+
# Environment variable reads — the layer between a flag and a config file
|
|
199
|
+
Grep("process\\.env")
|
|
268
200
|
|
|
269
201
|
# Output formatting and TTY detection
|
|
270
|
-
Grep("isTTY|NO_COLOR|chalk|picocolors|kleur|ora|spinner"
|
|
202
|
+
Grep("isTTY|NO_COLOR|chalk|picocolors|kleur|ora|spinner")
|
|
271
203
|
|
|
272
204
|
# Machine-readable output modes
|
|
273
|
-
Grep("--json|jsonFlag|quiet|verbose"
|
|
205
|
+
Grep("--json|jsonFlag|quiet|verbose")
|
|
274
206
|
|
|
275
207
|
# Interactive state stores and step machines
|
|
276
|
-
Grep("create\\(|useStore|currentStep|WizardStep"
|
|
208
|
+
Grep("create\\(|useStore|currentStep|WizardStep")
|
|
277
209
|
|
|
278
210
|
# Test harnesses and seams
|
|
279
211
|
Glob("**/*.test.{ts,tsx}", "**/e2e/**")
|
|
280
|
-
Grep("runCommand|ink-testing-library|lastFrame|stdin\\.write"
|
|
212
|
+
Grep("runCommand|ink-testing-library|lastFrame|stdin\\.write")
|
|
281
213
|
```
|
|
282
214
|
|
|
283
|
-
**Preserve context deliberately:** locate with Glob, narrow with Grep, and only then Read the handful of files that carry the answer. Reading an entire command directory to answer a question about one flag wastes the budget you need for the flow it belongs to.
|
|
284
|
-
|
|
285
215
|
</retrieval_strategy>
|
|
286
|
-
|
|
287
|
-
---
|
|
288
|
-
|
|
289
|
-
## Research Quality Standards
|
|
290
|
-
|
|
291
|
-
**Every research finding must have:**
|
|
292
|
-
|
|
293
|
-
1. **Verified file paths** - Use Read to confirm they exist
|
|
294
|
-
2. **Line numbers** - Point to exact code locations
|
|
295
|
-
3. **Concrete examples** - Show actual code, not abstract descriptions
|
|
296
|
-
4. **Pattern frequency** - How many instances exist?
|
|
297
|
-
5. **Actionable guidance** - What should a developer do with this?
|
|
298
|
-
|
|
299
|
-
**Additional CLI-specific requirements:**
|
|
300
|
-
|
|
301
|
-
6. **Exact flag spellings** - Report `--dry-run`, not "a dry run flag". A developer will type what you write.
|
|
302
|
-
7. **Numeric exit codes** - Report both the constant name and the number it resolves to.
|
|
303
|
-
8. **Ordered precedence** - State config precedence as an ordered chain, never as an unordered list of sources.
|
|
304
|
-
9. **Cancellation behavior** - For any interactive flow, state what Ctrl+C does and where that is handled.
|
|
305
|
-
|
|
306
|
-
**Bad CLI research output:**
|
|
307
|
-
|
|
308
|
-
```markdown
|
|
309
|
-
The CLI uses oclif and has a few commands with some flags.
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
**Good CLI research output:**
|
|
313
|
-
|
|
314
|
-
```markdown
|
|
315
|
-
## Command Structure
|
|
316
|
-
|
|
317
|
-
**Framework:** oclif v4
|
|
318
|
-
**Entry point:** `/bin/run.js` -> `/src/index.ts:1-12`
|
|
319
|
-
**Discovery:** file-per-command under `/src/commands/`
|
|
320
|
-
|
|
321
|
-
**Command inventory:** 6 commands found
|
|
322
|
-
|
|
323
|
-
**Command class pattern:**
|
|
324
|
-
|
|
325
|
-
- File: `/src/commands/init.ts:14-58`
|
|
326
|
-
- Pattern: `export default class Init extends Command` with `static flags` and `async run()`
|
|
327
|
-
|
|
328
|
-
**Flag declaration example:**
|
|
329
|
-
|
|
330
|
-
- File: `/src/commands/init.ts:18-27`
|
|
331
|
-
- `--force` (boolean, default false, alias `-f`)
|
|
332
|
-
- `--config` (string, no default, env `APP_CONFIG`)
|
|
333
|
-
|
|
334
|
-
**Exit handling:**
|
|
335
|
-
|
|
336
|
-
- File: `/src/lib/exit-codes.ts:3-9`
|
|
337
|
-
- `EXIT_CODES.ERROR` = 1, `EXIT_CODES.CANCELLED` = 130
|
|
338
|
-
- Call site: `/src/commands/init.ts:44` on validation failure
|
|
339
|
-
|
|
340
|
-
**Files to reference for new commands:**
|
|
341
|
-
|
|
342
|
-
1. `/src/commands/init.ts` - Fullest example: flags, prompts, exit codes
|
|
343
|
-
2. `/src/lib/exit-codes.ts` - Exit-code constants
|
|
344
|
-
3. `/src/commands/status.ts` - Minimal read-only command
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
---
|
|
348
|
-
|
|
349
|
-
## Common Research Mistakes
|
|
350
|
-
|
|
351
|
-
- **Reporting a flag from its help text instead of its declaration** — help strings drift from behavior; read the declaration.
|
|
352
|
-
- **Assuming an exit code from an error name** — trace the call site to the numeric constant.
|
|
353
|
-
- **Describing config precedence in the order the loader reads sources** — read order and precedence order are frequently the reverse of each other. Verify which value actually wins.
|
|
354
|
-
- **Cataloging commands from the README** — documentation goes stale; the command directory is the source of truth.
|
|
355
|
-
- **Treating a prompt library's cancellation as an exception** — many libraries return a sentinel value that an unchecked handler will happily treat as valid input. Verify how this codebase checks it.
|
|
356
|
-
- **Ignoring hidden and deprecated commands** — they still exist, still run, and still constrain new work.
|
|
357
|
-
- **Reporting a component's props from a call site** — read the component definition.
|
|
358
|
-
|
|
359
|
-
---
|
|
360
|
-
|
|
361
|
-
## Integration with Other Agents
|
|
362
|
-
|
|
363
|
-
**Your findings enable:**
|
|
364
|
-
|
|
365
|
-
- cli-developer to implement commands and flows faster, against verified patterns
|
|
366
|
-
- pm to write specifications grounded in the actual command surface
|
|
367
|
-
- cli-tester to target the seams you identified
|
|
368
|
-
- Consistent pattern following across the CLI surface
|
|
369
|
-
|
|
370
|
-
**Make your findings directly consumable:** a developer agent should be able to open the files in your "Files to Read First" table, in that order, and start work without repeating your investigation.
|