@agents-inc/cli 0.32.1
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 +462 -0
- package/LICENSE +21 -0
- package/README.md +179 -0
- package/config/skills-matrix.yaml +926 -0
- package/config/stacks.yaml +2186 -0
- package/dist/chunk-3ZOIOVKT.js +365 -0
- package/dist/chunk-3ZOIOVKT.js.map +1 -0
- package/dist/chunk-4RAY5AOI.js +78 -0
- package/dist/chunk-4RAY5AOI.js.map +1 -0
- package/dist/chunk-5PIKNCZX.js +234 -0
- package/dist/chunk-5PIKNCZX.js.map +1 -0
- package/dist/chunk-66UDJBF6.js +96 -0
- package/dist/chunk-66UDJBF6.js.map +1 -0
- package/dist/chunk-7SOPVGDV.js +24 -0
- package/dist/chunk-7SOPVGDV.js.map +1 -0
- package/dist/chunk-A27LOC4Z.js +95 -0
- package/dist/chunk-A27LOC4Z.js.map +1 -0
- package/dist/chunk-B2UBHA66.js +301 -0
- package/dist/chunk-B2UBHA66.js.map +1 -0
- package/dist/chunk-BZN2Z5P7.js +882 -0
- package/dist/chunk-BZN2Z5P7.js.map +1 -0
- package/dist/chunk-BZQBJP34.js +186 -0
- package/dist/chunk-BZQBJP34.js.map +1 -0
- package/dist/chunk-DC5AK3LW.js +105 -0
- package/dist/chunk-DC5AK3LW.js.map +1 -0
- package/dist/chunk-DHET7RCE.js +50 -0
- package/dist/chunk-DHET7RCE.js.map +1 -0
- package/dist/chunk-EMJ2ZKS7.js +346 -0
- package/dist/chunk-EMJ2ZKS7.js.map +1 -0
- package/dist/chunk-FJQRVFMB.js +48 -0
- package/dist/chunk-FJQRVFMB.js.map +1 -0
- package/dist/chunk-FZGYSLJL.js +85 -0
- package/dist/chunk-FZGYSLJL.js.map +1 -0
- package/dist/chunk-H566H3MQ.js +87 -0
- package/dist/chunk-H566H3MQ.js.map +1 -0
- package/dist/chunk-IYG2LAIM.js +90 -0
- package/dist/chunk-IYG2LAIM.js.map +1 -0
- package/dist/chunk-IZZ4IIEG.js +29 -0
- package/dist/chunk-IZZ4IIEG.js.map +1 -0
- package/dist/chunk-JMVWYAHT.js +63 -0
- package/dist/chunk-JMVWYAHT.js.map +1 -0
- package/dist/chunk-LAPCUV4D.js +191 -0
- package/dist/chunk-LAPCUV4D.js.map +1 -0
- package/dist/chunk-LGUI3PMO.js +109 -0
- package/dist/chunk-LGUI3PMO.js.map +1 -0
- package/dist/chunk-MM7NK5N2.js +4542 -0
- package/dist/chunk-MM7NK5N2.js.map +1 -0
- package/dist/chunk-N6S7ZRIL.js +31 -0
- package/dist/chunk-N6S7ZRIL.js.map +1 -0
- package/dist/chunk-O4D67NN7.js +24 -0
- package/dist/chunk-O4D67NN7.js.map +1 -0
- package/dist/chunk-ODUOU55D.js +56 -0
- package/dist/chunk-ODUOU55D.js.map +1 -0
- package/dist/chunk-OGJIZ6QH.js +497 -0
- package/dist/chunk-OGJIZ6QH.js.map +1 -0
- package/dist/chunk-OMV7TLWD.js +340 -0
- package/dist/chunk-OMV7TLWD.js.map +1 -0
- package/dist/chunk-PBEHPQLK.js +146 -0
- package/dist/chunk-PBEHPQLK.js.map +1 -0
- package/dist/chunk-QPTOIZAT.js +32 -0
- package/dist/chunk-QPTOIZAT.js.map +1 -0
- package/dist/chunk-R3XFQKPG.js +111 -0
- package/dist/chunk-R3XFQKPG.js.map +1 -0
- package/dist/chunk-R74PZWQS.js +69 -0
- package/dist/chunk-R74PZWQS.js.map +1 -0
- package/dist/chunk-SO22IQPY.js +45 -0
- package/dist/chunk-SO22IQPY.js.map +1 -0
- package/dist/chunk-T4EXUIBY.js +19 -0
- package/dist/chunk-T4EXUIBY.js.map +1 -0
- package/dist/chunk-U3IGFMCY.js +31 -0
- package/dist/chunk-U3IGFMCY.js.map +1 -0
- package/dist/chunk-UICL22RT.js +318 -0
- package/dist/chunk-UICL22RT.js.map +1 -0
- package/dist/chunk-UX2H2K2G.js +183 -0
- package/dist/chunk-UX2H2K2G.js.map +1 -0
- package/dist/chunk-W2ZSCZ2U.js +93 -0
- package/dist/chunk-W2ZSCZ2U.js.map +1 -0
- package/dist/chunk-WEUVWHMA.js +189 -0
- package/dist/chunk-WEUVWHMA.js.map +1 -0
- package/dist/chunk-XY3XDVMI.js +15599 -0
- package/dist/chunk-XY3XDVMI.js.map +1 -0
- package/dist/chunk-YND42IXK.js +233 -0
- package/dist/chunk-YND42IXK.js.map +1 -0
- package/dist/chunk-YZTWZVGX.js +41 -0
- package/dist/chunk-YZTWZVGX.js.map +1 -0
- package/dist/chunk-Z4TWOP3H.js +81 -0
- package/dist/chunk-Z4TWOP3H.js.map +1 -0
- package/dist/cli/defaults/agent-mappings.yaml +271 -0
- package/dist/commands/build/marketplace.js +252 -0
- package/dist/commands/build/marketplace.js.map +1 -0
- package/dist/commands/build/plugins.js +114 -0
- package/dist/commands/build/plugins.js.map +1 -0
- package/dist/commands/build/stack.js +153 -0
- package/dist/commands/build/stack.js.map +1 -0
- package/dist/commands/compile.js +354 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/config/get.js +61 -0
- package/dist/commands/config/get.js.map +1 -0
- package/dist/commands/config/index.js +23 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/config/path.js +34 -0
- package/dist/commands/config/path.js.map +1 -0
- package/dist/commands/config/set-project.js +61 -0
- package/dist/commands/config/set-project.js.map +1 -0
- package/dist/commands/config/show.js +14 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/config/unset-project.js +57 -0
- package/dist/commands/config/unset-project.js.map +1 -0
- package/dist/commands/diff.js +742 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/doctor.js +370 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/edit.js +301 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/eject.js +262 -0
- package/dist/commands/eject.js.map +1 -0
- package/dist/commands/import/skill.js +361 -0
- package/dist/commands/import/skill.js.map +1 -0
- package/dist/commands/info.js +217 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.js +443 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.js +49 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/new/agent.js +224 -0
- package/dist/commands/new/agent.js.map +1 -0
- package/dist/commands/new/skill.js +199 -0
- package/dist/commands/new/skill.js.map +1 -0
- package/dist/commands/outdated.js +176 -0
- package/dist/commands/outdated.js.map +1 -0
- package/dist/commands/search.js +288 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/uninstall.js +302 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.js +304 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/validate.js +389 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/version/bump.js +79 -0
- package/dist/commands/version/bump.js.map +1 -0
- package/dist/commands/version/index.js +54 -0
- package/dist/commands/version/index.js.map +1 -0
- package/dist/commands/version/set.js +86 -0
- package/dist/commands/version/set.js.map +1 -0
- package/dist/commands/version/show.js +54 -0
- package/dist/commands/version/show.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/message.js +20 -0
- package/dist/components/common/message.js.map +1 -0
- package/dist/components/common/spinner.js +14 -0
- package/dist/components/common/spinner.js.map +1 -0
- package/dist/components/skill-search/skill-search.js +12 -0
- package/dist/components/skill-search/skill-search.js.map +1 -0
- package/dist/components/wizard/category-grid.js +11 -0
- package/dist/components/wizard/category-grid.js.map +1 -0
- package/dist/components/wizard/category-grid.test.js +997 -0
- package/dist/components/wizard/category-grid.test.js.map +1 -0
- package/dist/components/wizard/domain-selection.js +14 -0
- package/dist/components/wizard/domain-selection.js.map +1 -0
- package/dist/components/wizard/help-modal.js +10 -0
- package/dist/components/wizard/help-modal.js.map +1 -0
- package/dist/components/wizard/menu-item.js +10 -0
- package/dist/components/wizard/menu-item.js.map +1 -0
- package/dist/components/wizard/search-modal.js +11 -0
- package/dist/components/wizard/search-modal.js.map +1 -0
- package/dist/components/wizard/search-modal.test.js +218 -0
- package/dist/components/wizard/search-modal.test.js.map +1 -0
- package/dist/components/wizard/section-progress.js +10 -0
- package/dist/components/wizard/section-progress.js.map +1 -0
- package/dist/components/wizard/section-progress.test.js +192 -0
- package/dist/components/wizard/section-progress.test.js.map +1 -0
- package/dist/components/wizard/source-grid.js +14 -0
- package/dist/components/wizard/source-grid.js.map +1 -0
- package/dist/components/wizard/source-grid.test.js +504 -0
- package/dist/components/wizard/source-grid.test.js.map +1 -0
- package/dist/components/wizard/stack-selection.js +17 -0
- package/dist/components/wizard/stack-selection.js.map +1 -0
- package/dist/components/wizard/step-build.js +17 -0
- package/dist/components/wizard/step-build.js.map +1 -0
- package/dist/components/wizard/step-build.test.js +600 -0
- package/dist/components/wizard/step-build.test.js.map +1 -0
- package/dist/components/wizard/step-confirm.js +12 -0
- package/dist/components/wizard/step-confirm.js.map +1 -0
- package/dist/components/wizard/step-confirm.test.js +366 -0
- package/dist/components/wizard/step-confirm.test.js.map +1 -0
- package/dist/components/wizard/step-refine.js +10 -0
- package/dist/components/wizard/step-refine.js.map +1 -0
- package/dist/components/wizard/step-refine.test.js +237 -0
- package/dist/components/wizard/step-refine.test.js.map +1 -0
- package/dist/components/wizard/step-settings.js +17 -0
- package/dist/components/wizard/step-settings.js.map +1 -0
- package/dist/components/wizard/step-settings.test.js +243 -0
- package/dist/components/wizard/step-settings.test.js.map +1 -0
- package/dist/components/wizard/step-sources.js +20 -0
- package/dist/components/wizard/step-sources.js.map +1 -0
- package/dist/components/wizard/step-sources.test.js +294 -0
- package/dist/components/wizard/step-sources.test.js.map +1 -0
- package/dist/components/wizard/step-stack.js +19 -0
- package/dist/components/wizard/step-stack.js.map +1 -0
- package/dist/components/wizard/step-stack.test.js +357 -0
- package/dist/components/wizard/step-stack.test.js.map +1 -0
- package/dist/components/wizard/view-title.js +10 -0
- package/dist/components/wizard/view-title.js.map +1 -0
- package/dist/components/wizard/wizard-layout.js +16 -0
- package/dist/components/wizard/wizard-layout.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.js +14 -0
- package/dist/components/wizard/wizard-tabs.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.test.js +294 -0
- package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
- package/dist/components/wizard/wizard.js +35 -0
- package/dist/components/wizard/wizard.js.map +1 -0
- package/dist/config/skills-matrix.yaml +926 -0
- package/dist/config/stacks.yaml +2186 -0
- package/dist/hooks/init.js +40 -0
- package/dist/hooks/init.js.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/magic-string.es-RGXYGAW3.js +1316 -0
- package/dist/magic-string.es-RGXYGAW3.js.map +1 -0
- package/dist/source-manager-SBPPLOQQ.js +16 -0
- package/dist/source-manager-SBPPLOQQ.js.map +1 -0
- package/dist/src/agents/_templates/agent.liquid +140 -0
- package/dist/src/agents/developer/api-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/api-developer/critical-reminders.md +23 -0
- package/dist/src/agents/developer/api-developer/critical-requirements.md +11 -0
- package/dist/src/agents/developer/api-developer/examples.md +72 -0
- package/dist/src/agents/developer/api-developer/intro.md +22 -0
- package/dist/src/agents/developer/api-developer/output-format.md +359 -0
- package/dist/src/agents/developer/api-developer/workflow.md +471 -0
- package/dist/src/agents/developer/cli-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/cli-developer/critical-reminders.md +28 -0
- package/dist/src/agents/developer/cli-developer/critical-requirements.md +15 -0
- package/dist/src/agents/developer/cli-developer/examples.md +68 -0
- package/dist/src/agents/developer/cli-developer/intro.md +23 -0
- package/dist/src/agents/developer/cli-developer/output-format.md +216 -0
- package/dist/src/agents/developer/cli-developer/workflow.md +509 -0
- package/dist/src/agents/developer/web-architecture/agent.yaml +12 -0
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +27 -0
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +35 -0
- package/dist/src/agents/developer/web-architecture/examples.md +187 -0
- package/dist/src/agents/developer/web-architecture/intro.md +35 -0
- package/dist/src/agents/developer/web-architecture/output-format.md +261 -0
- package/dist/src/agents/developer/web-architecture/workflow.md +599 -0
- package/dist/src/agents/developer/web-developer/agent.yaml +12 -0
- package/dist/src/agents/developer/web-developer/critical-reminders.md +17 -0
- package/dist/src/agents/developer/web-developer/critical-requirements.md +15 -0
- package/dist/src/agents/developer/web-developer/examples.md +109 -0
- package/dist/src/agents/developer/web-developer/intro.md +5 -0
- package/dist/src/agents/developer/web-developer/output-format.md +213 -0
- package/dist/src/agents/developer/web-developer/workflow.md +459 -0
- package/dist/src/agents/meta/agent-summoner/agent.yaml +12 -0
- package/dist/src/agents/meta/agent-summoner/critical-reminders.md +31 -0
- package/dist/src/agents/meta/agent-summoner/critical-requirements.md +27 -0
- package/dist/src/agents/meta/agent-summoner/examples.md +176 -0
- package/dist/src/agents/meta/agent-summoner/intro.md +9 -0
- package/dist/src/agents/meta/agent-summoner/output-format.md +115 -0
- package/dist/src/agents/meta/agent-summoner/workflow.md +1540 -0
- package/dist/src/agents/meta/documentor/agent.yaml +11 -0
- package/dist/src/agents/meta/documentor/critical-reminders.md +23 -0
- package/dist/src/agents/meta/documentor/critical-requirements.md +13 -0
- package/dist/src/agents/meta/documentor/examples.md +147 -0
- package/dist/src/agents/meta/documentor/intro.md +11 -0
- package/dist/src/agents/meta/documentor/output-format.md +237 -0
- package/dist/src/agents/meta/documentor/workflow.md +1271 -0
- package/dist/src/agents/meta/skill-summoner/agent.yaml +13 -0
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +73 -0
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/dist/src/agents/meta/skill-summoner/examples.md +116 -0
- package/dist/src/agents/meta/skill-summoner/intro.md +5 -0
- package/dist/src/agents/meta/skill-summoner/output-format.md +279 -0
- package/dist/src/agents/meta/skill-summoner/workflow.md +1485 -0
- package/dist/src/agents/migration/cli-migrator/agent.yaml +12 -0
- package/dist/src/agents/migration/cli-migrator/anti-patterns.md +158 -0
- package/dist/src/agents/migration/cli-migrator/conversion-mappings.md +63 -0
- package/dist/src/agents/migration/cli-migrator/critical-reminders.md +17 -0
- package/dist/src/agents/migration/cli-migrator/critical-requirements.md +13 -0
- package/dist/src/agents/migration/cli-migrator/intro.md +15 -0
- package/dist/src/agents/migration/cli-migrator/output-format.md +164 -0
- package/dist/src/agents/migration/cli-migrator/workflow.md +230 -0
- package/dist/src/agents/pattern/pattern-scout/agent.yaml +10 -0
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +58 -0
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +17 -0
- package/dist/src/agents/pattern/pattern-scout/examples.md +93 -0
- package/dist/src/agents/pattern/pattern-scout/intro.md +3 -0
- package/dist/src/agents/pattern/pattern-scout/output-format.md +196 -0
- package/dist/src/agents/pattern/pattern-scout/workflow.md +1901 -0
- package/dist/src/agents/pattern/web-pattern-critique/agent.yaml +12 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +13 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +11 -0
- package/dist/src/agents/pattern/web-pattern-critique/examples.md +56 -0
- package/dist/src/agents/pattern/web-pattern-critique/intro.md +5 -0
- package/dist/src/agents/pattern/web-pattern-critique/output-format.md +257 -0
- package/dist/src/agents/pattern/web-pattern-critique/workflow.md +674 -0
- package/dist/src/agents/planning/web-pm/agent.yaml +12 -0
- package/dist/src/agents/planning/web-pm/critical-reminders.md +21 -0
- package/dist/src/agents/planning/web-pm/critical-requirements.md +17 -0
- package/dist/src/agents/planning/web-pm/examples.md +85 -0
- package/dist/src/agents/planning/web-pm/intro.md +3 -0
- package/dist/src/agents/planning/web-pm/output-format.md +228 -0
- package/dist/src/agents/planning/web-pm/workflow.md +393 -0
- package/dist/src/agents/researcher/api-researcher/agent.yaml +10 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/dist/src/agents/researcher/api-researcher/critical-requirements.md +13 -0
- package/dist/src/agents/researcher/api-researcher/examples.md +116 -0
- package/dist/src/agents/researcher/api-researcher/intro.md +32 -0
- package/dist/src/agents/researcher/api-researcher/output-format.md +135 -0
- package/dist/src/agents/researcher/api-researcher/workflow.md +261 -0
- package/dist/src/agents/researcher/web-researcher/agent.yaml +10 -0
- package/dist/src/agents/researcher/web-researcher/critical-reminders.md +23 -0
- package/dist/src/agents/researcher/web-researcher/critical-requirements.md +11 -0
- package/dist/src/agents/researcher/web-researcher/examples.md +126 -0
- package/dist/src/agents/researcher/web-researcher/intro.md +31 -0
- package/dist/src/agents/researcher/web-researcher/output-format.md +112 -0
- package/dist/src/agents/researcher/web-researcher/workflow.md +322 -0
- package/dist/src/agents/reviewer/api-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +16 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +13 -0
- package/dist/src/agents/reviewer/api-reviewer/examples.md +54 -0
- package/dist/src/agents/reviewer/api-reviewer/intro.md +22 -0
- package/dist/src/agents/reviewer/api-reviewer/output-format.md +288 -0
- package/dist/src/agents/reviewer/api-reviewer/workflow.md +369 -0
- package/dist/src/agents/reviewer/cli-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +17 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +13 -0
- package/dist/src/agents/reviewer/cli-reviewer/examples.md +83 -0
- package/dist/src/agents/reviewer/cli-reviewer/intro.md +21 -0
- package/dist/src/agents/reviewer/cli-reviewer/output-format.md +330 -0
- package/dist/src/agents/reviewer/cli-reviewer/workflow.md +294 -0
- package/dist/src/agents/reviewer/web-reviewer/agent.yaml +12 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +17 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +11 -0
- package/dist/src/agents/reviewer/web-reviewer/examples.md +79 -0
- package/dist/src/agents/reviewer/web-reviewer/intro.md +20 -0
- package/dist/src/agents/reviewer/web-reviewer/output-format.md +253 -0
- package/dist/src/agents/reviewer/web-reviewer/workflow.md +228 -0
- package/dist/src/agents/tester/cli-tester/agent.yaml +12 -0
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +19 -0
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +17 -0
- package/dist/src/agents/tester/cli-tester/examples.md +80 -0
- package/dist/src/agents/tester/cli-tester/intro.md +19 -0
- package/dist/src/agents/tester/cli-tester/output-format.md +232 -0
- package/dist/src/agents/tester/cli-tester/workflow.md +304 -0
- package/dist/src/agents/tester/web-tester/agent.yaml +12 -0
- package/dist/src/agents/tester/web-tester/critical-reminders.md +15 -0
- package/dist/src/agents/tester/web-tester/critical-requirements.md +11 -0
- package/dist/src/agents/tester/web-tester/examples.md +68 -0
- package/dist/src/agents/tester/web-tester/intro.md +18 -0
- package/dist/src/agents/tester/web-tester/output-format.md +252 -0
- package/dist/src/agents/tester/web-tester/workflow.md +507 -0
- package/dist/stores/wizard-store.js +13 -0
- package/dist/stores/wizard-store.js.map +1 -0
- package/dist/stores/wizard-store.test.js +689 -0
- package/dist/stores/wizard-store.test.js.map +1 -0
- package/package.json +134 -0
- package/src/agents/_templates/agent.liquid +140 -0
- package/src/agents/developer/api-developer/agent.yaml +12 -0
- package/src/agents/developer/api-developer/critical-reminders.md +23 -0
- package/src/agents/developer/api-developer/critical-requirements.md +11 -0
- package/src/agents/developer/api-developer/examples.md +72 -0
- package/src/agents/developer/api-developer/intro.md +22 -0
- package/src/agents/developer/api-developer/output-format.md +359 -0
- package/src/agents/developer/api-developer/workflow.md +471 -0
- package/src/agents/developer/cli-developer/agent.yaml +12 -0
- package/src/agents/developer/cli-developer/critical-reminders.md +28 -0
- package/src/agents/developer/cli-developer/critical-requirements.md +15 -0
- package/src/agents/developer/cli-developer/examples.md +68 -0
- package/src/agents/developer/cli-developer/intro.md +23 -0
- package/src/agents/developer/cli-developer/output-format.md +216 -0
- package/src/agents/developer/cli-developer/workflow.md +509 -0
- package/src/agents/developer/web-architecture/agent.yaml +12 -0
- package/src/agents/developer/web-architecture/critical-reminders.md +27 -0
- package/src/agents/developer/web-architecture/critical-requirements.md +35 -0
- package/src/agents/developer/web-architecture/examples.md +187 -0
- package/src/agents/developer/web-architecture/intro.md +35 -0
- package/src/agents/developer/web-architecture/output-format.md +261 -0
- package/src/agents/developer/web-architecture/workflow.md +599 -0
- package/src/agents/developer/web-developer/agent.yaml +12 -0
- package/src/agents/developer/web-developer/critical-reminders.md +17 -0
- package/src/agents/developer/web-developer/critical-requirements.md +15 -0
- package/src/agents/developer/web-developer/examples.md +109 -0
- package/src/agents/developer/web-developer/intro.md +5 -0
- package/src/agents/developer/web-developer/output-format.md +213 -0
- package/src/agents/developer/web-developer/workflow.md +459 -0
- package/src/agents/meta/agent-summoner/agent.yaml +12 -0
- package/src/agents/meta/agent-summoner/critical-reminders.md +31 -0
- package/src/agents/meta/agent-summoner/critical-requirements.md +27 -0
- package/src/agents/meta/agent-summoner/examples.md +176 -0
- package/src/agents/meta/agent-summoner/intro.md +9 -0
- package/src/agents/meta/agent-summoner/output-format.md +115 -0
- package/src/agents/meta/agent-summoner/workflow.md +1540 -0
- package/src/agents/meta/documentor/agent.yaml +11 -0
- package/src/agents/meta/documentor/critical-reminders.md +23 -0
- package/src/agents/meta/documentor/critical-requirements.md +13 -0
- package/src/agents/meta/documentor/examples.md +147 -0
- package/src/agents/meta/documentor/intro.md +11 -0
- package/src/agents/meta/documentor/output-format.md +237 -0
- package/src/agents/meta/documentor/workflow.md +1271 -0
- package/src/agents/meta/skill-summoner/agent.yaml +13 -0
- package/src/agents/meta/skill-summoner/critical-reminders.md +73 -0
- package/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/src/agents/meta/skill-summoner/examples.md +116 -0
- package/src/agents/meta/skill-summoner/intro.md +5 -0
- package/src/agents/meta/skill-summoner/output-format.md +279 -0
- package/src/agents/meta/skill-summoner/workflow.md +1485 -0
- package/src/agents/migration/cli-migrator/agent.yaml +12 -0
- package/src/agents/migration/cli-migrator/anti-patterns.md +158 -0
- package/src/agents/migration/cli-migrator/conversion-mappings.md +63 -0
- package/src/agents/migration/cli-migrator/critical-reminders.md +17 -0
- package/src/agents/migration/cli-migrator/critical-requirements.md +13 -0
- package/src/agents/migration/cli-migrator/intro.md +15 -0
- package/src/agents/migration/cli-migrator/output-format.md +164 -0
- package/src/agents/migration/cli-migrator/workflow.md +230 -0
- package/src/agents/pattern/pattern-scout/agent.yaml +10 -0
- package/src/agents/pattern/pattern-scout/critical-reminders.md +58 -0
- package/src/agents/pattern/pattern-scout/critical-requirements.md +17 -0
- package/src/agents/pattern/pattern-scout/examples.md +93 -0
- package/src/agents/pattern/pattern-scout/intro.md +3 -0
- package/src/agents/pattern/pattern-scout/output-format.md +196 -0
- package/src/agents/pattern/pattern-scout/workflow.md +1901 -0
- package/src/agents/pattern/web-pattern-critique/agent.yaml +12 -0
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +13 -0
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +11 -0
- package/src/agents/pattern/web-pattern-critique/examples.md +56 -0
- package/src/agents/pattern/web-pattern-critique/intro.md +5 -0
- package/src/agents/pattern/web-pattern-critique/output-format.md +257 -0
- package/src/agents/pattern/web-pattern-critique/workflow.md +674 -0
- package/src/agents/planning/web-pm/agent.yaml +12 -0
- package/src/agents/planning/web-pm/critical-reminders.md +21 -0
- package/src/agents/planning/web-pm/critical-requirements.md +17 -0
- package/src/agents/planning/web-pm/examples.md +85 -0
- package/src/agents/planning/web-pm/intro.md +3 -0
- package/src/agents/planning/web-pm/output-format.md +228 -0
- package/src/agents/planning/web-pm/workflow.md +393 -0
- package/src/agents/researcher/api-researcher/agent.yaml +10 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/src/agents/researcher/api-researcher/critical-requirements.md +13 -0
- package/src/agents/researcher/api-researcher/examples.md +116 -0
- package/src/agents/researcher/api-researcher/intro.md +32 -0
- package/src/agents/researcher/api-researcher/output-format.md +135 -0
- package/src/agents/researcher/api-researcher/workflow.md +261 -0
- package/src/agents/researcher/web-researcher/agent.yaml +10 -0
- package/src/agents/researcher/web-researcher/critical-reminders.md +23 -0
- package/src/agents/researcher/web-researcher/critical-requirements.md +11 -0
- package/src/agents/researcher/web-researcher/examples.md +126 -0
- package/src/agents/researcher/web-researcher/intro.md +31 -0
- package/src/agents/researcher/web-researcher/output-format.md +112 -0
- package/src/agents/researcher/web-researcher/workflow.md +322 -0
- package/src/agents/reviewer/api-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +16 -0
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +13 -0
- package/src/agents/reviewer/api-reviewer/examples.md +54 -0
- package/src/agents/reviewer/api-reviewer/intro.md +22 -0
- package/src/agents/reviewer/api-reviewer/output-format.md +288 -0
- package/src/agents/reviewer/api-reviewer/workflow.md +369 -0
- package/src/agents/reviewer/cli-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +17 -0
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +13 -0
- package/src/agents/reviewer/cli-reviewer/examples.md +83 -0
- package/src/agents/reviewer/cli-reviewer/intro.md +21 -0
- package/src/agents/reviewer/cli-reviewer/output-format.md +330 -0
- package/src/agents/reviewer/cli-reviewer/workflow.md +294 -0
- package/src/agents/reviewer/web-reviewer/agent.yaml +12 -0
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +17 -0
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +11 -0
- package/src/agents/reviewer/web-reviewer/examples.md +79 -0
- package/src/agents/reviewer/web-reviewer/intro.md +20 -0
- package/src/agents/reviewer/web-reviewer/output-format.md +253 -0
- package/src/agents/reviewer/web-reviewer/workflow.md +228 -0
- package/src/agents/tester/cli-tester/agent.yaml +12 -0
- package/src/agents/tester/cli-tester/critical-reminders.md +19 -0
- package/src/agents/tester/cli-tester/critical-requirements.md +17 -0
- package/src/agents/tester/cli-tester/examples.md +80 -0
- package/src/agents/tester/cli-tester/intro.md +19 -0
- package/src/agents/tester/cli-tester/output-format.md +232 -0
- package/src/agents/tester/cli-tester/workflow.md +304 -0
- package/src/agents/tester/web-tester/agent.yaml +12 -0
- package/src/agents/tester/web-tester/critical-reminders.md +15 -0
- package/src/agents/tester/web-tester/critical-requirements.md +11 -0
- package/src/agents/tester/web-tester/examples.md +68 -0
- package/src/agents/tester/web-tester/intro.md +18 -0
- package/src/agents/tester/web-tester/output-format.md +252 -0
- package/src/agents/tester/web-tester/workflow.md +507 -0
- package/src/schemas/agent-frontmatter.schema.json +84 -0
- package/src/schemas/agent.schema.json +93 -0
- package/src/schemas/hooks.schema.json +47 -0
- package/src/schemas/marketplace.schema.json +119 -0
- package/src/schemas/metadata.schema.json +113 -0
- package/src/schemas/plugin.schema.json +130 -0
- package/src/schemas/project-config.schema.json +125 -0
- package/src/schemas/project-source-config.schema.json +81 -0
- package/src/schemas/skill-frontmatter.schema.json +42 -0
- package/src/schemas/skills-matrix.schema.json +467 -0
- package/src/schemas/stack.schema.json +191 -0
- package/src/schemas/stacks.schema.json +111 -0
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
## Output Format
|
|
2
|
+
|
|
3
|
+
<output_format>
|
|
4
|
+
Provide your implementation in this structure:
|
|
5
|
+
|
|
6
|
+
<summary>
|
|
7
|
+
**Task:** [Brief description of what was implemented]
|
|
8
|
+
**Status:** [Complete | Partial | Blocked]
|
|
9
|
+
**Files Changed:** [count] files ([+additions] / [-deletions] lines)
|
|
10
|
+
</summary>
|
|
11
|
+
|
|
12
|
+
<investigation>
|
|
13
|
+
**Files Examined:**
|
|
14
|
+
|
|
15
|
+
| File | Lines | What Was Learned |
|
|
16
|
+
| --------------- | ----- | ---------------------------- |
|
|
17
|
+
| [/path/to/file] | [X-Y] | [Pattern/utility discovered] |
|
|
18
|
+
|
|
19
|
+
**Patterns Identified:**
|
|
20
|
+
|
|
21
|
+
- **Route structure:** [How routes are organized - from /path:lines]
|
|
22
|
+
- **Validation approach:** [How input is validated - from /path:lines]
|
|
23
|
+
- **Error handling:** [How errors are managed - from /path:lines]
|
|
24
|
+
- **Database access:** [Query patterns used - from /path:lines]
|
|
25
|
+
|
|
26
|
+
**Existing Code Reused:**
|
|
27
|
+
|
|
28
|
+
- [Utility/middleware] from [/path] - [Why reused instead of creating new]
|
|
29
|
+
</investigation>
|
|
30
|
+
|
|
31
|
+
<approach>
|
|
32
|
+
**Summary:** [1-2 sentences describing the implementation approach]
|
|
33
|
+
|
|
34
|
+
**Files:**
|
|
35
|
+
|
|
36
|
+
| File | Action | Purpose |
|
|
37
|
+
| --------------- | ------------------ | --------------------- |
|
|
38
|
+
| [/path/to/file] | [created/modified] | [What change and why] |
|
|
39
|
+
|
|
40
|
+
**Key Decisions:**
|
|
41
|
+
|
|
42
|
+
- [Decision]: [Rationale based on existing patterns from /path:lines]
|
|
43
|
+
</approach>
|
|
44
|
+
|
|
45
|
+
<implementation>
|
|
46
|
+
|
|
47
|
+
### [filename.ts]
|
|
48
|
+
|
|
49
|
+
**Location:** `/absolute/path/to/file.ts`
|
|
50
|
+
**Changes:** [Brief description - e.g., "New route handler" or "Added validation"]
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
// [Description of this code block]
|
|
54
|
+
[Your implementation code]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Design Notes:**
|
|
58
|
+
|
|
59
|
+
- [Why this approach was chosen]
|
|
60
|
+
- [How it matches existing patterns]
|
|
61
|
+
|
|
62
|
+
### [filename2.ts]
|
|
63
|
+
|
|
64
|
+
[Same structure...]
|
|
65
|
+
|
|
66
|
+
</implementation>
|
|
67
|
+
|
|
68
|
+
<api_changes>
|
|
69
|
+
|
|
70
|
+
## Endpoints Added/Modified
|
|
71
|
+
|
|
72
|
+
### [METHOD] [/api/path]
|
|
73
|
+
|
|
74
|
+
**Handler:** `/path/to/route.ts:lines`
|
|
75
|
+
**Auth Required:** [Yes - middleware name / No]
|
|
76
|
+
|
|
77
|
+
**Request:**
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
// Path params / Query params / Body schema
|
|
81
|
+
{
|
|
82
|
+
// Schema definition or description
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Success Response:** [status code]
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
{
|
|
90
|
+
// Response shape
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Error Responses:**
|
|
95
|
+
|
|
96
|
+
| Status | Condition | Response Shape |
|
|
97
|
+
| ------ | ------------------ | ------------------------------------ |
|
|
98
|
+
| 400 | Validation failed | `{ error: string, details?: [...] }` |
|
|
99
|
+
| 401 | Not authenticated | `{ error: string }` |
|
|
100
|
+
| 403 | Not authorized | `{ error: string }` |
|
|
101
|
+
| 404 | Resource not found | `{ error: string }` |
|
|
102
|
+
| 500 | Server error | `{ error: string }` |
|
|
103
|
+
|
|
104
|
+
</api_changes>
|
|
105
|
+
|
|
106
|
+
<database_changes>
|
|
107
|
+
|
|
108
|
+
## Schema Changes (if applicable)
|
|
109
|
+
|
|
110
|
+
### Table: [table_name]
|
|
111
|
+
|
|
112
|
+
**File:** `/path/to/schema.ts:lines`
|
|
113
|
+
|
|
114
|
+
**Columns Added/Modified:**
|
|
115
|
+
|
|
116
|
+
| Column | Type | Constraints | Purpose |
|
|
117
|
+
| ------ | ------ | --------------------------------- | ------------ |
|
|
118
|
+
| [name] | [type] | [nullable, default, unique, etc.] | [Why needed] |
|
|
119
|
+
|
|
120
|
+
**Relationships:**
|
|
121
|
+
|
|
122
|
+
- [one-to-many / many-to-many] with [other_table] via [foreign key]
|
|
123
|
+
|
|
124
|
+
**Indexes:**
|
|
125
|
+
|
|
126
|
+
- [Index on columns] for [query optimization reason]
|
|
127
|
+
|
|
128
|
+
## Migrations (if applicable)
|
|
129
|
+
|
|
130
|
+
**File:** `/path/to/migration.sql`
|
|
131
|
+
**Reversible:** [Yes / No - why not]
|
|
132
|
+
|
|
133
|
+
```sql
|
|
134
|
+
-- Migration SQL
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
</database_changes>
|
|
138
|
+
|
|
139
|
+
<security>
|
|
140
|
+
|
|
141
|
+
## Security Verification
|
|
142
|
+
|
|
143
|
+
**Input Validation:**
|
|
144
|
+
|
|
145
|
+
- [ ] All user inputs validated before use
|
|
146
|
+
- [ ] SQL injection prevented (parameterized queries / ORM)
|
|
147
|
+
- [ ] Path traversal prevented (if file operations)
|
|
148
|
+
- [ ] Request size limits enforced
|
|
149
|
+
|
|
150
|
+
**Authentication/Authorization:**
|
|
151
|
+
|
|
152
|
+
- [ ] Auth middleware applied to protected routes
|
|
153
|
+
- [ ] Permission/role checks where needed
|
|
154
|
+
- [ ] Resource ownership verified (user can only access their data)
|
|
155
|
+
|
|
156
|
+
**Sensitive Data:**
|
|
157
|
+
|
|
158
|
+
- [ ] No secrets hardcoded (using env vars)
|
|
159
|
+
- [ ] No PII in logs
|
|
160
|
+
- [ ] Sensitive fields excluded from API responses
|
|
161
|
+
- [ ] Passwords hashed (if auth-related)
|
|
162
|
+
|
|
163
|
+
**Rate Limiting:**
|
|
164
|
+
|
|
165
|
+
- [ ] Rate limiting applied (if public endpoint)
|
|
166
|
+
- [ ] Abuse vectors considered
|
|
167
|
+
|
|
168
|
+
**Notes:**
|
|
169
|
+
|
|
170
|
+
- [Any security decisions or considerations]
|
|
171
|
+
|
|
172
|
+
</security>
|
|
173
|
+
|
|
174
|
+
<error_handling>
|
|
175
|
+
|
|
176
|
+
## Error Handling
|
|
177
|
+
|
|
178
|
+
**Pattern Used:** [Matches pattern from /path:lines]
|
|
179
|
+
|
|
180
|
+
**Errors Handled:**
|
|
181
|
+
|
|
182
|
+
| Error Type | HTTP Status | Handling | Logged? |
|
|
183
|
+
| -------------- | ----------- | ------------------------- | ------- |
|
|
184
|
+
| Validation | 400 | Return validation details | No |
|
|
185
|
+
| Auth | 401/403 | Return generic message | Yes |
|
|
186
|
+
| Not Found | 404 | Return not found message | No |
|
|
187
|
+
| Business Logic | 400/422 | Return specific error | Depends |
|
|
188
|
+
| Database | 500 | Log + generic message | Yes |
|
|
189
|
+
| Unknown | 500 | Log + generic message | Yes |
|
|
190
|
+
|
|
191
|
+
**Logging:**
|
|
192
|
+
|
|
193
|
+
- Errors logged with: [correlation ID, user ID, request path, etc.]
|
|
194
|
+
- Log level: [error / warn depending on type]
|
|
195
|
+
|
|
196
|
+
</error_handling>
|
|
197
|
+
|
|
198
|
+
<tests>
|
|
199
|
+
|
|
200
|
+
### [filename.test.ts]
|
|
201
|
+
|
|
202
|
+
**Location:** `/absolute/path/to/file.test.ts`
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
[Test code covering the implementation]
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Coverage:**
|
|
209
|
+
|
|
210
|
+
- [x] Happy path: [scenario]
|
|
211
|
+
- [x] Validation errors: [scenarios]
|
|
212
|
+
- [x] Auth errors: [scenarios]
|
|
213
|
+
- [x] Edge cases: [scenarios]
|
|
214
|
+
|
|
215
|
+
**Test Commands:**
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# Run tests for this feature
|
|
219
|
+
[specific test command]
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
</tests>
|
|
223
|
+
|
|
224
|
+
<verification>
|
|
225
|
+
|
|
226
|
+
## Success Criteria
|
|
227
|
+
|
|
228
|
+
| Criterion | Status | Evidence |
|
|
229
|
+
| -------------------- | --------- | ---------------------------------------------- |
|
|
230
|
+
| [From specification] | PASS/FAIL | [How verified - test name, curl command, etc.] |
|
|
231
|
+
|
|
232
|
+
## Universal Quality Checks
|
|
233
|
+
|
|
234
|
+
**API Design:**
|
|
235
|
+
|
|
236
|
+
- [ ] RESTful conventions followed (or GraphQL if applicable)
|
|
237
|
+
- [ ] Consistent response format across endpoints
|
|
238
|
+
- [ ] Appropriate HTTP status codes used
|
|
239
|
+
- [ ] API versioning considered (if breaking change)
|
|
240
|
+
|
|
241
|
+
**Database:**
|
|
242
|
+
|
|
243
|
+
- [ ] Queries optimized (no N+1, proper indexes)
|
|
244
|
+
- [ ] Transactions used for multi-step operations
|
|
245
|
+
- [ ] Soft delete checks where applicable
|
|
246
|
+
- [ ] Connection pooling respected
|
|
247
|
+
|
|
248
|
+
**Code Quality:**
|
|
249
|
+
|
|
250
|
+
- [ ] No magic numbers (named constants used)
|
|
251
|
+
- [ ] No `any` types without justification
|
|
252
|
+
- [ ] Follows existing naming conventions
|
|
253
|
+
- [ ] Follows existing file/folder structure
|
|
254
|
+
- [ ] No hardcoded config values (uses env/config)
|
|
255
|
+
|
|
256
|
+
**Observability:**
|
|
257
|
+
|
|
258
|
+
- [ ] Appropriate logging added
|
|
259
|
+
- [ ] Errors include context for debugging
|
|
260
|
+
- [ ] Metrics/tracing hooks (if applicable)
|
|
261
|
+
|
|
262
|
+
## Build & Test Status
|
|
263
|
+
|
|
264
|
+
- [ ] Existing tests pass
|
|
265
|
+
- [ ] New tests pass (if added)
|
|
266
|
+
- [ ] Build succeeds
|
|
267
|
+
- [ ] No type errors
|
|
268
|
+
- [ ] No lint errors
|
|
269
|
+
- [ ] Migrations run successfully (if applicable)
|
|
270
|
+
|
|
271
|
+
</verification>
|
|
272
|
+
|
|
273
|
+
<notes>
|
|
274
|
+
|
|
275
|
+
## For Reviewer
|
|
276
|
+
|
|
277
|
+
- [Areas to focus review on - e.g., "The permission check logic"]
|
|
278
|
+
- [Decisions that may need discussion]
|
|
279
|
+
- [Alternative approaches considered and why rejected]
|
|
280
|
+
|
|
281
|
+
## Scope Control
|
|
282
|
+
|
|
283
|
+
**Added only what was specified:**
|
|
284
|
+
|
|
285
|
+
- [Feature implemented as requested]
|
|
286
|
+
|
|
287
|
+
**Did NOT add:**
|
|
288
|
+
|
|
289
|
+
- [Unrequested feature avoided - why it was tempting but wrong]
|
|
290
|
+
|
|
291
|
+
## Known Limitations
|
|
292
|
+
|
|
293
|
+
- [Any scope reductions from spec]
|
|
294
|
+
- [Technical debt incurred and why]
|
|
295
|
+
- [Performance considerations for high load]
|
|
296
|
+
|
|
297
|
+
## Dependencies
|
|
298
|
+
|
|
299
|
+
- [New packages added: none / list with justification]
|
|
300
|
+
- [Breaking changes: none / description]
|
|
301
|
+
- [Migration required: yes/no]
|
|
302
|
+
|
|
303
|
+
</notes>
|
|
304
|
+
|
|
305
|
+
</output_format>
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## Section Guidelines
|
|
310
|
+
|
|
311
|
+
### When to Include Each Section
|
|
312
|
+
|
|
313
|
+
| Section | When Required |
|
|
314
|
+
| -------------------- | --------------------------------- |
|
|
315
|
+
| `<summary>` | Always |
|
|
316
|
+
| `<investigation>` | Always - proves research was done |
|
|
317
|
+
| `<approach>` | Always - shows planning |
|
|
318
|
+
| `<implementation>` | Always - the actual code |
|
|
319
|
+
| `<api_changes>` | When API endpoints added/modified |
|
|
320
|
+
| `<database_changes>` | When schema/migrations added |
|
|
321
|
+
| `<security>` | Always for backend work |
|
|
322
|
+
| `<error_handling>` | Always - shows error strategy |
|
|
323
|
+
| `<tests>` | When tests are part of the task |
|
|
324
|
+
| `<verification>` | Always - proves completion |
|
|
325
|
+
| `<notes>` | When there's context for reviewer |
|
|
326
|
+
|
|
327
|
+
### Security Checks (Framework-Agnostic)
|
|
328
|
+
|
|
329
|
+
These apply regardless of framework:
|
|
330
|
+
|
|
331
|
+
- **Input validation:** Never trust user input - validate everything
|
|
332
|
+
- **SQL injection:** Use parameterized queries or ORM, never string concatenation
|
|
333
|
+
- **Auth checks:** Verify identity AND authorization on every protected route
|
|
334
|
+
- **Secrets:** Environment variables only, never in code
|
|
335
|
+
- **Logging:** Never log passwords, tokens, or PII
|
|
336
|
+
|
|
337
|
+
### Database Checks (ORM-Agnostic)
|
|
338
|
+
|
|
339
|
+
- **Transactions:** Multi-step operations must be atomic
|
|
340
|
+
- **N+1 queries:** Avoid fetching related data in loops
|
|
341
|
+
- **Indexes:** Add for frequently queried columns
|
|
342
|
+
- **Soft delete:** Check for deleted records if pattern exists
|
|
343
|
+
- **Connection handling:** Don't leak connections
|
|
344
|
+
|
|
345
|
+
### Error Handling (Framework-Agnostic)
|
|
346
|
+
|
|
347
|
+
Every error needs:
|
|
348
|
+
|
|
349
|
+
1. **Appropriate status code:** 4xx for client errors, 5xx for server
|
|
350
|
+
2. **Safe message:** Don't expose internals to clients
|
|
351
|
+
3. **Logging:** Log enough to debug, not too much PII
|
|
352
|
+
4. **Consistency:** Same error format across all endpoints
|
|
353
|
+
|
|
354
|
+
### API Design (Framework-Agnostic)
|
|
355
|
+
|
|
356
|
+
- **Idempotency:** PUT/DELETE should be idempotent
|
|
357
|
+
- **Pagination:** List endpoints should paginate
|
|
358
|
+
- **Filtering:** Support common filter patterns
|
|
359
|
+
- **Versioning:** Consider when making breaking changes
|