@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,263 +1,263 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: step-04-examine
|
|
3
|
-
description: MCP validation, build verification, seed data check, acceptance criteria
|
|
4
|
-
model: opus
|
|
5
|
-
prev_step: steps/step-03-execute.md
|
|
6
|
-
next_step: steps/step-05-deep-review.md
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Step 4: eXamine
|
|
10
|
-
|
|
11
|
-
> **This is the X in APEX.** Mandatory automated examination of all generated code.
|
|
12
|
-
|
|
13
|
-
**Goal:** Verify everything works. MCP conventions, build, seed data, acceptance criteria.
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## 1. MCP Convention Validation
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
Call: mcp__smartstack__validate_conventions
|
|
21
|
-
|
|
22
|
-
Expected: 0 errors
|
|
23
|
-
If errors found:
|
|
24
|
-
→ Fix each error (use appropriate skill/MCP)
|
|
25
|
-
→ Re-validate until 0 errors
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## 2. EF Core Migration Check (if needs_migration)
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
Call: mcp__smartstack__check_migrations
|
|
34
|
-
|
|
35
|
-
Verify:
|
|
36
|
-
- Migration exists and is applied
|
|
37
|
-
- No pending model changes
|
|
38
|
-
- ModelSnapshot matches
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## 3. Frontend Route Validation (if frontend modified)
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
Call: mcp__smartstack__validate_frontend_routes
|
|
47
|
-
|
|
48
|
-
Verify:
|
|
49
|
-
- Routes nested inside correct Layout wrapper
|
|
50
|
-
- Route paths match controller patterns
|
|
51
|
-
- No orphan routes
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### 3b. Frontend Page Completeness (BLOCKING)
|
|
55
|
-
|
|
56
|
-
> **ROOT CAUSE (test-v4-015):** Frontend generation created List + Detail pages but SKIPPED
|
|
57
|
-
> Create + Edit pages. ListPage buttons navigated to /create and /:id/edit → white screen / 404.
|
|
58
|
-
> Tests were also missing. This section catches that failure mode.
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
PAGE_DIR=$(find . -path "*/src/pages" -not -path "*/node_modules/*" -type d 2>/dev/null | head -1)
|
|
62
|
-
APP_TSX=$(find . -name "App.tsx" -not -path "*/node_modules/*" 2>/dev/null | head -1)
|
|
63
|
-
|
|
64
|
-
if [ -n "$PAGE_DIR" ]; then
|
|
65
|
-
# Check each module's ListPage for dead navigation links
|
|
66
|
-
LIST_PAGES=$(find "$PAGE_DIR" -name "*ListPage.tsx" -o -name "*sPage.tsx" 2>/dev/null | grep -v test | grep -v node_modules)
|
|
67
|
-
FAIL=false
|
|
68
|
-
for LIST_PAGE in $LIST_PAGES; do
|
|
69
|
-
LP_DIR=$(dirname "$LIST_PAGE")
|
|
70
|
-
MOD=$(basename "$LP_DIR")
|
|
71
|
-
|
|
72
|
-
HAS_CREATE_NAV=$(grep -P "navigate\(.*['/]create" "$LIST_PAGE" 2>/dev/null)
|
|
73
|
-
HAS_EDIT_NAV=$(grep -P "navigate\(.*['/]edit" "$LIST_PAGE" 2>/dev/null)
|
|
74
|
-
|
|
75
|
-
CREATE_PAGE=$(find "$LP_DIR" -name "*CreatePage.tsx" 2>/dev/null | head -1)
|
|
76
|
-
EDIT_PAGE=$(find "$LP_DIR" -name "*EditPage.tsx" 2>/dev/null | head -1)
|
|
77
|
-
|
|
78
|
-
if [ -n "$HAS_CREATE_NAV" ] && [ -z "$CREATE_PAGE" ]; then
|
|
79
|
-
echo "BLOCKING: $MOD ListPage navigates to /create but CreatePage does NOT exist → dead link"
|
|
80
|
-
FAIL=true
|
|
81
|
-
fi
|
|
82
|
-
if [ -n "$HAS_EDIT_NAV" ] && [ -z "$EDIT_PAGE" ]; then
|
|
83
|
-
echo "BLOCKING: $MOD ListPage navigates to /:id/edit but EditPage does NOT exist → dead link"
|
|
84
|
-
FAIL=true
|
|
85
|
-
fi
|
|
86
|
-
done
|
|
87
|
-
|
|
88
|
-
# Check route wiring in App.tsx
|
|
89
|
-
if [ -n "$APP_TSX" ]; then
|
|
90
|
-
CREATE_PAGES=$(find "$PAGE_DIR" -name "*CreatePage.tsx" 2>/dev/null | grep -v test)
|
|
91
|
-
EDIT_PAGES=$(find "$PAGE_DIR" -name "*EditPage.tsx" 2>/dev/null | grep -v test)
|
|
92
|
-
if [ -n "$CREATE_PAGES" ] && ! grep -qP "path:.*create" "$APP_TSX"; then
|
|
93
|
-
echo "BLOCKING: CreatePage exists but no 'create' route in App.tsx"
|
|
94
|
-
FAIL=true
|
|
95
|
-
fi
|
|
96
|
-
if [ -n "$EDIT_PAGES" ] && ! grep -qP "path:.*:id/edit" "$APP_TSX"; then
|
|
97
|
-
echo "BLOCKING: EditPage exists but no ':id/edit' route in App.tsx"
|
|
98
|
-
FAIL=true
|
|
99
|
-
fi
|
|
100
|
-
fi
|
|
101
|
-
|
|
102
|
-
# Check test files exist for form pages
|
|
103
|
-
FORM_PAGES=$(find "$PAGE_DIR" -name "*CreatePage.tsx" -o -name "*EditPage.tsx" 2>/dev/null | grep -v test)
|
|
104
|
-
if [ -n "$FORM_PAGES" ]; then
|
|
105
|
-
for FP in $FORM_PAGES; do
|
|
106
|
-
TF="${FP%.tsx}.test.tsx"
|
|
107
|
-
if [ ! -f "$TF" ]; then
|
|
108
|
-
echo "BLOCKING: Form page missing test: $FP → expected $TF"
|
|
109
|
-
FAIL=true
|
|
110
|
-
fi
|
|
111
|
-
done
|
|
112
|
-
fi
|
|
113
|
-
|
|
114
|
-
# Check at least SOME tests exist when pages exist
|
|
115
|
-
PAGE_COUNT=$(find "$PAGE_DIR" -name "*.tsx" ! -name "*.test.tsx" 2>/dev/null | grep -v node_modules | wc -l)
|
|
116
|
-
TEST_COUNT=$(find "$PAGE_DIR" -name "*.test.tsx" 2>/dev/null | grep -v node_modules | wc -l)
|
|
117
|
-
if [ "$PAGE_COUNT" -gt 0 ] && [ "$TEST_COUNT" -eq 0 ]; then
|
|
118
|
-
echo "BLOCKING: $PAGE_COUNT pages but ZERO test files"
|
|
119
|
-
FAIL=true
|
|
120
|
-
fi
|
|
121
|
-
|
|
122
|
-
if [ "$FAIL" = true ]; then
|
|
123
|
-
echo "Fix: Go back to step-03 and generate missing pages/tests/routes"
|
|
124
|
-
# MUST fix before proceeding
|
|
125
|
-
fi
|
|
126
|
-
fi
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
**If ANY check fails → return to step-03 to generate the missing pages, tests, or routes.**
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## 4-5. Build & Migration Validation
|
|
134
|
-
|
|
135
|
-
> **Reference:** Load `references/examine-build-validation.md` for detailed procedures:
|
|
136
|
-
> - Build verification (dotnet clean → restore → build + npm typecheck)
|
|
137
|
-
> - Error classification (categories A-F per error-classification.md)
|
|
138
|
-
> - Migration validation (pending changes, SQL Server apply, cleanup)
|
|
139
|
-
> - Integration tests (real SQL Server LocalDB)
|
|
140
|
-
> - Test database management
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## 6. Seed Data Completeness Check (if needs_seed_data)
|
|
145
|
-
|
|
146
|
-
| File | Checks |
|
|
147
|
-
|------|--------|
|
|
148
|
-
| NavigationApplicationSeedData | MUST be first, deterministic GUID for application (NOT for context — context is looked up by code), 4 lang translations |
|
|
149
|
-
| ApplicationRolesSeedData | 4 roles (admin, manager, contributor, viewer), deterministic GUIDs, references NavigationApplicationSeedData.ApplicationId |
|
|
150
|
-
| NavigationModuleSeedData | Deterministic GUIDs (SHA256), 4 languages (fr, en, it, de), GetModuleEntry + GetTranslationEntries |
|
|
151
|
-
| ↳ Section methods (same file) | (conditional: if sections exist) GetSectionEntries + GetSectionTranslationEntries, 4 languages, deterministic GUIDs, query actual module from DB for FK |
|
|
152
|
-
| ↳ Resource methods (same file) | (conditional: if resources exist) GetResourceEntries + resource translations, 4 languages, deterministic GUIDs, query actual section from DB for FK |
|
|
153
|
-
| Permissions.cs | Static constants class with `public static class {Module} { Read, Create, Update, Delete }`, paths match PermissionsSeedData |
|
|
154
|
-
| PermissionsSeedData | MCP generate_permissions used, paths match Permissions.cs, wildcard + CRUD |
|
|
155
|
-
| RolesSeedData | Admin=wildcard(*), Manager=CRU, Contributor=CR, Viewer=R. Role-permission entries reference permission paths from PermissionsSeedData |
|
|
156
|
-
| IClientSeedDataProvider | 4 Seed methods (Navigation, Roles, Permissions, RolePermissions), idempotent, factory methods, SaveChanges per group |
|
|
157
|
-
| DI Registration | `services.AddScoped<IClientSeedDataProvider, {App}SeedDataProvider>()` |
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## 6b. BLOCKING POST-CHECKs
|
|
162
|
-
|
|
163
|
-
Load and execute all checks from `references/post-checks.md`.
|
|
164
|
-
|
|
165
|
-
**If ANY POST-CHECK fails → fix in step-03, re-validate.**
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## 7. Acceptance Criteria POST-CHECK
|
|
170
|
-
|
|
171
|
-
For each AC inferred in step-01:
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
AC1: {criterion} → PASS / FAIL (evidence: {file:line or test})
|
|
175
|
-
AC2: {criterion} → PASS / FAIL (evidence: {file:line or test})
|
|
176
|
-
...
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**All ACs must PASS. If any FAIL, go back to step-03 to fix.**
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
## 8. eXamine Summary
|
|
184
|
-
|
|
185
|
-
```
|
|
186
|
-
**APEX SmartStack - eXamine Complete**
|
|
187
|
-
|
|
188
|
-
| Category | Checks | Status |
|
|
189
|
-
|----------|--------|--------|
|
|
190
|
-
| MCP conventions | validate_conventions | PASS (0 errors) |
|
|
191
|
-
| Build | dotnet build + npm typecheck | PASS |
|
|
192
|
-
| EF Core | migrations, pending changes, SQL Server apply | PASS / N/A |
|
|
193
|
-
| DB tests | Integration tests on SQL Server | PASS / N/A |
|
|
194
|
-
| Frontend | routes, lazy loading, forms as pages, i18n (4 langs + keys) | PASS / N/A |
|
|
195
|
-
| Security | TenantId filter, RequirePermission, no Guid.Empty, no !.Value | PASS / N/A |
|
|
196
|
-
| Seed data | completeness, deterministic GUIDs, no ContextId/RoleId constants | PASS / N/A |
|
|
197
|
-
| Code quality | PaginatedResult, EntityLookup (no FK select/input), CSS vars, search param | PASS / N/A |
|
|
198
|
-
| Migration completeness | ModelSnapshot covers ALL DbSet entities (POST-CHECK 44, 49) | PASS / N/A |
|
|
199
|
-
| NavRoute kebab-case | NavRoute + permissions use kebab-case (POST-CHECK 48) | PASS / N/A |
|
|
200
|
-
| DateOnly DTOs | Date fields use DateOnly not string (POST-CHECK 47) | PASS / N/A |
|
|
201
|
-
| I18n registration | Namespaces registered in i18n config (POST-CHECK 45) | PASS / N/A |
|
|
202
|
-
| Validators DI | FluentValidation registered in DI (POST-CHECK 46) | PASS / N/A |
|
|
203
|
-
| Route/NavRoute conflict | No [Route] alongside [NavRoute] on controllers (POST-CHECK 50) | PASS / N/A |
|
|
204
|
-
| Role-permission matrix | Admin=wildcard, Manager=CRU, Contributor=CR, Viewer=R (POST-CHECK 51) | PASS / N/A |
|
|
205
|
-
| PermissionAction enum | No Enum.Parse, only typed enum values 0-10 (POST-CHECK 52) | PASS / N/A |
|
|
206
|
-
| Navigation translations | 4 langs per level, section/resource translations present (POST-CHECK 53) | PASS / N/A |
|
|
207
|
-
| POST-CHECKs | 53 checks from references/post-checks.md | PASS / N/A |
|
|
208
|
-
| Acceptance criteria | AC1..ACn | {X}/{Y} PASS |
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
## 9. Save Output (if save_mode)
|
|
214
|
-
|
|
215
|
-
Write to `{output_dir}/04-examine.md` with validation results.
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## 10. Route to Next Step — TESTS ARE MANDATORY
|
|
220
|
-
|
|
221
|
-
> **CRITICAL — DO NOT STOP HERE.**
|
|
222
|
-
> Step-04 (eXamine) is NOT the final step. Tests MUST be scaffolded and run.
|
|
223
|
-
> Completing APEX without tests violates the methodology — skip is FORBIDDEN.
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
IF examine_mode (-x flag):
|
|
227
|
-
→ Load steps/step-05-deep-review.md (adversarial review)
|
|
228
|
-
→ Then step-06 (resolve) if BLOCKING findings
|
|
229
|
-
→ Then step-07 (tests) — ALWAYS
|
|
230
|
-
|
|
231
|
-
ELSE:
|
|
232
|
-
→ Load steps/step-07-tests.md — IMMEDIATELY after eXamine completes
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
**BLOCKING RULE:** The APEX workflow is NOT complete until steps 07-08 execute.
|
|
236
|
-
The success criteria require: "Tests: 100% pass, >= 80% coverage" — this is impossible without step-07.
|
|
237
|
-
|
|
238
|
-
**NEXT ACTION:** Load `steps/step-07-tests.md` now.
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
## 11. PRD Final Reconciliation (delegate mode only)
|
|
243
|
-
|
|
244
|
-
> **After all validation passes**, ensure the PRD file reflects the completed state.
|
|
245
|
-
|
|
246
|
-
```
|
|
247
|
-
IF delegate_mode:
|
|
248
|
-
Read {delegate_prd_path}
|
|
249
|
-
|
|
250
|
-
For ALL tasks belonging to this module:
|
|
251
|
-
IF task was executed by apex AND all checks passed:
|
|
252
|
-
Verify task.status == 'completed'
|
|
253
|
-
IF task was NOT in scope (different module):
|
|
254
|
-
Leave unchanged
|
|
255
|
-
|
|
256
|
-
Set prd.updated_at = new Date().toISOString()
|
|
257
|
-
|
|
258
|
-
If ALL module tasks completed:
|
|
259
|
-
Set prd.status = 'completed' (if single module)
|
|
260
|
-
OR leave prd.status = 'in_progress' (if multi-module, other modules remain)
|
|
261
|
-
|
|
262
|
-
Write back to {delegate_prd_path}
|
|
263
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: step-04-examine
|
|
3
|
+
description: MCP validation, build verification, seed data check, acceptance criteria
|
|
4
|
+
model: opus
|
|
5
|
+
prev_step: steps/step-03-execute.md
|
|
6
|
+
next_step: steps/step-05-deep-review.md
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Step 4: eXamine
|
|
10
|
+
|
|
11
|
+
> **This is the X in APEX.** Mandatory automated examination of all generated code.
|
|
12
|
+
|
|
13
|
+
**Goal:** Verify everything works. MCP conventions, build, seed data, acceptance criteria.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. MCP Convention Validation
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Call: mcp__smartstack__validate_conventions
|
|
21
|
+
|
|
22
|
+
Expected: 0 errors
|
|
23
|
+
If errors found:
|
|
24
|
+
→ Fix each error (use appropriate skill/MCP)
|
|
25
|
+
→ Re-validate until 0 errors
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 2. EF Core Migration Check (if needs_migration)
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Call: mcp__smartstack__check_migrations
|
|
34
|
+
|
|
35
|
+
Verify:
|
|
36
|
+
- Migration exists and is applied
|
|
37
|
+
- No pending model changes
|
|
38
|
+
- ModelSnapshot matches
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 3. Frontend Route Validation (if frontend modified)
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Call: mcp__smartstack__validate_frontend_routes
|
|
47
|
+
|
|
48
|
+
Verify:
|
|
49
|
+
- Routes nested inside correct Layout wrapper
|
|
50
|
+
- Route paths match controller patterns
|
|
51
|
+
- No orphan routes
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 3b. Frontend Page Completeness (BLOCKING)
|
|
55
|
+
|
|
56
|
+
> **ROOT CAUSE (test-v4-015):** Frontend generation created List + Detail pages but SKIPPED
|
|
57
|
+
> Create + Edit pages. ListPage buttons navigated to /create and /:id/edit → white screen / 404.
|
|
58
|
+
> Tests were also missing. This section catches that failure mode.
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
PAGE_DIR=$(find . -path "*/src/pages" -not -path "*/node_modules/*" -type d 2>/dev/null | head -1)
|
|
62
|
+
APP_TSX=$(find . -name "App.tsx" -not -path "*/node_modules/*" 2>/dev/null | head -1)
|
|
63
|
+
|
|
64
|
+
if [ -n "$PAGE_DIR" ]; then
|
|
65
|
+
# Check each module's ListPage for dead navigation links
|
|
66
|
+
LIST_PAGES=$(find "$PAGE_DIR" -name "*ListPage.tsx" -o -name "*sPage.tsx" 2>/dev/null | grep -v test | grep -v node_modules)
|
|
67
|
+
FAIL=false
|
|
68
|
+
for LIST_PAGE in $LIST_PAGES; do
|
|
69
|
+
LP_DIR=$(dirname "$LIST_PAGE")
|
|
70
|
+
MOD=$(basename "$LP_DIR")
|
|
71
|
+
|
|
72
|
+
HAS_CREATE_NAV=$(grep -P "navigate\(.*['/]create" "$LIST_PAGE" 2>/dev/null)
|
|
73
|
+
HAS_EDIT_NAV=$(grep -P "navigate\(.*['/]edit" "$LIST_PAGE" 2>/dev/null)
|
|
74
|
+
|
|
75
|
+
CREATE_PAGE=$(find "$LP_DIR" -name "*CreatePage.tsx" 2>/dev/null | head -1)
|
|
76
|
+
EDIT_PAGE=$(find "$LP_DIR" -name "*EditPage.tsx" 2>/dev/null | head -1)
|
|
77
|
+
|
|
78
|
+
if [ -n "$HAS_CREATE_NAV" ] && [ -z "$CREATE_PAGE" ]; then
|
|
79
|
+
echo "BLOCKING: $MOD ListPage navigates to /create but CreatePage does NOT exist → dead link"
|
|
80
|
+
FAIL=true
|
|
81
|
+
fi
|
|
82
|
+
if [ -n "$HAS_EDIT_NAV" ] && [ -z "$EDIT_PAGE" ]; then
|
|
83
|
+
echo "BLOCKING: $MOD ListPage navigates to /:id/edit but EditPage does NOT exist → dead link"
|
|
84
|
+
FAIL=true
|
|
85
|
+
fi
|
|
86
|
+
done
|
|
87
|
+
|
|
88
|
+
# Check route wiring in App.tsx
|
|
89
|
+
if [ -n "$APP_TSX" ]; then
|
|
90
|
+
CREATE_PAGES=$(find "$PAGE_DIR" -name "*CreatePage.tsx" 2>/dev/null | grep -v test)
|
|
91
|
+
EDIT_PAGES=$(find "$PAGE_DIR" -name "*EditPage.tsx" 2>/dev/null | grep -v test)
|
|
92
|
+
if [ -n "$CREATE_PAGES" ] && ! grep -qP "path:.*create" "$APP_TSX"; then
|
|
93
|
+
echo "BLOCKING: CreatePage exists but no 'create' route in App.tsx"
|
|
94
|
+
FAIL=true
|
|
95
|
+
fi
|
|
96
|
+
if [ -n "$EDIT_PAGES" ] && ! grep -qP "path:.*:id/edit" "$APP_TSX"; then
|
|
97
|
+
echo "BLOCKING: EditPage exists but no ':id/edit' route in App.tsx"
|
|
98
|
+
FAIL=true
|
|
99
|
+
fi
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
# Check test files exist for form pages
|
|
103
|
+
FORM_PAGES=$(find "$PAGE_DIR" -name "*CreatePage.tsx" -o -name "*EditPage.tsx" 2>/dev/null | grep -v test)
|
|
104
|
+
if [ -n "$FORM_PAGES" ]; then
|
|
105
|
+
for FP in $FORM_PAGES; do
|
|
106
|
+
TF="${FP%.tsx}.test.tsx"
|
|
107
|
+
if [ ! -f "$TF" ]; then
|
|
108
|
+
echo "BLOCKING: Form page missing test: $FP → expected $TF"
|
|
109
|
+
FAIL=true
|
|
110
|
+
fi
|
|
111
|
+
done
|
|
112
|
+
fi
|
|
113
|
+
|
|
114
|
+
# Check at least SOME tests exist when pages exist
|
|
115
|
+
PAGE_COUNT=$(find "$PAGE_DIR" -name "*.tsx" ! -name "*.test.tsx" 2>/dev/null | grep -v node_modules | wc -l)
|
|
116
|
+
TEST_COUNT=$(find "$PAGE_DIR" -name "*.test.tsx" 2>/dev/null | grep -v node_modules | wc -l)
|
|
117
|
+
if [ "$PAGE_COUNT" -gt 0 ] && [ "$TEST_COUNT" -eq 0 ]; then
|
|
118
|
+
echo "BLOCKING: $PAGE_COUNT pages but ZERO test files"
|
|
119
|
+
FAIL=true
|
|
120
|
+
fi
|
|
121
|
+
|
|
122
|
+
if [ "$FAIL" = true ]; then
|
|
123
|
+
echo "Fix: Go back to step-03 and generate missing pages/tests/routes"
|
|
124
|
+
# MUST fix before proceeding
|
|
125
|
+
fi
|
|
126
|
+
fi
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**If ANY check fails → return to step-03 to generate the missing pages, tests, or routes.**
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 4-5. Build & Migration Validation
|
|
134
|
+
|
|
135
|
+
> **Reference:** Load `references/examine-build-validation.md` for detailed procedures:
|
|
136
|
+
> - Build verification (dotnet clean → restore → build + npm typecheck)
|
|
137
|
+
> - Error classification (categories A-F per error-classification.md)
|
|
138
|
+
> - Migration validation (pending changes, SQL Server apply, cleanup)
|
|
139
|
+
> - Integration tests (real SQL Server LocalDB)
|
|
140
|
+
> - Test database management
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 6. Seed Data Completeness Check (if needs_seed_data)
|
|
145
|
+
|
|
146
|
+
| File | Checks |
|
|
147
|
+
|------|--------|
|
|
148
|
+
| NavigationApplicationSeedData | MUST be first, deterministic GUID for application (NOT for context — context is looked up by code), 4 lang translations |
|
|
149
|
+
| ApplicationRolesSeedData | 4 roles (admin, manager, contributor, viewer), deterministic GUIDs, references NavigationApplicationSeedData.ApplicationId |
|
|
150
|
+
| NavigationModuleSeedData | Deterministic GUIDs (SHA256), 4 languages (fr, en, it, de), GetModuleEntry + GetTranslationEntries |
|
|
151
|
+
| ↳ Section methods (same file) | (conditional: if sections exist) GetSectionEntries + GetSectionTranslationEntries, 4 languages, deterministic GUIDs, query actual module from DB for FK |
|
|
152
|
+
| ↳ Resource methods (same file) | (conditional: if resources exist) GetResourceEntries + resource translations, 4 languages, deterministic GUIDs, query actual section from DB for FK |
|
|
153
|
+
| Permissions.cs | Static constants class with `public static class {Module} { Read, Create, Update, Delete }`, paths match PermissionsSeedData |
|
|
154
|
+
| PermissionsSeedData | MCP generate_permissions used, paths match Permissions.cs, wildcard + CRUD |
|
|
155
|
+
| RolesSeedData | Admin=wildcard(*), Manager=CRU, Contributor=CR, Viewer=R. Role-permission entries reference permission paths from PermissionsSeedData |
|
|
156
|
+
| IClientSeedDataProvider | 4 Seed methods (Navigation, Roles, Permissions, RolePermissions), idempotent, factory methods, SaveChanges per group |
|
|
157
|
+
| DI Registration | `services.AddScoped<IClientSeedDataProvider, {App}SeedDataProvider>()` |
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 6b. BLOCKING POST-CHECKs
|
|
162
|
+
|
|
163
|
+
Load and execute all checks from `references/post-checks.md`.
|
|
164
|
+
|
|
165
|
+
**If ANY POST-CHECK fails → fix in step-03, re-validate.**
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 7. Acceptance Criteria POST-CHECK
|
|
170
|
+
|
|
171
|
+
For each AC inferred in step-01:
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
AC1: {criterion} → PASS / FAIL (evidence: {file:line or test})
|
|
175
|
+
AC2: {criterion} → PASS / FAIL (evidence: {file:line or test})
|
|
176
|
+
...
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**All ACs must PASS. If any FAIL, go back to step-03 to fix.**
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 8. eXamine Summary
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
**APEX SmartStack - eXamine Complete**
|
|
187
|
+
|
|
188
|
+
| Category | Checks | Status |
|
|
189
|
+
|----------|--------|--------|
|
|
190
|
+
| MCP conventions | validate_conventions | PASS (0 errors) |
|
|
191
|
+
| Build | dotnet build + npm typecheck | PASS |
|
|
192
|
+
| EF Core | migrations, pending changes, SQL Server apply | PASS / N/A |
|
|
193
|
+
| DB tests | Integration tests on SQL Server | PASS / N/A |
|
|
194
|
+
| Frontend | routes, lazy loading, forms as pages, i18n (4 langs + keys) | PASS / N/A |
|
|
195
|
+
| Security | TenantId filter, RequirePermission, no Guid.Empty, no !.Value | PASS / N/A |
|
|
196
|
+
| Seed data | completeness, deterministic GUIDs, no ContextId/RoleId constants | PASS / N/A |
|
|
197
|
+
| Code quality | PaginatedResult, EntityLookup (no FK select/input), CSS vars, search param | PASS / N/A |
|
|
198
|
+
| Migration completeness | ModelSnapshot covers ALL DbSet entities (POST-CHECK 44, 49) | PASS / N/A |
|
|
199
|
+
| NavRoute kebab-case | NavRoute + permissions use kebab-case (POST-CHECK 48) | PASS / N/A |
|
|
200
|
+
| DateOnly DTOs | Date fields use DateOnly not string (POST-CHECK 47) | PASS / N/A |
|
|
201
|
+
| I18n registration | Namespaces registered in i18n config (POST-CHECK 45) | PASS / N/A |
|
|
202
|
+
| Validators DI | FluentValidation registered in DI (POST-CHECK 46) | PASS / N/A |
|
|
203
|
+
| Route/NavRoute conflict | No [Route] alongside [NavRoute] on controllers (POST-CHECK 50) | PASS / N/A |
|
|
204
|
+
| Role-permission matrix | Admin=wildcard, Manager=CRU, Contributor=CR, Viewer=R (POST-CHECK 51) | PASS / N/A |
|
|
205
|
+
| PermissionAction enum | No Enum.Parse, only typed enum values 0-10 (POST-CHECK 52) | PASS / N/A |
|
|
206
|
+
| Navigation translations | 4 langs per level, section/resource translations present (POST-CHECK 53) | PASS / N/A |
|
|
207
|
+
| POST-CHECKs | 53 checks from references/post-checks.md | PASS / N/A |
|
|
208
|
+
| Acceptance criteria | AC1..ACn | {X}/{Y} PASS |
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 9. Save Output (if save_mode)
|
|
214
|
+
|
|
215
|
+
Write to `{output_dir}/04-examine.md` with validation results.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## 10. Route to Next Step — TESTS ARE MANDATORY
|
|
220
|
+
|
|
221
|
+
> **CRITICAL — DO NOT STOP HERE.**
|
|
222
|
+
> Step-04 (eXamine) is NOT the final step. Tests MUST be scaffolded and run.
|
|
223
|
+
> Completing APEX without tests violates the methodology — skip is FORBIDDEN.
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
IF examine_mode (-x flag):
|
|
227
|
+
→ Load steps/step-05-deep-review.md (adversarial review)
|
|
228
|
+
→ Then step-06 (resolve) if BLOCKING findings
|
|
229
|
+
→ Then step-07 (tests) — ALWAYS
|
|
230
|
+
|
|
231
|
+
ELSE:
|
|
232
|
+
→ Load steps/step-07-tests.md — IMMEDIATELY after eXamine completes
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**BLOCKING RULE:** The APEX workflow is NOT complete until steps 07-08 execute.
|
|
236
|
+
The success criteria require: "Tests: 100% pass, >= 80% coverage" — this is impossible without step-07.
|
|
237
|
+
|
|
238
|
+
**NEXT ACTION:** Load `steps/step-07-tests.md` now.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## 11. PRD Final Reconciliation (delegate mode only)
|
|
243
|
+
|
|
244
|
+
> **After all validation passes**, ensure the PRD file reflects the completed state.
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
IF delegate_mode:
|
|
248
|
+
Read {delegate_prd_path}
|
|
249
|
+
|
|
250
|
+
For ALL tasks belonging to this module:
|
|
251
|
+
IF task was executed by apex AND all checks passed:
|
|
252
|
+
Verify task.status == 'completed'
|
|
253
|
+
IF task was NOT in scope (different module):
|
|
254
|
+
Leave unchanged
|
|
255
|
+
|
|
256
|
+
Set prd.updated_at = new Date().toISOString()
|
|
257
|
+
|
|
258
|
+
If ALL module tasks completed:
|
|
259
|
+
Set prd.status = 'completed' (if single module)
|
|
260
|
+
OR leave prd.status = 'in_progress' (if multi-module, other modules remain)
|
|
261
|
+
|
|
262
|
+
Write back to {delegate_prd_path}
|
|
263
|
+
```
|