@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,328 +1,328 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: step-03-execute
|
|
3
|
-
description: Orchestrate code creation via existing skills and MCP tools
|
|
4
|
-
model: opus
|
|
5
|
-
prev_step: steps/step-02-plan.md
|
|
6
|
-
next_step: steps/step-04-examine.md
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Step 3: Execute
|
|
10
|
-
|
|
11
|
-
**CRITICAL PRINCIPLE: /apex ORCHESTRATES. It NEVER writes SmartStack code directly.**
|
|
12
|
-
All code goes through skills (/controller, /application, /ui-components, /efcore) or MCP tools.
|
|
13
|
-
|
|
14
|
-
## LOAD CONDITIONALLY
|
|
15
|
-
|
|
16
|
-
- **ALWAYS** read `references/smartstack-api.md` — BaseEntity API, entity/config/controller patterns
|
|
17
|
-
- **ALWAYS** read `references/smartstack-frontend.md` — lazy loading, i18n, page structure, CSS variables
|
|
18
|
-
- Read `references/smartstack-layers.md` for execution rules per layer
|
|
19
|
-
- If NOT `{economy_mode}` AND Layer 1 has parallel work: read `references/agent-teams-protocol.md`
|
|
20
|
-
- If `{delegate_mode}` AND seedData tasks exist: read `references/core-seed-data.md` — comprehensive seed data templates
|
|
21
|
-
- If build failure during execution: read `references/error-classification.md` — error diagnosis categories A-F
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Foundation Mode Detection
|
|
26
|
-
|
|
27
|
-
**IF `{foundation_mode}` == true:**
|
|
28
|
-
|
|
29
|
-
This is a foundation-only execution (called by ralph-loop Phase 0). Execute ONLY:
|
|
30
|
-
- Layer 0: Domain entities + EF configs + Migration
|
|
31
|
-
|
|
32
|
-
**SKIP ALL OTHER LAYERS:**
|
|
33
|
-
- Layer 1: Application + API + Seed Data → SKIP
|
|
34
|
-
- Layer 2: Frontend → SKIP
|
|
35
|
-
- Layer 3: Tests → SKIP
|
|
36
|
-
|
|
37
|
-
After Layer 0 completes and builds successfully:
|
|
38
|
-
- Commit with message: `chore(foundation): entities for {module_code}`
|
|
39
|
-
- Jump to step-04 for POST-CHECKs (domain + infrastructure only)
|
|
40
|
-
- End execution
|
|
41
|
-
|
|
42
|
-
**IF `{foundation_mode}` == false:**
|
|
43
|
-
Execute ALL layers normally (Layer 0 → Layer 1 → Layer 2 → Layer 3).
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Layer 0 — Domain + Infrastructure (sequential, agent principal)
|
|
48
|
-
|
|
49
|
-
### Domain Entities
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
For each entity to create/modify:
|
|
53
|
-
→ MCP scaffold_extension (type: "entity", target: entity_name)
|
|
54
|
-
→ Verify: inherits BaseEntity, implements ITenantEntity + IAuditableEntity
|
|
55
|
-
→ Verify entity matches patterns in references/smartstack-api.md
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### EF Core Configurations
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
For each entity:
|
|
62
|
-
→ MCP scaffold_extension (type: "configuration", target: entity_name)
|
|
63
|
-
→ Verify: table name, relationships, indexes
|
|
64
|
-
→ Register DbSet in ExtensionsDbContext if new entity
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Migration (BLOCKING)
|
|
68
|
-
|
|
69
|
-
> **CRITICAL — Migration must cover ALL entities, not just the first batch.**
|
|
70
|
-
> Root cause (test-apex-007): Migration was created once for 3 entities, then 4 more entities
|
|
71
|
-
> were added later without re-running migration → 4 entities had no database tables.
|
|
72
|
-
> **RULE:** Create/update migration AFTER ALL entities and EF configs are registered in DbContext.
|
|
73
|
-
> If entities are added incrementally, create a NEW migration for each batch.
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
1. Verify ALL entities have been added as DbSet in ExtensionsDbContext
|
|
77
|
-
2. Verify ALL EF configurations are registered (ApplyConfigurationsFromAssembly or individual)
|
|
78
|
-
3. MCP suggest_migration → get standardized name
|
|
79
|
-
4. dotnet ef migrations add {Name} --project src/{Infra}.csproj --startup-project src/{Api}.csproj -o Persistence/Migrations
|
|
80
|
-
5. dotnet ef database update (if local DB)
|
|
81
|
-
6. dotnet build → MUST PASS
|
|
82
|
-
7. Verify: dotnet ef migrations has-pending-model-changes → MUST report "No pending model changes"
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
**BLOCKING:** If build fails after migration, fix EF configs before proceeding.
|
|
86
|
-
**BLOCKING:** If `has-pending-model-changes` reports pending changes, entities are missing from the migration — create a new migration.
|
|
87
|
-
|
|
88
|
-
### Post-Layer 0 Build Gate
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
dotnet build
|
|
92
|
-
# Note: WSL bin\Debug cleanup handled by PostToolUse hook (wsl-dotnet-cleanup.sh)
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
**MUST PASS before Layer 1. If NuGet error, run `dotnet restore` first. If file lock (MSB3021), use `--output /tmp/{project}_build`.**
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## Layer 1 — Application + API + Seed Data
|
|
100
|
-
|
|
101
|
-
> **Reference:** Load `references/execution-layer1-rules.md` for critical Layer 1 rules:
|
|
102
|
-
> - NavRoute and permission kebab-case (POST-CHECKs 41 + 48)
|
|
103
|
-
> - Controller route attributes (POST-CHECK 50)
|
|
104
|
-
> - Validators DI registration (POST-CHECK 46)
|
|
105
|
-
> - DateOnly vs string (POST-CHECK 47)
|
|
106
|
-
> - Code generation patterns (ICodeGenerator<T> registration)
|
|
107
|
-
|
|
108
|
-
### Backend Tasks (sequential or parallel)
|
|
109
|
-
|
|
110
|
-
- **Services/DTOs:** MCP scaffold_extension
|
|
111
|
-
- **Controllers:** use /controller skill for complex, MCP scaffold_extension for simple
|
|
112
|
-
- **IMPORTANT:** ALL GetAll endpoints MUST support `?search=` query parameter (enables EntityLookup on frontend)
|
|
113
|
-
- **Seed data:** MCP generate_permissions, then follow smartstack-layers.md templates
|
|
114
|
-
|
|
115
|
-
### Frontend Tasks (sequential or parallel)
|
|
116
|
-
|
|
117
|
-
> **Reference:** Load `references/execution-frontend-patterns.md` for complete frontend patterns:
|
|
118
|
-
> - API client generation (MCP scaffold_api_client)
|
|
119
|
-
> - Route scaffolding (MCP scaffold_routes)
|
|
120
|
-
> - Page types (ListPage, DetailPage, CreatePage, EditPage)
|
|
121
|
-
> - FK field handling (EntityLookup component)
|
|
122
|
-
> - Form structure (ZERO modals — all full pages)
|
|
123
|
-
> - Detail page tabs (local state only)
|
|
124
|
-
> - Testing patterns (co-located form tests)
|
|
125
|
-
> - Section-level routes and permissions
|
|
126
|
-
> - Sub-resource handling
|
|
127
|
-
> - I18n JSON structure and registration (POST-CHECK 45)
|
|
128
|
-
|
|
129
|
-
### If NOT economy_mode: Agent Teams (parallel)
|
|
130
|
-
|
|
131
|
-
> **Protocol:** See `references/agent-teams-protocol.md`
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
TeamCreate("apex-exec", description: "Execute Layer 1 in parallel")
|
|
135
|
-
|
|
136
|
-
Spawn 2 teammates (Opus, full tools):
|
|
137
|
-
|
|
138
|
-
1. exec-backend (team_name: "apex-exec", name: "exec-backend"):
|
|
139
|
-
"Execute these Layer 1 backend tasks for module {module_code}:
|
|
140
|
-
{list of application + api + seed data tasks from plan}
|
|
141
|
-
|
|
142
|
-
For each task:
|
|
143
|
-
- Application services/DTOs: MCP scaffold_extension
|
|
144
|
-
- Controllers: use /controller skill for complex, MCP scaffold_extension for simple
|
|
145
|
-
- IMPORTANT: ALL GetAll endpoints MUST support ?search= query parameter (enables EntityLookup on frontend)
|
|
146
|
-
- Seed data: MCP generate_permissions, then follow smartstack-layers.md templates
|
|
147
|
-
|
|
148
|
-
After ALL tasks done:
|
|
149
|
-
SendMessage(type:'message', recipient:'team-lead', content:'BACKEND_COMPLETE', summary:'Backend layer done')"
|
|
150
|
-
|
|
151
|
-
2. exec-frontend (team_name: "apex-exec", name: "exec-frontend"):
|
|
152
|
-
"Execute these Layer 1 frontend tasks for module {module_code}:
|
|
153
|
-
{list of frontend + i18n tasks from plan}
|
|
154
|
-
|
|
155
|
-
**MANDATORY: Read references/smartstack-frontend.md FIRST** — contains all required patterns.
|
|
156
|
-
|
|
157
|
-
For each task:
|
|
158
|
-
- API client: MCP scaffold_api_client
|
|
159
|
-
- Routes: MCP scaffold_routes (outputFormat: 'clientRoutes') → generates lazy imports + Suspense
|
|
160
|
-
- Pages: use /ui-components skill — MUST follow smartstack-frontend.md patterns:
|
|
161
|
-
→ React.lazy() for all page imports (named export wrapping)
|
|
162
|
-
→ <Suspense fallback={<PageLoader />}> around all lazy components
|
|
163
|
-
→ Page structure: hooks → useEffect(load) → loading → error → content
|
|
164
|
-
→ CSS variables only: bg-[var(--bg-card)], text-[var(--text-primary)]
|
|
165
|
-
→ SmartTable/SmartFilter/EntityCard (NEVER raw HTML)
|
|
166
|
-
- **FORM PAGES (CRITICAL):** Create/Edit forms are FULL PAGES with own routes:
|
|
167
|
-
→ EntityCreatePage.tsx with route /{module}/create
|
|
168
|
-
→ EntityEditPage.tsx with route /{module}/:id/edit
|
|
169
|
-
→ ZERO modals/popups/drawers/dialogs for forms
|
|
170
|
-
→ Back button with navigate(-1) on every form page
|
|
171
|
-
→ See smartstack-frontend.md section 3b for templates
|
|
172
|
-
- **TABS ON DETAIL PAGES (CRITICAL):** Tabs MUST switch content LOCALLY:
|
|
173
|
-
→ Tab click handler: setActiveTab(tabKey) ONLY — NEVER navigate() to another page
|
|
174
|
-
→ Tab content: render inline with {activeTab === 'tabKey' && <TabContent />}
|
|
175
|
-
→ Sub-resource data: fetch via API filtered by parent ID, display in tab panel
|
|
176
|
-
→ FORBIDDEN: navigate('../leaves?employee=${id}') in tab handler
|
|
177
|
-
→ See smartstack-frontend.md section 3 'Tab Behavior Rules'
|
|
178
|
-
- **FK FIELDS (CRITICAL):** Foreign key Guid fields (e.g., EmployeeId) MUST use EntityLookup:
|
|
179
|
-
→ NEVER render FK fields as `<input>` — users cannot type GUIDs
|
|
180
|
-
→ NEVER render FK fields as `<select>` — even with API-loaded options, `<select>` is NOT acceptable
|
|
181
|
-
→ ONLY use `<EntityLookup />` from @/components/ui/EntityLookup for searchable selection
|
|
182
|
-
→ Each FK field needs: apiEndpoint, mapOption (display name), search support on backend
|
|
183
|
-
→ FORBIDDEN: `<select value={formData.departmentId}>`, `<option value={dept.id}>`, `e.target.value` for FK fields
|
|
184
|
-
→ See smartstack-frontend.md section 6 for the full EntityLookup pattern
|
|
185
|
-
- **FORM TESTS (MANDATORY):**
|
|
186
|
-
→ EntityCreatePage.test.tsx (co-located next to page)
|
|
187
|
-
→ EntityEditPage.test.tsx (co-located next to page)
|
|
188
|
-
→ Cover: rendering, validation, submit, pre-fill, navigation, errors
|
|
189
|
-
→ See smartstack-frontend.md section 8 for test templates
|
|
190
|
-
- **SECTION PERMISSIONS:** After MCP generate_permissions for the module navRoute (2 segments),
|
|
191
|
-
also call MCP generate_permissions for EACH section navRoute (3 segments: {app}.{module}.{section})
|
|
192
|
-
- **SECTION ROUTES:** Add section child routes to the module's children array.
|
|
193
|
-
Wire PermissionGuard for section routes with section-level permissions.
|
|
194
|
-
- I18n: Generate 4 JSON files per module namespace (fr, en, it, de)
|
|
195
|
-
→ Follow JSON template from smartstack-frontend.md
|
|
196
|
-
→ Keys: actions, labels, errors, validation, columns, form, messages, empty
|
|
197
|
-
→ ALL t() calls MUST use namespace prefix + fallback: t('ns:key', 'Default text')
|
|
198
|
-
- MUST use src/pages/{App}/{Module}/ hierarchy (NOT flat)
|
|
199
|
-
|
|
200
|
-
After ALL tasks done:
|
|
201
|
-
SendMessage(type:'message', recipient:'team-lead', content:'FRONTEND_COMPLETE', summary:'Frontend layer done')"
|
|
202
|
-
|
|
203
|
-
Wait for both teammates to report completion.
|
|
204
|
-
|
|
205
|
-
Build verification:
|
|
206
|
-
dotnet build (backend)
|
|
207
|
-
npm run typecheck (frontend, if applicable)
|
|
208
|
-
|
|
209
|
-
shutdown_request → shutdown_response → TeamDelete("apex-exec")
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## Layer 1 — Skill Delegation
|
|
215
|
-
|
|
216
|
-
| Skill | When | Context to provide |
|
|
217
|
-
|-------|------|--------------------|
|
|
218
|
-
| /controller | Custom routes, complex auth, file upload | entity, CRUD actions, permissions, routes |
|
|
219
|
-
| /application | Full app/module from scratch | app, module names |
|
|
220
|
-
| /ui-components | Complex pages (tables, grids, dashboards) | entity, fields, page type |
|
|
221
|
-
| /efcore | Complex EF configs, inheritance | relationships, indexes |
|
|
222
|
-
| /notification | In-app or email notifications | trigger, recipients, template |
|
|
223
|
-
| /workflow | Automated workflows | trigger, steps, conditions |
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## Layer 2b — Documentation (after frontend pages exist)
|
|
228
|
-
|
|
229
|
-
> **After frontend pages are created, generate module documentation via `/documentation` skill.**
|
|
230
|
-
|
|
231
|
-
```
|
|
232
|
-
Invoke /documentation {module_code} --type user
|
|
233
|
-
|
|
234
|
-
This generates:
|
|
235
|
-
- src/pages/docs/business/{app}/{module}/doc-data.ts (data file)
|
|
236
|
-
- src/pages/docs/business/{app}/{module}/index.tsx (page wrapper)
|
|
237
|
-
- src/i18n/locales/fr/docs-{app}-{module}.json (French doc translations)
|
|
238
|
-
- Updates App.tsx routing for doc page
|
|
239
|
-
- Updates docs-manifest.json
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
**Verify DocToggleButton presence in list/detail pages:**
|
|
243
|
-
- Every `*ListPage.tsx` and `*DetailPage.tsx` MUST import and render `DocToggleButton` in their header
|
|
244
|
-
- Import: `import { DocToggleButton } from '@/components/docs/DocToggleButton';`
|
|
245
|
-
- Placement: inside the header actions area (see `smartstack-frontend.md` section 7)
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## Layer 2 — Final Seed Data + Validation (sequential)
|
|
250
|
-
|
|
251
|
-
After Layer 1 completes:
|
|
252
|
-
|
|
253
|
-
```
|
|
254
|
-
1. Verify seed data completeness:
|
|
255
|
-
- NavigationModuleSeedData.cs with 4 languages
|
|
256
|
-
- PermissionsSeedData.cs with deterministic GUIDs
|
|
257
|
-
- RolesSeedData.cs with context-based role mapping
|
|
258
|
-
- IClientSeedDataProvider updated
|
|
259
|
-
- DI registration added
|
|
260
|
-
|
|
261
|
-
2. Build gate:
|
|
262
|
-
dotnet build → MUST PASS
|
|
263
|
-
npm run typecheck → MUST PASS (if frontend)
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
---
|
|
267
|
-
|
|
268
|
-
## FRONTEND COMPLIANCE GATE (MANDATORY before commit)
|
|
269
|
-
|
|
270
|
-
> **Reference:** Load `references/execution-frontend-gates.md` for all 5 mandatory checks:
|
|
271
|
-
> 1. CSS Variables (theme system) — POST-CHECK 13
|
|
272
|
-
> 2. Forms as Pages (ZERO modals/drawers/slide-overs)
|
|
273
|
-
> 3. I18n File Structure (4 languages, separate JSON files)
|
|
274
|
-
> 4. Lazy Loading (React.lazy() — no static imports)
|
|
275
|
-
> 5. useTranslation in Pages (all text translated)
|
|
276
|
-
|
|
277
|
-
**BLOCKING:** Do NOT commit frontend changes until ALL 5 gates pass.
|
|
278
|
-
|
|
279
|
-
When delegating to `/ui-components` skill, include explicit instructions:
|
|
280
|
-
- "CSS: Use CSS variables ONLY — `bg-[var(--bg-card)]`, `text-[var(--text-primary)]`."
|
|
281
|
-
- "Forms: Create/Edit forms are FULL PAGES with own routes (e.g., `/create`, `/:id/edit`)."
|
|
282
|
-
- "I18n: ALL text must use `t('namespace:key', 'Fallback')`. Generate JSON files in `src/i18n/locales/`."
|
|
283
|
-
|
|
284
|
-
---
|
|
285
|
-
|
|
286
|
-
## PRD State Update (delegate mode only)
|
|
287
|
-
|
|
288
|
-
> **After completing EACH layer**, update the PRD file so `/ralph-loop` can track progress.
|
|
289
|
-
|
|
290
|
-
```
|
|
291
|
-
IF delegate_mode:
|
|
292
|
-
After each layer completes successfully:
|
|
293
|
-
Read {delegate_prd_path}
|
|
294
|
-
For each task executed in this layer:
|
|
295
|
-
task.status = 'completed' (or 'failed' if errors)
|
|
296
|
-
task.completed_at = new Date().toISOString()
|
|
297
|
-
task.iteration = 1 (delegate mode = single iteration)
|
|
298
|
-
task.commit_hash = $(git rev-parse --short HEAD)
|
|
299
|
-
task.files_changed = { created: [...files created...], modified: [...files modified...] }
|
|
300
|
-
task.validation = "APEX_PASS" (or error details)
|
|
301
|
-
prd.updated_at = new Date().toISOString()
|
|
302
|
-
Write back to {delegate_prd_path}
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
|
|
307
|
-
## Commits Per Layer
|
|
308
|
-
|
|
309
|
-
After each layer completes, gates pass, and builds pass:
|
|
310
|
-
|
|
311
|
-
```
|
|
312
|
-
Layer 0: feat({module}): [domain+infra] {short description}
|
|
313
|
-
Layer 1: feat({module}): [app+api] {short description}
|
|
314
|
-
Layer 1: feat({module}): [frontend] {short description} # if applicable — AFTER all 5 gates pass
|
|
315
|
-
Layer 2: feat({module}): [seed] {short description} # if applicable
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
---
|
|
319
|
-
|
|
320
|
-
## Save Output (if save_mode)
|
|
321
|
-
|
|
322
|
-
Write to `{output_dir}/03-execute.md` with execution log per layer.
|
|
323
|
-
|
|
324
|
-
---
|
|
325
|
-
|
|
326
|
-
## NEXT STEP
|
|
327
|
-
|
|
328
|
-
Load `steps/step-04-examine.md`
|
|
1
|
+
---
|
|
2
|
+
name: step-03-execute
|
|
3
|
+
description: Orchestrate code creation via existing skills and MCP tools
|
|
4
|
+
model: opus
|
|
5
|
+
prev_step: steps/step-02-plan.md
|
|
6
|
+
next_step: steps/step-04-examine.md
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Step 3: Execute
|
|
10
|
+
|
|
11
|
+
**CRITICAL PRINCIPLE: /apex ORCHESTRATES. It NEVER writes SmartStack code directly.**
|
|
12
|
+
All code goes through skills (/controller, /application, /ui-components, /efcore) or MCP tools.
|
|
13
|
+
|
|
14
|
+
## LOAD CONDITIONALLY
|
|
15
|
+
|
|
16
|
+
- **ALWAYS** read `references/smartstack-api.md` — BaseEntity API, entity/config/controller patterns
|
|
17
|
+
- **ALWAYS** read `references/smartstack-frontend.md` — lazy loading, i18n, page structure, CSS variables
|
|
18
|
+
- Read `references/smartstack-layers.md` for execution rules per layer
|
|
19
|
+
- If NOT `{economy_mode}` AND Layer 1 has parallel work: read `references/agent-teams-protocol.md`
|
|
20
|
+
- If `{delegate_mode}` AND seedData tasks exist: read `references/core-seed-data.md` — comprehensive seed data templates
|
|
21
|
+
- If build failure during execution: read `references/error-classification.md` — error diagnosis categories A-F
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Foundation Mode Detection
|
|
26
|
+
|
|
27
|
+
**IF `{foundation_mode}` == true:**
|
|
28
|
+
|
|
29
|
+
This is a foundation-only execution (called by ralph-loop Phase 0). Execute ONLY:
|
|
30
|
+
- Layer 0: Domain entities + EF configs + Migration
|
|
31
|
+
|
|
32
|
+
**SKIP ALL OTHER LAYERS:**
|
|
33
|
+
- Layer 1: Application + API + Seed Data → SKIP
|
|
34
|
+
- Layer 2: Frontend → SKIP
|
|
35
|
+
- Layer 3: Tests → SKIP
|
|
36
|
+
|
|
37
|
+
After Layer 0 completes and builds successfully:
|
|
38
|
+
- Commit with message: `chore(foundation): entities for {module_code}`
|
|
39
|
+
- Jump to step-04 for POST-CHECKs (domain + infrastructure only)
|
|
40
|
+
- End execution
|
|
41
|
+
|
|
42
|
+
**IF `{foundation_mode}` == false:**
|
|
43
|
+
Execute ALL layers normally (Layer 0 → Layer 1 → Layer 2 → Layer 3).
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Layer 0 — Domain + Infrastructure (sequential, agent principal)
|
|
48
|
+
|
|
49
|
+
### Domain Entities
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
For each entity to create/modify:
|
|
53
|
+
→ MCP scaffold_extension (type: "entity", target: entity_name)
|
|
54
|
+
→ Verify: inherits BaseEntity, implements ITenantEntity + IAuditableEntity
|
|
55
|
+
→ Verify entity matches patterns in references/smartstack-api.md
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### EF Core Configurations
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
For each entity:
|
|
62
|
+
→ MCP scaffold_extension (type: "configuration", target: entity_name)
|
|
63
|
+
→ Verify: table name, relationships, indexes
|
|
64
|
+
→ Register DbSet in ExtensionsDbContext if new entity
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Migration (BLOCKING)
|
|
68
|
+
|
|
69
|
+
> **CRITICAL — Migration must cover ALL entities, not just the first batch.**
|
|
70
|
+
> Root cause (test-apex-007): Migration was created once for 3 entities, then 4 more entities
|
|
71
|
+
> were added later without re-running migration → 4 entities had no database tables.
|
|
72
|
+
> **RULE:** Create/update migration AFTER ALL entities and EF configs are registered in DbContext.
|
|
73
|
+
> If entities are added incrementally, create a NEW migration for each batch.
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
1. Verify ALL entities have been added as DbSet in ExtensionsDbContext
|
|
77
|
+
2. Verify ALL EF configurations are registered (ApplyConfigurationsFromAssembly or individual)
|
|
78
|
+
3. MCP suggest_migration → get standardized name
|
|
79
|
+
4. dotnet ef migrations add {Name} --project src/{Infra}.csproj --startup-project src/{Api}.csproj -o Persistence/Migrations
|
|
80
|
+
5. dotnet ef database update (if local DB)
|
|
81
|
+
6. dotnet build → MUST PASS
|
|
82
|
+
7. Verify: dotnet ef migrations has-pending-model-changes → MUST report "No pending model changes"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**BLOCKING:** If build fails after migration, fix EF configs before proceeding.
|
|
86
|
+
**BLOCKING:** If `has-pending-model-changes` reports pending changes, entities are missing from the migration — create a new migration.
|
|
87
|
+
|
|
88
|
+
### Post-Layer 0 Build Gate
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
dotnet build
|
|
92
|
+
# Note: WSL bin\Debug cleanup handled by PostToolUse hook (wsl-dotnet-cleanup.sh)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**MUST PASS before Layer 1. If NuGet error, run `dotnet restore` first. If file lock (MSB3021), use `--output /tmp/{project}_build`.**
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Layer 1 — Application + API + Seed Data
|
|
100
|
+
|
|
101
|
+
> **Reference:** Load `references/execution-layer1-rules.md` for critical Layer 1 rules:
|
|
102
|
+
> - NavRoute and permission kebab-case (POST-CHECKs 41 + 48)
|
|
103
|
+
> - Controller route attributes (POST-CHECK 50)
|
|
104
|
+
> - Validators DI registration (POST-CHECK 46)
|
|
105
|
+
> - DateOnly vs string (POST-CHECK 47)
|
|
106
|
+
> - Code generation patterns (ICodeGenerator<T> registration)
|
|
107
|
+
|
|
108
|
+
### Backend Tasks (sequential or parallel)
|
|
109
|
+
|
|
110
|
+
- **Services/DTOs:** MCP scaffold_extension
|
|
111
|
+
- **Controllers:** use /controller skill for complex, MCP scaffold_extension for simple
|
|
112
|
+
- **IMPORTANT:** ALL GetAll endpoints MUST support `?search=` query parameter (enables EntityLookup on frontend)
|
|
113
|
+
- **Seed data:** MCP generate_permissions, then follow smartstack-layers.md templates
|
|
114
|
+
|
|
115
|
+
### Frontend Tasks (sequential or parallel)
|
|
116
|
+
|
|
117
|
+
> **Reference:** Load `references/execution-frontend-patterns.md` for complete frontend patterns:
|
|
118
|
+
> - API client generation (MCP scaffold_api_client)
|
|
119
|
+
> - Route scaffolding (MCP scaffold_routes)
|
|
120
|
+
> - Page types (ListPage, DetailPage, CreatePage, EditPage)
|
|
121
|
+
> - FK field handling (EntityLookup component)
|
|
122
|
+
> - Form structure (ZERO modals — all full pages)
|
|
123
|
+
> - Detail page tabs (local state only)
|
|
124
|
+
> - Testing patterns (co-located form tests)
|
|
125
|
+
> - Section-level routes and permissions
|
|
126
|
+
> - Sub-resource handling
|
|
127
|
+
> - I18n JSON structure and registration (POST-CHECK 45)
|
|
128
|
+
|
|
129
|
+
### If NOT economy_mode: Agent Teams (parallel)
|
|
130
|
+
|
|
131
|
+
> **Protocol:** See `references/agent-teams-protocol.md`
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
TeamCreate("apex-exec", description: "Execute Layer 1 in parallel")
|
|
135
|
+
|
|
136
|
+
Spawn 2 teammates (Opus, full tools):
|
|
137
|
+
|
|
138
|
+
1. exec-backend (team_name: "apex-exec", name: "exec-backend"):
|
|
139
|
+
"Execute these Layer 1 backend tasks for module {module_code}:
|
|
140
|
+
{list of application + api + seed data tasks from plan}
|
|
141
|
+
|
|
142
|
+
For each task:
|
|
143
|
+
- Application services/DTOs: MCP scaffold_extension
|
|
144
|
+
- Controllers: use /controller skill for complex, MCP scaffold_extension for simple
|
|
145
|
+
- IMPORTANT: ALL GetAll endpoints MUST support ?search= query parameter (enables EntityLookup on frontend)
|
|
146
|
+
- Seed data: MCP generate_permissions, then follow smartstack-layers.md templates
|
|
147
|
+
|
|
148
|
+
After ALL tasks done:
|
|
149
|
+
SendMessage(type:'message', recipient:'team-lead', content:'BACKEND_COMPLETE', summary:'Backend layer done')"
|
|
150
|
+
|
|
151
|
+
2. exec-frontend (team_name: "apex-exec", name: "exec-frontend"):
|
|
152
|
+
"Execute these Layer 1 frontend tasks for module {module_code}:
|
|
153
|
+
{list of frontend + i18n tasks from plan}
|
|
154
|
+
|
|
155
|
+
**MANDATORY: Read references/smartstack-frontend.md FIRST** — contains all required patterns.
|
|
156
|
+
|
|
157
|
+
For each task:
|
|
158
|
+
- API client: MCP scaffold_api_client
|
|
159
|
+
- Routes: MCP scaffold_routes (outputFormat: 'clientRoutes') → generates lazy imports + Suspense
|
|
160
|
+
- Pages: use /ui-components skill — MUST follow smartstack-frontend.md patterns:
|
|
161
|
+
→ React.lazy() for all page imports (named export wrapping)
|
|
162
|
+
→ <Suspense fallback={<PageLoader />}> around all lazy components
|
|
163
|
+
→ Page structure: hooks → useEffect(load) → loading → error → content
|
|
164
|
+
→ CSS variables only: bg-[var(--bg-card)], text-[var(--text-primary)]
|
|
165
|
+
→ SmartTable/SmartFilter/EntityCard (NEVER raw HTML)
|
|
166
|
+
- **FORM PAGES (CRITICAL):** Create/Edit forms are FULL PAGES with own routes:
|
|
167
|
+
→ EntityCreatePage.tsx with route /{module}/create
|
|
168
|
+
→ EntityEditPage.tsx with route /{module}/:id/edit
|
|
169
|
+
→ ZERO modals/popups/drawers/dialogs for forms
|
|
170
|
+
→ Back button with navigate(-1) on every form page
|
|
171
|
+
→ See smartstack-frontend.md section 3b for templates
|
|
172
|
+
- **TABS ON DETAIL PAGES (CRITICAL):** Tabs MUST switch content LOCALLY:
|
|
173
|
+
→ Tab click handler: setActiveTab(tabKey) ONLY — NEVER navigate() to another page
|
|
174
|
+
→ Tab content: render inline with {activeTab === 'tabKey' && <TabContent />}
|
|
175
|
+
→ Sub-resource data: fetch via API filtered by parent ID, display in tab panel
|
|
176
|
+
→ FORBIDDEN: navigate('../leaves?employee=${id}') in tab handler
|
|
177
|
+
→ See smartstack-frontend.md section 3 'Tab Behavior Rules'
|
|
178
|
+
- **FK FIELDS (CRITICAL):** Foreign key Guid fields (e.g., EmployeeId) MUST use EntityLookup:
|
|
179
|
+
→ NEVER render FK fields as `<input>` — users cannot type GUIDs
|
|
180
|
+
→ NEVER render FK fields as `<select>` — even with API-loaded options, `<select>` is NOT acceptable
|
|
181
|
+
→ ONLY use `<EntityLookup />` from @/components/ui/EntityLookup for searchable selection
|
|
182
|
+
→ Each FK field needs: apiEndpoint, mapOption (display name), search support on backend
|
|
183
|
+
→ FORBIDDEN: `<select value={formData.departmentId}>`, `<option value={dept.id}>`, `e.target.value` for FK fields
|
|
184
|
+
→ See smartstack-frontend.md section 6 for the full EntityLookup pattern
|
|
185
|
+
- **FORM TESTS (MANDATORY):**
|
|
186
|
+
→ EntityCreatePage.test.tsx (co-located next to page)
|
|
187
|
+
→ EntityEditPage.test.tsx (co-located next to page)
|
|
188
|
+
→ Cover: rendering, validation, submit, pre-fill, navigation, errors
|
|
189
|
+
→ See smartstack-frontend.md section 8 for test templates
|
|
190
|
+
- **SECTION PERMISSIONS:** After MCP generate_permissions for the module navRoute (2 segments),
|
|
191
|
+
also call MCP generate_permissions for EACH section navRoute (3 segments: {app}.{module}.{section})
|
|
192
|
+
- **SECTION ROUTES:** Add section child routes to the module's children array.
|
|
193
|
+
Wire PermissionGuard for section routes with section-level permissions.
|
|
194
|
+
- I18n: Generate 4 JSON files per module namespace (fr, en, it, de)
|
|
195
|
+
→ Follow JSON template from smartstack-frontend.md
|
|
196
|
+
→ Keys: actions, labels, errors, validation, columns, form, messages, empty
|
|
197
|
+
→ ALL t() calls MUST use namespace prefix + fallback: t('ns:key', 'Default text')
|
|
198
|
+
- MUST use src/pages/{App}/{Module}/ hierarchy (NOT flat)
|
|
199
|
+
|
|
200
|
+
After ALL tasks done:
|
|
201
|
+
SendMessage(type:'message', recipient:'team-lead', content:'FRONTEND_COMPLETE', summary:'Frontend layer done')"
|
|
202
|
+
|
|
203
|
+
Wait for both teammates to report completion.
|
|
204
|
+
|
|
205
|
+
Build verification:
|
|
206
|
+
dotnet build (backend)
|
|
207
|
+
npm run typecheck (frontend, if applicable)
|
|
208
|
+
|
|
209
|
+
shutdown_request → shutdown_response → TeamDelete("apex-exec")
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Layer 1 — Skill Delegation
|
|
215
|
+
|
|
216
|
+
| Skill | When | Context to provide |
|
|
217
|
+
|-------|------|--------------------|
|
|
218
|
+
| /controller | Custom routes, complex auth, file upload | entity, CRUD actions, permissions, routes |
|
|
219
|
+
| /application | Full app/module from scratch | app, module names |
|
|
220
|
+
| /ui-components | Complex pages (tables, grids, dashboards) | entity, fields, page type |
|
|
221
|
+
| /efcore | Complex EF configs, inheritance | relationships, indexes |
|
|
222
|
+
| /notification | In-app or email notifications | trigger, recipients, template |
|
|
223
|
+
| /workflow | Automated workflows | trigger, steps, conditions |
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Layer 2b — Documentation (after frontend pages exist)
|
|
228
|
+
|
|
229
|
+
> **After frontend pages are created, generate module documentation via `/documentation` skill.**
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
Invoke /documentation {module_code} --type user
|
|
233
|
+
|
|
234
|
+
This generates:
|
|
235
|
+
- src/pages/docs/business/{app}/{module}/doc-data.ts (data file)
|
|
236
|
+
- src/pages/docs/business/{app}/{module}/index.tsx (page wrapper)
|
|
237
|
+
- src/i18n/locales/fr/docs-{app}-{module}.json (French doc translations)
|
|
238
|
+
- Updates App.tsx routing for doc page
|
|
239
|
+
- Updates docs-manifest.json
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
**Verify DocToggleButton presence in list/detail pages:**
|
|
243
|
+
- Every `*ListPage.tsx` and `*DetailPage.tsx` MUST import and render `DocToggleButton` in their header
|
|
244
|
+
- Import: `import { DocToggleButton } from '@/components/docs/DocToggleButton';`
|
|
245
|
+
- Placement: inside the header actions area (see `smartstack-frontend.md` section 7)
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Layer 2 — Final Seed Data + Validation (sequential)
|
|
250
|
+
|
|
251
|
+
After Layer 1 completes:
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
1. Verify seed data completeness:
|
|
255
|
+
- NavigationModuleSeedData.cs with 4 languages
|
|
256
|
+
- PermissionsSeedData.cs with deterministic GUIDs
|
|
257
|
+
- RolesSeedData.cs with context-based role mapping
|
|
258
|
+
- IClientSeedDataProvider updated
|
|
259
|
+
- DI registration added
|
|
260
|
+
|
|
261
|
+
2. Build gate:
|
|
262
|
+
dotnet build → MUST PASS
|
|
263
|
+
npm run typecheck → MUST PASS (if frontend)
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## FRONTEND COMPLIANCE GATE (MANDATORY before commit)
|
|
269
|
+
|
|
270
|
+
> **Reference:** Load `references/execution-frontend-gates.md` for all 5 mandatory checks:
|
|
271
|
+
> 1. CSS Variables (theme system) — POST-CHECK 13
|
|
272
|
+
> 2. Forms as Pages (ZERO modals/drawers/slide-overs)
|
|
273
|
+
> 3. I18n File Structure (4 languages, separate JSON files)
|
|
274
|
+
> 4. Lazy Loading (React.lazy() — no static imports)
|
|
275
|
+
> 5. useTranslation in Pages (all text translated)
|
|
276
|
+
|
|
277
|
+
**BLOCKING:** Do NOT commit frontend changes until ALL 5 gates pass.
|
|
278
|
+
|
|
279
|
+
When delegating to `/ui-components` skill, include explicit instructions:
|
|
280
|
+
- "CSS: Use CSS variables ONLY — `bg-[var(--bg-card)]`, `text-[var(--text-primary)]`."
|
|
281
|
+
- "Forms: Create/Edit forms are FULL PAGES with own routes (e.g., `/create`, `/:id/edit`)."
|
|
282
|
+
- "I18n: ALL text must use `t('namespace:key', 'Fallback')`. Generate JSON files in `src/i18n/locales/`."
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## PRD State Update (delegate mode only)
|
|
287
|
+
|
|
288
|
+
> **After completing EACH layer**, update the PRD file so `/ralph-loop` can track progress.
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
IF delegate_mode:
|
|
292
|
+
After each layer completes successfully:
|
|
293
|
+
Read {delegate_prd_path}
|
|
294
|
+
For each task executed in this layer:
|
|
295
|
+
task.status = 'completed' (or 'failed' if errors)
|
|
296
|
+
task.completed_at = new Date().toISOString()
|
|
297
|
+
task.iteration = 1 (delegate mode = single iteration)
|
|
298
|
+
task.commit_hash = $(git rev-parse --short HEAD)
|
|
299
|
+
task.files_changed = { created: [...files created...], modified: [...files modified...] }
|
|
300
|
+
task.validation = "APEX_PASS" (or error details)
|
|
301
|
+
prd.updated_at = new Date().toISOString()
|
|
302
|
+
Write back to {delegate_prd_path}
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Commits Per Layer
|
|
308
|
+
|
|
309
|
+
After each layer completes, gates pass, and builds pass:
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
Layer 0: feat({module}): [domain+infra] {short description}
|
|
313
|
+
Layer 1: feat({module}): [app+api] {short description}
|
|
314
|
+
Layer 1: feat({module}): [frontend] {short description} # if applicable — AFTER all 5 gates pass
|
|
315
|
+
Layer 2: feat({module}): [seed] {short description} # if applicable
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## Save Output (if save_mode)
|
|
321
|
+
|
|
322
|
+
Write to `{output_dir}/03-execute.md` with execution log per layer.
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## NEXT STEP
|
|
327
|
+
|
|
328
|
+
Load `steps/step-04-examine.md`
|