@atlashub/smartstack-cli 4.81.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.documentation/agents.html +124 -585
- package/.documentation/ba-develop.html +852 -0
- package/.documentation/ba-skills.html +465 -0
- package/.documentation/business-analyse.html +385 -1570
- package/.documentation/cli-commands.html +162 -799
- package/.documentation/commands.html +902 -1338
- package/.documentation/css/styles.css +34 -1
- package/.documentation/efcore.html +161 -2599
- package/.documentation/gitflow.html +62 -105
- package/.documentation/hooks.html +94 -343
- package/.documentation/index.html +116 -385
- package/.documentation/init.html +217 -1566
- package/.documentation/installation.html +121 -1470
- package/.documentation/license.html +90 -450
- package/.documentation/ralph-loop.html +105 -602
- package/dist/index.js +9307 -79030
- package/dist/index.js.map +1 -1
- package/package.json +5 -19
- package/scripts/generate-docs/README.md +87 -0
- package/scripts/generate-docs/index.ts +175 -0
- package/scripts/generate-docs/lib/context-builder.ts +81 -0
- package/scripts/generate-docs/lib/handlebars-setup.ts +162 -0
- package/scripts/generate-docs/lib/markdown-parser.ts +86 -0
- package/scripts/generate-docs/lib/sidebar-builder.ts +80 -0
- package/scripts/generate-docs/lib/skill-parser.ts +171 -0
- package/scripts/generate-docs/lib/stats.ts +32 -0
- package/scripts/generate-docs/lib/version.ts +17 -0
- package/scripts/generate-docs/templates/layout.hbs +33 -0
- package/scripts/generate-docs/templates/pages/_generic.hbs +12 -0
- package/scripts/generate-docs/templates/pages/ba-develop.hbs +10 -0
- package/scripts/generate-docs/templates/pages/ba-skills.hbs +8 -0
- package/scripts/generate-docs/templates/pages/business-analyse.hbs +1 -0
- package/scripts/generate-docs/templates/pages/commands.hbs +13 -0
- package/scripts/generate-docs/templates/pages/gitflow.hbs +2164 -0
- package/scripts/generate-docs/templates/pages/index.hbs +5 -0
- package/scripts/generate-docs/templates/partials/breadcrumb.hbs +6 -0
- package/scripts/generate-docs/templates/partials/header.hbs +22 -0
- package/scripts/generate-docs/templates/partials/sidebar.hbs +32 -0
- package/scripts/generate-docs/templates/partials/skill-card.hbs +22 -0
- package/scripts/generate-docs/templates/partials/skill-grid.hbs +5 -0
- package/scripts/generate-docs/templates/partials/skill-table.hbs +18 -0
- package/scripts/generate-docs/templates/partials/stats-bar.hbs +20 -0
- package/scripts/test-migration-program-cs.mts +94 -0
- package/templates/agents/explore-codebase.md +2 -3
- package/templates/agents/explore-docs.md +5 -5
- package/templates/hooks/hooks.json +0 -9
- package/templates/project/Program.cs.template +17 -5
- package/templates/project/appsettings.json.template +208 -195
- package/templates/project/claude-md/api.CLAUDE.md.template +27 -2
- package/templates/project/patch-smartstack-theme.cjs.template +42 -0
- package/templates/scripts/statusline/README.md +47 -0
- package/templates/scripts/statusline/index.js +224 -0
- package/templates/skills/CLAUDE.md +235 -0
- package/templates/skills/ba-develop/SKILL.md +310 -0
- package/templates/skills/ba-develop/cli/compute-page-diff/__tests__/compute-page-diff.test.ts +177 -0
- package/templates/skills/ba-develop/cli/compute-page-diff/compute-diff.ts +51 -0
- package/templates/skills/ba-develop/cli/compute-page-diff/disk-drift.ts +55 -0
- package/templates/skills/ba-develop/cli/compute-page-diff/index.ts +89 -0
- package/templates/skills/ba-develop/cli/compute-page-diff/scan-pagespecs.ts +115 -0
- package/templates/skills/ba-develop/cli/compute-page-diff/types.ts +63 -0
- package/templates/skills/ba-develop/cli/compute-page-diff/validate.ts +20 -0
- package/templates/skills/ba-develop/cli/update-snapshot/__tests__/update-snapshot.test.ts +73 -0
- package/templates/skills/ba-develop/cli/update-snapshot/execute.ts +24 -0
- package/templates/skills/ba-develop/cli/update-snapshot/index.ts +61 -0
- package/templates/skills/ba-develop/cli/update-snapshot/types.ts +40 -0
- package/templates/skills/ba-develop/cli/update-snapshot/validate.ts +17 -0
- package/templates/skills/ba-develop/references/anti-patterns.md +101 -0
- package/templates/skills/ba-develop/references/auto-healing.md +191 -0
- package/templates/skills/ba-develop/references/commit-checkpoints.md +79 -0
- package/templates/skills/ba-develop/references/gates.md +380 -0
- package/templates/skills/ba-develop/references/output-contract.md +95 -0
- package/templates/skills/ba-develop/references/phases-detail.md +592 -0
- package/templates/skills/ba-develop-plan/SKILL.md +239 -0
- package/templates/skills/ba-develop-plan/cli/preflight-develop-plan/__tests__/validate.test.ts +225 -0
- package/templates/skills/ba-develop-plan/cli/preflight-develop-plan/index.ts +102 -0
- package/templates/skills/ba-develop-plan/cli/preflight-develop-plan/types.ts +121 -0
- package/templates/skills/ba-develop-plan/cli/preflight-develop-plan/validate.ts +261 -0
- package/templates/skills/business-analyse/_workflow/README.md +34 -0
- package/templates/skills/business-analyse/_workflow/ba-files.md +174 -0
- package/templates/skills/business-analyse/_workflow/code-discipline.md +104 -0
- package/templates/skills/business-analyse/_workflow/communication.md +63 -0
- package/templates/skills/business-analyse/_workflow/completeAuto-discipline.md +79 -0
- package/templates/skills/business-analyse/_workflow/context-documents.md +45 -0
- package/templates/skills/business-analyse/_workflow/doc-templates.md +318 -0
- package/templates/skills/business-analyse/audit-actors/SKILL.md +97 -0
- package/templates/skills/business-analyse/audit-cross-dimension/SKILL.md +127 -0
- package/templates/skills/business-analyse/audit-cross-ref-code/SKILL.md +119 -0
- package/templates/skills/business-analyse/audit-data-model/SKILL.md +343 -0
- package/templates/skills/business-analyse/audit-menu/SKILL.md +97 -0
- package/templates/skills/business-analyse/audit-prd/SKILL.md +479 -0
- package/templates/skills/business-analyse/audit-pre-dev/SKILL.md +135 -0
- package/templates/skills/business-analyse/audit-rbac/SKILL.md +93 -0
- package/templates/skills/business-analyse/audit-rules/SKILL.md +182 -0
- package/templates/skills/business-analyse/audit-screens/SKILL.md +169 -0
- package/templates/skills/business-analyse/audit-sections/SKILL.md +174 -0
- package/templates/skills/business-analyse/audit-use-cases/SKILL.md +245 -0
- package/templates/skills/business-analyse/create-actors/SKILL.md +129 -0
- package/templates/skills/business-analyse/create-ba-order/SKILL.md +182 -0
- package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/__tests__/generate.test.ts +151 -0
- package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/__tests__/graph.test.ts +173 -0
- package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/generate.ts +273 -0
- package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/graph.ts +193 -0
- package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/index.ts +108 -0
- package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/types.ts +106 -0
- package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/validate.ts +79 -0
- package/templates/skills/business-analyse/create-business-rules/SKILL.md +302 -0
- package/templates/skills/business-analyse/create-business-rules/levels/access-rules.md +105 -0
- package/templates/skills/business-analyse/create-business-rules/levels/elaborate.md +193 -0
- package/templates/skills/business-analyse/create-business-rules/levels/identify.md +157 -0
- package/templates/skills/business-analyse/create-business-rules/levels/link.md +86 -0
- package/templates/skills/business-analyse/create-data-model/SKILL.md +319 -0
- package/templates/skills/business-analyse/create-data-model/levels/attributes.md +130 -0
- package/templates/skills/business-analyse/create-data-model/levels/identify.md +100 -0
- package/templates/skills/business-analyse/create-data-model/levels/relationships.md +97 -0
- package/templates/skills/business-analyse/create-menu/SKILL.md +191 -0
- package/templates/skills/business-analyse/create-menu/levels/applications.md +85 -0
- package/templates/skills/business-analyse/create-menu/levels/modules.md +81 -0
- package/templates/skills/business-analyse/create-menu/levels/resources.md +75 -0
- package/templates/skills/business-analyse/create-menu/levels/sections.md +82 -0
- package/templates/skills/business-analyse/create-plan-development/SKILL.md +93 -0
- package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/__tests__/graph.test.ts +271 -0
- package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/__tests__/parse.test.ts +177 -0
- package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/generate.ts +317 -0
- package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/graph.ts +233 -0
- package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/index.ts +106 -0
- package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/parse.ts +346 -0
- package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/types.ts +160 -0
- package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/validate.ts +118 -0
- package/templates/skills/business-analyse/create-prd/SKILL.md +228 -0
- package/templates/skills/business-analyse/create-rbac/SKILL.md +255 -0
- package/templates/skills/business-analyse/create-rbac/levels/detail.md +86 -0
- package/templates/skills/business-analyse/create-rbac/levels/discovery.md +63 -0
- package/templates/skills/business-analyse/create-rbac/levels/review.md +66 -0
- package/templates/skills/business-analyse/create-screen/SKILL.md +386 -0
- package/templates/skills/business-analyse/create-screen/levels/dashboard-screens.md +94 -0
- package/templates/skills/business-analyse/create-screen/levels/form-screens.md +142 -0
- package/templates/skills/business-analyse/create-screen/levels/home-screens.md +151 -0
- package/templates/skills/business-analyse/create-screen/levels/kanban-screens.md +86 -0
- package/templates/skills/business-analyse/create-screen/levels/list-screens.md +134 -0
- package/templates/skills/business-analyse/create-screen/references/post-check.md +101 -0
- package/templates/skills/business-analyse/create-screen/references/react-templates.md +252 -0
- package/templates/skills/business-analyse/create-screen/references/smartcomponents.md +419 -0
- package/templates/skills/business-analyse/create-screen/references/type-mapping.md +150 -0
- package/templates/skills/business-analyse/create-use-case/SKILL.md +347 -0
- package/templates/skills/business-analyse/create-use-case/levels/detail.md +136 -0
- package/templates/skills/business-analyse/create-use-case/levels/discovery.md +110 -0
- package/templates/skills/business-analyse/loop/SKILL.md +401 -0
- package/templates/skills/business-analyse/modeling-detail/SKILL.md +241 -0
- package/templates/skills/business-analyse/modeling-inventory/SKILL.md +174 -0
- package/templates/skills/business-analyse/reconcile-menu/SKILL.md +180 -0
- package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/__tests__/clean.test.ts +266 -0
- package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/__tests__/detect.test.ts +231 -0
- package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/__tests__/scan.test.ts +154 -0
- package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/clean.ts +319 -0
- package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/detect.ts +256 -0
- package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/index.ts +126 -0
- package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/scan.ts +175 -0
- package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/types.ts +136 -0
- package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/validate.ts +32 -0
- package/templates/skills/check-version/SKILL.md +196 -196
- package/templates/skills/cli-app-sync/SKILL.md +9 -9
- package/templates/skills/cli-app-sync/references/comparison-map.md +4 -4
- package/templates/skills/cli-app-sync/references/diff-entities.md +6 -6
- package/templates/skills/conventions/SKILL.md +64 -0
- package/templates/skills/dev-start/SKILL.md +190 -237
- package/templates/skills/development/SKILL.md +87 -0
- package/templates/skills/development/audit/SKILL.md +156 -0
- package/templates/skills/development/audit/routing-dynamic/SKILL.md +196 -0
- package/templates/skills/development/audit-dev-api/SKILL.md +331 -0
- package/templates/skills/development/audit-dev-api/cli/audit-dev-api/__tests__/end-to-end.test.ts +364 -0
- package/templates/skills/development/audit-dev-api/cli/audit-dev-api/audit.ts +646 -0
- package/templates/skills/development/audit-dev-api/cli/audit-dev-api/index.ts +140 -0
- package/templates/skills/development/audit-dev-api/cli/audit-dev-api/types.ts +158 -0
- package/templates/skills/development/audit-dev-api/cli/audit-dev-api/validate.ts +45 -0
- package/templates/skills/development/audit-dev-core/SKILL.md +182 -0
- package/templates/skills/development/audit-dev-data/SKILL.md +195 -0
- package/templates/skills/development/audit-dev-domain/SKILL.md +184 -0
- package/templates/skills/development/audit-dev-frontend/SKILL.md +530 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/__tests__/end-to-end.test.ts +202 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/apply.ts +31 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/audit.ts +734 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/index.ts +125 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/types.ts +165 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/validate.ts +36 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/__tests__/dev-ui-022.test.ts +193 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/apply.ts +374 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/audit.ts +1126 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/index.ts +141 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/types.ts +218 -0
- package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/validate.ts +80 -0
- package/templates/skills/development/audit-dev-tests/SKILL.md +82 -0
- package/templates/skills/development/audit-dev-tests/cli/audit-dev-tests/__tests__/audit.test.ts +220 -0
- package/templates/skills/development/audit-dev-tests/cli/audit-dev-tests/audit.ts +185 -0
- package/templates/skills/development/audit-dev-tests/cli/audit-dev-tests/index.ts +84 -0
- package/templates/skills/development/audit-dev-tests/cli/audit-dev-tests/types.ts +48 -0
- package/templates/skills/development/audit-dev-tests/cli/audit-dev-tests/validate.ts +36 -0
- package/templates/skills/development/audit-dev-wire/SKILL.md +144 -0
- package/templates/skills/development/audit-dev-wire/cli/audit-dev-wire/__tests__/audit.test.ts +171 -0
- package/templates/skills/development/audit-dev-wire/cli/audit-dev-wire/audit.ts +307 -0
- package/templates/skills/development/audit-dev-wire/cli/audit-dev-wire/index.ts +139 -0
- package/templates/skills/development/audit-dev-wire/cli/audit-dev-wire/types.ts +110 -0
- package/templates/skills/development/audit-dev-wire/cli/audit-dev-wire/validate.ts +16 -0
- package/templates/skills/development/backend/business-layer/SKILL.md +255 -0
- package/templates/skills/development/backend/business-layer/cli/scaffold-business/__tests__/generate.test.ts +254 -0
- package/templates/skills/development/backend/business-layer/cli/scaffold-business/generate.ts +842 -0
- package/templates/skills/development/backend/business-layer/cli/scaffold-business/index.ts +56 -0
- package/templates/skills/development/backend/business-layer/cli/scaffold-business/types.ts +112 -0
- package/templates/skills/development/backend/business-layer/cli/scaffold-business/validate.ts +24 -0
- package/templates/skills/development/backend/controller/SKILL.md +154 -0
- package/templates/skills/development/backend/controller/cli/scaffold-controller/__tests__/generate.test.ts +345 -0
- package/templates/skills/development/backend/controller/cli/scaffold-controller/generate.ts +280 -0
- package/templates/skills/development/backend/controller/cli/scaffold-controller/index.ts +49 -0
- package/templates/skills/development/backend/controller/cli/scaffold-controller/types.ts +72 -0
- package/templates/skills/development/backend/controller/cli/scaffold-controller/validate.ts +14 -0
- package/templates/skills/development/backend/core-seed/SKILL.md +177 -0
- package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/__tests__/build-spec.test.ts +163 -0
- package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/__tests__/generate.test.ts +330 -0
- package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/__tests__/validate.test.ts +126 -0
- package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/build-spec.ts +287 -0
- package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/generate.ts +826 -0
- package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/index.ts +188 -0
- package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/types.ts +163 -0
- package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/validate.ts +129 -0
- package/templates/skills/development/backend/data-layer/SKILL.md +163 -0
- package/templates/skills/development/backend/data-layer/cli/scaffold-entity/__tests__/generate.test.ts +155 -0
- package/templates/skills/development/backend/data-layer/cli/scaffold-entity/generate.ts +232 -0
- package/templates/skills/development/backend/data-layer/cli/scaffold-entity/index.ts +34 -0
- package/templates/skills/development/backend/data-layer/cli/scaffold-entity/types.ts +60 -0
- package/templates/skills/development/backend/data-layer/cli/scaffold-entity/validate.ts +42 -0
- package/templates/skills/development/backend/data-layer/cli/scaffold-migration/execute.ts +13 -0
- package/templates/skills/development/backend/data-layer/cli/scaffold-migration/index.ts +25 -0
- package/templates/skills/development/backend/data-layer/cli/scaffold-migration/types.ts +11 -0
- package/templates/skills/development/backend/data-layer/cli/scaffold-migration/validate.ts +9 -0
- package/templates/skills/development/backend/screen-controller/SKILL.md +169 -0
- package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/__tests__/generate.test.ts +329 -0
- package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/__tests__/hub-views.test.ts +105 -0
- package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/__tests__/parse-pagespec.test.ts +137 -0
- package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/generate.ts +437 -0
- package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/index.ts +108 -0
- package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/parse-pagespec.ts +104 -0
- package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/types.ts +101 -0
- package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/validate.ts +26 -0
- package/templates/skills/development/backend/seed-data/SKILL.md +91 -0
- package/templates/skills/development/backend/seed-data/cli/scaffold-seed/generate.ts +471 -0
- package/templates/skills/development/backend/seed-data/cli/scaffold-seed/index.ts +74 -0
- package/templates/skills/development/backend/seed-data/cli/scaffold-seed/types.ts +104 -0
- package/templates/skills/development/backend/seed-data/cli/scaffold-seed/validate.ts +63 -0
- package/templates/skills/development/backend/structure/SKILL.md +47 -0
- package/templates/skills/development/debug/SKILL.md +62 -0
- package/templates/skills/development/debug/audit-bug/SKILL.md +185 -0
- package/templates/skills/development/debug/backend/SKILL.md +114 -0
- package/templates/skills/development/debug/discuss-bug/SKILL.md +193 -0
- package/templates/skills/development/debug/fix-bug/SKILL.md +172 -0
- package/templates/skills/development/debug/frontend/SKILL.md +215 -0
- package/templates/skills/development/frontend/api-client/SKILL.md +158 -0
- package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/__tests__/generate.test.ts +1180 -0
- package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/__tests__/screen-strata-contract.test.ts +261 -0
- package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/__tests__/url-parity.test.ts +201 -0
- package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/generate.ts +875 -0
- package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/index.ts +36 -0
- package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/types.ts +251 -0
- package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/validate.ts +10 -0
- package/templates/skills/development/frontend/auth/SKILL.md +77 -0
- package/templates/skills/development/frontend/auth/cli/scaffold-frontend-auth/generate.ts +306 -0
- package/templates/skills/development/frontend/auth/cli/scaffold-frontend-auth/index.ts +179 -0
- package/templates/skills/development/frontend/auth/cli/scaffold-frontend-auth/types.ts +22 -0
- package/templates/skills/development/frontend/auth/cli/scaffold-frontend-auth/validate.ts +37 -0
- package/templates/skills/development/frontend/component/SKILL.md +347 -0
- package/templates/skills/development/frontend/component/cli/scaffold-component/__tests__/generate.test.ts +1237 -0
- package/templates/skills/development/frontend/component/cli/scaffold-component/generate.ts +1923 -0
- package/templates/skills/development/frontend/component/cli/scaffold-component/index.ts +155 -0
- package/templates/skills/development/frontend/component/cli/scaffold-component/types.ts +290 -0
- package/templates/skills/development/frontend/component/cli/scaffold-component/validate.ts +16 -0
- package/templates/skills/development/frontend/component/cli/validate-page/__tests__/execute.test.ts +231 -0
- package/templates/skills/development/frontend/component/cli/validate-page/execute.ts +598 -0
- package/templates/skills/development/frontend/component/cli/validate-page/index.ts +88 -0
- package/templates/skills/development/frontend/component/cli/validate-page/types.ts +58 -0
- package/templates/skills/development/frontend/component/cli/validate-page/validate.ts +28 -0
- package/templates/skills/development/frontend/component/patterns/README.md +42 -0
- package/templates/skills/development/frontend/component/patterns/detail-page.md +133 -0
- package/templates/skills/development/frontend/component/patterns/entity-card.md +148 -0
- package/templates/skills/development/frontend/component/patterns/form-page.md +191 -0
- package/templates/skills/development/frontend/component/patterns/kanban-board.md +195 -0
- package/templates/skills/development/frontend/component/patterns/list-page.md +175 -0
- package/templates/skills/development/frontend/extension-config/SKILL.md +108 -0
- package/templates/skills/development/frontend/extension-config/cli/scaffold-extension-config/generate.ts +64 -0
- package/templates/skills/development/frontend/extension-config/cli/scaffold-extension-config/index.ts +70 -0
- package/templates/skills/development/frontend/extension-config/cli/scaffold-extension-config/types.ts +27 -0
- package/templates/skills/development/frontend/extension-config/cli/scaffold-extension-config/validate.ts +16 -0
- package/templates/skills/development/frontend/layout/SKILL.md +52 -0
- package/templates/skills/development/frontend/layout/cli/scaffold-layout/__tests__/generate.test.ts +66 -0
- package/templates/skills/development/frontend/layout/cli/scaffold-layout/generate.ts +175 -0
- package/templates/skills/development/frontend/layout/cli/scaffold-layout/index.ts +104 -0
- package/templates/skills/development/frontend/layout/cli/scaffold-layout/types.ts +17 -0
- package/templates/skills/development/frontend/layout/cli/scaffold-layout/validate.ts +37 -0
- package/templates/skills/development/frontend/routes/SKILL.md +152 -0
- package/templates/skills/development/frontend/routes/cli/aggregate-component-registry/generate.ts +216 -0
- package/templates/skills/development/frontend/routes/cli/aggregate-component-registry/index.ts +121 -0
- package/templates/skills/development/frontend/routes/cli/aggregate-component-registry/types.ts +69 -0
- package/templates/skills/development/frontend/routes/cli/aggregate-component-registry/validate.ts +23 -0
- package/templates/skills/development/frontend/routes/cli/scaffold-routes/__tests__/generate.test.ts +292 -0
- package/templates/skills/development/frontend/routes/cli/scaffold-routes/generate.ts +270 -0
- package/templates/skills/development/frontend/routes/cli/scaffold-routes/index.ts +42 -0
- package/templates/skills/development/frontend/routes/cli/scaffold-routes/types.ts +114 -0
- package/templates/skills/development/frontend/routes/cli/scaffold-routes/validate.ts +68 -0
- package/templates/skills/development/frontend/structure/SKILL.md +119 -0
- package/templates/skills/development/frontend/theme/SKILL.md +48 -0
- package/templates/skills/development/frontend/theme/cli/scaffold-theme/__tests__/generate.test.ts +53 -0
- package/templates/skills/development/frontend/theme/cli/scaffold-theme/generate.ts +129 -0
- package/templates/skills/development/frontend/theme/cli/scaffold-theme/index.ts +102 -0
- package/templates/skills/development/frontend/theme/cli/scaffold-theme/types.ts +48 -0
- package/templates/skills/development/frontend/theme/cli/scaffold-theme/validate.ts +37 -0
- package/templates/skills/development/frontend/ui-polish/SKILL.md +192 -0
- package/templates/skills/development/frontend/ui-polish/cli/ui-polish/__tests__/r18.test.ts +153 -0
- package/templates/skills/development/frontend/ui-polish/cli/ui-polish/__tests__/r19.test.ts +307 -0
- package/templates/skills/development/frontend/ui-polish/cli/ui-polish/__tests__/r20.test.ts +167 -0
- package/templates/skills/development/frontend/ui-polish/cli/ui-polish/__tests__/shared-scan.test.ts +262 -0
- package/templates/skills/development/frontend/ui-polish/cli/ui-polish/apply.ts +580 -0
- package/templates/skills/development/frontend/ui-polish/cli/ui-polish/audit.ts +825 -0
- package/templates/skills/development/frontend/ui-polish/cli/ui-polish/index.ts +133 -0
- package/templates/skills/development/frontend/ui-polish/cli/ui-polish/types.ts +121 -0
- package/templates/skills/development/frontend/ui-polish/cli/ui-polish/validate.ts +73 -0
- package/templates/skills/development/frontend/ui-polish/tokens.json +292 -0
- package/templates/skills/development/frontend/ui-primitives/SKILL.md +88 -0
- package/templates/skills/development/frontend/ui-primitives/cli/scaffold-ui-primitives/__tests__/generate.test.ts +158 -0
- package/templates/skills/development/frontend/ui-primitives/cli/scaffold-ui-primitives/generate.ts +345 -0
- package/templates/skills/development/frontend/ui-primitives/cli/scaffold-ui-primitives/index.ts +142 -0
- package/templates/skills/development/frontend/ui-primitives/cli/scaffold-ui-primitives/types.ts +27 -0
- package/templates/skills/development/frontend/ui-primitives/cli/scaffold-ui-primitives/validate.ts +37 -0
- package/templates/skills/development/run/SKILL.md +61 -0
- package/templates/skills/development/run/backend/SKILL.md +106 -0
- package/templates/skills/development/run/frontend/SKILL.md +116 -0
- package/templates/skills/development/smoke-test/SKILL.md +99 -0
- package/templates/skills/development/smoke-test/cli/run-smoke/execute.ts +424 -0
- package/templates/skills/development/smoke-test/cli/run-smoke/index.ts +75 -0
- package/templates/skills/development/smoke-test/cli/run-smoke/types.ts +100 -0
- package/templates/skills/development/testing/SKILL.md +148 -0
- package/templates/skills/development/testing/cli/scaffold-tests/generate.ts +530 -0
- package/templates/skills/development/testing/cli/scaffold-tests/index.ts +83 -0
- package/templates/skills/development/testing/cli/scaffold-tests/types.ts +51 -0
- package/templates/skills/development/testing/cli/scaffold-tests/validate.ts +33 -0
- package/templates/skills/development/testing/cli/scaffold-tests-from-ac/__tests__/generate.test.ts +188 -0
- package/templates/skills/development/testing/cli/scaffold-tests-from-ac/__tests__/parse-ac.test.ts +191 -0
- package/templates/skills/development/testing/cli/scaffold-tests-from-ac/generate.ts +190 -0
- package/templates/skills/development/testing/cli/scaffold-tests-from-ac/index.ts +138 -0
- package/templates/skills/development/testing/cli/scaffold-tests-from-ac/parse-ac.ts +172 -0
- package/templates/skills/development/testing/cli/scaffold-tests-from-ac/types.ts +104 -0
- package/templates/skills/development/testing/cli/scaffold-tests-from-ac/validate.ts +57 -0
- package/templates/skills/development/testing/cli/test-report/execute.ts +140 -0
- package/templates/skills/development/testing/cli/test-report/index.ts +96 -0
- package/templates/skills/development/testing/cli/test-report/types.ts +52 -0
- package/templates/skills/development/testing/cli/test-report/validate.ts +26 -0
- package/templates/skills/development/testing/fix-build/SKILL.md +81 -0
- package/templates/skills/development/testing/smoke-http/SKILL.md +123 -0
- package/templates/skills/development/testing/smoke-http/cli/smoke-http/execute.ts +129 -0
- package/templates/skills/development/testing/smoke-http/cli/smoke-http/index.ts +113 -0
- package/templates/skills/development/testing/smoke-http/cli/smoke-http/types.ts +62 -0
- package/templates/skills/development/testing/smoke-http/cli/smoke-http/validate.ts +36 -0
- package/templates/skills/development/testing/ui-test/SKILL.md +128 -0
- package/templates/skills/development/testing/ui-test/cli/build-manifest/generate.ts +129 -0
- package/templates/skills/development/testing/ui-test/cli/build-manifest/index.ts +80 -0
- package/templates/skills/development/testing/ui-test/cli/build-manifest/types.ts +72 -0
- package/templates/skills/development/testing/ui-test/cli/build-manifest/validate.ts +44 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/execute.ts +136 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/index.ts +75 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/lib/dev-browser-driver.ts +250 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/delete.js.hbs +83 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/detail.js.hbs +87 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/edit.js.hbs +91 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/form-submit.js.hbs +82 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/list.js.hbs +125 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/permission-negative.js.hbs +65 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/types.ts +57 -0
- package/templates/skills/development/testing/ui-test/cli/run-ui-test/validate.ts +56 -0
- package/templates/skills/documentation/SKILL.md +168 -139
- package/templates/skills/documentation/cli/extract-doc/__tests__/forbidden.test.ts +136 -0
- package/templates/skills/documentation/cli/extract-doc/__tests__/overflow.test.ts +76 -0
- package/templates/skills/documentation/cli/extract-doc/__tests__/required.test.ts +147 -0
- package/templates/skills/documentation/cli/extract-doc/extract.ts +657 -0
- package/templates/skills/documentation/cli/extract-doc/index.ts +102 -0
- package/templates/skills/documentation/cli/extract-doc/types.ts +133 -0
- package/templates/skills/documentation/cli/extract-doc/validate.ts +35 -0
- package/templates/skills/documentation/cli/scaffold-doc/generate.ts +198 -0
- package/templates/skills/documentation/cli/scaffold-doc/index.ts +61 -0
- package/templates/skills/documentation/cli/scaffold-doc/types.ts +72 -0
- package/templates/skills/documentation/cli/scaffold-doc/validate.ts +33 -0
- package/templates/skills/documentation/data-schema.md +18 -38
- package/templates/skills/documentation/steps/step-01-scan.md +59 -113
- package/templates/skills/documentation/steps/step-02-generate.md +158 -231
- package/templates/skills/documentation/steps/step-03-validate.md +101 -280
- package/templates/skills/documentation/templates.md +403 -92
- package/templates/skills/efcore/SKILL.md +88 -308
- package/templates/skills/efcore/_shared.md +140 -0
- package/templates/skills/efcore/agents/create.md +69 -0
- package/templates/skills/efcore/agents/db-update.md +58 -0
- package/templates/skills/efcore/agents/list.md +35 -0
- package/templates/skills/efcore/agents/rebase-snapshot.md +50 -0
- package/templates/skills/efcore/agents/recreate-db.md +78 -0
- package/templates/skills/efcore/agents/squash.md +78 -0
- package/templates/skills/efcore/agents/status.md +35 -0
- package/templates/skills/efcore/cli/create/execute.ts +164 -0
- package/templates/skills/efcore/cli/create/index.ts +51 -0
- package/templates/skills/efcore/cli/create/types.ts +35 -0
- package/templates/skills/efcore/cli/create/validate.ts +29 -0
- package/templates/skills/efcore/cli/lib/detect-dbcontexts.ts +195 -0
- package/templates/skills/efcore/cli/lib/ef-runner.ts +144 -0
- package/templates/skills/efcore/cli/lib/migration-name.ts +56 -0
- package/templates/skills/efcore/cli/lib/parse-csproj-version.ts +45 -0
- package/templates/skills/efcore/cli/list/execute.ts +83 -0
- package/templates/skills/efcore/cli/list/index.ts +60 -0
- package/templates/skills/efcore/cli/list/types.ts +46 -0
- package/templates/skills/efcore/cli/list/validate.ts +20 -0
- package/templates/skills/efcore/cli/rebase-snapshot/execute.ts +21 -0
- package/templates/skills/efcore/cli/rebase-snapshot/index.ts +53 -0
- package/templates/skills/efcore/cli/rebase-snapshot/types.ts +20 -0
- package/templates/skills/efcore/cli/rebase-snapshot/validate.ts +25 -0
- package/templates/skills/efcore/cli/squash/execute.ts +298 -0
- package/templates/skills/efcore/cli/squash/index.ts +57 -0
- package/templates/skills/efcore/cli/squash/types.ts +38 -0
- package/templates/skills/efcore/cli/squash/validate.ts +30 -0
- package/templates/skills/efcore/cli/status/execute.ts +152 -0
- package/templates/skills/efcore/cli/status/index.ts +45 -0
- package/templates/skills/efcore/cli/status/types.ts +32 -0
- package/templates/skills/efcore/cli/status/validate.ts +20 -0
- package/templates/skills/external/context7/SKILL.md +121 -0
- package/templates/skills/external/dev-browser/SKILL.md +134 -0
- package/templates/skills/gitflow/SKILL.md +139 -392
- package/templates/skills/gitflow/_shared.md +24 -620
- package/templates/skills/gitflow/agents/abort.md +47 -0
- package/templates/skills/gitflow/agents/cleanup.md +50 -0
- package/templates/skills/gitflow/agents/commit.md +41 -0
- package/templates/skills/gitflow/agents/finish.md +47 -0
- package/templates/skills/gitflow/agents/init.md +41 -0
- package/templates/skills/gitflow/agents/merge.md +44 -0
- package/templates/skills/gitflow/agents/pr.md +39 -0
- package/templates/skills/gitflow/agents/start.md +42 -0
- package/templates/skills/gitflow/agents/status.md +39 -0
- package/templates/skills/gitflow/agents/sync.md +38 -0
- package/templates/skills/gitflow/cli/abort/execute.ts +61 -0
- package/templates/skills/gitflow/cli/abort/index.ts +116 -0
- package/templates/skills/gitflow/cli/abort/types.ts +21 -0
- package/templates/skills/gitflow/cli/abort/validate.ts +38 -0
- package/templates/skills/gitflow/cli/cleanup/execute.ts +107 -0
- package/templates/skills/gitflow/cli/cleanup/index.ts +122 -0
- package/templates/skills/gitflow/cli/cleanup/types.ts +26 -0
- package/templates/skills/gitflow/cli/cleanup/validate.ts +33 -0
- package/templates/skills/gitflow/cli/commit/execute.ts +146 -0
- package/templates/skills/gitflow/cli/commit/index.ts +77 -0
- package/templates/skills/gitflow/cli/commit/types.ts +36 -0
- package/templates/skills/gitflow/cli/commit/validate.ts +38 -0
- package/templates/skills/gitflow/cli/finish/execute.ts +127 -0
- package/templates/skills/gitflow/cli/finish/index.ts +106 -0
- package/templates/skills/gitflow/cli/finish/types.ts +25 -0
- package/templates/skills/gitflow/cli/finish/validate.ts +44 -0
- package/templates/skills/gitflow/cli/generate-msg/execute.ts +51 -0
- package/templates/skills/gitflow/cli/generate-msg/index.ts +73 -0
- package/templates/skills/gitflow/cli/generate-msg/types.ts +37 -0
- package/templates/skills/gitflow/cli/generate-msg/validate.ts +42 -0
- package/templates/skills/gitflow/cli/init/execute.ts +186 -0
- package/templates/skills/gitflow/cli/init/index.ts +127 -0
- package/templates/skills/gitflow/cli/init/types.ts +63 -0
- package/templates/skills/gitflow/cli/init/validate.ts +56 -0
- package/templates/skills/gitflow/cli/lib/branch.ts +83 -0
- package/templates/skills/gitflow/cli/lib/config.ts +149 -0
- package/templates/skills/gitflow/cli/lib/efcore.ts +136 -0
- package/templates/skills/gitflow/cli/lib/git.ts +212 -0
- package/templates/skills/gitflow/cli/lib/output.ts +49 -0
- package/templates/skills/gitflow/cli/lib/paths.ts +54 -0
- package/templates/skills/gitflow/cli/lib/platform.ts +44 -0
- package/templates/skills/gitflow/cli/lib/provider.ts +147 -0
- package/templates/skills/gitflow/cli/lib/types.ts +189 -0
- package/templates/skills/gitflow/cli/lib/version.ts +152 -0
- package/templates/skills/gitflow/cli/lib/worktree.ts +170 -0
- package/templates/skills/gitflow/cli/merge/execute.ts +93 -0
- package/templates/skills/gitflow/cli/merge/index.ts +109 -0
- package/templates/skills/gitflow/cli/merge/types.ts +24 -0
- package/templates/skills/gitflow/cli/merge/validate.ts +33 -0
- package/templates/skills/gitflow/cli/pr/execute.ts +131 -0
- package/templates/skills/gitflow/cli/pr/index.ts +115 -0
- package/templates/skills/gitflow/cli/pr/types.ts +27 -0
- package/templates/skills/gitflow/cli/pr/validate.ts +27 -0
- package/templates/skills/gitflow/cli/start/execute.ts +98 -0
- package/templates/skills/gitflow/cli/start/index.ts +75 -0
- package/templates/skills/gitflow/cli/start/types.ts +26 -0
- package/templates/skills/gitflow/cli/start/validate.ts +47 -0
- package/templates/skills/gitflow/cli/status/execute.ts +251 -0
- package/templates/skills/gitflow/cli/status/index.ts +154 -0
- package/templates/skills/gitflow/cli/status/types.ts +75 -0
- package/templates/skills/gitflow/cli/status/validate.ts +38 -0
- package/templates/skills/gitflow/cli/sync/execute.ts +84 -0
- package/templates/skills/gitflow/cli/sync/index.ts +75 -0
- package/templates/skills/gitflow/cli/sync/types.ts +25 -0
- package/templates/skills/gitflow/cli/sync/validate.ts +34 -0
- package/templates/skills/gitflow/commit-message.md +46 -0
- package/templates/skills/init/SKILL.md +54 -0
- package/templates/skills/lib/__tests__/canonical-hash.test.ts +45 -0
- package/templates/skills/lib/__tests__/page-spec-actions.test.ts +232 -0
- package/templates/skills/lib/canonical-hash.ts +40 -0
- package/templates/skills/lib/detector.ts +243 -0
- package/templates/skills/lib/dotnet.ts +238 -0
- package/templates/skills/lib/frontend-fixers.ts +151 -0
- package/templates/skills/lib/fs.ts +238 -0
- package/templates/skills/lib/git.ts +134 -0
- package/templates/skills/lib/graph.ts +138 -0
- package/templates/skills/lib/navroute-parser.ts +51 -0
- package/templates/skills/lib/output.ts +117 -0
- package/templates/skills/lib/page-spec-actions.ts +350 -0
- package/templates/skills/lib/skill-slug.ts +121 -0
- package/templates/skills/lib/string-utils.ts +140 -0
- package/templates/skills/lib/template-loader.ts +115 -0
- package/templates/skills/lib/url-conventions.ts +151 -0
- package/templates/skills/package.json +5 -0
- package/templates/skills/quick-search/SKILL.md +99 -99
- package/templates/skills/review/SKILL.md +56 -0
- package/templates/skills/smoke-generation/SKILL.md +18 -16
- package/templates/skills/ui-components/SKILL.md +136 -457
- package/templates/skills/upgrade/SKILL.md +36 -0
- package/templates/skills/utils/SKILL.md +45 -44
- package/templates/skills/utils/subcommands/test-web-config.md +152 -152
- package/templates/skills/utils/subcommands/test-web.md +123 -123
- package/templates/skills/validate-feature/SKILL.md +102 -101
- package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -140
- package/templates/skills/validate-feature/references/db-validation-checks.md +180 -180
- package/templates/skills/validate-feature/steps/step-00-dependencies.md +121 -121
- package/templates/skills/validate-feature/steps/step-01-compile.md +39 -39
- package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -45
- package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -53
- package/templates/skills/validate-feature/steps/step-04-api-smoke.md +94 -94
- package/templates/skills/validate-feature/steps/step-05-db-validation.md +149 -149
- package/templates/skills/validation/conventions/SKILL.md +193 -0
- package/templates/skills/validation/conventions/cli/validate-conventions/execute.ts +368 -0
- package/templates/skills/validation/conventions/cli/validate-conventions/index.ts +67 -0
- package/templates/skills/validation/conventions/cli/validate-conventions/types.ts +91 -0
- package/templates/skills/validation/conventions/cli/validate-conventions/validate.ts +36 -0
- package/templates/skills/validation/cross-validate/SKILL.md +83 -0
- package/templates/skills/validation/cross-validate/cli/execute.ts +576 -0
- package/templates/skills/validation/cross-validate/cli/index.ts +87 -0
- package/templates/skills/validation/cross-validate/cli/types.ts +85 -0
- package/templates/skills/validation/cross-validate/cli/validate.ts +54 -0
- package/templates/skills/validation/eslint/SKILL.md +65 -0
- package/templates/skills/validation/eslint/cli/execute.ts +413 -0
- package/templates/skills/validation/eslint/cli/index.ts +102 -0
- package/templates/skills/validation/eslint/cli/types.ts +48 -0
- package/templates/skills/validation/eslint/cli/validate.ts +43 -0
- package/templates/skills/validation/project-inventory/SKILL.md +166 -0
- package/templates/skills/validation/project-inventory/cli/project-inventory/execute.ts +397 -0
- package/templates/skills/validation/project-inventory/cli/project-inventory/index.ts +80 -0
- package/templates/skills/validation/project-inventory/cli/project-inventory/types.ts +89 -0
- package/templates/skills/validation/project-inventory/cli/project-inventory/validate.ts +35 -0
- package/templates/skills/validation/readiness-report/SKILL.md +109 -0
- package/templates/skills/validation/readiness-report/cli/execute.ts +236 -0
- package/templates/skills/validation/readiness-report/cli/index.ts +234 -0
- package/templates/skills/validation/readiness-report/cli/types.ts +61 -0
- package/templates/skills/validation/readiness-report/cli/validate.ts +54 -0
- package/templates/skills/validation/roslyn/SKILL.md +103 -0
- package/templates/skills/validation/roslyn/cli/execute.ts +616 -0
- package/templates/skills/validation/roslyn/cli/index.ts +86 -0
- package/templates/skills/validation/roslyn/cli/types.ts +50 -0
- package/templates/skills/validation/roslyn/cli/validate.ts +43 -0
- package/.documentation/apex.html +0 -649
- package/dist/mcp-entry.mjs +0 -68888
- package/dist/mcp-entry.mjs.map +0 -1
- package/scripts/extract-api-endpoints.ts +0 -325
- package/scripts/extract-business-rules.ts +0 -440
- package/scripts/generate-doc-with-mock-ui.ts +0 -804
- package/templates/agents/ba-reader.md +0 -386
- package/templates/agents/ba-writer.md +0 -810
- package/templates/agents/efcore/migration.md +0 -204
- package/templates/agents/efcore/rebase-snapshot.md +0 -202
- package/templates/agents/efcore/squash.md +0 -269
- package/templates/agents/gitflow/abort.md +0 -45
- package/templates/agents/gitflow/cleanup.md +0 -107
- package/templates/agents/gitflow/commit.md +0 -236
- package/templates/agents/gitflow/exec.md +0 -48
- package/templates/agents/gitflow/finish.md +0 -146
- package/templates/agents/gitflow/init-clone.md +0 -199
- package/templates/agents/gitflow/init-detect.md +0 -137
- package/templates/agents/gitflow/init-validate.md +0 -225
- package/templates/agents/gitflow/init.md +0 -509
- package/templates/agents/gitflow/merge.md +0 -145
- package/templates/agents/gitflow/plan.md +0 -42
- package/templates/agents/gitflow/pr.md +0 -191
- package/templates/agents/gitflow/review.md +0 -49
- package/templates/agents/gitflow/start.md +0 -147
- package/templates/agents/gitflow/status.md +0 -95
- package/templates/agents/mcp-healthcheck.md +0 -163
- package/templates/hooks/docs-drift-check.md +0 -96
- package/templates/hooks/ef-migration-check.md +0 -139
- package/templates/hooks/mcp-check.md +0 -64
- package/templates/hooks/ralph-mcp-logger.sh +0 -46
- package/templates/mcp-scaffolding/component.tsx.hbs +0 -318
- package/templates/mcp-scaffolding/controller.cs.hbs +0 -118
- package/templates/mcp-scaffolding/entity-extension.cs.hbs +0 -239
- package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +0 -117
- package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +0 -133
- package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +0 -261
- package/templates/mcp-scaffolding/service-extension.cs.hbs +0 -53
- package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +0 -436
- package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +0 -239
- package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +0 -441
- package/templates/mcp-scaffolding/tests/security.test.cs.hbs +0 -442
- package/templates/mcp-scaffolding/tests/service.test.cs.hbs +0 -402
- package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +0 -428
- package/templates/skills/_resources/config-safety.md +0 -61
- package/templates/skills/_resources/context-digest-template.md +0 -53
- package/templates/skills/_resources/doc-context-cache.md +0 -60
- package/templates/skills/_resources/docs-manifest-schema.md +0 -155
- package/templates/skills/_resources/formatting-guide.md +0 -124
- package/templates/skills/_resources/mcp-validate-documentation-spec.md +0 -181
- package/templates/skills/_shared.md +0 -228
- package/templates/skills/admin/SKILL.md +0 -48
- package/templates/skills/ai-prompt/SKILL.md +0 -171
- package/templates/skills/ai-prompt/references/ai-agent-modes.md +0 -89
- package/templates/skills/ai-prompt/references/eval-framework.md +0 -129
- package/templates/skills/ai-prompt/steps/step-00-init.md +0 -47
- package/templates/skills/ai-prompt/steps/step-01-implementation.md +0 -122
- package/templates/skills/apex/SKILL.md +0 -234
- package/templates/skills/apex/_shared.md +0 -197
- package/templates/skills/apex/references/analysis-methods.md +0 -178
- package/templates/skills/apex/references/challenge-questions.md +0 -359
- package/templates/skills/apex/references/checks/architecture-checks.sh +0 -154
- package/templates/skills/apex/references/checks/backend-checks.sh +0 -208
- package/templates/skills/apex/references/checks/frontend-checks.sh +0 -560
- package/templates/skills/apex/references/checks/infrastructure-checks.sh +0 -292
- package/templates/skills/apex/references/checks/security-checks.sh +0 -153
- package/templates/skills/apex/references/checks/seed-checks.sh +0 -610
- package/templates/skills/apex/references/code-generation.md +0 -412
- package/templates/skills/apex/references/core-seed-data.md +0 -1502
- package/templates/skills/apex/references/domain-events-pattern.md +0 -45
- package/templates/skills/apex/references/entity-hooks-pattern.md +0 -68
- package/templates/skills/apex/references/error-classification.md +0 -168
- package/templates/skills/apex/references/frontend-route-wiring-app-tsx.md +0 -91
- package/templates/skills/apex/references/licensing-enforcement.md +0 -52
- package/templates/skills/apex/references/parallel-execution.md +0 -187
- package/templates/skills/apex/references/person-extension-pattern.md +0 -619
- package/templates/skills/apex/references/post-checks.md +0 -162
- package/templates/skills/apex/references/smartstack-api.md +0 -591
- package/templates/skills/apex/references/smartstack-frontend-compliance.md +0 -616
- package/templates/skills/apex/references/smartstack-frontend.md +0 -442
- package/templates/skills/apex/references/smartstack-layers.md +0 -551
- package/templates/skills/apex/steps/step-00-init.md +0 -405
- package/templates/skills/apex/steps/step-01-analyze.md +0 -210
- package/templates/skills/apex/steps/step-02-plan.md +0 -303
- package/templates/skills/apex/steps/step-03-execute.md +0 -194
- package/templates/skills/apex/steps/step-03a-layer0-domain.md +0 -144
- package/templates/skills/apex/steps/step-03b-layer1-seed.md +0 -339
- package/templates/skills/apex/steps/step-03c-layer2-backend.md +0 -401
- package/templates/skills/apex/steps/step-03d-layer3-frontend.md +0 -562
- package/templates/skills/apex/steps/step-03e-layer4-devdata.md +0 -46
- package/templates/skills/apex/steps/step-04-examine.md +0 -404
- package/templates/skills/apex/steps/step-05-deep-review.md +0 -140
- package/templates/skills/apex/steps/step-06-resolve.md +0 -120
- package/templates/skills/apex/steps/step-07-tests.md +0 -271
- package/templates/skills/apex/steps/step-08-run-tests.md +0 -135
- package/templates/skills/apex-verify/SKILL.md +0 -110
- package/templates/skills/apex-verify/references/audit-rules.md +0 -50
- package/templates/skills/apex-verify/steps/step-00-init.md +0 -119
- package/templates/skills/apex-verify/steps/step-01-nav-audit.md +0 -96
- package/templates/skills/apex-verify/steps/step-02-crud-audit.md +0 -127
- package/templates/skills/apex-verify/steps/step-03-perm-audit.md +0 -119
- package/templates/skills/apex-verify/steps/step-04-route-audit.md +0 -98
- package/templates/skills/apex-verify/steps/step-05-report.md +0 -110
- package/templates/skills/application/SKILL.md +0 -241
- package/templates/skills/application/references/application-roles-template.md +0 -228
- package/templates/skills/application/references/backend-controller-hierarchy.md +0 -68
- package/templates/skills/application/references/backend-entity-seeding.md +0 -73
- package/templates/skills/application/references/backend-seeding-and-dto-output.md +0 -83
- package/templates/skills/application/references/backend-table-prefix-mapping.md +0 -80
- package/templates/skills/application/references/backend-verification.md +0 -88
- package/templates/skills/application/references/contexts-cheatsheet.md +0 -86
- package/templates/skills/application/references/extensions-system.md +0 -158
- package/templates/skills/application/references/frontend-i18n-and-output.md +0 -67
- package/templates/skills/application/references/frontend-route-naming.md +0 -123
- package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +0 -91
- package/templates/skills/application/references/frontend-verification.md +0 -158
- package/templates/skills/application/references/init-parameter-detection.md +0 -121
- package/templates/skills/application/references/migration-checklist-troubleshooting.md +0 -88
- package/templates/skills/application/references/nav-fallback-procedure.md +0 -198
- package/templates/skills/application/references/provider-template.md +0 -191
- package/templates/skills/application/references/roles-client-project-handling.md +0 -55
- package/templates/skills/application/references/roles-fallback-procedure.md +0 -144
- package/templates/skills/application/references/smartstack-provider.md +0 -118
- package/templates/skills/application/references/test-coverage-requirements.md +0 -213
- package/templates/skills/application/references/test-frontend.md +0 -73
- package/templates/skills/application/references/test-prerequisites.md +0 -72
- package/templates/skills/application/references/themes-db-driven.md +0 -484
- package/templates/skills/application/steps/step-00-init.md +0 -130
- package/templates/skills/application/steps/step-01-navigation.md +0 -170
- package/templates/skills/application/steps/step-02-permissions.md +0 -196
- package/templates/skills/application/steps/step-03-roles.md +0 -182
- package/templates/skills/application/steps/step-03b-provider.md +0 -134
- package/templates/skills/application/steps/step-04-backend.md +0 -174
- package/templates/skills/application/steps/step-05-frontend.md +0 -189
- package/templates/skills/application/steps/step-06-migration.md +0 -189
- package/templates/skills/application/steps/step-07-tests.md +0 -356
- package/templates/skills/application/steps/step-08-documentation.md +0 -137
- package/templates/skills/application/templates-backend.md +0 -463
- package/templates/skills/application/templates-frontend.md +0 -950
- package/templates/skills/application/templates-i18n.md +0 -520
- package/templates/skills/application/templates-seed.md +0 -1110
- package/templates/skills/audit-route/SKILL.md +0 -107
- package/templates/skills/audit-route/references/routing-pattern.md +0 -131
- package/templates/skills/audit-route/steps/step-00-init.md +0 -128
- package/templates/skills/audit-route/steps/step-01-inventory.md +0 -157
- package/templates/skills/audit-route/steps/step-02-conformity.md +0 -193
- package/templates/skills/audit-route/steps/step-03-report.md +0 -201
- package/templates/skills/business-analyse/SKILL.md +0 -252
- package/templates/skills/business-analyse/_shared.md +0 -276
- package/templates/skills/business-analyse/patterns/suggestion-catalog.md +0 -560
- package/templates/skills/business-analyse/questionnaire/01-context.md +0 -43
- package/templates/skills/business-analyse/questionnaire/02-stakeholders-scope.md +0 -111
- package/templates/skills/business-analyse/questionnaire/03-data-ui.md +0 -125
- package/templates/skills/business-analyse/questionnaire/04-risks-metrics.md +0 -6
- package/templates/skills/business-analyse/questionnaire/05-cross-module.md +0 -69
- package/templates/skills/business-analyse/questionnaire.md +0 -156
- package/templates/skills/business-analyse/react/application-viewer.md +0 -242
- package/templates/skills/business-analyse/react/components.md +0 -532
- package/templates/skills/business-analyse/react/i18n-template.md +0 -306
- package/templates/skills/business-analyse/react/schema.md +0 -831
- package/templates/skills/business-analyse/references/03-json-schemas.md +0 -221
- package/templates/skills/business-analyse/references/03-post-check-validation.md +0 -208
- package/templates/skills/business-analyse/references/03-smartstack-entity-guards.md +0 -32
- package/templates/skills/business-analyse/references/04-cross-module-validation.md +0 -95
- package/templates/skills/business-analyse/references/04-file-allocation.md +0 -162
- package/templates/skills/business-analyse/references/04-naming-audit-checks.md +0 -174
- package/templates/skills/business-analyse/references/04-semantic-validation-matrix.md +0 -118
- package/templates/skills/business-analyse/references/acceptance-criteria.md +0 -164
- package/templates/skills/business-analyse/references/analysis-semantic-checks.md +0 -190
- package/templates/skills/business-analyse/references/canonical-json-formats.md +0 -204
- package/templates/skills/business-analyse/references/compilation-structure-cards.md +0 -297
- package/templates/skills/business-analyse/references/consolidation-structural-checks.md +0 -124
- package/templates/skills/business-analyse/references/detection-strategies.md +0 -424
- package/templates/skills/business-analyse/references/domain-research-playbook.md +0 -234
- package/templates/skills/business-analyse/references/entity-architecture-decision.md +0 -240
- package/templates/skills/business-analyse/references/entity-sourcing-presentation.md +0 -166
- package/templates/skills/business-analyse/references/init-resume-logic.md +0 -70
- package/templates/skills/business-analyse/references/init-schema-deployment.md +0 -65
- package/templates/skills/business-analyse/references/module-completeness-challenge.md +0 -174
- package/templates/skills/business-analyse/references/multi-app-detection.md +0 -149
- package/templates/skills/business-analyse/references/naming-conventions.md +0 -253
- package/templates/skills/business-analyse/references/portal-classification.md +0 -52
- package/templates/skills/business-analyse/references/robustness-checks.md +0 -426
- package/templates/skills/business-analyse/references/ui-dashboard-spec.md +0 -85
- package/templates/skills/business-analyse/references/ui-resource-cards.md +0 -259
- package/templates/skills/business-analyse/references/validation-checklist.md +0 -378
- package/templates/skills/business-analyse/schemas/application-schema.json +0 -481
- package/templates/skills/business-analyse/schemas/feature-schema.json +0 -53
- package/templates/skills/business-analyse/schemas/index-schema.json +0 -47
- package/templates/skills/business-analyse/schemas/project-schema.json +0 -481
- package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +0 -245
- package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +0 -80
- package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +0 -82
- package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +0 -70
- package/templates/skills/business-analyse/schemas/sections/specification-schema.json +0 -567
- package/templates/skills/business-analyse/schemas/sections/validation-schema.json +0 -93
- package/templates/skills/business-analyse/schemas/shared/common-defs.json +0 -227
- package/templates/skills/business-analyse/steps/step-00-init.md +0 -463
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +0 -901
- package/templates/skills/business-analyse/steps/step-02-structure.md +0 -315
- package/templates/skills/business-analyse/steps/step-03-specify.md +0 -986
- package/templates/skills/business-analyse/steps/step-04-consolidate.md +0 -928
- package/templates/skills/business-analyse/templates/tpl-frd.md +0 -168
- package/templates/skills/business-analyse/templates/tpl-handoff.md +0 -189
- package/templates/skills/business-analyse/templates/tpl-launch-displays.md +0 -59
- package/templates/skills/business-analyse/templates-frd.md +0 -476
- package/templates/skills/business-analyse/templates-react.md +0 -574
- package/templates/skills/business-analyse-design/SKILL.md +0 -101
- package/templates/skills/business-analyse-design/references/screens-post-check.md +0 -221
- package/templates/skills/business-analyse-design/references/screens-type-mapping.md +0 -138
- package/templates/skills/business-analyse-design/references/smartcomponents-templates.md +0 -225
- package/templates/skills/business-analyse-design/references/spec-auto-inference.md +0 -117
- package/templates/skills/business-analyse-design/steps/step-01-screens.md +0 -108
- package/templates/skills/business-analyse-design/steps/step-02-wireframes.md +0 -155
- package/templates/skills/business-analyse-design/steps/step-03-navigation.md +0 -189
- package/templates/skills/business-analyse-develop/SKILL.md +0 -250
- package/templates/skills/business-analyse-develop/references/category-completeness.md +0 -326
- package/templates/skills/business-analyse-develop/references/category-rules.md +0 -109
- package/templates/skills/business-analyse-develop/references/compact-loop.md +0 -478
- package/templates/skills/business-analyse-develop/references/handoff-quality-gate.md +0 -132
- package/templates/skills/business-analyse-develop/references/init-resume-recovery.md +0 -183
- package/templates/skills/business-analyse-develop/references/module-transition.md +0 -246
- package/templates/skills/business-analyse-develop/references/multi-module-queue.md +0 -171
- package/templates/skills/business-analyse-develop/references/parallel-execution.md +0 -246
- package/templates/skills/business-analyse-develop/references/prd-v3-transformation.md +0 -326
- package/templates/skills/business-analyse-develop/references/quality-gates.md +0 -160
- package/templates/skills/business-analyse-develop/references/report-reconciliation.md +0 -140
- package/templates/skills/business-analyse-develop/references/report-template.md +0 -142
- package/templates/skills/business-analyse-develop/references/section-splitting.md +0 -439
- package/templates/skills/business-analyse-develop/references/task-transform-legacy.md +0 -256
- package/templates/skills/business-analyse-develop/references/team-orchestration.md +0 -547
- package/templates/skills/business-analyse-develop/steps/step-00-init.md +0 -242
- package/templates/skills/business-analyse-develop/steps/step-01-task.md +0 -182
- package/templates/skills/business-analyse-develop/steps/step-01-v4-execute.md +0 -139
- package/templates/skills/business-analyse-develop/steps/step-02-execute.md +0 -216
- package/templates/skills/business-analyse-develop/steps/step-02-v4-verify.md +0 -176
- package/templates/skills/business-analyse-develop/steps/step-03-commit.md +0 -107
- package/templates/skills/business-analyse-develop/steps/step-04-check.md +0 -419
- package/templates/skills/business-analyse-develop/steps/step-05-report.md +0 -137
- package/templates/skills/business-analyse-handoff/SKILL.md +0 -101
- package/templates/skills/business-analyse-handoff/references/acceptance-criteria.md +0 -318
- package/templates/skills/business-analyse-handoff/references/agent-handoff-transform-prompt.md +0 -211
- package/templates/skills/business-analyse-handoff/references/context-isolation-pattern.md +0 -47
- package/templates/skills/business-analyse-handoff/references/entity-canonicalization.md +0 -158
- package/templates/skills/business-analyse-handoff/references/entity-domain-mapping.md +0 -115
- package/templates/skills/business-analyse-handoff/references/handoff-file-inventory.md +0 -49
- package/templates/skills/business-analyse-handoff/references/handoff-file-templates.md +0 -197
- package/templates/skills/business-analyse-handoff/references/handoff-global-validation.md +0 -142
- package/templates/skills/business-analyse-handoff/references/handoff-mappings.md +0 -108
- package/templates/skills/business-analyse-handoff/references/handoff-seeddata-generation.md +0 -314
- package/templates/skills/business-analyse-handoff/references/prd-generation.md +0 -362
- package/templates/skills/business-analyse-handoff/references/prd-validation-checks.md +0 -125
- package/templates/skills/business-analyse-handoff/references/project-index-update.md +0 -98
- package/templates/skills/business-analyse-handoff/references/readiness-scoring.md +0 -95
- package/templates/skills/business-analyse-handoff/schemas/handoff-schema.json +0 -95
- package/templates/skills/business-analyse-handoff/steps/step-00-validate.md +0 -158
- package/templates/skills/business-analyse-handoff/steps/step-01-transform.md +0 -85
- package/templates/skills/business-analyse-handoff/steps/step-02-export.md +0 -169
- package/templates/skills/business-analyse-handoff/templates/tpl-progress.md +0 -172
- package/templates/skills/business-analyse-html/SKILL.md +0 -89
- package/templates/skills/business-analyse-html/html/ba-interactive.html +0 -6134
- package/templates/skills/business-analyse-html/html/build-html.js +0 -137
- package/templates/skills/business-analyse-html/html/src/partials/cadrage-context.html +0 -34
- package/templates/skills/business-analyse-html/html/src/partials/cadrage-scope.html +0 -27
- package/templates/skills/business-analyse-html/html/src/partials/cadrage-stakeholders.html +0 -55
- package/templates/skills/business-analyse-html/html/src/partials/cadrage-success.html +0 -34
- package/templates/skills/business-analyse-html/html/src/partials/consol-datamodel.html +0 -8
- package/templates/skills/business-analyse-html/html/src/partials/consol-flows.html +0 -29
- package/templates/skills/business-analyse-html/html/src/partials/consol-interactions.html +0 -8
- package/templates/skills/business-analyse-html/html/src/partials/consol-permissions.html +0 -8
- package/templates/skills/business-analyse-html/html/src/partials/decomp-dependencies.html +0 -38
- package/templates/skills/business-analyse-html/html/src/partials/decomp-modules.html +0 -43
- package/templates/skills/business-analyse-html/html/src/partials/handoff-summary.html +0 -24
- package/templates/skills/business-analyse-html/html/src/partials/module-spec-container.html +0 -4
- package/templates/skills/business-analyse-html/html/src/scripts/01-data-init.js +0 -313
- package/templates/skills/business-analyse-html/html/src/scripts/02-navigation.js +0 -316
- package/templates/skills/business-analyse-html/html/src/scripts/03-render-cadrage.js +0 -162
- package/templates/skills/business-analyse-html/html/src/scripts/04-render-modules.js +0 -203
- package/templates/skills/business-analyse-html/html/src/scripts/05-render-specs.js +0 -866
- package/templates/skills/business-analyse-html/html/src/scripts/06-render-consolidation.js +0 -196
- package/templates/skills/business-analyse-html/html/src/scripts/06-render-mockups.js +0 -564
- package/templates/skills/business-analyse-html/html/src/scripts/07-render-handoff.js +0 -108
- package/templates/skills/business-analyse-html/html/src/scripts/08-editing.js +0 -137
- package/templates/skills/business-analyse-html/html/src/scripts/09-export.js +0 -138
- package/templates/skills/business-analyse-html/html/src/scripts/10-comments.js +0 -221
- package/templates/skills/business-analyse-html/html/src/scripts/11-review-panel.js +0 -167
- package/templates/skills/business-analyse-html/html/src/scripts/12-render-diagrams.js +0 -162
- package/templates/skills/business-analyse-html/html/src/styles/01-variables.css +0 -38
- package/templates/skills/business-analyse-html/html/src/styles/02-layout.css +0 -216
- package/templates/skills/business-analyse-html/html/src/styles/03-navigation.css +0 -120
- package/templates/skills/business-analyse-html/html/src/styles/04-cards.css +0 -194
- package/templates/skills/business-analyse-html/html/src/styles/05-modules.css +0 -518
- package/templates/skills/business-analyse-html/html/src/styles/06-wireframes.css +0 -263
- package/templates/skills/business-analyse-html/html/src/styles/07-comments.css +0 -184
- package/templates/skills/business-analyse-html/html/src/styles/08-review-panel.css +0 -241
- package/templates/skills/business-analyse-html/html/src/styles/09-mockups-html.css +0 -220
- package/templates/skills/business-analyse-html/html/src/styles/10-diagrams.css +0 -73
- package/templates/skills/business-analyse-html/html/src/template.html +0 -449
- package/templates/skills/business-analyse-html/references/02-embedded-artifacts-building.md +0 -144
- package/templates/skills/business-analyse-html/references/02-feature-data-building.md +0 -143
- package/templates/skills/business-analyse-html/references/02-mapping-tables.md +0 -442
- package/templates/skills/business-analyse-html/references/02-normalization-helpers.md +0 -139
- package/templates/skills/business-analyse-html/references/02-screen-format-detection.md +0 -283
- package/templates/skills/business-analyse-html/references/02-self-check-validation.md +0 -199
- package/templates/skills/business-analyse-html/references/data-build.md +0 -215
- package/templates/skills/business-analyse-html/references/data-mapping.md +0 -452
- package/templates/skills/business-analyse-html/references/output-modes.md +0 -119
- package/templates/skills/business-analyse-html/references/wireframe-svg-style-guide.md +0 -335
- package/templates/skills/business-analyse-html/steps/step-01-collect.md +0 -140
- package/templates/skills/business-analyse-html/steps/step-02-build-data.md +0 -76
- package/templates/skills/business-analyse-html/steps/step-03-render.md +0 -95
- package/templates/skills/business-analyse-html/steps/step-04-verify.md +0 -224
- package/templates/skills/business-analyse-quick/SKILL.md +0 -807
- package/templates/skills/business-analyse-quick/references/domain-heuristics.md +0 -172
- package/templates/skills/business-analyse-quick/references/prd-schema.md +0 -268
- package/templates/skills/business-analyse-review/SKILL.md +0 -71
- package/templates/skills/business-analyse-review/references/review-data-mapping.md +0 -367
- package/templates/skills/business-analyse-review/steps/step-00-init.md +0 -111
- package/templates/skills/business-analyse-review/steps/step-01-apply.md +0 -304
- package/templates/skills/business-analyse-status/SKILL.md +0 -136
- package/templates/skills/cc-agent/SKILL.md +0 -129
- package/templates/skills/cc-agent/references/agent-behavior-patterns.md +0 -95
- package/templates/skills/cc-agent/references/agent-frontmatter.md +0 -213
- package/templates/skills/cc-agent/references/permission-modes.md +0 -102
- package/templates/skills/cc-agent/references/tools-reference.md +0 -144
- package/templates/skills/cc-agent/steps/step-00-init.md +0 -134
- package/templates/skills/cc-agent/steps/step-01-design.md +0 -186
- package/templates/skills/cc-agent/steps/step-02-generate.md +0 -131
- package/templates/skills/cc-agent/steps/step-03-validate.md +0 -130
- package/templates/skills/cc-agent/templates/agent-categorized.md +0 -67
- package/templates/skills/cc-agent/templates/agent-standalone.md +0 -56
- package/templates/skills/cc-agent/templates/agent-with-skills.md +0 -94
- package/templates/skills/cc-audit/SKILL.md +0 -108
- package/templates/skills/cc-audit/references/agent-checklist.md +0 -91
- package/templates/skills/cc-audit/references/hook-checklist.md +0 -110
- package/templates/skills/cc-audit/references/skill-checklist.md +0 -70
- package/templates/skills/cc-audit/steps/step-00-init.md +0 -98
- package/templates/skills/cc-audit/steps/step-01-scan.md +0 -142
- package/templates/skills/cc-audit/steps/step-02-analyze.md +0 -158
- package/templates/skills/cc-audit/steps/step-03-report.md +0 -142
- package/templates/skills/cc-skill/SKILL.md +0 -134
- package/templates/skills/cc-skill/references/best-practices.md +0 -167
- package/templates/skills/cc-skill/references/frontmatter-reference.md +0 -182
- package/templates/skills/cc-skill/references/skill-patterns.md +0 -199
- package/templates/skills/cc-skill/steps/step-00-init.md +0 -119
- package/templates/skills/cc-skill/steps/step-01-design.md +0 -199
- package/templates/skills/cc-skill/steps/step-02-generate.md +0 -145
- package/templates/skills/cc-skill/steps/step-03-steps.md +0 -151
- package/templates/skills/cc-skill/steps/step-04-validate.md +0 -124
- package/templates/skills/cc-skill/templates/skill-forked.md +0 -85
- package/templates/skills/cc-skill/templates/skill-progressive.md +0 -102
- package/templates/skills/cc-skill/templates/skill-simple.md +0 -75
- package/templates/skills/cc-skill/templates/step-template.md +0 -82
- package/templates/skills/controller/SKILL.md +0 -162
- package/templates/skills/controller/postman-templates.md +0 -614
- package/templates/skills/controller/references/controller-code-templates.md +0 -162
- package/templates/skills/controller/references/mcp-scaffold-workflow.md +0 -237
- package/templates/skills/controller/references/permission-sync-templates.md +0 -149
- package/templates/skills/controller/steps/step-00-init.md +0 -193
- package/templates/skills/controller/steps/step-01-analyze.md +0 -152
- package/templates/skills/controller/steps/step-02-plan.md +0 -176
- package/templates/skills/controller/steps/step-03-generate.md +0 -189
- package/templates/skills/controller/steps/step-04-perms.md +0 -80
- package/templates/skills/controller/steps/step-05-validate.md +0 -107
- package/templates/skills/controller/templates.md +0 -1556
- package/templates/skills/debug/SKILL.md +0 -70
- package/templates/skills/debug/references/team-protocol.md +0 -232
- package/templates/skills/debug/steps/step-00-init.md +0 -57
- package/templates/skills/debug/steps/step-01-analyze.md +0 -219
- package/templates/skills/debug/steps/step-02-resolve.md +0 -85
- package/templates/skills/efcore/references/database-operations.md +0 -66
- package/templates/skills/efcore/references/reset-operations.md +0 -81
- package/templates/skills/efcore/references/seed-methods.md +0 -86
- package/templates/skills/efcore/references/shared-init-functions.md +0 -250
- package/templates/skills/efcore/references/sql-objects-injection.md +0 -19
- package/templates/skills/efcore/references/troubleshooting.md +0 -81
- package/templates/skills/efcore/references/zero-downtime-patterns.md +0 -229
- package/templates/skills/explore/SKILL.md +0 -98
- package/templates/skills/feature-full/SKILL.md +0 -111
- package/templates/skills/feature-full/steps/step-00-init.md +0 -57
- package/templates/skills/feature-full/steps/step-01-implementation.md +0 -133
- package/templates/skills/gitflow/phases/abort.md +0 -189
- package/templates/skills/gitflow/phases/cleanup.md +0 -264
- package/templates/skills/gitflow/phases/status.md +0 -192
- package/templates/skills/gitflow/references/commit-message-generation.md +0 -58
- package/templates/skills/gitflow/references/commit-migration-validation.md +0 -53
- package/templates/skills/gitflow/references/finish-cleanup.md +0 -55
- package/templates/skills/gitflow/references/finish-version-bumping.md +0 -45
- package/templates/skills/gitflow/references/init-config-template.md +0 -143
- package/templates/skills/gitflow/references/init-environment-detection.md +0 -41
- package/templates/skills/gitflow/references/init-name-normalization.md +0 -118
- package/templates/skills/gitflow/references/init-questions.md +0 -193
- package/templates/skills/gitflow/references/init-structure-creation.md +0 -75
- package/templates/skills/gitflow/references/init-version-detection.md +0 -23
- package/templates/skills/gitflow/references/init-workspace-detection.md +0 -43
- package/templates/skills/gitflow/references/merge-ci-status.md +0 -36
- package/templates/skills/gitflow/references/merge-execution.md +0 -62
- package/templates/skills/gitflow/references/merge-pr-context.md +0 -76
- package/templates/skills/gitflow/references/plan-template.md +0 -69
- package/templates/skills/gitflow/references/pr-build-checks.md +0 -60
- package/templates/skills/gitflow/references/pr-generation.md +0 -58
- package/templates/skills/gitflow/references/start-branch-normalization.md +0 -28
- package/templates/skills/gitflow/references/start-efcore-preflight.md +0 -70
- package/templates/skills/gitflow/references/start-local-config.md +0 -113
- package/templates/skills/gitflow/references/start-worktree-creation.md +0 -50
- package/templates/skills/gitflow/references/sync-push-verify.md +0 -44
- package/templates/skills/gitflow/references/sync-rebase-conflicts.md +0 -38
- package/templates/skills/gitflow/steps/step-commit.md +0 -199
- package/templates/skills/gitflow/steps/step-finish.md +0 -147
- package/templates/skills/gitflow/steps/step-init.md +0 -230
- package/templates/skills/gitflow/steps/step-merge.md +0 -85
- package/templates/skills/gitflow/steps/step-plan.md +0 -151
- package/templates/skills/gitflow/steps/step-pr.md +0 -247
- package/templates/skills/gitflow/steps/step-start.md +0 -195
- package/templates/skills/gitflow/steps/step-sync.md +0 -161
- package/templates/skills/gitflow/templates/config.json +0 -72
- package/templates/skills/mcp/SKILL.md +0 -62
- package/templates/skills/mcp/steps/step-01-healthcheck.md +0 -108
- package/templates/skills/mcp/steps/step-02-tools.md +0 -73
- package/templates/skills/migrate/SKILL.md +0 -312
- package/templates/skills/migrate/references/v3.34-to-v3.46.md +0 -289
- package/templates/skills/notification/SKILL.md +0 -173
- package/templates/skills/refactor/SKILL.md +0 -56
- package/templates/skills/refactor/steps/step-01-discover.md +0 -60
- package/templates/skills/refactor/steps/step-02-execute.md +0 -67
- package/templates/skills/review-code/SKILL.md +0 -95
- package/templates/skills/review-code/references/clean-code-principles.md +0 -292
- package/templates/skills/review-code/references/code-quality-metrics.md +0 -174
- package/templates/skills/review-code/references/feedback-patterns.md +0 -149
- package/templates/skills/review-code/references/owasp-api-top10.md +0 -243
- package/templates/skills/review-code/references/security-checklist.md +0 -212
- package/templates/skills/review-code/references/smartstack-conventions.md +0 -568
- package/templates/skills/review-code/steps/step-01-smartstack.md +0 -96
- package/templates/skills/review-code/steps/step-02-detailed-review.md +0 -80
- package/templates/skills/review-code/steps/step-03-react.md +0 -44
- package/templates/skills/sketch/SKILL.md +0 -34
- package/templates/skills/ui-components/accessibility.md +0 -170
- package/templates/skills/ui-components/patterns/dashboard-chart.md +0 -327
- package/templates/skills/ui-components/patterns/data-table.md +0 -175
- package/templates/skills/ui-components/patterns/entity-card.md +0 -77
- package/templates/skills/ui-components/patterns/grid-layout.md +0 -91
- package/templates/skills/ui-components/patterns/kanban.md +0 -43
- package/templates/skills/ui-components/references/component-catalog.md +0 -82
- package/templates/skills/ui-components/responsive-guidelines.md +0 -278
- package/templates/skills/ui-components/style-guide.md +0 -113
- package/templates/skills/validate/SKILL.md +0 -181
- package/templates/skills/workflow/SKILL.md +0 -196
- package/templates/skills/workflow/steps/step-00-init.md +0 -57
- package/templates/skills/workflow/steps/step-01-implementation.md +0 -84
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# `/ba-develop` — Auto-healing + never-halt protocol
|
|
2
|
+
|
|
3
|
+
> Loaded on demand when a gate fails. The SKILL.md just mentions "the gate
|
|
4
|
+
> enters the auto-healing loop" — the full mechanics live here.
|
|
5
|
+
|
|
6
|
+
## Default behavior: never halt — auto-heal, else defer the item
|
|
7
|
+
|
|
8
|
+
The orchestrator **never halts the run and never asks the user mid-flight.**
|
|
9
|
+
Every phase wraps its gate in a retry loop. The subagent observes the failure,
|
|
10
|
+
classifies it, applies a targeted fix, and re-runs the gate. **Up to 25 retries
|
|
11
|
+
per item**, with two additional safety nets so the loop never spins forever.
|
|
12
|
+
When a failure is genuinely unhealable, the item is **deferred** — a blocker is
|
|
13
|
+
recorded, the safest best-effort action is taken — and the run continues to the
|
|
14
|
+
end of the module.
|
|
15
|
+
|
|
16
|
+
## Per-item retry loop (defers, never halts)
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
attempt = 1
|
|
20
|
+
while attempt <= 25:
|
|
21
|
+
runPhase()
|
|
22
|
+
gate = runGate()
|
|
23
|
+
if gate.ok:
|
|
24
|
+
commit()
|
|
25
|
+
return SUCCESS
|
|
26
|
+
|
|
27
|
+
failure = classifyFailure(gate.errors)
|
|
28
|
+
|
|
29
|
+
if failure.kind in DEFER_KINDS: # see table below
|
|
30
|
+
deferItem(blocker(failure)); bestEffort(failure) # skip / keep / stub safely
|
|
31
|
+
return DEFERRED(failure.kind, attempt) # ← item deferred, RUN CONTINUES
|
|
32
|
+
|
|
33
|
+
if same fingerprint already seen 2 times before:
|
|
34
|
+
deferItem(blocker(kind='infinite-loop')); bestEffort(failure)
|
|
35
|
+
return DEFERRED('infinite-loop', attempt)
|
|
36
|
+
|
|
37
|
+
applyFix(failure) # ← the auto-heal
|
|
38
|
+
rememberFingerprint(failure)
|
|
39
|
+
attempt += 1
|
|
40
|
+
|
|
41
|
+
deferItem(blocker(kind='retry-budget-exhausted')); bestEffort(lastFailure)
|
|
42
|
+
return DEFERRED('retry-budget-exhausted', 26)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`SUCCESS` and `DEFERRED` are the only two outcomes — there is no `HALT`.
|
|
46
|
+
`DEFERRED` records a blocker and lets the orchestrator move on to the next
|
|
47
|
+
item / sub-phase / phase. The run as a whole always reaches the end of the
|
|
48
|
+
module and reports `blockers[]`.
|
|
49
|
+
|
|
50
|
+
The **fingerprint** is `hash(failure.kind + sorted(errorPaths) + first 200
|
|
51
|
+
chars of stderr)`. Two retries with the same fingerprint = the fix did not
|
|
52
|
+
change anything; a third retry would loop forever — defer the item early.
|
|
53
|
+
|
|
54
|
+
The **retry budget** is per-item (25). It is a loop terminator, NOT a run
|
|
55
|
+
terminator: exhausting it defers exactly that one item and the run carries on.
|
|
56
|
+
|
|
57
|
+
## Failure classification → auto-fix
|
|
58
|
+
|
|
59
|
+
| Failure kind | Detection | Auto-fix |
|
|
60
|
+
|--------------|-----------|----------|
|
|
61
|
+
| `compile.missing-using` | `dotnet build` CS0246/CS0234 + namespace in entité.md / DTO inventory | Insert the missing `using <Ns>.<Layer>.<Module>.<X>;` at top of offending file. Retry. |
|
|
62
|
+
| `compile.missing-type` | CS0246 with no matching declaration | Identify the missing layer (DTO? Service? Interface?), re-invoke its scaffolder. Retry. |
|
|
63
|
+
| `compile.partial-method-mismatch` | CS0759 / CS0762 | Delete the stale `*.Custom.cs` partial fragment, log the removed lines to `heal.log` for manual re-add. Retry. |
|
|
64
|
+
| `migration.naming-collision` | `dotnet ef migrations add` "name already exists" | Bump the sequence (`_v1.0.0_002_…` → `_v1.0.0_003_…`) via `cli/lib/migration-name.ts`. Retry. |
|
|
65
|
+
| `migration.destructive` | `up.cs` contains `DROP COLUMN`, `DROP TABLE`, `RENAME COLUMN`, or non-nullable col without `defaultValue` | **DEFER** (blocker `migration.destructive`, severity `critical`). Keep the generated migration but **never auto-apply** it (`database update`); embed the `.sql` in the blocker for user review before any apply. Continue. |
|
|
66
|
+
| `business.todo-br` | `grep -rn "// TODO\[BR-"` under `src/<Ns>.Application` | Read `règles-métier.md` for BR-NN expression + invalidExamples, implement as `RuleFor(…).Must(…)` on Create+Update validators OR a service guard. Retry. |
|
|
67
|
+
| `business.todo-uc` | `grep -rn "// TODO\[UC-"` under same path | Read `<section>/use-case.md` main + alternative flows, write the service body. Retry. |
|
|
68
|
+
| `business.todo-screen` | `grep -rn "// TODO\[SCREEN-"` under Controllers/Screens/ | Add the missing method to `I{Entity}Service` + impl in `{Entity}Service`. Reuse Phase 2a Linq primitives. Retry. |
|
|
69
|
+
| `acceptance.todo-ac` | `grep -rn "// TODO\[AC-"` under Tests/<Module>/Acceptance/ | Read the AC bullet from `<section>/use-case.md`, fill the Fact body using WebApplicationFactory + controller route + DTO from Phase 2. Retry. |
|
|
70
|
+
| `audit-dev-api.applicable` | `audit-dev-api --mode audit` emits a finding with `{autoApplyable: true}` | Run `audit-dev-api --mode apply` for that finding. Retry. |
|
|
71
|
+
| `audit-dev-frontend.applicable` | Same shape, frontend audit | Run `audit-dev-frontend --mode apply` for that finding. Retry. |
|
|
72
|
+
| `validate-page.import-resolve` | `violations[].rule === 'imports-resolve'` | Re-invoke `scaffold-api-client` for the entity, then re-`scaffold-component`. Retry. |
|
|
73
|
+
| `validate-page.i18n-keys-resolve` | `violations[].rule === 'i18n-keys-resolve'` | Re-invoke `scaffold-component` with `priorErrors` — deep-merge writer adds missing locale entries. Retry. |
|
|
74
|
+
| `validate-page.pagetemplate-wrapping` | `violations[].rule === 'pagetemplate-wrapping'` | Re-invoke `scaffold-component`; emitter always wraps. Retry. |
|
|
75
|
+
| `registry.phantom-import` | `aggregate-component-registry` exit 1 "import does not resolve" | Either drop the registration (deferred page) or re-`scaffold-component` (wrong path). Retry. |
|
|
76
|
+
| `registry.componentkey-collision` | `aggregate` exit 1 "componentKey collision" | **DEFER** (blocker `registry.componentkey-collision`, `high`). Keep the first registration, skip the colliding one, finish 3c. `userAction`: two BAs claim `{app}.{module}.{section}` — pick one. Continue. |
|
|
77
|
+
| `build.vite.broken-import` | `npm run build` "Could not resolve `@/…`" | Re-aggregate the registry (Phase 3c) — phantom slipped past. Retry. |
|
|
78
|
+
| `tests.business.fail` | `dotnet test Category=Business` fail with stub still in place | Treat as `business.todo-br`. Retry. |
|
|
79
|
+
| `tests.business.fail-real` | Same, but no stub; the rule is implemented and still rejects a valid example | **DEFER** (blocker `tests.business.disagreement`, `high`). Keep the implemented rule — never weaken the test — and leave it red (the red test IS the signal). `userAction`: BA `validExamples` and impl disagree; reconcile `règles-métier.md` or the rule. Continue. |
|
|
80
|
+
| `tests.acceptance.fail` | `dotnet test Category=Acceptance` fail | Stub still in place → auto-fix as `acceptance.todo-ac`. No stub → **DEFER** (blocker `tests.acceptance.disagreement`, `high`); leave the test red (it is the signal), continue. |
|
|
81
|
+
| `dotnet.config-mismatch` | EF Core Configuration class missing or wrong | Re-run `scaffold-entity` for the entity (idempotent — respects `// @customised`). Retry. |
|
|
82
|
+
| `ba.gap-persistent` | Same auto-fix attempted 2× and gate still red with same fingerprint | **DEFER** (blocker `ba.gap`, `high`). Skip / mark-stub the affected item so downstream phases proceed. `userAction`: BA file lacks data (rule expression empty, AC bullet with no entity ref) — edit `règles-métier.md` / `use-case.md`. Continue. |
|
|
83
|
+
| `wire.frontend-orphan` | `audit-dev-wire` emits `DEV-WIRE-001 err` with `params.calls` referencing a frontend service URL not matched by any backend route | Read the params: if the URL starts with `/api/screens/` → re-invoke `scaffold-screen-controller` for the entity (refresh the pagespecs). If the URL starts with `/api/v1/integration/` → re-invoke `scaffold-controller`. If the URL canonicalises to `unknown` stratum (orphan template artifact) → re-invoke `scaffold-api-client` (legacy `apiBasePath` got removed; the api-client now derives the URL deterministically). Retry. |
|
|
84
|
+
| `wire.strata-mismatch` | `audit-dev-wire` `params.stratum === 'integration'` AND only `{EntityPlural}ScreenController.cs` exists for that entity | Re-invoke `scaffold-api-client` for this entity with `useScreens: true` AND `screenColumns` freshly extracted from pagespecs. Retry. |
|
|
85
|
+
| `wire.verb-mismatch` | Frontend calls VERB X on /api/.../path; backend exposes VERB Y on /api/.../path | **DEFER** (blocker `wire.verb-mismatch`, `high`). Pagespec is the source of truth; leave the call as-is and continue (does not block Phase 4). `userAction`: align the controller or the pagespec on the path. (Future: ACTION-DRIFT-005 will auto-pick once AST-safe-apply lands.) |
|
|
86
|
+
| `smoke.4xx` | `run-smoke` returns a 4xx (other than 401/403) on a probed endpoint | Treat as `wire.frontend-orphan` — the route most likely exists but on a different verb. Retry. |
|
|
87
|
+
| `smoke.5xx` | `run-smoke` returns a 5xx on a probed endpoint | The route exists but the handler throws. Treat as `business.todo-uc` if a TODO marker is on the matching service method, otherwise **DEFER** (blocker `smoke.5xx`, `high`) — leave it, continue (the real bug surfaces in the report). |
|
|
88
|
+
| `smoke.boot` | `run-smoke` returns `passed: false` with reason `backend boot timeout` / `frontend boot timeout` | **DEFER** (blocker `smoke.boot`, `medium`). Skip the runtime probe, keep the static `audit-dev-wire` result. Infra failure — inspect dotnet/npm logs and re-run smoke manually. Continue. |
|
|
89
|
+
| `fk.cross-module-missing` | Phase 3a generated page imports `use<TargetEntity>Lookup` from `@/features/<targetModule>/...`, but the upstream module hasn't been scaffolded (file missing OR file exists but does not export the lookup hook). | Auto-scaffold upstream: invoke `scaffold-api-client` on the target entity (lookup hook is the primary deliverable), then `scaffold-routes` to wire the upstream URL helpers. Continue Phase 3a. If retry budget exhausts, **DEFER** (blocker `fk.cross-module-missing`, `high`) — best-effort skip/guard the unresolved import so the rest of the page compiles; `userAction`: run /ba-develop on <targetModule> first. Pre-flight Phase 3a.0 catches this proactively; the failure kind covers the case where a pagespec FK gets added mid-flight. |
|
|
90
|
+
|
|
91
|
+
## Defer conditions (never abort the run)
|
|
92
|
+
|
|
93
|
+
When one of these is hit, the item is **deferred**: the orchestrator takes the
|
|
94
|
+
best-effort action below, records a blocker (see § Blocker log), and continues.
|
|
95
|
+
None of them stops the run or asks the user mid-flight — they all surface in the
|
|
96
|
+
final `blockers[]` instead.
|
|
97
|
+
|
|
98
|
+
| Defer kind | Best-effort action | Severity |
|
|
99
|
+
|------------|--------------------|----------|
|
|
100
|
+
| `migration.destructive` | Keep the migration, **never auto-apply**; embed `.sql` in the blocker. | critical |
|
|
101
|
+
| `tests.business.disagreement` | Keep the rule, leave the `Category=Business` test red. | high |
|
|
102
|
+
| `tests.acceptance.disagreement` | Leave the `Category=Acceptance` test red (it is the signal). | high |
|
|
103
|
+
| `registry.componentkey-collision` | Keep the first registration, skip the colliding one. | high |
|
|
104
|
+
| `wire.verb-mismatch` | Leave the frontend call as-is (pagespec = source of truth). | high |
|
|
105
|
+
| `ba.gap` | Skip / mark-stub the affected item so downstream phases proceed. | high |
|
|
106
|
+
| `prd.gap` | Implement what the PRD specifies; skip / stub the gap. | high |
|
|
107
|
+
| `prd.not-dev-ready` | Proceed with the build anyway. | high |
|
|
108
|
+
| `fk.cross-module-missing` | Skip/guard the unresolved import; the page still compiles. | high |
|
|
109
|
+
| `smoke.5xx` | Leave the throwing handler; record the failing probe. | high |
|
|
110
|
+
| `smoke.boot` | Skip the runtime probe, keep the static wire audit. | medium |
|
|
111
|
+
| `scaffolder.missing` | Skip that artifact (never improvise a scaffolder). | high |
|
|
112
|
+
| `cli.runtime-error` | Skip that one artifact (never hand-write `.tsx`). | high |
|
|
113
|
+
| `customised-file-conflict` | **Skip the overwrite** — preserve the user's `// @customised` file; embed the diff in the blocker. | medium |
|
|
114
|
+
| `infinite-loop` | Stop retrying this item (fix is broken); skip / stub it. | high |
|
|
115
|
+
| `retry-budget-exhausted` | Stop retrying this item after 25 attempts; skip / stub it. | high |
|
|
116
|
+
| `git.cannot-commit` | Skip commits (branch is `main` / not a repo / other git error); code still lands on disk. | medium |
|
|
117
|
+
|
|
118
|
+
## Heal log
|
|
119
|
+
|
|
120
|
+
Each retry pushes one entry to `.smartstack/ba/<APP>/<MODULE>/_dev/heal.log.json`:
|
|
121
|
+
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"phase": "api.2a",
|
|
125
|
+
"attempt": 4,
|
|
126
|
+
"failureKind": "business.todo-br",
|
|
127
|
+
"fingerprint": "f7a3c2…",
|
|
128
|
+
"fix": "Implemented BR-005 in BudgetService.Validate() from règles-métier.md L42",
|
|
129
|
+
"outcome": "gate-passed"
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
The orchestrator's final JSON output includes `healingSummary[]` aggregating
|
|
134
|
+
every retry across every phase — the user sees what was auto-fixed without
|
|
135
|
+
having to read the log.
|
|
136
|
+
|
|
137
|
+
## Blocker log
|
|
138
|
+
|
|
139
|
+
Each deferred item pushes one entry to
|
|
140
|
+
`.smartstack/ba/<APP>/<MODULE>/_dev/blockers.json`:
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"phase": "api.2a",
|
|
145
|
+
"kind": "tests.business.disagreement",
|
|
146
|
+
"severity": "high",
|
|
147
|
+
"summary": "BR-005 rejects a documented valid example",
|
|
148
|
+
"whatWasSkipped": "left the Category=Business test for BR-005 red",
|
|
149
|
+
"bestEffortTaken": "kept the implemented rule (did not weaken the test)",
|
|
150
|
+
"userAction": "reconcile règles-métier.md BR-005 validExamples with the rule",
|
|
151
|
+
"artifacts": ["src/…/BudgetService.cs:42", "Tests/…/BudgetRuleTests.cs:88"]
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
`severity` is `critical` (data-loss — only `migration.destructive`), `high`
|
|
156
|
+
(needs a human decision before the feature is correct), or `medium` (infra /
|
|
157
|
+
environment / cosmetic). The orchestrator's final JSON output includes
|
|
158
|
+
`blockers[]` aggregating every deferred item across every phase, and the
|
|
159
|
+
`overallStatus` becomes `completed-with-blockers` whenever `blockers[]` is
|
|
160
|
+
non-empty (see `references/output-contract.md`). This is the ONLY channel for
|
|
161
|
+
surfacing work the user must do — never a mid-run interaction.
|
|
162
|
+
|
|
163
|
+
## What this changes vs. the prior behavior
|
|
164
|
+
|
|
165
|
+
**Before Wave G**: any gate failure halted → user fixes → user re-runs. Slow,
|
|
166
|
+
manual, broke flow.
|
|
167
|
+
|
|
168
|
+
**Wave G**: 80%+ of typical failures (TODO markers, missing methods, import
|
|
169
|
+
resolution, audit-applyable findings, i18n missing keys, migration name
|
|
170
|
+
collision) are healed in 1-3 retries, transparently — but genuinely structural
|
|
171
|
+
failures still HARD HALTED and asked the user (regenerate the PRD, edit a BA
|
|
172
|
+
file, review a migration). That broke the autonomy contract.
|
|
173
|
+
|
|
174
|
+
**Now (never-halt protocol)**: nothing hard-halts. Healable failures are healed
|
|
175
|
+
as before; genuinely structural failures are **deferred** — the safest
|
|
176
|
+
best-effort action is taken, a blocker is recorded, and the run continues to the
|
|
177
|
+
end of the module. The user is never interrupted mid-run; everything that needs
|
|
178
|
+
a human decision waits in `blockers[]` until the final report. **The run always
|
|
179
|
+
completes — `halted` is not a reachable outcome.**
|
|
180
|
+
|
|
181
|
+
## Anti-patterns specific to the protocol
|
|
182
|
+
|
|
183
|
+
- **Halting the run, or asking the user mid-flight** (regenerate the PRD, edit a
|
|
184
|
+
BA file, pick a key, review a migration). There is no hard-halt list any more:
|
|
185
|
+
every unhealable failure is a deferred item + a blocker. The orchestrator must
|
|
186
|
+
reach the end of the module unconditionally.
|
|
187
|
+
- **Increasing the retry budget beyond 25** to "force it through". The 25-retry
|
|
188
|
+
ceiling exists so a genuinely incorrigible item is deferred (not spun on
|
|
189
|
+
forever). Cranking it to 100 masks a real problem before finally deferring.
|
|
190
|
+
- **Swallowing a deferred item silently.** A defer is not a success — it MUST
|
|
191
|
+
push a blocker so the user sees it in the final report. Best-effort ≠ done.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# `/ba-develop` — Commit checkpoints
|
|
2
|
+
|
|
3
|
+
> Loaded on demand when a phase passes and the orchestrator emits a commit.
|
|
4
|
+
|
|
5
|
+
## Commit command
|
|
6
|
+
|
|
7
|
+
After every phase whose gate passes, create a local commit directly with git
|
|
8
|
+
via Bash, run in `projectPath`:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
git add -A && git commit -m "<message>"
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
**No push** — the feature branch stays local until the user runs `/gitflow pr`
|
|
15
|
+
or `/gitflow sync`. Before committing, confirm the working branch is a feature
|
|
16
|
+
branch (not `main`) — if it is not, **skip commits** and record a
|
|
17
|
+
`git.cannot-commit` blocker (the code still lands on disk). If Phase 2 produced
|
|
18
|
+
an EF migration, review it for destructive ops (DROP COLUMN/TABLE): commit it
|
|
19
|
+
anyway but record a `migration.destructive` blocker (critical) and **never
|
|
20
|
+
auto-apply** the migration. None of these stop the run.
|
|
21
|
+
|
|
22
|
+
- Conventional-commits scope = the module code (e.g. `hr.leave`).
|
|
23
|
+
- Never push from this orchestrator.
|
|
24
|
+
|
|
25
|
+
## When NOT to commit
|
|
26
|
+
|
|
27
|
+
- Gate failed AND auto-healing exhausted — the item is **deferred** (blocker +
|
|
28
|
+
best-effort). Commit whatever DID pass in the phase; the deferred item is
|
|
29
|
+
recorded in `blockers[]`, never committed as if it were done.
|
|
30
|
+
- `nothing to commit` — re-running a phase that produced no diff. Log
|
|
31
|
+
`nothing to commit`, continue.
|
|
32
|
+
|
|
33
|
+
**Exception — Phase 3 sub-phase 3.5 (audit-apply) MUST always run** even when
|
|
34
|
+
3.0-3c reported no file changes. Drift can exist in files no generator touched
|
|
35
|
+
this run. Skipping audit-apply is the silent re-run failure mode users report
|
|
36
|
+
as "I re-ran and nothing was fixed".
|
|
37
|
+
|
|
38
|
+
## Per-phase message templates
|
|
39
|
+
|
|
40
|
+
| After phase | Message |
|
|
41
|
+
|-------------|---------|
|
|
42
|
+
| Core | `feat({appCode}): add core foundation seed (nav + roles + permissions)` |
|
|
43
|
+
| Entities | `feat({moduleCode}): add domain entities + migrations` |
|
|
44
|
+
| API (2a) | `feat({moduleCode}): add api controllers + business handlers` |
|
|
45
|
+
| API (2b) | `feat({moduleCode}): add screen-driven controllers + screen DTOs` |
|
|
46
|
+
| Frontend | `feat({moduleCode}): add frontend pages + routes` |
|
|
47
|
+
| Acceptance | `feat({moduleCode}): add acceptance tests from AC (N facts, 0 TODO)` |
|
|
48
|
+
|
|
49
|
+
## Auto-healed commit body
|
|
50
|
+
|
|
51
|
+
When the auto-healing loop ran one or more retries before the gate passed,
|
|
52
|
+
append a body line summarising what was fixed:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
feat(hr.leave): add api controllers + business handlers
|
|
56
|
+
|
|
57
|
+
Auto-healed in 3 iterations:
|
|
58
|
+
attempt 1 → business.todo-br (BR-005 implemented from règles-métier.md L42)
|
|
59
|
+
attempt 2 → audit-dev-api.applicable (DEV-API-008 auto-applied, 4 findings)
|
|
60
|
+
attempt 3 → gate passed
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
The body lines come straight from `_dev/heal.log.json` — no hand-editing.
|
|
64
|
+
|
|
65
|
+
## Failure handling
|
|
66
|
+
|
|
67
|
+
Interpret the `git commit` result:
|
|
68
|
+
|
|
69
|
+
- **success** → record the short hash (`git rev-parse --short HEAD`) in the
|
|
70
|
+
phase summary, continue.
|
|
71
|
+
- **not a git repo** OR **branch is `main`** → **skip commits**, record a
|
|
72
|
+
`git.cannot-commit` blocker (medium, `userAction: run /gitflow start
|
|
73
|
+
feature/{moduleCode} then commit`), and keep generating — the code still
|
|
74
|
+
lands on disk. Do NOT halt.
|
|
75
|
+
- **`nothing to commit, working tree clean`** → no-op, log, continue.
|
|
76
|
+
- **destructive EF migration detected** in Phase 2 review → commit it, record a
|
|
77
|
+
`migration.destructive` blocker (critical), never auto-apply. Continue.
|
|
78
|
+
- **any other error** → record a `git.cannot-commit` blocker with the message,
|
|
79
|
+
continue (a commit failure never aborts the run).
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
# `/ba-develop` — Per-phase gates
|
|
2
|
+
|
|
3
|
+
> Loaded on demand when running a specific phase's gate. The SKILL.md just
|
|
4
|
+
> mentions "gates between phases enter the auto-healing loop on failure".
|
|
5
|
+
|
|
6
|
+
A phase passes **only if all these hold**. **When a gate fails, the phase
|
|
7
|
+
enters the auto-healing loop** (see `references/auto-healing.md`) — it does
|
|
8
|
+
NOT halt. A failure that cannot be healed is **deferred** (a blocker is
|
|
9
|
+
recorded, the safest best-effort action is taken) and the run continues. No
|
|
10
|
+
gate failure ever stops the orchestrator or asks the user mid-run — everything
|
|
11
|
+
that needs a human decision waits in `blockers[]` until the final report.
|
|
12
|
+
|
|
13
|
+
## Pre-entry coverage checks (Phases 0-2) — BEFORE skip decision
|
|
14
|
+
|
|
15
|
+
On re-runs, Phases 0-2 were historically skipped when artifacts exist and
|
|
16
|
+
gates pass. This missed PRD additions (new entities, new attributes, new
|
|
17
|
+
custom actions) that arrived between runs. The pre-entry coverage check
|
|
18
|
+
closes this gap by comparing the PRD/BA spec against what is actually on
|
|
19
|
+
disk BEFORE deciding to skip.
|
|
20
|
+
|
|
21
|
+
**The check runs BEFORE launching any subagent** — it uses fast,
|
|
22
|
+
deterministic tools (< 5 seconds total) so no agent context is wasted on
|
|
23
|
+
a phase that genuinely needs no work.
|
|
24
|
+
|
|
25
|
+
### Decision flow (applies to Phases 0, 1, 2a, 2b individually)
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
if artifacts_do_not_exist:
|
|
29
|
+
→ ENTER phase (first run)
|
|
30
|
+
elif pre_entry_coverage_check() has ERR findings:
|
|
31
|
+
→ RE-ENTER phase (PRD has items not yet implemented)
|
|
32
|
+
elif compile_and_test_gate_passes:
|
|
33
|
+
→ SKIP phase (everything implemented, everything green)
|
|
34
|
+
else:
|
|
35
|
+
→ RE-ENTER phase (existing code is broken)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Phase 0 — Core Foundation Seed coverage
|
|
39
|
+
|
|
40
|
+
1. **Module navigation coverage** (mirrors DEV-CORE-002): Grep
|
|
41
|
+
`CoreNavigationSeedDataProvider.cs` for every module code declared
|
|
42
|
+
in the BA `index.md` tree. Any BA module WITHOUT a matching
|
|
43
|
+
`NavigationModule.Create(... code: "{moduleCode}" ...)` line → ERR.
|
|
44
|
+
2. **Permission floor** (mirrors DEV-CORE-004): Read
|
|
45
|
+
`CorePermissionsSeedDataProvider.cs`, group permission tuples by
|
|
46
|
+
module segment. Compare against modules declared in `rbac.md`. Any
|
|
47
|
+
BA module with < 2 permissions → ERR.
|
|
48
|
+
|
|
49
|
+
If ANY check returns ERR → Phase 0 MUST re-enter.
|
|
50
|
+
|
|
51
|
+
### Phase 1 — Entities coverage
|
|
52
|
+
|
|
53
|
+
Run `project-inventory`:
|
|
54
|
+
```bash
|
|
55
|
+
npx tsx skills/validation/project-inventory/cli/project-inventory/index.ts \
|
|
56
|
+
--project-path "<projectPath>" --domains domain
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
1. **Entity existence** (mirrors DEV-DOM-001): for each entity declared
|
|
60
|
+
in `entité.md`, check `report.domain.entities[].name`. Any BA entity
|
|
61
|
+
NOT in the inventory → ERR.
|
|
62
|
+
2. **Attribute completeness** (mirrors DEV-DOM-002): for each entity
|
|
63
|
+
that IS in the inventory, Read its `.cs` file and verify every
|
|
64
|
+
attribute from `entité.md` has a matching `public <Type> <Name>`
|
|
65
|
+
property. Any missing attribute → ERR.
|
|
66
|
+
|
|
67
|
+
If ANY check returns ERR → Phase 1 MUST re-enter.
|
|
68
|
+
|
|
69
|
+
### Phase 2a — API Integration coverage
|
|
70
|
+
|
|
71
|
+
1. **Controller existence** (mirrors DEV-API-001): run
|
|
72
|
+
`project-inventory --domains api`. For each entity in `entité.md`
|
|
73
|
+
that the PRD declares should have an API surface, verify a matching
|
|
74
|
+
controller in `report.api.controllers[].className`. Missing → ERR.
|
|
75
|
+
2. **Custom action coverage** (DEV-API-010): run the audit CLI:
|
|
76
|
+
```bash
|
|
77
|
+
npx tsx skills/development/audit-dev-api/cli/audit-dev-api/index.ts \
|
|
78
|
+
--project-path "<dotnet-root>" \
|
|
79
|
+
--module-path "<moduleDir>" \
|
|
80
|
+
--module-code "{moduleCode}" \
|
|
81
|
+
--app-code "{appCode}" \
|
|
82
|
+
--mode audit \
|
|
83
|
+
--rules DEV-API-010
|
|
84
|
+
```
|
|
85
|
+
Parse JSON stdout. Any `findings[].severity === "err"` → ERR.
|
|
86
|
+
|
|
87
|
+
If ANY check returns ERR → Phase 2a MUST re-enter.
|
|
88
|
+
|
|
89
|
+
### Phase 2b — API Screen-driven coverage
|
|
90
|
+
|
|
91
|
+
Run the audit CLI:
|
|
92
|
+
```bash
|
|
93
|
+
npx tsx skills/development/audit-dev-api/cli/audit-dev-api/index.ts \
|
|
94
|
+
--project-path "<dotnet-root>" \
|
|
95
|
+
--module-path "<moduleDir>" \
|
|
96
|
+
--module-code "{moduleCode}" \
|
|
97
|
+
--app-code "{appCode}" \
|
|
98
|
+
--mode audit \
|
|
99
|
+
--rules DEV-API-012
|
|
100
|
+
```
|
|
101
|
+
Parse JSON stdout. Any `findings[].severity === "err"` on DEV-API-012
|
|
102
|
+
(pagespec view missing its endpoint on screen controller) → ERR.
|
|
103
|
+
|
|
104
|
+
If no screen controllers exist at all (Phase 2b never ran), the CLI
|
|
105
|
+
emits `ok` — this is NOT a coverage gap but a first-run signal.
|
|
106
|
+
|
|
107
|
+
If ANY check returns ERR → Phase 2b MUST re-enter.
|
|
108
|
+
|
|
109
|
+
### Interaction with `--force`
|
|
110
|
+
|
|
111
|
+
`--force` affects Phase 3 only. It does NOT bypass coverage checks for
|
|
112
|
+
Phases 0-2 because they auto-detect PRD changes. The two mechanisms
|
|
113
|
+
are orthogonal:
|
|
114
|
+
|
|
115
|
+
| Scenario | Phases 0-2 | Phase 3 |
|
|
116
|
+
|----------|------------|---------|
|
|
117
|
+
| PRD unchanged, no --force | SKIP | Re-enter (always) |
|
|
118
|
+
| PRD changed, no --force | RE-ENTER | Re-enter |
|
|
119
|
+
| PRD unchanged, --force | SKIP | Full regen |
|
|
120
|
+
| PRD changed, --force | RE-ENTER | Full regen |
|
|
121
|
+
|
|
122
|
+
### Performance budget
|
|
123
|
+
|
|
124
|
+
Each pre-entry check MUST complete in < 5 seconds:
|
|
125
|
+
- `project-inventory` runs in < 2 s (regex-based, no LLM).
|
|
126
|
+
- `Grep` on Core providers is instant (single file).
|
|
127
|
+
- `audit-dev-api` CLI runs in < 3 s (glob + regex, no LLM).
|
|
128
|
+
|
|
129
|
+
Total overhead for all 4 checks: < 15 seconds.
|
|
130
|
+
|
|
131
|
+
## After Phase 0 (Core Foundation Seed)
|
|
132
|
+
- `.NET build` succeeds (the 5 generated `Core/*SeedDataProvider.cs` files
|
|
133
|
+
reference SmartStack NuGet types only — should compile in isolation).
|
|
134
|
+
- `verifyCoreFoundationSeed` PASSES every per-module check:
|
|
135
|
+
- Each declared module has a `NavigationModule.Create(... code: "{moduleCode}" ...)`
|
|
136
|
+
call in `CoreNavigationSeedDataProvider.cs`.
|
|
137
|
+
- `CoreRolesSeedDataProvider.cs` contains ≥ 1 `Role.Create(... applicationId: {Pascal}ApplicationId ...)`
|
|
138
|
+
for the application.
|
|
139
|
+
- `CorePermissionsSeedDataProvider.cs` contains ≥ 2 permission tuples per
|
|
140
|
+
declared module (access + read floor).
|
|
141
|
+
- `DependencyInjection.cs` (or sibling) carries the 5
|
|
142
|
+
`services.AddScoped<IClientSeedDataProvider, Core*SeedDataProvider>()` lines
|
|
143
|
+
between `<<< CORE-SEED-DI BEGIN/END >>>` markers.
|
|
144
|
+
|
|
145
|
+
> Phase 0 is deterministic. The agent does not write any `.cs` — `scaffold-core-seed`
|
|
146
|
+
> does. If the gate fails, root cause is upstream (stale CoreSeedSpec) — rebuild
|
|
147
|
+
> the spec and re-run. Hand-editing the Core providers is forbidden.
|
|
148
|
+
|
|
149
|
+
## After Phase 1 (Entities)
|
|
150
|
+
- `.NET build` succeeds.
|
|
151
|
+
- Every entity in `structured.entities[]` has a `.cs` under `Domain/{ModuleCode}/`.
|
|
152
|
+
- Every entity has an EF Core Configuration registered via
|
|
153
|
+
`ApplyConfigurationsFromAssembly`.
|
|
154
|
+
- EF migration created under the appropriate `Migrations.{Provider}` project —
|
|
155
|
+
`dotnet ef migrations script` generates valid SQL.
|
|
156
|
+
- Module-scoped reference-data providers under
|
|
157
|
+
`Persistence/Seeding/Modules/{ModuleCode}/` are OPTIONAL (only required for
|
|
158
|
+
pre-populated lookup tables). Soft warning — nav/roles/perms are Phase 0's job.
|
|
159
|
+
- `scaffold-tests --layer=domain` produced ≥ 1 `{Entity}Tests.cs` per entity
|
|
160
|
+
and `dotnet test --filter "Category=Domain&FullyQualifiedName~{ModuleCode}"` passes.
|
|
161
|
+
|
|
162
|
+
## After Phase 2a (API Integration)
|
|
163
|
+
- `.NET build` still succeeds.
|
|
164
|
+
- Every controller carries `[RequirePermission]` matching a path from
|
|
165
|
+
`structured.permissions[]`.
|
|
166
|
+
- Integration tests for CRUD on each entity pass
|
|
167
|
+
(`dotnet test --filter "Category=Integration&FullyQualifiedName~{ModuleCode}"`).
|
|
168
|
+
- **BLOCKING** — Business-rule tests pass
|
|
169
|
+
(`dotnet test --filter "Category=Business&FullyQualifiedName~{ModuleCode}"`) —
|
|
170
|
+
one `[Theory]` per `structured.businessRules[]` entry, fed by
|
|
171
|
+
`validExamples` / `invalidExamples`. Non-negotiable.
|
|
172
|
+
- **BLOCKING — No residual stubs**:
|
|
173
|
+
`grep -rn "NotImplementedException\|TODO\[BR-\|TODO\[UC-"` across
|
|
174
|
+
`src/{Ns}.Application` + `src/{Ns}.Infrastructure` returns nothing.
|
|
175
|
+
Audit DEV-API-008/009 perform the same check with structured findings.
|
|
176
|
+
- **BLOCKING — Business-rule test parity**: count of `Category=Business` test
|
|
177
|
+
cases ≥ number of rules in `règles-métier.md`. (Vacuous "0 rules → 0 tests
|
|
178
|
+
→ green" is disallowed.)
|
|
179
|
+
- **BLOCKING — Use-case action coverage**: every custom action linked to a
|
|
180
|
+
`UC-…` has a service method with a real body + `// UC-…` trace comment.
|
|
181
|
+
- **BLOCKING — `audit-dev-api --mode audit` returns 0 `err`**:
|
|
182
|
+
```bash
|
|
183
|
+
npx tsx skills/development/audit-dev-api/cli/audit-dev-api/index.ts \
|
|
184
|
+
--project-path "<dotnet-root>" \
|
|
185
|
+
--module-path "<absolute path to .smartstack/ba/{appCode}/{moduleCode}>" \
|
|
186
|
+
--module-code "{moduleCode}" \
|
|
187
|
+
--app-code "{appCode}" \
|
|
188
|
+
--mode audit
|
|
189
|
+
```
|
|
190
|
+
Runs DEV-API-010 (every pagespec `kind:api` non-CRUD has a matching
|
|
191
|
+
`[HttpVerb]` on the integration controller) + DEV-API-011 (no phantom
|
|
192
|
+
endpoint). An `err` here = orchestrator's custom-action derivation skipped
|
|
193
|
+
an entry — auto-heal applies the derivation, retries; if still red,
|
|
194
|
+
`ba.gap-persistent` → DEFER (blocker `ba.gap`, high), continue.
|
|
195
|
+
|
|
196
|
+
## After Phase 2b (API Screen-driven)
|
|
197
|
+
- `.NET build` still succeeds with every new `{EntityPlural}ScreenController.cs`
|
|
198
|
+
+ `{Entity}{View}ScreenDto.cs` compiled.
|
|
199
|
+
- Every pagespec in `<MODULE>/pagespecs/` has a matching endpoint on its
|
|
200
|
+
`{EntityPlural}ScreenController`.
|
|
201
|
+
- The Swagger document group `screens` lists exactly N endpoints, where N =
|
|
202
|
+
count of pagespecs with view ∈ {list, detail, form, dashboard} + sum of
|
|
203
|
+
`actions[]` `kind:api` entries.
|
|
204
|
+
- No `// TODO[SCREEN-` markers in generated controllers (audit-dev-api
|
|
205
|
+
DEV-API-012/013 BLOCKING).
|
|
206
|
+
- Every screen-driven endpoint calls the SAME `I{Entity}Service` exposed by
|
|
207
|
+
Phase 2a (DEV-API-014 enforces structurally — no parallel service forks).
|
|
208
|
+
- `dotnet test --filter "Category=Acceptance"` still green (no AC regression).
|
|
209
|
+
|
|
210
|
+
## Phase 3 pre-entry — MANDATORY even on re-runs
|
|
211
|
+
|
|
212
|
+
### Normal mode (no `--force`) — targeted re-gen via spec-diff ∪ disk-drift
|
|
213
|
+
|
|
214
|
+
Phase 3 ALWAYS re-enters this gate, but on a re-run it regenerates only the
|
|
215
|
+
**delta**, not all 28 pages. This is the frontend pendant of the Phases 0-2
|
|
216
|
+
`pre_entry_coverage_check` (§ above): compute what genuinely needs work BEFORE
|
|
217
|
+
fanning out, so a single-label edit costs ~15 s instead of ~3 min.
|
|
218
|
+
|
|
219
|
+
The regeneration set is the **union of two independent drifts**:
|
|
220
|
+
|
|
221
|
+
**A. Spec-drift** — `compute-page-diff` (pure, < 1 s, no LLM):
|
|
222
|
+
```bash
|
|
223
|
+
npx tsx skills/ba-develop/cli/compute-page-diff/index.ts \
|
|
224
|
+
--spec '{"moduleRoot":"<.smartstack/ba/{appCode}/{moduleCode}>"}'
|
|
225
|
+
```
|
|
226
|
+
Reads `report.diff.{added,modified,unchanged,removed}` and
|
|
227
|
+
`report.toRegenerate` (= `added ∪ modified`). On the first run there is no
|
|
228
|
+
`.run-snapshot.json` (`snapshotFound:false`) → every page is `added` →
|
|
229
|
+
regenerate all, naturally.
|
|
230
|
+
|
|
231
|
+
**B. Disk-drift** — close the **silent-skip class**. A page whose pagespec
|
|
232
|
+
hash is `unchanged` can still have a drifted `.tsx` (deleted, hand-edited into
|
|
233
|
+
an err state, broken i18n/import). For **each** key in `report.diff.unchanged`,
|
|
234
|
+
run `validate-page` on its `.tsx`:
|
|
235
|
+
```bash
|
|
236
|
+
npx tsx skills/development/frontend/component/cli/validate-page/index.ts \
|
|
237
|
+
--project-path "<web-root>" --page-file "<src/pages/{appLower}/{module}/{section}/{Entity}{View}Page.tsx>"
|
|
238
|
+
```
|
|
239
|
+
`validate-page` returns an `err` for a **missing** file too (it short-circuits
|
|
240
|
+
to `imports-resolve: pageFile does not exist`), and for the
|
|
241
|
+
`cli-generated-marker` rule — so a page that exists but was NOT produced by
|
|
242
|
+
`scaffold-component` (no `@generated-by` header) counts as drift. Any
|
|
243
|
+
`unchanged` page with ≥ 1 `err` → add it to the disk-drift set.
|
|
244
|
+
|
|
245
|
+
**Decision flow** (mirrors `gates.md` Phases 0-2 lines 23-34):
|
|
246
|
+
```
|
|
247
|
+
regenerate = unique( report.toRegenerate ∪ disk-drift )
|
|
248
|
+
if regenerate == [] :
|
|
249
|
+
→ SKIP Phase 3a (spec AND disk both clean — the real perf win)
|
|
250
|
+
else :
|
|
251
|
+
→ RE-ENTER Phase 3a for the entities owning a page in `regenerate`,
|
|
252
|
+
regenerating exactly those views (see phases-detail.md § Phase 3a loop)
|
|
253
|
+
```
|
|
254
|
+
`removed` pages (pagespec gone, `.tsx` orphaned) are logged as a non-blocking
|
|
255
|
+
warning — not auto-deleted (git is the backup; the BA-side `reconcile-menu`
|
|
256
|
+
owns orphan removal).
|
|
257
|
+
|
|
258
|
+
**This gate is NOT optional.** The orchestrator MUST NOT skip Phase 3 on
|
|
259
|
+
artifact presence alone — skip requires BOTH an empty spec-diff AND zero
|
|
260
|
+
disk-drift. The `@generated-by scaffold-component` marker is the proof of
|
|
261
|
+
provenance; `validate-page` enforces it on every `unchanged` page.
|
|
262
|
+
|
|
263
|
+
**After a successful regeneration** (Phase 3 build gate green), write the new
|
|
264
|
+
baseline so the NEXT run diffs against it:
|
|
265
|
+
```bash
|
|
266
|
+
npx tsx skills/ba-develop/cli/update-snapshot/index.ts \
|
|
267
|
+
--spec '{"moduleRoot":"<.smartstack/ba/{appCode}/{moduleCode}>"}'
|
|
268
|
+
```
|
|
269
|
+
Snapshot the run ONLY after success — a failed run must never poison the baseline.
|
|
270
|
+
|
|
271
|
+
### `--force` mode
|
|
272
|
+
|
|
273
|
+
When `forceMode = true`, skip the spec-diff + validate-page scan entirely.
|
|
274
|
+
Re-enter Phase 3 from sub-phase 3.0 unconditionally. In Phase 3a, the skip
|
|
275
|
+
rule is disabled — every entity × every view invokes `scaffold-component` and
|
|
276
|
+
`scaffold-api-client` even if the files already exist. The CLIs overwrite in
|
|
277
|
+
place; no files are deleted. `update-snapshot` still runs after the build gate
|
|
278
|
+
so the baseline reflects the forced regeneration.
|
|
279
|
+
|
|
280
|
+
The run report logs every overwritten file under `phase3.regeneratedFiles[]`.
|
|
281
|
+
|
|
282
|
+
## After Phase 3 (Frontend)
|
|
283
|
+
- `validate-page` returns success for every page under
|
|
284
|
+
`src/pages/{appLower}/{module}/` — ALL pages, not just those written during
|
|
285
|
+
the current run.
|
|
286
|
+
- `audit-dev-frontend --mode audit` returns **0 `err` findings** after the
|
|
287
|
+
apply pass. Remaining `warn` are tolerated.
|
|
288
|
+
- `npm run build` passes (Vite resolves every
|
|
289
|
+
`lazyWithRetry(() => import('@/…'))` — catches broken imports that
|
|
290
|
+
type-check misses).
|
|
291
|
+
- Every screen code from `structured.screens[]` has a `.tsx` under
|
|
292
|
+
`src/pages/…` or `src/features/…`.
|
|
293
|
+
- Every `PageRegistry.register(key, lazyWithRetry(() => import('@/…')))` in
|
|
294
|
+
`src/extensions/*Registry*.ts` resolves to an existing file.
|
|
295
|
+
- **BLOCKING — ComponentKey sanity**: every registered key MUST match the
|
|
296
|
+
shape `{appCode}.{module}.{section}[.{view}]` and MUST equal a
|
|
297
|
+
`componentKey` returned by `GET /api/navigation/menu`. Verify with:
|
|
298
|
+
```bash
|
|
299
|
+
curl -s -b $cookie -H "X-Tenant-Slug: $tenant" \
|
|
300
|
+
http://localhost:5142/api/navigation/menu \
|
|
301
|
+
| jq '.. | .componentKey? // empty' | sort -u
|
|
302
|
+
```
|
|
303
|
+
Forbidden patterns (silent spinner with no console error):
|
|
304
|
+
- kebab-case: `'contacts-directory'` → must be `'crm.contacts.directory'`
|
|
305
|
+
- missing app prefix: `'contacts.directory'` → must be `'crm.contacts.directory'`
|
|
306
|
+
- single segment: `'directory'` → must be `'crm.contacts.directory'`
|
|
307
|
+
- appCode-prefixed legacy `'TestV2.crm.contacts.directory'` is wrong (appCode
|
|
308
|
+
is the **navigation app code** lowercased, not the .NET project name)
|
|
309
|
+
- `src/main.tsx` imports `./extensions/componentRegistry.generated` (side-effect
|
|
310
|
+
import — triggers `register()` at startup).
|
|
311
|
+
- The `apiClient.ts` reads tenant from `localStorage.getItem('currentTenantSlug')`
|
|
312
|
+
(NOT `tenant_slug`), uses `withCredentials: true` (SmartStack auth = httpOnly
|
|
313
|
+
cookies), does NOT auto-redirect on 401 (let `SmartStackProvider` handle).
|
|
314
|
+
- Every route in `structured.permissions[]` is registered in the dynamic router
|
|
315
|
+
(backend `NavigationConfiguration` seed — Phase 0).
|
|
316
|
+
- Locale parity: every `t('key')` in generated pages resolves in fr/en/it/de.
|
|
317
|
+
- `npm test` — component tests pass (one per page from `scaffold-tests
|
|
318
|
+
--layer=frontend`).
|
|
319
|
+
|
|
320
|
+
## After Phase 3e (Wire-up gate — static parity + runtime smoke)
|
|
321
|
+
|
|
322
|
+
Inserted after Phase 3 build gate; runs before Phase 4 boots. Two-step
|
|
323
|
+
gate, fast then slow:
|
|
324
|
+
|
|
325
|
+
### Step 1 — `audit-dev-wire` (static, ~1 s)
|
|
326
|
+
|
|
327
|
+
- **Gate (defer-not-halt)** — runs the URL parity audit defined in
|
|
328
|
+
`templates/skills/development/audit-dev-wire/SKILL.md`. Cross-references
|
|
329
|
+
every URL the generated frontend calls against every route the generated
|
|
330
|
+
backend exposes.
|
|
331
|
+
- Pass condition: `report.counts.errors == 0` (zero `DEV-WIRE-001 err`).
|
|
332
|
+
- Failure routes to auto-healing via `wire.frontend-orphan` or
|
|
333
|
+
`wire.strata-mismatch` (see `references/auto-healing.md`). Auto-fix
|
|
334
|
+
re-invokes the appropriate scaffolder; a `wire.verb-mismatch` that cannot be
|
|
335
|
+
reconciled is **deferred** as a blocker (high), not a stop.
|
|
336
|
+
- Invocation:
|
|
337
|
+
```bash
|
|
338
|
+
npx tsx skills/development/audit-dev-wire/cli/audit-dev-wire/index.ts \
|
|
339
|
+
--project-path "<dotnet-root>" \
|
|
340
|
+
--web-path "<web-root>" \
|
|
341
|
+
--module-code "<MODULE>" \
|
|
342
|
+
--app-code "<APP>" \
|
|
343
|
+
--mode audit
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### Step 2 — `run-smoke` (runtime, ~30-120 s)
|
|
347
|
+
|
|
348
|
+
- **Gate (defer-not-halt)** — boots `dotnet run` + `npm run dev` in background,
|
|
349
|
+
probes every page route + API endpoint, flags any `4xx`/`5xx`.
|
|
350
|
+
- Pass condition: `report.passed == true` AND `report.failedProbes == 0`.
|
|
351
|
+
- Failure routes to auto-healing via `smoke.4xx` / `smoke.5xx` / `smoke.boot`;
|
|
352
|
+
an unhealable failure is **deferred** as a blocker (`smoke.5xx` high,
|
|
353
|
+
`smoke.boot` medium) — the run continues, it never stops here.
|
|
354
|
+
- Skips boot if Step 1 already emitted `err` findings (no point booting a
|
|
355
|
+
backend known to be missing routes).
|
|
356
|
+
- Boot timeout default: 120 s per service (configurable). A boot timeout is a
|
|
357
|
+
`medium` blocker (infra), never a stop.
|
|
358
|
+
|
|
359
|
+
The smoke gate is additive — it never bypasses the static audit. Both feed
|
|
360
|
+
Phase 3's result; an unhealable failure on either is **deferred** as a blocker,
|
|
361
|
+
so Phase 3 always completes and the run moves on to Phase 4.
|
|
362
|
+
|
|
363
|
+
## After Phase 4 (Acceptance Tests)
|
|
364
|
+
- `scaffold-tests-from-ac` returned `success: true` with `factsEmitted == acsParsed`.
|
|
365
|
+
- **`audit-dev-tests` returns `success: true`** (all of DEV-TEST-001/002/003 are
|
|
366
|
+
`ok` or `warn`, no `err`):
|
|
367
|
+
```bash
|
|
368
|
+
npx tsx skills/development/audit-dev-tests/cli/audit-dev-tests/index.ts \
|
|
369
|
+
--spec '{"moduleDir":"<moduleDir>","projectPath":"<projectPath>"}' --json
|
|
370
|
+
```
|
|
371
|
+
- DEV-TEST-001 (err) — every BA AC has a generated `[Fact]`.
|
|
372
|
+
- DEV-TEST-002 (err) — no `// TODO[AC-` markers remain.
|
|
373
|
+
- DEV-TEST-003 (warn) — no stale `[Trait("AC", "<ref>")]` references.
|
|
374
|
+
- `dotnet test --filter "Category=Acceptance"` ideally returns 0 failures. Tests
|
|
375
|
+
failing because the production code does not satisfy the AC ARE the signal —
|
|
376
|
+
auto-heal tries `acceptance.todo-ac` first; persistent failure with no stub
|
|
377
|
+
→ `tests.acceptance.fail-real` is **deferred** (blocker
|
|
378
|
+
`tests.acceptance.disagreement`, high): the test stays red and the run continues.
|
|
379
|
+
- `acCoverage` aggregates to `{ total: baAcCount, covered: baAcCount -
|
|
380
|
+
<DEV-TEST-001.refs>.length, missing: <DEV-TEST-001.refs> }`.
|