@atlashub/smartstack-cli 3.39.0 → 3.40.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.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 +84 -84
- package/templates/agents/efcore/db-deploy.md +74 -74
- package/templates/agents/efcore/db-reset.md +85 -85
- package/templates/agents/efcore/db-seed.md +61 -61
- package/templates/agents/efcore/db-status.md +86 -86
- package/templates/agents/efcore/migration.md +186 -186
- package/templates/agents/efcore/rebase-snapshot.md +108 -108
- package/templates/agents/efcore/scan.md +92 -92
- package/templates/agents/efcore/squash.md +161 -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 +167 -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 +94 -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,506 +1,506 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: step-03a1-setup
|
|
3
|
-
description: Module setup, sections walkthrough, questionnaires, and cross-module references
|
|
4
|
-
model: opus
|
|
5
|
-
next_step: steps/step-03a2-analysis.md
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
> **Context files:** `_shared.md` | `_elicitation.md` | `_architecture.md` | `_module-loop.md`
|
|
9
|
-
> **Reference (5-bis):** `references/entity-architecture-decision.md` — Entity scoring, domain coherence, section patterns
|
|
10
|
-
|
|
11
|
-
# Step 3a1: Setup - Module Initialization
|
|
12
|
-
|
|
13
|
-
## MANDATORY EXECUTION RULES
|
|
14
|
-
|
|
15
|
-
- ALWAYS use ULTRATHINK mode
|
|
16
|
-
- This step is EXECUTED ONCE PER MODULE in topological dependency order
|
|
17
|
-
- ALWAYS check workflow state to determine current module
|
|
18
|
-
- ALWAYS reference completed modules when specifying current one
|
|
19
|
-
- **MANDATORY:** Generate and validate an ASCII/SVG mockup for EVERY section (not optional)
|
|
20
|
-
- ALL questions via AskUserQuestion tool
|
|
21
|
-
- ALL communication in `{language}`
|
|
22
|
-
- NEVER skip per-module validation
|
|
23
|
-
- **ID NAMING RULE (MANDATORY, NO EXCEPTION):**
|
|
24
|
-
All IDs MUST include a module prefix to guarantee application-wide uniqueness.
|
|
25
|
-
The prefix is derived from the module code initials (2-4 chars):
|
|
26
|
-
UserManagement → UM | VehicleManagement → VM | PartsInventory → PI
|
|
27
|
-
RepairManagement → RM | MaintenanceSchedule → MS | DataSync → DS
|
|
28
|
-
Notifications → NT | Dashboard → DB | Orders → OR | Customers → CU
|
|
29
|
-
|
|
30
|
-
Patterns:
|
|
31
|
-
UC-{PREFIX}-{NNN} → UC-RM-001, UC-PI-003
|
|
32
|
-
BR-{CAT}-{PREFIX}-{NNN} → BR-VAL-RM-001, BR-CALC-PI-002
|
|
33
|
-
FR-{PREFIX}-{NNN} → FR-RM-001
|
|
34
|
-
OBJ-{PREFIX}-{NNN} → OBJ-RM-001
|
|
35
|
-
AC-{PREFIX}-{NNN} → AC-RM-001
|
|
36
|
-
RISK-{PREFIX}-{NNN} → RISK-RM-001
|
|
37
|
-
|
|
38
|
-
NEVER use bare IDs (UC-001, BR-VAL-001) in multi-module mode.
|
|
39
|
-
- **SCHEMA CONFORMITY RULE:**
|
|
40
|
-
ALL data MUST fit within the defined feature-schema.json structure.
|
|
41
|
-
NEVER create custom top-level fields (KPIDefinitions, ChartConfigurations, etc.)
|
|
42
|
-
Dashboard modules MUST use specification.dashboards[] (it exists in the schema).
|
|
43
|
-
If truly needed, use specification.extensions: {} (additionalProperties: true).
|
|
44
|
-
|
|
45
|
-
## MODE DETECTION
|
|
46
|
-
|
|
47
|
-
**Check your execution context before proceeding:**
|
|
48
|
-
|
|
49
|
-
**IF you are running as a TEAM AGENT** (you received a module-specifier prompt from `references/agent-module-prompt.md`):
|
|
50
|
-
→ You are in **AUTONOMOUS mode** (Propose & Review)
|
|
51
|
-
→ Do NOT use `AskUserQuestion` — you PROPOSE, the team lead handles user interaction
|
|
52
|
-
→ Replace ALL `AskUserQuestion` calls with **ULTRATHINK autonomous decisions**
|
|
53
|
-
→ Use the decomposition data + completed module summaries to make informed choices
|
|
54
|
-
→ After completing all steps (03a1 → 03a2 → 03b → 03c → 03d): send `PROPOSAL_READY` to team lead
|
|
55
|
-
→ See `references/agent-module-prompt.md` for autonomous decision rules
|
|
56
|
-
→ See `references/team-orchestration.md` § 3 for communication protocol
|
|
57
|
-
|
|
58
|
-
**IF you are running in the MAIN CONVERSATION** (classic inline mode):
|
|
59
|
-
→ Normal interactive mode — use `AskUserQuestion` as documented below
|
|
60
|
-
→ No `SendMessage` calls needed
|
|
61
|
-
|
|
62
|
-
**How to detect:** If your prompt contains `PROPOSE & REVIEW` or `team-lead` as recipient, you are a team agent.
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## YOUR TASK
|
|
67
|
-
|
|
68
|
-
Specify one module's data model and business logic: walk through sections, define entities, business rules, and validate with client before proceeding to UI specification.
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## EXECUTION SEQUENCE
|
|
73
|
-
|
|
74
|
-
### 1. Determine Current Module
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
ba-reader.readApplicationContext({feature_id})
|
|
78
|
-
→ Read metadata.workflow: moduleOrder, currentModuleIndex, completedModules
|
|
79
|
-
→ currentModule = moduleOrder[currentModuleIndex]
|
|
80
|
-
→ Display: "═══ Module {currentModuleIndex + 1}/{moduleOrder.length}: {currentModule} ═══"
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
IF module already specified (status = "specified" in master):
|
|
84
|
-
Increment currentModuleIndex, re-check
|
|
85
|
-
IF all modules specified → Load step-04a-collect.md, STOP
|
|
86
|
-
|
|
87
|
-
### 1b. Cache Warming for Module Loop (FIRST MODULE ONLY)
|
|
88
|
-
|
|
89
|
-
> **Performance Optimization:** Pre-load module specification references to reduce redundant reads across all modules.
|
|
90
|
-
> This step runs ONLY for the FIRST module (currentModuleIndex = 0), not repeated for subsequent modules.
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
IF currentModuleIndex === 0:
|
|
94
|
-
// Pre-load module specification references (Bucket 3)
|
|
95
|
-
const moduleRefs = [
|
|
96
|
-
"~/.claude/skills/business-analyse/references/spec-auto-inference.md",
|
|
97
|
-
"~/.claude/skills/business-analyse/references/ui-resource-cards.md",
|
|
98
|
-
"~/.claude/skills/business-analyse/references/ui-dashboard-spec.md",
|
|
99
|
-
"~/.claude/skills/business-analyse/references/cadrage-pre-analysis.md"
|
|
100
|
-
];
|
|
101
|
-
|
|
102
|
-
for (const file of moduleRefs) {
|
|
103
|
-
read(file); // Pre-load into cache
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
Display: "✓ Cache warmed: module specification references (23KB, 4 files)"
|
|
107
|
-
Display: " Expected token savings: 75% reduction in reference reads across module loop"
|
|
108
|
-
Display: " Retention: until step-04 (after all modules specified)"
|
|
109
|
-
ELSE:
|
|
110
|
-
// Subsequent modules use cached references (no re-load)
|
|
111
|
-
Display: "✓ Using cached module references (from first module)"
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
**Rationale:**
|
|
115
|
-
|
|
116
|
-
- Module specification references are read 2-3× PER MODULE (5 modules = 10-15 reads without caching)
|
|
117
|
-
- Pre-loading once at start of module loop eliminates 75% of redundant reads
|
|
118
|
-
- Token savings: ~10,000 tokens for a 5-module application
|
|
119
|
-
- Cache retained until step-04 (when consolidation starts, references no longer needed)
|
|
120
|
-
|
|
121
|
-
See [references/cache-warming-strategy.md](../references/cache-warming-strategy.md) § Bucket 3 for details.
|
|
122
|
-
|
|
123
|
-
### 2. Initialize Module Feature.json
|
|
124
|
-
|
|
125
|
-
```
|
|
126
|
-
// Create or load module-level feature.json
|
|
127
|
-
ba-writer.create({
|
|
128
|
-
scope: "module",
|
|
129
|
-
applicationRef: {feature_id},
|
|
130
|
-
moduleCode: {currentModule.code},
|
|
131
|
-
path: "docs/{app}/{module_code}/business-analyse/v1.0/feature.json"
|
|
132
|
-
})
|
|
133
|
-
|
|
134
|
-
// Inherit application roles from master
|
|
135
|
-
ba-reader.readApplicationContext({feature_id})
|
|
136
|
-
→ Copy cadrage.applicationRoles → module.applicationContext.applicationRoles
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
// Update module status in master: "pending" → "in-progress"
|
|
140
|
-
ba-writer.updateModuleStatus({feature_id}, {currentModule.code}, "in-progress")
|
|
141
|
-
|
|
142
|
-
### 2-ter. Derive Module Discovery Section (MANDATORY)
|
|
143
|
-
|
|
144
|
-
> **The module feature.json MUST have a `discovery` section.** In multi-module mode, derive it from the parent application's `cadrage`. In single-module mode, it should already exist from step-01.
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
ba-reader.readApplicationContext({feature_id})
|
|
148
|
-
→ Read cadrage: problem, asIs, toBe, trigger, stakeholders, risks, acceptanceCriteria
|
|
149
|
-
|
|
150
|
-
// Filter to this module's scope
|
|
151
|
-
moduleScope = cadrage.coverageMatrix.filter(cm => cm.module === currentModule.code)
|
|
152
|
-
moduleStakeholders = cadrage.stakeholders.filter(s => s.tasks relevant to this module)
|
|
153
|
-
moduleRisks = cadrage.risks.filter(r => r related to this module)
|
|
154
|
-
|
|
155
|
-
ba-writer.enrichSection({
|
|
156
|
-
featureId: {module_feature_id},
|
|
157
|
-
section: "discovery",
|
|
158
|
-
data: {
|
|
159
|
-
problem: cadrage.problem,
|
|
160
|
-
asIs: cadrage.asIs,
|
|
161
|
-
toBe: cadrage.toBe,
|
|
162
|
-
trigger: cadrage.trigger,
|
|
163
|
-
stakeholders: moduleStakeholders,
|
|
164
|
-
scope: {
|
|
165
|
-
mustHave: moduleScope.filter(s => s.category === "mustHave").map(s => s.item),
|
|
166
|
-
shouldHave: moduleScope.filter(s => s.category === "shouldHave").map(s => s.item),
|
|
167
|
-
couldHave: moduleScope.filter(s => s.category === "couldHave").map(s => s.item),
|
|
168
|
-
outOfScope: []
|
|
169
|
-
},
|
|
170
|
-
risks: moduleRisks,
|
|
171
|
-
acceptanceCriteria: cadrage.acceptanceCriteria.filter(ac => relevant to module),
|
|
172
|
-
codebaseContext: cadrage.codebaseContext
|
|
173
|
-
}
|
|
174
|
-
})
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
> **STRUCTURE CARD: discovery** — Same format as cadrage but module-scoped.
|
|
178
|
-
> Fields: `problem`, `asIs`, `toBe`, `trigger`, `stakeholders[]`, `scope{}`, `risks[]`, `acceptanceCriteria[]`, `codebaseContext`, `openQuestions[]`
|
|
179
|
-
|
|
180
|
-
### 2-bis. Coverage Verification (MANDATORY)
|
|
181
|
-
|
|
182
|
-
> **Before specifying any module, verify that the coverageMatrix from cadrage covers this module.**
|
|
183
|
-
|
|
184
|
-
```
|
|
185
|
-
ba-reader.readApplicationContext({feature_id})
|
|
186
|
-
→ Read cadrage.coverageMatrix[]
|
|
187
|
-
→ Filter entries where module = {currentModule.code}
|
|
188
|
-
→ Group by category: mustHave, shouldHave, couldHave
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
Display to client:
|
|
192
|
-
```
|
|
193
|
-
Module {currentModule}: Coverage from original brief
|
|
194
|
-
|
|
195
|
-
| # | Requirement | Category |
|
|
196
|
-
|---|-------------|----------|
|
|
197
|
-
| 1 | {item} | {category} |
|
|
198
|
-
| ... | ... | ... |
|
|
199
|
-
|
|
200
|
-
Total: {N} requirements mapped to this module
|
|
201
|
-
- Must-have: {count}
|
|
202
|
-
- Should-have: {count}
|
|
203
|
-
- Could-have: {count}
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
**VALIDATION:** If mustHave count = 0 AND module is in must priority:
|
|
207
|
-
→ WARNING: "Module {currentModule} is must-priority but has no must-have requirements in coverageMatrix. Verify cadrage coverage."
|
|
208
|
-
|
|
209
|
-
**POST-SPECIFICATION CHECK (at end of module, before advancing):**
|
|
210
|
-
For EACH mustHave item in coverageMatrix for this module:
|
|
211
|
-
→ Verify at least 1 UC exists that covers this requirement
|
|
212
|
-
→ If uncovered: BLOCK and ask client to either add a UC or reclassify the requirement
|
|
213
|
-
|
|
214
|
-
### 3. Section Walkthrough with Client
|
|
215
|
-
|
|
216
|
-
> **This is the key interactive phase aligned with the 4-level SmartStack hierarchy.**
|
|
217
|
-
> Level 2 = Module, Level 3 = Section, Level 4 = Resource
|
|
218
|
-
|
|
219
|
-
#### 3a. Identify Module Sections
|
|
220
|
-
|
|
221
|
-
For each module, propose standard sections based on module type:
|
|
222
|
-
|
|
223
|
-
> **RULE:** Sections = functional zones only. `list` is ALWAYS present (default).
|
|
224
|
-
> `create`/`edit` = separate pages with own URL routes (`/create` and `/:id/edit`). `detail` = tabbed page from list click.
|
|
225
|
-
|
|
226
|
-
| Module Type | Sections (functional zones) | Detail page tabs (from list click) |
|
|
227
|
-
|-------------|---------------------------|-----------------------------------|
|
|
228
|
-
| data-centric | list | Infos, {relations} |
|
|
229
|
-
| workflow | list, approve | Infos, {relations}, Historique |
|
|
230
|
-
| integration | list | Infos, Config, Logs, Sync |
|
|
231
|
-
| reporting | dashboard | — |
|
|
232
|
-
| full-module | list, dashboard, approve | Infos, {relations}, Historique |
|
|
233
|
-
|
|
234
|
-
**Section `list` is automatic and ALWAYS included.** Ask ONLY about additional functional sections:
|
|
235
|
-
|
|
236
|
-
Ask via AskUserQuestion:
|
|
237
|
-
|
|
238
|
-
```
|
|
239
|
-
question: "{language == 'fr'
|
|
240
|
-
? 'Le module {currentModule} aura une page liste (avec création et détail par onglets). Quelles sections fonctionnelles supplémentaires souhaitez-vous ?'
|
|
241
|
-
: 'Module {currentModule} will have a list page (with create and tabbed detail). Which additional functional sections do you want?'}"
|
|
242
|
-
header: "Sections"
|
|
243
|
-
multiSelect: true
|
|
244
|
-
options:
|
|
245
|
-
- label: "Dashboard"
|
|
246
|
-
description: "{language == 'fr' ? 'Tableau de bord avec KPIs, graphiques et métriques clés' : 'Dashboard with KPIs, charts and key metrics'}"
|
|
247
|
-
- label: "Validation/Approbation"
|
|
248
|
-
description: "{language == 'fr' ? 'File d\'approbation avec workflow de changement de statut' : 'Approval queue with status change workflow'}"
|
|
249
|
-
- label: "Import en masse"
|
|
250
|
-
description: "{language == 'fr' ? 'Import CSV/Excel avec mapping et validation' : 'CSV/Excel import with mapping and validation'}"
|
|
251
|
-
- label: "{language == 'fr' ? 'Aucune (liste seule)' : 'None (list only)'}"
|
|
252
|
-
description: "{language == 'fr' ? 'Le module n\'a besoin que de la page liste avec détail' : 'Module only needs the list page with detail'}"
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
#### 3a-depth. Determine Specification Depth
|
|
256
|
-
|
|
257
|
-
> **Based on module complexity and type, determine how deeply to specify sections and resources.**
|
|
258
|
-
> **This avoids over-specifying simple modules and under-specifying complex ones.**
|
|
259
|
-
|
|
260
|
-
Read from application master:
|
|
261
|
-
```
|
|
262
|
-
ba-reader.readApplicationContext({feature_id})
|
|
263
|
-
→ module = modules.find(m => m.code === currentModule)
|
|
264
|
-
→ complexity = module.estimatedComplexity // simple | medium | complex
|
|
265
|
-
→ featureType = module.featureType // data-centric | workflow | integration | reporting | full-module
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
**Depth decision matrix:**
|
|
269
|
-
|
|
270
|
-
| Complexity | featureType | Depth | Behavior |
|
|
271
|
-
|---|---|---|---|
|
|
272
|
-
| simple | data-centric | **convention** | Auto-generate sections + resources from entities. Quick client validation. |
|
|
273
|
-
| simple | reporting | **convention** | Standard dashboard template. Quick validation. |
|
|
274
|
-
| simple | * | **convention** | Standard sections for featureType. Quick validation. |
|
|
275
|
-
| medium | data-centric | **override** | Auto-generate then ask client which sections to customize. |
|
|
276
|
-
| medium | workflow | **full** | State machine required → always full. |
|
|
277
|
-
| medium | * | **override** | Auto-generate then ask client to customize. |
|
|
278
|
-
| complex | * | **full** | Full specification: state machine, typed columns, conditional actions. |
|
|
279
|
-
| * | workflow | **full** | Always full for workflow modules (state machine is mandatory). |
|
|
280
|
-
|
|
281
|
-
Display to client:
|
|
282
|
-
```
|
|
283
|
-
"Module {currentModule}: complexité {complexity}, type {featureType} → profondeur: {depth}"
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
**IF depth = convention:**
|
|
287
|
-
- Execute 3a-infer (auto-inference) → generates sections + resources
|
|
288
|
-
- Execute 3b (wireframes) for each section
|
|
289
|
-
- Skip 3a-bis detailed walkthrough → present auto-generated spec for quick validation
|
|
290
|
-
- Ask client: "La spécification auto-générée convient-elle, ou souhaitez-vous personnaliser certaines sections ?"
|
|
291
|
-
- If client says OK → proceed to step 4 (questionnaires)
|
|
292
|
-
- If client wants changes → switch to **override** for specified sections
|
|
293
|
-
|
|
294
|
-
**IF depth = override:**
|
|
295
|
-
- Execute 3a-infer (auto-inference) → generates base sections + resources
|
|
296
|
-
- Ask client: "Quelles sections souhaitez-vous personnaliser ?"
|
|
297
|
-
- For selected sections → execute full 3a-bis + 3b + 3b-ter
|
|
298
|
-
- For other sections → keep auto-generated spec
|
|
299
|
-
|
|
300
|
-
**IF depth = full:**
|
|
301
|
-
- Execute standard flow: 3a-bis → 3b → 3b-bis → 3b-ter → 3c → 3d (as currently defined below)
|
|
302
|
-
- PLUS: 3a-state (state machine definition) for entities with status fields
|
|
303
|
-
|
|
304
|
-
#### 3a-infer. Auto-Infer Resources from Entities (Convention/Override)
|
|
305
|
-
|
|
306
|
-
> **For convention and override depths, auto-generate resource details from entity definitions.**
|
|
307
|
-
> **The goal: produce a complete spec without manual input, that the client only validates.**
|
|
308
|
-
|
|
309
|
-
**Prerequisites:** Entity attributes must be defined (from step 6) OR anticipated from decomposition.
|
|
310
|
-
|
|
311
|
-
See [references/spec-auto-inference.md](../references/spec-auto-inference.md) for complete inference rules:
|
|
312
|
-
- Entity attribute → SmartTable column mapping (9 type rules)
|
|
313
|
-
- Entity attribute → SmartForm field mapping (8 type rules)
|
|
314
|
-
- Auto-generated sections per featureType (5 types)
|
|
315
|
-
- Component generation rules (list section, create/edit form pages with own routes, detail page with tabs, dashboard section)
|
|
316
|
-
- Status/lifecycle enhancement rules
|
|
317
|
-
|
|
318
|
-
Write auto-generated sections to `specification.sections[]` via ba-writer.enrichSection()
|
|
319
|
-
|
|
320
|
-
### 4. Conditional Questionnaires
|
|
321
|
-
|
|
322
|
-
Based on module type, load questionnaires per-module:
|
|
323
|
-
|
|
324
|
-
| Condition | Category | Questionnaire |
|
|
325
|
-
|-----------|----------|---------------|
|
|
326
|
-
| Always | 04 | `questionnaire/04-data.md` |
|
|
327
|
-
| Has UI sections | 07 | `questionnaire/07-ui.md` |
|
|
328
|
-
| Has lifecycle | 11 | `questionnaire/11-data-lifecycle.md` |
|
|
329
|
-
| Has migration needs | 12 | `questionnaire/12-migration.md` |
|
|
330
|
-
| References other modules | 13 | `questionnaire/13-cross-module.md` |
|
|
331
|
-
| Documentation needed | 10 | `questionnaire/10-documentation.md` |
|
|
332
|
-
|
|
333
|
-
Ask via AskUserQuestion, 1-2 batches per category.
|
|
334
|
-
|
|
335
|
-
#### Store Documentation Requirements
|
|
336
|
-
|
|
337
|
-
If questionnaire 10 was loaded, persist answers in feature.json:
|
|
338
|
-
|
|
339
|
-
```
|
|
340
|
-
ba-writer.enrichSection({
|
|
341
|
-
featureId: {feature_id},
|
|
342
|
-
section: "documentation",
|
|
343
|
-
data: {
|
|
344
|
-
userDocRequired: {Q10.1 answer == "Yes"},
|
|
345
|
-
techDocRequired: {Q10.2 answer == "Yes"},
|
|
346
|
-
status: "pending"
|
|
347
|
-
}
|
|
348
|
-
})
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
This data will be consumed by `/application` step-08 to auto-generate in-app documentation.
|
|
352
|
-
|
|
353
|
-
### 5. Cross-Module References
|
|
354
|
-
|
|
355
|
-
> Reference completed modules to help define current one.
|
|
356
|
-
|
|
357
|
-
```
|
|
358
|
-
completedModules = ba-reader.getCompletedModulesSummary({feature_id})
|
|
359
|
-
→ Returns max 100 lines summary: entity names, key BRs, permissions
|
|
360
|
-
|
|
361
|
-
Display: "Modules déjà spécifiés : {completedModules.map(m => m.code).join(', ')}"
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
For each completed module's entities, ask:
|
|
365
|
-
|
|
366
|
-
```
|
|
367
|
-
question: "Le module {currentModule} référence-t-il des entités de {completedModule} ?"
|
|
368
|
-
header: "Références"
|
|
369
|
-
multiSelect: true
|
|
370
|
-
options:
|
|
371
|
-
- label: "{Entity1} (FK)"
|
|
372
|
-
description: "Référence directe via clé étrangère"
|
|
373
|
-
- label: "{Entity2} (Lookup)"
|
|
374
|
-
description: "Table de référence / lookup"
|
|
375
|
-
- label: "Aucune"
|
|
376
|
-
description: "Pas de référence à {completedModule}"
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
#### 5-bis. Unresolved Entity Dependencies (New Module Detection)
|
|
380
|
-
|
|
381
|
-
> **When an entity reference is detected that does NOT belong to any completed or planned module, apply the SAME intelligent Entity Sourcing Pattern as step-01-cadrage (section 4d-bis).**
|
|
382
|
-
> **Reference:** Load [references/entity-architecture-decision.md](../references/entity-architecture-decision.md) for scoring grid, decision tree, and section patterns.
|
|
383
|
-
|
|
384
|
-
For each entity referenced by {currentModule} that is NOT covered by any existing/planned module:
|
|
385
|
-
|
|
386
|
-
##### A. ULTRATHINK: Silent Analysis (NO output to client)
|
|
387
|
-
|
|
388
|
-
> **Same intelligence as cadrage 4d-bis. Score the entity, assess domain coherence, recommend.**
|
|
389
|
-
|
|
390
|
-
```
|
|
391
|
-
ULTRATHINK — Entity Architecture Analysis for {entity_name} (discovered during specification of {currentModule}):
|
|
392
|
-
|
|
393
|
-
1. DOMAIN COHERENCE
|
|
394
|
-
- Application domain: {app_description}
|
|
395
|
-
- Entity fit: CORE | SUPPORT | PERIPHERAL
|
|
396
|
-
- Justification: {1 sentence}
|
|
397
|
-
|
|
398
|
-
2. ENTITY SCORING (5 criteria, 0-3 each — from scoring grid in reference)
|
|
399
|
-
- Lifecycle: {score}/3
|
|
400
|
-
- Actors: {score}/3
|
|
401
|
-
- Relations: {score}/3
|
|
402
|
-
- Volume: {score}/3
|
|
403
|
-
- Autonomy: {score}/3
|
|
404
|
-
- TOTAL: {total}/15 → {classification}
|
|
405
|
-
|
|
406
|
-
3. PRE-CLASSIFICATION CHECK (from entity patterns in reference, section 10 of suggestion-catalog)
|
|
407
|
-
- Match? → {yes: which pattern | no: use scoring}
|
|
408
|
-
|
|
409
|
-
4. RECOMMENDATION
|
|
410
|
-
- Option: {in_this_module | new_module | external_system | config_list}
|
|
411
|
-
- Confidence: HIGH | MEDIUM | LOW
|
|
412
|
-
- Reasoning: {1-2 sentences}
|
|
413
|
-
|
|
414
|
-
5. IF recommendation = new_module → PRE-BUILD ARCHITECTURE
|
|
415
|
-
- Module code: {PascalCase}
|
|
416
|
-
- Section `list` + detail page tabs
|
|
417
|
-
- Additional sections (ONLY functional zones)
|
|
418
|
-
- Impact on dependency graph
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
##### B. Present Analysis & Recommendation
|
|
422
|
-
|
|
423
|
-
**BEFORE AskUserQuestion, display as markdown:**
|
|
424
|
-
|
|
425
|
-
```
|
|
426
|
-
### {language == "fr" ? "Analyse" : "Analysis"} : {entity_plural}
|
|
427
|
-
|
|
428
|
-
{language == "fr"
|
|
429
|
-
? "Pendant la spécification de **{currentModule}**, j'ai détecté une référence aux **{entity_plural}** qui ne font partie d'aucun module existant."
|
|
430
|
-
: "During specification of **{currentModule}**, I detected a reference to **{entity_plural}** not covered by any existing module."}
|
|
431
|
-
|
|
432
|
-
{language == "fr" ? "**Mon analyse :**" : "**My analysis:**"}
|
|
433
|
-
- {language == "fr" ? "Cohérence domaine" : "Domain coherence"} : **{CORE|SUPPORT|PERIPHERAL}** — {justification}
|
|
434
|
-
- {language == "fr" ? "Score de complexité" : "Complexity score"} : **{score}/15** ({classification})
|
|
435
|
-
- **{language == "fr" ? "Recommandation" : "Recommendation"}** : **{recommended_option}** — {reasoning}
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
**IF recommendation = new_module AND confidence >= MEDIUM, ALSO display the architecture proposal** (same format as cadrage 4d-bis Phase 2: Application/Module table + Sections table + Detail tabs table + Impact).
|
|
439
|
-
|
|
440
|
-
##### C. Ask with Recommended Option First
|
|
441
|
-
|
|
442
|
-
```
|
|
443
|
-
question: "{language == 'fr'
|
|
444
|
-
? 'Comment souhaitez-vous gérer les {entity_plural} ?'
|
|
445
|
-
: 'How do you want to manage {entity_plural}?'}"
|
|
446
|
-
header: "{entity_name}"
|
|
447
|
-
options:
|
|
448
|
-
(ORDER: recommended option FIRST with "(Recommandé)"/"(Recommended)", then remaining 3)
|
|
449
|
-
|
|
450
|
-
IF recommendation = new_module:
|
|
451
|
-
- label: "{language == 'fr' ? 'Nouveau module dédié (Recommandé)' : 'New dedicated module (Recommended)'}"
|
|
452
|
-
description: "{language == 'fr'
|
|
453
|
-
? 'Module {ModuleCode} avec page liste, détail par onglets, permissions dédiées'
|
|
454
|
-
: '{ModuleCode} module with list page, tabbed detail, dedicated permissions'}"
|
|
455
|
-
- label: "{language == 'fr' ? 'Dans ce module' : 'In this module'}"
|
|
456
|
-
description: "{language == 'fr'
|
|
457
|
-
? 'Onglet dans la page détail de {currentModule}'
|
|
458
|
-
: 'Tab in {currentModule} detail page'}"
|
|
459
|
-
- label: "{language == 'fr' ? 'Système externe' : 'External system'}"
|
|
460
|
-
description: "..."
|
|
461
|
-
- label: "{language == 'fr' ? 'Liste de référence' : 'Reference list'}"
|
|
462
|
-
description: "..."
|
|
463
|
-
|
|
464
|
-
IF recommendation = config_list:
|
|
465
|
-
- label: "{language == 'fr' ? 'Liste de référence (Recommandé)' : 'Reference list (Recommended)'}"
|
|
466
|
-
description: "{language == 'fr'
|
|
467
|
-
? 'Table de lookup configurable par l\'admin'
|
|
468
|
-
: 'Admin-configurable lookup table'}"
|
|
469
|
-
- (3 remaining options in logical order)
|
|
470
|
-
|
|
471
|
-
IF recommendation = in_this_module:
|
|
472
|
-
- label: "{language == 'fr' ? 'Dans ce module (Recommandé)' : 'In this module (Recommended)'}"
|
|
473
|
-
description: "{language == 'fr'
|
|
474
|
-
? 'Onglet dans la page détail de {currentModule}'
|
|
475
|
-
: 'Tab in {currentModule} detail page'}"
|
|
476
|
-
- (3 remaining options)
|
|
477
|
-
|
|
478
|
-
IF confidence = LOW:
|
|
479
|
-
(all 4 options in neutral order, NO "(Recommandé)" tag)
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
##### D. Process Answer
|
|
483
|
-
|
|
484
|
-
| Choice | Action |
|
|
485
|
-
|--------|--------|
|
|
486
|
-
| **Dans ce module** | Entity becomes a sub-entity of {currentModule}. Add as a **tab in the detail page**. Add to this module's `analysis.entities[]`. |
|
|
487
|
-
| **Nouveau module dédié** | Add new module to master `modules[]` via ba-writer with proposed architecture (sections, detail tabs, dependencies). The `list` section is ALWAYS the main section. Additional sections ONLY for functional zones. |
|
|
488
|
-
| **Système externe** | Flag for integration. Add to `coverageMatrix` as integration. |
|
|
489
|
-
| **Liste de référence** | Lookup table, admin-managed. No module, no section. |
|
|
490
|
-
|
|
491
|
-
**IF "Nouveau module dédié" is selected:**
|
|
492
|
-
1. Add new module to master `modules[]` via ba-writer (status: "pending", sortOrder: after current module)
|
|
493
|
-
2. Update dependency graph: current module depends on the new module
|
|
494
|
-
3. **Display:**
|
|
495
|
-
```
|
|
496
|
-
"{language == 'fr'
|
|
497
|
-
? '⚠ Nouveau module {ModuleCode} ajouté au graphe de dépendances. Il sera spécifié après {currentModule}.'
|
|
498
|
-
: '⚠ New module {ModuleCode} added to dependency graph. It will be specified after {currentModule}.'}"
|
|
499
|
-
```
|
|
500
|
-
4. Update `metadata.workflow.moduleOrder` to include the new module (inserted after its dependents)
|
|
501
|
-
|
|
502
|
-
---
|
|
503
|
-
|
|
504
|
-
## NEXT STEP
|
|
505
|
-
|
|
506
|
-
Load: `./step-03a2-analysis.md`
|
|
1
|
+
---
|
|
2
|
+
name: step-03a1-setup
|
|
3
|
+
description: Module setup, sections walkthrough, questionnaires, and cross-module references
|
|
4
|
+
model: opus
|
|
5
|
+
next_step: steps/step-03a2-analysis.md
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
> **Context files:** `_shared.md` | `_elicitation.md` | `_architecture.md` | `_module-loop.md`
|
|
9
|
+
> **Reference (5-bis):** `references/entity-architecture-decision.md` — Entity scoring, domain coherence, section patterns
|
|
10
|
+
|
|
11
|
+
# Step 3a1: Setup - Module Initialization
|
|
12
|
+
|
|
13
|
+
## MANDATORY EXECUTION RULES
|
|
14
|
+
|
|
15
|
+
- ALWAYS use ULTRATHINK mode
|
|
16
|
+
- This step is EXECUTED ONCE PER MODULE in topological dependency order
|
|
17
|
+
- ALWAYS check workflow state to determine current module
|
|
18
|
+
- ALWAYS reference completed modules when specifying current one
|
|
19
|
+
- **MANDATORY:** Generate and validate an ASCII/SVG mockup for EVERY section (not optional)
|
|
20
|
+
- ALL questions via AskUserQuestion tool
|
|
21
|
+
- ALL communication in `{language}`
|
|
22
|
+
- NEVER skip per-module validation
|
|
23
|
+
- **ID NAMING RULE (MANDATORY, NO EXCEPTION):**
|
|
24
|
+
All IDs MUST include a module prefix to guarantee application-wide uniqueness.
|
|
25
|
+
The prefix is derived from the module code initials (2-4 chars):
|
|
26
|
+
UserManagement → UM | VehicleManagement → VM | PartsInventory → PI
|
|
27
|
+
RepairManagement → RM | MaintenanceSchedule → MS | DataSync → DS
|
|
28
|
+
Notifications → NT | Dashboard → DB | Orders → OR | Customers → CU
|
|
29
|
+
|
|
30
|
+
Patterns:
|
|
31
|
+
UC-{PREFIX}-{NNN} → UC-RM-001, UC-PI-003
|
|
32
|
+
BR-{CAT}-{PREFIX}-{NNN} → BR-VAL-RM-001, BR-CALC-PI-002
|
|
33
|
+
FR-{PREFIX}-{NNN} → FR-RM-001
|
|
34
|
+
OBJ-{PREFIX}-{NNN} → OBJ-RM-001
|
|
35
|
+
AC-{PREFIX}-{NNN} → AC-RM-001
|
|
36
|
+
RISK-{PREFIX}-{NNN} → RISK-RM-001
|
|
37
|
+
|
|
38
|
+
NEVER use bare IDs (UC-001, BR-VAL-001) in multi-module mode.
|
|
39
|
+
- **SCHEMA CONFORMITY RULE:**
|
|
40
|
+
ALL data MUST fit within the defined feature-schema.json structure.
|
|
41
|
+
NEVER create custom top-level fields (KPIDefinitions, ChartConfigurations, etc.)
|
|
42
|
+
Dashboard modules MUST use specification.dashboards[] (it exists in the schema).
|
|
43
|
+
If truly needed, use specification.extensions: {} (additionalProperties: true).
|
|
44
|
+
|
|
45
|
+
## MODE DETECTION
|
|
46
|
+
|
|
47
|
+
**Check your execution context before proceeding:**
|
|
48
|
+
|
|
49
|
+
**IF you are running as a TEAM AGENT** (you received a module-specifier prompt from `references/agent-module-prompt.md`):
|
|
50
|
+
→ You are in **AUTONOMOUS mode** (Propose & Review)
|
|
51
|
+
→ Do NOT use `AskUserQuestion` — you PROPOSE, the team lead handles user interaction
|
|
52
|
+
→ Replace ALL `AskUserQuestion` calls with **ULTRATHINK autonomous decisions**
|
|
53
|
+
→ Use the decomposition data + completed module summaries to make informed choices
|
|
54
|
+
→ After completing all steps (03a1 → 03a2 → 03b → 03c → 03d): send `PROPOSAL_READY` to team lead
|
|
55
|
+
→ See `references/agent-module-prompt.md` for autonomous decision rules
|
|
56
|
+
→ See `references/team-orchestration.md` § 3 for communication protocol
|
|
57
|
+
|
|
58
|
+
**IF you are running in the MAIN CONVERSATION** (classic inline mode):
|
|
59
|
+
→ Normal interactive mode — use `AskUserQuestion` as documented below
|
|
60
|
+
→ No `SendMessage` calls needed
|
|
61
|
+
|
|
62
|
+
**How to detect:** If your prompt contains `PROPOSE & REVIEW` or `team-lead` as recipient, you are a team agent.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## YOUR TASK
|
|
67
|
+
|
|
68
|
+
Specify one module's data model and business logic: walk through sections, define entities, business rules, and validate with client before proceeding to UI specification.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## EXECUTION SEQUENCE
|
|
73
|
+
|
|
74
|
+
### 1. Determine Current Module
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
ba-reader.readApplicationContext({feature_id})
|
|
78
|
+
→ Read metadata.workflow: moduleOrder, currentModuleIndex, completedModules
|
|
79
|
+
→ currentModule = moduleOrder[currentModuleIndex]
|
|
80
|
+
→ Display: "═══ Module {currentModuleIndex + 1}/{moduleOrder.length}: {currentModule} ═══"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
IF module already specified (status = "specified" in master):
|
|
84
|
+
Increment currentModuleIndex, re-check
|
|
85
|
+
IF all modules specified → Load step-04a-collect.md, STOP
|
|
86
|
+
|
|
87
|
+
### 1b. Cache Warming for Module Loop (FIRST MODULE ONLY)
|
|
88
|
+
|
|
89
|
+
> **Performance Optimization:** Pre-load module specification references to reduce redundant reads across all modules.
|
|
90
|
+
> This step runs ONLY for the FIRST module (currentModuleIndex = 0), not repeated for subsequent modules.
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
IF currentModuleIndex === 0:
|
|
94
|
+
// Pre-load module specification references (Bucket 3)
|
|
95
|
+
const moduleRefs = [
|
|
96
|
+
"~/.claude/skills/business-analyse/references/spec-auto-inference.md",
|
|
97
|
+
"~/.claude/skills/business-analyse/references/ui-resource-cards.md",
|
|
98
|
+
"~/.claude/skills/business-analyse/references/ui-dashboard-spec.md",
|
|
99
|
+
"~/.claude/skills/business-analyse/references/cadrage-pre-analysis.md"
|
|
100
|
+
];
|
|
101
|
+
|
|
102
|
+
for (const file of moduleRefs) {
|
|
103
|
+
read(file); // Pre-load into cache
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
Display: "✓ Cache warmed: module specification references (23KB, 4 files)"
|
|
107
|
+
Display: " Expected token savings: 75% reduction in reference reads across module loop"
|
|
108
|
+
Display: " Retention: until step-04 (after all modules specified)"
|
|
109
|
+
ELSE:
|
|
110
|
+
// Subsequent modules use cached references (no re-load)
|
|
111
|
+
Display: "✓ Using cached module references (from first module)"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Rationale:**
|
|
115
|
+
|
|
116
|
+
- Module specification references are read 2-3× PER MODULE (5 modules = 10-15 reads without caching)
|
|
117
|
+
- Pre-loading once at start of module loop eliminates 75% of redundant reads
|
|
118
|
+
- Token savings: ~10,000 tokens for a 5-module application
|
|
119
|
+
- Cache retained until step-04 (when consolidation starts, references no longer needed)
|
|
120
|
+
|
|
121
|
+
See [references/cache-warming-strategy.md](../references/cache-warming-strategy.md) § Bucket 3 for details.
|
|
122
|
+
|
|
123
|
+
### 2. Initialize Module Feature.json
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
// Create or load module-level feature.json
|
|
127
|
+
ba-writer.create({
|
|
128
|
+
scope: "module",
|
|
129
|
+
applicationRef: {feature_id},
|
|
130
|
+
moduleCode: {currentModule.code},
|
|
131
|
+
path: "docs/{app}/{module_code}/business-analyse/v1.0/feature.json"
|
|
132
|
+
})
|
|
133
|
+
|
|
134
|
+
// Inherit application roles from master
|
|
135
|
+
ba-reader.readApplicationContext({feature_id})
|
|
136
|
+
→ Copy cadrage.applicationRoles → module.applicationContext.applicationRoles
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
// Update module status in master: "pending" → "in-progress"
|
|
140
|
+
ba-writer.updateModuleStatus({feature_id}, {currentModule.code}, "in-progress")
|
|
141
|
+
|
|
142
|
+
### 2-ter. Derive Module Discovery Section (MANDATORY)
|
|
143
|
+
|
|
144
|
+
> **The module feature.json MUST have a `discovery` section.** In multi-module mode, derive it from the parent application's `cadrage`. In single-module mode, it should already exist from step-01.
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
ba-reader.readApplicationContext({feature_id})
|
|
148
|
+
→ Read cadrage: problem, asIs, toBe, trigger, stakeholders, risks, acceptanceCriteria
|
|
149
|
+
|
|
150
|
+
// Filter to this module's scope
|
|
151
|
+
moduleScope = cadrage.coverageMatrix.filter(cm => cm.module === currentModule.code)
|
|
152
|
+
moduleStakeholders = cadrage.stakeholders.filter(s => s.tasks relevant to this module)
|
|
153
|
+
moduleRisks = cadrage.risks.filter(r => r related to this module)
|
|
154
|
+
|
|
155
|
+
ba-writer.enrichSection({
|
|
156
|
+
featureId: {module_feature_id},
|
|
157
|
+
section: "discovery",
|
|
158
|
+
data: {
|
|
159
|
+
problem: cadrage.problem,
|
|
160
|
+
asIs: cadrage.asIs,
|
|
161
|
+
toBe: cadrage.toBe,
|
|
162
|
+
trigger: cadrage.trigger,
|
|
163
|
+
stakeholders: moduleStakeholders,
|
|
164
|
+
scope: {
|
|
165
|
+
mustHave: moduleScope.filter(s => s.category === "mustHave").map(s => s.item),
|
|
166
|
+
shouldHave: moduleScope.filter(s => s.category === "shouldHave").map(s => s.item),
|
|
167
|
+
couldHave: moduleScope.filter(s => s.category === "couldHave").map(s => s.item),
|
|
168
|
+
outOfScope: []
|
|
169
|
+
},
|
|
170
|
+
risks: moduleRisks,
|
|
171
|
+
acceptanceCriteria: cadrage.acceptanceCriteria.filter(ac => relevant to module),
|
|
172
|
+
codebaseContext: cadrage.codebaseContext
|
|
173
|
+
}
|
|
174
|
+
})
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
> **STRUCTURE CARD: discovery** — Same format as cadrage but module-scoped.
|
|
178
|
+
> Fields: `problem`, `asIs`, `toBe`, `trigger`, `stakeholders[]`, `scope{}`, `risks[]`, `acceptanceCriteria[]`, `codebaseContext`, `openQuestions[]`
|
|
179
|
+
|
|
180
|
+
### 2-bis. Coverage Verification (MANDATORY)
|
|
181
|
+
|
|
182
|
+
> **Before specifying any module, verify that the coverageMatrix from cadrage covers this module.**
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
ba-reader.readApplicationContext({feature_id})
|
|
186
|
+
→ Read cadrage.coverageMatrix[]
|
|
187
|
+
→ Filter entries where module = {currentModule.code}
|
|
188
|
+
→ Group by category: mustHave, shouldHave, couldHave
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Display to client:
|
|
192
|
+
```
|
|
193
|
+
Module {currentModule}: Coverage from original brief
|
|
194
|
+
|
|
195
|
+
| # | Requirement | Category |
|
|
196
|
+
|---|-------------|----------|
|
|
197
|
+
| 1 | {item} | {category} |
|
|
198
|
+
| ... | ... | ... |
|
|
199
|
+
|
|
200
|
+
Total: {N} requirements mapped to this module
|
|
201
|
+
- Must-have: {count}
|
|
202
|
+
- Should-have: {count}
|
|
203
|
+
- Could-have: {count}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**VALIDATION:** If mustHave count = 0 AND module is in must priority:
|
|
207
|
+
→ WARNING: "Module {currentModule} is must-priority but has no must-have requirements in coverageMatrix. Verify cadrage coverage."
|
|
208
|
+
|
|
209
|
+
**POST-SPECIFICATION CHECK (at end of module, before advancing):**
|
|
210
|
+
For EACH mustHave item in coverageMatrix for this module:
|
|
211
|
+
→ Verify at least 1 UC exists that covers this requirement
|
|
212
|
+
→ If uncovered: BLOCK and ask client to either add a UC or reclassify the requirement
|
|
213
|
+
|
|
214
|
+
### 3. Section Walkthrough with Client
|
|
215
|
+
|
|
216
|
+
> **This is the key interactive phase aligned with the 4-level SmartStack hierarchy.**
|
|
217
|
+
> Level 2 = Module, Level 3 = Section, Level 4 = Resource
|
|
218
|
+
|
|
219
|
+
#### 3a. Identify Module Sections
|
|
220
|
+
|
|
221
|
+
For each module, propose standard sections based on module type:
|
|
222
|
+
|
|
223
|
+
> **RULE:** Sections = functional zones only. `list` is ALWAYS present (default).
|
|
224
|
+
> `create`/`edit` = separate pages with own URL routes (`/create` and `/:id/edit`). `detail` = tabbed page from list click.
|
|
225
|
+
|
|
226
|
+
| Module Type | Sections (functional zones) | Detail page tabs (from list click) |
|
|
227
|
+
|-------------|---------------------------|-----------------------------------|
|
|
228
|
+
| data-centric | list | Infos, {relations} |
|
|
229
|
+
| workflow | list, approve | Infos, {relations}, Historique |
|
|
230
|
+
| integration | list | Infos, Config, Logs, Sync |
|
|
231
|
+
| reporting | dashboard | — |
|
|
232
|
+
| full-module | list, dashboard, approve | Infos, {relations}, Historique |
|
|
233
|
+
|
|
234
|
+
**Section `list` is automatic and ALWAYS included.** Ask ONLY about additional functional sections:
|
|
235
|
+
|
|
236
|
+
Ask via AskUserQuestion:
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
question: "{language == 'fr'
|
|
240
|
+
? 'Le module {currentModule} aura une page liste (avec création et détail par onglets). Quelles sections fonctionnelles supplémentaires souhaitez-vous ?'
|
|
241
|
+
: 'Module {currentModule} will have a list page (with create and tabbed detail). Which additional functional sections do you want?'}"
|
|
242
|
+
header: "Sections"
|
|
243
|
+
multiSelect: true
|
|
244
|
+
options:
|
|
245
|
+
- label: "Dashboard"
|
|
246
|
+
description: "{language == 'fr' ? 'Tableau de bord avec KPIs, graphiques et métriques clés' : 'Dashboard with KPIs, charts and key metrics'}"
|
|
247
|
+
- label: "Validation/Approbation"
|
|
248
|
+
description: "{language == 'fr' ? 'File d\'approbation avec workflow de changement de statut' : 'Approval queue with status change workflow'}"
|
|
249
|
+
- label: "Import en masse"
|
|
250
|
+
description: "{language == 'fr' ? 'Import CSV/Excel avec mapping et validation' : 'CSV/Excel import with mapping and validation'}"
|
|
251
|
+
- label: "{language == 'fr' ? 'Aucune (liste seule)' : 'None (list only)'}"
|
|
252
|
+
description: "{language == 'fr' ? 'Le module n\'a besoin que de la page liste avec détail' : 'Module only needs the list page with detail'}"
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
#### 3a-depth. Determine Specification Depth
|
|
256
|
+
|
|
257
|
+
> **Based on module complexity and type, determine how deeply to specify sections and resources.**
|
|
258
|
+
> **This avoids over-specifying simple modules and under-specifying complex ones.**
|
|
259
|
+
|
|
260
|
+
Read from application master:
|
|
261
|
+
```
|
|
262
|
+
ba-reader.readApplicationContext({feature_id})
|
|
263
|
+
→ module = modules.find(m => m.code === currentModule)
|
|
264
|
+
→ complexity = module.estimatedComplexity // simple | medium | complex
|
|
265
|
+
→ featureType = module.featureType // data-centric | workflow | integration | reporting | full-module
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**Depth decision matrix:**
|
|
269
|
+
|
|
270
|
+
| Complexity | featureType | Depth | Behavior |
|
|
271
|
+
|---|---|---|---|
|
|
272
|
+
| simple | data-centric | **convention** | Auto-generate sections + resources from entities. Quick client validation. |
|
|
273
|
+
| simple | reporting | **convention** | Standard dashboard template. Quick validation. |
|
|
274
|
+
| simple | * | **convention** | Standard sections for featureType. Quick validation. |
|
|
275
|
+
| medium | data-centric | **override** | Auto-generate then ask client which sections to customize. |
|
|
276
|
+
| medium | workflow | **full** | State machine required → always full. |
|
|
277
|
+
| medium | * | **override** | Auto-generate then ask client to customize. |
|
|
278
|
+
| complex | * | **full** | Full specification: state machine, typed columns, conditional actions. |
|
|
279
|
+
| * | workflow | **full** | Always full for workflow modules (state machine is mandatory). |
|
|
280
|
+
|
|
281
|
+
Display to client:
|
|
282
|
+
```
|
|
283
|
+
"Module {currentModule}: complexité {complexity}, type {featureType} → profondeur: {depth}"
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**IF depth = convention:**
|
|
287
|
+
- Execute 3a-infer (auto-inference) → generates sections + resources
|
|
288
|
+
- Execute 3b (wireframes) for each section
|
|
289
|
+
- Skip 3a-bis detailed walkthrough → present auto-generated spec for quick validation
|
|
290
|
+
- Ask client: "La spécification auto-générée convient-elle, ou souhaitez-vous personnaliser certaines sections ?"
|
|
291
|
+
- If client says OK → proceed to step 4 (questionnaires)
|
|
292
|
+
- If client wants changes → switch to **override** for specified sections
|
|
293
|
+
|
|
294
|
+
**IF depth = override:**
|
|
295
|
+
- Execute 3a-infer (auto-inference) → generates base sections + resources
|
|
296
|
+
- Ask client: "Quelles sections souhaitez-vous personnaliser ?"
|
|
297
|
+
- For selected sections → execute full 3a-bis + 3b + 3b-ter
|
|
298
|
+
- For other sections → keep auto-generated spec
|
|
299
|
+
|
|
300
|
+
**IF depth = full:**
|
|
301
|
+
- Execute standard flow: 3a-bis → 3b → 3b-bis → 3b-ter → 3c → 3d (as currently defined below)
|
|
302
|
+
- PLUS: 3a-state (state machine definition) for entities with status fields
|
|
303
|
+
|
|
304
|
+
#### 3a-infer. Auto-Infer Resources from Entities (Convention/Override)
|
|
305
|
+
|
|
306
|
+
> **For convention and override depths, auto-generate resource details from entity definitions.**
|
|
307
|
+
> **The goal: produce a complete spec without manual input, that the client only validates.**
|
|
308
|
+
|
|
309
|
+
**Prerequisites:** Entity attributes must be defined (from step 6) OR anticipated from decomposition.
|
|
310
|
+
|
|
311
|
+
See [references/spec-auto-inference.md](../references/spec-auto-inference.md) for complete inference rules:
|
|
312
|
+
- Entity attribute → SmartTable column mapping (9 type rules)
|
|
313
|
+
- Entity attribute → SmartForm field mapping (8 type rules)
|
|
314
|
+
- Auto-generated sections per featureType (5 types)
|
|
315
|
+
- Component generation rules (list section, create/edit form pages with own routes, detail page with tabs, dashboard section)
|
|
316
|
+
- Status/lifecycle enhancement rules
|
|
317
|
+
|
|
318
|
+
Write auto-generated sections to `specification.sections[]` via ba-writer.enrichSection()
|
|
319
|
+
|
|
320
|
+
### 4. Conditional Questionnaires
|
|
321
|
+
|
|
322
|
+
Based on module type, load questionnaires per-module:
|
|
323
|
+
|
|
324
|
+
| Condition | Category | Questionnaire |
|
|
325
|
+
|-----------|----------|---------------|
|
|
326
|
+
| Always | 04 | `questionnaire/04-data.md` |
|
|
327
|
+
| Has UI sections | 07 | `questionnaire/07-ui.md` |
|
|
328
|
+
| Has lifecycle | 11 | `questionnaire/11-data-lifecycle.md` |
|
|
329
|
+
| Has migration needs | 12 | `questionnaire/12-migration.md` |
|
|
330
|
+
| References other modules | 13 | `questionnaire/13-cross-module.md` |
|
|
331
|
+
| Documentation needed | 10 | `questionnaire/10-documentation.md` |
|
|
332
|
+
|
|
333
|
+
Ask via AskUserQuestion, 1-2 batches per category.
|
|
334
|
+
|
|
335
|
+
#### Store Documentation Requirements
|
|
336
|
+
|
|
337
|
+
If questionnaire 10 was loaded, persist answers in feature.json:
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
ba-writer.enrichSection({
|
|
341
|
+
featureId: {feature_id},
|
|
342
|
+
section: "documentation",
|
|
343
|
+
data: {
|
|
344
|
+
userDocRequired: {Q10.1 answer == "Yes"},
|
|
345
|
+
techDocRequired: {Q10.2 answer == "Yes"},
|
|
346
|
+
status: "pending"
|
|
347
|
+
}
|
|
348
|
+
})
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
This data will be consumed by `/application` step-08 to auto-generate in-app documentation.
|
|
352
|
+
|
|
353
|
+
### 5. Cross-Module References
|
|
354
|
+
|
|
355
|
+
> Reference completed modules to help define current one.
|
|
356
|
+
|
|
357
|
+
```
|
|
358
|
+
completedModules = ba-reader.getCompletedModulesSummary({feature_id})
|
|
359
|
+
→ Returns max 100 lines summary: entity names, key BRs, permissions
|
|
360
|
+
|
|
361
|
+
Display: "Modules déjà spécifiés : {completedModules.map(m => m.code).join(', ')}"
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
For each completed module's entities, ask:
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
question: "Le module {currentModule} référence-t-il des entités de {completedModule} ?"
|
|
368
|
+
header: "Références"
|
|
369
|
+
multiSelect: true
|
|
370
|
+
options:
|
|
371
|
+
- label: "{Entity1} (FK)"
|
|
372
|
+
description: "Référence directe via clé étrangère"
|
|
373
|
+
- label: "{Entity2} (Lookup)"
|
|
374
|
+
description: "Table de référence / lookup"
|
|
375
|
+
- label: "Aucune"
|
|
376
|
+
description: "Pas de référence à {completedModule}"
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
#### 5-bis. Unresolved Entity Dependencies (New Module Detection)
|
|
380
|
+
|
|
381
|
+
> **When an entity reference is detected that does NOT belong to any completed or planned module, apply the SAME intelligent Entity Sourcing Pattern as step-01-cadrage (section 4d-bis).**
|
|
382
|
+
> **Reference:** Load [references/entity-architecture-decision.md](../references/entity-architecture-decision.md) for scoring grid, decision tree, and section patterns.
|
|
383
|
+
|
|
384
|
+
For each entity referenced by {currentModule} that is NOT covered by any existing/planned module:
|
|
385
|
+
|
|
386
|
+
##### A. ULTRATHINK: Silent Analysis (NO output to client)
|
|
387
|
+
|
|
388
|
+
> **Same intelligence as cadrage 4d-bis. Score the entity, assess domain coherence, recommend.**
|
|
389
|
+
|
|
390
|
+
```
|
|
391
|
+
ULTRATHINK — Entity Architecture Analysis for {entity_name} (discovered during specification of {currentModule}):
|
|
392
|
+
|
|
393
|
+
1. DOMAIN COHERENCE
|
|
394
|
+
- Application domain: {app_description}
|
|
395
|
+
- Entity fit: CORE | SUPPORT | PERIPHERAL
|
|
396
|
+
- Justification: {1 sentence}
|
|
397
|
+
|
|
398
|
+
2. ENTITY SCORING (5 criteria, 0-3 each — from scoring grid in reference)
|
|
399
|
+
- Lifecycle: {score}/3
|
|
400
|
+
- Actors: {score}/3
|
|
401
|
+
- Relations: {score}/3
|
|
402
|
+
- Volume: {score}/3
|
|
403
|
+
- Autonomy: {score}/3
|
|
404
|
+
- TOTAL: {total}/15 → {classification}
|
|
405
|
+
|
|
406
|
+
3. PRE-CLASSIFICATION CHECK (from entity patterns in reference, section 10 of suggestion-catalog)
|
|
407
|
+
- Match? → {yes: which pattern | no: use scoring}
|
|
408
|
+
|
|
409
|
+
4. RECOMMENDATION
|
|
410
|
+
- Option: {in_this_module | new_module | external_system | config_list}
|
|
411
|
+
- Confidence: HIGH | MEDIUM | LOW
|
|
412
|
+
- Reasoning: {1-2 sentences}
|
|
413
|
+
|
|
414
|
+
5. IF recommendation = new_module → PRE-BUILD ARCHITECTURE
|
|
415
|
+
- Module code: {PascalCase}
|
|
416
|
+
- Section `list` + detail page tabs
|
|
417
|
+
- Additional sections (ONLY functional zones)
|
|
418
|
+
- Impact on dependency graph
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
##### B. Present Analysis & Recommendation
|
|
422
|
+
|
|
423
|
+
**BEFORE AskUserQuestion, display as markdown:**
|
|
424
|
+
|
|
425
|
+
```
|
|
426
|
+
### {language == "fr" ? "Analyse" : "Analysis"} : {entity_plural}
|
|
427
|
+
|
|
428
|
+
{language == "fr"
|
|
429
|
+
? "Pendant la spécification de **{currentModule}**, j'ai détecté une référence aux **{entity_plural}** qui ne font partie d'aucun module existant."
|
|
430
|
+
: "During specification of **{currentModule}**, I detected a reference to **{entity_plural}** not covered by any existing module."}
|
|
431
|
+
|
|
432
|
+
{language == "fr" ? "**Mon analyse :**" : "**My analysis:**"}
|
|
433
|
+
- {language == "fr" ? "Cohérence domaine" : "Domain coherence"} : **{CORE|SUPPORT|PERIPHERAL}** — {justification}
|
|
434
|
+
- {language == "fr" ? "Score de complexité" : "Complexity score"} : **{score}/15** ({classification})
|
|
435
|
+
- **{language == "fr" ? "Recommandation" : "Recommendation"}** : **{recommended_option}** — {reasoning}
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
**IF recommendation = new_module AND confidence >= MEDIUM, ALSO display the architecture proposal** (same format as cadrage 4d-bis Phase 2: Application/Module table + Sections table + Detail tabs table + Impact).
|
|
439
|
+
|
|
440
|
+
##### C. Ask with Recommended Option First
|
|
441
|
+
|
|
442
|
+
```
|
|
443
|
+
question: "{language == 'fr'
|
|
444
|
+
? 'Comment souhaitez-vous gérer les {entity_plural} ?'
|
|
445
|
+
: 'How do you want to manage {entity_plural}?'}"
|
|
446
|
+
header: "{entity_name}"
|
|
447
|
+
options:
|
|
448
|
+
(ORDER: recommended option FIRST with "(Recommandé)"/"(Recommended)", then remaining 3)
|
|
449
|
+
|
|
450
|
+
IF recommendation = new_module:
|
|
451
|
+
- label: "{language == 'fr' ? 'Nouveau module dédié (Recommandé)' : 'New dedicated module (Recommended)'}"
|
|
452
|
+
description: "{language == 'fr'
|
|
453
|
+
? 'Module {ModuleCode} avec page liste, détail par onglets, permissions dédiées'
|
|
454
|
+
: '{ModuleCode} module with list page, tabbed detail, dedicated permissions'}"
|
|
455
|
+
- label: "{language == 'fr' ? 'Dans ce module' : 'In this module'}"
|
|
456
|
+
description: "{language == 'fr'
|
|
457
|
+
? 'Onglet dans la page détail de {currentModule}'
|
|
458
|
+
: 'Tab in {currentModule} detail page'}"
|
|
459
|
+
- label: "{language == 'fr' ? 'Système externe' : 'External system'}"
|
|
460
|
+
description: "..."
|
|
461
|
+
- label: "{language == 'fr' ? 'Liste de référence' : 'Reference list'}"
|
|
462
|
+
description: "..."
|
|
463
|
+
|
|
464
|
+
IF recommendation = config_list:
|
|
465
|
+
- label: "{language == 'fr' ? 'Liste de référence (Recommandé)' : 'Reference list (Recommended)'}"
|
|
466
|
+
description: "{language == 'fr'
|
|
467
|
+
? 'Table de lookup configurable par l\'admin'
|
|
468
|
+
: 'Admin-configurable lookup table'}"
|
|
469
|
+
- (3 remaining options in logical order)
|
|
470
|
+
|
|
471
|
+
IF recommendation = in_this_module:
|
|
472
|
+
- label: "{language == 'fr' ? 'Dans ce module (Recommandé)' : 'In this module (Recommended)'}"
|
|
473
|
+
description: "{language == 'fr'
|
|
474
|
+
? 'Onglet dans la page détail de {currentModule}'
|
|
475
|
+
: 'Tab in {currentModule} detail page'}"
|
|
476
|
+
- (3 remaining options)
|
|
477
|
+
|
|
478
|
+
IF confidence = LOW:
|
|
479
|
+
(all 4 options in neutral order, NO "(Recommandé)" tag)
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
##### D. Process Answer
|
|
483
|
+
|
|
484
|
+
| Choice | Action |
|
|
485
|
+
|--------|--------|
|
|
486
|
+
| **Dans ce module** | Entity becomes a sub-entity of {currentModule}. Add as a **tab in the detail page**. Add to this module's `analysis.entities[]`. |
|
|
487
|
+
| **Nouveau module dédié** | Add new module to master `modules[]` via ba-writer with proposed architecture (sections, detail tabs, dependencies). The `list` section is ALWAYS the main section. Additional sections ONLY for functional zones. |
|
|
488
|
+
| **Système externe** | Flag for integration. Add to `coverageMatrix` as integration. |
|
|
489
|
+
| **Liste de référence** | Lookup table, admin-managed. No module, no section. |
|
|
490
|
+
|
|
491
|
+
**IF "Nouveau module dédié" is selected:**
|
|
492
|
+
1. Add new module to master `modules[]` via ba-writer (status: "pending", sortOrder: after current module)
|
|
493
|
+
2. Update dependency graph: current module depends on the new module
|
|
494
|
+
3. **Display:**
|
|
495
|
+
```
|
|
496
|
+
"{language == 'fr'
|
|
497
|
+
? '⚠ Nouveau module {ModuleCode} ajouté au graphe de dépendances. Il sera spécifié après {currentModule}.'
|
|
498
|
+
: '⚠ New module {ModuleCode} added to dependency graph. It will be specified after {currentModule}.'}"
|
|
499
|
+
```
|
|
500
|
+
4. Update `metadata.workflow.moduleOrder` to include the new module (inserted after its dependents)
|
|
501
|
+
|
|
502
|
+
---
|
|
503
|
+
|
|
504
|
+
## NEXT STEP
|
|
505
|
+
|
|
506
|
+
Load: `./step-03a2-analysis.md`
|