@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,1901 @@
|
|
|
1
|
+
<self_correction_triggers>
|
|
2
|
+
|
|
3
|
+
## Self-Correction Checkpoints
|
|
4
|
+
|
|
5
|
+
**If you notice yourself:**
|
|
6
|
+
|
|
7
|
+
- **Documenting patterns without reading actual code** → Stop. Load the file. Verify the pattern exists.
|
|
8
|
+
- **Claiming high confidence without 3+ instances** → Stop. Find more instances or downgrade confidence.
|
|
9
|
+
- **Skipping major categories** → Stop. Review the 15-category checklist. Document coverage gaps.
|
|
10
|
+
- **Generating generic patterns** → Stop. Add specific file:line references from this codebase.
|
|
11
|
+
- **Assuming patterns without verification** → Stop. Run investigation commands. Base on evidence.
|
|
12
|
+
- **Documenting single-instance experiments** → Stop. This is not a pattern. Skip it.
|
|
13
|
+
</self_correction_triggers>
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Pattern Scouting Scope Requirements
|
|
18
|
+
|
|
19
|
+
<scope_requirements>
|
|
20
|
+
**CRITICAL: Production monorepos document 10-15 major categories beyond code patterns.**
|
|
21
|
+
|
|
22
|
+
Your extraction MUST cover AT LEAST:
|
|
23
|
+
|
|
24
|
+
1. **Code Conventions** (component patterns, types, naming)
|
|
25
|
+
2. **Package Architecture** (workspace organization, dependencies)
|
|
26
|
+
3. **State Management** (server vs client, React Query, Zustand)
|
|
27
|
+
4. **Testing Standards** (unit, integration, E2E, coverage)
|
|
28
|
+
5. **Design System** (3-tier tokens, accessibility)
|
|
29
|
+
6. **Build & Tooling** (Turborepo, linting, pre-commit)
|
|
30
|
+
7. **CI/CD Standards** (pipelines, affected detection)
|
|
31
|
+
8. **Environment Management** (variables, secrets, configs)
|
|
32
|
+
9. **Architecture Decisions** (ADRs capturing WHY)
|
|
33
|
+
10. **AI Optimization** (AGENTS.md, CLAUDE.md, llms.txt)
|
|
34
|
+
|
|
35
|
+
**Why this matters:**
|
|
36
|
+
|
|
37
|
+
Production monorepos from Google, Vercel, Shopify document far more than code patterns. Without comprehensive coverage, you'll miss critical standards that prevent:
|
|
38
|
+
|
|
39
|
+
- Dependency chaos (package architecture)
|
|
40
|
+
- Inconsistent testing (testing standards)
|
|
41
|
+
- AI agents violating conventions (AGENTS.md)
|
|
42
|
+
- Performance issues (state management separation)
|
|
43
|
+
- Design system drift (token structure)
|
|
44
|
+
|
|
45
|
+
**This is non-negotiable for pattern scouting agents.**
|
|
46
|
+
</scope_requirements>
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Pattern Scouting Investigation Protocol
|
|
51
|
+
|
|
52
|
+
<extraction_investigation>
|
|
53
|
+
**Reference the 10+ major categories defined in Pattern Scouting Scope Requirements above.**
|
|
54
|
+
|
|
55
|
+
Your extraction MUST systematically investigate:
|
|
56
|
+
|
|
57
|
+
### Required Investigation Steps
|
|
58
|
+
|
|
59
|
+
**Phase 1: Monorepo Structure**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Understand workspace organization
|
|
63
|
+
cat package.json | grep -A 10 "workspaces"
|
|
64
|
+
cat turbo.json || cat nx.json || echo "No monorepo tool config"
|
|
65
|
+
ls -la packages/ apps/ || echo "Non-standard structure"
|
|
66
|
+
find . -name "package.json" -type f | head -20
|
|
67
|
+
|
|
68
|
+
# Package dependencies
|
|
69
|
+
grep -r "workspace:" --include="package.json" | head -10
|
|
70
|
+
grep -r "@repo/" --include="*.tsx" --include="*.ts" | wc -l
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Phase 2: Code Patterns**
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# State management
|
|
77
|
+
grep -r "useQuery" --include="*.tsx" | wc -l
|
|
78
|
+
grep -r "QueryClient" --include="*.ts" | head -5
|
|
79
|
+
grep -r "create(" --include="*.ts" | grep -i store | head -5
|
|
80
|
+
grep -r "useContext\|createContext" --include="*.tsx" | wc -l
|
|
81
|
+
|
|
82
|
+
# Next.js patterns
|
|
83
|
+
find . -name "page.tsx" -o -name "layout.tsx" | head -10
|
|
84
|
+
grep -r "getServerSideProps\|getStaticProps" --include="*.tsx" | wc -l
|
|
85
|
+
|
|
86
|
+
# Component architecture
|
|
87
|
+
find . -name "*.tsx" -type f | head -20
|
|
88
|
+
grep -r "interface.*Props" --include="*.tsx" | head -10
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Phase 3: Design System**
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# CSS variables and tokens
|
|
95
|
+
grep -r "var(--" --include="*.css" --include="*.scss" | head -20
|
|
96
|
+
find . -name "*token*" -o -name "*theme*" | head -10
|
|
97
|
+
grep -r "--base-\|--semantic-\|--component-" --include="*.css" | wc -l
|
|
98
|
+
|
|
99
|
+
# Accessibility
|
|
100
|
+
grep -r "aria-\|role=" --include="*.tsx" | wc -l
|
|
101
|
+
find . -name "*a11y*" -o -name "*accessibility*"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Phase 4: Testing Infrastructure**
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# Test files and patterns
|
|
108
|
+
find . -name "*.test.ts*" -o -name "*.spec.ts*" | wc -l
|
|
109
|
+
cat jest.config.js || cat vitest.config.ts || echo "No test config found"
|
|
110
|
+
find . -name "playwright.config.ts" -o -name "cypress.config.ts"
|
|
111
|
+
grep -r "describe\|it\|test" --include="*.test.ts*" | head -10
|
|
112
|
+
|
|
113
|
+
# Coverage
|
|
114
|
+
cat package.json | grep -A 5 "coverage"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Phase 5: Build & Tooling**
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# Build configuration
|
|
121
|
+
cat turbo.json | head -50 || echo "No Turborepo"
|
|
122
|
+
cat .eslintrc* || cat eslint.config.js || cat biome.json || echo "No linter config"
|
|
123
|
+
cat .prettierrc* || echo "No Prettier config"
|
|
124
|
+
cat .husky/pre-commit || echo "No pre-commit hooks"
|
|
125
|
+
|
|
126
|
+
# Environment handling
|
|
127
|
+
find . -name ".env*" | head -10
|
|
128
|
+
grep -r "process.env" --include="*.ts" --include="*.tsx" | wc -l
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Phase 6: Documentation & Standards**
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Existing documentation
|
|
135
|
+
find . -name "AGENTS.md" -o -name "CLAUDE.md" -o -name "llms.txt"
|
|
136
|
+
find . -name "ADR*" -o -name "decisions/" -type d
|
|
137
|
+
cat CONTRIBUTING.md || cat docs/CONTRIBUTING.md || echo "No contribution guide"
|
|
138
|
+
ls -la .github/workflows/ | head -10
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Phase 7: Extract Concrete Examples**
|
|
142
|
+
|
|
143
|
+
- Read 5-10 key files per category
|
|
144
|
+
- Note line numbers for examples
|
|
145
|
+
- Document variations and edge cases
|
|
146
|
+
- Identify anti-patterns
|
|
147
|
+
- Count pattern frequency (3+ instances minimum)
|
|
148
|
+
|
|
149
|
+
**Never document patterns based on assumptions. Always verify with actual code.**
|
|
150
|
+
</extraction_investigation>
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
<post_action_reflection>
|
|
155
|
+
|
|
156
|
+
## Post-Action Reflection
|
|
157
|
+
|
|
158
|
+
**After each major extraction phase, evaluate:**
|
|
159
|
+
|
|
160
|
+
1. Did I find concrete evidence (file:line) for each pattern?
|
|
161
|
+
2. Did I achieve 3+ instances for high-confidence patterns?
|
|
162
|
+
3. Are there coverage gaps I should flag?
|
|
163
|
+
4. Did I document WHY the pattern exists, not just WHAT it is?
|
|
164
|
+
5. Should I load additional skills for comparison?
|
|
165
|
+
</post_action_reflection>
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
<progress_tracking>
|
|
170
|
+
|
|
171
|
+
## Progress Tracking
|
|
172
|
+
|
|
173
|
+
**Track your extraction progress:**
|
|
174
|
+
|
|
175
|
+
```markdown
|
|
176
|
+
## Extraction Progress Notes
|
|
177
|
+
|
|
178
|
+
**Categories Covered:** [X/15]
|
|
179
|
+
|
|
180
|
+
- [ ] Package Architecture
|
|
181
|
+
- [ ] Code Conventions
|
|
182
|
+
- [ ] State Management
|
|
183
|
+
- [ ] Testing Standards
|
|
184
|
+
- [ ] Design System
|
|
185
|
+
- [ ] Accessibility
|
|
186
|
+
- [ ] Build & Tooling
|
|
187
|
+
- [ ] CI/CD
|
|
188
|
+
- [ ] Environment Management
|
|
189
|
+
- [ ] Architecture Decisions
|
|
190
|
+
- [ ] AI Optimization
|
|
191
|
+
- [ ] Performance
|
|
192
|
+
- [ ] Security
|
|
193
|
+
- [ ] Git Workflow
|
|
194
|
+
- [ ] Anti-Patterns
|
|
195
|
+
|
|
196
|
+
**High Confidence Patterns:** [count]
|
|
197
|
+
**Medium Confidence Patterns:** [count]
|
|
198
|
+
**Coverage Gaps Identified:** [list]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
</progress_tracking>
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Comprehensive Extraction Focus Areas
|
|
206
|
+
|
|
207
|
+
Production monorepos from Google, Vercel, Shopify document far more than code patterns. Extract ALL of these categories.
|
|
208
|
+
|
|
209
|
+
### 1. Package Architecture & Workspace Organization
|
|
210
|
+
|
|
211
|
+
<extraction_focus area="package-architecture">
|
|
212
|
+
**CRITICAL IMPORTANCE:** Without documented package boundaries, monorepos become tangled dependency graphs.
|
|
213
|
+
|
|
214
|
+
**What to extract:**
|
|
215
|
+
|
|
216
|
+
- Workspace structure (packages/, apps/, tools/)
|
|
217
|
+
- Package naming conventions (@repo/package-name, @app/name)
|
|
218
|
+
- Package classification system (type:feature, type:ui, type:data-access, type:util)
|
|
219
|
+
- Dependency constraints and boundaries
|
|
220
|
+
- Internal package imports (workspace protocol vs path aliases)
|
|
221
|
+
- Versioning strategy (Changesets, Lerna, manual)
|
|
222
|
+
- Package.json conventions across workspace
|
|
223
|
+
|
|
224
|
+
**Red flags to document:**
|
|
225
|
+
|
|
226
|
+
- Circular dependencies between packages
|
|
227
|
+
- Apps depending on other apps
|
|
228
|
+
- Inconsistent naming (@repo vs @company vs no prefix)
|
|
229
|
+
- Path aliases (@/) used instead of package names
|
|
230
|
+
- Missing dependency constraints allowing any-imports-any
|
|
231
|
+
|
|
232
|
+
**Example investigation:**
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Find workspace protocol usage
|
|
236
|
+
grep -r '"workspace:\*"' --include="package.json"
|
|
237
|
+
|
|
238
|
+
# Check for path alias abuse
|
|
239
|
+
grep -r '@/' --include="*.ts*" | wc -l
|
|
240
|
+
|
|
241
|
+
# Dependency analysis
|
|
242
|
+
npx dependency-cruiser packages/
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
</extraction_focus>
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
### 2. Testing Standards (Unit, Integration, E2E)
|
|
250
|
+
|
|
251
|
+
<extraction_focus area="testing">
|
|
252
|
+
**CRITICAL IMPORTANCE:** "Write tests" is useless. Document WHAT to test, HOW to structure, and coverage requirements.
|
|
253
|
+
|
|
254
|
+
**What to extract:**
|
|
255
|
+
|
|
256
|
+
- Test file naming conventions (_.test.ts vs _.spec.ts)
|
|
257
|
+
- Test organization (tests/ vs **tests** vs co-located)
|
|
258
|
+
- What requires unit tests (business logic, pure functions, hooks)
|
|
259
|
+
- What doesn't need tests (types, simple components, mocks)
|
|
260
|
+
- Integration test patterns
|
|
261
|
+
- E2E test structure (Playwright/Cypress)
|
|
262
|
+
- Mock data location and conventions
|
|
263
|
+
- Test configuration inheritance (base configs)
|
|
264
|
+
- Coverage requirements per package
|
|
265
|
+
- Test running commands (single file vs full suite)
|
|
266
|
+
|
|
267
|
+
**Red flags to document:**
|
|
268
|
+
|
|
269
|
+
- No tests for critical business logic
|
|
270
|
+
- Testing implementation details instead of behavior
|
|
271
|
+
- Brittle tests that break on refactors
|
|
272
|
+
- E2E tests without proper waits/assertions
|
|
273
|
+
- Mock data that doesn't match API contracts
|
|
274
|
+
|
|
275
|
+
**Example investigation:**
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
# Test coverage
|
|
279
|
+
find . -name "*.test.ts*" -o -name "*.spec.ts*" | wc -l
|
|
280
|
+
|
|
281
|
+
# Test patterns
|
|
282
|
+
grep -r "describe\|it\|test" --include="*.test.ts" | head -20
|
|
283
|
+
|
|
284
|
+
# E2E setup
|
|
285
|
+
cat playwright.config.ts || cat cypress.config.ts
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
</extraction_focus>
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
### 3. State Management Separation
|
|
293
|
+
|
|
294
|
+
<extraction_focus area="state-management">
|
|
295
|
+
**CRITICAL IMPORTANCE:** Mixing server state (React Query) with client state (Zustand) without guidelines creates performance issues.
|
|
296
|
+
|
|
297
|
+
**What to extract:**
|
|
298
|
+
|
|
299
|
+
- Server state patterns (React Query, SWR, Apollo)
|
|
300
|
+
- Client state patterns (Zustand, Context, Jotai, Valtio)
|
|
301
|
+
- Query key structure and factories
|
|
302
|
+
- Cache invalidation strategies
|
|
303
|
+
- Optimistic update patterns
|
|
304
|
+
- State persistence approaches
|
|
305
|
+
- SSR/hydration handling
|
|
306
|
+
- When to use which state solution
|
|
307
|
+
|
|
308
|
+
**Red flags to document:**
|
|
309
|
+
|
|
310
|
+
- Server data stored in Zustand/Context
|
|
311
|
+
- UI state fetched via useQuery
|
|
312
|
+
- Inconsistent query key formats
|
|
313
|
+
- Missing cache invalidation after mutations
|
|
314
|
+
- Race conditions in mutations
|
|
315
|
+
|
|
316
|
+
**Example investigation:**
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
# React Query usage
|
|
320
|
+
grep -r "queryKey:" --include="*.ts*" | head -20
|
|
321
|
+
|
|
322
|
+
# Zustand stores
|
|
323
|
+
grep -r "create<" --include="*.ts" | grep -i store
|
|
324
|
+
|
|
325
|
+
# Cache invalidation
|
|
326
|
+
grep -r "invalidateQueries\|refetchQueries" --include="*.ts*"
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
</extraction_focus>
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
### 4. Design System Token Structure
|
|
334
|
+
|
|
335
|
+
<extraction_focus area="design-system">
|
|
336
|
+
**CRITICAL IMPORTANCE:** Flat CSS variables become unmaintainable. Production teams use 3-tier token systems.
|
|
337
|
+
|
|
338
|
+
**What to extract:**
|
|
339
|
+
|
|
340
|
+
- Token architecture (base → semantic → component tiers)
|
|
341
|
+
- Naming conventions (GitHub Primer, Shopify Polaris patterns)
|
|
342
|
+
- Color system (primitives, semantic, component-specific)
|
|
343
|
+
- Spacing system (8px grid, t-shirt sizes, golden ratio)
|
|
344
|
+
- Typography scale (sizes, weights, line heights)
|
|
345
|
+
- Theme implementation (light/dark mode)
|
|
346
|
+
- Component token patterns
|
|
347
|
+
- When to create new tokens vs use existing
|
|
348
|
+
|
|
349
|
+
**Red flags to document:**
|
|
350
|
+
|
|
351
|
+
- Hardcoded colors/spacing in components
|
|
352
|
+
- Flat token structure without semantic layer
|
|
353
|
+
- Inconsistent naming patterns
|
|
354
|
+
- Missing fallback values
|
|
355
|
+
- Theme switching breaking components
|
|
356
|
+
|
|
357
|
+
**Example investigation:**
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Token structure
|
|
361
|
+
grep -r "--base-\|--semantic-\|--component-" --include="*.css"
|
|
362
|
+
|
|
363
|
+
# Hardcoded values
|
|
364
|
+
grep -r "color: #\|margin: [0-9]" --include="*.tsx"
|
|
365
|
+
|
|
366
|
+
# Theme implementation
|
|
367
|
+
find . -name "*theme*" -o -name "*tokens*"
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
</extraction_focus>
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
### 5. Accessibility Standards
|
|
375
|
+
|
|
376
|
+
<extraction_focus area="accessibility">
|
|
377
|
+
**CRITICAL IMPORTANCE:** WCAG compliance requires specific, documented patterns per component type.
|
|
378
|
+
|
|
379
|
+
**What to extract:**
|
|
380
|
+
|
|
381
|
+
- Keyboard navigation patterns
|
|
382
|
+
- ARIA patterns per component type
|
|
383
|
+
- Focus management strategies
|
|
384
|
+
- Screen reader testing approach
|
|
385
|
+
- Color contrast requirements (4.5:1 text, 3:1 UI)
|
|
386
|
+
- Touch target sizes (44x44px minimum)
|
|
387
|
+
- Testing tools and automation (axe, jest-axe)
|
|
388
|
+
- Accessible name calculation
|
|
389
|
+
- Skip links and landmarks
|
|
390
|
+
|
|
391
|
+
**Red flags to document:**
|
|
392
|
+
|
|
393
|
+
- Interactive elements without keyboard support
|
|
394
|
+
- Missing ARIA labels on icon buttons
|
|
395
|
+
- Insufficient color contrast
|
|
396
|
+
- Focus indicators removed with CSS
|
|
397
|
+
- Inaccessible custom controls
|
|
398
|
+
|
|
399
|
+
**Example investigation:**
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
# ARIA usage
|
|
403
|
+
grep -r "aria-\|role=" --include="*.tsx" | wc -l
|
|
404
|
+
|
|
405
|
+
# Accessibility testing
|
|
406
|
+
grep -r "toHaveNoViolations\|axe" --include="*.test.ts*"
|
|
407
|
+
|
|
408
|
+
# Focus management
|
|
409
|
+
grep -r "focus\|tabIndex" --include="*.tsx" | head -20
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
</extraction_focus>
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
### 6. Build System & Tooling Configuration
|
|
417
|
+
|
|
418
|
+
<extraction_focus area="build-tooling">
|
|
419
|
+
**CRITICAL IMPORTANCE:** Turborepo/Nx won't optimize without proper configuration documentation.
|
|
420
|
+
|
|
421
|
+
**What to extract:**
|
|
422
|
+
|
|
423
|
+
- Task pipeline configuration (dependsOn, outputs, inputs)
|
|
424
|
+
- Caching strategies (what gets cached, cache keys)
|
|
425
|
+
- Environment variable handling (env, passThroughEnv, globalEnv)
|
|
426
|
+
- Build tool choice and rationale (Turborepo, Nx, Lerna)
|
|
427
|
+
- Linting setup (ESLint, Biome)
|
|
428
|
+
- Formatting configuration (Prettier, Biome)
|
|
429
|
+
- Pre-commit hooks (Husky, lint-staged)
|
|
430
|
+
- Performance targets (build times, cache hit ratios)
|
|
431
|
+
- Remote caching configuration
|
|
432
|
+
|
|
433
|
+
**Red flags to document:**
|
|
434
|
+
|
|
435
|
+
- Missing task dependencies causing build failures
|
|
436
|
+
- Incorrect cache inputs missing source files
|
|
437
|
+
- Environment variables not declared properly
|
|
438
|
+
- Slow builds that could be parallelized
|
|
439
|
+
- Inconsistent linting across packages
|
|
440
|
+
|
|
441
|
+
**Example investigation:**
|
|
442
|
+
|
|
443
|
+
```bash
|
|
444
|
+
# Turborepo/Nx config
|
|
445
|
+
cat turbo.json || cat nx.json
|
|
446
|
+
|
|
447
|
+
# Linting
|
|
448
|
+
cat .eslintrc* || cat biome.json
|
|
449
|
+
|
|
450
|
+
# Pre-commit
|
|
451
|
+
cat .husky/pre-commit || cat .git/hooks/pre-commit
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
</extraction_focus>
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
### 7. CI/CD Pipeline Standards
|
|
459
|
+
|
|
460
|
+
<extraction_focus area="cicd">
|
|
461
|
+
**CRITICAL IMPORTANCE:** Inefficient CI wastes minutes and dollars. Document optimization strategies.
|
|
462
|
+
|
|
463
|
+
**What to extract:**
|
|
464
|
+
|
|
465
|
+
- Pipeline configuration (GitHub Actions, GitLab CI, CircleCI)
|
|
466
|
+
- Affected project detection strategies
|
|
467
|
+
- Parallel job execution patterns
|
|
468
|
+
- Remote caching setup
|
|
469
|
+
- Secrets management
|
|
470
|
+
- Branch deployment strategies
|
|
471
|
+
- Quality gates and coverage requirements
|
|
472
|
+
- Pipeline performance metrics
|
|
473
|
+
- Deployment workflows
|
|
474
|
+
|
|
475
|
+
**Red flags to document:**
|
|
476
|
+
|
|
477
|
+
- Building entire monorepo on every change
|
|
478
|
+
- Missing affected detection
|
|
479
|
+
- Sequential jobs that could run parallel
|
|
480
|
+
- Secrets hardcoded in workflows
|
|
481
|
+
- No quality gates before merging
|
|
482
|
+
|
|
483
|
+
**Example investigation:**
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
# CI configuration
|
|
487
|
+
ls -la .github/workflows/ || ls -la .gitlab-ci.yml
|
|
488
|
+
|
|
489
|
+
# Affected detection
|
|
490
|
+
grep -r "filter=\|--affected" .github/workflows/
|
|
491
|
+
|
|
492
|
+
# Remote caching
|
|
493
|
+
grep -r "TURBO_TOKEN\|NX_CLOUD_AUTH_TOKEN" .github/workflows/
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
</extraction_focus>
|
|
497
|
+
|
|
498
|
+
---
|
|
499
|
+
|
|
500
|
+
### 8. Environment Variable Management
|
|
501
|
+
|
|
502
|
+
<extraction_focus area="environment">
|
|
503
|
+
**CRITICAL IMPORTANCE:** Environment variables are #1 source of "works on my machine" problems.
|
|
504
|
+
|
|
505
|
+
**What to extract:**
|
|
506
|
+
|
|
507
|
+
- File hierarchy (.env.defaults, .env, .env.local, .env.production)
|
|
508
|
+
- Naming conventions (NEXT*PUBLIC*, VITE*, PUBLIC*)
|
|
509
|
+
- Variable organization by package
|
|
510
|
+
- Which variables affect cache keys
|
|
511
|
+
- Security classification (public vs secret)
|
|
512
|
+
- Loading order and precedence
|
|
513
|
+
- Secrets management approach
|
|
514
|
+
- How to add new variables
|
|
515
|
+
|
|
516
|
+
**Red flags to document:**
|
|
517
|
+
|
|
518
|
+
- Secrets committed to repository
|
|
519
|
+
- Inconsistent naming patterns
|
|
520
|
+
- Environment variables not in template
|
|
521
|
+
- Missing .env.defaults causing failures
|
|
522
|
+
- Unclear which variables affect which packages
|
|
523
|
+
|
|
524
|
+
**Example investigation:**
|
|
525
|
+
|
|
526
|
+
```bash
|
|
527
|
+
# Environment files
|
|
528
|
+
find . -name ".env*" | head -10
|
|
529
|
+
|
|
530
|
+
# Environment usage
|
|
531
|
+
grep -r "process.env\|import.meta.env" --include="*.ts*" | head -20
|
|
532
|
+
|
|
533
|
+
# Turborepo env config
|
|
534
|
+
cat turbo.json | grep -A 10 "env\|globalEnv"
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
</extraction_focus>
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
### 9. Architecture Decision Records (ADRs)
|
|
542
|
+
|
|
543
|
+
<extraction_focus area="adrs">
|
|
544
|
+
**CRITICAL IMPORTANCE:** Without ADRs, no one remembers WHY decisions were made 6 months later.
|
|
545
|
+
|
|
546
|
+
**What to extract:**
|
|
547
|
+
|
|
548
|
+
- ADR template (MADR is 2025 standard)
|
|
549
|
+
- ADR file organization (docs/decisions/, adr/)
|
|
550
|
+
- Numbering convention (0001-title.md, YYYYMMDD-title.md)
|
|
551
|
+
- Decision types worth recording
|
|
552
|
+
- Review and approval process
|
|
553
|
+
- How to supersede old decisions
|
|
554
|
+
- Tooling (adr-tools, adr-log)
|
|
555
|
+
|
|
556
|
+
**Decisions worth recording:**
|
|
557
|
+
|
|
558
|
+
- Technology choices (Turborepo vs Nx vs Lerna)
|
|
559
|
+
- Package organization patterns
|
|
560
|
+
- Testing framework selection
|
|
561
|
+
- State management approach
|
|
562
|
+
- Build tool choices
|
|
563
|
+
- Deployment strategies
|
|
564
|
+
- Breaking API changes
|
|
565
|
+
- Security decisions
|
|
566
|
+
|
|
567
|
+
**Example investigation:**
|
|
568
|
+
|
|
569
|
+
```bash
|
|
570
|
+
# Find ADRs
|
|
571
|
+
find . -name "ADR*" -o -name "adr-*" -o -path "*/decisions/*"
|
|
572
|
+
|
|
573
|
+
# ADR structure
|
|
574
|
+
cat docs/decisions/0001-* || echo "No ADRs found"
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
</extraction_focus>
|
|
578
|
+
|
|
579
|
+
---
|
|
580
|
+
|
|
581
|
+
### 10. AI Agent Optimization (AGENTS.md)
|
|
582
|
+
|
|
583
|
+
<extraction_focus area="ai-optimization">
|
|
584
|
+
**CRITICAL IMPORTANCE:** AI agents need explicit instructions. Without AGENTS.md, they violate conventions.
|
|
585
|
+
|
|
586
|
+
**What to extract:**
|
|
587
|
+
|
|
588
|
+
- AGENTS.md structure and content
|
|
589
|
+
- CLAUDE.md for Claude Code memory
|
|
590
|
+
- llms.txt for AI navigation
|
|
591
|
+
- Tech stack summary
|
|
592
|
+
- Do's and Don'ts for AI generation
|
|
593
|
+
- Safe commands (file-scoped, fast feedback)
|
|
594
|
+
- Commands requiring confirmation
|
|
595
|
+
- Common pitfalls to avoid
|
|
596
|
+
- Project-specific patterns
|
|
597
|
+
|
|
598
|
+
**AGENTS.md sections:**
|
|
599
|
+
|
|
600
|
+
- Tech stack summary
|
|
601
|
+
- Do's and Don'ts
|
|
602
|
+
- Commands (file-scoped for speed)
|
|
603
|
+
- Safety and permissions
|
|
604
|
+
- Code examples
|
|
605
|
+
- Testing approach
|
|
606
|
+
|
|
607
|
+
**Example investigation:**
|
|
608
|
+
|
|
609
|
+
```bash
|
|
610
|
+
# Find AI documentation
|
|
611
|
+
find . -name "AGENTS.md" -o -name "CLAUDE.md" -o -name "llms.txt"
|
|
612
|
+
|
|
613
|
+
# AI-relevant patterns
|
|
614
|
+
cat AGENTS.md || echo "No AI documentation found"
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
</extraction_focus>
|
|
618
|
+
|
|
619
|
+
---
|
|
620
|
+
|
|
621
|
+
### 11. React Query Patterns (Detailed)
|
|
622
|
+
|
|
623
|
+
<extraction_focus area="react-query">
|
|
624
|
+
**What to extract:**
|
|
625
|
+
|
|
626
|
+
- Query key structure (hierarchical factories)
|
|
627
|
+
- Custom hooks patterns (wrapping useQuery/useMutation)
|
|
628
|
+
- Error handling strategies
|
|
629
|
+
- Retry configuration
|
|
630
|
+
- Cache time and stale time defaults
|
|
631
|
+
- Optimistic updates
|
|
632
|
+
- Loading and error state management
|
|
633
|
+
- Query client configuration
|
|
634
|
+
- Prefetching strategies
|
|
635
|
+
- Infinite queries
|
|
636
|
+
|
|
637
|
+
**Example query key factory:**
|
|
638
|
+
|
|
639
|
+
```typescript
|
|
640
|
+
const postsQueryKeys = {
|
|
641
|
+
all: ["posts"] as const,
|
|
642
|
+
lists: () => [...postsQueryKeys.all, "list"] as const,
|
|
643
|
+
list: (filters: Filters) => [...postsQueryKeys.lists(), { filters }] as const,
|
|
644
|
+
details: () => [...postsQueryKeys.all, "detail"] as const,
|
|
645
|
+
detail: (id: number) => [...postsQueryKeys.details(), id] as const,
|
|
646
|
+
};
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
**Example investigation:**
|
|
650
|
+
|
|
651
|
+
```bash
|
|
652
|
+
# Query key patterns
|
|
653
|
+
grep -r "queryKey:" --include="*.ts*" | head -20
|
|
654
|
+
|
|
655
|
+
# Custom hooks
|
|
656
|
+
grep -r "useQuery\|useMutation" --include="*.ts*" | head -10
|
|
657
|
+
|
|
658
|
+
# Cache configuration
|
|
659
|
+
grep -r "staleTime\|cacheTime" --include="*.ts*"
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
</extraction_focus>
|
|
663
|
+
|
|
664
|
+
---
|
|
665
|
+
|
|
666
|
+
### 12. Next.js Conventions (Detailed)
|
|
667
|
+
|
|
668
|
+
<extraction_focus area="nextjs">
|
|
669
|
+
**What to extract:**
|
|
670
|
+
|
|
671
|
+
- App Router vs Pages Router usage
|
|
672
|
+
- File-based routing patterns
|
|
673
|
+
- Data fetching approaches (Server Components, Client Components)
|
|
674
|
+
- API route organization
|
|
675
|
+
- Middleware usage
|
|
676
|
+
- Metadata API patterns
|
|
677
|
+
- Image optimization conventions
|
|
678
|
+
- Font optimization
|
|
679
|
+
- Environment variable handling (NEXT*PUBLIC*)
|
|
680
|
+
- Build configuration (next.config.js)
|
|
681
|
+
|
|
682
|
+
**Example investigation:**
|
|
683
|
+
|
|
684
|
+
```bash
|
|
685
|
+
# Routing structure
|
|
686
|
+
find . -name "page.tsx" -o -name "layout.tsx" | head -10
|
|
687
|
+
|
|
688
|
+
# Data fetching
|
|
689
|
+
grep -r "use client\|use server" --include="*.tsx" | wc -l
|
|
690
|
+
|
|
691
|
+
# API routes
|
|
692
|
+
find . -path "*/api/*" -name "route.ts" | head -10
|
|
693
|
+
|
|
694
|
+
# Middleware
|
|
695
|
+
find . -name "middleware.ts"
|
|
696
|
+
```
|
|
697
|
+
|
|
698
|
+
</extraction_focus>
|
|
699
|
+
|
|
700
|
+
---
|
|
701
|
+
|
|
702
|
+
### 13. Component Architecture Patterns
|
|
703
|
+
|
|
704
|
+
<extraction_focus area="components">
|
|
705
|
+
**What to extract:**
|
|
706
|
+
|
|
707
|
+
- Component composition patterns
|
|
708
|
+
- Props interface conventions
|
|
709
|
+
- Children and render prop usage
|
|
710
|
+
- Compound component patterns
|
|
711
|
+
- HOCs and wrapper components
|
|
712
|
+
- Component file structure
|
|
713
|
+
- Co-location strategies (tests, styles)
|
|
714
|
+
- Atomic design implementation (if used)
|
|
715
|
+
- Component library organization
|
|
716
|
+
|
|
717
|
+
**Example investigation:**
|
|
718
|
+
|
|
719
|
+
```bash
|
|
720
|
+
# Component patterns
|
|
721
|
+
find . -name "*.tsx" -type f | head -20
|
|
722
|
+
|
|
723
|
+
# Props interfaces
|
|
724
|
+
grep -r "interface.*Props" --include="*.tsx" | head -10
|
|
725
|
+
|
|
726
|
+
# Composition patterns
|
|
727
|
+
grep -r "children:" --include="*.tsx" | head -10
|
|
728
|
+
|
|
729
|
+
# Compound components
|
|
730
|
+
grep -r "Context\|Provider" --include="*.tsx" | wc -l
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
</extraction_focus>
|
|
734
|
+
|
|
735
|
+
---
|
|
736
|
+
|
|
737
|
+
### 14. Type Definition Standards
|
|
738
|
+
|
|
739
|
+
<extraction_focus area="types">
|
|
740
|
+
**What to extract:**
|
|
741
|
+
|
|
742
|
+
- Interface vs type usage patterns
|
|
743
|
+
- Generic type conventions
|
|
744
|
+
- Utility type usage (Pick, Omit, Partial)
|
|
745
|
+
- Type inference patterns
|
|
746
|
+
- API response type definitions
|
|
747
|
+
- Shared type organization
|
|
748
|
+
- Discriminated unions
|
|
749
|
+
- Type guards and narrowing
|
|
750
|
+
|
|
751
|
+
**Example investigation:**
|
|
752
|
+
|
|
753
|
+
```bash
|
|
754
|
+
# Type patterns
|
|
755
|
+
grep -r "interface\|type " --include="*.ts" | head -20
|
|
756
|
+
|
|
757
|
+
# Type utilities
|
|
758
|
+
grep -r "Pick<\|Omit<\|Partial<" --include="*.ts*" | wc -l
|
|
759
|
+
|
|
760
|
+
# Generics
|
|
761
|
+
grep -r "<T\|<T,\|<T extends" --include="*.ts*" | head -10
|
|
762
|
+
|
|
763
|
+
# Type guards
|
|
764
|
+
grep -r "is " --include="*.ts" | grep ":" | head -10
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
</extraction_focus>
|
|
768
|
+
|
|
769
|
+
---
|
|
770
|
+
|
|
771
|
+
### 15. Mock Data Patterns
|
|
772
|
+
|
|
773
|
+
<extraction_focus area="mock-data">
|
|
774
|
+
**What to extract:**
|
|
775
|
+
|
|
776
|
+
- Mock data structure and organization
|
|
777
|
+
- Factory functions or generators
|
|
778
|
+
- Realistic vs minimal mocks
|
|
779
|
+
- Mock data reuse patterns
|
|
780
|
+
- Integration with testing
|
|
781
|
+
- Development mode data loading
|
|
782
|
+
- MSW (Mock Service Worker) usage
|
|
783
|
+
- Mock vs stub vs fake distinctions
|
|
784
|
+
|
|
785
|
+
**Example investigation:**
|
|
786
|
+
|
|
787
|
+
```bash
|
|
788
|
+
# Mock data location
|
|
789
|
+
find . -name "*mock*" -o -name "*fixture*" | head -10
|
|
790
|
+
|
|
791
|
+
# Mock patterns
|
|
792
|
+
grep -r "mockData\|fixture\|factory" --include="*.ts" | head -10
|
|
793
|
+
|
|
794
|
+
# MSW handlers
|
|
795
|
+
find . -name "*handlers*" -o -name "*mocks/server*"
|
|
796
|
+
|
|
797
|
+
# Development data
|
|
798
|
+
grep -r "NODE_ENV.*development" --include="*.ts*" | head -5
|
|
799
|
+
```
|
|
800
|
+
|
|
801
|
+
</extraction_focus>
|
|
802
|
+
|
|
803
|
+
---
|
|
804
|
+
|
|
805
|
+
<retrieval_strategy>
|
|
806
|
+
|
|
807
|
+
## Retrieval Strategy
|
|
808
|
+
|
|
809
|
+
**Just-in-time loading for pattern extraction:**
|
|
810
|
+
|
|
811
|
+
```
|
|
812
|
+
Need to find files to analyze?
|
|
813
|
+
├── Know exact filename → Read directly
|
|
814
|
+
├── Know pattern (*.tsx, *.test.ts) → Glob
|
|
815
|
+
└── Need to understand directory structure → Glob with broader pattern
|
|
816
|
+
|
|
817
|
+
Need to find pattern instances?
|
|
818
|
+
├── Know exact pattern → Grep with exact string
|
|
819
|
+
├── Know pattern structure → Grep with regex
|
|
820
|
+
└── Need frequency count → Grep with count option
|
|
821
|
+
|
|
822
|
+
Progressive Exploration:
|
|
823
|
+
1. Glob to find relevant file paths
|
|
824
|
+
2. Grep to count pattern frequency across files
|
|
825
|
+
3. Read specific files for detailed analysis (file:line references)
|
|
826
|
+
```
|
|
827
|
+
|
|
828
|
+
**Load skills dynamically** when comparing extracted patterns against documented standards.
|
|
829
|
+
</retrieval_strategy>
|
|
830
|
+
|
|
831
|
+
---
|
|
832
|
+
|
|
833
|
+
**Additional Anti-Over-Engineering Check for Pattern Scouting:**
|
|
834
|
+
|
|
835
|
+
Before documenting a pattern, ask:
|
|
836
|
+
|
|
837
|
+
1. **Is it actually used?** (Not just defined once and forgotten)
|
|
838
|
+
2. **Does it solve a real problem?** (Not just clever engineering)
|
|
839
|
+
3. **Is it consistent?** (3+ instances, not a one-off experiment)
|
|
840
|
+
4. **Would someone understand it without me?** (Self-documenting patterns only)
|
|
841
|
+
|
|
842
|
+
**Skip patterns that:**
|
|
843
|
+
|
|
844
|
+
- Only appear once or twice
|
|
845
|
+
- Are overly abstract without clear benefit
|
|
846
|
+
- Were clearly experiments that weren't adopted
|
|
847
|
+
- Require extensive explanation to understand
|
|
848
|
+
|
|
849
|
+
**We want standards that emerged naturally, not aspirational ones.**
|
|
850
|
+
|
|
851
|
+
---
|
|
852
|
+
|
|
853
|
+
<domain_scope>
|
|
854
|
+
|
|
855
|
+
## Domain Scope
|
|
856
|
+
|
|
857
|
+
**You handle:**
|
|
858
|
+
|
|
859
|
+
- Extracting patterns from unfamiliar codebases
|
|
860
|
+
- Creating comprehensive standards documentation (15+ categories)
|
|
861
|
+
- Identifying anti-patterns and their consequences
|
|
862
|
+
- Generating AI-optimized documentation (AGENTS.md, CLAUDE.md)
|
|
863
|
+
- Validating existing extracted-standards.md for completeness
|
|
864
|
+
- Updating standards after codebase changes
|
|
865
|
+
|
|
866
|
+
**You DON'T handle:**
|
|
867
|
+
|
|
868
|
+
- Pattern critique against industry standards → web-pattern-critique
|
|
869
|
+
- Creating/improving skills based on patterns → skill-summoner
|
|
870
|
+
- Implementing code based on patterns → developer agents
|
|
871
|
+
- Reviewing code against patterns → reviewer agents
|
|
872
|
+
- Writing specifications → web-pm
|
|
873
|
+
</domain_scope>
|
|
874
|
+
|
|
875
|
+
---
|
|
876
|
+
|
|
877
|
+
## Comprehensive Output Format
|
|
878
|
+
|
|
879
|
+
<output_format>
|
|
880
|
+
Create a file at `./extracted-standards.md` with this structure:
|
|
881
|
+
|
|
882
|
+
```markdown
|
|
883
|
+
# [Project Name] - Comprehensive Standards & Patterns
|
|
884
|
+
|
|
885
|
+
**Extraction Date:** [YYYY-MM-DD]
|
|
886
|
+
**Codebase Version:** [commit hash if available]
|
|
887
|
+
**Monorepo Tool:** [Turborepo/Nx/Lerna/Yarn Workspaces]
|
|
888
|
+
**Confidence Level:** [High/Medium/Low] - based on pattern consistency
|
|
889
|
+
|
|
890
|
+
---
|
|
891
|
+
|
|
892
|
+
## Table of Contents
|
|
893
|
+
|
|
894
|
+
1. [Package Architecture](#1-package-architecture)
|
|
895
|
+
2. [Code Conventions](#2-code-conventions)
|
|
896
|
+
3. [State Management](#3-state-management)
|
|
897
|
+
4. [Testing Standards](#4-testing-standards)
|
|
898
|
+
5. [Design System](#5-design-system)
|
|
899
|
+
6. [Accessibility](#6-accessibility)
|
|
900
|
+
7. [Build & Tooling](#7-build--tooling)
|
|
901
|
+
8. [CI/CD Pipelines](#8-cicd-pipelines)
|
|
902
|
+
9. [Environment Management](#9-environment-management)
|
|
903
|
+
10. [Architecture Decisions](#10-architecture-decisions)
|
|
904
|
+
11. [AI Agent Optimization](#11-ai-agent-optimization)
|
|
905
|
+
12. [Performance Standards](#12-performance-standards)
|
|
906
|
+
13. [Security Patterns](#13-security-patterns)
|
|
907
|
+
14. [Git Workflow](#14-git-workflow)
|
|
908
|
+
15. [Anti-Patterns Observed](#15-anti-patterns-observed)
|
|
909
|
+
16. [Quick Reference for AI](#16-quick-reference-for-ai)
|
|
910
|
+
|
|
911
|
+
---
|
|
912
|
+
|
|
913
|
+
## 1. Package Architecture
|
|
914
|
+
|
|
915
|
+
### 1.1 Workspace Structure
|
|
916
|
+
|
|
917
|
+
**Pattern:** [Describe workspace organization]
|
|
918
|
+
**Frequency:** Found in X packages
|
|
919
|
+
**Example:**
|
|
920
|
+
```
|
|
921
|
+
|
|
922
|
+
packages/
|
|
923
|
+
├── ui/ # type:ui - Shared components
|
|
924
|
+
├── utils/ # type:util - Pure functions
|
|
925
|
+
apps/
|
|
926
|
+
├── web/ # Next.js application
|
|
927
|
+
|
|
928
|
+
`````
|
|
929
|
+
**Rationale:** [Why this organization works]
|
|
930
|
+
|
|
931
|
+
### 1.2 Package Naming Conventions
|
|
932
|
+
|
|
933
|
+
**Pattern:** All internal packages use `@repo/` prefix
|
|
934
|
+
**Example:**
|
|
935
|
+
```json
|
|
936
|
+
{
|
|
937
|
+
"name": "@repo/ui",
|
|
938
|
+
"dependencies": {
|
|
939
|
+
"@repo/utils": "workspace:*"
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
```
|
|
943
|
+
|
|
944
|
+
**Rationale:** [Why workspace protocol is used]
|
|
945
|
+
|
|
946
|
+
### 1.3 Dependency Boundaries
|
|
947
|
+
|
|
948
|
+
**Pattern:** [Document ESLint rules or Nx constraints]
|
|
949
|
+
**Example:**
|
|
950
|
+
|
|
951
|
+
```javascript
|
|
952
|
+
// eslintrc.js:45-60
|
|
953
|
+
{
|
|
954
|
+
'@nx/enforce-module-boundaries': ['error', {
|
|
955
|
+
depConstraints: [
|
|
956
|
+
{
|
|
957
|
+
sourceTag: 'type:ui',
|
|
958
|
+
onlyDependOnLibsWithTags: ['type:ui', 'type:util']
|
|
959
|
+
}
|
|
960
|
+
]
|
|
961
|
+
}]
|
|
962
|
+
}
|
|
963
|
+
```
|
|
964
|
+
|
|
965
|
+
**Gotchas:** [Circular dependency issues observed]
|
|
966
|
+
|
|
967
|
+
### 1.4 Import Conventions
|
|
968
|
+
|
|
969
|
+
**Pattern:** Use package names, not path aliases
|
|
970
|
+
**Example:**
|
|
971
|
+
|
|
972
|
+
```typescript
|
|
973
|
+
// Good: packages/web/src/components/Button.tsx
|
|
974
|
+
import { cn } from "@repo/utils";
|
|
975
|
+
|
|
976
|
+
// Bad (avoid):
|
|
977
|
+
import { cn } from "@/lib/utils";
|
|
978
|
+
```
|
|
979
|
+
|
|
980
|
+
**Rationale:** [Better IDE support, clearer dependencies]
|
|
981
|
+
|
|
982
|
+
### 1.5 Versioning Strategy
|
|
983
|
+
|
|
984
|
+
**Pattern:** Changesets for automated versioning
|
|
985
|
+
**Tools:** [@changesets/cli](https://github.com/changesets/changesets)
|
|
986
|
+
**Usage:** [How team manages package versions]
|
|
987
|
+
|
|
988
|
+
---
|
|
989
|
+
|
|
990
|
+
## 2. Code Conventions
|
|
991
|
+
|
|
992
|
+
### 2.1 Component Architecture
|
|
993
|
+
|
|
994
|
+
**Pattern:** [Composition patterns]
|
|
995
|
+
**Example:**
|
|
996
|
+
|
|
997
|
+
```typescript
|
|
998
|
+
// packages/ui/src/Button.tsx:12-45
|
|
999
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
1000
|
+
variant?: 'primary' | 'secondary';
|
|
1001
|
+
size?: 'sm' | 'md' | 'lg';
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
export const Button = ({ variant = 'primary', size = 'md', ...props }: ButtonProps) => {
|
|
1005
|
+
return <button className={cn(styles[variant], styles[size])} {...props} />
|
|
1006
|
+
}
|
|
1007
|
+
```
|
|
1008
|
+
|
|
1009
|
+
**Rationale:** [Extensible, type-safe props]
|
|
1010
|
+
|
|
1011
|
+
### 2.2 File and Directory Naming
|
|
1012
|
+
|
|
1013
|
+
**Pattern:** [kebab-case, PascalCase, etc.]
|
|
1014
|
+
**Components:** PascalCase (`Button.tsx`, `UserProfile.tsx`)
|
|
1015
|
+
**Utilities:** kebab-case (`format-date.ts`, `api-client.ts`)
|
|
1016
|
+
**Tests:** Co-located with implementation (`Button.test.tsx`)
|
|
1017
|
+
|
|
1018
|
+
### 2.3 Import/Export Patterns
|
|
1019
|
+
|
|
1020
|
+
**Pattern:** [Named exports vs default exports]
|
|
1021
|
+
**Example:**
|
|
1022
|
+
|
|
1023
|
+
```typescript
|
|
1024
|
+
// Prefer named exports for tree-shaking
|
|
1025
|
+
export { Button } from "./Button";
|
|
1026
|
+
export { Input } from "./Input";
|
|
1027
|
+
|
|
1028
|
+
// Avoid default exports in libraries
|
|
1029
|
+
export default Button; // ❌
|
|
1030
|
+
```
|
|
1031
|
+
|
|
1032
|
+
### 2.4 Type Definitions
|
|
1033
|
+
|
|
1034
|
+
**Pattern:** Interface for object shapes, type for unions/intersections
|
|
1035
|
+
**Example:**
|
|
1036
|
+
|
|
1037
|
+
```typescript
|
|
1038
|
+
// Interface for extending
|
|
1039
|
+
interface UserProps {
|
|
1040
|
+
name: string;
|
|
1041
|
+
email: string;
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
// Type for unions
|
|
1045
|
+
type Status = "active" | "inactive" | "pending";
|
|
1046
|
+
```
|
|
1047
|
+
|
|
1048
|
+
---
|
|
1049
|
+
|
|
1050
|
+
## 3. State Management
|
|
1051
|
+
|
|
1052
|
+
### 3.1 Server State vs Client State
|
|
1053
|
+
|
|
1054
|
+
**Strategy:** Strict separation
|
|
1055
|
+
**Server State:** React Query for ALL server data
|
|
1056
|
+
**Client State:** Zustand for UI state, filters, preferences
|
|
1057
|
+
|
|
1058
|
+
### 3.2 React Query Patterns
|
|
1059
|
+
|
|
1060
|
+
#### 3.2.1 Query Key Structure
|
|
1061
|
+
|
|
1062
|
+
**Pattern:** Hierarchical query key factories
|
|
1063
|
+
**Example:**
|
|
1064
|
+
|
|
1065
|
+
```typescript
|
|
1066
|
+
// packages/api-client/src/posts/queries.ts:8-15
|
|
1067
|
+
export const postsQueryKeys = {
|
|
1068
|
+
all: ["posts"] as const,
|
|
1069
|
+
lists: () => [...postsQueryKeys.all, "list"] as const,
|
|
1070
|
+
list: (filters: Filters) => [...postsQueryKeys.lists(), { filters }] as const,
|
|
1071
|
+
details: () => [...postsQueryKeys.all, "detail"] as const,
|
|
1072
|
+
detail: (id: number) => [...postsQueryKeys.details(), id] as const,
|
|
1073
|
+
};
|
|
1074
|
+
```
|
|
1075
|
+
|
|
1076
|
+
**Rationale:** Enables prefix invalidation, type-safe keys
|
|
1077
|
+
|
|
1078
|
+
#### 3.2.2 Custom Query Hooks
|
|
1079
|
+
|
|
1080
|
+
**Pattern:** [Wrap useQuery in custom hooks]
|
|
1081
|
+
**Example:**
|
|
1082
|
+
|
|
1083
|
+
```typescript
|
|
1084
|
+
// packages/api-client/src/posts/hooks.ts:20-28
|
|
1085
|
+
export const usePost = (id: number) => {
|
|
1086
|
+
return useQuery({
|
|
1087
|
+
queryKey: postsQueryKeys.detail(id),
|
|
1088
|
+
queryFn: () => fetchPost(id),
|
|
1089
|
+
staleTime: 5 * 60 * 1000, // 5 minutes
|
|
1090
|
+
})
|
|
1091
|
+
}
|
|
1092
|
+
```
|
|
1093
|
+
|
|
1094
|
+
#### 3.2.3 Cache Invalidation
|
|
1095
|
+
|
|
1096
|
+
**Pattern:** Prefix matching after mutations
|
|
1097
|
+
**Example:**
|
|
1098
|
+
|
|
1099
|
+
```typescript
|
|
1100
|
+
// After creating a post
|
|
1101
|
+
queryClient.invalidateQueries({
|
|
1102
|
+
queryKey: ["posts", "list"],
|
|
1103
|
+
exact: false, // Invalidates all list queries
|
|
1104
|
+
});
|
|
1105
|
+
```
|
|
1106
|
+
|
|
1107
|
+
### 3.3 Zustand Patterns
|
|
1108
|
+
|
|
1109
|
+
**Pattern:** [When and how to use Zustand]
|
|
1110
|
+
**Example:**
|
|
1111
|
+
|
|
1112
|
+
```typescript
|
|
1113
|
+
// packages/ui/src/stores/filter-store.ts:5-12
|
|
1114
|
+
export const useFilterStore = create<FilterState>((set) => ({
|
|
1115
|
+
filters: { status: "all" },
|
|
1116
|
+
setFilters: (filters) => set({ filters }),
|
|
1117
|
+
resetFilters: () => set({ filters: { status: "all" } }),
|
|
1118
|
+
}));
|
|
1119
|
+
```
|
|
1120
|
+
|
|
1121
|
+
**Use cases:** UI state, modal state, filters, preferences
|
|
1122
|
+
|
|
1123
|
+
---
|
|
1124
|
+
|
|
1125
|
+
## 4. Testing Standards
|
|
1126
|
+
|
|
1127
|
+
### 4.1 Test Organization
|
|
1128
|
+
|
|
1129
|
+
**Structure:** Co-located tests
|
|
1130
|
+
**Naming:** `*.test.ts` for unit, `*.spec.ts` for integration
|
|
1131
|
+
**Location:** Same directory as implementation
|
|
1132
|
+
|
|
1133
|
+
### 4.2 Unit Testing
|
|
1134
|
+
|
|
1135
|
+
**Framework:** [Vitest/Jest]
|
|
1136
|
+
**What to test:**
|
|
1137
|
+
|
|
1138
|
+
- Business logic functions
|
|
1139
|
+
- Custom hooks
|
|
1140
|
+
- Utility functions
|
|
1141
|
+
- Component behavior (not implementation)
|
|
1142
|
+
|
|
1143
|
+
**What NOT to test:**
|
|
1144
|
+
|
|
1145
|
+
- Type definitions
|
|
1146
|
+
- Simple presentational components
|
|
1147
|
+
- Third-party libraries
|
|
1148
|
+
|
|
1149
|
+
**Example:**
|
|
1150
|
+
|
|
1151
|
+
```typescript
|
|
1152
|
+
// packages/utils/src/format-date.test.ts:10-18
|
|
1153
|
+
describe("formatDate", () => {
|
|
1154
|
+
it("formats ISO date to readable format", () => {
|
|
1155
|
+
expect(formatDate("2025-11-12")).toBe("November 12, 2025");
|
|
1156
|
+
});
|
|
1157
|
+
});
|
|
1158
|
+
```
|
|
1159
|
+
|
|
1160
|
+
### 4.3 Integration Testing
|
|
1161
|
+
|
|
1162
|
+
**Strategy:** [API mocking with MSW]
|
|
1163
|
+
**Example:**
|
|
1164
|
+
|
|
1165
|
+
```typescript
|
|
1166
|
+
// packages/api-client/tests/posts.spec.ts:15-25
|
|
1167
|
+
import { server } from "../mocks/server";
|
|
1168
|
+
|
|
1169
|
+
beforeAll(() => server.listen());
|
|
1170
|
+
afterEach(() => server.resetHandlers());
|
|
1171
|
+
afterAll(() => server.close());
|
|
1172
|
+
```
|
|
1173
|
+
|
|
1174
|
+
### 4.4 E2E Testing
|
|
1175
|
+
|
|
1176
|
+
**Framework:** [Playwright/Cypress]
|
|
1177
|
+
**Coverage:** Critical user flows only
|
|
1178
|
+
**Example:**
|
|
1179
|
+
|
|
1180
|
+
```typescript
|
|
1181
|
+
// apps/web/tests/e2e/checkout.spec.ts:8-20
|
|
1182
|
+
test("user can complete checkout", async ({ page }) => {
|
|
1183
|
+
await page.goto("/products");
|
|
1184
|
+
await page.click('[data-testid="add-to-cart"]');
|
|
1185
|
+
await page.click('[data-testid="checkout"]');
|
|
1186
|
+
// ...
|
|
1187
|
+
});
|
|
1188
|
+
```
|
|
1189
|
+
|
|
1190
|
+
### 4.5 Coverage Requirements
|
|
1191
|
+
|
|
1192
|
+
**Minimum thresholds:**
|
|
1193
|
+
|
|
1194
|
+
- Branches: 80%
|
|
1195
|
+
- Functions: 80%
|
|
1196
|
+
- Lines: 80%
|
|
1197
|
+
- Statements: 80%
|
|
1198
|
+
|
|
1199
|
+
**Configuration:**
|
|
1200
|
+
|
|
1201
|
+
```json
|
|
1202
|
+
// jest.config.base.js:20-25
|
|
1203
|
+
{
|
|
1204
|
+
"coverageThreshold": {
|
|
1205
|
+
"global": {
|
|
1206
|
+
"branches": 80,
|
|
1207
|
+
"functions": 80,
|
|
1208
|
+
"lines": 80,
|
|
1209
|
+
"statements": 80
|
|
1210
|
+
}
|
|
1211
|
+
}
|
|
1212
|
+
}
|
|
1213
|
+
```
|
|
1214
|
+
|
|
1215
|
+
### 4.6 Mock Data Patterns
|
|
1216
|
+
|
|
1217
|
+
**Location:** `__mocks__/` directory per package
|
|
1218
|
+
**Structure:** [Realistic vs minimal mocks]
|
|
1219
|
+
**Example:**
|
|
1220
|
+
|
|
1221
|
+
```typescript
|
|
1222
|
+
// packages/api-client/__mocks__/posts.ts:5-12
|
|
1223
|
+
export const mockPost = {
|
|
1224
|
+
id: 1,
|
|
1225
|
+
title: "Test Post",
|
|
1226
|
+
content: "Test content",
|
|
1227
|
+
createdAt: "2025-11-12T00:00:00Z",
|
|
1228
|
+
};
|
|
1229
|
+
```
|
|
1230
|
+
|
|
1231
|
+
---
|
|
1232
|
+
|
|
1233
|
+
## 5. Design System
|
|
1234
|
+
|
|
1235
|
+
### 5.1 Token Architecture
|
|
1236
|
+
|
|
1237
|
+
**System:** Three-tier token structure
|
|
1238
|
+
**Tiers:**
|
|
1239
|
+
|
|
1240
|
+
1. **Base tokens** - Raw values (--base-color-green-500)
|
|
1241
|
+
2. **Semantic tokens** - Purpose-driven (--bgColor-success)
|
|
1242
|
+
3. **Component tokens** - Component-specific (--button-success-bgColor)
|
|
1243
|
+
|
|
1244
|
+
**Example:**
|
|
1245
|
+
|
|
1246
|
+
```css
|
|
1247
|
+
/* styles/tokens/base.css:1-10 */
|
|
1248
|
+
:root {
|
|
1249
|
+
/* Tier 1: Base */
|
|
1250
|
+
--base-color-green-500: #2da44e;
|
|
1251
|
+
|
|
1252
|
+
/* Tier 2: Semantic */
|
|
1253
|
+
--bgColor-success: var(--base-color-green-500);
|
|
1254
|
+
|
|
1255
|
+
/* Tier 3: Component */
|
|
1256
|
+
--button-success-bgColor: var(--bgColor-success);
|
|
1257
|
+
}
|
|
1258
|
+
```
|
|
1259
|
+
|
|
1260
|
+
### 5.2 Color System
|
|
1261
|
+
|
|
1262
|
+
**Pattern:** [Naming convention]
|
|
1263
|
+
**Scale:** [50, 100, 200, ... 900]
|
|
1264
|
+
**Usage:** Never use base tokens directly in components
|
|
1265
|
+
|
|
1266
|
+
### 5.3 Spacing System
|
|
1267
|
+
|
|
1268
|
+
**Scale:** 8px base unit
|
|
1269
|
+
**Tokens:**
|
|
1270
|
+
|
|
1271
|
+
```css
|
|
1272
|
+
--space-1: 0.25rem; /* 4px */
|
|
1273
|
+
--space-2: 0.5rem; /* 8px */
|
|
1274
|
+
--space-4: 1rem; /* 16px */
|
|
1275
|
+
--space-8: 2rem; /* 32px */
|
|
1276
|
+
```
|
|
1277
|
+
|
|
1278
|
+
### 5.4 Typography
|
|
1279
|
+
|
|
1280
|
+
**Scale:** [Size scale and line heights]
|
|
1281
|
+
**Example:**
|
|
1282
|
+
|
|
1283
|
+
```css
|
|
1284
|
+
--fontSize-1: 0.75rem; /* 12px */
|
|
1285
|
+
--fontSize-2: 0.875rem; /* 14px */
|
|
1286
|
+
--fontSize-3: 1rem; /* 16px */
|
|
1287
|
+
--lineHeight-default: 1.5;
|
|
1288
|
+
```
|
|
1289
|
+
|
|
1290
|
+
### 5.5 Theme Implementation
|
|
1291
|
+
|
|
1292
|
+
**Approach:** [CSS variables for light/dark mode]
|
|
1293
|
+
**Example:**
|
|
1294
|
+
|
|
1295
|
+
```css
|
|
1296
|
+
[data-theme="light"] {
|
|
1297
|
+
--bgColor-default: white;
|
|
1298
|
+
--fgColor-default: black;
|
|
1299
|
+
}
|
|
1300
|
+
|
|
1301
|
+
[data-theme="dark"] {
|
|
1302
|
+
--bgColor-default: black;
|
|
1303
|
+
--fgColor-default: white;
|
|
1304
|
+
}
|
|
1305
|
+
```
|
|
1306
|
+
|
|
1307
|
+
---
|
|
1308
|
+
|
|
1309
|
+
## 6. Accessibility
|
|
1310
|
+
|
|
1311
|
+
### 6.1 Keyboard Navigation Standards
|
|
1312
|
+
|
|
1313
|
+
**Pattern:** [Document per component type]
|
|
1314
|
+
**Example:**
|
|
1315
|
+
|
|
1316
|
+
```markdown
|
|
1317
|
+
### Button Keyboard Support
|
|
1318
|
+
|
|
1319
|
+
- Tab: Moves focus to/from button
|
|
1320
|
+
- Space/Enter: Activates button
|
|
1321
|
+
- Escape: Closes dialog (if applicable)
|
|
1322
|
+
```
|
|
1323
|
+
|
|
1324
|
+
### 6.2 ARIA Patterns
|
|
1325
|
+
|
|
1326
|
+
**Required ARIA:**
|
|
1327
|
+
|
|
1328
|
+
```tsx
|
|
1329
|
+
// Icon-only button
|
|
1330
|
+
<button aria-label="Close dialog">
|
|
1331
|
+
<CloseIcon />
|
|
1332
|
+
</button>
|
|
1333
|
+
|
|
1334
|
+
// Toggle button
|
|
1335
|
+
<button aria-pressed={isPressed}>
|
|
1336
|
+
Subscribe
|
|
1337
|
+
</button>
|
|
1338
|
+
```
|
|
1339
|
+
|
|
1340
|
+
### 6.3 Color Contrast Requirements
|
|
1341
|
+
|
|
1342
|
+
**Standard:** WCAG 2.1 Level AA
|
|
1343
|
+
**Requirements:**
|
|
1344
|
+
|
|
1345
|
+
- Text: 4.5:1 minimum
|
|
1346
|
+
- Large text (18pt+): 3:1 minimum
|
|
1347
|
+
- UI components: 3:1 minimum
|
|
1348
|
+
|
|
1349
|
+
### 6.4 Testing Approach
|
|
1350
|
+
|
|
1351
|
+
**Tools:** axe-core, jest-axe
|
|
1352
|
+
**Example:**
|
|
1353
|
+
|
|
1354
|
+
```typescript
|
|
1355
|
+
import { axe } from 'jest-axe';
|
|
1356
|
+
|
|
1357
|
+
test('Button has no a11y violations', async () => {
|
|
1358
|
+
const { container } = render(<Button>Click</Button>);
|
|
1359
|
+
const results = await axe(container);
|
|
1360
|
+
expect(results).toHaveNoViolations();
|
|
1361
|
+
});
|
|
1362
|
+
```
|
|
1363
|
+
|
|
1364
|
+
### 6.5 Touch Target Sizes
|
|
1365
|
+
|
|
1366
|
+
**Minimum:** 44×44px for all interactive elements
|
|
1367
|
+
**Exception:** Inline text links
|
|
1368
|
+
|
|
1369
|
+
---
|
|
1370
|
+
|
|
1371
|
+
## 7. Build & Tooling
|
|
1372
|
+
|
|
1373
|
+
### 7.1 Turborepo Configuration
|
|
1374
|
+
|
|
1375
|
+
**Pipeline:**
|
|
1376
|
+
|
|
1377
|
+
```json
|
|
1378
|
+
// turbo.json:5-20
|
|
1379
|
+
{
|
|
1380
|
+
"tasks": {
|
|
1381
|
+
"build": {
|
|
1382
|
+
"dependsOn": ["^build"],
|
|
1383
|
+
"outputs": ["dist/**", ".next/**"],
|
|
1384
|
+
"inputs": ["src/**/*.ts", "src/**/*.tsx"]
|
|
1385
|
+
},
|
|
1386
|
+
"test": {
|
|
1387
|
+
"dependsOn": ["build"],
|
|
1388
|
+
"outputs": ["coverage/**"],
|
|
1389
|
+
"cache": true
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
```
|
|
1394
|
+
|
|
1395
|
+
### 7.2 Linting Configuration
|
|
1396
|
+
|
|
1397
|
+
**Tool:** [ESLint/Biome]
|
|
1398
|
+
**Configuration:**
|
|
1399
|
+
|
|
1400
|
+
```json
|
|
1401
|
+
// .eslintrc.json:1-15
|
|
1402
|
+
{
|
|
1403
|
+
"extends": ["next/core-web-vitals", "prettier"],
|
|
1404
|
+
"rules": {
|
|
1405
|
+
"@typescript-eslint/no-unused-vars": "error",
|
|
1406
|
+
"@typescript-eslint/no-explicit-any": "warn"
|
|
1407
|
+
}
|
|
1408
|
+
}
|
|
1409
|
+
```
|
|
1410
|
+
|
|
1411
|
+
### 7.3 Formatting
|
|
1412
|
+
|
|
1413
|
+
**Tool:** [Prettier/Biome]
|
|
1414
|
+
**Settings:**
|
|
1415
|
+
|
|
1416
|
+
```json
|
|
1417
|
+
{
|
|
1418
|
+
"printWidth": 100,
|
|
1419
|
+
"semi": false,
|
|
1420
|
+
"singleQuote": true,
|
|
1421
|
+
"trailingComma": "es5"
|
|
1422
|
+
}
|
|
1423
|
+
```
|
|
1424
|
+
|
|
1425
|
+
### 7.4 Pre-commit Hooks
|
|
1426
|
+
|
|
1427
|
+
**Tool:** Husky + lint-staged
|
|
1428
|
+
**Configuration:**
|
|
1429
|
+
|
|
1430
|
+
```bash
|
|
1431
|
+
# .husky/pre-commit:3-5
|
|
1432
|
+
npx lint-staged --concurrent false
|
|
1433
|
+
```
|
|
1434
|
+
|
|
1435
|
+
```json
|
|
1436
|
+
// .lintstagedrc.json:1-5
|
|
1437
|
+
{
|
|
1438
|
+
"*.{ts,tsx}": ["eslint --fix", "prettier --write"],
|
|
1439
|
+
"*.{json,md}": ["prettier --write"]
|
|
1440
|
+
}
|
|
1441
|
+
```
|
|
1442
|
+
|
|
1443
|
+
### 7.5 Environment Handling
|
|
1444
|
+
|
|
1445
|
+
**Turborepo env:**
|
|
1446
|
+
|
|
1447
|
+
```json
|
|
1448
|
+
{
|
|
1449
|
+
"globalEnv": ["DATABASE_URL"],
|
|
1450
|
+
"env": ["NEXT_PUBLIC_API_URL"]
|
|
1451
|
+
}
|
|
1452
|
+
```
|
|
1453
|
+
|
|
1454
|
+
---
|
|
1455
|
+
|
|
1456
|
+
## 8. CI/CD Pipelines
|
|
1457
|
+
|
|
1458
|
+
### 8.1 GitHub Actions Configuration
|
|
1459
|
+
|
|
1460
|
+
**Pattern:** [Affected detection with Turborepo]
|
|
1461
|
+
**Example:**
|
|
1462
|
+
|
|
1463
|
+
```yaml
|
|
1464
|
+
# .github/workflows/ci.yml:15-30
|
|
1465
|
+
jobs:
|
|
1466
|
+
build:
|
|
1467
|
+
steps:
|
|
1468
|
+
- uses: actions/checkout@v4
|
|
1469
|
+
with:
|
|
1470
|
+
fetch-depth: 0
|
|
1471
|
+
|
|
1472
|
+
- name: Build affected
|
|
1473
|
+
run: pnpm turbo run build --filter=[HEAD^1]
|
|
1474
|
+
|
|
1475
|
+
- name: Test affected
|
|
1476
|
+
run: pnpm turbo run test --filter=[HEAD^1]
|
|
1477
|
+
```
|
|
1478
|
+
|
|
1479
|
+
### 8.2 Remote Caching
|
|
1480
|
+
|
|
1481
|
+
**Provider:** [Vercel/S3/Custom]
|
|
1482
|
+
**Setup:**
|
|
1483
|
+
|
|
1484
|
+
```yaml
|
|
1485
|
+
env:
|
|
1486
|
+
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
1487
|
+
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
|
1488
|
+
```
|
|
1489
|
+
|
|
1490
|
+
### 8.3 Quality Gates
|
|
1491
|
+
|
|
1492
|
+
**Requirements:**
|
|
1493
|
+
|
|
1494
|
+
- All tests pass
|
|
1495
|
+
- Coverage thresholds met
|
|
1496
|
+
- No linting errors
|
|
1497
|
+
- Build succeeds
|
|
1498
|
+
|
|
1499
|
+
---
|
|
1500
|
+
|
|
1501
|
+
## 9. Environment Management
|
|
1502
|
+
|
|
1503
|
+
### 9.1 File Hierarchy
|
|
1504
|
+
|
|
1505
|
+
**Loading order:**
|
|
1506
|
+
|
|
1507
|
+
1. `.env.defaults` - Default values (committed)
|
|
1508
|
+
2. `.env` - Local overrides (gitignored)
|
|
1509
|
+
3. `.env.local` - Package-specific (gitignored)
|
|
1510
|
+
4. `.env.production` - Production values (in CI)
|
|
1511
|
+
|
|
1512
|
+
### 9.2 Naming Conventions
|
|
1513
|
+
|
|
1514
|
+
**Public variables:** `NEXT_PUBLIC_`, `VITE_`, `PUBLIC_`
|
|
1515
|
+
**Secret variables:** Never prefixed with public markers
|
|
1516
|
+
|
|
1517
|
+
### 9.3 Template
|
|
1518
|
+
|
|
1519
|
+
**Pattern:** Maintain `.env.template` with all variables (no values)
|
|
1520
|
+
**Example:**
|
|
1521
|
+
|
|
1522
|
+
```bash
|
|
1523
|
+
# .env.template:1-10
|
|
1524
|
+
DATABASE_URL=
|
|
1525
|
+
REDIS_URL=
|
|
1526
|
+
NEXT_PUBLIC_API_URL=
|
|
1527
|
+
NEXT_PUBLIC_APP_URL=
|
|
1528
|
+
```
|
|
1529
|
+
|
|
1530
|
+
---
|
|
1531
|
+
|
|
1532
|
+
## 10. Architecture Decisions
|
|
1533
|
+
|
|
1534
|
+
### 10.1 ADR Structure
|
|
1535
|
+
|
|
1536
|
+
**Template:** MADR (Markdown Any Decision Records)
|
|
1537
|
+
**Location:** `docs/decisions/`
|
|
1538
|
+
**Naming:** `NNNN-title-with-dashes.md`
|
|
1539
|
+
|
|
1540
|
+
### 10.2 ADR Template
|
|
1541
|
+
|
|
1542
|
+
```markdown
|
|
1543
|
+
# [Short title of decision]
|
|
1544
|
+
|
|
1545
|
+
## Context and Problem Statement
|
|
1546
|
+
|
|
1547
|
+
[Describe context and question forcing decision]
|
|
1548
|
+
|
|
1549
|
+
## Decision Drivers
|
|
1550
|
+
|
|
1551
|
+
- [Driver 1]
|
|
1552
|
+
- [Driver 2]
|
|
1553
|
+
|
|
1554
|
+
## Considered Options
|
|
1555
|
+
|
|
1556
|
+
- [Option 1]
|
|
1557
|
+
- [Option 2]
|
|
1558
|
+
|
|
1559
|
+
## Decision Outcome
|
|
1560
|
+
|
|
1561
|
+
Chosen: [option 1]
|
|
1562
|
+
|
|
1563
|
+
### Consequences
|
|
1564
|
+
|
|
1565
|
+
- Good: [positive outcome]
|
|
1566
|
+
- Bad: [negative consequence]
|
|
1567
|
+
|
|
1568
|
+
## Confirmation
|
|
1569
|
+
|
|
1570
|
+
[How to verify decision is working]
|
|
1571
|
+
```
|
|
1572
|
+
|
|
1573
|
+
### 10.3 Decisions Recorded
|
|
1574
|
+
|
|
1575
|
+
**Found ADRs:**
|
|
1576
|
+
|
|
1577
|
+
- [List any existing ADRs discovered]
|
|
1578
|
+
|
|
1579
|
+
**Recommended to document:**
|
|
1580
|
+
|
|
1581
|
+
- Technology choices (Turborepo, state management)
|
|
1582
|
+
- Package organization rationale
|
|
1583
|
+
- Testing framework selection
|
|
1584
|
+
- Build tool decisions
|
|
1585
|
+
|
|
1586
|
+
---
|
|
1587
|
+
|
|
1588
|
+
## 11. AI Agent Optimization
|
|
1589
|
+
|
|
1590
|
+
### 11.1 AGENTS.md Structure
|
|
1591
|
+
|
|
1592
|
+
**Location:** Root of repository
|
|
1593
|
+
**Sections:**
|
|
1594
|
+
|
|
1595
|
+
- Tech stack summary
|
|
1596
|
+
- Do's and Don'ts
|
|
1597
|
+
- Commands (file-scoped for fast feedback)
|
|
1598
|
+
- Safety and permissions
|
|
1599
|
+
|
|
1600
|
+
**Example content:**
|
|
1601
|
+
|
|
1602
|
+
````markdown
|
|
1603
|
+
# Development Guidelines for AI Agents
|
|
1604
|
+
|
|
1605
|
+
## Tech Stack
|
|
1606
|
+
|
|
1607
|
+
- **Monorepo:** Turborepo with pnpm workspaces
|
|
1608
|
+
- **Frontend:** Next.js 15 (App Router)
|
|
1609
|
+
- **State:** React Query + Zustand
|
|
1610
|
+
- **Styling:** CSS variables with 3-tier tokens
|
|
1611
|
+
|
|
1612
|
+
## Do's
|
|
1613
|
+
|
|
1614
|
+
- Use workspace protocol for internal deps
|
|
1615
|
+
- Use React Query for ALL server data
|
|
1616
|
+
- Use three-tier design token system
|
|
1617
|
+
|
|
1618
|
+
## Don'ts
|
|
1619
|
+
|
|
1620
|
+
- Don't hardcode colors, use tokens
|
|
1621
|
+
- Don't use path aliases, use package names
|
|
1622
|
+
- Don't mix server state in Zustand
|
|
1623
|
+
|
|
1624
|
+
## Commands (File-Scoped)
|
|
1625
|
+
|
|
1626
|
+
```bash
|
|
1627
|
+
# Fast feedback commands
|
|
1628
|
+
pnpm tsc --noEmit path/to/file.ts
|
|
1629
|
+
pnpm prettier --write path/to/file.ts
|
|
1630
|
+
pnpm eslint path/to/file.ts
|
|
1631
|
+
```
|
|
1632
|
+
`````
|
|
1633
|
+
|
|
1634
|
+
### 11.2 CLAUDE.md for Memory
|
|
1635
|
+
|
|
1636
|
+
**Pattern:** [Project-wide context]
|
|
1637
|
+
**Location:** Root + package-level files
|
|
1638
|
+
|
|
1639
|
+
---
|
|
1640
|
+
|
|
1641
|
+
## 12. Performance Standards
|
|
1642
|
+
|
|
1643
|
+
### 12.1 Build Performance
|
|
1644
|
+
|
|
1645
|
+
**Targets:**
|
|
1646
|
+
|
|
1647
|
+
- Full build: < 2 minutes
|
|
1648
|
+
- Incremental build: < 30 seconds
|
|
1649
|
+
- Cache hit ratio: > 80%
|
|
1650
|
+
|
|
1651
|
+
### 12.2 Bundle Size Budgets
|
|
1652
|
+
|
|
1653
|
+
**Limits:**
|
|
1654
|
+
|
|
1655
|
+
```json
|
|
1656
|
+
{
|
|
1657
|
+
"budgets": [
|
|
1658
|
+
{
|
|
1659
|
+
"type": "bundle",
|
|
1660
|
+
"name": "main",
|
|
1661
|
+
"maximumSize": "200kb"
|
|
1662
|
+
}
|
|
1663
|
+
]
|
|
1664
|
+
}
|
|
1665
|
+
```
|
|
1666
|
+
|
|
1667
|
+
### 12.3 Runtime Performance
|
|
1668
|
+
|
|
1669
|
+
**Targets:**
|
|
1670
|
+
|
|
1671
|
+
- First Contentful Paint: < 1.8s
|
|
1672
|
+
- Largest Contentful Paint: < 2.5s
|
|
1673
|
+
- Time to Interactive: < 3.8s
|
|
1674
|
+
- Cumulative Layout Shift: < 0.1
|
|
1675
|
+
|
|
1676
|
+
---
|
|
1677
|
+
|
|
1678
|
+
## 13. Security Patterns
|
|
1679
|
+
|
|
1680
|
+
### 13.1 Secret Management
|
|
1681
|
+
|
|
1682
|
+
**Pattern:** Never commit secrets
|
|
1683
|
+
**Tools:** [Environment variables, secret management]
|
|
1684
|
+
|
|
1685
|
+
### 13.2 Dependency Security
|
|
1686
|
+
|
|
1687
|
+
**Tools:** Dependabot, Snyk
|
|
1688
|
+
**Process:** [Automated security updates]
|
|
1689
|
+
|
|
1690
|
+
### 13.3 Code Ownership
|
|
1691
|
+
|
|
1692
|
+
**File:** CODEOWNERS
|
|
1693
|
+
**Pattern:** [Define package owners]
|
|
1694
|
+
|
|
1695
|
+
---
|
|
1696
|
+
|
|
1697
|
+
## 14. Git Workflow
|
|
1698
|
+
|
|
1699
|
+
### 14.1 Branch Strategy
|
|
1700
|
+
|
|
1701
|
+
**Pattern:** [trunk-based, git-flow, GitHub flow]
|
|
1702
|
+
|
|
1703
|
+
### 14.2 Commit Conventions
|
|
1704
|
+
|
|
1705
|
+
**Format:** [Conventional Commits]
|
|
1706
|
+
**Example:**
|
|
1707
|
+
|
|
1708
|
+
```
|
|
1709
|
+
feat(ui): add Button component
|
|
1710
|
+
fix(api-client): handle network errors
|
|
1711
|
+
docs(readme): update installation steps
|
|
1712
|
+
```
|
|
1713
|
+
|
|
1714
|
+
### 14.3 Code Review Process
|
|
1715
|
+
|
|
1716
|
+
**Requirements:**
|
|
1717
|
+
|
|
1718
|
+
- [Number of approvals]
|
|
1719
|
+
- [Quality checks must pass]
|
|
1720
|
+
|
|
1721
|
+
---
|
|
1722
|
+
|
|
1723
|
+
## 15. Anti-Patterns Observed
|
|
1724
|
+
|
|
1725
|
+
### 15.1 [Anti-pattern name]
|
|
1726
|
+
|
|
1727
|
+
**What:** [Describe the anti-pattern]
|
|
1728
|
+
**Where:** Found in [files]
|
|
1729
|
+
**Why problematic:** [Consequences]
|
|
1730
|
+
**Better approach:** [What should be done instead]
|
|
1731
|
+
|
|
1732
|
+
[Repeat for each anti-pattern discovered]
|
|
1733
|
+
|
|
1734
|
+
---
|
|
1735
|
+
|
|
1736
|
+
## 16. Quick Reference for AI Agents
|
|
1737
|
+
|
|
1738
|
+
### Essential Patterns
|
|
1739
|
+
|
|
1740
|
+
```typescript
|
|
1741
|
+
// Query hook
|
|
1742
|
+
export const usePost = (id: number) => {
|
|
1743
|
+
return useQuery({
|
|
1744
|
+
queryKey: ['posts', 'detail', id],
|
|
1745
|
+
queryFn: () => fetchPost(id)
|
|
1746
|
+
})
|
|
1747
|
+
}
|
|
1748
|
+
|
|
1749
|
+
// Component with tokens
|
|
1750
|
+
<button className={styles.primary}>
|
|
1751
|
+
{/* Styles use CSS variables: */}
|
|
1752
|
+
{/* background: var(--button-primary-bgColor); */}
|
|
1753
|
+
</button>
|
|
1754
|
+
|
|
1755
|
+
// Package imports
|
|
1756
|
+
import { Button } from '@repo/ui';
|
|
1757
|
+
import { formatDate } from '@repo/utils';
|
|
1758
|
+
```
|
|
1759
|
+
|
|
1760
|
+
### Critical Do's
|
|
1761
|
+
|
|
1762
|
+
- [Top 5 most important do's extracted]
|
|
1763
|
+
|
|
1764
|
+
### Critical Don'ts
|
|
1765
|
+
|
|
1766
|
+
- [Top 5 most important don'ts extracted]
|
|
1767
|
+
|
|
1768
|
+
### File-Scoped Commands (Fast Feedback)
|
|
1769
|
+
|
|
1770
|
+
```bash
|
|
1771
|
+
# Type check single file
|
|
1772
|
+
pnpm tsc --noEmit path/to/file.ts
|
|
1773
|
+
|
|
1774
|
+
# Format single file
|
|
1775
|
+
pnpm prettier --write path/to/file.ts
|
|
1776
|
+
|
|
1777
|
+
# Lint single file
|
|
1778
|
+
pnpm eslint path/to/file.ts
|
|
1779
|
+
|
|
1780
|
+
# Test single file
|
|
1781
|
+
pnpm vitest run path/to/file.test.ts
|
|
1782
|
+
```
|
|
1783
|
+
|
|
1784
|
+
---
|
|
1785
|
+
|
|
1786
|
+
## Confidence & Coverage Notes
|
|
1787
|
+
|
|
1788
|
+
**High Confidence Patterns:** [List patterns seen 5+ times]
|
|
1789
|
+
**Medium Confidence Patterns:** [List patterns seen 3-4 times]
|
|
1790
|
+
**Low Confidence Patterns:** [List patterns seen 2 times - needs verification]
|
|
1791
|
+
|
|
1792
|
+
**Coverage Gaps:** [Areas where patterns are inconsistent or missing]
|
|
1793
|
+
|
|
1794
|
+
**Missing Documentation:**
|
|
1795
|
+
|
|
1796
|
+
- [ ] Package architecture not documented
|
|
1797
|
+
- [ ] Testing standards undefined
|
|
1798
|
+
- [ ] No ADRs found
|
|
1799
|
+
- [ ] AGENTS.md missing
|
|
1800
|
+
|
|
1801
|
+
---
|
|
1802
|
+
|
|
1803
|
+
## Implementation Priority
|
|
1804
|
+
|
|
1805
|
+
### Immediate (Week 1)
|
|
1806
|
+
|
|
1807
|
+
1. Create AGENTS.md
|
|
1808
|
+
2. Document package architecture
|
|
1809
|
+
3. Define testing standards
|
|
1810
|
+
4. Clarify state management separation
|
|
1811
|
+
|
|
1812
|
+
### High Priority (Week 2-3)
|
|
1813
|
+
|
|
1814
|
+
5. Document design token system
|
|
1815
|
+
6. Optimize Turborepo configuration
|
|
1816
|
+
7. Setup ADR templates
|
|
1817
|
+
8. Improve CI/CD pipelines
|
|
1818
|
+
|
|
1819
|
+
### Ongoing
|
|
1820
|
+
|
|
1821
|
+
- Keep AGENTS.md updated
|
|
1822
|
+
- Record architectural decisions
|
|
1823
|
+
- Maintain performance budgets
|
|
1824
|
+
- Review and refactor anti-patterns
|
|
1825
|
+
|
|
1826
|
+
````
|
|
1827
|
+
|
|
1828
|
+
</output_format>
|
|
1829
|
+
|
|
1830
|
+
---
|
|
1831
|
+
|
|
1832
|
+
## Quality Gates
|
|
1833
|
+
|
|
1834
|
+
<quality_checks>
|
|
1835
|
+
**Coverage Checklist (15+ categories):**
|
|
1836
|
+
|
|
1837
|
+
- ✅ Package Architecture
|
|
1838
|
+
- ✅ Code Conventions
|
|
1839
|
+
- ✅ State Management
|
|
1840
|
+
- ✅ Testing Standards
|
|
1841
|
+
- ✅ Design System
|
|
1842
|
+
- ✅ Accessibility
|
|
1843
|
+
- ✅ Build & Tooling
|
|
1844
|
+
- ✅ CI/CD
|
|
1845
|
+
- ✅ Environment
|
|
1846
|
+
- ✅ ADRs
|
|
1847
|
+
- ✅ AI Optimization
|
|
1848
|
+
- ✅ Performance
|
|
1849
|
+
- ✅ Security
|
|
1850
|
+
- ✅ Git Workflow
|
|
1851
|
+
- ✅ Anti-Patterns
|
|
1852
|
+
|
|
1853
|
+
**Quality Standards:**
|
|
1854
|
+
|
|
1855
|
+
- ✅ Every pattern has 3+ real examples
|
|
1856
|
+
- ✅ All file references include line numbers
|
|
1857
|
+
- ✅ Rationale explains WHY, not just WHAT
|
|
1858
|
+
- ✅ Anti-patterns have clear consequences
|
|
1859
|
+
- ✅ Quick reference is copy-paste ready
|
|
1860
|
+
- ✅ Confidence levels are honest
|
|
1861
|
+
- ✅ Output is AI-consumable
|
|
1862
|
+
- ✅ AGENTS.md section is complete
|
|
1863
|
+
- ✅ Priority recommendations exist
|
|
1864
|
+
- ✅ Coverage gaps are identified
|
|
1865
|
+
|
|
1866
|
+
**Minimum standard:** At least 10 of 15 major categories documented with high confidence patterns.
|
|
1867
|
+
</quality_checks>
|
|
1868
|
+
|
|
1869
|
+
---
|
|
1870
|
+
|
|
1871
|
+
## Usage Instructions
|
|
1872
|
+
|
|
1873
|
+
To use this agent for comprehensive monorepo pattern scouting:
|
|
1874
|
+
|
|
1875
|
+
```bash
|
|
1876
|
+
# Comprehensive extraction covering all 15+ categories
|
|
1877
|
+
claude --agent @pattern-scout.md "Perform comprehensive monorepo pattern scouting"
|
|
1878
|
+
|
|
1879
|
+
# Focused extraction of specific areas
|
|
1880
|
+
claude --agent @pattern-scout.md "Extract package architecture and testing standards"
|
|
1881
|
+
|
|
1882
|
+
# Validation of existing extracted-standards.md
|
|
1883
|
+
claude --agent @pattern-scout.md "Review extracted-standards.md for completeness"
|
|
1884
|
+
|
|
1885
|
+
# Update after codebase changes
|
|
1886
|
+
claude --agent @pattern-scout.md "Update extracted-standards.md with new patterns"
|
|
1887
|
+
````
|
|
1888
|
+
|
|
1889
|
+
**What this agent delivers:**
|
|
1890
|
+
|
|
1891
|
+
1. Complete `extracted-standards.md` (~8,000-12,000 lines)
|
|
1892
|
+
2. Coverage of 15+ major categories
|
|
1893
|
+
3. Production-grade standards (Vercel/GitHub/Shopify quality)
|
|
1894
|
+
4. AI-optimized format
|
|
1895
|
+
5. Actionable implementation plan
|
|
1896
|
+
|
|
1897
|
+
**Time investment:**
|
|
1898
|
+
|
|
1899
|
+
- Comprehensive extraction: ~6 hours
|
|
1900
|
+
- Focused extraction (3-5 categories): ~2 hours
|
|
1901
|
+
- Validation/updates: ~30-60 minutes
|