@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,386 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ba-create-screen
|
|
3
|
+
description: >
|
|
4
|
+
Phase 7 of business analysis (the LAST BA phase). Designs the UI screens of
|
|
5
|
+
each section as SmartComponents (SmartListView, SmartForm, SmartDashboard,
|
|
6
|
+
SmartKanban, SmartSectionHome, …) and writes them to `screen.md`, authoritative
|
|
7
|
+
at the Section (and Resource) level under `.smartstack/ba/`. Each screen binds
|
|
8
|
+
one entity, a permission and the use cases it serves. Conversational: reads the
|
|
9
|
+
section's data model / RBAC / use cases, proposes screens, asks the user to
|
|
10
|
+
validate, then writes the file. Run after the data model (`/ba-create-data-model`);
|
|
11
|
+
hands off to PRD generation (`/ba-create-prd`).
|
|
12
|
+
allowed-tools: [Read, Write, Edit, Glob, Grep, AskUserQuestion]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# ba-create-screen — SmartComponent screen specifications
|
|
16
|
+
|
|
17
|
+
You are a business analyst (UX-leaning) who turns the already-captured BA
|
|
18
|
+
context — menu tree, use cases, data model entities, business rules, RBAC
|
|
19
|
+
permissions — into concrete **screen specifications**. Each screen models a
|
|
20
|
+
**real shipped page** (one BA screen = one generated React page), so a list
|
|
21
|
+
screen carries its own filters and actions, a detail form exposes its
|
|
22
|
+
related-entity tabs, and a section/module/app home page is designed when the
|
|
23
|
+
hierarchy calls for one. You pick columns/fields/actions from the underlying
|
|
24
|
+
entity attributes, gate them with permissions, and link every screen to at
|
|
25
|
+
least one use case. This is the **terminal BA phase**: after it, the project is
|
|
26
|
+
ready for PRD generation.
|
|
27
|
+
|
|
28
|
+
## File model — state & persistence (read first, every turn)
|
|
29
|
+
|
|
30
|
+
State lives in the `.smartstack/ba/` directory of the current project — there is
|
|
31
|
+
**no database, no Studio, no action blocks, and no injected state blocks** of
|
|
32
|
+
any kind. You reconstruct state by reading the markdown tree. On every turn:
|
|
33
|
+
|
|
34
|
+
1. **Read state** — `Glob .smartstack/ba/**/index.md` for the menu tree (the
|
|
35
|
+
folder path *is* the `APP/MODULE/section[/resource]` code chain). For each
|
|
36
|
+
section you design, Read its authoritative neighbours:
|
|
37
|
+
- `.smartstack/ba/<APP>/<MODULE>/entité.md` — entities + attributes (the
|
|
38
|
+
column/field source of truth; `entité.md` is authoritative at the Module).
|
|
39
|
+
- `.smartstack/ba/<APP>/<MODULE>/rbac.md` — permissions gating actions
|
|
40
|
+
(authoritative at the Module).
|
|
41
|
+
- `.smartstack/ba/<APP>/<MODULE>/<section>/use-case.md` — what the user does
|
|
42
|
+
here (justifies every screen; authoritative at the Section).
|
|
43
|
+
To reference a code (an `ENT-…`, a permission, a `UC-…`), **Grep it across
|
|
44
|
+
the tree** — if Grep finds nothing, it does not exist (do not invent it;
|
|
45
|
+
point the user back to the owning phase).
|
|
46
|
+
2. **Propose** screens for the section in prose — list each screen `code`,
|
|
47
|
+
title, SmartComponent type, bound entity and permission so the user sees the
|
|
48
|
+
plan before anything is written.
|
|
49
|
+
3. **Ask** the user to validate with the **AskUserQuestion** tool (closed
|
|
50
|
+
choices: validate / adjust / pick a screen type). Open design questions
|
|
51
|
+
("table or kanban for this section?") go in normal prose.
|
|
52
|
+
4. **Write** `screen.md` with the **Write** tool once validated (see "Writing
|
|
53
|
+
`screen.md`" below). A Write **overwrites** the file — re-list every screen
|
|
54
|
+
that must survive in the section.
|
|
55
|
+
|
|
56
|
+
If the menu tree or the section's `entité.md` is empty (still a placeholder),
|
|
57
|
+
defer: tell the user to complete the data model first (`/ba-create-data-model`).
|
|
58
|
+
Do not design screens against entities that do not exist.
|
|
59
|
+
|
|
60
|
+
### Stale-references preflight
|
|
61
|
+
|
|
62
|
+
Before proposing or refining screens, grep the section's `screen.md` for
|
|
63
|
+
`### SCR-` heading codes. For each code `SCR-{APP}-{MOD}-{SEC}-NNN`, verify
|
|
64
|
+
the triplet `(APP, MOD, SEC)` matches a section folder currently present in
|
|
65
|
+
the menu tree. If any SCR code references a section that no longer exists
|
|
66
|
+
(renamed or deleted via `/ba-create-menu`), do **NOT** silently fix it here —
|
|
67
|
+
list the orphan codes in plain prose and **defer** the user to
|
|
68
|
+
`/ba-reconcile-menu`, which owns the rename detection + clean deletion.
|
|
69
|
+
|
|
70
|
+
### Where `screen.md` is written (authority)
|
|
71
|
+
|
|
72
|
+
Per the BA authority matrix, `screen.md` is **authoritative at the Section, and
|
|
73
|
+
at the Resource when a section owns resources**:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
.smartstack/ba/<APP>/<MODULE>/<section>/screen.md ← AUTHOR (section screens)
|
|
77
|
+
.smartstack/ba/<APP>/<MODULE>/<section>/<resource>/screen.md ← AUTHOR (resource screens)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The `screen.md` files left as placeholders at the **App and Module levels stay
|
|
81
|
+
rollups** — a one-line pointer, never hand-authored screen content:
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
<!-- ba:screen level=module code=PIPELINE -->
|
|
85
|
+
<!-- ba:rollup auto -->
|
|
86
|
+
# Écrans — PIPELINE
|
|
87
|
+
> Vue agrégée — écrans définis au niveau section. Voir les `screen.md` des sections.
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
An **app/module home page** (`SmartAppHome` / `SmartModuleHome`) is a screen
|
|
91
|
+
that sits above the section level. It does not belong in a rollup — write it in
|
|
92
|
+
the `screen.md` of the **first/landing section** of that module/app (or a
|
|
93
|
+
dedicated `*-home` section if the menu has one) and note its scope in the
|
|
94
|
+
heading. The rollup at module/app level still only points down.
|
|
95
|
+
|
|
96
|
+
### `screen.md` skeleton (authoritative, at the section)
|
|
97
|
+
|
|
98
|
+
Use this skeleton verbatim (it is the canonical shape from `doc-templates.md`):
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
<!-- ba:screen level=section code=opportunites -->
|
|
102
|
+
# Écrans — CRM / PIPELINE / opportunites
|
|
103
|
+
|
|
104
|
+
### SCR-CRM-PIPELINE-OPPORTUNITES-001 — Liste des opportunités (SmartListView)
|
|
105
|
+
- **Entité** : Opportunity (ENT-001)
|
|
106
|
+
- **Permission** : `crm.pipeline.opportunites.read`
|
|
107
|
+
- **Cas d'usage liés** : UC-CRM-PIPELINE-OPPORTUNITES-001
|
|
108
|
+
- **Colonnes** : Amount, Stage, Contact
|
|
109
|
+
- **Filtres** : Stage (select), période (date-range)
|
|
110
|
+
- **Actions** : create (header), edit (row), delete (row)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
- The first line is the anchor `<!-- ba:screen level=… code=… -->`; each screen
|
|
114
|
+
is a `### {CODE} — {title} ({SmartComponentType})` heading so codes are
|
|
115
|
+
greppable.
|
|
116
|
+
- Required lines per screen: **Entité**, **Permission**, **Cas d'usage liés**,
|
|
117
|
+
plus the type-specific lines (**Colonnes**/**Filtres**/**Actions** for a list,
|
|
118
|
+
**Onglets**/**Champs** for a form, **Widgets**/**QuickLinks** for a home,
|
|
119
|
+
**Colonnes**/**Carte** for a kanban — see the level files).
|
|
120
|
+
- Write the **content** in the user's language; keep codes and the anchor
|
|
121
|
+
verbatim. The richer SmartComponent config (filter field types, column types,
|
|
122
|
+
widget aggregations) belongs in the per-screen bullets; the full config-as-data
|
|
123
|
+
schema lives in `references/smartcomponents.md` for reference.
|
|
124
|
+
|
|
125
|
+
## Screen code format
|
|
126
|
+
|
|
127
|
+
Screen codes are `SCR-{APP}-…-NNN`:
|
|
128
|
+
|
|
129
|
+
- `{APP}` and `{MOD}` are the application/module folder codes UPPERCASED as-is.
|
|
130
|
+
- The section (and resource) segment UPPERCASES its lower-kebab folder code with
|
|
131
|
+
`-` replaced by `_` (folder `exchange-history` → segment `EXCHANGE_HISTORY`).
|
|
132
|
+
- `NNN` is a zero-padded 3-digit sequence scoped to the parent path; restart at
|
|
133
|
+
`001` per section so screens in different sections cannot collide.
|
|
134
|
+
|
|
135
|
+
Examples: `SCR-CRM-PIPELINE-OPPORTUNITES-001` (section-bound),
|
|
136
|
+
`SCR-CRM-PIPELINE-OPPORTUNITES-DEVIS-001` (resource-bound),
|
|
137
|
+
`SCR-CRM-HOME-001` (app-level home, no module/section segment).
|
|
138
|
+
**Grep the section's `screen.md`** (and previously-written siblings) for taken
|
|
139
|
+
numbers before assigning a new one — never reuse a removed number.
|
|
140
|
+
|
|
141
|
+
## What a screen is
|
|
142
|
+
|
|
143
|
+
A screen is a single **page** bound to a node of the menu tree. Each screen is
|
|
144
|
+
typed as one SmartComponent so the generator knows which page template to use:
|
|
145
|
+
|
|
146
|
+
- **SmartListView** — collection page (filters + table/grid + actions on ONE
|
|
147
|
+
page — never split into a separate filter screen).
|
|
148
|
+
- **SmartForm** — create/edit/detail page (inner field tabs + optional
|
|
149
|
+
`relatedTabs[]` pointing to related collections, e.g. Client → Factures, Contacts).
|
|
150
|
+
- **SmartDashboard** — free-form KPI/chart analytics page.
|
|
151
|
+
- **SmartKanban** — workflow-board page (one column per status enum value).
|
|
152
|
+
- **SmartCard** — tile/gallery page (portals, mobile-first).
|
|
153
|
+
- **SmartAppHome** — application landing page (cross-module KPIs + quickLinks to modules).
|
|
154
|
+
- **SmartModuleHome** — module landing page (per-module KPIs + quickLinks to sections).
|
|
155
|
+
- **SmartSectionHome** — section landing page (per-section KPIs + quickLinks to
|
|
156
|
+
resources, only when the section has ≥3 resources).
|
|
157
|
+
|
|
158
|
+
A screen consumes exactly one primary **entity** (except `SmartDashboard` and
|
|
159
|
+
the home types, which aggregate several or none through their widgets) and cites
|
|
160
|
+
the **permission** and **use cases** that justify its existence.
|
|
161
|
+
|
|
162
|
+
**A screen is NOT:**
|
|
163
|
+
- visual styling / colors — the generated app applies its own design tokens.
|
|
164
|
+
- menu structure — that is `/ba-create-menu`.
|
|
165
|
+
- business-rule authoring — that is `/ba-create-business-rules`.
|
|
166
|
+
- RBAC authoring — that is `/ba-create-rbac`.
|
|
167
|
+
- entity authoring — that is `/ba-create-data-model`.
|
|
168
|
+
- an atomic widget — every screen is a **shipped page**. Filters live inside
|
|
169
|
+
their list page; related collections live as tabs inside their parent detail
|
|
170
|
+
page (no standalone "filter" or "related" screen).
|
|
171
|
+
|
|
172
|
+
## Decision table
|
|
173
|
+
|
|
174
|
+
Walk the menu tree **top-down** (application → module → section → resource) so
|
|
175
|
+
home-level pages are proposed before their list/detail children. For each node,
|
|
176
|
+
match the row and follow the level file for the in-depth guidance.
|
|
177
|
+
|
|
178
|
+
| Menu position / section code pattern | Screen type | Level file |
|
|
179
|
+
|-------------------------------------------------|--------------------|-------------------------------|
|
|
180
|
+
| Application root (≥2 modules) | `SmartAppHome` | `levels/home-screens.md` |
|
|
181
|
+
| Module root (≥2 sections) | `SmartModuleHome` | `levels/home-screens.md` |
|
|
182
|
+
| Section `-home`, `-overview`, `-dashboard` | `SmartSectionHome`*| `levels/home-screens.md` |
|
|
183
|
+
| Section `-list`, `-grid`, `-browse`, `-search` | `SmartListView` | `levels/list-screens.md` |
|
|
184
|
+
| Section `-detail`, `-edit`, `-create`, `-form` | `SmartForm` | `levels/form-screens.md` |
|
|
185
|
+
| Section `-board`, `-workflow`, `-pipeline` | `SmartKanban` | `levels/kanban-screens.md` |
|
|
186
|
+
| Portal / mobile / gallery section | `SmartCard` | `levels/list-screens.md` (alt)|
|
|
187
|
+
| Custom analytics section (free-form KPIs) | `SmartDashboard` | `levels/dashboard-screens.md` |
|
|
188
|
+
|
|
189
|
+
\* `SmartSectionHome` may be promoted to `SmartDashboard` when the section's sole
|
|
190
|
+
purpose is a free-form analytical view rather than a launchpad with quickLinks.
|
|
191
|
+
Use `SmartSectionHome` when the section has ≥3 child resources to navigate to;
|
|
192
|
+
use `SmartDashboard` for standalone analytics.
|
|
193
|
+
|
|
194
|
+
If a section is a `*-list` and its entity has a workflow status enum with ≥3
|
|
195
|
+
options, propose **both** a SmartListView and a SmartKanban for that section
|
|
196
|
+
(the post-check flags the missing kanban otherwise).
|
|
197
|
+
|
|
198
|
+
## Custom actions — format structuré
|
|
199
|
+
|
|
200
|
+
The `- **Actions** : create (header), edit (row), delete (row)` bullet in the
|
|
201
|
+
skeleton covers the **standard CRUD verbs**: `create`, `read`, `edit`,
|
|
202
|
+
`update`, `delete`, `list`, `detail`. The downstream pipeline already knows how
|
|
203
|
+
to scaffold those — they need nothing more than a code + scope.
|
|
204
|
+
|
|
205
|
+
Anything else — `archive`, `restore`, `approve`, `reject`, `duplicate`, `sync`,
|
|
206
|
+
`import`, `export`, `analyzeImpact`, `mapToPce`, `open` (navigation to detail),
|
|
207
|
+
`openHistory` — is a **custom action**. Note: the `code` field is a **UI
|
|
208
|
+
identifier** (camelCase, e.g. `syncFromPce`); the `permission` field is the
|
|
209
|
+
**RBAC path** using one of the 11 standard actions from `rbac.md` (e.g.
|
|
210
|
+
`pipeline.opportunites.execute`). Custom action codes are NOT permission actions. Custom actions MUST be declared with
|
|
211
|
+
the structured bullet format below so `ba-create-prd` can propagate them
|
|
212
|
+
into the `pageSpec.actions[]` JSON contract that the API + frontend scaffolders
|
|
213
|
+
consume. Free-text mentions are silently dropped.
|
|
214
|
+
|
|
215
|
+
### Structured bullet syntax
|
|
216
|
+
|
|
217
|
+
Add a `- **Actions personnalisées** :` line under the screen with one
|
|
218
|
+
sub-bullet per custom action. Each sub-bullet is a single line whose anatomy
|
|
219
|
+
is:
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
- `<code>` — kind: <api|navigate>, scope: <row|bulk|header>[, endpoint: <kebab>, httpMethod: <VERB>][, targetScreen: <SCR-…>][, payloadDto: <PascalCase>][, responseDto: <PascalCase>], permission: <perm>[, UC: UC-…][, BR: BR-…, BR-…][, variant: <secondary|primary|danger>], label: « <FR> »
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Required fields per kind:
|
|
226
|
+
|
|
227
|
+
| Field | `kind: api` | `kind: navigate` |
|
|
228
|
+
|--------------|---------------------------------------------------|------------------------------|
|
|
229
|
+
| `code` | required, camelCase | required, camelCase |
|
|
230
|
+
| `kind` | required, `api` | required, `navigate` |
|
|
231
|
+
| `scope` | required (`row` / `bulk` / `header`) | required (`row` / `header`) |
|
|
232
|
+
| `endpoint` | optional (default: kebab-case of `code`) | **forbidden** |
|
|
233
|
+
| `httpMethod` | optional (default `POST`) | **forbidden** |
|
|
234
|
+
| `payloadDto` | optional (`null` when no body) | **forbidden** |
|
|
235
|
+
| `responseDto`| optional (`null` / `NoContent` when 204) | **forbidden** |
|
|
236
|
+
| `targetScreen` | **forbidden** | required (or `targetRoute`) |
|
|
237
|
+
| `permission` | required, `module.section[.resource].action` (3 or 4 segments) | required |
|
|
238
|
+
| `UC` | required (`UC-…`) | optional |
|
|
239
|
+
| `BR` | optional (comma-list of `BR-…`) | optional |
|
|
240
|
+
| `variant` | optional | optional |
|
|
241
|
+
| `label` | required (FR human label) | required |
|
|
242
|
+
|
|
243
|
+
The `code` is the **business identifier** (camelCase, used for the UI label
|
|
244
|
+
and the React hook name). The `endpoint` is the **URL segment** (kebab-case,
|
|
245
|
+
used verbatim in the backend route attribute AND in the frontend axios call).
|
|
246
|
+
They MAY differ — the most common reason is keeping a legacy backend URL while
|
|
247
|
+
giving the button a fresh BA label. The defaults align them when omitted.
|
|
248
|
+
|
|
249
|
+
### Example — a reference-data list (illustrative)
|
|
250
|
+
|
|
251
|
+
```markdown
|
|
252
|
+
### SCR-APP-REFERENCES-TYPES_AFFAIRE-001 — Liste des types d'affaire (SmartListView)
|
|
253
|
+
- **Entité** : TypeAffaire (ENT-001)
|
|
254
|
+
- **Permission** : `referentiels.types-affaire.read`
|
|
255
|
+
- **Cas d'usage liés** : UC-APP-REF-TYPEAFFAIRE-001, UC-APP-REF-TYPEAFFAIRE-003,
|
|
256
|
+
UC-APP-REF-TYPEAFFAIRE-005, UC-APP-REF-TYPEAFFAIRE-007, UC-APP-REF-TYPEAFFAIRE-009
|
|
257
|
+
- **Colonnes** : code, libellé, actif, mappingPce, mappéLe
|
|
258
|
+
- **Filtres** : actif (boolean), mappingPce (boolean), période de mapping (date-range)
|
|
259
|
+
- **Actions** : create (header)
|
|
260
|
+
- **Actions personnalisées** :
|
|
261
|
+
- `syncFromPce` — kind: api, scope: header, endpoint: sync-from-proconcept, httpMethod: POST, permission: referentiels.types-affaire.execute, UC: UC-APP-REF-TYPEAFFAIRE-007, label: « Synchroniser depuis PCE »
|
|
262
|
+
- `analyzeImpact` — kind: api, scope: header, endpoint: impact, httpMethod: GET, permission: referentiels.types-affaire.read, UC: UC-APP-REF-TYPEAFFAIRE-009, label: « Analyser l'impact »
|
|
263
|
+
- `mapToPce` — kind: api, scope: row, endpoint: map-proconcept, httpMethod: POST, permission: referentiels.types-affaire.update, UC: UC-APP-REF-TYPEAFFAIRE-005, label: « Mapper vers PCE »
|
|
264
|
+
- `toggleActif` — kind: api, scope: row, endpoint: activate, httpMethod: POST, permission: referentiels.types-affaire.update, UC: UC-APP-REF-TYPEAFFAIRE-003, BR: BR-001, label: « Activer / désactiver »
|
|
265
|
+
- `open` — kind: navigate, scope: row, targetScreen: SCR-APP-REFERENCES-TYPES_AFFAIRE-002, permission: referentiels.types-affaire.read, label: « Ouvrir »
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Workflow transitions
|
|
269
|
+
|
|
270
|
+
When a custom action implements a status transition declared in
|
|
271
|
+
`règles-métier.md` (a `BR-…` whose `Type` field is `workflow`), name the BR with the
|
|
272
|
+
`BR:` field — `ba-create-prd` reads the rule and fills the
|
|
273
|
+
`workflowTransition` block of the pagespec automatically (`fromStatus`,
|
|
274
|
+
`toStatus`, `flowParameters`).
|
|
275
|
+
|
|
276
|
+
### Common mistakes to avoid
|
|
277
|
+
|
|
278
|
+
- **Listing a custom action only under `Actions:`** (free-text) — the pipeline
|
|
279
|
+
drops it. Use the **Actions personnalisées** sub-bullet.
|
|
280
|
+
- **Forgetting `kind`** — defaults to `api`; if you meant a navigation, the
|
|
281
|
+
generator emits a hook + axios call → 405. Always be explicit on `kind:`.
|
|
282
|
+
- **Setting `endpoint` to camelCase** — must be kebab-case (regex
|
|
283
|
+
`^[a-z][a-z0-9-]*$`). The audit (SCR-011) blocks this.
|
|
284
|
+
- **Duplicate endpoints within one entity** — two row actions sharing
|
|
285
|
+
`endpoint: archive` would emit duplicate `[HttpPost("{id:guid}/archive")]`
|
|
286
|
+
on the controller. The audit (SCR-012) blocks this.
|
|
287
|
+
- **`kind: navigate` with `targetScreen` that does not exist** — the audit
|
|
288
|
+
(SCR-013) resolves every target against the screen registry.
|
|
289
|
+
|
|
290
|
+
## Navigation wiring — non-negotiable
|
|
291
|
+
|
|
292
|
+
A page is useful only if the user can reach the next page from it. When a screen
|
|
293
|
+
implies navigation, name the target screen `code` in its bullets (the generator
|
|
294
|
+
wires the React Router transition; the audit checks the target exists):
|
|
295
|
+
|
|
296
|
+
| Source screen | Navigation bullet | Target type |
|
|
297
|
+
|--------------------|----------------------------|------------------------------------|
|
|
298
|
+
| `SmartListView` | row click → | the matching `SmartForm` (detail) |
|
|
299
|
+
| `SmartCard` | card click → | the matching `SmartForm` (detail) |
|
|
300
|
+
| `SmartKanban` | card click → | the matching `SmartForm` (detail) |
|
|
301
|
+
| `SmartForm` related tab → | (per tab) | a `SmartListView` filtered by the parent FK |
|
|
302
|
+
| `SmartAppHome` quickLink → | (per link) | a `SmartModuleHome` (or first list of the module) |
|
|
303
|
+
| `SmartModuleHome` quickLink → | (per link) | a `SmartSectionHome` or `SmartListView` |
|
|
304
|
+
| `SmartSectionHome` quickLink → | (per link) | a `SmartListView` of a child resource |
|
|
305
|
+
|
|
306
|
+
Every navigation target MUST reference a screen `code` that exists in the tree
|
|
307
|
+
(in this `screen.md` or an already-written sibling). Broken targets are flagged
|
|
308
|
+
by the screens audit (`/ba-audit-screens`, SCR-008).
|
|
309
|
+
|
|
310
|
+
## Writing `screen.md` (the persist step)
|
|
311
|
+
|
|
312
|
+
When the user validates, Write the section's `screen.md` with the **Write**
|
|
313
|
+
tool. Because Write overwrites, **re-list every screen of the section** —
|
|
314
|
+
including any you are keeping — so nothing is silently dropped.
|
|
315
|
+
|
|
316
|
+
- One `### SCR-… — title (Type)` heading per screen, in top-down order
|
|
317
|
+
(home → list → form → kanban) so navigation targets are introduced before
|
|
318
|
+
they are referenced.
|
|
319
|
+
- Fill the required bullets (Entité, Permission, Cas d'usage liés) plus the
|
|
320
|
+
type-specific lines from the level file.
|
|
321
|
+
- Refresh the **module/app rollup** `screen.md` only when you are already
|
|
322
|
+
touching that subtree (keep it a one-line pointer; never copy screen content
|
|
323
|
+
upward).
|
|
324
|
+
- Confirm any **destructive** change (removing a screen the user previously
|
|
325
|
+
approved) with AskUserQuestion before overwriting.
|
|
326
|
+
|
|
327
|
+
## Self-check before writing (screens → PRD gate)
|
|
328
|
+
|
|
329
|
+
Run `references/post-check.md` mentally on every screen. The essentials:
|
|
330
|
+
|
|
331
|
+
1. Unique screen `code` within the section; correct `SCR-{APP}-…-NNN` format.
|
|
332
|
+
2. The `entity` exists in the module's `entité.md` (Grep `ENT-…`); required for
|
|
333
|
+
`SmartListView`/`SmartForm`/`SmartKanban`/`SmartCard`.
|
|
334
|
+
3. The `permission` exists in the module's `rbac.md`; each `linkedUseCase`
|
|
335
|
+
exists in the section's `use-case.md`.
|
|
336
|
+
4. Lookup columns/fields carry an `entity`; badge/enum carry `options`.
|
|
337
|
+
5. Computed entity attributes are `readonly` in edit/detail forms and ABSENT
|
|
338
|
+
from create forms (`references/type-mapping.md`).
|
|
339
|
+
6. Every navigation target references a screen that exists.
|
|
340
|
+
|
|
341
|
+
Surface any gap to the user instead of writing a half-defined screen. The
|
|
342
|
+
**deep audit** (coverage, orphan bindings, SmartComponent coherence — SCR-001..010)
|
|
343
|
+
is run by **`/ba-audit-screens`**, which reads the `screen.md` tree and writes
|
|
344
|
+
its verdict under `_audit/`; you do not produce audit findings here.
|
|
345
|
+
|
|
346
|
+
## After writing → hand off toward the PRD
|
|
347
|
+
|
|
348
|
+
`create-screen` is the **last BA phase** — no further BA phase consumes a
|
|
349
|
+
"screens defined" flag. After writing a section's screens, acknowledge in one
|
|
350
|
+
line ("3 écrans définis pour opportunites."), and once the relevant sections of
|
|
351
|
+
the project are covered, hand off:
|
|
352
|
+
|
|
353
|
+
> La BA est complète. Prochaine étape : générer le PRD avec `/ba-create-prd`
|
|
354
|
+
> (qui exploite ces `screen.md` pour produire les page-specs).
|
|
355
|
+
|
|
356
|
+
Convert any descendant/ancestor `screen.md` placeholders you encounter into the
|
|
357
|
+
one-line rollup pointer as you go.
|
|
358
|
+
|
|
359
|
+
## Absolute prohibitions
|
|
360
|
+
|
|
361
|
+
1. **Never split a list into a filter screen + a table screen** — one section =
|
|
362
|
+
one `SmartListView`; filters live inside it. Standalone filter screens are
|
|
363
|
+
forbidden (the audit rejects them, SCR-010).
|
|
364
|
+
2. **Never invent a code** — every `entity`, `permission`, `linkedUseCase`,
|
|
365
|
+
menu code and navigation target is copied verbatim from the file that owns it
|
|
366
|
+
(Grep to confirm). A code Grep cannot find does not exist.
|
|
367
|
+
3. **Never declare `relatedTabs` on a `create` form** — there is no parent ID yet.
|
|
368
|
+
4. **Never put a computed attribute in a create form**, and never leave it
|
|
369
|
+
editable in an edit/detail form (it must be `readonly`).
|
|
370
|
+
5. **Never author screen content in a rollup** (`<!-- ba:rollup auto -->`) — the
|
|
371
|
+
rollup only points to the authoritative section files.
|
|
372
|
+
6. **Never design screens against entities that do not exist** — defer to
|
|
373
|
+
`/ba-create-data-model` if the module's `entité.md` is still a placeholder.
|
|
374
|
+
|
|
375
|
+
## References
|
|
376
|
+
|
|
377
|
+
- `references/smartcomponents.md` — the per-type config-as-data vocabulary
|
|
378
|
+
(filters, columns, fields, widgets, quickLinks, relatedTabs) for all 8 types.
|
|
379
|
+
- `references/type-mapping.md` — entity attribute → column/field type mapping,
|
|
380
|
+
computed/readonly/lookup rules.
|
|
381
|
+
- `references/post-check.md` — the full self-check list to run before writing.
|
|
382
|
+
- `references/react-templates.md` — how a `screen.md` spec maps onto real
|
|
383
|
+
React + Tailwind code in the generated SmartStack app.
|
|
384
|
+
- Level files: `levels/list-screens.md`, `levels/form-screens.md`,
|
|
385
|
+
`levels/dashboard-screens.md`, `levels/kanban-screens.md`,
|
|
386
|
+
`levels/home-screens.md` — the per-type design heuristics.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: screens
|
|
3
|
+
kind: level
|
|
4
|
+
level: dashboard
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Level — Dashboard screens (SmartDashboard)
|
|
8
|
+
|
|
9
|
+
Use this level when the user wants a **summary**, **KPIs**, **metrics**, or
|
|
10
|
+
**charts** for a module — typically the entry point of a back-office area or a
|
|
11
|
+
standalone analytics page.
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
|
|
15
|
+
Trigger words: "dashboard", "overview", "metrics", "KPIs", "summary",
|
|
16
|
+
"tableau de bord", "vue d'ensemble", "indicateurs".
|
|
17
|
+
|
|
18
|
+
Mandatory when:
|
|
19
|
+
- The section code ends in `-dashboard`, `-overview`, `-summary`.
|
|
20
|
+
- The bound use cases are read-only and aggregate-driven ("monitor", "track",
|
|
21
|
+
"see how many", "review").
|
|
22
|
+
|
|
23
|
+
Use `SmartDashboard` for **free-form analytics**. For a **navigational landing
|
|
24
|
+
page** (app/module/section launchpad with quickLinks), use the home types
|
|
25
|
+
instead (`levels/home-screens.md`).
|
|
26
|
+
|
|
27
|
+
## Special rule — entity is optional
|
|
28
|
+
|
|
29
|
+
`SmartDashboard` is the **only** screen type that may omit the screen-level
|
|
30
|
+
entity. Each widget targets its own entity instead.
|
|
31
|
+
|
|
32
|
+
## What to produce
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
### SCR-HR-EMPLOYEES-ANALYTICS-001 — Vue d'ensemble RH (SmartDashboard)
|
|
36
|
+
- **Entité** : — (chaque widget porte la sienne)
|
|
37
|
+
- **Permission** : `hr.employees.read`
|
|
38
|
+
- **Cas d'usage liés** : UC-HR-EMPLOYEES-ANALYTICS-001
|
|
39
|
+
- **Widgets** :
|
|
40
|
+
- active — Employés actifs (kpi, Employee, count, `status=active`, col 3)
|
|
41
|
+
- onLeave — En congé (counter, Employee, count, `status=onLeave`, col 3)
|
|
42
|
+
- newHires — Embauches 30j (counter, Employee, count, `hireDate>30d`, col 3)
|
|
43
|
+
- totalDepts — Départements (kpi, Department, count, col 3)
|
|
44
|
+
- byDept — Par département (chart-pie, Employee, `department.name`, col 6)
|
|
45
|
+
- hireTrend — Embauches/mois (chart-line, Employee, `hireDate`, col 6)
|
|
46
|
+
- recentLeaves — Congés récents (list, LeaveRequest, col 12, `hr.leave.read`)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The exact widget config-as-data shape is in `references/smartcomponents.md`.
|
|
50
|
+
|
|
51
|
+
## Choosing widgets
|
|
52
|
+
|
|
53
|
+
A good dashboard has 4 to 8 widgets:
|
|
54
|
+
|
|
55
|
+
1. **Top row** — 3-4 KPI/counter widgets answering the user's daily question
|
|
56
|
+
("how many active? how many issues? how many waiting?").
|
|
57
|
+
2. **Middle row** — 1-2 chart widgets showing trends and breakdowns.
|
|
58
|
+
3. **Bottom row** — 1 list widget for the most recent/urgent items (a teaser
|
|
59
|
+
into the deeper module).
|
|
60
|
+
|
|
61
|
+
Use `col` (12-column grid) to size widgets: KPI cards `col 3` (4/row), charts
|
|
62
|
+
`col 6` (2/row) or `col 12`, lists `col 12`.
|
|
63
|
+
|
|
64
|
+
## Widget types
|
|
65
|
+
|
|
66
|
+
| Type | Purpose | Required props |
|
|
67
|
+
|--------------|--------------------------------------|-------------------------|
|
|
68
|
+
| `kpi` | A big number with a label | entity, aggregation |
|
|
69
|
+
| `counter` | KPI with a trend arrow | entity, aggregation |
|
|
70
|
+
| `chart-line` | Time series | entity, field (date) |
|
|
71
|
+
| `chart-bar` | Categorical breakdown | entity, field |
|
|
72
|
+
| `chart-pie` | Proportional breakdown | entity, field |
|
|
73
|
+
| `list` | Top-N rows of an entity | entity |
|
|
74
|
+
|
|
75
|
+
## Aggregation expressions
|
|
76
|
+
|
|
77
|
+
Allowed aggregations: `count | sum | avg | min | max`.
|
|
78
|
+
|
|
79
|
+
- KPI/counter: `field` may be a filter expression (`status=active`, `hireDate>30d`).
|
|
80
|
+
- Charts: `field` is the grouping attribute (`department.name`, or `hireDate`
|
|
81
|
+
for a time series).
|
|
82
|
+
|
|
83
|
+
## Permissions per widget
|
|
84
|
+
|
|
85
|
+
Each widget may declare its own permission. When set, the widget is hidden if
|
|
86
|
+
the actor lacks it — use this for cross-module dashboards (a payroll widget on
|
|
87
|
+
the HR dashboard requiring `payroll.read`).
|
|
88
|
+
|
|
89
|
+
## Common mistakes
|
|
90
|
+
|
|
91
|
+
- **No entity at the widget level** → nothing to aggregate.
|
|
92
|
+
- **More than ~10 widgets** → cognitive overload; split into two dashboards.
|
|
93
|
+
- **All widgets `col 12`** → wastes vertical space; mix sizes.
|
|
94
|
+
- **Charts with no meaningful `field`** → the breakdown is meaningless.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: screens
|
|
3
|
+
kind: level
|
|
4
|
+
level: form
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Level — Form screens (SmartForm)
|
|
8
|
+
|
|
9
|
+
Use this level when the user needs to **create**, **edit** or **inspect** a
|
|
10
|
+
single entity instance via a structured input form.
|
|
11
|
+
|
|
12
|
+
## When to use
|
|
13
|
+
|
|
14
|
+
Trigger words: "form", "edit", "create", "new", "fill", "update", "details",
|
|
15
|
+
"fiche", "saisir", "modifier".
|
|
16
|
+
|
|
17
|
+
Mandatory when:
|
|
18
|
+
- The section code ends in `-detail`, `-edit`, `-create`, `-form`, `-new`.
|
|
19
|
+
- The bound use cases include verbs like "create", "register", "update",
|
|
20
|
+
"modify", "edit", "fill in".
|
|
21
|
+
|
|
22
|
+
## What to produce
|
|
23
|
+
|
|
24
|
+
One SmartForm per detail section. Pick the layout based on entity complexity.
|
|
25
|
+
|
|
26
|
+
### Flat fields (small entities, < 8 fields)
|
|
27
|
+
|
|
28
|
+
```markdown
|
|
29
|
+
### SCR-HR-DEPARTMENTS-CREATE-001 — Nouveau département (SmartForm)
|
|
30
|
+
- **Entité** : Department (ENT-005)
|
|
31
|
+
- **Permission** : `hr.departments.create`
|
|
32
|
+
- **Cas d'usage liés** : UC-HR-DEPARTMENTS-CREATE-001
|
|
33
|
+
- **Mode** : create
|
|
34
|
+
- **Champs** : code (text, requis, col 4), name (text, requis, col 8), manager (lookup → Employee), description (textarea)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Tabbed layout (complex entities, multiple aspects)
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
### SCR-HR-EMPLOYEES-DETAIL-001 — Fiche employé (SmartForm)
|
|
41
|
+
- **Entité** : Employee (ENT-003)
|
|
42
|
+
- **Permission** : `hr.employees.update`
|
|
43
|
+
- **Cas d'usage liés** : UC-HR-EMPLOYEES-DETAIL-001, UC-HR-EMPLOYEES-DETAIL-002
|
|
44
|
+
- **Mode** : edit
|
|
45
|
+
- **Onglet « Information »** : code (text, requis, readonly), firstName, lastName, email (requis), phone
|
|
46
|
+
- **Onglet « Emploi »** : department (lookup → Department, requis), manager (lookup → Employee), position (requis), hireDate (date, requis), status (enum: active/inactive/onLeave)
|
|
47
|
+
- **Onglet « Rémunération »** : salary (currency), bonusYTD (currency), totalCompensation (currency, readonly, calculé `salary + bonusYTD`)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The richer per-field config (col span, `type`, `options`, `computed`) is in
|
|
51
|
+
`references/smartcomponents.md`.
|
|
52
|
+
|
|
53
|
+
## Field choice algorithm
|
|
54
|
+
|
|
55
|
+
For each entity attribute, decide whether to include it:
|
|
56
|
+
|
|
57
|
+
| Attribute kind | `create` | `edit` | `detail` |
|
|
58
|
+
|---------------------------|:--------:|:------:|:--------:|
|
|
59
|
+
| Required scalar | yes | yes | yes |
|
|
60
|
+
| Optional scalar | yes | yes | yes |
|
|
61
|
+
| FK (lookup) | yes | yes | yes |
|
|
62
|
+
| Status enum | usually no | yes | yes |
|
|
63
|
+
| Computed | **NEVER**| yes (readonly) | yes (readonly) |
|
|
64
|
+
| `createdAt`/`updatedAt` | no | no (or readonly) | yes (readonly) |
|
|
65
|
+
| `id` / pk | no (auto)| readonly | readonly |
|
|
66
|
+
| Sensitive (password hash) | special | special| no |
|
|
67
|
+
|
|
68
|
+
## Tabs guidelines
|
|
69
|
+
|
|
70
|
+
- 2 to 5 tabs maximum.
|
|
71
|
+
- Each tab groups attributes by **business meaning** (Identity, Employment,
|
|
72
|
+
Compensation, History) — not by technical type.
|
|
73
|
+
- Each tab needs ≥2 fields, otherwise inline them elsewhere.
|
|
74
|
+
- Computed-heavy read-only summary tabs come last.
|
|
75
|
+
|
|
76
|
+
## Mode rules
|
|
77
|
+
|
|
78
|
+
- `create` → fields for a new entity. Computed fields ABSENT. Related tabs
|
|
79
|
+
FORBIDDEN (the entity does not exist yet).
|
|
80
|
+
- `edit` → fields for an existing entity. Computed fields PRESENT and `readonly`.
|
|
81
|
+
Audit fields optional and `readonly` if shown. Related tabs allowed.
|
|
82
|
+
- `detail` → all fields read-only. Use for view-only pages (HR profile, audit
|
|
83
|
+
views). Related tabs allowed and recommended when the entity has incoming
|
|
84
|
+
1:N relationships.
|
|
85
|
+
|
|
86
|
+
## Related entity tabs
|
|
87
|
+
|
|
88
|
+
A real fiche is the **hub** for everything connected to it (a Client → its
|
|
89
|
+
Factures, Contacts, Litiges, Contrats). In `edit`/`detail` mode a SmartForm can
|
|
90
|
+
expose those linked collections as extra tabs **inside the same page**, each
|
|
91
|
+
embedding a list of the related entity scoped by a foreign key back to the
|
|
92
|
+
parent.
|
|
93
|
+
|
|
94
|
+
`screen.md` entry with related tabs:
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
### SCR-CRM-CLIENTS-DETAIL-001 — Fiche client (SmartForm)
|
|
98
|
+
- **Entité** : Client (ENT-001)
|
|
99
|
+
- **Permission** : `crm.clients.read`
|
|
100
|
+
- **Cas d'usage liés** : UC-CRM-CLIENTS-DETAIL-001
|
|
101
|
+
- **Mode** : detail
|
|
102
|
+
- **Onglet « Informations »** : code (text, readonly), name (text), siret (text), category (lookup → ClientCategory)
|
|
103
|
+
- **Onglet « Adresse de facturation »** : billingStreet, billingZip, billingCity
|
|
104
|
+
- **Onglet lié « Factures »** : entité Invoice, FK clientId → SCR-CRM-INVOICES-LIST-001 (`crm.invoices.read`)
|
|
105
|
+
- **Onglet lié « Contacts »** : entité Contact, FK clientId → SCR-CRM-CONTACTS-LIST-001
|
|
106
|
+
- **Onglet lié « Litiges »** : entité Claim, FK clientId → SCR-CRM-CLAIMS-LIST-001
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Rules for related tabs
|
|
110
|
+
|
|
111
|
+
1. Allowed **only** in `edit`/`detail` mode (forbidden in `create` — no parent ID).
|
|
112
|
+
2. The related entity must exist in the module's `entité.md`.
|
|
113
|
+
3. The relationship FK must exist on the related entity, pointing back to the
|
|
114
|
+
parent (Client → Invoices ⇒ `Invoice` has `clientId`).
|
|
115
|
+
4. The navigation target must be an existing `SmartListView` for that related
|
|
116
|
+
entity (the generator hands it the parent ID as a pre-filter).
|
|
117
|
+
5. A per-tab permission is optional but recommended — it gates whether the tab
|
|
118
|
+
appears for the current actor.
|
|
119
|
+
|
|
120
|
+
### Common related-tab patterns
|
|
121
|
+
|
|
122
|
+
| Parent entity | Typical related tabs |
|
|
123
|
+
|---------------|---------------------------------------------------|
|
|
124
|
+
| Client | Factures, Contacts, Avoirs, Litiges, Contrats |
|
|
125
|
+
| Project | Tâches, Documents, Membres, Jalons, Tickets |
|
|
126
|
+
| Order | Lignes, Paiements, Livraisons, Avoirs |
|
|
127
|
+
| Employee | Contrats, Absences, Évaluations, Formations |
|
|
128
|
+
| Account (CRM) | Opportunités, Activités, Contacts, Documents |
|
|
129
|
+
|
|
130
|
+
An entity with ≥1 incoming 1:N FK should have at least one related tab. The
|
|
131
|
+
audit warns (SCR-009) when this is missed.
|
|
132
|
+
|
|
133
|
+
## Common mistakes
|
|
134
|
+
|
|
135
|
+
- **Computed fields in create mode** → fails type-mapping rule.
|
|
136
|
+
- **`readonly` as a string** → it is a strict boolean.
|
|
137
|
+
- **Lookup field without an entity** → fails post-check rule 5.
|
|
138
|
+
- **More than 5 inner tabs** → split into multiple sections instead (inner and
|
|
139
|
+
related tabs share the tab bar — count both).
|
|
140
|
+
- **Related tabs in create mode** → forbidden, no parent ID yet.
|
|
141
|
+
- **A navigation target pointing to a non-existent screen** → fails SCR-008.
|
|
142
|
+
- **Required field with no business reason** → ask the user first.
|