@atlashub/smartstack-cli 3.39.0 → 3.41.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/apex.html +644 -644
- package/.documentation/css/styles.css +2320 -2320
- package/.documentation/init.html +1377 -1377
- package/.documentation/js/app.js +780 -780
- package/.documentation/prd-json-v2.0.0.md +396 -396
- package/.documentation/testing-ba-e2e.md +462 -462
- package/config/default-config.json +95 -95
- package/config/mcp-defaults.json +62 -62
- package/config/settings.json +53 -53
- package/config/settings.local.example.json +16 -16
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.mjs +6 -4
- package/dist/mcp-entry.mjs.map +1 -1
- package/package.json +115 -115
- package/scripts/extract-api-endpoints.ts +325 -325
- package/scripts/extract-business-rules.ts +440 -440
- package/scripts/generate-doc-with-mock-ui.ts +804 -804
- package/scripts/health-check.sh +168 -168
- package/scripts/postinstall.js +18 -18
- package/templates/agents/action.md +37 -37
- package/templates/agents/ba-reader.md +378 -378
- package/templates/agents/ba-writer.md +861 -861
- package/templates/agents/code-reviewer.md +163 -163
- package/templates/agents/db-reader.md +149 -149
- package/templates/agents/docs-context-reader.md +143 -143
- package/templates/agents/docs-sync-checker.md +122 -122
- package/templates/agents/efcore/conflicts.md +95 -84
- package/templates/agents/efcore/db-deploy.md +85 -74
- package/templates/agents/efcore/db-reset.md +96 -85
- package/templates/agents/efcore/db-seed.md +72 -61
- package/templates/agents/efcore/db-status.md +97 -86
- package/templates/agents/efcore/migration.md +197 -186
- package/templates/agents/efcore/rebase-snapshot.md +119 -108
- package/templates/agents/efcore/scan.md +103 -92
- package/templates/agents/efcore/squash.md +172 -161
- package/templates/agents/explore-codebase.md +66 -66
- package/templates/agents/explore-docs.md +98 -98
- package/templates/agents/fix-grammar.md +50 -50
- package/templates/agents/gitflow/abort.md +45 -45
- package/templates/agents/gitflow/cleanup.md +96 -96
- package/templates/agents/gitflow/commit.md +236 -236
- package/templates/agents/gitflow/exec.md +48 -48
- package/templates/agents/gitflow/finish.md +146 -146
- package/templates/agents/gitflow/init-clone.md +199 -199
- package/templates/agents/gitflow/init-detect.md +137 -137
- package/templates/agents/gitflow/init-validate.md +225 -225
- package/templates/agents/gitflow/init.md +340 -340
- package/templates/agents/gitflow/merge.md +145 -145
- package/templates/agents/gitflow/plan.md +42 -42
- package/templates/agents/gitflow/pr.md +191 -191
- package/templates/agents/gitflow/review.md +49 -49
- package/templates/agents/gitflow/start.md +147 -147
- package/templates/agents/gitflow/status.md +95 -95
- package/templates/agents/mcp-healthcheck.md +163 -163
- package/templates/agents/snipper.md +37 -37
- package/templates/agents/websearch.md +46 -46
- package/templates/hooks/appsettings-guard.sh +76 -76
- package/templates/hooks/docs-drift-check.md +96 -96
- package/templates/hooks/ef-migration-check.md +139 -139
- package/templates/hooks/hooks.json +58 -58
- package/templates/hooks/mcp-check.md +64 -64
- package/templates/hooks/ralph-mcp-logger.sh +46 -46
- package/templates/hooks/ralph-session-end.sh +69 -69
- package/templates/hooks/stop-hook.sh +177 -177
- package/templates/hooks/wsl-dotnet-cleanup.sh +24 -24
- package/templates/mcp-scaffolding/component.tsx.hbs +318 -318
- package/templates/mcp-scaffolding/controller.cs.hbs +192 -192
- package/templates/mcp-scaffolding/entity-extension.cs.hbs +239 -239
- package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -116
- package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -133
- package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -126
- package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -261
- package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -53
- package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +436 -436
- package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -239
- package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -441
- package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -442
- package/templates/mcp-scaffolding/tests/service.test.cs.hbs +402 -402
- package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -428
- package/templates/project/DependencyInjection.Application.cs.template +25 -25
- package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -61
- package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -70
- package/templates/project/ExampleEntity.cs.template +116 -116
- package/templates/project/ExampleEntityConfiguration.cs.template +64 -64
- package/templates/project/ExampleService.cs.template +146 -146
- package/templates/project/ExtensionsDbContext.cs.template +41 -41
- package/templates/project/IExtensionsDbContext.cs.template +22 -22
- package/templates/project/Program.cs.template +47 -47
- package/templates/project/README.md +79 -79
- package/templates/project/api.ts.template +12 -12
- package/templates/project/appsettings.json.template +170 -170
- package/templates/project/claude-settings.json.template +5 -5
- package/templates/project/test-frontend/msw/handlers.ts +58 -58
- package/templates/project/test-frontend/msw/server.ts +25 -25
- package/templates/project/test-frontend/setup.ts +16 -16
- package/templates/project/test-frontend/test-utils.tsx +59 -59
- package/templates/project/test-frontend/vitest.config.ts +31 -31
- package/templates/ralph/README.md +93 -93
- package/templates/ralph/ralph.config.yaml +113 -113
- package/templates/scripts/setup-ralph-loop.sh +173 -173
- package/templates/skills/_resources/config-safety.md +61 -61
- package/templates/skills/_resources/context-digest-template.md +53 -53
- package/templates/skills/_resources/doc-context-cache.md +60 -60
- package/templates/skills/_resources/docs-manifest-schema.md +155 -155
- package/templates/skills/_resources/formatting-guide.md +124 -124
- package/templates/skills/_resources/mcp-validate-documentation-spec.md +181 -181
- package/templates/skills/_shared.md +228 -228
- package/templates/skills/admin/SKILL.md +48 -48
- package/templates/skills/ai-prompt/SKILL.md +107 -107
- package/templates/skills/ai-prompt/steps/step-00-init.md +47 -47
- package/templates/skills/ai-prompt/steps/step-01-implementation.md +122 -122
- package/templates/skills/apex/SKILL.md +168 -168
- package/templates/skills/apex/_shared.md +141 -141
- package/templates/skills/apex/references/agent-teams-protocol.md +164 -164
- package/templates/skills/apex/references/analysis-methods.md +141 -141
- package/templates/skills/apex/references/challenge-questions.md +145 -145
- package/templates/skills/apex/references/code-generation.md +412 -412
- package/templates/skills/apex/references/core-seed-data.md +1437 -1437
- package/templates/skills/apex/references/error-classification.md +144 -144
- package/templates/skills/apex/references/examine-build-validation.md +82 -82
- package/templates/skills/apex/references/execution-frontend-gates.md +177 -177
- package/templates/skills/apex/references/execution-frontend-patterns.md +105 -105
- package/templates/skills/apex/references/execution-layer1-rules.md +96 -96
- package/templates/skills/apex/references/initialization-challenge-flow.md +110 -110
- package/templates/skills/apex/references/planning-layer-mapping.md +151 -151
- package/templates/skills/apex/references/post-checks.md +1584 -1584
- package/templates/skills/apex/references/smartstack-api.md +1053 -1053
- package/templates/skills/apex/references/smartstack-frontend.md +1571 -1571
- package/templates/skills/apex/references/smartstack-layers.md +402 -402
- package/templates/skills/apex/steps/step-00-init.md +307 -307
- package/templates/skills/apex/steps/step-01-analyze.md +165 -165
- package/templates/skills/apex/steps/step-02-plan.md +144 -144
- package/templates/skills/apex/steps/step-03-execute.md +328 -328
- package/templates/skills/apex/steps/step-04-examine.md +263 -263
- package/templates/skills/apex/steps/step-05-deep-review.md +129 -129
- package/templates/skills/apex/steps/step-06-resolve.md +101 -101
- package/templates/skills/apex/steps/step-07-tests.md +238 -238
- package/templates/skills/apex/steps/step-08-run-tests.md +125 -125
- package/templates/skills/application/SKILL.md +4 -4
- package/templates/skills/application/references/application-roles-template.md +227 -227
- package/templates/skills/application/references/backend-controller-hierarchy.md +58 -58
- package/templates/skills/application/references/backend-entity-seeding.md +72 -72
- package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -83
- package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -79
- package/templates/skills/application/references/backend-verification.md +88 -88
- package/templates/skills/application/references/frontend-i18n-and-output.md +67 -67
- package/templates/skills/application/references/frontend-route-naming.md +117 -117
- package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -107
- package/templates/skills/application/references/frontend-verification.md +156 -156
- package/templates/skills/application/references/migration-checklist-troubleshooting.md +1 -1
- package/templates/skills/application/references/provider-template.md +177 -177
- package/templates/skills/application/references/roles-client-project-handling.md +55 -55
- package/templates/skills/application/references/roles-fallback-procedure.md +149 -149
- package/templates/skills/application/references/test-coverage-requirements.md +213 -213
- package/templates/skills/application/references/test-frontend.md +73 -73
- package/templates/skills/application/references/test-prerequisites.md +72 -72
- package/templates/skills/application/steps/step-05-frontend.md +176 -176
- package/templates/skills/application/steps/step-06-migration.md +193 -193
- package/templates/skills/application/steps/step-07-tests.md +356 -356
- package/templates/skills/application/steps/step-08-documentation.md +137 -137
- package/templates/skills/application/templates-backend.md +463 -463
- package/templates/skills/application/templates-frontend.md +685 -685
- package/templates/skills/application/templates-i18n.md +520 -520
- package/templates/skills/application/templates-seed.md +1096 -1096
- package/templates/skills/business-analyse/SKILL.md +327 -327
- package/templates/skills/business-analyse/_architecture.md +123 -123
- package/templates/skills/business-analyse/_elicitation.md +206 -206
- package/templates/skills/business-analyse/_module-loop.md +115 -115
- package/templates/skills/business-analyse/_shared.md +383 -383
- package/templates/skills/business-analyse/_suggestions.md +34 -34
- package/templates/skills/business-analyse/html/ba-interactive.html +4477 -4477
- package/templates/skills/business-analyse/html/build-html.js +77 -77
- package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +150 -150
- package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +227 -227
- package/templates/skills/business-analyse/html/src/scripts/03-render-cadrage.js +199 -199
- package/templates/skills/business-analyse/html/src/scripts/04-render-modules.js +205 -205
- package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +647 -647
- package/templates/skills/business-analyse/html/src/scripts/06-render-consolidation.js +195 -195
- package/templates/skills/business-analyse/html/src/scripts/07-render-handoff.js +92 -92
- package/templates/skills/business-analyse/html/src/scripts/08-editing.js +135 -135
- package/templates/skills/business-analyse/html/src/scripts/09-export.js +168 -168
- package/templates/skills/business-analyse/html/src/scripts/10-comments.js +171 -171
- package/templates/skills/business-analyse/html/src/scripts/11-review-panel.js +166 -166
- package/templates/skills/business-analyse/html/src/styles/01-variables.css +38 -38
- package/templates/skills/business-analyse/html/src/styles/02-layout.css +101 -101
- package/templates/skills/business-analyse/html/src/styles/03-navigation.css +120 -120
- package/templates/skills/business-analyse/html/src/styles/04-cards.css +196 -196
- package/templates/skills/business-analyse/html/src/styles/05-modules.css +454 -454
- package/templates/skills/business-analyse/html/src/styles/06-wireframes.css +272 -272
- package/templates/skills/business-analyse/html/src/styles/07-comments.css +184 -184
- package/templates/skills/business-analyse/html/src/styles/08-review-panel.css +241 -241
- package/templates/skills/business-analyse/html/src/template.html +516 -516
- package/templates/skills/business-analyse/patterns/suggestion-catalog.md +546 -546
- package/templates/skills/business-analyse/questionnaire/00-application.md +160 -160
- package/templates/skills/business-analyse/questionnaire/00b-project.md +85 -85
- package/templates/skills/business-analyse/questionnaire/01-context.md +185 -185
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +189 -189
- package/templates/skills/business-analyse/questionnaire/03-scope.md +164 -164
- package/templates/skills/business-analyse/questionnaire/04-data.md +88 -88
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +58 -58
- package/templates/skills/business-analyse/questionnaire/06-security.md +68 -68
- package/templates/skills/business-analyse/questionnaire/07-ui.md +76 -76
- package/templates/skills/business-analyse/questionnaire/08-performance.md +42 -42
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +45 -45
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +43 -43
- package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +59 -59
- package/templates/skills/business-analyse/questionnaire/12-migration.md +58 -58
- package/templates/skills/business-analyse/questionnaire/13-cross-module.md +69 -69
- package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -135
- package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -136
- package/templates/skills/business-analyse/questionnaire.md +337 -337
- package/templates/skills/business-analyse/react/application-viewer.md +242 -242
- package/templates/skills/business-analyse/react/components.md +551 -551
- package/templates/skills/business-analyse/react/i18n-template.md +306 -306
- package/templates/skills/business-analyse/references/acceptance-criteria.md +169 -169
- package/templates/skills/business-analyse/references/agent-module-prompt.md +362 -362
- package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +557 -557
- package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -190
- package/templates/skills/business-analyse/references/cache-warming-strategy.md +566 -566
- package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -41
- package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -74
- package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +115 -115
- package/templates/skills/business-analyse/references/cadrage-shared-modules.md +68 -69
- package/templates/skills/business-analyse/references/cadrage-structure-cards.md +85 -85
- package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -297
- package/templates/skills/business-analyse/references/consolidation-structural-checks.md +107 -107
- package/templates/skills/business-analyse/references/deploy-data-build.md +180 -180
- package/templates/skills/business-analyse/references/deploy-modes.md +118 -118
- package/templates/skills/business-analyse/references/detection-strategies.md +424 -424
- package/templates/skills/business-analyse/references/entity-architecture-decision.md +218 -218
- package/templates/skills/business-analyse/references/handoff-file-templates.md +120 -120
- package/templates/skills/business-analyse/references/handoff-mappings.md +81 -81
- package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -312
- package/templates/skills/business-analyse/references/html-data-mapping.md +299 -299
- package/templates/skills/business-analyse/references/init-schema-deployment.md +65 -65
- package/templates/skills/business-analyse/references/naming-conventions.md +243 -243
- package/templates/skills/business-analyse/references/prd-generation.md +258 -258
- package/templates/skills/business-analyse/references/review-data-mapping.md +363 -363
- package/templates/skills/business-analyse/references/robustness-checks.md +542 -542
- package/templates/skills/business-analyse/references/spec-auto-inference.md +111 -111
- package/templates/skills/business-analyse/references/team-orchestration.md +1022 -1022
- package/templates/skills/business-analyse/references/ui-dashboard-spec.md +85 -85
- package/templates/skills/business-analyse/references/ui-resource-cards.md +259 -259
- package/templates/skills/business-analyse/references/validate-incremental-html.md +121 -121
- package/templates/skills/business-analyse/references/validation-checklist.md +347 -347
- package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +335 -335
- package/templates/skills/business-analyse/schemas/application-schema.json +453 -453
- package/templates/skills/business-analyse/schemas/feature-schema.json +53 -53
- package/templates/skills/business-analyse/schemas/project-schema.json +485 -485
- package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +201 -201
- package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +82 -82
- package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +80 -80
- package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +70 -70
- package/templates/skills/business-analyse/schemas/sections/specification-schema.json +547 -547
- package/templates/skills/business-analyse/schemas/sections/validation-schema.json +93 -93
- package/templates/skills/business-analyse/schemas/shared/common-defs.json +226 -226
- package/templates/skills/business-analyse/steps/step-00-init.md +575 -576
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +767 -767
- package/templates/skills/business-analyse/steps/step-01b-applications.md +419 -419
- package/templates/skills/business-analyse/steps/step-02-decomposition.md +387 -387
- package/templates/skills/business-analyse/steps/step-03a-data.md +16 -16
- package/templates/skills/business-analyse/steps/step-03a1-setup.md +506 -506
- package/templates/skills/business-analyse/steps/step-03a2-analysis.md +252 -252
- package/templates/skills/business-analyse/steps/step-03b-ui.md +425 -425
- package/templates/skills/business-analyse/steps/step-03c-compile.md +611 -611
- package/templates/skills/business-analyse/steps/step-03d-validate.md +783 -783
- package/templates/skills/business-analyse/steps/step-04-consolidation.md +17 -17
- package/templates/skills/business-analyse/steps/step-04a-collect.md +415 -415
- package/templates/skills/business-analyse/steps/step-04b-analyze.md +163 -163
- package/templates/skills/business-analyse/steps/step-04c-decide.md +186 -186
- package/templates/skills/business-analyse/steps/step-05a-handoff.md +840 -840
- package/templates/skills/business-analyse/steps/step-05b-deploy.md +522 -522
- package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +703 -703
- package/templates/skills/business-analyse/steps/step-06-review.md +278 -278
- package/templates/skills/business-analyse/templates/tpl-frd.md +168 -168
- package/templates/skills/business-analyse/templates/tpl-handoff.md +186 -186
- package/templates/skills/business-analyse/templates/tpl-launch-displays.md +59 -59
- package/templates/skills/business-analyse/templates/tpl-progress.md +172 -172
- package/templates/skills/business-analyse/templates-frd.md +476 -476
- package/templates/skills/business-analyse/templates-react.md +574 -574
- package/templates/skills/cc-agent/SKILL.md +129 -129
- package/templates/skills/cc-agent/references/agent-behavior-patterns.md +95 -95
- package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -213
- package/templates/skills/cc-agent/references/permission-modes.md +102 -102
- package/templates/skills/cc-agent/references/tools-reference.md +144 -144
- package/templates/skills/cc-agent/steps/step-00-init.md +134 -134
- package/templates/skills/cc-agent/steps/step-01-design.md +186 -186
- package/templates/skills/cc-agent/steps/step-02-generate.md +131 -131
- package/templates/skills/cc-agent/steps/step-03-validate.md +130 -130
- package/templates/skills/cc-agent/templates/agent-categorized.md +67 -67
- package/templates/skills/cc-agent/templates/agent-standalone.md +56 -56
- package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -94
- package/templates/skills/cc-audit/SKILL.md +108 -108
- package/templates/skills/cc-audit/references/agent-checklist.md +91 -91
- package/templates/skills/cc-audit/references/hook-checklist.md +110 -110
- package/templates/skills/cc-audit/references/skill-checklist.md +70 -70
- package/templates/skills/cc-audit/steps/step-00-init.md +98 -98
- package/templates/skills/cc-audit/steps/step-01-scan.md +142 -142
- package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -158
- package/templates/skills/cc-audit/steps/step-03-report.md +142 -142
- package/templates/skills/cc-skill/SKILL.md +134 -134
- package/templates/skills/cc-skill/references/best-practices.md +167 -167
- package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -182
- package/templates/skills/cc-skill/references/skill-patterns.md +199 -199
- package/templates/skills/cc-skill/steps/step-00-init.md +119 -119
- package/templates/skills/cc-skill/steps/step-01-design.md +199 -199
- package/templates/skills/cc-skill/steps/step-02-generate.md +145 -145
- package/templates/skills/cc-skill/steps/step-03-steps.md +151 -151
- package/templates/skills/cc-skill/steps/step-04-validate.md +124 -124
- package/templates/skills/cc-skill/templates/skill-forked.md +85 -85
- package/templates/skills/cc-skill/templates/skill-progressive.md +102 -102
- package/templates/skills/cc-skill/templates/skill-simple.md +75 -75
- package/templates/skills/cc-skill/templates/step-template.md +82 -82
- package/templates/skills/check-version/SKILL.md +196 -196
- package/templates/skills/controller/SKILL.md +162 -162
- package/templates/skills/controller/postman-templates.md +614 -614
- package/templates/skills/controller/references/controller-code-templates.md +159 -159
- package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -209
- package/templates/skills/controller/references/permission-sync-templates.md +149 -149
- package/templates/skills/controller/steps/step-00-init.md +193 -191
- package/templates/skills/controller/steps/step-01-analyze.md +146 -146
- package/templates/skills/controller/steps/step-02-plan.md +176 -176
- package/templates/skills/controller/steps/step-03-generate.md +189 -189
- package/templates/skills/controller/steps/step-04-perms.md +80 -80
- package/templates/skills/controller/steps/step-05-validate.md +107 -107
- package/templates/skills/controller/templates.md +1555 -1555
- package/templates/skills/debug/SKILL.md +70 -70
- package/templates/skills/debug/references/team-protocol.md +232 -232
- package/templates/skills/debug/steps/step-00-init.md +57 -57
- package/templates/skills/debug/steps/step-01-analyze.md +219 -219
- package/templates/skills/debug/steps/step-02-resolve.md +85 -85
- package/templates/skills/documentation/SKILL.md +132 -132
- package/templates/skills/documentation/data-schema.md +227 -227
- package/templates/skills/documentation/steps/step-00-init.md +70 -70
- package/templates/skills/documentation/steps/step-01-scan.md +113 -113
- package/templates/skills/documentation/steps/step-02-generate.md +231 -231
- package/templates/skills/documentation/steps/step-03-validate.md +251 -238
- package/templates/skills/documentation/templates.md +662 -663
- package/templates/skills/efcore/SKILL.md +168 -167
- package/templates/skills/efcore/references/both-contexts.md +32 -32
- package/templates/skills/efcore/references/database-operations.md +67 -67
- package/templates/skills/efcore/references/destructive-operations.md +38 -38
- package/templates/skills/efcore/references/reset-operations.md +81 -81
- package/templates/skills/efcore/references/seed-methods.md +86 -86
- package/templates/skills/efcore/references/shared-init-functions.md +250 -250
- package/templates/skills/efcore/references/sql-objects-injection.md +61 -61
- package/templates/skills/efcore/references/troubleshooting.md +81 -81
- package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -227
- package/templates/skills/efcore/steps/db/step-deploy.md +217 -217
- package/templates/skills/efcore/steps/db/step-reset.md +186 -186
- package/templates/skills/efcore/steps/db/step-seed.md +166 -166
- package/templates/skills/efcore/steps/db/step-status.md +173 -173
- package/templates/skills/efcore/steps/migration/step-00-init.md +102 -102
- package/templates/skills/efcore/steps/migration/step-01-check.md +164 -164
- package/templates/skills/efcore/steps/migration/step-02-create.md +160 -160
- package/templates/skills/efcore/steps/migration/step-03-validate.md +168 -168
- package/templates/skills/efcore/steps/rebase-snapshot/step-00-init.md +173 -173
- package/templates/skills/efcore/steps/rebase-snapshot/step-01-backup.md +100 -100
- package/templates/skills/efcore/steps/rebase-snapshot/step-02-fetch.md +115 -115
- package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +112 -112
- package/templates/skills/efcore/steps/rebase-snapshot/step-04-validate.md +157 -157
- package/templates/skills/efcore/steps/shared/step-00-init.md +131 -131
- package/templates/skills/efcore/steps/squash/step-00-init.md +141 -141
- package/templates/skills/efcore/steps/squash/step-01-backup.md +120 -120
- package/templates/skills/efcore/steps/squash/step-02-fetch.md +168 -168
- package/templates/skills/efcore/steps/squash/step-03-create.md +184 -184
- package/templates/skills/efcore/steps/squash/step-04-validate.md +174 -174
- package/templates/skills/explore/SKILL.md +98 -98
- package/templates/skills/feature-full/SKILL.md +111 -111
- package/templates/skills/feature-full/steps/step-00-init.md +57 -57
- package/templates/skills/feature-full/steps/step-01-implementation.md +120 -120
- package/templates/skills/gitflow/SKILL.md +377 -377
- package/templates/skills/gitflow/_shared.md +620 -620
- package/templates/skills/gitflow/phases/abort.md +189 -189
- package/templates/skills/gitflow/phases/cleanup.md +234 -234
- package/templates/skills/gitflow/phases/status.md +192 -192
- package/templates/skills/gitflow/references/commit-message-generation.md +58 -58
- package/templates/skills/gitflow/references/commit-migration-validation.md +49 -49
- package/templates/skills/gitflow/references/finish-cleanup.md +55 -55
- package/templates/skills/gitflow/references/finish-version-bumping.md +45 -45
- package/templates/skills/gitflow/references/init-config-template.md +135 -135
- package/templates/skills/gitflow/references/init-environment-detection.md +41 -41
- package/templates/skills/gitflow/references/init-name-normalization.md +103 -103
- package/templates/skills/gitflow/references/init-questions.md +185 -185
- package/templates/skills/gitflow/references/init-structure-creation.md +75 -75
- package/templates/skills/gitflow/references/init-version-detection.md +21 -21
- package/templates/skills/gitflow/references/init-workspace-detection.md +43 -43
- package/templates/skills/gitflow/references/merge-ci-status.md +36 -36
- package/templates/skills/gitflow/references/merge-execution.md +62 -62
- package/templates/skills/gitflow/references/merge-pr-context.md +76 -76
- package/templates/skills/gitflow/references/plan-template.md +69 -69
- package/templates/skills/gitflow/references/pr-build-checks.md +60 -60
- package/templates/skills/gitflow/references/pr-generation.md +58 -58
- package/templates/skills/gitflow/references/start-branch-normalization.md +28 -28
- package/templates/skills/gitflow/references/start-efcore-preflight.md +70 -70
- package/templates/skills/gitflow/references/start-local-config.md +113 -113
- package/templates/skills/gitflow/references/start-worktree-creation.md +50 -50
- package/templates/skills/gitflow/references/sync-push-verify.md +44 -44
- package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -38
- package/templates/skills/gitflow/steps/step-commit.md +199 -199
- package/templates/skills/gitflow/steps/step-finish.md +147 -147
- package/templates/skills/gitflow/steps/step-init.md +190 -190
- package/templates/skills/gitflow/steps/step-merge.md +85 -85
- package/templates/skills/gitflow/steps/step-plan.md +151 -151
- package/templates/skills/gitflow/steps/step-pr.md +199 -199
- package/templates/skills/gitflow/steps/step-start.md +195 -195
- package/templates/skills/gitflow/steps/step-sync.md +161 -161
- package/templates/skills/gitflow/templates/config.json +72 -72
- package/templates/skills/mcp/SKILL.md +62 -62
- package/templates/skills/mcp/steps/step-01-healthcheck.md +108 -108
- package/templates/skills/mcp/steps/step-02-tools.md +73 -73
- package/templates/skills/notification/SKILL.md +173 -173
- package/templates/skills/quick-search/SKILL.md +99 -99
- package/templates/skills/ralph-loop/SKILL.md +234 -234
- package/templates/skills/ralph-loop/references/category-completeness.md +185 -185
- package/templates/skills/ralph-loop/references/category-rules.md +96 -96
- package/templates/skills/ralph-loop/references/compact-loop.md +300 -300
- package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -127
- package/templates/skills/ralph-loop/references/module-transition.md +151 -151
- package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -171
- package/templates/skills/ralph-loop/references/parallel-execution.md +246 -246
- package/templates/skills/ralph-loop/references/section-splitting.md +439 -439
- package/templates/skills/ralph-loop/references/task-transform-legacy.md +256 -256
- package/templates/skills/ralph-loop/references/team-orchestration.md +547 -547
- package/templates/skills/ralph-loop/steps/step-00-init.md +150 -150
- package/templates/skills/ralph-loop/steps/step-01-task.md +174 -174
- package/templates/skills/ralph-loop/steps/step-02-execute.md +177 -177
- package/templates/skills/ralph-loop/steps/step-03-commit.md +92 -92
- package/templates/skills/ralph-loop/steps/step-04-check.md +207 -207
- package/templates/skills/ralph-loop/steps/step-05-report.md +175 -175
- package/templates/skills/refactor/SKILL.md +56 -56
- package/templates/skills/refactor/steps/step-01-discover.md +60 -60
- package/templates/skills/refactor/steps/step-02-execute.md +67 -67
- package/templates/skills/review-code/SKILL.md +95 -94
- package/templates/skills/review-code/references/clean-code-principles.md +292 -292
- package/templates/skills/review-code/references/code-quality-metrics.md +174 -174
- package/templates/skills/review-code/references/feedback-patterns.md +149 -149
- package/templates/skills/review-code/references/owasp-api-top10.md +243 -243
- package/templates/skills/review-code/references/security-checklist.md +212 -212
- package/templates/skills/review-code/steps/step-01-smartstack.md +96 -96
- package/templates/skills/review-code/steps/step-02-detailed-review.md +80 -80
- package/templates/skills/review-code/steps/step-03-react.md +44 -44
- package/templates/skills/ui-components/SKILL.md +137 -137
- package/templates/skills/ui-components/accessibility.md +170 -170
- package/templates/skills/ui-components/patterns/dashboard-chart.md +327 -327
- package/templates/skills/ui-components/patterns/data-table.md +39 -39
- package/templates/skills/ui-components/patterns/entity-card.md +77 -77
- package/templates/skills/ui-components/patterns/grid-layout.md +91 -91
- package/templates/skills/ui-components/patterns/kanban.md +43 -43
- package/templates/skills/ui-components/responsive-guidelines.md +278 -278
- package/templates/skills/ui-components/style-guide.md +113 -113
- package/templates/skills/utils/SKILL.md +44 -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/SKILL.md +181 -181
- package/templates/skills/validate-feature/SKILL.md +101 -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/workflow/SKILL.md +127 -127
- package/templates/skills/workflow/steps/step-00-init.md +57 -57
- package/templates/skills/workflow/steps/step-01-implementation.md +84 -84
- package/templates/test-web/api-health.json +38 -38
- package/templates/test-web/minimal.json +19 -19
- package/templates/test-web/npm-package.json +46 -46
- package/templates/test-web/seo-check.json +54 -54
|
@@ -1,190 +1,190 @@
|
|
|
1
|
-
# Semantic Validation Checks for Analysis
|
|
2
|
-
|
|
3
|
-
Complete reference for step-04b semantic validation, permission coherence, and complexity assessment.
|
|
4
|
-
|
|
5
|
-
## Semantic Validation Checks (13 checks total)
|
|
6
|
-
|
|
7
|
-
Execute for EACH module feature.json:
|
|
8
|
-
|
|
9
|
-
| # | Check | Rule | Severity |
|
|
10
|
-
|---|-------|------|----------|
|
|
11
|
-
| 1 | Permission orpheline | Every permissionMatrix.permissions[].path is used by at least one useCases[].permission | WARNING |
|
|
12
|
-
| 2 | UC sans FR | Every useCases[].id is referenced by at least one functionalRequirements[].linkedUseCases[] | WARNING |
|
|
13
|
-
| 3 | Entity sans endpoint | Every entities[].name has at least one endpoint in apiEndpoints[] | WARNING |
|
|
14
|
-
| 4 | UC sans scenario | Every useCases[].mainScenario has at least 2 steps | WARNING |
|
|
15
|
-
| 5 | Role sans permissions | Every applicationRole has at least one entry in roleAssignments[] | WARNING |
|
|
16
|
-
| 6 | Navigation sans traduction | Every navigation.entries[].code has translations in 4 languages in seedDataCore.navigationTranslations[] | ERROR |
|
|
17
|
-
| 7 | LifeCycle terminal | Every lifeCycles[].states[] has at least one state with isTerminal: true | WARNING |
|
|
18
|
-
| 8 | Schema conformity | No custom fields outside defined schema (no KPIDefinitions, ChartConfigurations, etc.) | ERROR |
|
|
19
|
-
| 9 | Wireframe coverage | Every navigation section has a corresponding uiWireframes[].screen | ERROR |
|
|
20
|
-
| 10 | Doublon entity | No entity with same name in two different modules (unless shared via dependencyGraph) | ERROR |
|
|
21
|
-
| 11 | Permission fantome | Every action used in applicationRoles pattern (read, create, update, delete, assign, export, approve) MUST exist as a permission path in permissionMatrix.permissions[].action for at least one module | ERROR |
|
|
22
|
-
| 12 | Dashboard coverage | If cadrage mentions dashboard for a module OR navigation includes "dashboard" section, then specification.dashboards[] MUST NOT be empty | WARNING |
|
|
23
|
-
| 13 | Permission-UC alignment | Every permission.action (except "read" and wildcard "*") MUST have at least one UC where that permission is referenced in useCases[].permission | WARNING |
|
|
24
|
-
|
|
25
|
-
## Result Storage Format
|
|
26
|
-
|
|
27
|
-
```json
|
|
28
|
-
{
|
|
29
|
-
"check": "permission-orpheline",
|
|
30
|
-
"module": "RepairManagement",
|
|
31
|
-
"status": "PASS|WARNING|ERROR",
|
|
32
|
-
"details": "Permission freebike.repairmanagement.export not referenced by any UC",
|
|
33
|
-
"autoFixed": false
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Blocking Rules
|
|
38
|
-
|
|
39
|
-
- 0 ERROR → PASS
|
|
40
|
-
- ≥1 ERROR → BLOCK (fix before handoff, ask user for each)
|
|
41
|
-
- WARNING only → PASS with user notification
|
|
42
|
-
|
|
43
|
-
## Complexity Calculation
|
|
44
|
-
|
|
45
|
-
For each module in feature.json.modules[], calculate:
|
|
46
|
-
|
|
47
|
-
```json
|
|
48
|
-
{
|
|
49
|
-
"complexity": "simple|medium|complex",
|
|
50
|
-
"complexityDetails": {
|
|
51
|
-
"entities": {count},
|
|
52
|
-
"useCases": {count},
|
|
53
|
-
"businessRules": {count},
|
|
54
|
-
"calculated": "{level} (≤X entities, ≤Y UCs, ≤Z BRs)"
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Criteria
|
|
60
|
-
|
|
61
|
-
| Criteria | Simple | Medium | Complex |
|
|
62
|
-
|----------|--------|--------|---------|
|
|
63
|
-
| Entities | ≤3 | ≤6 | >6 |
|
|
64
|
-
| Use Cases | ≤5 | ≤12 | >12 |
|
|
65
|
-
| Business Rules | ≤10 | ≤20 | >20 |
|
|
66
|
-
|
|
67
|
-
**Global complexity** = highest complexity across all modules.
|
|
68
|
-
|
|
69
|
-
## Permission Coherence Checks
|
|
70
|
-
|
|
71
|
-
### 3a. Role Consistency
|
|
72
|
-
|
|
73
|
-
Verify all modules use the applicationRoles defined in cadrage:
|
|
74
|
-
```
|
|
75
|
-
FOR each module in completedModules:
|
|
76
|
-
FOR each role in module.specification.permissionMatrix.roles:
|
|
77
|
-
IF role NOT IN cadrage.applicationRoles → ERROR
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### 3b. Permission Path Format
|
|
81
|
-
|
|
82
|
-
Verify all permission paths follow one of these patterns:
|
|
83
|
-
- Module-level: `{app}.{module}.{action}` (3 segments)
|
|
84
|
-
- Section-level: `{app}.{module}.{section}.{action}` (4 segments)
|
|
85
|
-
|
|
86
|
-
Check for:
|
|
87
|
-
- Inconsistent app prefix → ERROR
|
|
88
|
-
- Missing module segment → ERROR
|
|
89
|
-
- Fewer than 3 segments (shortcut paths) → ERROR
|
|
90
|
-
- More than 4 segments → ERROR
|
|
91
|
-
|
|
92
|
-
### 3c. Role Hierarchy Coherence
|
|
93
|
-
|
|
94
|
-
Verify the role hierarchy is respected across all modules:
|
|
95
|
-
```
|
|
96
|
-
Admin ⊃ Manager ⊃ Contributor ⊃ Viewer
|
|
97
|
-
|
|
98
|
-
FOR each module:
|
|
99
|
-
IF Admin has fewer permissions than Manager → ERROR
|
|
100
|
-
IF Manager has fewer permissions than Contributor → ERROR
|
|
101
|
-
IF Contributor has fewer permissions than Viewer → ERROR
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### 3d. Permission Conflicts
|
|
105
|
-
|
|
106
|
-
Detect conflicting permission assignments:
|
|
107
|
-
```json
|
|
108
|
-
{
|
|
109
|
-
"conflicts": [
|
|
110
|
-
{
|
|
111
|
-
"role": "Manager",
|
|
112
|
-
"module1": "Orders",
|
|
113
|
-
"permission1": "sales.orders.approve",
|
|
114
|
-
"module2": "Invoices",
|
|
115
|
-
"permission2": "sales.invoices.approve",
|
|
116
|
-
"issue": "Manager can approve orders but not invoices - is this intentional?"
|
|
117
|
-
}
|
|
118
|
-
]
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### 3e. Permission-Role Coherence Across Modules (WARNING)
|
|
123
|
-
|
|
124
|
-
For each role defined in `cadrage.applicationRoles`, verify the permission PATTERN is consistent across ALL modules:
|
|
125
|
-
|
|
126
|
-
```javascript
|
|
127
|
-
// Build role-to-actions matrix per module
|
|
128
|
-
const roleActions = {};
|
|
129
|
-
for (const module of completedModules) {
|
|
130
|
-
const pm = module.specification.permissionMatrix;
|
|
131
|
-
for (const ra of pm.roleAssignments || []) {
|
|
132
|
-
const key = ra.role;
|
|
133
|
-
if (!roleActions[key]) roleActions[key] = {};
|
|
134
|
-
roleActions[key][module.code] = ra.permissions.map(p => p.split('.').pop()); // extract action
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// Detect inconsistencies: role has action X in module A but not in module B
|
|
139
|
-
for (const [role, modules] of Object.entries(roleActions)) {
|
|
140
|
-
const allActions = new Set(Object.values(modules).flat());
|
|
141
|
-
for (const [mod, actions] of Object.entries(modules)) {
|
|
142
|
-
for (const action of allActions) {
|
|
143
|
-
if (!actions.includes(action)) {
|
|
144
|
-
// Role has this action in other modules but NOT in this one
|
|
145
|
-
const otherMods = Object.entries(modules).filter(([m, a]) => a.includes(action)).map(([m]) => m);
|
|
146
|
-
console.warn(`WARNING: permission-role-coherence: ${role} has "${action}" in [${otherMods.join(', ')}] but NOT in ${mod}`);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
Store as semantic check with severity WARNING (not ERROR — some permission differences may be intentional).
|
|
154
|
-
|
|
155
|
-
## Global Risk Assessment Metrics
|
|
156
|
-
|
|
157
|
-
| Risk | Metric | Threshold | Status |
|
|
158
|
-
|------|--------|-----------|--------|
|
|
159
|
-
| Total entities | {sum across modules} | ≤20 | PASS/WARNING |
|
|
160
|
-
| Total BRs | {sum across modules} | ≤50 | PASS/WARNING |
|
|
161
|
-
| Cross-module dependencies | {edge count} | ≤10 | PASS/WARNING |
|
|
162
|
-
| Shared entities | {count} | ≤5 | PASS/WARNING |
|
|
163
|
-
| E2E flow length | {max steps} | ≤8 | PASS/WARNING |
|
|
164
|
-
| Permission paths | {total} | ≤100 | PASS/WARNING |
|
|
165
|
-
|
|
166
|
-
## E2E Flow Template
|
|
167
|
-
|
|
168
|
-
```json
|
|
169
|
-
{
|
|
170
|
-
"name": "Order to Invoice",
|
|
171
|
-
"steps": [
|
|
172
|
-
{ "module": "Customers", "action": "Customer exists", "permission": "customers.read" },
|
|
173
|
-
{ "module": "Products", "action": "Products selected", "permission": "products.read" },
|
|
174
|
-
{ "module": "Orders", "action": "Order created", "permission": "orders.create" },
|
|
175
|
-
{ "module": "Orders", "action": "Order approved", "permission": "orders.approve" },
|
|
176
|
-
{ "module": "Invoices", "action": "Invoice generated", "permission": "invoices.create" },
|
|
177
|
-
{ "module": "Invoices", "action": "Invoice sent", "permission": "invoices.update" }
|
|
178
|
-
],
|
|
179
|
-
"actors": ["Contributor (create)", "Manager (approve)"],
|
|
180
|
-
"data": "Customer → Order → OrderLines (Products) → Invoice → InvoiceLines"
|
|
181
|
-
}
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## Single-Module Mode Simplifications
|
|
185
|
-
|
|
186
|
-
When only 1 module:
|
|
187
|
-
1. Skip permission coherence check (only one module)
|
|
188
|
-
2. Skip E2E flows (single module)
|
|
189
|
-
3. Execute semantic validation (still required)
|
|
190
|
-
4. Auto-approve global risks (no cross-module complexity)
|
|
1
|
+
# Semantic Validation Checks for Analysis
|
|
2
|
+
|
|
3
|
+
Complete reference for step-04b semantic validation, permission coherence, and complexity assessment.
|
|
4
|
+
|
|
5
|
+
## Semantic Validation Checks (13 checks total)
|
|
6
|
+
|
|
7
|
+
Execute for EACH module feature.json:
|
|
8
|
+
|
|
9
|
+
| # | Check | Rule | Severity |
|
|
10
|
+
|---|-------|------|----------|
|
|
11
|
+
| 1 | Permission orpheline | Every permissionMatrix.permissions[].path is used by at least one useCases[].permission | WARNING |
|
|
12
|
+
| 2 | UC sans FR | Every useCases[].id is referenced by at least one functionalRequirements[].linkedUseCases[] | WARNING |
|
|
13
|
+
| 3 | Entity sans endpoint | Every entities[].name has at least one endpoint in apiEndpoints[] | WARNING |
|
|
14
|
+
| 4 | UC sans scenario | Every useCases[].mainScenario has at least 2 steps | WARNING |
|
|
15
|
+
| 5 | Role sans permissions | Every applicationRole has at least one entry in roleAssignments[] | WARNING |
|
|
16
|
+
| 6 | Navigation sans traduction | Every navigation.entries[].code has translations in 4 languages in seedDataCore.navigationTranslations[] | ERROR |
|
|
17
|
+
| 7 | LifeCycle terminal | Every lifeCycles[].states[] has at least one state with isTerminal: true | WARNING |
|
|
18
|
+
| 8 | Schema conformity | No custom fields outside defined schema (no KPIDefinitions, ChartConfigurations, etc.) | ERROR |
|
|
19
|
+
| 9 | Wireframe coverage | Every navigation section has a corresponding uiWireframes[].screen | ERROR |
|
|
20
|
+
| 10 | Doublon entity | No entity with same name in two different modules (unless shared via dependencyGraph) | ERROR |
|
|
21
|
+
| 11 | Permission fantome | Every action used in applicationRoles pattern (read, create, update, delete, assign, export, approve) MUST exist as a permission path in permissionMatrix.permissions[].action for at least one module | ERROR |
|
|
22
|
+
| 12 | Dashboard coverage | If cadrage mentions dashboard for a module OR navigation includes "dashboard" section, then specification.dashboards[] MUST NOT be empty | WARNING |
|
|
23
|
+
| 13 | Permission-UC alignment | Every permission.action (except "read" and wildcard "*") MUST have at least one UC where that permission is referenced in useCases[].permission | WARNING |
|
|
24
|
+
|
|
25
|
+
## Result Storage Format
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"check": "permission-orpheline",
|
|
30
|
+
"module": "RepairManagement",
|
|
31
|
+
"status": "PASS|WARNING|ERROR",
|
|
32
|
+
"details": "Permission freebike.repairmanagement.export not referenced by any UC",
|
|
33
|
+
"autoFixed": false
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Blocking Rules
|
|
38
|
+
|
|
39
|
+
- 0 ERROR → PASS
|
|
40
|
+
- ≥1 ERROR → BLOCK (fix before handoff, ask user for each)
|
|
41
|
+
- WARNING only → PASS with user notification
|
|
42
|
+
|
|
43
|
+
## Complexity Calculation
|
|
44
|
+
|
|
45
|
+
For each module in feature.json.modules[], calculate:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"complexity": "simple|medium|complex",
|
|
50
|
+
"complexityDetails": {
|
|
51
|
+
"entities": {count},
|
|
52
|
+
"useCases": {count},
|
|
53
|
+
"businessRules": {count},
|
|
54
|
+
"calculated": "{level} (≤X entities, ≤Y UCs, ≤Z BRs)"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Criteria
|
|
60
|
+
|
|
61
|
+
| Criteria | Simple | Medium | Complex |
|
|
62
|
+
|----------|--------|--------|---------|
|
|
63
|
+
| Entities | ≤3 | ≤6 | >6 |
|
|
64
|
+
| Use Cases | ≤5 | ≤12 | >12 |
|
|
65
|
+
| Business Rules | ≤10 | ≤20 | >20 |
|
|
66
|
+
|
|
67
|
+
**Global complexity** = highest complexity across all modules.
|
|
68
|
+
|
|
69
|
+
## Permission Coherence Checks
|
|
70
|
+
|
|
71
|
+
### 3a. Role Consistency
|
|
72
|
+
|
|
73
|
+
Verify all modules use the applicationRoles defined in cadrage:
|
|
74
|
+
```
|
|
75
|
+
FOR each module in completedModules:
|
|
76
|
+
FOR each role in module.specification.permissionMatrix.roles:
|
|
77
|
+
IF role NOT IN cadrage.applicationRoles → ERROR
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 3b. Permission Path Format
|
|
81
|
+
|
|
82
|
+
Verify all permission paths follow one of these patterns:
|
|
83
|
+
- Module-level: `{app}.{module}.{action}` (3 segments)
|
|
84
|
+
- Section-level: `{app}.{module}.{section}.{action}` (4 segments)
|
|
85
|
+
|
|
86
|
+
Check for:
|
|
87
|
+
- Inconsistent app prefix → ERROR
|
|
88
|
+
- Missing module segment → ERROR
|
|
89
|
+
- Fewer than 3 segments (shortcut paths) → ERROR
|
|
90
|
+
- More than 4 segments → ERROR
|
|
91
|
+
|
|
92
|
+
### 3c. Role Hierarchy Coherence
|
|
93
|
+
|
|
94
|
+
Verify the role hierarchy is respected across all modules:
|
|
95
|
+
```
|
|
96
|
+
Admin ⊃ Manager ⊃ Contributor ⊃ Viewer
|
|
97
|
+
|
|
98
|
+
FOR each module:
|
|
99
|
+
IF Admin has fewer permissions than Manager → ERROR
|
|
100
|
+
IF Manager has fewer permissions than Contributor → ERROR
|
|
101
|
+
IF Contributor has fewer permissions than Viewer → ERROR
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 3d. Permission Conflicts
|
|
105
|
+
|
|
106
|
+
Detect conflicting permission assignments:
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"conflicts": [
|
|
110
|
+
{
|
|
111
|
+
"role": "Manager",
|
|
112
|
+
"module1": "Orders",
|
|
113
|
+
"permission1": "sales.orders.approve",
|
|
114
|
+
"module2": "Invoices",
|
|
115
|
+
"permission2": "sales.invoices.approve",
|
|
116
|
+
"issue": "Manager can approve orders but not invoices - is this intentional?"
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 3e. Permission-Role Coherence Across Modules (WARNING)
|
|
123
|
+
|
|
124
|
+
For each role defined in `cadrage.applicationRoles`, verify the permission PATTERN is consistent across ALL modules:
|
|
125
|
+
|
|
126
|
+
```javascript
|
|
127
|
+
// Build role-to-actions matrix per module
|
|
128
|
+
const roleActions = {};
|
|
129
|
+
for (const module of completedModules) {
|
|
130
|
+
const pm = module.specification.permissionMatrix;
|
|
131
|
+
for (const ra of pm.roleAssignments || []) {
|
|
132
|
+
const key = ra.role;
|
|
133
|
+
if (!roleActions[key]) roleActions[key] = {};
|
|
134
|
+
roleActions[key][module.code] = ra.permissions.map(p => p.split('.').pop()); // extract action
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// Detect inconsistencies: role has action X in module A but not in module B
|
|
139
|
+
for (const [role, modules] of Object.entries(roleActions)) {
|
|
140
|
+
const allActions = new Set(Object.values(modules).flat());
|
|
141
|
+
for (const [mod, actions] of Object.entries(modules)) {
|
|
142
|
+
for (const action of allActions) {
|
|
143
|
+
if (!actions.includes(action)) {
|
|
144
|
+
// Role has this action in other modules but NOT in this one
|
|
145
|
+
const otherMods = Object.entries(modules).filter(([m, a]) => a.includes(action)).map(([m]) => m);
|
|
146
|
+
console.warn(`WARNING: permission-role-coherence: ${role} has "${action}" in [${otherMods.join(', ')}] but NOT in ${mod}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Store as semantic check with severity WARNING (not ERROR — some permission differences may be intentional).
|
|
154
|
+
|
|
155
|
+
## Global Risk Assessment Metrics
|
|
156
|
+
|
|
157
|
+
| Risk | Metric | Threshold | Status |
|
|
158
|
+
|------|--------|-----------|--------|
|
|
159
|
+
| Total entities | {sum across modules} | ≤20 | PASS/WARNING |
|
|
160
|
+
| Total BRs | {sum across modules} | ≤50 | PASS/WARNING |
|
|
161
|
+
| Cross-module dependencies | {edge count} | ≤10 | PASS/WARNING |
|
|
162
|
+
| Shared entities | {count} | ≤5 | PASS/WARNING |
|
|
163
|
+
| E2E flow length | {max steps} | ≤8 | PASS/WARNING |
|
|
164
|
+
| Permission paths | {total} | ≤100 | PASS/WARNING |
|
|
165
|
+
|
|
166
|
+
## E2E Flow Template
|
|
167
|
+
|
|
168
|
+
```json
|
|
169
|
+
{
|
|
170
|
+
"name": "Order to Invoice",
|
|
171
|
+
"steps": [
|
|
172
|
+
{ "module": "Customers", "action": "Customer exists", "permission": "customers.read" },
|
|
173
|
+
{ "module": "Products", "action": "Products selected", "permission": "products.read" },
|
|
174
|
+
{ "module": "Orders", "action": "Order created", "permission": "orders.create" },
|
|
175
|
+
{ "module": "Orders", "action": "Order approved", "permission": "orders.approve" },
|
|
176
|
+
{ "module": "Invoices", "action": "Invoice generated", "permission": "invoices.create" },
|
|
177
|
+
{ "module": "Invoices", "action": "Invoice sent", "permission": "invoices.update" }
|
|
178
|
+
],
|
|
179
|
+
"actors": ["Contributor (create)", "Manager (approve)"],
|
|
180
|
+
"data": "Customer → Order → OrderLines (Products) → Invoice → InvoiceLines"
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Single-Module Mode Simplifications
|
|
185
|
+
|
|
186
|
+
When only 1 module:
|
|
187
|
+
1. Skip permission coherence check (only one module)
|
|
188
|
+
2. Skip E2E flows (single module)
|
|
189
|
+
3. Execute semantic validation (still required)
|
|
190
|
+
4. Auto-approve global risks (no cross-module complexity)
|