@atlashub/smartstack-cli 4.80.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 +9421 -79036
- package/dist/index.js.map +1 -1
- package/package.json +5 -20
- 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,530 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit-dev-frontend
|
|
3
|
+
description: Audit code generated by the Frontend phase against the PRD slice — page coverage, registry wiring, lazy-import integrity, i18n namespaces, drift detection
|
|
4
|
+
group: D
|
|
5
|
+
phase: devFrontend
|
|
6
|
+
kind: audit
|
|
7
|
+
audit_only: true
|
|
8
|
+
section_label: 'AUDIT-DEV-FRONTEND (rules to apply against generated React pages vs the PRD Frontend slice)'
|
|
9
|
+
allowed-tools: [Read, Glob, Grep, Bash] # Bash: CLI invocation
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# audit-dev-frontend — Frontend Phase Code-vs-PRD Audit
|
|
13
|
+
|
|
14
|
+
## Context
|
|
15
|
+
|
|
16
|
+
You are auditing the output of the Frontend phase of `ba-develop`.
|
|
17
|
+
Compare the PRD slice (spec) against the generated `.tsx` pages, registries
|
|
18
|
+
and i18n files (reality), and emit findings for every drift.
|
|
19
|
+
|
|
20
|
+
You receive in the system prompt:
|
|
21
|
+
|
|
22
|
+
- `--- PRD SLICE: FRONTEND ---` — Markdown listing the screens / pages /
|
|
23
|
+
components the user wants for this application.
|
|
24
|
+
- `--- PROJECT INVENTORY (frontend) ---` — deterministic scan of:
|
|
25
|
+
- `pages[]` (file, entity, kind),
|
|
26
|
+
- `registries[]` (which generated registry files exist),
|
|
27
|
+
- `i18n.locales[]` and `i18n.namespaces[]`.
|
|
28
|
+
- `--- FILES TOUCHED THIS PHASE ---` — files modified during the current run.
|
|
29
|
+
- `--- APPLICATION CODE / MODULE CODE ---` — active scope.
|
|
30
|
+
|
|
31
|
+
You may use `Read` / `Glob` / `Grep` to verify rules. **No `Edit` /
|
|
32
|
+
`Write` / `Bash`** — you are read-only.
|
|
33
|
+
|
|
34
|
+
Apply every rule across the module scope. Emit `ok` findings for passing
|
|
35
|
+
rules and `err` / `warn` findings for drifts. Use `err` only when the spec
|
|
36
|
+
is unambiguous and the gap is clearly wrong (missing required page,
|
|
37
|
+
broken registry import). Use `warn` for conventions, drift, and missing
|
|
38
|
+
nice-to-haves.
|
|
39
|
+
|
|
40
|
+
## Rules
|
|
41
|
+
|
|
42
|
+
### DEV-UI-001 — Every screen in the PRD slice has a generated page file
|
|
43
|
+
- **Severity**: err (if any required page missing), ok (if all present)
|
|
44
|
+
- Check: for each screen declared in the PRD slice with a SmartComponent
|
|
45
|
+
that maps to a page (`SmartListView`, `SmartForm`, `SmartCard`,
|
|
46
|
+
`SmartDashboard`, `SmartKanban`, `SmartAppHome`, `SmartModuleHome`,
|
|
47
|
+
`SmartSectionHome`), find a matching entry in `inventory.frontend.pages[*]`.
|
|
48
|
+
Match key = `(entity.toLowerCase(), kind.toLowerCase())` against
|
|
49
|
+
`(page.entity.toLowerCase(), page.kind.toLowerCase())`. Pages without
|
|
50
|
+
an entity (Dashboard / *Home) match by their screen `code`.
|
|
51
|
+
- **ok**: label=`DEV_UI_001_ok`, params=`{ count: <number> }`
|
|
52
|
+
- **err**: label=`DEV_UI_001_err`, params=`{ missing: "<comma-separated entity/kind or screen-code>" }`
|
|
53
|
+
- **fixSkill**: `frontend-component`, **fixPhaseKey**: `frontend`
|
|
54
|
+
- **solution** (mandatory on err): "Re-run the Frontend phase. The
|
|
55
|
+
subagent must call `scaffold-component` for each missing page,
|
|
56
|
+
using the matching SmartComponent pattern from the PRD slice."
|
|
57
|
+
|
|
58
|
+
### DEV-UI-002 — Every generated page is referenced in at least one registry
|
|
59
|
+
- **Severity**: err (if any orphan page), ok (if all wired)
|
|
60
|
+
- Check: for each page in `inventory.frontend.pages[*].file`, search the
|
|
61
|
+
registry files listed in `inventory.frontend.registries[]` (typically
|
|
62
|
+
`componentRegistry.generated.ts` and friends) for a `lazy-import`
|
|
63
|
+
pointing at that file. Use `Grep` with the relative file path or the
|
|
64
|
+
page module's expected key.
|
|
65
|
+
- A page that exists on disk but isn't registered will not render at
|
|
66
|
+
runtime — DynamicRouter cannot resolve it.
|
|
67
|
+
- **ok**: label=`DEV_UI_002_ok`
|
|
68
|
+
- **err**: label=`DEV_UI_002_err`, params=`{ pages: "<comma-separated orphan page paths>" }`
|
|
69
|
+
- **solution** (mandatory on err): "Either re-run the routes scaffolder
|
|
70
|
+
to regenerate the registry, or add a manual `lazy-import` entry for
|
|
71
|
+
each orphan page. The DB-driven router fails to resolve unregistered
|
|
72
|
+
pages."
|
|
73
|
+
|
|
74
|
+
### DEV-UI-003 — Registry lazy-imports resolve to existing files
|
|
75
|
+
- **Severity**: err (if any broken import), ok (if all valid)
|
|
76
|
+
- Check: for each registry file, `Read` it and extract every
|
|
77
|
+
`() => import('<path>')`. Resolve `<path>` relative to the registry
|
|
78
|
+
file. The target file MUST exist on disk (`Glob`). Broken imports
|
|
79
|
+
fail the Vite build silently for lazy chunks until the route is
|
|
80
|
+
visited at runtime.
|
|
81
|
+
- **ok**: label=`DEV_UI_003_ok`
|
|
82
|
+
- **err**: label=`DEV_UI_003_err`, params=`{ broken: "<comma-separated registry→missing-import>" }`
|
|
83
|
+
- **solution** (mandatory on err): "Either restore the missing files or
|
|
84
|
+
remove the orphan import entries from the registry. Lazy-imports that
|
|
85
|
+
resolve to non-existent paths produce a runtime error on first
|
|
86
|
+
navigation, not at build time."
|
|
87
|
+
|
|
88
|
+
### DEV-UI-004 — i18n namespace exists for the module across every locale
|
|
89
|
+
- **Severity**: warn (if any locale missing the namespace), ok (if all present)
|
|
90
|
+
- Check: derive the expected namespace from the module code in the PRD
|
|
91
|
+
(typically `<applicationCode>.<moduleCode>` or `<moduleCode>` alone).
|
|
92
|
+
For every locale in `inventory.frontend.i18n.locales`, the namespace
|
|
93
|
+
MUST appear in `inventory.frontend.i18n.namespaces`. The frontend
|
|
94
|
+
falls back to the key string when a translation is missing — the user
|
|
95
|
+
sees raw camelCase in the UI.
|
|
96
|
+
- Skip when `inventory.frontend.i18n.locales` is empty.
|
|
97
|
+
- **ok**: label=`DEV_UI_004_ok`
|
|
98
|
+
- **warn**: label=`DEV_UI_004_warn`, params=`{ missing: "<comma-separated locale.namespace pairs>" }`
|
|
99
|
+
- **solution** (mandatory on warn): "Add the missing namespace JSON
|
|
100
|
+
files for each locale (typically `src/locales/<locale>/<namespace>.json`).
|
|
101
|
+
Even an empty `{}` is preferable to a missing file — the i18next
|
|
102
|
+
loader logs a warning but does not crash."
|
|
103
|
+
|
|
104
|
+
### DEV-UI-005 — Pages wrap their content in `<PageTemplate>`
|
|
105
|
+
- **Severity**: warn (if any page raw), ok (if all wrap)
|
|
106
|
+
- Check: for each page in `inventory.frontend.pages[*].file`, `Grep`
|
|
107
|
+
for `<PageTemplate` in the file content. Pages that skip the wrapper
|
|
108
|
+
break the Studio layout (sidebar, breadcrumbs, header).
|
|
109
|
+
- Skip pages whose `kind` is `dashboard` or `home` if the project's
|
|
110
|
+
customisation-ui doesn't expose a PageTemplate for them (verify by
|
|
111
|
+
reading at most one example dashboard / home page from the
|
|
112
|
+
customisation-ui templates).
|
|
113
|
+
- **ok**: label=`DEV_UI_005_ok`
|
|
114
|
+
- **warn**: label=`DEV_UI_005_warn`, params=`{ pages: "<comma-separated page paths missing PageTemplate>" }`
|
|
115
|
+
- **solution** (mandatory on warn): "Wrap each listed page with
|
|
116
|
+
`<PageTemplate title=\"...\">{...}</PageTemplate>`. The template is
|
|
117
|
+
the single source of truth for layout (header / sidebar / breadcrumbs)."
|
|
118
|
+
|
|
119
|
+
### DEV-UI-006 — Sensitive actions are gated by `<PermissionGuard>` / `useHasPermission`
|
|
120
|
+
- **Severity**: warn (if any unguarded action button), ok (if all guarded)
|
|
121
|
+
- Check: for each page that exposes a write action (button, menu item)
|
|
122
|
+
matching the keywords `Create`, `Edit`, `Delete`, `Update`, `New`,
|
|
123
|
+
`Add`, `Remove`, the file must reference either `PermissionGuard` or
|
|
124
|
+
`useHasPermission` at least once. `Grep` the page contents for both
|
|
125
|
+
identifiers.
|
|
126
|
+
- Skip pages that obviously have no write actions (read-only Dashboard,
|
|
127
|
+
Home pages without quick-actions).
|
|
128
|
+
- **ok**: label=`DEV_UI_006_ok`
|
|
129
|
+
- **warn**: label=`DEV_UI_006_warn`, params=`{ pages: "<comma-separated page paths missing permission gate>" }`
|
|
130
|
+
- **solution** (mandatory on warn): "Wrap each write button with
|
|
131
|
+
`<PermissionGuard permission=\"<key>\">...</PermissionGuard>` or
|
|
132
|
+
short-circuit the handler with `useHasPermission`. Without the gate,
|
|
133
|
+
unauthorized users see a button that throws on click instead of
|
|
134
|
+
being hidden."
|
|
135
|
+
|
|
136
|
+
### DEV-UI-007 — Each page has at least one `*.test.tsx` test file
|
|
137
|
+
- **Severity**: warn (if any page has no test), ok (if all covered)
|
|
138
|
+
- Calque the existing frontend gate (`runGate frontend` already counts
|
|
139
|
+
test files). Check: for each page in `inventory.frontend.pages[*].file`,
|
|
140
|
+
there must be a sibling test file matching `<base>.test.tsx` OR a
|
|
141
|
+
test file under `__tests__/` with a matching name. Use `Glob` to
|
|
142
|
+
enumerate.
|
|
143
|
+
- **ok**: label=`DEV_UI_007_ok`
|
|
144
|
+
- **warn**: label=`DEV_UI_007_warn`, params=`{ pages: "<comma-separated page paths missing tests>" }`
|
|
145
|
+
- **solution** (mandatory on warn): "Re-run `scaffold-tests --layer frontend`
|
|
146
|
+
for each listed page, or add a minimal smoke test that mounts the page
|
|
147
|
+
with a Test wrapper providing QueryClient + i18n."
|
|
148
|
+
|
|
149
|
+
### DEV-UI-008 — No "ghost" pages (drift detector)
|
|
150
|
+
- **Severity**: warn (if any ghost found), ok (if none)
|
|
151
|
+
- Reciprocal of DEV-UI-001: every page in
|
|
152
|
+
`inventory.frontend.pages[*]` must trace back to a screen in the PRD
|
|
153
|
+
slice. Match key = `(entity, kind)` for entity-bound pages, screen
|
|
154
|
+
`code` for hub pages. Pages with no upstream spec are stale (PRD
|
|
155
|
+
edited after a previous run) or hallucinated.
|
|
156
|
+
- **ok**: label=`DEV_UI_008_ok`
|
|
157
|
+
- **warn**: label=`DEV_UI_008_warn`, params=`{ pages: "<comma-separated ghost page paths>" }`
|
|
158
|
+
- **solution** (mandatory on warn): "Either re-add the corresponding
|
|
159
|
+
screen to the PRD slice if it was removed by mistake, or delete the
|
|
160
|
+
page file AND remove its registry entry. Leaving ghost pages in the
|
|
161
|
+
registry leaves dead routes in the Studio menu."
|
|
162
|
+
|
|
163
|
+
### DEV-UI-009 — Every PRD use case has at least one page targeting its primary entity
|
|
164
|
+
- **Severity**: err (if any use case uncovered), ok (if all covered)
|
|
165
|
+
- Check: for each entry in `prdSlice.useCases[*]` with an `entity` field,
|
|
166
|
+
there must be at least one page in `inventory.frontend.pages[*]` with a
|
|
167
|
+
matching entity (case-insensitive). Use cases without an entity are
|
|
168
|
+
skipped (process-only flows). A use case with no UI entry-point cannot
|
|
169
|
+
be exercised by the user — the PRD scenario is unreachable in practice.
|
|
170
|
+
- **ok**: label=`DEV_UI_009_ok`, params=`{ count: <number> }`
|
|
171
|
+
- **err**: label=`DEV_UI_009_err`, params=`{ useCases: "<comma-separated UC.code(entity)>" }`
|
|
172
|
+
- **fixSkill**: `frontend-component`, **fixPhaseKey**: `frontend`
|
|
173
|
+
- **solution** (mandatory on err): "Each PRD use case must have at least
|
|
174
|
+
one page targeting its primary entity. Re-run scaffold-component to
|
|
175
|
+
generate the missing pages. If the use case is intentionally process-only
|
|
176
|
+
(e.g. background jobs), remove the `entity` field from the PRD slice."
|
|
177
|
+
|
|
178
|
+
### DEV-UI-010 — Business rules with `enforcedAt: ui|both` are wired into form pages
|
|
179
|
+
- **Severity**: warn (if any rule unwired), ok (if all wired or no UI rules)
|
|
180
|
+
- Check: for each rule in `prdSlice.businessRules[*]` whose `enforcedAt`
|
|
181
|
+
is `'ui'` or `'both'`, find the form/create/edit page for the rule's
|
|
182
|
+
`entity`. The page source MUST either reference the rule code (e.g.
|
|
183
|
+
in a comment or test) OR contain a Zod schema with `.refine(...)`. A
|
|
184
|
+
rule with `enforcedAt: ui` that produces no Zod refinement leaves the
|
|
185
|
+
form unconstrained — the user submits invalid data and discovers the
|
|
186
|
+
rule only via a backend 422 response, breaking the inline-feedback loop.
|
|
187
|
+
- **ok**: label=`DEV_UI_010_ok`, params=`{ count: <number of rules verified> }`
|
|
188
|
+
- **warn**: label=`DEV_UI_010_warn`, params=`{ rule, entity, page?, missingPage? }`
|
|
189
|
+
- **solution** (mandatory on warn): "Inject a Zod refine in the page's
|
|
190
|
+
formSchema using the rule's `validExamples` / `invalidExamples`. The
|
|
191
|
+
refine message should match the rule code so users can correlate UI
|
|
192
|
+
errors back to the PRD."
|
|
193
|
+
|
|
194
|
+
### DEV-UI-011 — Pages mapped to a `[RequirePermission(X)]` controller wrap their body in `<PermissionGuard permission="X">`
|
|
195
|
+
- **Severity**: err (if any page unguarded), ok (if all guarded)
|
|
196
|
+
- Check: for each PRD permission code (and, if `--backend-path` is
|
|
197
|
+
supplied to the CLI, every `[RequirePermission("X")]` attribute scanned
|
|
198
|
+
from `*Controller.cs` files), find the corresponding page (by entity
|
|
199
|
+
match) and verify its source contains
|
|
200
|
+
`<PermissionGuard permission="X">…</PermissionGuard>` wrapping the body.
|
|
201
|
+
This is a defence-in-depth gate: the backend always enforces the
|
|
202
|
+
permission, but without the frontend wrap the user sees a route that
|
|
203
|
+
loads, fails its API call with 403, and renders a broken empty state
|
|
204
|
+
instead of "you do not have access".
|
|
205
|
+
- DEV-UI-011 covers **page-level** wrapping. The action-level rule
|
|
206
|
+
(DEV-UI-006) remains separate — both must pass for full coverage.
|
|
207
|
+
- **ok**: label=`DEV_UI_011_ok`
|
|
208
|
+
- **err**: label=`DEV_UI_011_err`, params=`{ page, permission, entity }`
|
|
209
|
+
- **fixSkill**: `audit-dev-frontend`, **fixPhaseKey**: `frontend`
|
|
210
|
+
- **solution** (mandatory on err): "Wrap the page body inside
|
|
211
|
+
`<PermissionGuard permission=\"<key>\">…</PermissionGuard>`. The CLI's
|
|
212
|
+
--mode apply pass autofixes this rule by injecting the wrap and importing
|
|
213
|
+
PermissionGuard from `@/components/PermissionGuard`."
|
|
214
|
+
|
|
215
|
+
### DEV-UI-012 — RBAC nav entries declare `requiredPermissions:` matching the PRD RBAC matrix
|
|
216
|
+
- **Severity**: warn (if any actor's permission missing from the seed), ok otherwise
|
|
217
|
+
- Check (CLI-only, requires `--core-navigation-seed-path`): for each
|
|
218
|
+
`prdSlice.rbac[*]` entry granting permissions to an actor, the
|
|
219
|
+
generated `Persistence/Seeding/Core/CoreNavigationSeedDataProvider.cs`
|
|
220
|
+
must reference that permission (string-literal match). If the navigation
|
|
221
|
+
seed omits a permission an actor was supposed to have, the menu item is
|
|
222
|
+
hidden for that actor — they discover the missing route only by direct
|
|
223
|
+
URL access.
|
|
224
|
+
- This rule crosses the Phase 0 backend boundary: the fix is to update
|
|
225
|
+
the BA RBAC tables and re-run `scaffold-core-seed`, NOT to hand-edit
|
|
226
|
+
the seed file.
|
|
227
|
+
- **ok**: label=`DEV_UI_012_ok`
|
|
228
|
+
- **warn**: label=`DEV_UI_012_warn`, params=`{ actor, permission, file }`
|
|
229
|
+
- **fixSkill**: `backend-core-seed`, **fixPhaseKey**: `core`
|
|
230
|
+
- **solution** (mandatory on warn): "Re-run scaffold-core-seed after
|
|
231
|
+
updating the BA RBAC tables to include this permission in the
|
|
232
|
+
navigation entry's requiredPermissions list."
|
|
233
|
+
|
|
234
|
+
### DEV-UI-013 — `navigate()` URLs come from the per-module routes helper, not hardcoded literals
|
|
235
|
+
- **Severity**: err (if any hardcoded URL), ok otherwise
|
|
236
|
+
- Check: for each `*Page.tsx` page, grep for absolute string literals inside
|
|
237
|
+
`navigate(...)` (regex `navigate\s*\(\s*(['"\`])(\/[^'"\`]+)\1`). Pages
|
|
238
|
+
must instead `import { routes } from '@/extensions/<module>Routes'` and
|
|
239
|
+
call `routes.<section>.create()` / `.detail(id)` / `.edit(id)`.
|
|
240
|
+
- The bug it catches : when a page navigates to `/budgets/budgets/new` while
|
|
241
|
+
the registry registered `'budgets.budgets.create'`, DynamicRouter cannot
|
|
242
|
+
resolve the URL → blank page or perpetual spinner. The routes helper is
|
|
243
|
+
the single source of truth shared with `{module}Registry.ts`.
|
|
244
|
+
- **ok**: label=`DEV_UI_013_ok`
|
|
245
|
+
- **err**: label=`DEV_UI_013_err`, params=`{ file, url }`
|
|
246
|
+
- **fixSkill**: `frontend-component`, **fixPhaseKey**: `frontend`, autoFixable
|
|
247
|
+
- **solution** (mandatory on err): "Replace the hardcoded URL with a call
|
|
248
|
+
to the per-module routes helper. Re-run `scaffold-component --overwrite`
|
|
249
|
+
for the affected page — the regenerated template imports `routes` from
|
|
250
|
+
`@/extensions/<module>Routes` and uses it consistently."
|
|
251
|
+
|
|
252
|
+
### DEV-UI-014 — List pages do not emit stub helpers for missing DTO fields
|
|
253
|
+
- **Severity**: err (if any stub helper), ok otherwise
|
|
254
|
+
- Check: in List pages only, regex-detect named arrow/function helpers whose
|
|
255
|
+
body returns a literal stub (`return 0`, `return ''`, `return null`,
|
|
256
|
+
`return false`). Pattern names ending in `For` (`consumptionFor`,
|
|
257
|
+
`priceFor`) are the typical "give-up fallback" the sub-agent emits when
|
|
258
|
+
it can't find the field in the list DTO.
|
|
259
|
+
- This rule does **not** auto-fix : the structural fix is to declare the
|
|
260
|
+
missing field as a computed attribute with a `formula` in the BA data
|
|
261
|
+
model (audit DM-016). `scaffold-business` then projects it via LINQ and
|
|
262
|
+
the column reads `item.<name>` directly — no helper, no stub.
|
|
263
|
+
- **ok**: label=`DEV_UI_014_ok`
|
|
264
|
+
- **err**: label=`DEV_UI_014_err`, params=`{ file, helper }`
|
|
265
|
+
- **fixSkill**: `frontend-api-client`, **fixPhaseKey**: `data` (for the
|
|
266
|
+
scaffolders to re-emit the corrected DTO)
|
|
267
|
+
- **solution** (mandatory on err): "Don't paper over the gap with a stub.
|
|
268
|
+
Either (a) declare the missing field as a computed attribute (`formula`)
|
|
269
|
+
on the BA data model so scaffold-business projects it via LINQ, or
|
|
270
|
+
(b) extend the list DTO to include the value computed by the backend
|
|
271
|
+
service. The List column should read `item.<name>` directly."
|
|
272
|
+
|
|
273
|
+
### DEV-UI-015 — API client signatures match controller routes
|
|
274
|
+
- **Severity**: err (if any mismatch), ok otherwise
|
|
275
|
+
- **Requires**: `--backend-path` flag pointing to the .NET project root.
|
|
276
|
+
Skipped (`ok` with `note`) when not supplied — equivalent to the
|
|
277
|
+
best-effort behaviour of system-prompt mode.
|
|
278
|
+
- **Check**: parse every `*Controller.cs` to extract endpoints (verb +
|
|
279
|
+
full route from `[Route("api/…")]` + method-level `[HttpGet/Post/Put/Delete]`,
|
|
280
|
+
plus `[FromBody]` / mutation-parameter detection). Parse every
|
|
281
|
+
`services/*Service.ts` (and `src/services/**/*.ts`) for axios calls
|
|
282
|
+
(`apiClient.get('/...')`, `axios.post('/...', body)`). Match TS calls
|
|
283
|
+
against controller endpoints by **(verb, normalised URL)**. URLs are
|
|
284
|
+
normalised : lower-case, leading `/api/` stripped, template-literal
|
|
285
|
+
`${id}` → `{id}` (matches the ASP.NET route token).
|
|
286
|
+
- **Detected drifts** :
|
|
287
|
+
- No matching endpoint → `no controller route matches '{verb} /{url}'`
|
|
288
|
+
(typo or missing endpoint).
|
|
289
|
+
- Same URL but different verb → `wrong HTTP verb — service uses 'X' but
|
|
290
|
+
controller exposes 'Y'`.
|
|
291
|
+
- Body presence mismatch → `controller expects a body ([FromBody]) but
|
|
292
|
+
service does not send one` (or the reverse).
|
|
293
|
+
- This rule catches the original Budget Dashboard 400 pattern : a service
|
|
294
|
+
call hitting an endpoint that doesn't exist, or sending the wrong shape.
|
|
295
|
+
Mismatches at this layer surface as runtime 400/404 errors with no
|
|
296
|
+
console diagnostic — exactly the kind of bug `npm run build` cannot detect.
|
|
297
|
+
- **ok**: label=`DEV_UI_015_ok`, params=`{ count }`
|
|
298
|
+
- **err**: label=`DEV_UI_015_err`, params=`{ file, verb, url, reason }`
|
|
299
|
+
- **fixSkill**: `frontend-api-client`, **fixPhaseKey**: `api`, audit-only
|
|
300
|
+
(the fix is a re-scaffold with the corrected spec — apply.ts does NOT
|
|
301
|
+
rerun scaffold-api-client because the spec must come from a fresh PRD
|
|
302
|
+
slice read).
|
|
303
|
+
- **solution** (mandatory on err): "Re-run scaffold-api-client with the
|
|
304
|
+
corrected spec, or fix the controller route attribute. Mismatches here
|
|
305
|
+
produce silent runtime 400/404 — `npm run build` won't catch them."
|
|
306
|
+
|
|
307
|
+
### DEV-UI-016 — List pages must use `<DataTable>` from customisation-ui
|
|
308
|
+
- **Severity**: warn (if raw `<table>` found), ok otherwise
|
|
309
|
+
- Check: in List pages only, fail if the source contains `<table` AND does
|
|
310
|
+
not import / render `<DataTable` from `@/components/ui/DataTable`. The
|
|
311
|
+
customisation-ui baseline mandates DataTable for built-in search /
|
|
312
|
+
pagination / sortable columns + theme cohesion.
|
|
313
|
+
- **ok**: label=`DEV_UI_016_ok`
|
|
314
|
+
- **warn**: label=`DEV_UI_016_warn`, params=`{ pages }`
|
|
315
|
+
- **fixSkill**: `frontend-component`, **fixPhaseKey**: `frontend`, autoFixable
|
|
316
|
+
- **solution** (mandatory on warn): "Re-run scaffold-component with
|
|
317
|
+
`--overwrite` for each listed page — the canonical template emits
|
|
318
|
+
`<DataTable>` with searchable + paginated columns wired via the
|
|
319
|
+
`DataTableColumn<T>[]` contract."
|
|
320
|
+
|
|
321
|
+
### DEV-UI-017 — Generated CSS utility classes are declared in `index.css`
|
|
322
|
+
- **Severity**: warn (if any class is used but not declared), ok otherwise
|
|
323
|
+
- Check: scan every page `className="..."` for tokens in the tracked set
|
|
324
|
+
(`input`, `btn-primary`, `btn-secondary` — the helpers the scaffold
|
|
325
|
+
templates rely on). Each used token must appear as a `.<token> { ... }`
|
|
326
|
+
declaration in `src/index.css`. Without the declaration, the form
|
|
327
|
+
inputs / buttons render unstyled because Tailwind's `@apply` chain
|
|
328
|
+
misses the helper layer.
|
|
329
|
+
- **ok**: label=`DEV_UI_017_ok`
|
|
330
|
+
- **warn**: label=`DEV_UI_017_warn`, params=`{ file, classes }`
|
|
331
|
+
- **fixSkill**: `frontend-theme`, **fixPhaseKey**: `frontend`, autoFixable
|
|
332
|
+
- **solution** (mandatory on warn): "Re-run scaffold-theme to inject the
|
|
333
|
+
missing helper classes into `src/index.css`. The theme scaffolder is
|
|
334
|
+
idempotent and respects the `/* @customised */` marker for hand-edited
|
|
335
|
+
blocks."
|
|
336
|
+
|
|
337
|
+
### DEV-UI-018 — Barrel `index.ts` re-exports resolve to existing files
|
|
338
|
+
- **Severity**: err (if any broken re-export), ok (if all valid)
|
|
339
|
+
- **Scope**: barrels under `src/components/**/index.ts`, `src/pages/**/index.ts`,
|
|
340
|
+
`src/hooks/**/index.ts`, `src/utils/**/index.ts`, `src/services/**/index.ts`,
|
|
341
|
+
`src/features/**/index.ts`. Excludes `src/extensions/componentRegistry.generated.ts`
|
|
342
|
+
(already covered by DEV-UI-003).
|
|
343
|
+
- **Check**: for each barrel, regex-extract every `export { ... } from '<rel>'`
|
|
344
|
+
/ `export * from '<rel>'` with a relative path. Resolve `<rel>` against the
|
|
345
|
+
barrel's directory, trying `.tsx`, `.ts`, `/index.tsx`, `/index.ts`. Fail if
|
|
346
|
+
none exists on disk.
|
|
347
|
+
- **The bug it catches**: `src/components/email/index.ts` exports
|
|
348
|
+
`EmailTemplateEditor3PaneLayout` from a file that was renamed to
|
|
349
|
+
`2PaneLayout.tsx`. Vite returns **404** on the missing file when transforming
|
|
350
|
+
the barrel → barrel can't be served → every dynamic `import()` traversing it
|
|
351
|
+
(e.g. `EmailTemplateEditPage` consuming `@/components/email`) **cascades** into
|
|
352
|
+
`Failed to fetch dynamically imported module` on the *parent* bundle — and
|
|
353
|
+
`lazyWithRetry` cannot rescue a true 404. The user sees a `RouteErrorBoundary`
|
|
354
|
+
screen on a route that has nothing to do with the broken file.
|
|
355
|
+
- **ok**: label=`DEV_UI_018_ok`
|
|
356
|
+
- **err**: label=`DEV_UI_018_err`, params=`{ broken: "<comma-separated barrel→missing-import>" }`
|
|
357
|
+
- **solution** (mandatory on err): "Either restore the missing file or delete
|
|
358
|
+
the dead re-export line. A barrel `index.ts` that references a non-existent
|
|
359
|
+
sibling is a tripwire — it breaks every consumer of the barrel even though
|
|
360
|
+
the consumer never touched the dead export."
|
|
361
|
+
|
|
362
|
+
### DEV-UI-019 — Pagespec `kind:api` action produces service method + hook + button
|
|
363
|
+
- **Severity**: err (any pagespec api-action missing on the frontend), ok (if all wired)
|
|
364
|
+
- Check: load every `<MODULE>/pagespecs/*.md` of the audited module and
|
|
365
|
+
parse the fenced ```json blocks. For each `pagespec.actions[]` entry
|
|
366
|
+
with `kind: "api"` AND `code ∉ STANDARD_CRUD_CODES`:
|
|
367
|
+
1. `<entityLower>Service.ts` MUST declare a member named
|
|
368
|
+
`toCamel(endpoint)` (e.g. `endpoint: "sync-from-proconcept"` →
|
|
369
|
+
`syncFromProconcept`).
|
|
370
|
+
2. `use<Entity>.ts` MUST declare a hook named
|
|
371
|
+
`use<PascalCase(endpoint)><Entity>` (e.g.
|
|
372
|
+
`useSyncFromProconceptTypeAffaire`).
|
|
373
|
+
3. The page matching the action's `scope` (`row` → list/detail page,
|
|
374
|
+
`header` → list page) MUST import that hook AND wire a button whose
|
|
375
|
+
`onClick` calls the resulting mutation.
|
|
376
|
+
- De-duplicate by `(scope, endpoint, httpMethod)` across pagespecs — the
|
|
377
|
+
same action MAY appear on several views and only needs ONE wiring.
|
|
378
|
+
- **ok**: label=`DEV_UI_019_ok`, params=`{ count: <number> }`
|
|
379
|
+
- **err**: label=`DEV_UI_019_err`, params=`{ actions: "<comma-separated entity:code:missingArtifact>" }`
|
|
380
|
+
- **fixSkill**: `frontend-api-client` + `frontend-component`, **fixPhaseKey**: `frontend`
|
|
381
|
+
- **solution** (mandatory on err): "Re-run Phase 3a of `/ba-develop`. The
|
|
382
|
+
orchestrator derives `customActions[]` from `pagespec.actions[]` and
|
|
383
|
+
forwards them to `scaffold-api-client` AND `scaffold-component`. A
|
|
384
|
+
missing artefact means either the regen was skipped or the pagespec
|
|
385
|
+
was edited after the last run — sync the contracts via
|
|
386
|
+
`/audit-dev-actions-alignment` before re-running."
|
|
387
|
+
|
|
388
|
+
### DEV-UI-020 — Pagespec `kind:navigate` actions emit `navigate()`, NOT axios
|
|
389
|
+
- **Severity**: err (any navigate action wired as an api call), ok otherwise
|
|
390
|
+
- Check: for each `pagespec.actions[]` entry with `kind: "navigate"` of
|
|
391
|
+
entity `<E>`, the page MUST contain a button whose handler calls
|
|
392
|
+
`navigate(<targetRoute>)` AND MUST NOT import a hook
|
|
393
|
+
`use<PascalCase(endpoint)><E>` named after this action's code. The bug
|
|
394
|
+
this catches is the legacy pattern `POST /{id}/open` → 405 — a legacy
|
|
395
|
+
generator that ignored `kind` and emitted an axios call for what should
|
|
396
|
+
have been a router transition.
|
|
397
|
+
- **ok**: label=`DEV_UI_020_ok`
|
|
398
|
+
- **err**: label=`DEV_UI_020_err`, params=`{ actions: "<comma-separated entity:code pairs wired as api>" }`
|
|
399
|
+
- **fixSkill**: `frontend-component`, **fixPhaseKey**: `frontend`, autoFixable
|
|
400
|
+
- **solution** (mandatory on err): "The component template wired a
|
|
401
|
+
navigate-kind action as an api call. Re-run `scaffold-component` after
|
|
402
|
+
upgrading to a template that branches on `kind` (it now imports NO hook
|
|
403
|
+
for navigate actions, just `useNavigate()`)."
|
|
404
|
+
|
|
405
|
+
### DEV-UI-021 — Hardcoded `apiClient.<verb>(...)` URLs match a pagespec endpoint
|
|
406
|
+
- **Severity**: err (any axios URL outside the contract), ok otherwise
|
|
407
|
+
- Check: same parser as DEV-UI-015 (axios call detector) BUT cross-references
|
|
408
|
+
the discovered URLs against the union of `pagespec.actions[].endpoint`
|
|
409
|
+
values (per entity). Any URL hitting `/api/<module>/<plural>/<non-crud-segment>`
|
|
410
|
+
that is NOT in this union AND NOT one of the canonical CRUD shapes
|
|
411
|
+
(`/api/<module>/<plural>` GET/POST, `/api/<module>/<plural>/:id`
|
|
412
|
+
GET/PUT/DELETE) is a hardcoded URL bypassing the per-page contract.
|
|
413
|
+
Catches the legacy pattern: service.ts calls `/sync-from-pce` while the
|
|
414
|
+
pagespec declares `endpoint: "sync-from-proconcept"` → instant 405.
|
|
415
|
+
- **ok**: label=`DEV_UI_021_ok`
|
|
416
|
+
- **err**: label=`DEV_UI_021_err`, params=`{ calls: "<comma-separated file:line:URL>" }`
|
|
417
|
+
- **fixSkill**: `frontend-api-client`, **fixPhaseKey**: `frontend`
|
|
418
|
+
- **solution** (mandatory on err): "Either declare the missing custom
|
|
419
|
+
action in the pagespec (then re-run Phase 3a) or fix the URL to match
|
|
420
|
+
the pagespec endpoint. Hardcoded URLs outside the contract drift the
|
|
421
|
+
moment the BA reshapes the screen — service.ts must always be the
|
|
422
|
+
reflection of the pagespec, never a parallel source of truth. See
|
|
423
|
+
`/audit-dev-actions-alignment` for the alignment report."
|
|
424
|
+
|
|
425
|
+
### DEV-UI-022 — FK fields render as `<EntityLookup>`, never as `<input>` / `<select>`
|
|
426
|
+
- **Severity**: err (any FK rendered as a text input or static dropdown), ok (all FK fields use the combobox)
|
|
427
|
+
- Scope: Form / Create / Edit pages only — List pages can show FK columns as text (they're not editable).
|
|
428
|
+
- Check: scan each form page for `<input ... (name|id)="xxxId">` and
|
|
429
|
+
`<select ... value={...xxxId}>`. The convention `xxxId` mirrors the BA
|
|
430
|
+
`entité.md` Rel: line FK naming (`Employee *→1 Department (FK DepartmentId)`
|
|
431
|
+
→ camelCase `departmentId` in the React state). Hidden inputs
|
|
432
|
+
(`type="hidden"`) and a small whitelist (`externalId`, `parentId`,
|
|
433
|
+
`guidId` — identifiers that happen to end in "Id" but are not FKs) are
|
|
434
|
+
excluded.
|
|
435
|
+
- Symmetric to backend DEV-DAT-008 (same-module FKs are real constraints,
|
|
436
|
+
not bare `Guid`). On the frontend, the symmetric guarantee is that the
|
|
437
|
+
user interacts with the canonical combobox over
|
|
438
|
+
`/api/{module}/{plural}/lookup` — not a free-text Guid input that breaks
|
|
439
|
+
on first paste.
|
|
440
|
+
- **ok**: label=`DEV_UI_022_ok`
|
|
441
|
+
- **err**: label=`DEV_UI_022_err`, params=`{ file, field, entity }`
|
|
442
|
+
- **fixSkill**: `frontend-component`, **fixPhaseKey**: `frontend`, autoFixable: false (orchestrator must enrich the field with `fkTo` from `entité.md` Rel: lines before re-scaffolding — see ba-develop Phase 3a)
|
|
443
|
+
- **solution** (mandatory on err): "Re-run scaffold-component for this page so the orchestrator (ba-develop Phase 3a) enriches the field with `fkTo: { entity, module }` from entité.md Rel: lines. The generator then emits `<EntityLookup apiEndpoint=\"/api/{module}/{plural}/lookup\" />` (scaffolded into `src/components/ui/EntityLookup.tsx` by `scaffold-ui-primitives` at Phase 3.0). If the FK has no declared relation in entité.md, add a `Relations:` line to the entity definition first."
|
|
444
|
+
|
|
445
|
+
## CLI mode
|
|
446
|
+
|
|
447
|
+
A deterministic CLI sibling lives at `cli/audit-dev-frontend/index.ts`.
|
|
448
|
+
Invoke it via Bash to run all 22 rules without LLM variance, including
|
|
449
|
+
auto-apply fixes for autoFixable rules:
|
|
450
|
+
|
|
451
|
+
```
|
|
452
|
+
npx tsx skills/development/audit-dev-frontend/cli/audit-dev-frontend/index.ts \
|
|
453
|
+
--project-path "<web-root>" --mode apply \
|
|
454
|
+
--module-code "<modCode>" --app-code "<appCode>" \
|
|
455
|
+
--prd-slice "<slice.json>" \
|
|
456
|
+
--backend-path "<dotnet-root>" \
|
|
457
|
+
--core-navigation-seed-path "<path/to/CoreNavigationSeedDataProvider.cs>"
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
The CLI emits the same `auditReport` envelope as the system-prompt skill
|
|
461
|
+
plus a `report.findings[]` field for the orchestrator to consume. Both
|
|
462
|
+
audit modes are equivalent for rules 001-008. Rules 009-022 require the
|
|
463
|
+
PRD slice (and backend path / nav seed for 011-012) — the system-prompt
|
|
464
|
+
mode does best-effort and can emit `ok` with a `note: "skipping — context unavailable"`.
|
|
465
|
+
|
|
466
|
+
### CLI mode — actions-alignment audit (legacy / drift detection)
|
|
467
|
+
|
|
468
|
+
When debugging an unexpected 4xx/405 on a custom action button (e.g. a project's
|
|
469
|
+
synchronization action → 405), or when onboarding a legacy project that
|
|
470
|
+
pre-dates the per-page contract, run the dedicated alignment CLI:
|
|
471
|
+
|
|
472
|
+
```
|
|
473
|
+
npx tsx skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/index.ts \
|
|
474
|
+
--project-path "<web-root>" \
|
|
475
|
+
--backend-path "<dotnet-root>" \
|
|
476
|
+
--module-path "<absolute path to .smartstack/ba/<APP>/<MODULE>>" \
|
|
477
|
+
--mode report-only
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
The CLI cross-references the three sources of truth for every custom action:
|
|
481
|
+
|
|
482
|
+
1. **`pagespecs/*.md`** (BA contract — the `endpoint` field is the URL segment)
|
|
483
|
+
2. **`*Controller.cs`** (backend reality — the `[HttpVerb("…")]` attribute)
|
|
484
|
+
3. **`*Service.ts`** (frontend reality — the `apiClient.<verb>('/…')` call)
|
|
485
|
+
|
|
486
|
+
Findings are typed `ACTION-DRIFT-001..005`:
|
|
487
|
+
|
|
488
|
+
| Code | Severity | Meaning |
|
|
489
|
+
|---|---|---|
|
|
490
|
+
| ACTION-DRIFT-001 | err | Pagespec endpoint ≠ controller route (same scope, similar suffix) |
|
|
491
|
+
| ACTION-DRIFT-002 | err | Pagespec endpoint ≠ service URL (the canonical 405 pattern) |
|
|
492
|
+
| ACTION-DRIFT-003 | warn | Service calls a URL with no pagespec OR controller backing (dead call) |
|
|
493
|
+
| ACTION-DRIFT-004 | warn | Controller exposes a route nobody references (dead endpoint) |
|
|
494
|
+
| ACTION-DRIFT-005 | err | Service verb ≠ controller verb on the same URL (e.g. GET vs POST on same endpoint) |
|
|
495
|
+
|
|
496
|
+
The report is written to `<projectPath>/_audit/actions-alignment.md` and
|
|
497
|
+
emitted on stdout as a JSON envelope. The `--mode apply` variant ships as a
|
|
498
|
+
stub (iteration 1 is report-only) — once the per-side rewriter lands, it will
|
|
499
|
+
accept `--source-of-truth pagespec|controller` to pick which side wins.
|
|
500
|
+
|
|
501
|
+
## Output
|
|
502
|
+
|
|
503
|
+
Emit EXACTLY ONE JSON code block matching the standard `auditReport`
|
|
504
|
+
envelope (same shape as `audit-screens`). Set `dimension` to `devFrontend`
|
|
505
|
+
on every finding. Include one `ok` finding per passing rule (so the UI
|
|
506
|
+
shows green checks) and one finding per failing rule.
|
|
507
|
+
|
|
508
|
+
```json
|
|
509
|
+
{
|
|
510
|
+
"auditReport": {
|
|
511
|
+
"scope": "devFrontend",
|
|
512
|
+
"applicationCode": "<from PRD>",
|
|
513
|
+
"moduleCode": "<from PRD>",
|
|
514
|
+
"findings": [
|
|
515
|
+
{
|
|
516
|
+
"dimension": "devFrontend",
|
|
517
|
+
"code": "DEV-UI-001",
|
|
518
|
+
"severity": "err",
|
|
519
|
+
"label": "DEV_UI_001_err",
|
|
520
|
+
"params": { "missing": "Contract/list,Contract/detail" },
|
|
521
|
+
"solution": "Re-run the Frontend phase. The subagent must call scaffold-component for each missing page.",
|
|
522
|
+
"fixSkill": "frontend-component",
|
|
523
|
+
"fixPhaseKey": "frontend"
|
|
524
|
+
}
|
|
525
|
+
]
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
Stop immediately after the JSON block. Do not narrate.
|