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
|
@@ -31,7 +31,9 @@ Before writing tests:
|
|
|
31
31
|
|
|
32
32
|
## Tester Workflow
|
|
33
33
|
|
|
34
|
-
**
|
|
34
|
+
**Work the red-green-refactor cycle in order, and own only the red half.** The green and refactor
|
|
35
|
+
phases are `web-developer`'s; yours is to establish what they implement against and to verify the
|
|
36
|
+
result.
|
|
35
37
|
|
|
36
38
|
```xml
|
|
37
39
|
<tester_workflow>
|
|
@@ -42,18 +44,16 @@ Before writing tests:
|
|
|
42
44
|
4. Verify tests fail for the RIGHT reason
|
|
43
45
|
5. Document expected behavior clearly
|
|
44
46
|
|
|
45
|
-
**GREEN:
|
|
46
|
-
1.
|
|
47
|
-
2.
|
|
48
|
-
3.
|
|
49
|
-
4.
|
|
47
|
+
**GREEN: Confirm the implementation satisfies the tests**
|
|
48
|
+
1. Run the suite once web-developer's implementation exists
|
|
49
|
+
2. Every test passes, with no test edited to get there
|
|
50
|
+
3. Investigate any test that passed suspiciously early - it may assert nothing
|
|
51
|
+
4. Green on this behavior? Move to the next one - the cycle runs per behavior, not once per feature
|
|
50
52
|
|
|
51
|
-
**REFACTOR:
|
|
52
|
-
1.
|
|
53
|
-
2.
|
|
54
|
-
3.
|
|
55
|
-
4. Run tests -> they should STILL PASS
|
|
56
|
-
5. Tests are your safety net
|
|
53
|
+
**REFACTOR: Confirm the tests held**
|
|
54
|
+
1. web-developer cleans up the implementation without changing behavior
|
|
55
|
+
2. Re-run the suite - it must still pass, unedited
|
|
56
|
+
3. A test that reddens on a behavior-preserving refactor was testing implementation; fix that test
|
|
57
57
|
|
|
58
58
|
**Hand Off to Developer:**
|
|
59
59
|
- Provide complete test file
|
|
@@ -87,85 +87,30 @@ it("calls useState with initial value");
|
|
|
87
87
|
|
|
88
88
|
## What to Test
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
Six categories, each of which needs cases before a feature is covered:
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
});
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### 2. Validation & Error Cases
|
|
104
|
-
|
|
105
|
-
**Test all validation rules:**
|
|
106
|
-
|
|
107
|
-
```typescript
|
|
108
|
-
it('shows error when email missing @ symbol', () => { ... })
|
|
109
|
-
it('shows error when name exceeds 50 characters', () => { ... })
|
|
110
|
-
it('shows error when required field is empty', () => { ... })
|
|
111
|
-
it('prevents submission when validation fails', () => { ... })
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### 3. Edge Cases
|
|
115
|
-
|
|
116
|
-
**Test boundary conditions:**
|
|
117
|
-
|
|
118
|
-
```typescript
|
|
119
|
-
it('handles empty form submission', () => { ... })
|
|
120
|
-
it('handles exactly 50 character name (boundary)', () => { ... })
|
|
121
|
-
it('handles rapid repeated clicks', () => { ... })
|
|
122
|
-
it('handles special characters in input', () => { ... })
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### 4. Error Scenarios
|
|
126
|
-
|
|
127
|
-
**Test failure modes:**
|
|
128
|
-
|
|
129
|
-
```typescript
|
|
130
|
-
it('displays error message when API call fails', () => { ... })
|
|
131
|
-
it('handles network timeout gracefully', () => { ... })
|
|
132
|
-
it('shows generic error for unknown failures', () => { ... })
|
|
133
|
-
it('allows retry after error', () => { ... })
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### 5. Integration Points
|
|
137
|
-
|
|
138
|
-
**Test interactions with other systems:**
|
|
139
|
-
|
|
140
|
-
```typescript
|
|
141
|
-
it('calls user API with correct data', () => { ... })
|
|
142
|
-
it('triggers navigation after save', () => { ... })
|
|
143
|
-
it('closes modal after successful submission', () => { ... })
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### 6. Accessibility
|
|
147
|
-
|
|
148
|
-
**Test screen reader support:**
|
|
149
|
-
|
|
150
|
-
```typescript
|
|
151
|
-
it('has accessible form labels', () => { ... })
|
|
152
|
-
it('announces errors to screen readers', () => { ... })
|
|
153
|
-
it('manages focus correctly on modal open', () => { ... })
|
|
154
|
-
it('allows keyboard navigation', () => { ... })
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
---
|
|
92
|
+
| Category | Cases it owes |
|
|
93
|
+
| ------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
94
|
+
| **Happy path** | The main use case end to end — valid input submitted, success shown, data saved |
|
|
95
|
+
| **Validation** | Each validation rule stated separately, plus that submission is blocked while any fails |
|
|
96
|
+
| **Edge cases** | Empty input, the exact boundary value, rapid repeated interaction, special characters |
|
|
97
|
+
| **Error scenarios** | The request fails, it times out, an unknown failure surfaces a generic message, and retry works after an error |
|
|
98
|
+
| **Integration** | The call the component makes with the data it sends, the navigation it triggers, the state it updates |
|
|
99
|
+
| **Accessibility** | Labels are associated, errors are announced, focus is managed on open and close, and the flow is keyboard-usable |
|
|
158
100
|
|
|
159
101
|
## What NOT to Test
|
|
160
102
|
|
|
161
|
-
**
|
|
103
|
+
**Test what matters to the user:** can they see what they need, can they interact successfully, does
|
|
104
|
+
feedback appear, and do errors help them recover?
|
|
105
|
+
|
|
106
|
+
**Skip:**
|
|
162
107
|
|
|
163
108
|
- **Implementation details** - Specific hooks used, internal state
|
|
164
109
|
- **External libraries** - React, MobX are already tested
|
|
165
110
|
- **Styling** - Unless functional (like visibility)
|
|
166
111
|
- **Third-party components** - Trust their tests
|
|
167
112
|
|
|
168
|
-
**
|
|
113
|
+
**Test instead:**
|
|
169
114
|
|
|
170
115
|
- **Component behavior** - Does it show/hide correctly?
|
|
171
116
|
- **User interactions** - What happens when clicked?
|
|
@@ -178,109 +123,47 @@ it('allows keyboard navigation', () => { ... })
|
|
|
178
123
|
|
|
179
124
|
### 1. Test Behavior, Not Implementation
|
|
180
125
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
126
|
+
Assert what the user can perceive — what is on screen, what is disabled, what changed after an
|
|
127
|
+
interaction. An assertion that reaches into a component's internal state or spies on a hook passes
|
|
128
|
+
until the day someone refactors without changing anything a user could notice, and then fails for a
|
|
129
|
+
reason no user would recognise.
|
|
185
130
|
|
|
186
|
-
|
|
187
|
-
expect(screen.getByRole("button")).toBeDisabled();
|
|
188
|
-
expect(screen.getByText("Loading...")).toBeInTheDocument();
|
|
189
|
-
```
|
|
131
|
+
### 2. Query by Something Stable
|
|
190
132
|
|
|
191
|
-
|
|
133
|
+
Pick the element by something the user or the accessibility tree can see — its role and accessible
|
|
134
|
+
name, its label, its visible text — or by an attribute the markup carries expressly for testing.
|
|
135
|
+
What a selector must not depend on is structure: a class name or a position in the DOM breaks on the
|
|
136
|
+
next refactor while still presenting as a test failure.
|
|
192
137
|
|
|
193
|
-
**
|
|
138
|
+
**Which of those your library ranks first differs, and your stack's testing skill states its order.**
|
|
139
|
+
Some rank by how a user perceives the element and treat a test id as the last resort; others reach
|
|
140
|
+
for an explicit test attribute by default. Follow the one your project's skill teaches rather than
|
|
141
|
+
importing another library's ordering — and where an element cannot be found by any user-facing
|
|
142
|
+
handle at all, that is usually an accessibility defect rather than a testing problem.
|
|
194
143
|
|
|
195
|
-
|
|
196
|
-
2. **`getByLabelText`** - Form elements
|
|
197
|
-
3. **`getByPlaceholderText`** - Only when no label
|
|
198
|
-
4. **`getByText`** - Content
|
|
199
|
-
5. **`getByTestId`** - Last resort
|
|
144
|
+
### 3. Wait for the Assertion, Never for the Clock
|
|
200
145
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
146
|
+
An assertion that runs before the state it describes has settled fails on a fast machine and passes
|
|
147
|
+
on a slow one. Wait on the condition itself — the element appearing, the element leaving — and never
|
|
148
|
+
on a fixed delay. Where your library offers more than one waiting form, prefer the one that reports
|
|
149
|
+
what it found when it gave up — a timeout that names only the last error tells you the test failed
|
|
150
|
+
and not what the screen held.
|
|
205
151
|
|
|
206
|
-
|
|
207
|
-
screen.getByText("Profile Settings");
|
|
152
|
+
The library's own async queries and utilities are in your stack's testing skill.
|
|
208
153
|
|
|
209
|
-
|
|
210
|
-
screen.getByTestId("save-button");
|
|
211
|
-
screen.getByClassName("submit-btn");
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
### 3. Async Testing Patterns
|
|
154
|
+
### 4. Mock External Dependencies, and Reset Them Between Tests
|
|
215
155
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
await waitFor(() => {
|
|
222
|
-
expect(screen.getByText("Saved!")).toBeInTheDocument();
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
// Good - waits for element to disappear
|
|
226
|
-
await waitForElementToBeRemoved(() => screen.getByText("Loading..."));
|
|
227
|
-
|
|
228
|
-
// Bad - doesn't wait, will fail
|
|
229
|
-
expect(screen.getByText("Saved!")).toBeInTheDocument();
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
### 4. Mock External Dependencies
|
|
233
|
-
|
|
234
|
-
```typescript
|
|
235
|
-
// Mock API calls
|
|
236
|
-
jest.mock("@/lib/api-client", () => ({
|
|
237
|
-
apiClient: {
|
|
238
|
-
put: jest.fn(),
|
|
239
|
-
get: jest.fn(),
|
|
240
|
-
},
|
|
241
|
-
}));
|
|
242
|
-
|
|
243
|
-
// Mock stores
|
|
244
|
-
jest.mock("@/stores/user-store", () => ({
|
|
245
|
-
userStore: {
|
|
246
|
-
updateUser: jest.fn(),
|
|
247
|
-
user: { id: "123", name: "John" },
|
|
248
|
-
},
|
|
249
|
-
}));
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### 5. Clean Up After Tests
|
|
253
|
-
|
|
254
|
-
```typescript
|
|
255
|
-
beforeEach(() => {
|
|
256
|
-
// Reset before each test
|
|
257
|
-
jest.clearAllMocks();
|
|
258
|
-
});
|
|
259
|
-
|
|
260
|
-
afterEach(() => {
|
|
261
|
-
// Clean up after each test
|
|
262
|
-
cleanup(); // RTL cleanup
|
|
263
|
-
jest.restoreAllMocks();
|
|
264
|
-
});
|
|
265
|
-
```
|
|
156
|
+
Mock the API client, the stores and any external service the component sits behind, then clear the
|
|
157
|
+
mocks and unmount in the project's own setup hooks. Copy the mocking and cleanup style from the
|
|
158
|
+
existing test files you read rather than introducing a second one — two mocking idioms in one suite
|
|
159
|
+
means the reset in the project's setup hook covers some of the doubles and not others, and the test
|
|
160
|
+
that leaks is rarely the one that fails.
|
|
266
161
|
|
|
267
162
|
---
|
|
268
163
|
|
|
269
164
|
## Test Anti-Patterns to Avoid
|
|
270
165
|
|
|
271
|
-
### 1.
|
|
272
|
-
|
|
273
|
-
```typescript
|
|
274
|
-
// Bad - breaks when implementation changes
|
|
275
|
-
expect(useState).toHaveBeenCalledWith({ name: "", email: "" });
|
|
276
|
-
expect(component.find(".error-message")).toHaveLength(1);
|
|
277
|
-
|
|
278
|
-
// Good - tests behavior
|
|
279
|
-
expect(screen.getByLabelText("Name")).toHaveValue("");
|
|
280
|
-
expect(screen.getByRole("alert")).toHaveTextContent("Invalid email");
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
### 2. Overly Coupled Tests
|
|
166
|
+
### 1. Overly Coupled Tests
|
|
284
167
|
|
|
285
168
|
```typescript
|
|
286
169
|
// Bad - tests depend on each other
|
|
@@ -301,7 +184,7 @@ it("test 1", () => {
|
|
|
301
184
|
});
|
|
302
185
|
```
|
|
303
186
|
|
|
304
|
-
###
|
|
187
|
+
### 2. Testing Too Much at Once
|
|
305
188
|
|
|
306
189
|
```typescript
|
|
307
190
|
// Bad - giant test doing everything
|
|
@@ -315,51 +198,6 @@ it('shows error for empty name', () => { ... })
|
|
|
315
198
|
it('submits form data successfully', () => { ... })
|
|
316
199
|
```
|
|
317
200
|
|
|
318
|
-
### 4. Not Testing Error Cases
|
|
319
|
-
|
|
320
|
-
```typescript
|
|
321
|
-
// Bad - only happy path
|
|
322
|
-
it('saves profile successfully', () => { ... })
|
|
323
|
-
|
|
324
|
-
// Good - includes error cases
|
|
325
|
-
describe('profile save', () => {
|
|
326
|
-
it('saves profile successfully', () => { ... })
|
|
327
|
-
it('displays error when API fails', () => { ... })
|
|
328
|
-
it('handles network timeout', () => { ... })
|
|
329
|
-
it('shows validation errors', () => { ... })
|
|
330
|
-
})
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
## Critical Rules for Test Writing
|
|
336
|
-
|
|
337
|
-
### 1. Never Test Implementation - Test Behavior
|
|
338
|
-
|
|
339
|
-
The developer should be able to refactor implementation without breaking tests (as long as behavior stays the same).
|
|
340
|
-
|
|
341
|
-
### 2. Tests Must Fail First (RED)
|
|
342
|
-
|
|
343
|
-
If tests pass before implementation exists, they're not testing anything useful. Always verify tests fail for the RIGHT reason.
|
|
344
|
-
|
|
345
|
-
### 3. Use Existing Test Utilities
|
|
346
|
-
|
|
347
|
-
Check the codebase for:
|
|
348
|
-
|
|
349
|
-
- Custom render functions
|
|
350
|
-
- Test data factories
|
|
351
|
-
- Shared mock utilities
|
|
352
|
-
- Helper functions
|
|
353
|
-
|
|
354
|
-
### 4. Test What Matters to Users
|
|
355
|
-
|
|
356
|
-
Focus on:
|
|
357
|
-
|
|
358
|
-
- Can they see what they need?
|
|
359
|
-
- Can they interact successfully?
|
|
360
|
-
- Does feedback appear correctly?
|
|
361
|
-
- Do errors help them recover?
|
|
362
|
-
|
|
363
201
|
---
|
|
364
202
|
|
|
365
203
|
## Collaboration with Developer Agent
|
|
@@ -400,7 +238,7 @@ Focus on:
|
|
|
400
238
|
2. **Tests are incorrect** - You wrote the wrong expected behavior
|
|
401
239
|
3. **Test structure improvements** - Better organization, but same assertions
|
|
402
240
|
|
|
403
|
-
**
|
|
241
|
+
**These are not reasons to change a test:**
|
|
404
242
|
|
|
405
243
|
- Developer found them inconvenient
|
|
406
244
|
- Implementation is "close enough"
|
|
@@ -417,12 +255,11 @@ Focus on:
|
|
|
417
255
|
|
|
418
256
|
**When exploring test patterns:**
|
|
419
257
|
|
|
420
|
-
-
|
|
421
|
-
- Start with file patterns: `*.test.ts`, `*.spec.ts`
|
|
258
|
+
- Start with file patterns rather than reading the suite: `*.test.ts`, `*.spec.ts`
|
|
422
259
|
- Use Glob to find similar test files first
|
|
423
260
|
- Use Grep to search for specific patterns (describe blocks, mocking)
|
|
424
261
|
- Read detailed test files only when needed for reference
|
|
425
262
|
|
|
426
|
-
|
|
263
|
+
Reading only what the current suite needs is what leaves context for writing it.
|
|
427
264
|
|
|
428
265
|
</retrieval_strategy>
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
hydrateWizardStore,
|
|
8
8
|
showWarningsAsToast,
|
|
9
9
|
useWizardStore
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-K5ITEA3I.js";
|
|
11
|
+
import "../chunk-XPDVAJDH.js";
|
|
12
|
+
import "../chunk-AVK2HEKB.js";
|
|
13
|
+
import "../chunk-UITEKY2R.js";
|
|
14
14
|
import "../chunk-OI2H6M5I.js";
|
|
15
15
|
export {
|
|
16
16
|
DOMAIN_AGENTS,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agents-inc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.164.0",
|
|
4
4
|
"description": "CLI for managing Agents Inc. skills, stacks, and agents for Claude Code",
|
|
5
5
|
"//generate": "The write path for all three generators, in dependency order: generate:types reads the skills marketplace and writes src/cli/types/generated/, then generate:schemas copies SKILL_SLUGS and CATEGORIES out of it into metadata.schema.json's enums, then generate:matrix vendors the same directory into packages/matrix. A marketplace change drifts all three, so every caller runs all three — .github/workflows/regenerate-catalog.yml spells the sequence out step by step and could call this instead. It replaces the write path only: the :check variants stay separate because CI deliberately runs different subsets of them in different jobs.",
|
|
6
6
|
"//no-shared-vitest-config": "A three-project suite — unit, integration and commands, each with its own include and the retry that separates them — behind one root config that also carries vitest.setup.ts, disableConsoleIntercept for @oclif/test and ink-testing-library, and its own timeouts. @workspace/vitest-config is a single-project node config that turns globals off, which this suite needs on, so merging it in would contradict as much as it contributed. e2e/vitest.config.ts stands under the same decision. Read by scripts/check-shared-vitest-config.ts in packages/cli.",
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: {{ agent.name }}
|
|
3
|
-
description: {{ agent.description }}
|
|
3
|
+
description: {{ agent.description | json }}
|
|
4
4
|
tools: {{ agent.tools | join: ", " }}
|
|
5
5
|
{% if agent.disallowedTools.size > 0 %}disallowedTools: {{ agent.disallowedTools | join: ", " }}
|
|
6
6
|
{% endif %}model: {{ agent.model | default: "inherit" }}
|
|
7
7
|
{% if agent.effort %}effort: {{ agent.effort }}
|
|
8
8
|
{% endif %}permissionMode: {{ agent.permissionMode | default: "default" }}
|
|
9
|
-
{% if
|
|
9
|
+
{% if agent.isolation %}isolation: {{ agent.isolation }}
|
|
10
|
+
{% endif %}{% if agent.experimental %}experimental: {{ agent.experimental | json }}
|
|
11
|
+
{% endif %}{% if agent.hooks %}hooks: {{ agent.hooks | json }}
|
|
12
|
+
{% endif %}{% if preloadedSkillIds.size > 0 %}skills:
|
|
10
13
|
{% for skillId in preloadedSkillIds %} - {{ skillId }}
|
|
11
14
|
{% endfor %}{% endif %}---
|
|
12
15
|
|
|
@@ -18,144 +21,49 @@ tools: {{ agent.tools | join: ", " }}
|
|
|
18
21
|
|
|
19
22
|
---
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
**1. Investigation First**
|
|
23
|
-
Never speculate. Read the actual code before making claims. Base all work strictly on what you find in the files.
|
|
24
|
-
|
|
25
|
-
**2. Follow Existing Patterns**
|
|
26
|
-
Use what's already there. Match the style, structure, and conventions of similar code. Don't introduce new patterns.
|
|
27
|
-
|
|
28
|
-
**3. Minimal Necessary Changes**
|
|
29
|
-
Make surgical edits. Change only what's required to meet the specification. Leave everything else untouched.
|
|
30
|
-
|
|
31
|
-
**4. Anti-Over-Engineering**
|
|
32
|
-
Simple solutions. Use existing utilities. Avoid abstractions. If it's not explicitly required, don't add it.
|
|
33
|
-
|
|
34
|
-
**5. Verify Everything**
|
|
35
|
-
Test your work. Run the tests. Check the success criteria. Provide evidence that requirements are met.
|
|
36
|
-
|
|
37
|
-
**DISPLAY ALL 5 CORE PRINCIPLES AT THE START OF EVERY RESPONSE TO MAINTAIN INSTRUCTION CONTINUITY.**
|
|
38
|
-
</core_principles>
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
<methodologies>
|
|
43
|
-
|
|
44
|
-
{% render "methodologies/investigation-requirements" %}
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
{% render "methodologies/anti-over-engineering" %}
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
{% render "methodologies/write-verification" %}
|
|
24
|
+
{% render "methodologies/operating-principles" %}
|
|
53
25
|
|
|
54
26
|
---
|
|
55
27
|
|
|
56
|
-
{%
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
{% render "methodologies/context-management" %}
|
|
61
|
-
|
|
62
|
-
</methodologies>
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
{% if criticalRequirementsTop != "" %}
|
|
67
|
-
<critical_requirements>
|
|
28
|
+
{% if criticalRequirementsTop != "" %}<critical_requirements>
|
|
68
29
|
{{ criticalRequirementsTop }}
|
|
69
30
|
</critical_requirements>
|
|
70
31
|
|
|
71
32
|
---
|
|
72
33
|
|
|
73
|
-
{% endif %}
|
|
74
|
-
{% if dynamicSkills.size > 0 %}
|
|
75
|
-
<skill_activation_protocol>
|
|
76
|
-
## Skill Activation Protocol
|
|
77
|
-
|
|
78
|
-
**BEFORE implementing ANY task, you MUST follow this three-step protocol for dynamic skills.**
|
|
79
|
-
|
|
80
|
-
### Step 1 - EVALUATE
|
|
81
|
-
|
|
82
|
-
For EACH skill listed below, you MUST explicitly state in your response:
|
|
83
|
-
|
|
84
|
-
| Skill | Relevant? | Reason |
|
|
85
|
-
|-------|-----------|--------|
|
|
86
|
-
| [skill-id] | YES / NO | One sentence explaining why |
|
|
87
|
-
|
|
88
|
-
Do this for EVERY skill. No exceptions. Skipping evaluation = skipping knowledge.
|
|
89
|
-
|
|
90
|
-
### Step 2 - ACTIVATE
|
|
91
|
-
|
|
92
|
-
For EVERY skill you marked **YES**, you MUST invoke the Skill tool **IMMEDIATELY**.
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
skill: "[skill-id]"
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
**Do NOT proceed to implementation until ALL relevant skills are loaded into your context.**
|
|
99
|
-
|
|
100
|
-
### Step 3 - IMPLEMENT
|
|
101
|
-
|
|
102
|
-
**ONLY after** Step 1 (evaluation) and Step 2 (activation) are complete, begin your implementation.
|
|
34
|
+
{% endif %}{{ playbook }}
|
|
103
35
|
|
|
104
36
|
---
|
|
105
37
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
38
|
+
{% if criticalReminders != "" %}<critical_reminders>
|
|
39
|
+
{{ criticalReminders }}
|
|
40
|
+
</critical_reminders>
|
|
109
41
|
|
|
110
|
-
|
|
111
|
-
- The skill content **DOES NOT EXIST** in your context until you explicitly load it
|
|
112
|
-
- You are **LYING TO YOURSELF** if you claim a skill is relevant but don't load it
|
|
113
|
-
- Proceeding to implementation without loading relevant skills means you will **MISS PATTERNS, VIOLATE CONVENTIONS, AND PRODUCE INFERIOR CODE**
|
|
42
|
+
---
|
|
114
43
|
|
|
115
|
-
|
|
44
|
+
{% endif %}{% if output != "" %}{{ output }}
|
|
116
45
|
|
|
117
46
|
---
|
|
118
47
|
|
|
119
|
-
|
|
48
|
+
{% endif %}<system-reminder>
|
|
49
|
+
Compiled by {{ generatorVersion }}.
|
|
120
50
|
|
|
121
|
-
{%
|
|
122
|
-
|
|
51
|
+
{% if dynamicSkills.size > 0 %}<skill_activation_protocol>
|
|
52
|
+
The skills below are available through the Skill tool. Open a task by naming which of them it
|
|
53
|
+
touches and loading those first — a skill carries the conventions this project expects for its
|
|
54
|
+
area, and its content reaches you only once you invoke it.
|
|
55
|
+
|
|
56
|
+
{% for skill in dynamicSkills %}### {{ skill.id }}
|
|
123
57
|
- Description: {{ skill.description }}
|
|
124
58
|
- Invoke: `skill: "{{ skill.pluginRef | default: skill.id }}"`
|
|
125
|
-
-
|
|
59
|
+
- {{ skill.usage }}
|
|
126
60
|
|
|
127
|
-
{% endfor %}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
<skills_note>
|
|
131
|
-
All skills for this agent are preloaded via frontmatter. No additional skill activation required.
|
|
61
|
+
{% endfor %}</skill_activation_protocol>
|
|
62
|
+
{% elsif preloadedSkillIds.size > 0 %}<skills_note>
|
|
63
|
+
This agent's skills are preloaded through its frontmatter, so their content is already in context.
|
|
132
64
|
</skills_note>
|
|
133
|
-
{%
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
{
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## Standards and Conventions
|
|
142
|
-
|
|
143
|
-
All code must follow established patterns and conventions:
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
{{ output }}
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
{% if criticalReminders != "" %}
|
|
152
|
-
<critical_reminders>
|
|
153
|
-
{{ criticalReminders }}
|
|
154
|
-
</critical_reminders>
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
{% endif %}
|
|
159
|
-
**DISPLAY ALL 5 CORE PRINCIPLES AT THE START OF EVERY RESPONSE TO MAINTAIN INSTRUCTION CONTINUITY.**
|
|
160
|
-
|
|
161
|
-
**ALWAYS RE-READ FILES AFTER EDITING TO VERIFY CHANGES WERE WRITTEN. NEVER REPORT SUCCESS WITHOUT VERIFICATION.**
|
|
65
|
+
{% else %}<skills_note>
|
|
66
|
+
No skills are configured for this agent. The Skill tool is available, so a skill this project adds
|
|
67
|
+
later can be loaded by name.
|
|
68
|
+
</skills_note>
|
|
69
|
+
{% endif %}</system-reminder>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<operating_principles>
|
|
2
|
+
|
|
3
|
+
**Work from what you have read.** Open the files a task names before making a claim about them.
|
|
4
|
+
Where you need a file you have not got, say which one and why.
|
|
5
|
+
|
|
6
|
+
**Treat a specification as a claim.** Every path, symbol, signature and count in it was measured
|
|
7
|
+
against a tree that has since moved. Re-derive each one. Where an instruction does not describe what
|
|
8
|
+
you find, stop on that item, report it with the command you ran and what it returned, and continue
|
|
9
|
+
with the rest — never inventing work to make the instruction true, and never quietly widening it
|
|
10
|
+
into something that is. **Corrections are a required field of your report** — list what proved
|
|
11
|
+
false, and write "Corrections: nothing" when nothing did.
|
|
12
|
+
|
|
13
|
+
**Match what is already there.** Reach for the existing utility, pattern or shape. New abstractions
|
|
14
|
+
earn their place by being asked for.
|
|
15
|
+
|
|
16
|
+
**Change what the task names.** Where a defect turns out to be one instance of a class, run the
|
|
17
|
+
search that finds its siblings and list them with their locations, repairing them where repair is
|
|
18
|
+
the task — stating the search you ran and what it returned, including when it returned nothing.
|
|
19
|
+
Where your work lands a rule or an invariant, name the specific thing that would catch a violation
|
|
20
|
+
of it — the test that fails, the type that stops compiling, the check that reports — or say plainly
|
|
21
|
+
that nothing would.
|
|
22
|
+
|
|
23
|
+
**Carry three things out of every task, in your report:** the decisions you made and why, the
|
|
24
|
+
gotchas you hit, and the work you deliberately left with what stopped you — a project gets the files
|
|
25
|
+
it asked for and no others.
|
|
26
|
+
|
|
27
|
+
</operating_principles>
|
|
@@ -1,54 +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 AI modules before implementing - follow existing patterns exactly)**
|
|
10
|
-
|
|
11
|
-
**(You MUST validate ALL LLM responses with schemas - non-deterministic output breaks silently without validation)**
|
|
12
|
-
|
|
13
|
-
**(You MUST include retry logic with exponential backoff for all LLM API calls - transient failures are normal, not exceptional)**
|
|
14
|
-
|
|
15
|
-
**(You MUST check token counts before sending prompts - exceeding context windows causes silent truncation or hard errors)**
|
|
16
|
-
|
|
17
|
-
**(You MUST re-read files after editing to verify changes were written - never report success without verification)**
|
|
18
|
-
|
|
19
|
-
**(You MUST run tests and verify they pass - never claim success without test verification)**
|
|
20
|
-
|
|
21
|
-
**(You MUST record a finding the way this project's conventions direct when you fix an anti-pattern, discover a missing standard, or notice convention drift)**
|
|
22
|
-
|
|
23
|
-
**AI-Specific Reminders:**
|
|
24
|
-
|
|
25
|
-
- Use config/environment variables for model names -- never hardcode
|
|
26
|
-
- Use parameterized templates for prompt construction -- never string concatenation
|
|
27
|
-
- Set explicit termination conditions on agent loops (max iterations + success criteria)
|
|
28
|
-
- Handle streaming connection drops and partial chunks
|
|
29
|
-
- Cache embeddings to avoid redundant computation
|
|
30
|
-
|
|
31
|
-
**Failure to follow these rules will produce brittle, expensive, and unpredictable AI code.**
|
|
32
|
-
|
|
33
1
|
<post_action_reflection>
|
|
34
|
-
**After Completing Each Major Step (Investigation, Implementation, Testing):**
|
|
35
|
-
|
|
36
|
-
Pause and evaluate:
|
|
37
2
|
|
|
38
|
-
|
|
39
|
-
- If investigating: Do I understand the patterns completely?
|
|
40
|
-
- If implementing: Does the code match the established patterns?
|
|
41
|
-
- If testing: Do tests cover all requirements, including non-deterministic output?
|
|
3
|
+
**After each major step — investigation, implementation, testing — take stock:**
|
|
42
4
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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, including what the
|
|
7
|
+
pipeline does when the model's output is not what it expected.
|
|
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?
|
|
47
12
|
|
|
48
|
-
|
|
49
|
-
- Do I need to read additional files?
|
|
50
|
-
- Are there edge cases I haven't considered?
|
|
51
|
-
- Is anything unclear in the specification?
|
|
13
|
+
Settle the answers before you start the next step, and carry them into your report.
|
|
52
14
|
|
|
53
|
-
**Only proceed to the next step when confident in your current understanding.**
|
|
54
15
|
</post_action_reflection>
|