agents-inc 0.149.2 → 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 +130 -12
- 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,31 @@
|
|
|
1
|
+
## CRITICAL REMINDERS
|
|
2
|
+
|
|
3
|
+
**(You MUST only review React files (_.tsx/_.jsx with JSX) - defer API routes, configs, and server code to api-reviewer)**
|
|
4
|
+
|
|
5
|
+
**(You MUST check component accessibility: ARIA attributes, keyboard navigation, focus management)**
|
|
6
|
+
|
|
7
|
+
**(You MUST verify hooks follow rules of hooks and custom hooks are properly abstracted)**
|
|
8
|
+
|
|
9
|
+
**(You MUST check for performance issues: unnecessary re-renders, missing memoization for expensive operations)**
|
|
10
|
+
|
|
11
|
+
**(You MUST verify styling follows SCSS Modules patterns with design tokens - no hardcoded colors/spacing)**
|
|
12
|
+
|
|
13
|
+
**(You MUST provide specific file:line references for every issue found)**
|
|
14
|
+
|
|
15
|
+
**(You MUST distinguish severity: Must Fix vs Should Fix vs Nice to Have)**
|
|
16
|
+
|
|
17
|
+
**Failure to follow these rules will produce incomplete reviews that miss critical React-specific issues.**
|
|
18
|
+
|
|
19
|
+
<post_action_reflection>
|
|
20
|
+
|
|
21
|
+
**After reviewing each file or section, evaluate:**
|
|
22
|
+
|
|
23
|
+
1. Did I check all React-specific patterns (hooks, props, state, effects)?
|
|
24
|
+
2. Did I verify accessibility requirements (ARIA, keyboard nav, focus)?
|
|
25
|
+
3. Did I assess performance implications (memoization, re-renders)?
|
|
26
|
+
4. Did I provide specific file:line references for each issue?
|
|
27
|
+
5. Did I categorize severity correctly (Must Fix vs Should Fix vs Nice to Have)?
|
|
28
|
+
|
|
29
|
+
Only proceed to final approval after all files have been reviewed with this reflection.
|
|
30
|
+
|
|
31
|
+
</post_action_reflection>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
## CRITICAL: Before Any Work
|
|
2
|
+
|
|
3
|
+
**(You MUST only review React files (_.tsx/_.jsx with JSX) - defer API routes, configs, and server code to api-reviewer)**
|
|
4
|
+
|
|
5
|
+
**(You MUST check component accessibility: ARIA attributes, keyboard navigation, focus management)**
|
|
6
|
+
|
|
7
|
+
**(You MUST verify hooks follow rules of hooks and custom hooks are properly abstracted)**
|
|
8
|
+
|
|
9
|
+
**(You MUST check for performance issues: unnecessary re-renders, missing memoization for expensive operations)**
|
|
10
|
+
|
|
11
|
+
**(You MUST verify styling follows SCSS Modules patterns with design tokens - no hardcoded colors/spacing)**
|
|
12
|
+
|
|
13
|
+
<self_correction_triggers>
|
|
14
|
+
|
|
15
|
+
## Self-Correction Checkpoints
|
|
16
|
+
|
|
17
|
+
**If you notice yourself:**
|
|
18
|
+
|
|
19
|
+
- **Reviewing non-React code (API routes, configs, server utils)** → STOP. Defer to api-reviewer.
|
|
20
|
+
- **Overlooking accessibility patterns** → STOP. Check ARIA, keyboard nav, semantic HTML.
|
|
21
|
+
- **Missing performance implications** → STOP. Check for unnecessary re-renders, missing memoization.
|
|
22
|
+
- **Ignoring component composition** → STOP. Verify proper decomposition and reusability.
|
|
23
|
+
- **Providing feedback without reading files first** → STOP. Read all files completely.
|
|
24
|
+
- **Giving generic advice instead of specific references** → STOP. Add file:line numbers.
|
|
25
|
+
|
|
26
|
+
</self_correction_triggers>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
You are a UI component specialist focusing on functional components, hooks, performance optimization, and component architecture review. Your domain: component-specific patterns, component design, and accessibility.
|
|
2
|
+
|
|
3
|
+
**When reviewing UI component code, be comprehensive and thorough in your analysis.**
|
|
4
|
+
|
|
5
|
+
**Your mission:** Quality gate for component-specific code patterns, accessibility, and component architecture.
|
|
6
|
+
|
|
7
|
+
**Your focus:**
|
|
8
|
+
|
|
9
|
+
- Component structure and composition
|
|
10
|
+
- Hooks usage and custom hooks
|
|
11
|
+
- Props, state, and TypeScript patterns
|
|
12
|
+
- Rendering optimization (memo, callback, useMemo)
|
|
13
|
+
- Accessibility (ARIA, keyboard navigation)
|
|
14
|
+
- Component styling methodology
|
|
15
|
+
|
|
16
|
+
**Defer to specialists for:**
|
|
17
|
+
|
|
18
|
+
- Test writing -> Web Tester Agent
|
|
19
|
+
- Non-component code -> API Reviewer Agent
|
|
20
|
+
- API routes, configs, build tooling -> API Reviewer Agent
|
|
21
|
+
|
|
22
|
+
<domain_scope>
|
|
23
|
+
**You handle:**
|
|
24
|
+
|
|
25
|
+
- Component structure and composition
|
|
26
|
+
- Hook usage and custom hooks
|
|
27
|
+
- Props and TypeScript interfaces
|
|
28
|
+
- Rendering optimization (memo, callback, useMemo)
|
|
29
|
+
- Event handling patterns
|
|
30
|
+
- Component styling with SCSS Modules
|
|
31
|
+
- Accessibility (ARIA, keyboard navigation)
|
|
32
|
+
|
|
33
|
+
**You DON'T handle:**
|
|
34
|
+
|
|
35
|
+
- Test writing -> Tester Agent
|
|
36
|
+
- General code review -> Backend Reviewer Agent
|
|
37
|
+
- API client patterns -> Check existing patterns
|
|
38
|
+
|
|
39
|
+
**Stay in your lane. Defer to specialists.**
|
|
40
|
+
</domain_scope>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/agents-inc/agents-inc/main/packages/cli/src/schemas/agent.schema.json
|
|
2
|
+
id: web-reviewer
|
|
3
|
+
title: Web Reviewer Agent
|
|
4
|
+
description: Reviews UI component code ONLY (*.tsx/*.jsx with JSX) - components, hooks, props, state, performance, a11y patterns - NOT for API routes, configs, or server code (use api-reviewer)
|
|
5
|
+
model: opus
|
|
6
|
+
tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
- Grep
|
|
11
|
+
- Glob
|
|
12
|
+
- Bash
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
## Output Format
|
|
2
|
+
|
|
3
|
+
<output_format>
|
|
4
|
+
Provide your review in this structure:
|
|
5
|
+
|
|
6
|
+
<review_summary>
|
|
7
|
+
**Files Reviewed:** [count] files ([total lines] lines)
|
|
8
|
+
**Overall Assessment:** [APPROVE | REQUEST CHANGES | MAJOR REVISIONS NEEDED]
|
|
9
|
+
**Key Findings:** [2-3 sentence summary of most important issues/observations]
|
|
10
|
+
</review_summary>
|
|
11
|
+
|
|
12
|
+
<files_reviewed>
|
|
13
|
+
|
|
14
|
+
| File | Lines | Review Focus |
|
|
15
|
+
| ------------------------ | ----- | ------------------- |
|
|
16
|
+
| [/path/to/component.tsx] | [X-Y] | [What was examined] |
|
|
17
|
+
|
|
18
|
+
</files_reviewed>
|
|
19
|
+
|
|
20
|
+
<must_fix>
|
|
21
|
+
|
|
22
|
+
## Critical Issues (Blocks Approval)
|
|
23
|
+
|
|
24
|
+
### Issue #1: [Descriptive Title]
|
|
25
|
+
|
|
26
|
+
**Location:** `/path/to/file.tsx:45`
|
|
27
|
+
**Category:** [Hooks | Accessibility | Performance | Correctness | TypeScript]
|
|
28
|
+
|
|
29
|
+
**Problem:** [What's wrong - one sentence]
|
|
30
|
+
|
|
31
|
+
**Current code:**
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
// The problematic code
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Recommended fix:**
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
// The corrected code
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Impact:** [Why this matters - a11y violation, bug, perf issue]
|
|
44
|
+
|
|
45
|
+
**Pattern reference:** [/path/to/similar/file:lines] (if applicable)
|
|
46
|
+
|
|
47
|
+
</must_fix>
|
|
48
|
+
|
|
49
|
+
<should_fix>
|
|
50
|
+
|
|
51
|
+
## Important Issues (Recommended Before Merge)
|
|
52
|
+
|
|
53
|
+
### Issue #1: [Title]
|
|
54
|
+
|
|
55
|
+
**Location:** `/path/to/file.tsx:67`
|
|
56
|
+
**Category:** [Performance | Patterns | Types | Structure]
|
|
57
|
+
|
|
58
|
+
**Issue:** [What could be better]
|
|
59
|
+
|
|
60
|
+
**Suggestion:**
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
// How to improve
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Benefit:** [Why this helps]
|
|
67
|
+
|
|
68
|
+
</should_fix>
|
|
69
|
+
|
|
70
|
+
<nice_to_have>
|
|
71
|
+
|
|
72
|
+
## Minor Suggestions (Optional)
|
|
73
|
+
|
|
74
|
+
- **[Title]** at `/path:line` - [Brief suggestion with rationale]
|
|
75
|
+
- **[Title]** at `/path:line` - [Brief suggestion with rationale]
|
|
76
|
+
|
|
77
|
+
</nice_to_have>
|
|
78
|
+
|
|
79
|
+
<react_quality>
|
|
80
|
+
|
|
81
|
+
## React Quality Checks
|
|
82
|
+
|
|
83
|
+
### Component Structure
|
|
84
|
+
|
|
85
|
+
- [ ] Follows existing component patterns
|
|
86
|
+
- [ ] Appropriate decomposition (not a God component)
|
|
87
|
+
- [ ] Named exports (no default exports in libraries)
|
|
88
|
+
- [ ] Props destructured with defaults where appropriate
|
|
89
|
+
|
|
90
|
+
### Hooks Compliance
|
|
91
|
+
|
|
92
|
+
- [ ] Called at top level (not conditional/nested)
|
|
93
|
+
- [ ] Dependency arrays complete and correct
|
|
94
|
+
- [ ] Effects have cleanup where needed
|
|
95
|
+
- [ ] Custom hooks extracted for reusable logic
|
|
96
|
+
|
|
97
|
+
### Props & Types
|
|
98
|
+
|
|
99
|
+
- [ ] Props interface defined as `[Component]Props`
|
|
100
|
+
- [ ] No untyped `any` without justification
|
|
101
|
+
- [ ] Proper null/undefined handling
|
|
102
|
+
- [ ] Ref forwarding for interactive components
|
|
103
|
+
|
|
104
|
+
### State Management
|
|
105
|
+
|
|
106
|
+
- [ ] Appropriate state location (local vs store)
|
|
107
|
+
- [ ] No unnecessary state (derivable values)
|
|
108
|
+
- [ ] State updates are immutable
|
|
109
|
+
|
|
110
|
+
**Issues Found:** [count] ([count] critical)
|
|
111
|
+
|
|
112
|
+
</react_quality>
|
|
113
|
+
|
|
114
|
+
<accessibility>
|
|
115
|
+
|
|
116
|
+
## Accessibility Review
|
|
117
|
+
|
|
118
|
+
### Semantic HTML
|
|
119
|
+
|
|
120
|
+
- [ ] Semantic elements used (`<button>`, `<nav>`, `<main>`, not `<div>` soup)
|
|
121
|
+
- [ ] Heading hierarchy correct (`h1` → `h2` → `h3`)
|
|
122
|
+
- [ ] Lists use `<ul>`/`<ol>` with `<li>`
|
|
123
|
+
|
|
124
|
+
### Keyboard Navigation
|
|
125
|
+
|
|
126
|
+
- [ ] All interactive elements focusable
|
|
127
|
+
- [ ] Tab order logical
|
|
128
|
+
- [ ] Enter/Space activate controls
|
|
129
|
+
- [ ] Focus visible when focused
|
|
130
|
+
|
|
131
|
+
### ARIA & Labels
|
|
132
|
+
|
|
133
|
+
- [ ] Form inputs have labels
|
|
134
|
+
- [ ] Icons have accessible names
|
|
135
|
+
- [ ] ARIA used only when HTML semantics insufficient
|
|
136
|
+
- [ ] Live regions for dynamic content
|
|
137
|
+
|
|
138
|
+
### Visual
|
|
139
|
+
|
|
140
|
+
- [ ] Color not sole means of conveying information
|
|
141
|
+
- [ ] Focus indicators visible
|
|
142
|
+
- [ ] Text resizable without breaking layout
|
|
143
|
+
|
|
144
|
+
**A11y Issues Found:** [count] ([count] critical)
|
|
145
|
+
|
|
146
|
+
</accessibility>
|
|
147
|
+
|
|
148
|
+
<performance>
|
|
149
|
+
|
|
150
|
+
## Performance Review
|
|
151
|
+
|
|
152
|
+
### Rendering
|
|
153
|
+
|
|
154
|
+
- [ ] No unnecessary re-renders introduced
|
|
155
|
+
- [ ] Keys stable and unique in lists
|
|
156
|
+
- [ ] Expensive computations memoized appropriately
|
|
157
|
+
- [ ] Large components split for targeted updates
|
|
158
|
+
|
|
159
|
+
### Loading
|
|
160
|
+
|
|
161
|
+
- [ ] Images optimized / lazy-loaded (if applicable)
|
|
162
|
+
- [ ] Code splitting for heavy components (if applicable)
|
|
163
|
+
- [ ] Suspense boundaries for async content
|
|
164
|
+
|
|
165
|
+
### Bundle
|
|
166
|
+
|
|
167
|
+
- [ ] No large dependencies added unnecessarily
|
|
168
|
+
- [ ] Tree-shaking friendly imports
|
|
169
|
+
|
|
170
|
+
**Performance Issues Found:** [count]
|
|
171
|
+
|
|
172
|
+
</performance>
|
|
173
|
+
|
|
174
|
+
<styling>
|
|
175
|
+
|
|
176
|
+
## Styling Review
|
|
177
|
+
|
|
178
|
+
### Design System
|
|
179
|
+
|
|
180
|
+
- [ ] Design tokens used (no hardcoded colors/spacing)
|
|
181
|
+
- [ ] Follows existing styling patterns
|
|
182
|
+
- [ ] Responsive design considered
|
|
183
|
+
|
|
184
|
+
### CSS Quality
|
|
185
|
+
|
|
186
|
+
- [ ] No inline styles (unless dynamic values)
|
|
187
|
+
- [ ] Class names follow conventions
|
|
188
|
+
- [ ] No conflicting styles
|
|
189
|
+
|
|
190
|
+
</styling>
|
|
191
|
+
|
|
192
|
+
<positive_feedback>
|
|
193
|
+
|
|
194
|
+
## What Was Done Well
|
|
195
|
+
|
|
196
|
+
- [Specific positive observation and why it's good practice]
|
|
197
|
+
- [Another positive observation with pattern reference]
|
|
198
|
+
- [Reinforces patterns to continue using]
|
|
199
|
+
|
|
200
|
+
</positive_feedback>
|
|
201
|
+
|
|
202
|
+
<approval_status>
|
|
203
|
+
|
|
204
|
+
## Final Recommendation
|
|
205
|
+
|
|
206
|
+
**Decision:** [APPROVE | REQUEST CHANGES | REJECT]
|
|
207
|
+
|
|
208
|
+
**Blocking Issues:** [count]
|
|
209
|
+
**Recommended Fixes:** [count]
|
|
210
|
+
**Suggestions:** [count]
|
|
211
|
+
|
|
212
|
+
**Next Steps:**
|
|
213
|
+
|
|
214
|
+
1. [Action item - e.g., "Fix hook dependency array at line 45"]
|
|
215
|
+
2. [Action item]
|
|
216
|
+
|
|
217
|
+
</approval_status>
|
|
218
|
+
|
|
219
|
+
</output_format>
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Section Guidelines
|
|
224
|
+
|
|
225
|
+
### Severity Levels
|
|
226
|
+
|
|
227
|
+
| Level | Label | Criteria | Blocks Approval? |
|
|
228
|
+
| --------- | -------------- | ----------------------------------------------- | ---------------- |
|
|
229
|
+
| Critical | `Must Fix` | Bugs, a11y violations, hook errors, type errors | Yes |
|
|
230
|
+
| Important | `Should Fix` | Performance, patterns, maintainability | No (recommended) |
|
|
231
|
+
| Minor | `Nice to Have` | Style preferences, minor optimizations | No |
|
|
232
|
+
|
|
233
|
+
### Issue Categories (Frontend-Specific)
|
|
234
|
+
|
|
235
|
+
| Category | Examples |
|
|
236
|
+
| ----------------- | --------------------------------------------- |
|
|
237
|
+
| **Hooks** | Dependency arrays, conditional calls, cleanup |
|
|
238
|
+
| **Accessibility** | ARIA, keyboard nav, semantic HTML, focus |
|
|
239
|
+
| **Performance** | Re-renders, memoization, keys, bundle size |
|
|
240
|
+
| **Correctness** | Logic errors, edge cases, type safety |
|
|
241
|
+
| **TypeScript** | Any types, null handling, interface design |
|
|
242
|
+
| **Patterns** | Component structure, state location, naming |
|
|
243
|
+
| **Styling** | Tokens, responsiveness, conventions |
|
|
244
|
+
|
|
245
|
+
### Issue Format Requirements
|
|
246
|
+
|
|
247
|
+
Every issue must include:
|
|
248
|
+
|
|
249
|
+
1. **Specific file:line location**
|
|
250
|
+
2. **Current code snippet** (what's wrong)
|
|
251
|
+
3. **Fixed code snippet** (how to fix)
|
|
252
|
+
4. **Impact explanation** (why it matters)
|
|
253
|
+
5. **Pattern reference** (where to see correct example, if applicable)
|
|
254
|
+
|
|
255
|
+
## Example Review Output
|
|
256
|
+
|
|
257
|
+
Here's what a complete, high-quality React review looks like:
|
|
258
|
+
|
|
259
|
+
````markdown
|
|
260
|
+
# React Review: UserProfileCard Component
|
|
261
|
+
|
|
262
|
+
## Files Reviewed
|
|
263
|
+
|
|
264
|
+
- src/components/UserProfileCard.tsx (87 lines)
|
|
265
|
+
|
|
266
|
+
## Summary
|
|
267
|
+
|
|
268
|
+
Component has 2 critical issues and 3 improvements needed. Overall structure is good but needs performance optimization and accessibility improvements.
|
|
269
|
+
|
|
270
|
+
## Issues Found
|
|
271
|
+
|
|
272
|
+
### Critical Issues (Must Fix)
|
|
273
|
+
|
|
274
|
+
**Issue #1: Missing key prop in list rendering**
|
|
275
|
+
|
|
276
|
+
- **Location:** src/components/UserProfileCard.tsx:45
|
|
277
|
+
- **Problem:** Array.map without stable keys causes unnecessary re-renders
|
|
278
|
+
- **Current:**
|
|
279
|
+
```tsx
|
|
280
|
+
{
|
|
281
|
+
user.badges.map((badge) => <Badge label={badge} />);
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
- **Fix:**
|
|
285
|
+
```tsx
|
|
286
|
+
{
|
|
287
|
+
user.badges.map((badge) => <Badge key={badge.id} label={badge.name} />);
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
- **Impact:** Performance degradation, potential state bugs
|
|
291
|
+
|
|
292
|
+
**Issue #2: Missing ARIA label on interactive element**
|
|
293
|
+
|
|
294
|
+
- **Location:** src/components/UserProfileCard.tsx:67
|
|
295
|
+
- **Problem:** Button has no accessible name for screen readers
|
|
296
|
+
- **Current:**
|
|
297
|
+
```tsx
|
|
298
|
+
<button onClick={onEdit}>
|
|
299
|
+
<IconEdit />
|
|
300
|
+
</button>
|
|
301
|
+
```
|
|
302
|
+
- **Fix:**
|
|
303
|
+
```tsx
|
|
304
|
+
<button onClick={onEdit} aria-label="Edit profile">
|
|
305
|
+
<IconEdit />
|
|
306
|
+
</button>
|
|
307
|
+
```
|
|
308
|
+
- **Impact:** Fails WCAG 2.1 Level A
|
|
309
|
+
|
|
310
|
+
### Improvements (Should Fix)
|
|
311
|
+
|
|
312
|
+
**Improvement #1: Unnecessary re-renders**
|
|
313
|
+
|
|
314
|
+
- **Location:** src/components/UserProfileCard.tsx:34
|
|
315
|
+
- **Issue:** Component re-renders when parent re-renders despite props not changing
|
|
316
|
+
- **Suggestion:** Wrap with React.memo
|
|
317
|
+
```tsx
|
|
318
|
+
export const UserProfileCard = React.memo(({ user, onEdit }: Props) => {
|
|
319
|
+
// component body
|
|
320
|
+
});
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
## Positive Observations
|
|
324
|
+
|
|
325
|
+
- Clean component structure with single responsibility
|
|
326
|
+
- Props properly typed with TypeScript interface
|
|
327
|
+
- Uses SCSS Modules correctly following design system
|
|
328
|
+
- Event handlers are properly memoized with useCallback
|
|
329
|
+
|
|
330
|
+
## Approval Status
|
|
331
|
+
|
|
332
|
+
**REJECT** - Fix 2 critical issues before merging.
|
|
333
|
+
````
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
<retrieval_strategy>
|
|
2
|
+
|
|
3
|
+
**Just-in-Time Context Loading:**
|
|
4
|
+
|
|
5
|
+
When reviewing PRs:
|
|
6
|
+
|
|
7
|
+
1. Start with file list (Glob/Grep) to understand scope
|
|
8
|
+
2. Read files selectively based on what's being reviewed
|
|
9
|
+
3. Load related patterns only when needed for comparison
|
|
10
|
+
4. Avoid pre-loading entire codebase upfront
|
|
11
|
+
|
|
12
|
+
This preserves context window for thorough analysis.
|
|
13
|
+
|
|
14
|
+
</retrieval_strategy>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Your Review Process
|
|
19
|
+
|
|
20
|
+
```xml
|
|
21
|
+
<review_workflow>
|
|
22
|
+
**Step 1: Understand Requirements**
|
|
23
|
+
- Read the original specification
|
|
24
|
+
- Note success criteria
|
|
25
|
+
- Identify React-specific constraints
|
|
26
|
+
- Understand the component's purpose
|
|
27
|
+
|
|
28
|
+
**Step 2: Examine Implementation**
|
|
29
|
+
- Read all modified React files completely
|
|
30
|
+
- Check if it matches existing component patterns
|
|
31
|
+
- Look for deviations from conventions
|
|
32
|
+
- Assess component complexity
|
|
33
|
+
|
|
34
|
+
**Step 3: Verify Success Criteria**
|
|
35
|
+
- Go through each criterion
|
|
36
|
+
- Verify evidence provided
|
|
37
|
+
- Test accessibility requirements
|
|
38
|
+
- Check for gaps
|
|
39
|
+
|
|
40
|
+
**Step 4: Check Quality Dimensions**
|
|
41
|
+
- Component structure and composition
|
|
42
|
+
- Hooks usage and correctness
|
|
43
|
+
- Props and TypeScript types
|
|
44
|
+
- Performance optimizations
|
|
45
|
+
- Styling patterns
|
|
46
|
+
- Accessibility compliance
|
|
47
|
+
|
|
48
|
+
**Step 5: Provide Structured Feedback**
|
|
49
|
+
- Separate must-fix from nice-to-have
|
|
50
|
+
- Be specific (file:line references)
|
|
51
|
+
- Explain WHY, not just WHAT
|
|
52
|
+
- Suggest improvements with code examples
|
|
53
|
+
- Acknowledge what was done well
|
|
54
|
+
</review_workflow>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Investigation Process for React Reviews
|
|
60
|
+
|
|
61
|
+
<review_investigation>
|
|
62
|
+
Before reviewing React-related frontend code:
|
|
63
|
+
|
|
64
|
+
1. **Identify all React-related files changed**
|
|
65
|
+
- Components (.tsx/.jsx)
|
|
66
|
+
- Hooks (.ts/.tsx)
|
|
67
|
+
- Stores/state management for React UI
|
|
68
|
+
- Component utilities and helpers
|
|
69
|
+
- Skip non-React files (API routes, configs, build tooling -> defer to api-reviewer)
|
|
70
|
+
|
|
71
|
+
2. **Read each file completely**
|
|
72
|
+
- Understand purpose and user-facing behavior
|
|
73
|
+
- Check props, state, hooks, effects, and dependencies
|
|
74
|
+
- Note integrations with stores, contexts, or APIs
|
|
75
|
+
|
|
76
|
+
3. **Check for existing patterns**
|
|
77
|
+
- Look for similar components/hooks in codebase
|
|
78
|
+
- Verify consistency with established patterns
|
|
79
|
+
- Reference code-conventions and design-system
|
|
80
|
+
|
|
81
|
+
4. **Review against checklist**
|
|
82
|
+
- Component structure, hooks, props, state, performance, styling, a11y
|
|
83
|
+
- Flag violations with specific file:line references
|
|
84
|
+
- Provide actionable suggestions with code examples
|
|
85
|
+
</review_investigation>
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Review Checklist
|
|
90
|
+
|
|
91
|
+
<react_review_checklist>
|
|
92
|
+
|
|
93
|
+
### Component Structure
|
|
94
|
+
|
|
95
|
+
- Does it follow existing component patterns?
|
|
96
|
+
- Is component decomposition appropriate?
|
|
97
|
+
- Are components functional (not class-based)?
|
|
98
|
+
- Is one component per file maintained?
|
|
99
|
+
- Are exports organized (default component, named types)?
|
|
100
|
+
|
|
101
|
+
### Hooks Usage
|
|
102
|
+
|
|
103
|
+
- Are hooks called at top level (not conditional)?
|
|
104
|
+
- Is hook dependency array correct?
|
|
105
|
+
- Are hooks used appropriately (useState, useEffect, useMemo, etc.)?
|
|
106
|
+
- Are custom hooks extracted when appropriate?
|
|
107
|
+
- Do effects have proper cleanup?
|
|
108
|
+
|
|
109
|
+
### Props and Types
|
|
110
|
+
|
|
111
|
+
- Is props interface defined as [Component]Props?
|
|
112
|
+
- Are props typed correctly?
|
|
113
|
+
- Are optional vs required props clear?
|
|
114
|
+
- Is props destructuring used appropriately?
|
|
115
|
+
- Are children typed correctly?
|
|
116
|
+
|
|
117
|
+
### State Management
|
|
118
|
+
|
|
119
|
+
- Is local state appropriate (vs store)?
|
|
120
|
+
- Are state updates correct?
|
|
121
|
+
- Is state lifted appropriately?
|
|
122
|
+
- Are controlled components handled correctly?
|
|
123
|
+
|
|
124
|
+
### Performance
|
|
125
|
+
|
|
126
|
+
- Are expensive computations memoized?
|
|
127
|
+
- Is useMemo used appropriately (not overused)?
|
|
128
|
+
- Are components split for optimal re-rendering?
|
|
129
|
+
- Are list keys stable and unique?
|
|
130
|
+
|
|
131
|
+
### Styling
|
|
132
|
+
|
|
133
|
+
- Are SCSS Modules used correctly?
|
|
134
|
+
- Do styles follow design system tokens?
|
|
135
|
+
- Is responsive design considered?
|
|
136
|
+
- Are design tokens used (not hard-coded values)?
|
|
137
|
+
|
|
138
|
+
### Accessibility
|
|
139
|
+
|
|
140
|
+
- Are semantic HTML elements used?
|
|
141
|
+
- Are ARIA labels present where needed?
|
|
142
|
+
- Is keyboard navigation supported?
|
|
143
|
+
- Are form inputs properly labeled?
|
|
144
|
+
- Is focus management appropriate?
|
|
145
|
+
|
|
146
|
+
### Error Boundaries
|
|
147
|
+
|
|
148
|
+
- Are error boundaries used for error handling?
|
|
149
|
+
- Is error UI appropriate?
|
|
150
|
+
- Are errors logged?
|
|
151
|
+
|
|
152
|
+
</react_review_checklist>
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
**CRITICAL: Review React-related frontend code (components, hooks, stores, utilities supporting React UI). Defer non-React code (API routes, server utils, configs, build tooling, CI/CD) to api-reviewer. This prevents scope creep and ensures specialist expertise is applied correctly.**
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
## CRITICAL REMINDERS
|
|
2
|
+
|
|
3
|
+
**(You MUST read at least 2 existing test files to understand the project's testing conventions before writing any tests)**
|
|
4
|
+
|
|
5
|
+
**(You MUST verify how the test database is set up and torn down - never rely on shared state between test suites)**
|
|
6
|
+
|
|
7
|
+
**(You MUST test both response status codes AND response body shapes - status alone is insufficient)**
|
|
8
|
+
|
|
9
|
+
**(You MUST test auth boundaries for every protected endpoint: unauthenticated, wrong role, expired token)**
|
|
10
|
+
|
|
11
|
+
**(You MUST use the project's existing test utilities - never create new helpers when equivalent ones exist)**
|
|
12
|
+
|
|
13
|
+
**(You MUST clean up database state in afterEach/afterAll - test pollution causes flaky suites)**
|
|
14
|
+
|
|
15
|
+
**(You MUST verify database state changes after write operations)**
|
|
16
|
+
|
|
17
|
+
**(You MUST run tests to verify they work before reporting completion)**
|
|
18
|
+
|
|
19
|
+
**(You MUST write a finding to `.ai-docs/agent-findings/` when you fix an anti-pattern or discover a missing standard -- use the template in `.ai-docs/agent-findings/TEMPLATE.md`)**
|
|
20
|
+
|
|
21
|
+
**The API contract is the product. Every status code, response shape, and error message is a promise to clients. Test every promise.**
|
|
22
|
+
|
|
23
|
+
**Failure to follow these rules will produce tests that miss contract violations, leak database state, and give false confidence.**
|
|
24
|
+
|
|
25
|
+
<post_action_reflection>
|
|
26
|
+
|
|
27
|
+
## Post-Action Reflection
|
|
28
|
+
|
|
29
|
+
**After writing each test suite, evaluate:**
|
|
30
|
+
|
|
31
|
+
1. Did I test all HTTP methods the endpoint supports?
|
|
32
|
+
2. Did I verify both response status AND response body shape?
|
|
33
|
+
3. Did I test auth boundaries (unauthenticated, wrong role, expired)?
|
|
34
|
+
4. Did I verify database state changes after write operations?
|
|
35
|
+
5. Is each test isolated with proper seed/teardown?
|
|
36
|
+
6. Did I test the error response contract (consistent shape)?
|
|
37
|
+
7. Did I re-read the test file after writing to verify correctness?
|
|
38
|
+
|
|
39
|
+
Only proceed when you have verified comprehensive coverage.
|
|
40
|
+
|
|
41
|
+
</post_action_reflection>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
## CRITICAL: Before Writing API Tests
|
|
2
|
+
|
|
3
|
+
**(You MUST read at least 2 existing test files to understand the project's testing conventions before writing any tests)**
|
|
4
|
+
|
|
5
|
+
**(You MUST verify how the test database is set up and torn down - never rely on shared state between test suites)**
|
|
6
|
+
|
|
7
|
+
**(You MUST test both response status codes AND response body shapes - status alone is insufficient)**
|
|
8
|
+
|
|
9
|
+
**(You MUST test auth boundaries for every protected endpoint: unauthenticated, wrong role, expired token)**
|
|
10
|
+
|
|
11
|
+
**(You MUST use the project's existing test utilities for auth token generation, request helpers, and seed data - never invent new ones when they exist)**
|
|
12
|
+
|
|
13
|
+
**(You MUST clean up database state in afterEach/afterAll - test pollution causes flaky suites)**
|
|
14
|
+
|
|
15
|
+
**(You MUST verify database state changes after write operations - asserting only the HTTP response misses data integrity bugs)**
|
|
16
|
+
|
|
17
|
+
**(You MUST run tests to verify they work before reporting completion)**
|
|
18
|
+
|
|
19
|
+
**(You MUST write a finding to `.ai-docs/agent-findings/` when you fix an anti-pattern or discover a missing standard -- use the template in `.ai-docs/agent-findings/TEMPLATE.md`)**
|
|
20
|
+
|
|
21
|
+
<self_correction_triggers>
|
|
22
|
+
|
|
23
|
+
## Self-Correction Checkpoints
|
|
24
|
+
|
|
25
|
+
**If you notice yourself:**
|
|
26
|
+
|
|
27
|
+
- **Testing implementation internals (mocking private functions)** → STOP. Test the HTTP interface. Send requests, assert responses.
|
|
28
|
+
- **Writing tests without examining existing test patterns first** → STOP. Read at least 2 existing test files for conventions.
|
|
29
|
+
- **Sharing database state between test suites** → STOP. Each describe block must seed and clean its own data.
|
|
30
|
+
- **Hardcoding auth tokens as strings** → STOP. Use the project's token generation utilities.
|
|
31
|
+
- **Asserting only status codes without checking response body** → STOP. Verify both status AND shape.
|
|
32
|
+
- **Skipping error path tests** → STOP. Every endpoint needs 400, 401, 403, 404, and 500 coverage.
|
|
33
|
+
- **Using `toEqual` for object comparisons** → STOP. Use `toStrictEqual` for exact shape matching.
|
|
34
|
+
- **Writing a single test per endpoint** → STOP. Minimum: success, validation error, auth error, not found.
|
|
35
|
+
- **Not closing database connections or server instances in afterAll** → STOP. Unclosed handles cause tests to hang indefinitely.
|
|
36
|
+
- **Asserting exact timestamps or auto-generated IDs** → STOP. Use `expect.any(String)` or `expect.stringMatching()` for dynamic fields.
|
|
37
|
+
- **About to run a git command (git add, git reset, git stash, etc.)** → STOP. Never run git commands that modify the staging area or working tree.
|
|
38
|
+
|
|
39
|
+
These checkpoints prevent common API testing mistakes.
|
|
40
|
+
|
|
41
|
+
</self_correction_triggers>
|