@atlashub/smartstack-cli 3.39.0 → 3.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.documentation/apex.html +644 -644
- package/.documentation/css/styles.css +2320 -2320
- package/.documentation/init.html +1377 -1377
- package/.documentation/js/app.js +780 -780
- package/.documentation/prd-json-v2.0.0.md +396 -396
- package/.documentation/testing-ba-e2e.md +462 -462
- package/config/default-config.json +95 -95
- package/config/mcp-defaults.json +62 -62
- package/config/settings.json +53 -53
- package/config/settings.local.example.json +16 -16
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.mjs +6 -4
- package/dist/mcp-entry.mjs.map +1 -1
- package/package.json +115 -115
- package/scripts/extract-api-endpoints.ts +325 -325
- package/scripts/extract-business-rules.ts +440 -440
- package/scripts/generate-doc-with-mock-ui.ts +804 -804
- package/scripts/health-check.sh +168 -168
- package/scripts/postinstall.js +18 -18
- package/templates/agents/action.md +37 -37
- package/templates/agents/ba-reader.md +378 -378
- package/templates/agents/ba-writer.md +861 -861
- package/templates/agents/code-reviewer.md +163 -163
- package/templates/agents/db-reader.md +149 -149
- package/templates/agents/docs-context-reader.md +143 -143
- package/templates/agents/docs-sync-checker.md +122 -122
- package/templates/agents/efcore/conflicts.md +84 -84
- package/templates/agents/efcore/db-deploy.md +74 -74
- package/templates/agents/efcore/db-reset.md +85 -85
- package/templates/agents/efcore/db-seed.md +61 -61
- package/templates/agents/efcore/db-status.md +86 -86
- package/templates/agents/efcore/migration.md +186 -186
- package/templates/agents/efcore/rebase-snapshot.md +108 -108
- package/templates/agents/efcore/scan.md +92 -92
- package/templates/agents/efcore/squash.md +161 -161
- package/templates/agents/explore-codebase.md +66 -66
- package/templates/agents/explore-docs.md +98 -98
- package/templates/agents/fix-grammar.md +50 -50
- package/templates/agents/gitflow/abort.md +45 -45
- package/templates/agents/gitflow/cleanup.md +96 -96
- package/templates/agents/gitflow/commit.md +236 -236
- package/templates/agents/gitflow/exec.md +48 -48
- package/templates/agents/gitflow/finish.md +146 -146
- package/templates/agents/gitflow/init-clone.md +199 -199
- package/templates/agents/gitflow/init-detect.md +137 -137
- package/templates/agents/gitflow/init-validate.md +225 -225
- package/templates/agents/gitflow/init.md +340 -340
- package/templates/agents/gitflow/merge.md +145 -145
- package/templates/agents/gitflow/plan.md +42 -42
- package/templates/agents/gitflow/pr.md +191 -191
- package/templates/agents/gitflow/review.md +49 -49
- package/templates/agents/gitflow/start.md +147 -147
- package/templates/agents/gitflow/status.md +95 -95
- package/templates/agents/mcp-healthcheck.md +163 -163
- package/templates/agents/snipper.md +37 -37
- package/templates/agents/websearch.md +46 -46
- package/templates/hooks/appsettings-guard.sh +76 -76
- package/templates/hooks/docs-drift-check.md +96 -96
- package/templates/hooks/ef-migration-check.md +139 -139
- package/templates/hooks/hooks.json +58 -58
- package/templates/hooks/mcp-check.md +64 -64
- package/templates/hooks/ralph-mcp-logger.sh +46 -46
- package/templates/hooks/ralph-session-end.sh +69 -69
- package/templates/hooks/stop-hook.sh +177 -177
- package/templates/hooks/wsl-dotnet-cleanup.sh +24 -24
- package/templates/mcp-scaffolding/component.tsx.hbs +318 -318
- package/templates/mcp-scaffolding/controller.cs.hbs +192 -192
- package/templates/mcp-scaffolding/entity-extension.cs.hbs +239 -239
- package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -116
- package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -133
- package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -126
- package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -261
- package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -53
- package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +436 -436
- package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -239
- package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -441
- package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -442
- package/templates/mcp-scaffolding/tests/service.test.cs.hbs +402 -402
- package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -428
- package/templates/project/DependencyInjection.Application.cs.template +25 -25
- package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -61
- package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -70
- package/templates/project/ExampleEntity.cs.template +116 -116
- package/templates/project/ExampleEntityConfiguration.cs.template +64 -64
- package/templates/project/ExampleService.cs.template +146 -146
- package/templates/project/ExtensionsDbContext.cs.template +41 -41
- package/templates/project/IExtensionsDbContext.cs.template +22 -22
- package/templates/project/Program.cs.template +47 -47
- package/templates/project/README.md +79 -79
- package/templates/project/api.ts.template +12 -12
- package/templates/project/appsettings.json.template +170 -170
- package/templates/project/claude-settings.json.template +5 -5
- package/templates/project/test-frontend/msw/handlers.ts +58 -58
- package/templates/project/test-frontend/msw/server.ts +25 -25
- package/templates/project/test-frontend/setup.ts +16 -16
- package/templates/project/test-frontend/test-utils.tsx +59 -59
- package/templates/project/test-frontend/vitest.config.ts +31 -31
- package/templates/ralph/README.md +93 -93
- package/templates/ralph/ralph.config.yaml +113 -113
- package/templates/scripts/setup-ralph-loop.sh +173 -173
- package/templates/skills/_resources/config-safety.md +61 -61
- package/templates/skills/_resources/context-digest-template.md +53 -53
- package/templates/skills/_resources/doc-context-cache.md +60 -60
- package/templates/skills/_resources/docs-manifest-schema.md +155 -155
- package/templates/skills/_resources/formatting-guide.md +124 -124
- package/templates/skills/_resources/mcp-validate-documentation-spec.md +181 -181
- package/templates/skills/_shared.md +228 -228
- package/templates/skills/admin/SKILL.md +48 -48
- package/templates/skills/ai-prompt/SKILL.md +107 -107
- package/templates/skills/ai-prompt/steps/step-00-init.md +47 -47
- package/templates/skills/ai-prompt/steps/step-01-implementation.md +122 -122
- package/templates/skills/apex/SKILL.md +168 -168
- package/templates/skills/apex/_shared.md +141 -141
- package/templates/skills/apex/references/agent-teams-protocol.md +164 -164
- package/templates/skills/apex/references/analysis-methods.md +141 -141
- package/templates/skills/apex/references/challenge-questions.md +145 -145
- package/templates/skills/apex/references/code-generation.md +412 -412
- package/templates/skills/apex/references/core-seed-data.md +1437 -1437
- package/templates/skills/apex/references/error-classification.md +144 -144
- package/templates/skills/apex/references/examine-build-validation.md +82 -82
- package/templates/skills/apex/references/execution-frontend-gates.md +177 -177
- package/templates/skills/apex/references/execution-frontend-patterns.md +105 -105
- package/templates/skills/apex/references/execution-layer1-rules.md +96 -96
- package/templates/skills/apex/references/initialization-challenge-flow.md +110 -110
- package/templates/skills/apex/references/planning-layer-mapping.md +151 -151
- package/templates/skills/apex/references/post-checks.md +1584 -1584
- package/templates/skills/apex/references/smartstack-api.md +1053 -1053
- package/templates/skills/apex/references/smartstack-frontend.md +1571 -1571
- package/templates/skills/apex/references/smartstack-layers.md +402 -402
- package/templates/skills/apex/steps/step-00-init.md +307 -307
- package/templates/skills/apex/steps/step-01-analyze.md +165 -165
- package/templates/skills/apex/steps/step-02-plan.md +144 -144
- package/templates/skills/apex/steps/step-03-execute.md +328 -328
- package/templates/skills/apex/steps/step-04-examine.md +263 -263
- package/templates/skills/apex/steps/step-05-deep-review.md +129 -129
- package/templates/skills/apex/steps/step-06-resolve.md +101 -101
- package/templates/skills/apex/steps/step-07-tests.md +238 -238
- package/templates/skills/apex/steps/step-08-run-tests.md +125 -125
- package/templates/skills/application/SKILL.md +4 -4
- package/templates/skills/application/references/application-roles-template.md +227 -227
- package/templates/skills/application/references/backend-controller-hierarchy.md +58 -58
- package/templates/skills/application/references/backend-entity-seeding.md +72 -72
- package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -83
- package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -79
- package/templates/skills/application/references/backend-verification.md +88 -88
- package/templates/skills/application/references/frontend-i18n-and-output.md +67 -67
- package/templates/skills/application/references/frontend-route-naming.md +117 -117
- package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -107
- package/templates/skills/application/references/frontend-verification.md +156 -156
- package/templates/skills/application/references/migration-checklist-troubleshooting.md +1 -1
- package/templates/skills/application/references/provider-template.md +177 -177
- package/templates/skills/application/references/roles-client-project-handling.md +55 -55
- package/templates/skills/application/references/roles-fallback-procedure.md +149 -149
- package/templates/skills/application/references/test-coverage-requirements.md +213 -213
- package/templates/skills/application/references/test-frontend.md +73 -73
- package/templates/skills/application/references/test-prerequisites.md +72 -72
- package/templates/skills/application/steps/step-05-frontend.md +176 -176
- package/templates/skills/application/steps/step-06-migration.md +193 -193
- package/templates/skills/application/steps/step-07-tests.md +356 -356
- package/templates/skills/application/steps/step-08-documentation.md +137 -137
- package/templates/skills/application/templates-backend.md +463 -463
- package/templates/skills/application/templates-frontend.md +685 -685
- package/templates/skills/application/templates-i18n.md +520 -520
- package/templates/skills/application/templates-seed.md +1096 -1096
- package/templates/skills/business-analyse/SKILL.md +327 -327
- package/templates/skills/business-analyse/_architecture.md +123 -123
- package/templates/skills/business-analyse/_elicitation.md +206 -206
- package/templates/skills/business-analyse/_module-loop.md +115 -115
- package/templates/skills/business-analyse/_shared.md +383 -383
- package/templates/skills/business-analyse/_suggestions.md +34 -34
- package/templates/skills/business-analyse/html/ba-interactive.html +4477 -4477
- package/templates/skills/business-analyse/html/build-html.js +77 -77
- package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +150 -150
- package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +227 -227
- package/templates/skills/business-analyse/html/src/scripts/03-render-cadrage.js +199 -199
- package/templates/skills/business-analyse/html/src/scripts/04-render-modules.js +205 -205
- package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +647 -647
- package/templates/skills/business-analyse/html/src/scripts/06-render-consolidation.js +195 -195
- package/templates/skills/business-analyse/html/src/scripts/07-render-handoff.js +92 -92
- package/templates/skills/business-analyse/html/src/scripts/08-editing.js +135 -135
- package/templates/skills/business-analyse/html/src/scripts/09-export.js +168 -168
- package/templates/skills/business-analyse/html/src/scripts/10-comments.js +171 -171
- package/templates/skills/business-analyse/html/src/scripts/11-review-panel.js +166 -166
- package/templates/skills/business-analyse/html/src/styles/01-variables.css +38 -38
- package/templates/skills/business-analyse/html/src/styles/02-layout.css +101 -101
- package/templates/skills/business-analyse/html/src/styles/03-navigation.css +120 -120
- package/templates/skills/business-analyse/html/src/styles/04-cards.css +196 -196
- package/templates/skills/business-analyse/html/src/styles/05-modules.css +454 -454
- package/templates/skills/business-analyse/html/src/styles/06-wireframes.css +272 -272
- package/templates/skills/business-analyse/html/src/styles/07-comments.css +184 -184
- package/templates/skills/business-analyse/html/src/styles/08-review-panel.css +241 -241
- package/templates/skills/business-analyse/html/src/template.html +516 -516
- package/templates/skills/business-analyse/patterns/suggestion-catalog.md +546 -546
- package/templates/skills/business-analyse/questionnaire/00-application.md +160 -160
- package/templates/skills/business-analyse/questionnaire/00b-project.md +85 -85
- package/templates/skills/business-analyse/questionnaire/01-context.md +185 -185
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +189 -189
- package/templates/skills/business-analyse/questionnaire/03-scope.md +164 -164
- package/templates/skills/business-analyse/questionnaire/04-data.md +88 -88
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +58 -58
- package/templates/skills/business-analyse/questionnaire/06-security.md +68 -68
- package/templates/skills/business-analyse/questionnaire/07-ui.md +76 -76
- package/templates/skills/business-analyse/questionnaire/08-performance.md +42 -42
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +45 -45
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +43 -43
- package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +59 -59
- package/templates/skills/business-analyse/questionnaire/12-migration.md +58 -58
- package/templates/skills/business-analyse/questionnaire/13-cross-module.md +69 -69
- package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -135
- package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -136
- package/templates/skills/business-analyse/questionnaire.md +337 -337
- package/templates/skills/business-analyse/react/application-viewer.md +242 -242
- package/templates/skills/business-analyse/react/components.md +551 -551
- package/templates/skills/business-analyse/react/i18n-template.md +306 -306
- package/templates/skills/business-analyse/references/acceptance-criteria.md +169 -169
- package/templates/skills/business-analyse/references/agent-module-prompt.md +362 -362
- package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +557 -557
- package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -190
- package/templates/skills/business-analyse/references/cache-warming-strategy.md +566 -566
- package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -41
- package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -74
- package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +115 -115
- package/templates/skills/business-analyse/references/cadrage-shared-modules.md +68 -69
- package/templates/skills/business-analyse/references/cadrage-structure-cards.md +85 -85
- package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -297
- package/templates/skills/business-analyse/references/consolidation-structural-checks.md +107 -107
- package/templates/skills/business-analyse/references/deploy-data-build.md +180 -180
- package/templates/skills/business-analyse/references/deploy-modes.md +118 -118
- package/templates/skills/business-analyse/references/detection-strategies.md +424 -424
- package/templates/skills/business-analyse/references/entity-architecture-decision.md +218 -218
- package/templates/skills/business-analyse/references/handoff-file-templates.md +120 -120
- package/templates/skills/business-analyse/references/handoff-mappings.md +81 -81
- package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -312
- package/templates/skills/business-analyse/references/html-data-mapping.md +299 -299
- package/templates/skills/business-analyse/references/init-schema-deployment.md +65 -65
- package/templates/skills/business-analyse/references/naming-conventions.md +243 -243
- package/templates/skills/business-analyse/references/prd-generation.md +258 -258
- package/templates/skills/business-analyse/references/review-data-mapping.md +363 -363
- package/templates/skills/business-analyse/references/robustness-checks.md +542 -542
- package/templates/skills/business-analyse/references/spec-auto-inference.md +111 -111
- package/templates/skills/business-analyse/references/team-orchestration.md +1022 -1022
- package/templates/skills/business-analyse/references/ui-dashboard-spec.md +85 -85
- package/templates/skills/business-analyse/references/ui-resource-cards.md +259 -259
- package/templates/skills/business-analyse/references/validate-incremental-html.md +121 -121
- package/templates/skills/business-analyse/references/validation-checklist.md +347 -347
- package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +335 -335
- package/templates/skills/business-analyse/schemas/application-schema.json +453 -453
- package/templates/skills/business-analyse/schemas/feature-schema.json +53 -53
- package/templates/skills/business-analyse/schemas/project-schema.json +485 -485
- package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +201 -201
- package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +82 -82
- package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +80 -80
- package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +70 -70
- package/templates/skills/business-analyse/schemas/sections/specification-schema.json +547 -547
- package/templates/skills/business-analyse/schemas/sections/validation-schema.json +93 -93
- package/templates/skills/business-analyse/schemas/shared/common-defs.json +226 -226
- package/templates/skills/business-analyse/steps/step-00-init.md +575 -576
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +767 -767
- package/templates/skills/business-analyse/steps/step-01b-applications.md +419 -419
- package/templates/skills/business-analyse/steps/step-02-decomposition.md +387 -387
- package/templates/skills/business-analyse/steps/step-03a-data.md +16 -16
- package/templates/skills/business-analyse/steps/step-03a1-setup.md +506 -506
- package/templates/skills/business-analyse/steps/step-03a2-analysis.md +252 -252
- package/templates/skills/business-analyse/steps/step-03b-ui.md +425 -425
- package/templates/skills/business-analyse/steps/step-03c-compile.md +611 -611
- package/templates/skills/business-analyse/steps/step-03d-validate.md +783 -783
- package/templates/skills/business-analyse/steps/step-04-consolidation.md +17 -17
- package/templates/skills/business-analyse/steps/step-04a-collect.md +415 -415
- package/templates/skills/business-analyse/steps/step-04b-analyze.md +163 -163
- package/templates/skills/business-analyse/steps/step-04c-decide.md +186 -186
- package/templates/skills/business-analyse/steps/step-05a-handoff.md +840 -840
- package/templates/skills/business-analyse/steps/step-05b-deploy.md +522 -522
- package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +703 -703
- package/templates/skills/business-analyse/steps/step-06-review.md +278 -278
- package/templates/skills/business-analyse/templates/tpl-frd.md +168 -168
- package/templates/skills/business-analyse/templates/tpl-handoff.md +186 -186
- package/templates/skills/business-analyse/templates/tpl-launch-displays.md +59 -59
- package/templates/skills/business-analyse/templates/tpl-progress.md +172 -172
- package/templates/skills/business-analyse/templates-frd.md +476 -476
- package/templates/skills/business-analyse/templates-react.md +574 -574
- package/templates/skills/cc-agent/SKILL.md +129 -129
- package/templates/skills/cc-agent/references/agent-behavior-patterns.md +95 -95
- package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -213
- package/templates/skills/cc-agent/references/permission-modes.md +102 -102
- package/templates/skills/cc-agent/references/tools-reference.md +144 -144
- package/templates/skills/cc-agent/steps/step-00-init.md +134 -134
- package/templates/skills/cc-agent/steps/step-01-design.md +186 -186
- package/templates/skills/cc-agent/steps/step-02-generate.md +131 -131
- package/templates/skills/cc-agent/steps/step-03-validate.md +130 -130
- package/templates/skills/cc-agent/templates/agent-categorized.md +67 -67
- package/templates/skills/cc-agent/templates/agent-standalone.md +56 -56
- package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -94
- package/templates/skills/cc-audit/SKILL.md +108 -108
- package/templates/skills/cc-audit/references/agent-checklist.md +91 -91
- package/templates/skills/cc-audit/references/hook-checklist.md +110 -110
- package/templates/skills/cc-audit/references/skill-checklist.md +70 -70
- package/templates/skills/cc-audit/steps/step-00-init.md +98 -98
- package/templates/skills/cc-audit/steps/step-01-scan.md +142 -142
- package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -158
- package/templates/skills/cc-audit/steps/step-03-report.md +142 -142
- package/templates/skills/cc-skill/SKILL.md +134 -134
- package/templates/skills/cc-skill/references/best-practices.md +167 -167
- package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -182
- package/templates/skills/cc-skill/references/skill-patterns.md +199 -199
- package/templates/skills/cc-skill/steps/step-00-init.md +119 -119
- package/templates/skills/cc-skill/steps/step-01-design.md +199 -199
- package/templates/skills/cc-skill/steps/step-02-generate.md +145 -145
- package/templates/skills/cc-skill/steps/step-03-steps.md +151 -151
- package/templates/skills/cc-skill/steps/step-04-validate.md +124 -124
- package/templates/skills/cc-skill/templates/skill-forked.md +85 -85
- package/templates/skills/cc-skill/templates/skill-progressive.md +102 -102
- package/templates/skills/cc-skill/templates/skill-simple.md +75 -75
- package/templates/skills/cc-skill/templates/step-template.md +82 -82
- package/templates/skills/check-version/SKILL.md +196 -196
- package/templates/skills/controller/SKILL.md +162 -162
- package/templates/skills/controller/postman-templates.md +614 -614
- package/templates/skills/controller/references/controller-code-templates.md +159 -159
- package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -209
- package/templates/skills/controller/references/permission-sync-templates.md +149 -149
- package/templates/skills/controller/steps/step-00-init.md +193 -191
- package/templates/skills/controller/steps/step-01-analyze.md +146 -146
- package/templates/skills/controller/steps/step-02-plan.md +176 -176
- package/templates/skills/controller/steps/step-03-generate.md +189 -189
- package/templates/skills/controller/steps/step-04-perms.md +80 -80
- package/templates/skills/controller/steps/step-05-validate.md +107 -107
- package/templates/skills/controller/templates.md +1555 -1555
- package/templates/skills/debug/SKILL.md +70 -70
- package/templates/skills/debug/references/team-protocol.md +232 -232
- package/templates/skills/debug/steps/step-00-init.md +57 -57
- package/templates/skills/debug/steps/step-01-analyze.md +219 -219
- package/templates/skills/debug/steps/step-02-resolve.md +85 -85
- package/templates/skills/documentation/SKILL.md +132 -132
- package/templates/skills/documentation/data-schema.md +227 -227
- package/templates/skills/documentation/steps/step-00-init.md +70 -70
- package/templates/skills/documentation/steps/step-01-scan.md +113 -113
- package/templates/skills/documentation/steps/step-02-generate.md +231 -231
- package/templates/skills/documentation/steps/step-03-validate.md +251 -238
- package/templates/skills/documentation/templates.md +662 -663
- package/templates/skills/efcore/SKILL.md +167 -167
- package/templates/skills/efcore/references/both-contexts.md +32 -32
- package/templates/skills/efcore/references/database-operations.md +67 -67
- package/templates/skills/efcore/references/destructive-operations.md +38 -38
- package/templates/skills/efcore/references/reset-operations.md +81 -81
- package/templates/skills/efcore/references/seed-methods.md +86 -86
- package/templates/skills/efcore/references/shared-init-functions.md +250 -250
- package/templates/skills/efcore/references/sql-objects-injection.md +61 -61
- package/templates/skills/efcore/references/troubleshooting.md +81 -81
- package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -227
- package/templates/skills/efcore/steps/db/step-deploy.md +217 -217
- package/templates/skills/efcore/steps/db/step-reset.md +186 -186
- package/templates/skills/efcore/steps/db/step-seed.md +166 -166
- package/templates/skills/efcore/steps/db/step-status.md +173 -173
- package/templates/skills/efcore/steps/migration/step-00-init.md +102 -102
- package/templates/skills/efcore/steps/migration/step-01-check.md +164 -164
- package/templates/skills/efcore/steps/migration/step-02-create.md +160 -160
- package/templates/skills/efcore/steps/migration/step-03-validate.md +168 -168
- package/templates/skills/efcore/steps/rebase-snapshot/step-00-init.md +173 -173
- package/templates/skills/efcore/steps/rebase-snapshot/step-01-backup.md +100 -100
- package/templates/skills/efcore/steps/rebase-snapshot/step-02-fetch.md +115 -115
- package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +112 -112
- package/templates/skills/efcore/steps/rebase-snapshot/step-04-validate.md +157 -157
- package/templates/skills/efcore/steps/shared/step-00-init.md +131 -131
- package/templates/skills/efcore/steps/squash/step-00-init.md +141 -141
- package/templates/skills/efcore/steps/squash/step-01-backup.md +120 -120
- package/templates/skills/efcore/steps/squash/step-02-fetch.md +168 -168
- package/templates/skills/efcore/steps/squash/step-03-create.md +184 -184
- package/templates/skills/efcore/steps/squash/step-04-validate.md +174 -174
- package/templates/skills/explore/SKILL.md +98 -98
- package/templates/skills/feature-full/SKILL.md +111 -111
- package/templates/skills/feature-full/steps/step-00-init.md +57 -57
- package/templates/skills/feature-full/steps/step-01-implementation.md +120 -120
- package/templates/skills/gitflow/SKILL.md +377 -377
- package/templates/skills/gitflow/_shared.md +620 -620
- package/templates/skills/gitflow/phases/abort.md +189 -189
- package/templates/skills/gitflow/phases/cleanup.md +234 -234
- package/templates/skills/gitflow/phases/status.md +192 -192
- package/templates/skills/gitflow/references/commit-message-generation.md +58 -58
- package/templates/skills/gitflow/references/commit-migration-validation.md +49 -49
- package/templates/skills/gitflow/references/finish-cleanup.md +55 -55
- package/templates/skills/gitflow/references/finish-version-bumping.md +45 -45
- package/templates/skills/gitflow/references/init-config-template.md +135 -135
- package/templates/skills/gitflow/references/init-environment-detection.md +41 -41
- package/templates/skills/gitflow/references/init-name-normalization.md +103 -103
- package/templates/skills/gitflow/references/init-questions.md +185 -185
- package/templates/skills/gitflow/references/init-structure-creation.md +75 -75
- package/templates/skills/gitflow/references/init-version-detection.md +21 -21
- package/templates/skills/gitflow/references/init-workspace-detection.md +43 -43
- package/templates/skills/gitflow/references/merge-ci-status.md +36 -36
- package/templates/skills/gitflow/references/merge-execution.md +62 -62
- package/templates/skills/gitflow/references/merge-pr-context.md +76 -76
- package/templates/skills/gitflow/references/plan-template.md +69 -69
- package/templates/skills/gitflow/references/pr-build-checks.md +60 -60
- package/templates/skills/gitflow/references/pr-generation.md +58 -58
- package/templates/skills/gitflow/references/start-branch-normalization.md +28 -28
- package/templates/skills/gitflow/references/start-efcore-preflight.md +70 -70
- package/templates/skills/gitflow/references/start-local-config.md +113 -113
- package/templates/skills/gitflow/references/start-worktree-creation.md +50 -50
- package/templates/skills/gitflow/references/sync-push-verify.md +44 -44
- package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -38
- package/templates/skills/gitflow/steps/step-commit.md +199 -199
- package/templates/skills/gitflow/steps/step-finish.md +147 -147
- package/templates/skills/gitflow/steps/step-init.md +190 -190
- package/templates/skills/gitflow/steps/step-merge.md +85 -85
- package/templates/skills/gitflow/steps/step-plan.md +151 -151
- package/templates/skills/gitflow/steps/step-pr.md +199 -199
- package/templates/skills/gitflow/steps/step-start.md +195 -195
- package/templates/skills/gitflow/steps/step-sync.md +161 -161
- package/templates/skills/gitflow/templates/config.json +72 -72
- package/templates/skills/mcp/SKILL.md +62 -62
- package/templates/skills/mcp/steps/step-01-healthcheck.md +108 -108
- package/templates/skills/mcp/steps/step-02-tools.md +73 -73
- package/templates/skills/notification/SKILL.md +173 -173
- package/templates/skills/quick-search/SKILL.md +99 -99
- package/templates/skills/ralph-loop/SKILL.md +234 -234
- package/templates/skills/ralph-loop/references/category-completeness.md +185 -185
- package/templates/skills/ralph-loop/references/category-rules.md +96 -96
- package/templates/skills/ralph-loop/references/compact-loop.md +300 -300
- package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -127
- package/templates/skills/ralph-loop/references/module-transition.md +151 -151
- package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -171
- package/templates/skills/ralph-loop/references/parallel-execution.md +246 -246
- package/templates/skills/ralph-loop/references/section-splitting.md +439 -439
- package/templates/skills/ralph-loop/references/task-transform-legacy.md +256 -256
- package/templates/skills/ralph-loop/references/team-orchestration.md +547 -547
- package/templates/skills/ralph-loop/steps/step-00-init.md +150 -150
- package/templates/skills/ralph-loop/steps/step-01-task.md +174 -174
- package/templates/skills/ralph-loop/steps/step-02-execute.md +177 -177
- package/templates/skills/ralph-loop/steps/step-03-commit.md +92 -92
- package/templates/skills/ralph-loop/steps/step-04-check.md +207 -207
- package/templates/skills/ralph-loop/steps/step-05-report.md +175 -175
- package/templates/skills/refactor/SKILL.md +56 -56
- package/templates/skills/refactor/steps/step-01-discover.md +60 -60
- package/templates/skills/refactor/steps/step-02-execute.md +67 -67
- package/templates/skills/review-code/SKILL.md +94 -94
- package/templates/skills/review-code/references/clean-code-principles.md +292 -292
- package/templates/skills/review-code/references/code-quality-metrics.md +174 -174
- package/templates/skills/review-code/references/feedback-patterns.md +149 -149
- package/templates/skills/review-code/references/owasp-api-top10.md +243 -243
- package/templates/skills/review-code/references/security-checklist.md +212 -212
- package/templates/skills/review-code/steps/step-01-smartstack.md +96 -96
- package/templates/skills/review-code/steps/step-02-detailed-review.md +80 -80
- package/templates/skills/review-code/steps/step-03-react.md +44 -44
- package/templates/skills/ui-components/SKILL.md +137 -137
- package/templates/skills/ui-components/accessibility.md +170 -170
- package/templates/skills/ui-components/patterns/dashboard-chart.md +327 -327
- package/templates/skills/ui-components/patterns/data-table.md +39 -39
- package/templates/skills/ui-components/patterns/entity-card.md +77 -77
- package/templates/skills/ui-components/patterns/grid-layout.md +91 -91
- package/templates/skills/ui-components/patterns/kanban.md +43 -43
- package/templates/skills/ui-components/responsive-guidelines.md +278 -278
- package/templates/skills/ui-components/style-guide.md +113 -113
- package/templates/skills/utils/SKILL.md +44 -44
- package/templates/skills/utils/subcommands/test-web-config.md +152 -152
- package/templates/skills/utils/subcommands/test-web.md +123 -123
- package/templates/skills/validate/SKILL.md +181 -181
- package/templates/skills/validate-feature/SKILL.md +101 -101
- package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -140
- package/templates/skills/validate-feature/references/db-validation-checks.md +180 -180
- package/templates/skills/validate-feature/steps/step-00-dependencies.md +121 -121
- package/templates/skills/validate-feature/steps/step-01-compile.md +39 -39
- package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -45
- package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -53
- package/templates/skills/validate-feature/steps/step-04-api-smoke.md +94 -94
- package/templates/skills/validate-feature/steps/step-05-db-validation.md +149 -149
- package/templates/skills/workflow/SKILL.md +127 -127
- package/templates/skills/workflow/steps/step-00-init.md +57 -57
- package/templates/skills/workflow/steps/step-01-implementation.md +84 -84
- package/templates/test-web/api-health.json +38 -38
- package/templates/test-web/minimal.json +19 -19
- package/templates/test-web/npm-package.json +46 -46
- package/templates/test-web/seo-check.json +54 -54
|
@@ -1,127 +1,127 @@
|
|
|
1
|
-
# Resume and Recovery Logic
|
|
2
|
-
|
|
3
|
-
> **Reference for:** step-00-init.md sections 4 (Resume Mode) and 4a (Auto-Recovery)
|
|
4
|
-
> **Purpose:** Handle resumption of interrupted loops and auto-recovery from BA artifacts
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Resume Mode
|
|
9
|
-
|
|
10
|
-
If `{resume_mode} = true` (user passed `-r` flag):
|
|
11
|
-
|
|
12
|
-
```javascript
|
|
13
|
-
// Check PRD exists
|
|
14
|
-
if (!fileExists('.ralph/prd.json')) {
|
|
15
|
-
console.error('ERROR: -r flag set but .ralph/prd.json not found');
|
|
16
|
-
STOP;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const prd = readJSON('.ralph/prd.json');
|
|
20
|
-
|
|
21
|
-
// Detect format
|
|
22
|
-
let resumeValid = false;
|
|
23
|
-
if (prd.$version === '3.0.0') {
|
|
24
|
-
// v3 unified — native format
|
|
25
|
-
resumeValid = true;
|
|
26
|
-
console.log('Resume: v3.0.0 unified PRD');
|
|
27
|
-
} else if (prd.$version === '2.0.0') {
|
|
28
|
-
// v2 legacy — OK to resume
|
|
29
|
-
resumeValid = true;
|
|
30
|
-
console.log('Resume: v2.0.0 legacy PRD');
|
|
31
|
-
} else if (prd.project && prd.requirements && !prd.$version) {
|
|
32
|
-
// FORMAT A deprecated — warn but transform
|
|
33
|
-
console.warn('⚠ DEPRECATED: FORMAT A prd.json detected during resume');
|
|
34
|
-
console.warn('Re-run `ss derive-prd` to generate v3 format');
|
|
35
|
-
// NOTE: Transformation happens in step-01, not here
|
|
36
|
-
resumeValid = true;
|
|
37
|
-
} else {
|
|
38
|
-
console.error('ERROR: .ralph/prd.json format not recognized');
|
|
39
|
-
STOP;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (resumeValid) {
|
|
43
|
-
// Check branch consistency
|
|
44
|
-
const branch = prd.metadata?.branch || 'unknown';
|
|
45
|
-
const currentBranch = getCurrentBranch();
|
|
46
|
-
if (branch !== currentBranch) {
|
|
47
|
-
console.warn(`⚠ Branch mismatch: PRD from ${branch}, currently on ${currentBranch}`);
|
|
48
|
-
console.warn('Continuing anyway — verify this is intentional');
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Restore state
|
|
52
|
-
{current_iteration} = prd.config?.current_iteration || 1;
|
|
53
|
-
{completion_promise} = prd.config?.completion_promise || null;
|
|
54
|
-
{max_iterations} = prd.config?.max_iterations || 50;
|
|
55
|
-
|
|
56
|
-
// Restore multi-module state if present
|
|
57
|
-
if (fileExists('.ralph/modules-queue.json')) {
|
|
58
|
-
{modules_queue} = readJSON('.ralph/modules-queue.json');
|
|
59
|
-
{current_module} = {modules_queue}.modules[{modules_queue}.currentIndex]?.code;
|
|
60
|
-
console.log(`Multi-module resume: ${{current_module}} (${{modules_queue}.currentIndex + 1}/${{modules_queue}.totalModules})`);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
console.log(`Resuming from iteration ${{current_iteration}}`);
|
|
64
|
-
// Continue to step-01
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Auto-Recovery: BA Artifacts Without PRD
|
|
71
|
-
|
|
72
|
-
If no PRD files exist (neither `.ralph/prd-*.json` nor `.ralph/prd.json`):
|
|
73
|
-
|
|
74
|
-
```javascript
|
|
75
|
-
const masterFeature = findFile('docs/business/**/business-analyse/**/feature.json');
|
|
76
|
-
|
|
77
|
-
if (!masterFeature) {
|
|
78
|
-
// No BA artifacts found — start fresh
|
|
79
|
-
console.log('No existing PRD or BA artifacts — starting new loop');
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const master = readJSON(masterFeature);
|
|
84
|
-
const handoffStatus = master.status || master.handoff?.status || null;
|
|
85
|
-
|
|
86
|
-
if (handoffStatus === 'handed-off') {
|
|
87
|
-
// BA handoff completed — auto-derive PRDs
|
|
88
|
-
console.log('BA artifacts detected without PRD — auto-recovering...');
|
|
89
|
-
|
|
90
|
-
// Call ss derive-prd to generate PRD files
|
|
91
|
-
const result = exec(`ss derive-prd --application ${masterFeature}`);
|
|
92
|
-
|
|
93
|
-
if (result.exitCode !== 0) {
|
|
94
|
-
console.error('ss derive-prd failed — cannot auto-recover');
|
|
95
|
-
STOP;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const newPrds = glob('.ralph/prd-*.json');
|
|
99
|
-
if (newPrds.length === 0) {
|
|
100
|
-
console.error('ss derive-prd did not create any PRD files');
|
|
101
|
-
STOP;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
console.log(`Auto-recovered ${newPrds.length} PRD file(s): ${newPrds.map(f => f.split('/').pop()).join(', ')}`);
|
|
105
|
-
// Continue to detect multi-module (section 4b)
|
|
106
|
-
} else {
|
|
107
|
-
// BA handoff NOT complete
|
|
108
|
-
console.warn(`⚠ BA handoff status: "${handoffStatus}" (expected "handed-off")`);
|
|
109
|
-
console.warn('Cannot auto-recover PRD files without complete handoff');
|
|
110
|
-
console.warn('Run /business-analyse to complete the handoff, then retry /ralph-loop');
|
|
111
|
-
STOP;
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## State After Recovery
|
|
118
|
-
|
|
119
|
-
After resume or auto-recovery:
|
|
120
|
-
|
|
121
|
-
```javascript
|
|
122
|
-
// If PRD now exists (either resumed or recovered):
|
|
123
|
-
// - Continue to section 4b (Detect Multi-Module)
|
|
124
|
-
// - Initialize modules-queue.json if 2+ PRD files found
|
|
125
|
-
// - Set {modules_queue} and {current_module} appropriately
|
|
126
|
-
// - Proceed to step-01 to load tasks
|
|
127
|
-
```
|
|
1
|
+
# Resume and Recovery Logic
|
|
2
|
+
|
|
3
|
+
> **Reference for:** step-00-init.md sections 4 (Resume Mode) and 4a (Auto-Recovery)
|
|
4
|
+
> **Purpose:** Handle resumption of interrupted loops and auto-recovery from BA artifacts
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Resume Mode
|
|
9
|
+
|
|
10
|
+
If `{resume_mode} = true` (user passed `-r` flag):
|
|
11
|
+
|
|
12
|
+
```javascript
|
|
13
|
+
// Check PRD exists
|
|
14
|
+
if (!fileExists('.ralph/prd.json')) {
|
|
15
|
+
console.error('ERROR: -r flag set but .ralph/prd.json not found');
|
|
16
|
+
STOP;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const prd = readJSON('.ralph/prd.json');
|
|
20
|
+
|
|
21
|
+
// Detect format
|
|
22
|
+
let resumeValid = false;
|
|
23
|
+
if (prd.$version === '3.0.0') {
|
|
24
|
+
// v3 unified — native format
|
|
25
|
+
resumeValid = true;
|
|
26
|
+
console.log('Resume: v3.0.0 unified PRD');
|
|
27
|
+
} else if (prd.$version === '2.0.0') {
|
|
28
|
+
// v2 legacy — OK to resume
|
|
29
|
+
resumeValid = true;
|
|
30
|
+
console.log('Resume: v2.0.0 legacy PRD');
|
|
31
|
+
} else if (prd.project && prd.requirements && !prd.$version) {
|
|
32
|
+
// FORMAT A deprecated — warn but transform
|
|
33
|
+
console.warn('⚠ DEPRECATED: FORMAT A prd.json detected during resume');
|
|
34
|
+
console.warn('Re-run `ss derive-prd` to generate v3 format');
|
|
35
|
+
// NOTE: Transformation happens in step-01, not here
|
|
36
|
+
resumeValid = true;
|
|
37
|
+
} else {
|
|
38
|
+
console.error('ERROR: .ralph/prd.json format not recognized');
|
|
39
|
+
STOP;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (resumeValid) {
|
|
43
|
+
// Check branch consistency
|
|
44
|
+
const branch = prd.metadata?.branch || 'unknown';
|
|
45
|
+
const currentBranch = getCurrentBranch();
|
|
46
|
+
if (branch !== currentBranch) {
|
|
47
|
+
console.warn(`⚠ Branch mismatch: PRD from ${branch}, currently on ${currentBranch}`);
|
|
48
|
+
console.warn('Continuing anyway — verify this is intentional');
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Restore state
|
|
52
|
+
{current_iteration} = prd.config?.current_iteration || 1;
|
|
53
|
+
{completion_promise} = prd.config?.completion_promise || null;
|
|
54
|
+
{max_iterations} = prd.config?.max_iterations || 50;
|
|
55
|
+
|
|
56
|
+
// Restore multi-module state if present
|
|
57
|
+
if (fileExists('.ralph/modules-queue.json')) {
|
|
58
|
+
{modules_queue} = readJSON('.ralph/modules-queue.json');
|
|
59
|
+
{current_module} = {modules_queue}.modules[{modules_queue}.currentIndex]?.code;
|
|
60
|
+
console.log(`Multi-module resume: ${{current_module}} (${{modules_queue}.currentIndex + 1}/${{modules_queue}.totalModules})`);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
console.log(`Resuming from iteration ${{current_iteration}}`);
|
|
64
|
+
// Continue to step-01
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Auto-Recovery: BA Artifacts Without PRD
|
|
71
|
+
|
|
72
|
+
If no PRD files exist (neither `.ralph/prd-*.json` nor `.ralph/prd.json`):
|
|
73
|
+
|
|
74
|
+
```javascript
|
|
75
|
+
const masterFeature = findFile('docs/business/**/business-analyse/**/feature.json');
|
|
76
|
+
|
|
77
|
+
if (!masterFeature) {
|
|
78
|
+
// No BA artifacts found — start fresh
|
|
79
|
+
console.log('No existing PRD or BA artifacts — starting new loop');
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const master = readJSON(masterFeature);
|
|
84
|
+
const handoffStatus = master.status || master.handoff?.status || null;
|
|
85
|
+
|
|
86
|
+
if (handoffStatus === 'handed-off') {
|
|
87
|
+
// BA handoff completed — auto-derive PRDs
|
|
88
|
+
console.log('BA artifacts detected without PRD — auto-recovering...');
|
|
89
|
+
|
|
90
|
+
// Call ss derive-prd to generate PRD files
|
|
91
|
+
const result = exec(`ss derive-prd --application ${masterFeature}`);
|
|
92
|
+
|
|
93
|
+
if (result.exitCode !== 0) {
|
|
94
|
+
console.error('ss derive-prd failed — cannot auto-recover');
|
|
95
|
+
STOP;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const newPrds = glob('.ralph/prd-*.json');
|
|
99
|
+
if (newPrds.length === 0) {
|
|
100
|
+
console.error('ss derive-prd did not create any PRD files');
|
|
101
|
+
STOP;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
console.log(`Auto-recovered ${newPrds.length} PRD file(s): ${newPrds.map(f => f.split('/').pop()).join(', ')}`);
|
|
105
|
+
// Continue to detect multi-module (section 4b)
|
|
106
|
+
} else {
|
|
107
|
+
// BA handoff NOT complete
|
|
108
|
+
console.warn(`⚠ BA handoff status: "${handoffStatus}" (expected "handed-off")`);
|
|
109
|
+
console.warn('Cannot auto-recover PRD files without complete handoff');
|
|
110
|
+
console.warn('Run /business-analyse to complete the handoff, then retry /ralph-loop');
|
|
111
|
+
STOP;
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## State After Recovery
|
|
118
|
+
|
|
119
|
+
After resume or auto-recovery:
|
|
120
|
+
|
|
121
|
+
```javascript
|
|
122
|
+
// If PRD now exists (either resumed or recovered):
|
|
123
|
+
// - Continue to section 4b (Detect Multi-Module)
|
|
124
|
+
// - Initialize modules-queue.json if 2+ PRD files found
|
|
125
|
+
// - Set {modules_queue} and {current_module} appropriately
|
|
126
|
+
// - Proceed to step-01 to load tasks
|
|
127
|
+
```
|
|
@@ -1,151 +1,151 @@
|
|
|
1
|
-
# Module Transition Logic
|
|
2
|
-
|
|
3
|
-
> **Reference for:** step-04-check.md section 3b
|
|
4
|
-
> **Trigger:** Multi-module mode + current module complete
|
|
5
|
-
> **Purpose:** Advance to next module in queue OR finish if all done
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## When Module Transition Occurs
|
|
10
|
-
|
|
11
|
-
```javascript
|
|
12
|
-
const queuePath = '.ralph/modules-queue.json';
|
|
13
|
-
if (fileExists(queuePath)) {
|
|
14
|
-
const queue = readJSON(queuePath);
|
|
15
|
-
const currentModule = queue.modules[queue.currentIndex];
|
|
16
|
-
|
|
17
|
-
// MODULE COMPLETENESS CHECK
|
|
18
|
-
const completedCats = new Set(prd.tasks.filter(t => t.status === 'completed').map(t => t.category));
|
|
19
|
-
const expected = ['domain', 'infrastructure', 'application', 'api', 'seedData', 'frontend', 'test'];
|
|
20
|
-
const missing = expected.filter(c => !completedCats.has(c));
|
|
21
|
-
|
|
22
|
-
if (missing.length > 0) {
|
|
23
|
-
console.log(`Module ${currentModule.code}: missing categories ${missing.join(', ')} — continuing loop`);
|
|
24
|
-
// Fall through to compact loop (section 5)
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// All categories present — module is complete
|
|
29
|
-
// Continue below...
|
|
30
|
-
}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Advance to Next Module
|
|
36
|
-
|
|
37
|
-
```javascript
|
|
38
|
-
if (missing.length === 0) {
|
|
39
|
-
// Mark current module done
|
|
40
|
-
currentModule.status = 'completed';
|
|
41
|
-
queue.completedModules++;
|
|
42
|
-
const nextIndex = queue.currentIndex + 1;
|
|
43
|
-
|
|
44
|
-
if (nextIndex < queue.totalModules) {
|
|
45
|
-
// More modules to process
|
|
46
|
-
queue.currentIndex = nextIndex;
|
|
47
|
-
queue.modules[nextIndex].status = 'in-progress';
|
|
48
|
-
writeJSON(queuePath, queue);
|
|
49
|
-
|
|
50
|
-
// Signal module transition to step-01
|
|
51
|
-
writeJSON('.ralph/module-changed.json', {
|
|
52
|
-
fromModule: currentModule.code,
|
|
53
|
-
toModule: queue.modules[nextIndex].code,
|
|
54
|
-
timestamp: new Date().toISOString()
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
// Mark current PRD as complete
|
|
58
|
-
prd.status = 'completed';
|
|
59
|
-
writeJSON('.ralph/prd.json', prd);
|
|
60
|
-
|
|
61
|
-
// Load next module's PRD
|
|
62
|
-
const nextPrd = readJSON(queue.modules[nextIndex].prdFile);
|
|
63
|
-
nextPrd.config.current_iteration = 1;
|
|
64
|
-
nextPrd.config.max_iterations = prd.config.max_iterations;
|
|
65
|
-
writeJSON('.ralph/prd.json', nextPrd);
|
|
66
|
-
|
|
67
|
-
console.log(`MODULE COMPLETE: ${currentModule.code} → NEXT: ${queue.modules[nextIndex].code}`);
|
|
68
|
-
|
|
69
|
-
// Return to step-01 to load next module's tasks
|
|
70
|
-
// (step-01 will detect module-changed.json and load next PRD)
|
|
71
|
-
return GO_TO_STEP_01;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// ALL MODULES COMPLETE
|
|
75
|
-
// Continue to section 3c (completion output) → step-05
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Check: All Modules Complete
|
|
82
|
-
|
|
83
|
-
```javascript
|
|
84
|
-
if (nextIndex >= queue.totalModules) {
|
|
85
|
-
// No more modules
|
|
86
|
-
writeJSON(queuePath, queue);
|
|
87
|
-
console.log(`ALL ${queue.totalModules} MODULES COMPLETE`);
|
|
88
|
-
|
|
89
|
-
// Fall through to step 3c (completion output) → step-05
|
|
90
|
-
}
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## Step-01 Module Detection
|
|
96
|
-
|
|
97
|
-
When returning to step-01 after module transition:
|
|
98
|
-
|
|
99
|
-
```javascript
|
|
100
|
-
// In step-01, section 0:
|
|
101
|
-
const moduleChangePath = '.ralph/module-changed.json';
|
|
102
|
-
if (fileExists(moduleChangePath)) {
|
|
103
|
-
const transition = readJSON(moduleChangePath);
|
|
104
|
-
console.log(`Module transition: ${transition.fromModule} → ${transition.toModule}`);
|
|
105
|
-
deleteFile(moduleChangePath);
|
|
106
|
-
|
|
107
|
-
// This is an exception to "Read Once" rule — PRD has changed
|
|
108
|
-
// PROCEED with loading the new module's tasks
|
|
109
|
-
}
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## State Transitions
|
|
115
|
-
|
|
116
|
-
```
|
|
117
|
-
[Phase A: Module 1]
|
|
118
|
-
├─ step-01: Load tasks from prd-module1.json
|
|
119
|
-
├─ step-02: Delegate to /apex
|
|
120
|
-
├─ step-03: Commit PRD state
|
|
121
|
-
├─ step-04: Check completion
|
|
122
|
-
│ └─ If all categories complete:
|
|
123
|
-
│ ├─ Write module-changed.json
|
|
124
|
-
│ ├─ Write next PRD to .ralph/prd.json
|
|
125
|
-
│ └─ Return to step-01 ✓
|
|
126
|
-
│
|
|
127
|
-
└─ [Phase B: Module 2]
|
|
128
|
-
├─ step-01: Detect module-changed.json, load next PRD
|
|
129
|
-
├─ step-02: Delegate to /apex
|
|
130
|
-
├─ ... (repeat for module 2)
|
|
131
|
-
│
|
|
132
|
-
└─ [Module 2 complete]
|
|
133
|
-
├─ Mark module 2 done in modules-queue.json
|
|
134
|
-
├─ Check if more modules
|
|
135
|
-
│ ├─ If yes: Transition to module 3 (goto Phase C)
|
|
136
|
-
│ └─ If no: Fall through to step-05 ✓
|
|
137
|
-
│
|
|
138
|
-
└─ [Phase N: Final Module]
|
|
139
|
-
├─ ... (repeat)
|
|
140
|
-
└─ ALL MODULES COMPLETE → step-05
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Rules
|
|
146
|
-
|
|
147
|
-
- **Module completeness check runs EVERY iteration:** Not just once
|
|
148
|
-
- **Exception to "Read Once":** When transitioning modules, step-01 re-reads the new PRD
|
|
149
|
-
- **Atomic module advancement:** Only transition when all required categories are complete
|
|
150
|
-
- **Max iterations applies globally:** Not per-module
|
|
151
|
-
- **State persistence:** modules-queue.json tracks progress across modules
|
|
1
|
+
# Module Transition Logic
|
|
2
|
+
|
|
3
|
+
> **Reference for:** step-04-check.md section 3b
|
|
4
|
+
> **Trigger:** Multi-module mode + current module complete
|
|
5
|
+
> **Purpose:** Advance to next module in queue OR finish if all done
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## When Module Transition Occurs
|
|
10
|
+
|
|
11
|
+
```javascript
|
|
12
|
+
const queuePath = '.ralph/modules-queue.json';
|
|
13
|
+
if (fileExists(queuePath)) {
|
|
14
|
+
const queue = readJSON(queuePath);
|
|
15
|
+
const currentModule = queue.modules[queue.currentIndex];
|
|
16
|
+
|
|
17
|
+
// MODULE COMPLETENESS CHECK
|
|
18
|
+
const completedCats = new Set(prd.tasks.filter(t => t.status === 'completed').map(t => t.category));
|
|
19
|
+
const expected = ['domain', 'infrastructure', 'application', 'api', 'seedData', 'frontend', 'test'];
|
|
20
|
+
const missing = expected.filter(c => !completedCats.has(c));
|
|
21
|
+
|
|
22
|
+
if (missing.length > 0) {
|
|
23
|
+
console.log(`Module ${currentModule.code}: missing categories ${missing.join(', ')} — continuing loop`);
|
|
24
|
+
// Fall through to compact loop (section 5)
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// All categories present — module is complete
|
|
29
|
+
// Continue below...
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Advance to Next Module
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
if (missing.length === 0) {
|
|
39
|
+
// Mark current module done
|
|
40
|
+
currentModule.status = 'completed';
|
|
41
|
+
queue.completedModules++;
|
|
42
|
+
const nextIndex = queue.currentIndex + 1;
|
|
43
|
+
|
|
44
|
+
if (nextIndex < queue.totalModules) {
|
|
45
|
+
// More modules to process
|
|
46
|
+
queue.currentIndex = nextIndex;
|
|
47
|
+
queue.modules[nextIndex].status = 'in-progress';
|
|
48
|
+
writeJSON(queuePath, queue);
|
|
49
|
+
|
|
50
|
+
// Signal module transition to step-01
|
|
51
|
+
writeJSON('.ralph/module-changed.json', {
|
|
52
|
+
fromModule: currentModule.code,
|
|
53
|
+
toModule: queue.modules[nextIndex].code,
|
|
54
|
+
timestamp: new Date().toISOString()
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
// Mark current PRD as complete
|
|
58
|
+
prd.status = 'completed';
|
|
59
|
+
writeJSON('.ralph/prd.json', prd);
|
|
60
|
+
|
|
61
|
+
// Load next module's PRD
|
|
62
|
+
const nextPrd = readJSON(queue.modules[nextIndex].prdFile);
|
|
63
|
+
nextPrd.config.current_iteration = 1;
|
|
64
|
+
nextPrd.config.max_iterations = prd.config.max_iterations;
|
|
65
|
+
writeJSON('.ralph/prd.json', nextPrd);
|
|
66
|
+
|
|
67
|
+
console.log(`MODULE COMPLETE: ${currentModule.code} → NEXT: ${queue.modules[nextIndex].code}`);
|
|
68
|
+
|
|
69
|
+
// Return to step-01 to load next module's tasks
|
|
70
|
+
// (step-01 will detect module-changed.json and load next PRD)
|
|
71
|
+
return GO_TO_STEP_01;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// ALL MODULES COMPLETE
|
|
75
|
+
// Continue to section 3c (completion output) → step-05
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Check: All Modules Complete
|
|
82
|
+
|
|
83
|
+
```javascript
|
|
84
|
+
if (nextIndex >= queue.totalModules) {
|
|
85
|
+
// No more modules
|
|
86
|
+
writeJSON(queuePath, queue);
|
|
87
|
+
console.log(`ALL ${queue.totalModules} MODULES COMPLETE`);
|
|
88
|
+
|
|
89
|
+
// Fall through to step 3c (completion output) → step-05
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Step-01 Module Detection
|
|
96
|
+
|
|
97
|
+
When returning to step-01 after module transition:
|
|
98
|
+
|
|
99
|
+
```javascript
|
|
100
|
+
// In step-01, section 0:
|
|
101
|
+
const moduleChangePath = '.ralph/module-changed.json';
|
|
102
|
+
if (fileExists(moduleChangePath)) {
|
|
103
|
+
const transition = readJSON(moduleChangePath);
|
|
104
|
+
console.log(`Module transition: ${transition.fromModule} → ${transition.toModule}`);
|
|
105
|
+
deleteFile(moduleChangePath);
|
|
106
|
+
|
|
107
|
+
// This is an exception to "Read Once" rule — PRD has changed
|
|
108
|
+
// PROCEED with loading the new module's tasks
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## State Transitions
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
[Phase A: Module 1]
|
|
118
|
+
├─ step-01: Load tasks from prd-module1.json
|
|
119
|
+
├─ step-02: Delegate to /apex
|
|
120
|
+
├─ step-03: Commit PRD state
|
|
121
|
+
├─ step-04: Check completion
|
|
122
|
+
│ └─ If all categories complete:
|
|
123
|
+
│ ├─ Write module-changed.json
|
|
124
|
+
│ ├─ Write next PRD to .ralph/prd.json
|
|
125
|
+
│ └─ Return to step-01 ✓
|
|
126
|
+
│
|
|
127
|
+
└─ [Phase B: Module 2]
|
|
128
|
+
├─ step-01: Detect module-changed.json, load next PRD
|
|
129
|
+
├─ step-02: Delegate to /apex
|
|
130
|
+
├─ ... (repeat for module 2)
|
|
131
|
+
│
|
|
132
|
+
└─ [Module 2 complete]
|
|
133
|
+
├─ Mark module 2 done in modules-queue.json
|
|
134
|
+
├─ Check if more modules
|
|
135
|
+
│ ├─ If yes: Transition to module 3 (goto Phase C)
|
|
136
|
+
│ └─ If no: Fall through to step-05 ✓
|
|
137
|
+
│
|
|
138
|
+
└─ [Phase N: Final Module]
|
|
139
|
+
├─ ... (repeat)
|
|
140
|
+
└─ ALL MODULES COMPLETE → step-05
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Rules
|
|
146
|
+
|
|
147
|
+
- **Module completeness check runs EVERY iteration:** Not just once
|
|
148
|
+
- **Exception to "Read Once":** When transitioning modules, step-01 re-reads the new PRD
|
|
149
|
+
- **Atomic module advancement:** Only transition when all required categories are complete
|
|
150
|
+
- **Max iterations applies globally:** Not per-module
|
|
151
|
+
- **State persistence:** modules-queue.json tracks progress across modules
|