agents-inc 0.149.1 → 0.150.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 +2277 -0
- package/LICENSE +21 -0
- package/README.md +136 -19
- package/assets/demo.gif +0 -0
- package/assets/demo.tape +266 -0
- package/assets/logo.svg +75 -0
- package/dist/chunk-2RSNKBXC.js +84 -0
- package/dist/chunk-2RSNKBXC.js.map +1 -0
- package/dist/chunk-3LIU2ZEF.js +1355 -0
- package/dist/chunk-3LIU2ZEF.js.map +1 -0
- package/dist/chunk-4GL2F5AB.js +222 -0
- package/dist/chunk-4GL2F5AB.js.map +1 -0
- package/dist/chunk-4LPJZNT7.js +382 -0
- package/dist/chunk-4LPJZNT7.js.map +1 -0
- package/dist/chunk-5K5RBRTD.js +62 -0
- package/dist/chunk-5K5RBRTD.js.map +1 -0
- package/dist/chunk-6I6RZHYP.js +789 -0
- package/dist/chunk-6I6RZHYP.js.map +1 -0
- package/dist/chunk-7URSGJLE.js +430 -0
- package/dist/chunk-7URSGJLE.js.map +1 -0
- package/dist/chunk-C55DN7GE.js +35 -0
- package/dist/chunk-C55DN7GE.js.map +1 -0
- package/dist/chunk-CDMHSHBN.js +68 -0
- package/dist/chunk-CDMHSHBN.js.map +1 -0
- package/dist/chunk-CFQT72MJ.js +92 -0
- package/dist/chunk-CFQT72MJ.js.map +1 -0
- package/dist/chunk-DAG2ULNF.js +125 -0
- package/dist/chunk-DAG2ULNF.js.map +1 -0
- package/dist/chunk-DDG4F3FE.js +181 -0
- package/dist/chunk-DDG4F3FE.js.map +1 -0
- package/dist/chunk-DIBCRIMR.js +36 -0
- package/dist/chunk-DIBCRIMR.js.map +1 -0
- package/dist/chunk-DJAZE4PD.js +10929 -0
- package/dist/chunk-DJAZE4PD.js.map +1 -0
- package/dist/chunk-DUVWGO6E.js +54 -0
- package/dist/chunk-DUVWGO6E.js.map +1 -0
- package/dist/chunk-E4FT2KFV.js +174 -0
- package/dist/chunk-E4FT2KFV.js.map +1 -0
- package/dist/chunk-EKWAUOQB.js +96 -0
- package/dist/chunk-EKWAUOQB.js.map +1 -0
- package/dist/chunk-EN2GCPW7.js +300 -0
- package/dist/chunk-EN2GCPW7.js.map +1 -0
- package/dist/chunk-ES3NJZON.js +31 -0
- package/dist/chunk-ES3NJZON.js.map +1 -0
- package/dist/chunk-F3756A5B.js +20 -0
- package/dist/chunk-F3756A5B.js.map +1 -0
- package/dist/chunk-FWT3CBLL.js +51 -0
- package/dist/chunk-FWT3CBLL.js.map +1 -0
- package/dist/chunk-FYPUUYSG.js +31 -0
- package/dist/chunk-FYPUUYSG.js.map +1 -0
- package/dist/chunk-GRPSDKIS.js +112 -0
- package/dist/chunk-GRPSDKIS.js.map +1 -0
- package/dist/chunk-GYG5SE2D.js +81 -0
- package/dist/chunk-GYG5SE2D.js.map +1 -0
- package/dist/chunk-HIPGKIT3.js +287 -0
- package/dist/chunk-HIPGKIT3.js.map +1 -0
- package/dist/chunk-I3XKEGHM.js +16383 -0
- package/dist/chunk-I3XKEGHM.js.map +1 -0
- package/dist/chunk-IHO75PMZ.js +40 -0
- package/dist/chunk-IHO75PMZ.js.map +1 -0
- package/dist/chunk-IOJR5TOY.js +47 -0
- package/dist/chunk-IOJR5TOY.js.map +1 -0
- package/dist/chunk-K3OU6TGX.js +77 -0
- package/dist/chunk-K3OU6TGX.js.map +1 -0
- package/dist/chunk-KH7MOIM5.js +6010 -0
- package/dist/chunk-KH7MOIM5.js.map +1 -0
- package/dist/chunk-KIR7VYQD.js +63 -0
- package/dist/chunk-KIR7VYQD.js.map +1 -0
- package/dist/chunk-KOPEM3Q7.js +27 -0
- package/dist/chunk-KOPEM3Q7.js.map +1 -0
- package/dist/chunk-KSZ6PCY4.js +43 -0
- package/dist/chunk-KSZ6PCY4.js.map +1 -0
- package/dist/chunk-LRYNF3J7.js +111 -0
- package/dist/chunk-LRYNF3J7.js.map +1 -0
- package/dist/chunk-LYYXX2W5.js +87 -0
- package/dist/chunk-LYYXX2W5.js.map +1 -0
- package/dist/chunk-MC5DUZ3V.js +1135 -0
- package/dist/chunk-MC5DUZ3V.js.map +1 -0
- package/dist/chunk-N4IZ6GBO.js +300 -0
- package/dist/chunk-N4IZ6GBO.js.map +1 -0
- package/dist/chunk-NIKUMXE7.js +24 -0
- package/dist/chunk-NIKUMXE7.js.map +1 -0
- package/dist/chunk-NUIZ6ZUO.js +42 -0
- package/dist/chunk-NUIZ6ZUO.js.map +1 -0
- package/dist/chunk-O5ASLZ2K.js +270 -0
- package/dist/chunk-O5ASLZ2K.js.map +1 -0
- package/dist/chunk-OA5SUEQD.js +181 -0
- package/dist/chunk-OA5SUEQD.js.map +1 -0
- package/dist/chunk-OZZGXBCN.js +15 -0
- package/dist/chunk-OZZGXBCN.js.map +1 -0
- package/dist/chunk-P3PN5SVI.js +27 -0
- package/dist/chunk-P3PN5SVI.js.map +1 -0
- package/dist/chunk-P56WJ5FA.js +50 -0
- package/dist/chunk-P56WJ5FA.js.map +1 -0
- package/dist/chunk-PG4G4IIK.js +24 -0
- package/dist/chunk-PG4G4IIK.js.map +1 -0
- package/dist/chunk-QQLRX4KI.js +41 -0
- package/dist/chunk-QQLRX4KI.js.map +1 -0
- package/dist/chunk-RBHYLCUB.js +31 -0
- package/dist/chunk-RBHYLCUB.js.map +1 -0
- package/dist/chunk-RJN7W2C7.js +349 -0
- package/dist/chunk-RJN7W2C7.js.map +1 -0
- package/dist/chunk-RP7R73JO.js +179 -0
- package/dist/chunk-RP7R73JO.js.map +1 -0
- package/dist/chunk-SYUOXSPU.js +510 -0
- package/dist/chunk-SYUOXSPU.js.map +1 -0
- package/dist/chunk-THKIOI32.js +939 -0
- package/dist/chunk-THKIOI32.js.map +1 -0
- package/dist/chunk-UZRISDBZ.js +28 -0
- package/dist/chunk-UZRISDBZ.js.map +1 -0
- package/dist/chunk-V7QOSGQA.js +298 -0
- package/dist/chunk-V7QOSGQA.js.map +1 -0
- package/dist/chunk-VEP23B5W.js +27 -0
- package/dist/chunk-VEP23B5W.js.map +1 -0
- package/dist/chunk-VG2TVBFN.js +52 -0
- package/dist/chunk-VG2TVBFN.js.map +1 -0
- package/dist/chunk-VIFZ6NFH.js +27 -0
- package/dist/chunk-VIFZ6NFH.js.map +1 -0
- package/dist/chunk-XA57SX4T.js +115 -0
- package/dist/chunk-XA57SX4T.js.map +1 -0
- package/dist/chunk-YKKIJHZB.js +339 -0
- package/dist/chunk-YKKIJHZB.js.map +1 -0
- package/dist/chunk-YU2VGX5R.js +4205 -0
- package/dist/chunk-YU2VGX5R.js.map +1 -0
- package/dist/chunk-ZDLTLNU2.js +258 -0
- package/dist/chunk-ZDLTLNU2.js.map +1 -0
- package/dist/chunk-ZHTXPFDK.js +128 -0
- package/dist/chunk-ZHTXPFDK.js.map +1 -0
- package/dist/chunk-ZKJAJWK6.js +253 -0
- package/dist/chunk-ZKJAJWK6.js.map +1 -0
- package/dist/commands/build/marketplace.js +250 -0
- package/dist/commands/build/marketplace.js.map +1 -0
- package/dist/commands/build/plugins.js +176 -0
- package/dist/commands/build/plugins.js.map +1 -0
- package/dist/commands/compile.js +331 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/doctor.js +475 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/edit.js +765 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/eject.js +393 -0
- package/dist/commands/eject.js.map +1 -0
- package/dist/commands/import/skill.js +349 -0
- package/dist/commands/import/skill.js.map +1 -0
- package/dist/commands/init.js +66 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.js +115 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/new/agent.js +304 -0
- package/dist/commands/new/agent.js.map +1 -0
- package/dist/commands/new/marketplace.js +315 -0
- package/dist/commands/new/marketplace.js.map +1 -0
- package/dist/commands/new/skill.js +28 -0
- package/dist/commands/new/skill.js.map +1 -0
- package/dist/commands/search.js +176 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/uninstall.js +570 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.js +368 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/validate.js +581 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/components/common/confirm.js +9 -0
- package/dist/components/common/confirm.js.map +1 -0
- package/dist/components/common/confirm.test.js +203 -0
- package/dist/components/common/confirm.test.js.map +1 -0
- package/dist/components/common/prompt-confirm.js +11 -0
- package/dist/components/common/prompt-confirm.js.map +1 -0
- package/dist/components/common/select-list.js +11 -0
- package/dist/components/common/select-list.js.map +1 -0
- package/dist/components/common/spinner.js +9 -0
- package/dist/components/common/spinner.js.map +1 -0
- package/dist/components/wizard/category-grid.js +16 -0
- package/dist/components/wizard/category-grid.js.map +1 -0
- package/dist/components/wizard/category-grid.test.js +1253 -0
- package/dist/components/wizard/category-grid.test.js.map +1 -0
- package/dist/components/wizard/checkbox-grid.js +14 -0
- package/dist/components/wizard/checkbox-grid.js.map +1 -0
- package/dist/components/wizard/checkbox-grid.test.js +264 -0
- package/dist/components/wizard/checkbox-grid.test.js.map +1 -0
- package/dist/components/wizard/domain-selection.js +22 -0
- package/dist/components/wizard/domain-selection.js.map +1 -0
- package/dist/components/wizard/run-wizard-session.js +47 -0
- package/dist/components/wizard/run-wizard-session.js.map +1 -0
- package/dist/components/wizard/scroll-affordance.js +10 -0
- package/dist/components/wizard/scroll-affordance.js.map +1 -0
- package/dist/components/wizard/search-modal.js +14 -0
- package/dist/components/wizard/search-modal.js.map +1 -0
- package/dist/components/wizard/search-modal.test.js +212 -0
- package/dist/components/wizard/search-modal.test.js.map +1 -0
- package/dist/components/wizard/selection-card.js +10 -0
- package/dist/components/wizard/selection-card.js.map +1 -0
- package/dist/components/wizard/skill-agent-summary.js +16 -0
- package/dist/components/wizard/skill-agent-summary.js.map +1 -0
- package/dist/components/wizard/source-grid.js +23 -0
- package/dist/components/wizard/source-grid.js.map +1 -0
- package/dist/components/wizard/source-grid.test.js +1094 -0
- package/dist/components/wizard/source-grid.test.js.map +1 -0
- package/dist/components/wizard/stack-selection.js +20 -0
- package/dist/components/wizard/stack-selection.js.map +1 -0
- package/dist/components/wizard/step-agents.js +22 -0
- package/dist/components/wizard/step-agents.js.map +1 -0
- package/dist/components/wizard/step-agents.test.js +204 -0
- package/dist/components/wizard/step-agents.test.js.map +1 -0
- package/dist/components/wizard/step-build.js +22 -0
- package/dist/components/wizard/step-build.js.map +1 -0
- package/dist/components/wizard/step-build.test.js +552 -0
- package/dist/components/wizard/step-build.test.js.map +1 -0
- package/dist/components/wizard/step-confirm.js +21 -0
- package/dist/components/wizard/step-confirm.js.map +1 -0
- package/dist/components/wizard/step-confirm.test.js +744 -0
- package/dist/components/wizard/step-confirm.test.js.map +1 -0
- package/dist/components/wizard/step-settings.js +19 -0
- package/dist/components/wizard/step-settings.js.map +1 -0
- package/dist/components/wizard/step-settings.test.js +244 -0
- package/dist/components/wizard/step-settings.test.js.map +1 -0
- package/dist/components/wizard/step-sources.js +28 -0
- package/dist/components/wizard/step-sources.js.map +1 -0
- package/dist/components/wizard/step-sources.test.js +155 -0
- package/dist/components/wizard/step-sources.test.js.map +1 -0
- package/dist/components/wizard/step-stack.js +21 -0
- package/dist/components/wizard/step-stack.js.map +1 -0
- package/dist/components/wizard/step-stack.test.js +262 -0
- package/dist/components/wizard/step-stack.test.js.map +1 -0
- package/dist/components/wizard/summary-panel.js +20 -0
- package/dist/components/wizard/summary-panel.js.map +1 -0
- package/dist/components/wizard/summary-panel.test.js +317 -0
- package/dist/components/wizard/summary-panel.test.js.map +1 -0
- package/dist/components/wizard/toast.js +10 -0
- package/dist/components/wizard/toast.js.map +1 -0
- package/dist/components/wizard/wizard-layout.js +26 -0
- package/dist/components/wizard/wizard-layout.js.map +1 -0
- package/dist/components/wizard/wizard-layout.test.js +200 -0
- package/dist/components/wizard/wizard-layout.test.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.js +20 -0
- package/dist/components/wizard/wizard-tabs.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.test.js +290 -0
- package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
- package/dist/components/wizard/wizard.js +48 -0
- package/dist/components/wizard/wizard.js.map +1 -0
- package/dist/config-exports.js +20 -0
- package/dist/config-exports.js.map +1 -0
- package/dist/copy-local-skills-CA7P73RZ.js +15 -0
- package/dist/copy-local-skills-CA7P73RZ.js.map +1 -0
- package/dist/dist-VNJNNJK7.js +550 -0
- package/dist/dist-VNJNNJK7.js.map +1 -0
- package/dist/hooks/init.js +90 -0
- package/dist/hooks/init.js.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/load-agent-defs-6MAY5ABI.js +16 -0
- package/dist/load-agent-defs-6MAY5ABI.js.map +1 -0
- package/dist/loader-E2ERJYVA.js +23 -0
- package/dist/loader-E2ERJYVA.js.map +1 -0
- package/dist/magic-string.es-5TV73NJD.js +1316 -0
- package/dist/magic-string.es-5TV73NJD.js.map +1 -0
- package/dist/recompile-project-agents-VYQJ6UZB.js +20 -0
- package/dist/recompile-project-agents-VYQJ6UZB.js.map +1 -0
- package/dist/source-loader-VVHMQEX5.js +20 -0
- package/dist/source-loader-VVHMQEX5.js.map +1 -0
- package/dist/source-manager-TPDXV5FO.js +18 -0
- package/dist/source-manager-TPDXV5FO.js.map +1 -0
- package/dist/src/agents/_templates/agent.liquid +161 -0
- package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
- package/dist/src/agents/_templates/methodologies/context-management.liquid +162 -0
- package/dist/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
- package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
- package/dist/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
- package/dist/src/agents/_templates/methodologies/write-verification.liquid +43 -0
- package/dist/src/agents/developer/ai-developer/critical-reminders.md +54 -0
- package/dist/src/agents/developer/ai-developer/critical-requirements.md +59 -0
- package/dist/src/agents/developer/ai-developer/identity.md +51 -0
- package/dist/src/agents/developer/ai-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/ai-developer/output.md +366 -0
- package/dist/src/agents/developer/ai-developer/playbook.md +335 -0
- package/dist/src/agents/developer/api-developer/critical-reminders.md +46 -0
- package/dist/src/agents/developer/api-developer/critical-requirements.md +44 -0
- package/dist/src/agents/developer/api-developer/identity.md +49 -0
- package/dist/src/agents/developer/api-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/api-developer/output.md +432 -0
- package/dist/src/agents/developer/api-developer/playbook.md +352 -0
- package/dist/src/agents/developer/cli-developer/critical-reminders.md +51 -0
- package/dist/src/agents/developer/cli-developer/critical-requirements.md +51 -0
- package/dist/src/agents/developer/cli-developer/identity.md +51 -0
- package/dist/src/agents/developer/cli-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/cli-developer/output.md +285 -0
- package/dist/src/agents/developer/cli-developer/playbook.md +386 -0
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +48 -0
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +65 -0
- package/dist/src/agents/developer/web-architecture/identity.md +64 -0
- package/dist/src/agents/developer/web-architecture/metadata.yaml +12 -0
- package/dist/src/agents/developer/web-architecture/output.md +449 -0
- package/dist/src/agents/developer/web-architecture/playbook.md +481 -0
- package/dist/src/agents/developer/web-developer/critical-reminders.md +40 -0
- package/dist/src/agents/developer/web-developer/critical-requirements.md +39 -0
- package/dist/src/agents/developer/web-developer/identity.md +32 -0
- package/dist/src/agents/developer/web-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/web-developer/output.md +323 -0
- package/dist/src/agents/developer/web-developer/playbook.md +349 -0
- package/dist/src/agents/meta/agent-summoner/critical-reminders.md +45 -0
- package/dist/src/agents/meta/agent-summoner/critical-requirements.md +52 -0
- package/dist/src/agents/meta/agent-summoner/identity.md +34 -0
- package/dist/src/agents/meta/agent-summoner/metadata.yaml +12 -0
- package/dist/src/agents/meta/agent-summoner/output.md +296 -0
- package/dist/src/agents/meta/agent-summoner/playbook.md +1469 -0
- package/dist/src/agents/meta/codex-keeper/critical-reminders.md +39 -0
- package/dist/src/agents/meta/codex-keeper/critical-requirements.md +29 -0
- package/dist/src/agents/meta/codex-keeper/identity.md +45 -0
- package/dist/src/agents/meta/codex-keeper/metadata.yaml +12 -0
- package/dist/src/agents/meta/codex-keeper/output.md +384 -0
- package/dist/src/agents/meta/codex-keeper/playbook.md +1183 -0
- package/dist/src/agents/meta/convention-keeper/critical-reminders.md +32 -0
- package/dist/src/agents/meta/convention-keeper/critical-requirements.md +32 -0
- package/dist/src/agents/meta/convention-keeper/identity.md +33 -0
- package/dist/src/agents/meta/convention-keeper/metadata.yaml +12 -0
- package/dist/src/agents/meta/convention-keeper/output.md +206 -0
- package/dist/src/agents/meta/convention-keeper/playbook.md +180 -0
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +112 -0
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/dist/src/agents/meta/skill-summoner/identity.md +31 -0
- package/dist/src/agents/meta/skill-summoner/metadata.yaml +13 -0
- package/dist/src/agents/meta/skill-summoner/output.md +390 -0
- package/dist/src/agents/meta/skill-summoner/playbook.md +1457 -0
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +71 -0
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +31 -0
- package/dist/src/agents/pattern/pattern-scout/identity.md +25 -0
- package/dist/src/agents/pattern/pattern-scout/metadata.yaml +10 -0
- package/dist/src/agents/pattern/pattern-scout/output.md +290 -0
- package/dist/src/agents/pattern/pattern-scout/playbook.md +1806 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +30 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +28 -0
- package/dist/src/agents/pattern/web-pattern-critique/identity.md +41 -0
- package/dist/src/agents/pattern/web-pattern-critique/metadata.yaml +12 -0
- package/dist/src/agents/pattern/web-pattern-critique/output.md +314 -0
- package/dist/src/agents/pattern/web-pattern-critique/playbook.md +572 -0
- package/dist/src/agents/planning/api-pm/critical-reminders.md +48 -0
- package/dist/src/agents/planning/api-pm/critical-requirements.md +41 -0
- package/dist/src/agents/planning/api-pm/identity.md +39 -0
- package/dist/src/agents/planning/api-pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/api-pm/output.md +475 -0
- package/dist/src/agents/planning/api-pm/playbook.md +129 -0
- package/dist/src/agents/planning/web-pm/critical-reminders.md +36 -0
- package/dist/src/agents/planning/web-pm/critical-requirements.md +32 -0
- package/dist/src/agents/planning/web-pm/identity.md +26 -0
- package/dist/src/agents/planning/web-pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/web-pm/output.md +314 -0
- package/dist/src/agents/planning/web-pm/playbook.md +318 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/dist/src/agents/researcher/api-researcher/critical-requirements.md +28 -0
- package/dist/src/agents/researcher/api-researcher/identity.md +71 -0
- package/dist/src/agents/researcher/api-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/api-researcher/output.md +254 -0
- package/dist/src/agents/researcher/api-researcher/playbook.md +201 -0
- package/dist/src/agents/researcher/web-researcher/critical-reminders.md +39 -0
- package/dist/src/agents/researcher/web-researcher/critical-requirements.md +26 -0
- package/dist/src/agents/researcher/web-researcher/identity.md +69 -0
- package/dist/src/agents/researcher/web-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/web-researcher/output.md +241 -0
- package/dist/src/agents/researcher/web-researcher/playbook.md +217 -0
- package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +40 -0
- package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +37 -0
- package/dist/src/agents/reviewer/ai-reviewer/identity.md +51 -0
- package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
- package/dist/src/agents/reviewer/ai-reviewer/output.md +395 -0
- package/dist/src/agents/reviewer/ai-reviewer/playbook.md +90 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +31 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +27 -0
- package/dist/src/agents/reviewer/api-reviewer/identity.md +51 -0
- package/dist/src/agents/reviewer/api-reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/api-reviewer/output.md +343 -0
- package/dist/src/agents/reviewer/api-reviewer/playbook.md +288 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +33 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +30 -0
- package/dist/src/agents/reviewer/cli-reviewer/identity.md +44 -0
- package/dist/src/agents/reviewer/cli-reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/cli-reviewer/output.md +414 -0
- package/dist/src/agents/reviewer/cli-reviewer/playbook.md +218 -0
- package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +38 -0
- package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +38 -0
- package/dist/src/agents/reviewer/infra-reviewer/identity.md +53 -0
- package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
- package/dist/src/agents/reviewer/infra-reviewer/output.md +364 -0
- package/dist/src/agents/reviewer/infra-reviewer/playbook.md +161 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +31 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +26 -0
- package/dist/src/agents/reviewer/web-reviewer/identity.md +40 -0
- package/dist/src/agents/reviewer/web-reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/web-reviewer/output.md +333 -0
- package/dist/src/agents/reviewer/web-reviewer/playbook.md +156 -0
- package/dist/src/agents/tester/api-tester/critical-reminders.md +41 -0
- package/dist/src/agents/tester/api-tester/critical-requirements.md +41 -0
- package/dist/src/agents/tester/api-tester/identity.md +47 -0
- package/dist/src/agents/tester/api-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/api-tester/output.md +284 -0
- package/dist/src/agents/tester/api-tester/playbook.md +275 -0
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +36 -0
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +36 -0
- package/dist/src/agents/tester/cli-tester/identity.md +43 -0
- package/dist/src/agents/tester/cli-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/cli-tester/output.md +313 -0
- package/dist/src/agents/tester/cli-tester/playbook.md +221 -0
- package/dist/src/agents/tester/web-tester/critical-reminders.md +31 -0
- package/dist/src/agents/tester/web-tester/critical-requirements.md +28 -0
- package/dist/src/agents/tester/web-tester/identity.md +41 -0
- package/dist/src/agents/tester/web-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/web-tester/output.md +321 -0
- package/dist/src/agents/tester/web-tester/playbook.md +428 -0
- package/dist/stores/d227-same-scope-tombstone-duplicate.test.js +118 -0
- package/dist/stores/d227-same-scope-tombstone-duplicate.test.js.map +1 -0
- package/dist/stores/wizard-store.js +21 -0
- package/dist/stores/wizard-store.js.map +1 -0
- package/dist/stores/wizard-store.test.js +3053 -0
- package/dist/stores/wizard-store.test.js.map +1 -0
- package/package.json +131 -13
- package/src/agents/_templates/agent.liquid +161 -0
- package/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
- package/src/agents/_templates/methodologies/context-management.liquid +162 -0
- package/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
- package/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
- package/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
- package/src/agents/_templates/methodologies/write-verification.liquid +43 -0
- package/src/agents/developer/ai-developer/critical-reminders.md +54 -0
- package/src/agents/developer/ai-developer/critical-requirements.md +59 -0
- package/src/agents/developer/ai-developer/identity.md +51 -0
- package/src/agents/developer/ai-developer/metadata.yaml +12 -0
- package/src/agents/developer/ai-developer/output.md +366 -0
- package/src/agents/developer/ai-developer/playbook.md +335 -0
- package/src/agents/developer/api-developer/critical-reminders.md +46 -0
- package/src/agents/developer/api-developer/critical-requirements.md +44 -0
- package/src/agents/developer/api-developer/identity.md +49 -0
- package/src/agents/developer/api-developer/metadata.yaml +12 -0
- package/src/agents/developer/api-developer/output.md +432 -0
- package/src/agents/developer/api-developer/playbook.md +352 -0
- package/src/agents/developer/cli-developer/critical-reminders.md +51 -0
- package/src/agents/developer/cli-developer/critical-requirements.md +51 -0
- package/src/agents/developer/cli-developer/identity.md +51 -0
- package/src/agents/developer/cli-developer/metadata.yaml +12 -0
- package/src/agents/developer/cli-developer/output.md +285 -0
- package/src/agents/developer/cli-developer/playbook.md +386 -0
- package/src/agents/developer/web-architecture/critical-reminders.md +48 -0
- package/src/agents/developer/web-architecture/critical-requirements.md +65 -0
- package/src/agents/developer/web-architecture/identity.md +64 -0
- package/src/agents/developer/web-architecture/metadata.yaml +12 -0
- package/src/agents/developer/web-architecture/output.md +449 -0
- package/src/agents/developer/web-architecture/playbook.md +481 -0
- package/src/agents/developer/web-developer/critical-reminders.md +40 -0
- package/src/agents/developer/web-developer/critical-requirements.md +39 -0
- package/src/agents/developer/web-developer/identity.md +32 -0
- package/src/agents/developer/web-developer/metadata.yaml +12 -0
- package/src/agents/developer/web-developer/output.md +323 -0
- package/src/agents/developer/web-developer/playbook.md +349 -0
- package/src/agents/meta/agent-summoner/critical-reminders.md +45 -0
- package/src/agents/meta/agent-summoner/critical-requirements.md +52 -0
- package/src/agents/meta/agent-summoner/identity.md +34 -0
- package/src/agents/meta/agent-summoner/metadata.yaml +12 -0
- package/src/agents/meta/agent-summoner/output.md +296 -0
- package/src/agents/meta/agent-summoner/playbook.md +1469 -0
- package/src/agents/meta/codex-keeper/critical-reminders.md +39 -0
- package/src/agents/meta/codex-keeper/critical-requirements.md +29 -0
- package/src/agents/meta/codex-keeper/identity.md +45 -0
- package/src/agents/meta/codex-keeper/metadata.yaml +12 -0
- package/src/agents/meta/codex-keeper/output.md +384 -0
- package/src/agents/meta/codex-keeper/playbook.md +1183 -0
- package/src/agents/meta/convention-keeper/critical-reminders.md +32 -0
- package/src/agents/meta/convention-keeper/critical-requirements.md +32 -0
- package/src/agents/meta/convention-keeper/identity.md +33 -0
- package/src/agents/meta/convention-keeper/metadata.yaml +12 -0
- package/src/agents/meta/convention-keeper/output.md +206 -0
- package/src/agents/meta/convention-keeper/playbook.md +180 -0
- package/src/agents/meta/skill-summoner/critical-reminders.md +112 -0
- package/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/src/agents/meta/skill-summoner/identity.md +31 -0
- package/src/agents/meta/skill-summoner/metadata.yaml +13 -0
- package/src/agents/meta/skill-summoner/output.md +390 -0
- package/src/agents/meta/skill-summoner/playbook.md +1457 -0
- package/src/agents/pattern/pattern-scout/critical-reminders.md +71 -0
- package/src/agents/pattern/pattern-scout/critical-requirements.md +31 -0
- package/src/agents/pattern/pattern-scout/identity.md +25 -0
- package/src/agents/pattern/pattern-scout/metadata.yaml +10 -0
- package/src/agents/pattern/pattern-scout/output.md +290 -0
- package/src/agents/pattern/pattern-scout/playbook.md +1806 -0
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +30 -0
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +28 -0
- package/src/agents/pattern/web-pattern-critique/identity.md +41 -0
- package/src/agents/pattern/web-pattern-critique/metadata.yaml +12 -0
- package/src/agents/pattern/web-pattern-critique/output.md +314 -0
- package/src/agents/pattern/web-pattern-critique/playbook.md +572 -0
- package/src/agents/planning/api-pm/critical-reminders.md +48 -0
- package/src/agents/planning/api-pm/critical-requirements.md +41 -0
- package/src/agents/planning/api-pm/identity.md +39 -0
- package/src/agents/planning/api-pm/metadata.yaml +12 -0
- package/src/agents/planning/api-pm/output.md +475 -0
- package/src/agents/planning/api-pm/playbook.md +129 -0
- package/src/agents/planning/web-pm/critical-reminders.md +36 -0
- package/src/agents/planning/web-pm/critical-requirements.md +32 -0
- package/src/agents/planning/web-pm/identity.md +26 -0
- package/src/agents/planning/web-pm/metadata.yaml +12 -0
- package/src/agents/planning/web-pm/output.md +314 -0
- package/src/agents/planning/web-pm/playbook.md +318 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/src/agents/researcher/api-researcher/critical-requirements.md +28 -0
- package/src/agents/researcher/api-researcher/identity.md +71 -0
- package/src/agents/researcher/api-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/api-researcher/output.md +254 -0
- package/src/agents/researcher/api-researcher/playbook.md +201 -0
- package/src/agents/researcher/web-researcher/critical-reminders.md +39 -0
- package/src/agents/researcher/web-researcher/critical-requirements.md +26 -0
- package/src/agents/researcher/web-researcher/identity.md +69 -0
- package/src/agents/researcher/web-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/web-researcher/output.md +241 -0
- package/src/agents/researcher/web-researcher/playbook.md +217 -0
- package/src/agents/reviewer/ai-reviewer/critical-reminders.md +40 -0
- package/src/agents/reviewer/ai-reviewer/critical-requirements.md +37 -0
- package/src/agents/reviewer/ai-reviewer/identity.md +51 -0
- package/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
- package/src/agents/reviewer/ai-reviewer/output.md +395 -0
- package/src/agents/reviewer/ai-reviewer/playbook.md +90 -0
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +31 -0
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +27 -0
- package/src/agents/reviewer/api-reviewer/identity.md +51 -0
- package/src/agents/reviewer/api-reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/api-reviewer/output.md +343 -0
- package/src/agents/reviewer/api-reviewer/playbook.md +288 -0
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +33 -0
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +30 -0
- package/src/agents/reviewer/cli-reviewer/identity.md +44 -0
- package/src/agents/reviewer/cli-reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/cli-reviewer/output.md +414 -0
- package/src/agents/reviewer/cli-reviewer/playbook.md +218 -0
- package/src/agents/reviewer/infra-reviewer/critical-reminders.md +38 -0
- package/src/agents/reviewer/infra-reviewer/critical-requirements.md +38 -0
- package/src/agents/reviewer/infra-reviewer/identity.md +53 -0
- package/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
- package/src/agents/reviewer/infra-reviewer/output.md +364 -0
- package/src/agents/reviewer/infra-reviewer/playbook.md +161 -0
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +31 -0
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +26 -0
- package/src/agents/reviewer/web-reviewer/identity.md +40 -0
- package/src/agents/reviewer/web-reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/web-reviewer/output.md +333 -0
- package/src/agents/reviewer/web-reviewer/playbook.md +156 -0
- package/src/agents/tester/api-tester/critical-reminders.md +41 -0
- package/src/agents/tester/api-tester/critical-requirements.md +41 -0
- package/src/agents/tester/api-tester/identity.md +47 -0
- package/src/agents/tester/api-tester/metadata.yaml +12 -0
- package/src/agents/tester/api-tester/output.md +284 -0
- package/src/agents/tester/api-tester/playbook.md +275 -0
- package/src/agents/tester/cli-tester/critical-reminders.md +36 -0
- package/src/agents/tester/cli-tester/critical-requirements.md +36 -0
- package/src/agents/tester/cli-tester/identity.md +43 -0
- package/src/agents/tester/cli-tester/metadata.yaml +12 -0
- package/src/agents/tester/cli-tester/output.md +313 -0
- package/src/agents/tester/cli-tester/playbook.md +221 -0
- package/src/agents/tester/web-tester/critical-reminders.md +31 -0
- package/src/agents/tester/web-tester/critical-requirements.md +28 -0
- package/src/agents/tester/web-tester/identity.md +41 -0
- package/src/agents/tester/web-tester/metadata.yaml +12 -0
- package/src/agents/tester/web-tester/output.md +321 -0
- package/src/agents/tester/web-tester/playbook.md +428 -0
- package/src/schemas/agent-frontmatter.schema.json +88 -0
- package/src/schemas/agent.schema.json +103 -0
- package/src/schemas/custom-metadata.schema.json +74 -0
- package/src/schemas/hooks.schema.json +47 -0
- package/src/schemas/marketplace.schema.json +119 -0
- package/src/schemas/metadata.schema.json +387 -0
- package/src/schemas/plugin.schema.json +127 -0
- package/src/schemas/project-config.schema.json +189 -0
- package/src/schemas/project-source-config.schema.json +96 -0
- package/src/schemas/skill-frontmatter.schema.json +42 -0
- package/src/schemas/stack.schema.json +191 -0
- package/src/schemas/stacks.schema.json +107 -0
- package/bin/run.js +0 -3
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
## Output Format
|
|
2
|
+
|
|
3
|
+
<output_format>
|
|
4
|
+
Provide your test output in this structure:
|
|
5
|
+
|
|
6
|
+
<test_summary>
|
|
7
|
+
**Feature:** [What's being tested]
|
|
8
|
+
**Test File:** [/path/to/feature.test.ts]
|
|
9
|
+
**Test Count:** [X] tests across [Y] categories
|
|
10
|
+
**Status:** [All tests failing - ready for implementation]
|
|
11
|
+
</test_summary>
|
|
12
|
+
|
|
13
|
+
<test_suite>
|
|
14
|
+
|
|
15
|
+
## Test Coverage Summary
|
|
16
|
+
|
|
17
|
+
| Category | Count | Description |
|
|
18
|
+
| -------------- | ------- | ------------------------------ |
|
|
19
|
+
| Happy Path | [X] | [Core functionality scenarios] |
|
|
20
|
+
| Validation | [X] | [Input validation scenarios] |
|
|
21
|
+
| Error Handling | [X] | [Error/failure scenarios] |
|
|
22
|
+
| Edge Cases | [X] | [Boundary conditions] |
|
|
23
|
+
| Integration | [X] | [Interaction with other code] |
|
|
24
|
+
| **Total** | **[X]** | |
|
|
25
|
+
|
|
26
|
+
</test_suite>
|
|
27
|
+
|
|
28
|
+
<test_code>
|
|
29
|
+
|
|
30
|
+
## Test File
|
|
31
|
+
|
|
32
|
+
**File:** `/path/to/feature.test.ts`
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
import { describe, it, expect, beforeEach, vi } from "vitest";
|
|
36
|
+
// ... other imports
|
|
37
|
+
|
|
38
|
+
describe("[Feature/Component Name]", () => {
|
|
39
|
+
// Setup
|
|
40
|
+
beforeEach(() => {
|
|
41
|
+
// Reset mocks, setup test state
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe("Happy Path", () => {
|
|
45
|
+
it("should [expected behavior when normal input]", () => {
|
|
46
|
+
// Test implementation
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it("should [another expected behavior]", () => {
|
|
50
|
+
// Test implementation
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
describe("Validation", () => {
|
|
55
|
+
it("should [reject/show error when invalid input]", () => {
|
|
56
|
+
// Test implementation
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
describe("Error Handling", () => {
|
|
61
|
+
it("should [handle error gracefully]", () => {
|
|
62
|
+
// Test implementation
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
describe("Edge Cases", () => {
|
|
67
|
+
it("should [handle boundary condition]", () => {
|
|
68
|
+
// Test implementation
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
</test_code>
|
|
75
|
+
|
|
76
|
+
<coverage_analysis>
|
|
77
|
+
|
|
78
|
+
## Behaviors Covered
|
|
79
|
+
|
|
80
|
+
### Happy Path
|
|
81
|
+
|
|
82
|
+
- [Specific scenario 1 - e.g., "User submits valid form"]
|
|
83
|
+
- [Specific scenario 2 - e.g., "API returns success response"]
|
|
84
|
+
- [Specific scenario 3]
|
|
85
|
+
|
|
86
|
+
### Validation
|
|
87
|
+
|
|
88
|
+
- [Validation scenario 1 - e.g., "Empty email shows error"]
|
|
89
|
+
- [Validation scenario 2 - e.g., "Invalid format rejected"]
|
|
90
|
+
|
|
91
|
+
### Error Handling
|
|
92
|
+
|
|
93
|
+
- [Error scenario 1 - e.g., "API timeout shows retry option"]
|
|
94
|
+
- [Error scenario 2 - e.g., "Network error shows offline message"]
|
|
95
|
+
|
|
96
|
+
### Edge Cases
|
|
97
|
+
|
|
98
|
+
- [Edge case 1 - e.g., "Empty list shows empty state"]
|
|
99
|
+
- [Edge case 2 - e.g., "Maximum length input accepted"]
|
|
100
|
+
|
|
101
|
+
### Integration
|
|
102
|
+
|
|
103
|
+
- [Integration point 1 - e.g., "Updates store on success"]
|
|
104
|
+
- [Integration point 2 - e.g., "Triggers analytics event"]
|
|
105
|
+
|
|
106
|
+
## What's NOT Covered (Intentionally)
|
|
107
|
+
|
|
108
|
+
- [Excluded scenario] - [Reason: e.g., "Third-party library behavior"]
|
|
109
|
+
- [Excluded scenario] - [Reason: e.g., "Covered by E2E tests"]
|
|
110
|
+
|
|
111
|
+
</coverage_analysis>
|
|
112
|
+
|
|
113
|
+
<expected_behavior>
|
|
114
|
+
|
|
115
|
+
## Implementation Contract
|
|
116
|
+
|
|
117
|
+
**When all tests pass, the implementation should:**
|
|
118
|
+
|
|
119
|
+
1. [Specific behavior 1 - user-visible outcome]
|
|
120
|
+
2. [Specific behavior 2 - user-visible outcome]
|
|
121
|
+
3. [Specific behavior 3 - user-visible outcome]
|
|
122
|
+
|
|
123
|
+
**Implementation patterns to follow:**
|
|
124
|
+
|
|
125
|
+
| Pattern | Reference |
|
|
126
|
+
| -------------- | --------------------------------- |
|
|
127
|
+
| [Pattern type] | [/path/to/similar/file.tsx:lines] |
|
|
128
|
+
| [Pattern type] | [/path/to/utility.ts:lines] |
|
|
129
|
+
|
|
130
|
+
**The implementation must NOT:**
|
|
131
|
+
|
|
132
|
+
1. [Anti-pattern 1] - [Why it's wrong]
|
|
133
|
+
2. [Anti-pattern 2] - [Why it's wrong]
|
|
134
|
+
3. [Create new utilities when existing ones available] - See [/path/to/existing/util.ts]
|
|
135
|
+
|
|
136
|
+
</expected_behavior>
|
|
137
|
+
|
|
138
|
+
<mocking_setup>
|
|
139
|
+
|
|
140
|
+
## Mock Configuration
|
|
141
|
+
|
|
142
|
+
**Mocked Dependencies:**
|
|
143
|
+
|
|
144
|
+
| Dependency | Mock Setup | Why Mocked |
|
|
145
|
+
| ------------------ | -------------------------- | -------------------- |
|
|
146
|
+
| [API client] | `vi.mock('@/lib/api')` | Isolate from network |
|
|
147
|
+
| [Store] | `vi.mock('@/stores/user')` | Control state |
|
|
148
|
+
| [External service] | `vi.mock('external-lib')` | Avoid side effects |
|
|
149
|
+
|
|
150
|
+
**Mock Responses:**
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// Example mock setup
|
|
154
|
+
const mockApi = {
|
|
155
|
+
success: { data: { id: 1, name: "Test" } },
|
|
156
|
+
error: { error: { message: "Failed" } },
|
|
157
|
+
timeout: new Promise((_, reject) => setTimeout(() => reject(new Error("Timeout")), 100)),
|
|
158
|
+
};
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
</mocking_setup>
|
|
162
|
+
|
|
163
|
+
<test_status>
|
|
164
|
+
|
|
165
|
+
## Current Status
|
|
166
|
+
|
|
167
|
+
**All Tests:** FAILING (Expected - no implementation exists)
|
|
168
|
+
|
|
169
|
+
**Verification:**
|
|
170
|
+
|
|
171
|
+
- [ ] Tests fail for the RIGHT reasons (not syntax errors)
|
|
172
|
+
- [ ] Error messages are clear and actionable
|
|
173
|
+
- [ ] No false positives (tests don't accidentally pass)
|
|
174
|
+
|
|
175
|
+
**Ready for:** Developer agent implementation
|
|
176
|
+
|
|
177
|
+
**Test Commands:**
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Run these tests
|
|
181
|
+
bun test [path/to/feature.test.ts]
|
|
182
|
+
|
|
183
|
+
# Run with coverage
|
|
184
|
+
bun test [path/to/feature.test.ts] --coverage
|
|
185
|
+
|
|
186
|
+
# Run in watch mode during development
|
|
187
|
+
bun test [path/to/feature.test.ts] --watch
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
</test_status>
|
|
191
|
+
|
|
192
|
+
<developer_guidance>
|
|
193
|
+
|
|
194
|
+
## For Developer
|
|
195
|
+
|
|
196
|
+
**Implementation Approach:**
|
|
197
|
+
|
|
198
|
+
1. Read the test file to understand expected behaviors
|
|
199
|
+
2. Implement minimum code to make first test pass
|
|
200
|
+
3. Iterate: implement, test, refactor
|
|
201
|
+
4. All tests green = implementation complete
|
|
202
|
+
|
|
203
|
+
**Common Pitfalls:**
|
|
204
|
+
|
|
205
|
+
- Don't modify tests to make them pass - fix implementation
|
|
206
|
+
- If a test seems wrong, discuss before changing
|
|
207
|
+
- Ensure cleanup in tests doesn't mask real bugs
|
|
208
|
+
|
|
209
|
+
**Pattern References:**
|
|
210
|
+
|
|
211
|
+
- See [/path/to/similar/implementation.tsx] for correct approach
|
|
212
|
+
- Reuse utilities from [/path/to/utils/]
|
|
213
|
+
|
|
214
|
+
</developer_guidance>
|
|
215
|
+
|
|
216
|
+
</output_format>
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Section Guidelines
|
|
221
|
+
|
|
222
|
+
### Test Quality Requirements
|
|
223
|
+
|
|
224
|
+
| Requirement | Description |
|
|
225
|
+
| -------------------------------- | ---------------------------------------------------------- |
|
|
226
|
+
| **Minimum 3 tests per function** | Happy path + edge case + error case |
|
|
227
|
+
| **Behavior-focused names** | "displays error when email invalid" not "sets error state" |
|
|
228
|
+
| **Isolated tests** | Each test can run independently |
|
|
229
|
+
| **Clear assertions** | One concept per test |
|
|
230
|
+
| **Comprehensive mocking** | All external dependencies mocked |
|
|
231
|
+
|
|
232
|
+
### Test Naming Convention
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
// Good - describes user-visible behavior
|
|
236
|
+
it("displays error message when email format is invalid", () => {});
|
|
237
|
+
it("disables submit button while loading", () => {});
|
|
238
|
+
it("calls onSuccess callback after successful submission", () => {});
|
|
239
|
+
|
|
240
|
+
// Bad - describes implementation details
|
|
241
|
+
it("sets isError to true", () => {});
|
|
242
|
+
it("updates state", () => {});
|
|
243
|
+
it("triggers effect", () => {});
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Red-Green-Refactor Contract
|
|
247
|
+
|
|
248
|
+
1. **RED:** All tests fail initially (this output)
|
|
249
|
+
2. **GREEN:** Developer implements until tests pass
|
|
250
|
+
3. **REFACTOR:** Developer cleans up while keeping tests green
|
|
251
|
+
|
|
252
|
+
The tester's job is to provide the RED phase - comprehensive, failing tests that define the contract.
|
|
253
|
+
|
|
254
|
+
## Example Test Output
|
|
255
|
+
|
|
256
|
+
Here's what a complete, high-quality test file handoff looks like:
|
|
257
|
+
|
|
258
|
+
```markdown
|
|
259
|
+
# Test Suite: ProfileEditModal
|
|
260
|
+
|
|
261
|
+
## Test File
|
|
262
|
+
|
|
263
|
+
`components/profile/ProfileEditModal.test.tsx`
|
|
264
|
+
|
|
265
|
+
## Coverage Summary
|
|
266
|
+
|
|
267
|
+
- Happy path: 2 tests
|
|
268
|
+
- Validation: 4 tests
|
|
269
|
+
- Error handling: 3 tests
|
|
270
|
+
- Accessibility: 2 tests
|
|
271
|
+
- **Total: 11 tests**
|
|
272
|
+
|
|
273
|
+
## Test Categories
|
|
274
|
+
|
|
275
|
+
### Rendering
|
|
276
|
+
|
|
277
|
+
- shows modal with current user values
|
|
278
|
+
- displays all form fields (name, email, bio)
|
|
279
|
+
|
|
280
|
+
### Validation
|
|
281
|
+
|
|
282
|
+
- shows error when email is invalid format
|
|
283
|
+
- shows error when name is empty
|
|
284
|
+
- shows error when name exceeds 50 characters
|
|
285
|
+
- prevents submission when validation fails
|
|
286
|
+
|
|
287
|
+
### Submission
|
|
288
|
+
|
|
289
|
+
- calls API with correct data on valid submission
|
|
290
|
+
- shows success message after successful save
|
|
291
|
+
- closes modal after successful save
|
|
292
|
+
|
|
293
|
+
### Error Handling
|
|
294
|
+
|
|
295
|
+
- displays error message when API call fails
|
|
296
|
+
- allows retry after network error
|
|
297
|
+
|
|
298
|
+
### Accessibility
|
|
299
|
+
|
|
300
|
+
- manages focus on modal open
|
|
301
|
+
- supports keyboard navigation (Escape closes)
|
|
302
|
+
|
|
303
|
+
## Test Status
|
|
304
|
+
|
|
305
|
+
All tests: FAILING (ready for implementation)
|
|
306
|
+
|
|
307
|
+
## Expected Patterns
|
|
308
|
+
|
|
309
|
+
Developer should implement to make these tests pass:
|
|
310
|
+
|
|
311
|
+
- Use ModalContainer wrapper
|
|
312
|
+
- Use existing validateEmail() utility
|
|
313
|
+
- Follow SettingsForm error display pattern
|
|
314
|
+
- Use userStore.updateProfile() action
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
This handoff gives the developer:
|
|
318
|
+
|
|
319
|
+
- Clear understanding of what to implement
|
|
320
|
+
- Specific test coverage to achieve
|
|
321
|
+
- Pattern references for implementation
|