agents-inc 0.162.0 → 0.164.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 +28 -0
- package/dist/{chunk-HRVPZMKK.js → chunk-2CQNPLVF.js} +35 -14
- package/dist/chunk-2CQNPLVF.js.map +1 -0
- package/dist/{chunk-VFZF7LVY.js → chunk-3WVH2CTK.js} +3 -3
- package/dist/{chunk-5J6DO4VW.js → chunk-4VL3CEOS.js} +3 -3
- package/dist/{chunk-QM3ZNOWJ.js → chunk-6MV4JOCL.js} +2 -2
- package/dist/{chunk-WIJM6BX6.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-XSM3IBMG.js → chunk-AOTCIUGX.js} +2 -2
- package/dist/{chunk-L65XGQKR.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-AQSMNUKJ.js → chunk-B3Y3QMWI.js} +4 -4
- package/dist/{chunk-ES7WGE32.js → chunk-B6FSLXYN.js} +3 -3
- package/dist/{chunk-S6GX7IJ2.js → chunk-DSL66I4N.js} +6 -6
- package/dist/{chunk-IMTWWA3N.js → chunk-ECURHW3T.js} +12 -12
- package/dist/{chunk-VEONZFTL.js → chunk-FLW25ORT.js} +3 -3
- package/dist/{chunk-53XPSAJ4.js → chunk-G2JJ5BO5.js} +17 -16
- package/dist/chunk-G2JJ5BO5.js.map +1 -0
- package/dist/{chunk-H2MDPOLG.js → chunk-JIERYE6B.js} +5 -5
- package/dist/{chunk-GFO55TMY.js → chunk-JU4ZGJ7A.js} +100 -24
- package/dist/chunk-JU4ZGJ7A.js.map +1 -0
- package/dist/{chunk-K26SBQLO.js → chunk-K5ITEA3I.js} +4 -4
- package/dist/{chunk-4KVJJJG2.js → chunk-LT5GXEB2.js} +6 -6
- package/dist/{chunk-2IMHZEIK.js → chunk-NKGYKOB7.js} +3 -3
- package/dist/{chunk-X6KXPRKI.js → chunk-NQXO4LR3.js} +4 -4
- package/dist/{chunk-ZFPQM63K.js → chunk-NTF4UXGK.js} +5 -5
- package/dist/{chunk-77YZFVQD.js → chunk-PHCPUQVR.js} +2 -2
- package/dist/{chunk-T2RPUNYP.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-BR3TNSO3.js → chunk-RGYDFBCT.js} +4 -4
- package/dist/{chunk-4NAWM4OQ.js → chunk-S63LXWMC.js} +2 -2
- package/dist/{chunk-IV42Z63R.js → chunk-UITEKY2R.js} +19 -9
- package/dist/chunk-UITEKY2R.js.map +1 -0
- package/dist/{chunk-RMMEYCEA.js → chunk-URXIQE7I.js} +2 -2
- package/dist/{chunk-57YWAMNT.js → chunk-V5GLL2JB.js} +7 -7
- package/dist/{chunk-C53RJ7AA.js → chunk-X37UYIE3.js} +43 -41
- package/dist/chunk-X37UYIE3.js.map +1 -0
- package/dist/{chunk-J2YG7P7L.js → chunk-X4SSJZLY.js} +49 -6
- package/dist/chunk-X4SSJZLY.js.map +1 -0
- package/dist/{chunk-VEBEGZUV.js → chunk-XATLUKXK.js} +5 -5
- package/dist/{chunk-33ZKIYJM.js → chunk-XHPWTL4I.js} +3 -3
- package/dist/{chunk-UNASGGW2.js → chunk-XPDVAJDH.js} +69 -8
- 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 +10 -10
- package/dist/commands/share.js +8 -8
- 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-7IM3GBEQ.js +13 -0
- package/dist/recompile-project-agents-VR4NLGOU.js +17 -0
- package/dist/{source-loader-KAWB76OH.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 +164 -1110
- 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 +1 -1
- 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 +164 -1110
- 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-53XPSAJ4.js.map +0 -1
- package/dist/chunk-C53RJ7AA.js.map +0 -1
- package/dist/chunk-GFO55TMY.js.map +0 -1
- package/dist/chunk-HRVPZMKK.js.map +0 -1
- package/dist/chunk-IV42Z63R.js.map +0 -1
- package/dist/chunk-J2YG7P7L.js.map +0 -1
- package/dist/chunk-UNASGGW2.js.map +0 -1
- package/dist/load-agent-defs-57YKPVQW.js +0 -13
- package/dist/recompile-project-agents-IQD3HRRS.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-5J6DO4VW.js.map → chunk-4VL3CEOS.js.map} +0 -0
- /package/dist/{chunk-QM3ZNOWJ.js.map → chunk-6MV4JOCL.js.map} +0 -0
- /package/dist/{chunk-WIJM6BX6.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-XSM3IBMG.js.map → chunk-AOTCIUGX.js.map} +0 -0
- /package/dist/{chunk-L65XGQKR.js.map → chunk-ARYNOWKF.js.map} +0 -0
- /package/dist/{chunk-AQSMNUKJ.js.map → chunk-B3Y3QMWI.js.map} +0 -0
- /package/dist/{chunk-ES7WGE32.js.map → chunk-B6FSLXYN.js.map} +0 -0
- /package/dist/{chunk-S6GX7IJ2.js.map → chunk-DSL66I4N.js.map} +0 -0
- /package/dist/{chunk-IMTWWA3N.js.map → chunk-ECURHW3T.js.map} +0 -0
- /package/dist/{chunk-VEONZFTL.js.map → chunk-FLW25ORT.js.map} +0 -0
- /package/dist/{chunk-H2MDPOLG.js.map → chunk-JIERYE6B.js.map} +0 -0
- /package/dist/{chunk-K26SBQLO.js.map → chunk-K5ITEA3I.js.map} +0 -0
- /package/dist/{chunk-4KVJJJG2.js.map → chunk-LT5GXEB2.js.map} +0 -0
- /package/dist/{chunk-2IMHZEIK.js.map → chunk-NKGYKOB7.js.map} +0 -0
- /package/dist/{chunk-X6KXPRKI.js.map → chunk-NQXO4LR3.js.map} +0 -0
- /package/dist/{chunk-ZFPQM63K.js.map → chunk-NTF4UXGK.js.map} +0 -0
- /package/dist/{chunk-77YZFVQD.js.map → chunk-PHCPUQVR.js.map} +0 -0
- /package/dist/{chunk-T2RPUNYP.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-BR3TNSO3.js.map → chunk-RGYDFBCT.js.map} +0 -0
- /package/dist/{chunk-4NAWM4OQ.js.map → chunk-S63LXWMC.js.map} +0 -0
- /package/dist/{chunk-RMMEYCEA.js.map → chunk-URXIQE7I.js.map} +0 -0
- /package/dist/{chunk-57YWAMNT.js.map → chunk-V5GLL2JB.js.map} +0 -0
- /package/dist/{chunk-VEBEGZUV.js.map → chunk-XATLUKXK.js.map} +0 -0
- /package/dist/{chunk-33ZKIYJM.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-57YKPVQW.js.map → load-agent-defs-7IM3GBEQ.js.map} +0 -0
- /package/dist/{recompile-project-agents-IQD3HRRS.js.map → recompile-project-agents-VR4NLGOU.js.map} +0 -0
- /package/dist/{source-loader-KAWB76OH.js.map → source-loader-GRBVNRAW.js.map} +0 -0
|
@@ -1,352 +1,171 @@
|
|
|
1
|
-
|
|
1
|
+
<investigation>
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Investigation
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
1. Read the specification completely
|
|
8
|
-
- Understand the goal
|
|
9
|
-
- Note all pattern references
|
|
10
|
-
- Identify constraints
|
|
5
|
+
**Read the specification completely first**, noting its pattern references, its constraints and its
|
|
6
|
+
success criteria.
|
|
11
7
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
- Understand WHY patterns are structured that way
|
|
15
|
-
- Note utilities and helpers being used
|
|
8
|
+
**Read every pattern file the spec names, in full.** Skimming gives you the shape and loses the
|
|
9
|
+
reason, and the reason is what tells you which parts to copy.
|
|
16
10
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- Check similar API routes for shared logic (e.g., routes/users.ts:45-89)
|
|
20
|
-
- Use what exists rather than creating new
|
|
11
|
+
**Search for what already exists before writing anything new** — the validation helpers, the error
|
|
12
|
+
response shape, the middleware, and the routes nearest to what you are building.
|
|
21
13
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
- Read .claude/patterns.md
|
|
25
|
-
- Check .claude/progress.md for current state
|
|
14
|
+
**Read the project's `CLAUDE.md` where it has one**, and load the skills your task touches — this
|
|
15
|
+
prompt's trailing block lists the ones available to you.
|
|
26
16
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
17
|
+
**Read what `pm` recorded, where the project has it.** `.claude/decisions.md` carries the
|
|
18
|
+
architecture decisions already taken, the alternatives that lost and why; `.claude/patterns.md`
|
|
19
|
+
carries the patterns the codebase repeats and the file that is each one's best reference. Both
|
|
20
|
+
answer questions the specification does not restate.
|
|
31
21
|
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
**Load files just in time rather than reading the tree.** `Glob` over the route directory and a
|
|
23
|
+
`Grep` for the call that registers a route — `createRoute` where the project generates its OpenAPI
|
|
24
|
+
document from the schemas, `app.get` or `router.get` otherwise — locate the patterns; read those
|
|
25
|
+
and the integration points in full, and leave the rest until a decision turns on it. Context spent
|
|
26
|
+
on files that do not guide the implementation is context you do not have for the implementation.
|
|
34
27
|
|
|
35
|
-
|
|
28
|
+
**Keep investigation notes** — the files you read, the patterns you found, and the utilities you
|
|
29
|
+
intend to reuse. They become the `<investigation>` section of your report.
|
|
36
30
|
|
|
37
|
-
|
|
38
|
-
- `Glob("**/*.ts")` -> Find matching file paths
|
|
39
|
-
- `Grep("createRoute", type="ts")` -> Search for specific code
|
|
31
|
+
</investigation>
|
|
40
32
|
|
|
41
|
-
|
|
42
|
-
- Read pattern files explicitly mentioned in spec (full content)
|
|
43
|
-
- Read integration points next (understand connections)
|
|
44
|
-
- Load additional context only if needed for implementation
|
|
33
|
+
---
|
|
45
34
|
|
|
46
|
-
|
|
47
|
-
- Each file you read consumes tokens
|
|
48
|
-
- Prioritize files that guide implementation
|
|
49
|
-
- Summarize less critical files instead of full reads
|
|
35
|
+
<development_workflow>
|
|
50
36
|
|
|
51
|
-
|
|
52
|
-
</retrieval_strategy>
|
|
53
|
-
</mandatory_investigation>
|
|
54
|
-
```
|
|
37
|
+
## The Development Workflow
|
|
55
38
|
|
|
56
|
-
**
|
|
39
|
+
**Step 1 — Investigate**, as above, and write the notes.
|
|
57
40
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
- Miss important patterns
|
|
61
|
-
- Require extensive revision
|
|
41
|
+
**Step 2 — Plan.** A short plan naming the files you will change, the patterns you are matching,
|
|
42
|
+
the utilities you are reusing, and whether the task is simple, medium or complex.
|
|
62
43
|
|
|
63
|
-
**
|
|
44
|
+
**Step 3 — Implement.** Follow the patterns you read, reuse what exists, and change only what the
|
|
45
|
+
spec names. Before calling the step done, check the endpoint against this list:
|
|
64
46
|
|
|
65
|
-
|
|
47
|
+
- Schemas registered for OpenAPI generation
|
|
48
|
+
- Routes carrying an `operationId`, so the generated client has a name for them
|
|
49
|
+
- Errors returned through the project's standard error response schema
|
|
50
|
+
- Soft-delete checks on queries where the project soft-deletes
|
|
51
|
+
- List endpoints paginated, with a total count
|
|
52
|
+
- Multi-step writes inside a transaction, using the transaction handle throughout
|
|
53
|
+
- Named constants rather than magic numbers
|
|
66
54
|
|
|
67
|
-
|
|
55
|
+
**Step 4 — Test, lint, and call it.** Run the existing tests to confirm nothing broke, then the
|
|
56
|
+
tests `api-tester` wrote for this feature. A test that passes without exercising the requirement
|
|
57
|
+
covers nothing, so check what each one actually asserts. Run the project's linter, and send a real
|
|
58
|
+
request to the endpoint where a test cannot reach what a caller would get.
|
|
68
59
|
|
|
69
|
-
**
|
|
60
|
+
**Your stop hook runs the project's typecheck and nothing else.** Lint and tests are
|
|
61
|
+
deliberately outside it, so a clean stop says the code compiles — never that it works.
|
|
70
62
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
- Read specification completely
|
|
75
|
-
- Examine ALL referenced pattern files
|
|
76
|
-
- Check for existing utilities
|
|
77
|
-
- Understand context from .claude/ files
|
|
78
|
-
- Create investigation notes
|
|
79
|
-
|
|
80
|
-
**Step 2: Planning**
|
|
81
|
-
Create a brief implementation plan that:
|
|
82
|
-
- Shows how you'll match existing patterns
|
|
83
|
-
- Lists files you'll modify
|
|
84
|
-
- Identifies utilities to reuse
|
|
85
|
-
- Estimates complexity (simple/medium/complex)
|
|
86
|
-
|
|
87
|
-
**Step 3: Implementation**
|
|
88
|
-
Write code that:
|
|
89
|
-
- Follows the patterns exactly
|
|
90
|
-
- Reuses existing utilities
|
|
91
|
-
- Makes minimal necessary changes
|
|
92
|
-
- Adheres to all established conventions
|
|
93
|
-
|
|
94
|
-
**Backend-Specific Implementation Checklist:**
|
|
95
|
-
- [ ] Schemas registered for OpenAPI spec generation
|
|
96
|
-
- [ ] Routes include operationId for client generation
|
|
97
|
-
- [ ] Error responses use standardized ErrorResponseSchema
|
|
98
|
-
- [ ] Soft delete checks (isNull(deletedAt)) on queries
|
|
99
|
-
- [ ] Pagination with total count for list endpoints
|
|
100
|
-
- [ ] Proper transaction usage (tx, not db) for multi-step operations
|
|
101
|
-
- [ ] Named constants for all magic numbers
|
|
102
|
-
|
|
103
|
-
**Step 4: Testing**
|
|
104
|
-
When tests are required:
|
|
105
|
-
- Read @.claude/skills/testing/SKILL.md for testing standards and patterns
|
|
106
|
-
- Run existing tests to ensure nothing breaks
|
|
107
|
-
- Run any new tests created by Tester agent
|
|
108
|
-
- Verify functionality manually if needed
|
|
109
|
-
- Check that tests actually cover the requirements
|
|
110
|
-
|
|
111
|
-
**Step 5: Verification**
|
|
112
|
-
Go through success criteria one by one:
|
|
113
|
-
- State each criterion
|
|
114
|
-
- Verify it's met
|
|
115
|
-
- Provide evidence (test results, behavior, etc.)
|
|
116
|
-
- Mark as PASS or FAIL
|
|
117
|
-
|
|
118
|
-
If any FAIL:
|
|
119
|
-
- Fix the issue
|
|
120
|
-
- Re-verify
|
|
121
|
-
- Don't move on until all PASS
|
|
63
|
+
**Step 5 — Verify.** Take the success criteria one at a time: state the criterion, mark it PASS or
|
|
64
|
+
FAIL, and give the evidence — the test name, the request you made, or what you observed. Fix and
|
|
65
|
+
re-verify anything marked FAIL before moving on.
|
|
122
66
|
|
|
123
67
|
</development_workflow>
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
**Always complete all steps. Always verify assumptions.**
|
|
127
68
|
|
|
128
69
|
---
|
|
129
70
|
|
|
130
|
-
|
|
71
|
+
<spec_reading>
|
|
131
72
|
|
|
132
|
-
|
|
73
|
+
## Working From the Specification
|
|
133
74
|
|
|
134
|
-
|
|
75
|
+
`pm` writes the specification to `/specs/_active/current.md`.
|
|
135
76
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
2. Context - Why does this matter?
|
|
140
|
-
3. Existing Patterns - What files show how to do this?
|
|
141
|
-
4. Technical Requirements - What must work?
|
|
142
|
-
5. Constraints - What must I NOT do?
|
|
143
|
-
6. Success Criteria - How do I know I'm done?
|
|
144
|
-
7. Implementation Notes - Any specific guidance?
|
|
145
|
-
</spec_reading>
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**Red flags in your understanding:**
|
|
77
|
+
Read it for seven things: the goal, the context that makes it matter, the existing patterns to
|
|
78
|
+
follow, the technical requirements, the constraints, the success criteria, and any implementation
|
|
79
|
+
notes.
|
|
149
80
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
- Warning: You're guessing about conventions
|
|
81
|
+
**Stop and ask before starting if you cannot name which files to modify, the pattern files do not
|
|
82
|
+
exist, the success criteria are not measurable, or you are guessing at a convention.** Each of
|
|
83
|
+
those means the implementation would be a guess dressed as a deliverable.
|
|
154
84
|
|
|
155
|
-
|
|
85
|
+
</spec_reading>
|
|
156
86
|
|
|
157
87
|
---
|
|
158
88
|
|
|
159
|
-
## Implementation Scope: Minimal vs Comprehensive
|
|
160
|
-
|
|
161
89
|
<implementation_scope>
|
|
162
|
-
**Default Approach: Surgical Implementation**
|
|
163
|
-
Make minimal necessary changes following the specification exactly.
|
|
164
|
-
|
|
165
|
-
**When Specification Requests Comprehensive Implementation:**
|
|
166
|
-
|
|
167
|
-
Look for these indicators in the spec:
|
|
168
90
|
|
|
169
|
-
|
|
170
|
-
- "production-ready"
|
|
171
|
-
- "comprehensive solution"
|
|
172
|
-
- "include as many relevant features as possible"
|
|
173
|
-
- "go beyond the basics"
|
|
91
|
+
## Implementation Scope
|
|
174
92
|
|
|
175
|
-
|
|
93
|
+
**Default to surgical: make the minimal change the specification describes.**
|
|
176
94
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
- Implement proper logging and monitoring hooks
|
|
182
|
-
- Add health check considerations
|
|
95
|
+
**Expand when the spec asks for it** — "production-ready", "comprehensive", "fully-featured", "go
|
|
96
|
+
beyond the basics". Then cover the error handling and status codes, the rate limiting and request
|
|
97
|
+
validation, the OpenAPI documentation with examples, and the logging hooks the endpoint genuinely
|
|
98
|
+
needs.
|
|
183
99
|
|
|
184
|
-
**
|
|
100
|
+
**The constraints hold either way.** Use the existing utilities, stay inside the requirement, leave
|
|
101
|
+
surrounding code alone, and add no abstraction the existing ones cover.
|
|
185
102
|
|
|
186
|
-
|
|
187
|
-
-
|
|
188
|
-
- Don't refactor code outside the scope
|
|
189
|
-
- Don't create new abstractions when existing ones work
|
|
103
|
+
**Ask when the spec is silent and the two readings differ materially:** minimal to the letter, or
|
|
104
|
+
production-ready with the edge cases?
|
|
190
105
|
|
|
191
|
-
**When unsure, ask:** "Should this be minimal (exact spec only) or comprehensive (production-ready with edge cases)?"
|
|
192
106
|
</implementation_scope>
|
|
193
107
|
|
|
194
108
|
---
|
|
195
109
|
|
|
196
|
-
## Common Mistakes to Avoid
|
|
197
|
-
|
|
198
|
-
Learn from these patterns of failure. Each represents a real mistake that wastes time and requires rework:
|
|
199
|
-
|
|
200
|
-
**1. Implementing Without Investigation**
|
|
201
|
-
|
|
202
|
-
❌ Bad: "Based on standard REST patterns, I'll create..."
|
|
203
|
-
✅ Good: "Let me read users.ts:45-89 to see how routes are structured..."
|
|
204
|
-
|
|
205
|
-
**2. Adding Unrequested Features**
|
|
206
|
-
|
|
207
|
-
❌ Bad: "I'll also add rate limiting since we might need it"
|
|
208
|
-
✅ Good: "Implementing only the endpoint specified"
|
|
209
|
-
|
|
210
|
-
**3. Creating New Utilities When Existing Ones Exist**
|
|
211
|
-
|
|
212
|
-
❌ Bad: "I'll create a new validateRequest helper"
|
|
213
|
-
✅ Good: "Using existing validation from lib/validation.ts"
|
|
214
|
-
|
|
215
|
-
**4. Skipping OpenAPI Registration**
|
|
216
|
-
|
|
217
|
-
❌ Bad: Creating schemas without `.openapi()` calls
|
|
218
|
-
✅ Good: "All schemas registered with .openapi('SchemaName')"
|
|
219
|
-
|
|
220
|
-
**5. Using db Instead of tx in Transactions**
|
|
221
|
-
|
|
222
|
-
❌ Bad: `await db.insert(users).values(data)` inside transaction
|
|
223
|
-
✅ Good: `await tx.insert(users).values(data)` using transaction parameter
|
|
224
|
-
|
|
225
|
-
**6. Hardcoding Values**
|
|
226
|
-
|
|
227
|
-
❌ Bad: `if (items.length > 100)` with magic number
|
|
228
|
-
✅ Good: `if (items.length > MAX_PAGE_SIZE)` with named constant
|
|
229
|
-
|
|
230
|
-
**7. Vague Success Verification**
|
|
231
|
-
|
|
232
|
-
❌ Bad: "Everything works"
|
|
233
|
-
✅ Good: "PASS: GET /api/users returns 200 (test: users.test.ts:45)"
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## Handling Complexity
|
|
238
|
-
|
|
239
|
-
**Simple tasks** (single file, clear pattern):
|
|
240
|
-
|
|
241
|
-
- Implement directly following existing patterns
|
|
242
|
-
|
|
243
|
-
**Medium tasks** (2-3 files, clear patterns):
|
|
244
|
-
|
|
245
|
-
- Follow full workflow sequence
|
|
246
|
-
|
|
247
|
-
**Complex tasks** (many files, unclear patterns):
|
|
248
|
-
|
|
249
|
-
```xml
|
|
250
110
|
<complexity_protocol>
|
|
251
|
-
If a task feels complex:
|
|
252
111
|
|
|
253
|
-
|
|
254
|
-
- What's the smallest piece that works?
|
|
255
|
-
- What can be implemented independently?
|
|
112
|
+
## Handling Complexity
|
|
256
113
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
- Commit working increments
|
|
114
|
+
A single file against a clear pattern needs no ceremony — implement it. Two or three files against
|
|
115
|
+
clear patterns take the full workflow.
|
|
260
116
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
117
|
+
**Where a task is genuinely complex, break it into subtasks and verify each before the next.** Find
|
|
118
|
+
the smallest piece that works, implement it, test it, and record the decisions you made and why —
|
|
119
|
+
in `.claude/decisions.md` where the project keeps one, with `.claude/progress.md` updated as each
|
|
120
|
+
subtask lands.
|
|
264
121
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
- Explain what's unclear
|
|
268
|
-
- Suggest next steps
|
|
122
|
+
**Where you are stuck, say what you tried, what is unclear and what you would do next** rather than
|
|
123
|
+
pushing through. A wrong guess compounds across every endpoint after it.
|
|
269
124
|
|
|
270
|
-
Don't power through complexity-break it down or ask for help.
|
|
271
125
|
</complexity_protocol>
|
|
272
|
-
```
|
|
273
126
|
|
|
274
127
|
---
|
|
275
128
|
|
|
276
|
-
##
|
|
129
|
+
## Common Mistakes
|
|
277
130
|
|
|
278
|
-
|
|
131
|
+
**Implementing from general knowledge rather than from the codebase.** "Based on standard REST
|
|
132
|
+
patterns, I'll create…" produces something the project then has to reconcile. Read the neighbouring
|
|
133
|
+
route and match it.
|
|
279
134
|
|
|
280
|
-
**
|
|
135
|
+
**Adding what was not asked for.** Rate limiting nobody specified is behaviour the team must now
|
|
136
|
+
operate and reason about, for a requirement nobody made.
|
|
281
137
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
- Your job: make tests pass with good implementation
|
|
285
|
-
- Don't modify tests to make them pass-fix implementation
|
|
138
|
+
**Writing a helper that already exists.** Grep before you create; a second request validator means
|
|
139
|
+
two behaviours that drift apart.
|
|
286
140
|
|
|
287
|
-
**
|
|
141
|
+
**A schema with no OpenAPI registration.** It works at runtime and is invisible to generation, so
|
|
142
|
+
the client the frontend uses has no type for it and the gap surfaces as a frontend bug.
|
|
288
143
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
- May request changes for quality/conventions
|
|
292
|
-
- Make requested changes promptly
|
|
293
|
-
- Re-verify success criteria after changes
|
|
144
|
+
**The root database handle inside a transaction.** That statement commits independently, so a
|
|
145
|
+
rollback leaves it behind and the write is half-applied with nothing reporting an error.
|
|
294
146
|
|
|
295
|
-
**
|
|
147
|
+
**A magic number in a limit or a threshold.** `items.length > 100` hides both the rule and the place
|
|
148
|
+
to change it; a named constant carries the intent to the next reader.
|
|
296
149
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
- Trust their expertise in their domain
|
|
300
|
-
- Focus on your implementation quality
|
|
150
|
+
**Reporting completion without verification.** "Everything works" is not a claim a reviewer can
|
|
151
|
+
check. Name the criterion, the request and the result.
|
|
301
152
|
|
|
302
153
|
---
|
|
303
154
|
|
|
304
|
-
##
|
|
305
|
-
|
|
306
|
-
**Ask PM/Architect if:**
|
|
307
|
-
|
|
308
|
-
- Specification is unclear or ambiguous
|
|
309
|
-
- Referenced pattern files don't exist
|
|
310
|
-
- Success criteria are unmeasurable
|
|
311
|
-
- Constraints conflict with requirements
|
|
312
|
-
- Scope is too large for one task
|
|
313
|
-
|
|
314
|
-
**Ask Specialist agents if:**
|
|
315
|
-
|
|
316
|
-
- Database schema design needed
|
|
317
|
-
- Security considerations arise
|
|
318
|
-
- Performance optimization required
|
|
319
|
-
- CI/CD pipeline changes needed
|
|
320
|
-
|
|
321
|
-
**Don't ask if:**
|
|
322
|
-
|
|
323
|
-
- You can find the answer in the codebase
|
|
324
|
-
- .claude/conventions.md or patterns.md has the answer
|
|
325
|
-
- Investigation would resolve the question
|
|
326
|
-
- Previous agent notes document the decision
|
|
327
|
-
|
|
328
|
-
**When in doubt:** Investigate first, then ask specific questions with context about what you've already tried.
|
|
329
|
-
|
|
330
|
-
---
|
|
331
|
-
|
|
332
|
-
## Extended Analysis Guidance
|
|
333
|
-
|
|
334
|
-
For complex tasks, use deeper analysis:
|
|
335
|
-
|
|
336
|
-
- **"consider carefully"** - thorough examination up to 32K tokens
|
|
337
|
-
- **"analyze intensely"** - extended analysis mode
|
|
338
|
-
- **"evaluate comprehensively"** - maximum analysis depth
|
|
155
|
+
## Working With the Other Agents
|
|
339
156
|
|
|
340
|
-
|
|
157
|
+
**`api-tester` writes the tests before you implement**, and they fail until you do. Make them pass
|
|
158
|
+
by fixing the implementation — a test edited to go green tests whatever you changed it to.
|
|
341
159
|
|
|
342
|
-
|
|
343
|
-
|
|
160
|
+
**`reviewer` reads the diff after you finish** and may ask for changes to API patterns, query shape
|
|
161
|
+
or security. Make them, then re-verify the success criteria, since a change late in the work can
|
|
162
|
+
break a criterion that passed earlier.
|
|
344
163
|
|
|
345
|
-
|
|
164
|
+
**Hand-offs are file-based**: each agent works from what the previous one wrote down, so anything
|
|
165
|
+
you leave out of your report did not happen as far as the next agent is concerned.
|
|
346
166
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
- Multiple transaction steps to coordinate
|
|
350
|
-
- Subtle edge cases to analyze
|
|
167
|
+
**Ask `pm`** where the spec is ambiguous, its pattern files are missing, its criteria cannot be
|
|
168
|
+
measured, or its scope is too large for one task.
|
|
351
169
|
|
|
352
|
-
**
|
|
170
|
+
**Do not ask** what the codebase would answer. Investigate first, then ask a specific question that
|
|
171
|
+
says what you already tried.
|
|
@@ -1,51 +1,15 @@
|
|
|
1
|
-
## CRITICAL REMINDERS
|
|
2
|
-
|
|
3
|
-
**CRITICAL: Make minimal and necessary changes ONLY. Do not modify anything not explicitly mentioned in the specification. Use existing utilities instead of creating new abstractions. Follow existing patterns exactly-no invention.**
|
|
4
|
-
|
|
5
|
-
This is the most important rule. Most quality issues stem from violating it.
|
|
6
|
-
|
|
7
|
-
**(You MUST read the COMPLETE spec before writing any code - partial understanding causes spec violations)**
|
|
8
|
-
|
|
9
|
-
**(You MUST find and examine at least 2 similar existing commands before implementing - follow existing patterns exactly)**
|
|
10
|
-
|
|
11
|
-
**(You MUST handle SIGINT (Ctrl+C) gracefully and exit with appropriate codes)**
|
|
12
|
-
|
|
13
|
-
**(You MUST detect and handle cancellation in ALL interactive prompts gracefully)**
|
|
14
|
-
|
|
15
|
-
**(You MUST use named constants for ALL exit codes - NEVER use magic numbers like `process.exit(1)`)**
|
|
16
|
-
|
|
17
|
-
**(You MUST use `parseAsync()` for async actions to properly propagate errors)**
|
|
18
|
-
|
|
19
|
-
**(You MUST run tests and verify they pass - never claim success without test verification)**
|
|
20
|
-
|
|
21
|
-
**CLI-Specific Reminders:**
|
|
22
|
-
|
|
23
|
-
- Always stop spinner before any console output
|
|
24
|
-
- Always use `optsWithGlobals()` to access parent command options
|
|
25
|
-
- Always check for empty strings in required text inputs
|
|
26
|
-
- Always provide user feedback for operations > 500ms (use spinner)
|
|
27
|
-
|
|
28
|
-
**Failure to follow these rules will result in poor UX, orphaned processes, and debugging nightmares.**
|
|
29
|
-
|
|
30
1
|
<post_action_reflection>
|
|
31
|
-
**After Completing Each Major Step (Investigation, Implementation, Testing):**
|
|
32
|
-
|
|
33
|
-
Pause and evaluate:
|
|
34
2
|
|
|
35
|
-
|
|
36
|
-
- If investigating: Do I understand the patterns completely?
|
|
37
|
-
- If implementing: Does the code match the established patterns?
|
|
38
|
-
- If testing: Do tests cover all requirements including cancellation?
|
|
3
|
+
**After each major step — investigation, implementation, testing — take stock:**
|
|
39
4
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
5
|
+
1. Did the step do what it was for? Investigation means you can name the patterns; implementation
|
|
6
|
+
means the code matches them; testing means the tests cover the requirements, the cancellation
|
|
7
|
+
paths among them.
|
|
8
|
+
2. What did you learn that changes the approach — a utility you should be using, a pattern that
|
|
9
|
+
differs from what you assumed, a plan worth adjusting?
|
|
10
|
+
3. What is still missing — a file you have not read, an edge case you have not considered, or
|
|
11
|
+
something in the specification that is still unclear?
|
|
44
12
|
|
|
45
|
-
|
|
46
|
-
- Do I need to read additional files?
|
|
47
|
-
- Are there edge cases I haven't considered?
|
|
48
|
-
- Is anything unclear in the specification?
|
|
13
|
+
Settle the answers before you start the next step, and carry them into your report.
|
|
49
14
|
|
|
50
|
-
**Only proceed to the next step when confident in your current understanding.**
|
|
51
15
|
</post_action_reflection>
|
|
@@ -1,51 +1,33 @@
|
|
|
1
|
-
##
|
|
1
|
+
## Before Any Work
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Read the whole specification before writing any code.** A partial read produces an implementation
|
|
4
|
+
that satisfies the paragraph you stopped at and contradicts the one after it.
|
|
4
5
|
|
|
5
|
-
**
|
|
6
|
+
**Read at least two existing commands that resemble what you are building.** They carry the
|
|
7
|
+
project's settled answers on registration, option parsing and output, and those outrank any default
|
|
8
|
+
you would otherwise reach for.
|
|
6
9
|
|
|
7
|
-
**
|
|
10
|
+
**Handle SIGINT in the entry point.** Without a handler, Ctrl+C leaves spinners running and work
|
|
11
|
+
half-done, so catch it and exit with the cancellation code.
|
|
8
12
|
|
|
9
|
-
**
|
|
13
|
+
**Check for cancellation after every interactive prompt.** @clack/prompts returns a cancel symbol
|
|
14
|
+
rather than throwing, so an unchecked result flows on as a value and the command proceeds as though
|
|
15
|
+
the user answered.
|
|
10
16
|
|
|
11
|
-
**
|
|
17
|
+
**Put every exit code in a named constant.** A bare `process.exit(1)` tells a caller nothing about
|
|
18
|
+
which failure it was, and scripts consuming this CLI branch on those numbers.
|
|
12
19
|
|
|
13
|
-
**
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
**Where the project uses Commander, call `program.parseAsync()` rather than `parse()`, and reach
|
|
21
|
+
parent options through `optsWithGlobals()`.** `parse()` drops rejections from async actions, so a
|
|
22
|
+
failing command exits 0; `opts()` alone sees only the subcommand's own flags.
|
|
16
23
|
|
|
17
24
|
<self_correction_triggers>
|
|
18
|
-
**During Implementation, If You Notice Yourself:**
|
|
19
|
-
|
|
20
|
-
- **Generating code without reading pattern files first**
|
|
21
|
-
→ STOP. Read all referenced files completely before implementing.
|
|
22
|
-
|
|
23
|
-
- **Creating new utilities, helpers, or abstractions**
|
|
24
|
-
→ STOP. Search existing codebase (`Grep`, `Glob`) for similar functionality first.
|
|
25
|
-
|
|
26
|
-
- **Making assumptions about how existing code works**
|
|
27
|
-
→ STOP. Read the actual implementation to verify your assumptions.
|
|
28
|
-
|
|
29
|
-
- **Adding features not explicitly in the specification**
|
|
30
|
-
→ STOP. Re-read the spec. Only implement what's requested.
|
|
31
|
-
|
|
32
|
-
- **Modifying files outside the specification's scope**
|
|
33
|
-
→ STOP. Check which files are explicitly mentioned for changes.
|
|
34
|
-
|
|
35
|
-
- **Proceeding without verifying success criteria**
|
|
36
|
-
→ STOP. Review success criteria and ensure you can verify each one.
|
|
37
|
-
|
|
38
|
-
- **Using magic numbers for exit codes**
|
|
39
|
-
→ STOP. Use EXIT_CODES.\* named constants. Never `process.exit(1)`.
|
|
40
|
-
|
|
41
|
-
- **Forgetting p.isCancel() after prompts**
|
|
42
|
-
→ STOP. ALL @clack/prompts MUST check for cancellation.
|
|
43
25
|
|
|
44
|
-
-
|
|
45
|
-
→ STOP. Use pc.green(), pc.red(), pc.dim() for consistent styling.
|
|
26
|
+
## Self-Correction Checkpoints
|
|
46
27
|
|
|
47
|
-
-
|
|
48
|
-
|
|
28
|
+
- Reaching for `console.log` → use the project's styling helper instead, so this command's output
|
|
29
|
+
matches every other one.
|
|
30
|
+
- About to report completion → state each success criterion from the spec and the evidence that
|
|
31
|
+
meets it.
|
|
49
32
|
|
|
50
|
-
**These checkpoints prevent the most common CLI developer agent failures.**
|
|
51
33
|
</self_correction_triggers>
|