@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,207 +1,207 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: step-04-check
|
|
3
|
-
description: Check completion criteria with status-based logic
|
|
4
|
-
next_step: steps/step-05-report.md OR steps/step-01-task.md
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Step 4: Check Completion
|
|
8
|
-
|
|
9
|
-
## YOUR TASK:
|
|
10
|
-
|
|
11
|
-
Check if all tasks are complete and decide: output completion promise, advance module, or continue loop.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## 1. Read Current State
|
|
16
|
-
|
|
17
|
-
```javascript
|
|
18
|
-
const prd = readJSON('.ralph/prd.json');
|
|
19
|
-
const tasksCompleted = prd.tasks.filter(t => t.status === 'completed').length;
|
|
20
|
-
const tasksSkipped = prd.tasks.filter(t => t.status === 'skipped').length;
|
|
21
|
-
const tasksFailed = prd.tasks.filter(t => t.status === 'failed').length;
|
|
22
|
-
const tasksBlocked = prd.tasks.filter(t => t.status === 'blocked').length;
|
|
23
|
-
const tasksPending = prd.tasks.filter(t => t.status === 'pending').length;
|
|
24
|
-
const tasksTotal = prd.tasks.length;
|
|
25
|
-
const allDone = (tasksCompleted + tasksSkipped) === tasksTotal;
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### 1.5. Lightweight Sanity Check
|
|
29
|
-
|
|
30
|
-
> **Note:** Full build verification, POST-CHECKs, and test runs are handled by apex.
|
|
31
|
-
> Ralph only does a lightweight sanity check to detect regressions between apex invocations.
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
# Quick build check (quiet mode)
|
|
35
|
-
dotnet build --no-restore --verbosity quiet
|
|
36
|
-
BUILD_RC=$?
|
|
37
|
-
# Note: WSL bin\Debug cleanup handled by PostToolUse hook (wsl-dotnet-cleanup.sh)
|
|
38
|
-
if [ $BUILD_RC -ne 0 ]; then
|
|
39
|
-
echo "BUILD REGRESSION detected between apex invocations"
|
|
40
|
-
# Inject fix task — apex will handle the actual fix
|
|
41
|
-
prd.tasks.push({ id: maxId+1, description: "Fix build regression",
|
|
42
|
-
status: "pending", category: "validation", dependencies: [],
|
|
43
|
-
acceptance_criteria: "dotnet build passes" });
|
|
44
|
-
writeJSON('.ralph/prd.json', prd);
|
|
45
|
-
fi
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### 1.7. Category Completeness Check (RUNS EVERY ITERATION)
|
|
49
|
-
|
|
50
|
-
See `references/category-completeness.md` for detailed implementation.
|
|
51
|
-
|
|
52
|
-
```javascript
|
|
53
|
-
const { missing, guardrailsNeeded } = checkCategoryCompleteness(prd);
|
|
54
|
-
|
|
55
|
-
if (guardrailsNeeded.length > 0) {
|
|
56
|
-
prd.tasks.push(...guardrailsNeeded);
|
|
57
|
-
writeJSON('.ralph/prd.json', prd);
|
|
58
|
-
console.log(`PRD updated: +${guardrailsNeeded.length} guardrails, ${prd.tasks.filter(t => t.status === 'pending').length} pending tasks`);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Artifact verification (check if completed tasks have files)
|
|
62
|
-
const completedCats = new Set(prd.tasks.filter(t => t.status === 'completed').map(t => t.category));
|
|
63
|
-
const artifactChecks = {
|
|
64
|
-
'frontend': () => glob.sync('**/src/pages/**/*.tsx').length > 0,
|
|
65
|
-
'test': () => glob.sync('tests/**/*Tests.cs').length > 0,
|
|
66
|
-
'api': () => glob.sync('src/*/Controllers/**/*Controller.cs').length > 0
|
|
67
|
-
};
|
|
68
|
-
for (const [cat, check] of Object.entries(artifactChecks)) {
|
|
69
|
-
if (completedCats.has(cat) && !check()) {
|
|
70
|
-
console.warn(`ARTIFACT MISSING: ${cat} tasks marked completed but no files found — resetting to pending`);
|
|
71
|
-
prd.tasks.filter(t => t.category === cat && t.status === 'completed')
|
|
72
|
-
.forEach(t => {
|
|
73
|
-
t.status = 'pending';
|
|
74
|
-
t.error = 'Artifacts missing — re-execute';
|
|
75
|
-
t.completed_at = null;
|
|
76
|
-
});
|
|
77
|
-
writeJSON('.ralph/prd.json', prd);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## 2. Check Iteration Limit
|
|
83
|
-
|
|
84
|
-
If `current_iteration > max_iterations`:
|
|
85
|
-
```
|
|
86
|
-
MAX ITERATIONS REACHED: {iteration}/{max} | {completed}/{total} done
|
|
87
|
-
-> Generating partial report...
|
|
88
|
-
```
|
|
89
|
-
Set `prd.status = 'partial'` → step-05.
|
|
90
|
-
|
|
91
|
-
## 3. Check All Tasks Complete
|
|
92
|
-
|
|
93
|
-
**Re-read state after section 1.7 (categories may have been injected):**
|
|
94
|
-
```javascript
|
|
95
|
-
const tasksCompletedNow = prd.tasks.filter(t => t.status === 'completed').length;
|
|
96
|
-
const tasksTotalNow = prd.tasks.length;
|
|
97
|
-
const allDone = (tasksCompletedNow + prd.tasks.filter(t => t.status === 'skipped').length) === tasksTotalNow;
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
If `allDone`:
|
|
101
|
-
|
|
102
|
-
### 3a. Team Mode (multi-module with Agent Teams)
|
|
103
|
-
|
|
104
|
-
```javascript
|
|
105
|
-
if ({team_active}) {
|
|
106
|
-
SendMessage({
|
|
107
|
-
type: "message", recipient: "team-lead",
|
|
108
|
-
content: `MODULE_COMPLETE:${current_module}`,
|
|
109
|
-
summary: `${current_module} complete`
|
|
110
|
-
});
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### 3b. Sequential Multi-Module (modules-queue.json)
|
|
116
|
-
|
|
117
|
-
See `references/module-transition.md` for complete module advancement protocol.
|
|
118
|
-
|
|
119
|
-
```javascript
|
|
120
|
-
const queuePath = '.ralph/modules-queue.json';
|
|
121
|
-
if (fileExists(queuePath)) {
|
|
122
|
-
const queue = readJSON(queuePath);
|
|
123
|
-
const currentModule = queue.modules[queue.currentIndex];
|
|
124
|
-
|
|
125
|
-
// MODULE COMPLETENESS CHECK
|
|
126
|
-
const completedCats = new Set(prd.tasks.filter(t => t.status === 'completed').map(t => t.category));
|
|
127
|
-
const expected = ['domain', 'infrastructure', 'application', 'api', 'seedData', 'frontend', 'test'];
|
|
128
|
-
const missing = expected.filter(c => !completedCats.has(c));
|
|
129
|
-
|
|
130
|
-
if (missing.length > 0) {
|
|
131
|
-
console.log(`Module ${currentModule.code}: missing categories ${missing.join(', ')} — continuing loop`);
|
|
132
|
-
// Fall through to section 5 (compact loop)
|
|
133
|
-
} else {
|
|
134
|
-
// All categories complete — advance to next module
|
|
135
|
-
// (detailed logic in references/module-transition.md)
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### 3c. Completion Output
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
ALL TASKS COMPLETE | Iterations: {n} | Tasks: {completed}/{total}
|
|
144
|
-
<promise>{completion_promise}</promise>
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Set `prd.status = 'completed'` → step-05.
|
|
148
|
-
|
|
149
|
-
## 4. Dead-End Check
|
|
150
|
-
|
|
151
|
-
```javascript
|
|
152
|
-
const hasPending = prd.tasks.some(t => t.status === 'pending');
|
|
153
|
-
const MAX_RETRIES = 3;
|
|
154
|
-
|
|
155
|
-
// Before declaring dead-end, check if any failed tasks have retries left
|
|
156
|
-
const retriableCount = prd.tasks.filter(t =>
|
|
157
|
-
t.status === 'failed' && (t._retryCount || 0) < MAX_RETRIES
|
|
158
|
-
).length;
|
|
159
|
-
|
|
160
|
-
if (!hasPending && !allDone && retriableCount > 0) {
|
|
161
|
-
// NOT a dead-end — compact loop will reset failed tasks to pending
|
|
162
|
-
console.log(`${retriableCount} failed tasks have retries remaining — entering compact loop`);
|
|
163
|
-
// Fall through to section 5
|
|
164
|
-
} else if (!hasPending && !allDone && retriableCount === 0) {
|
|
165
|
-
// TRUE dead-end: all retries exhausted
|
|
166
|
-
console.log(`DEAD-END: ${tasksCompletedNow} done, ${tasksFailed} failed (retries exhausted), ${tasksBlocked} blocked`);
|
|
167
|
-
prd.status = 'failed';
|
|
168
|
-
writeJSON('.ralph/prd.json', prd);
|
|
169
|
-
// → step-05
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
## 5. Compact Loop (MANDATORY — EXECUTE IMMEDIATELY)
|
|
174
|
-
|
|
175
|
-
> **THIS IS NOT OPTIONAL.** If there are pending tasks, you MUST enter the compact loop NOW.
|
|
176
|
-
> DO NOT stop. DO NOT wait for user. DO NOT ask for confirmation. DO NOT re-read step files.
|
|
177
|
-
> **Read `references/compact-loop.md` and execute ALL sections inline.**
|
|
178
|
-
> **Stopping here is a VIOLATION of the execution guarantee.**
|
|
179
|
-
|
|
180
|
-
If `hasPending && iteration < max`:
|
|
181
|
-
|
|
182
|
-
1. Read `references/compact-loop.md`
|
|
183
|
-
2. Execute sections A → B → C → D inline (find tasks → delegate to apex → commit PRD → loop back)
|
|
184
|
-
3. **IMMEDIATELY** return to section 1 of THIS step (do NOT pause)
|
|
185
|
-
4. Repeat until ALL tasks are complete, max iterations reached, or dead-end
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
## CRITICAL RULES — EXECUTION GUARANTEE:
|
|
190
|
-
|
|
191
|
-
- **NEVER** output completion promise unless ALL tasks done (all modules if multi)
|
|
192
|
-
- **NEVER** stop between iterations — this is the CORE PROMISE of ralph-loop
|
|
193
|
-
- **NEVER** ask the user "should I continue?" or "is this OK?" — JUST CONTINUE
|
|
194
|
-
- **NEVER** pause to show intermediate results and wait for feedback
|
|
195
|
-
- **NEVER** generate code directly — ALWAYS delegate to /apex
|
|
196
|
-
- **BATCH** same-category tasks (max 5)
|
|
197
|
-
- **MODULE COMPLETENESS:** All layers must have completed tasks before advancing
|
|
198
|
-
- **Only valid stop conditions:** all complete, max iterations, dead-end, or user Ctrl+C
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## NEXT STEP:
|
|
203
|
-
|
|
204
|
-
- All done + more modules in queue → `./step-01-task.md`
|
|
205
|
-
- All done (no more modules) → `./step-05-report.md`
|
|
206
|
-
- Max iterations or dead-end → `./step-05-report.md`
|
|
207
|
-
- Tasks remaining → compact loop (section 5)
|
|
1
|
+
---
|
|
2
|
+
name: step-04-check
|
|
3
|
+
description: Check completion criteria with status-based logic
|
|
4
|
+
next_step: steps/step-05-report.md OR steps/step-01-task.md
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Step 4: Check Completion
|
|
8
|
+
|
|
9
|
+
## YOUR TASK:
|
|
10
|
+
|
|
11
|
+
Check if all tasks are complete and decide: output completion promise, advance module, or continue loop.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Read Current State
|
|
16
|
+
|
|
17
|
+
```javascript
|
|
18
|
+
const prd = readJSON('.ralph/prd.json');
|
|
19
|
+
const tasksCompleted = prd.tasks.filter(t => t.status === 'completed').length;
|
|
20
|
+
const tasksSkipped = prd.tasks.filter(t => t.status === 'skipped').length;
|
|
21
|
+
const tasksFailed = prd.tasks.filter(t => t.status === 'failed').length;
|
|
22
|
+
const tasksBlocked = prd.tasks.filter(t => t.status === 'blocked').length;
|
|
23
|
+
const tasksPending = prd.tasks.filter(t => t.status === 'pending').length;
|
|
24
|
+
const tasksTotal = prd.tasks.length;
|
|
25
|
+
const allDone = (tasksCompleted + tasksSkipped) === tasksTotal;
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 1.5. Lightweight Sanity Check
|
|
29
|
+
|
|
30
|
+
> **Note:** Full build verification, POST-CHECKs, and test runs are handled by apex.
|
|
31
|
+
> Ralph only does a lightweight sanity check to detect regressions between apex invocations.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Quick build check (quiet mode)
|
|
35
|
+
dotnet build --no-restore --verbosity quiet
|
|
36
|
+
BUILD_RC=$?
|
|
37
|
+
# Note: WSL bin\Debug cleanup handled by PostToolUse hook (wsl-dotnet-cleanup.sh)
|
|
38
|
+
if [ $BUILD_RC -ne 0 ]; then
|
|
39
|
+
echo "BUILD REGRESSION detected between apex invocations"
|
|
40
|
+
# Inject fix task — apex will handle the actual fix
|
|
41
|
+
prd.tasks.push({ id: maxId+1, description: "Fix build regression",
|
|
42
|
+
status: "pending", category: "validation", dependencies: [],
|
|
43
|
+
acceptance_criteria: "dotnet build passes" });
|
|
44
|
+
writeJSON('.ralph/prd.json', prd);
|
|
45
|
+
fi
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 1.7. Category Completeness Check (RUNS EVERY ITERATION)
|
|
49
|
+
|
|
50
|
+
See `references/category-completeness.md` for detailed implementation.
|
|
51
|
+
|
|
52
|
+
```javascript
|
|
53
|
+
const { missing, guardrailsNeeded } = checkCategoryCompleteness(prd);
|
|
54
|
+
|
|
55
|
+
if (guardrailsNeeded.length > 0) {
|
|
56
|
+
prd.tasks.push(...guardrailsNeeded);
|
|
57
|
+
writeJSON('.ralph/prd.json', prd);
|
|
58
|
+
console.log(`PRD updated: +${guardrailsNeeded.length} guardrails, ${prd.tasks.filter(t => t.status === 'pending').length} pending tasks`);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Artifact verification (check if completed tasks have files)
|
|
62
|
+
const completedCats = new Set(prd.tasks.filter(t => t.status === 'completed').map(t => t.category));
|
|
63
|
+
const artifactChecks = {
|
|
64
|
+
'frontend': () => glob.sync('**/src/pages/**/*.tsx').length > 0,
|
|
65
|
+
'test': () => glob.sync('tests/**/*Tests.cs').length > 0,
|
|
66
|
+
'api': () => glob.sync('src/*/Controllers/**/*Controller.cs').length > 0
|
|
67
|
+
};
|
|
68
|
+
for (const [cat, check] of Object.entries(artifactChecks)) {
|
|
69
|
+
if (completedCats.has(cat) && !check()) {
|
|
70
|
+
console.warn(`ARTIFACT MISSING: ${cat} tasks marked completed but no files found — resetting to pending`);
|
|
71
|
+
prd.tasks.filter(t => t.category === cat && t.status === 'completed')
|
|
72
|
+
.forEach(t => {
|
|
73
|
+
t.status = 'pending';
|
|
74
|
+
t.error = 'Artifacts missing — re-execute';
|
|
75
|
+
t.completed_at = null;
|
|
76
|
+
});
|
|
77
|
+
writeJSON('.ralph/prd.json', prd);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## 2. Check Iteration Limit
|
|
83
|
+
|
|
84
|
+
If `current_iteration > max_iterations`:
|
|
85
|
+
```
|
|
86
|
+
MAX ITERATIONS REACHED: {iteration}/{max} | {completed}/{total} done
|
|
87
|
+
-> Generating partial report...
|
|
88
|
+
```
|
|
89
|
+
Set `prd.status = 'partial'` → step-05.
|
|
90
|
+
|
|
91
|
+
## 3. Check All Tasks Complete
|
|
92
|
+
|
|
93
|
+
**Re-read state after section 1.7 (categories may have been injected):**
|
|
94
|
+
```javascript
|
|
95
|
+
const tasksCompletedNow = prd.tasks.filter(t => t.status === 'completed').length;
|
|
96
|
+
const tasksTotalNow = prd.tasks.length;
|
|
97
|
+
const allDone = (tasksCompletedNow + prd.tasks.filter(t => t.status === 'skipped').length) === tasksTotalNow;
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
If `allDone`:
|
|
101
|
+
|
|
102
|
+
### 3a. Team Mode (multi-module with Agent Teams)
|
|
103
|
+
|
|
104
|
+
```javascript
|
|
105
|
+
if ({team_active}) {
|
|
106
|
+
SendMessage({
|
|
107
|
+
type: "message", recipient: "team-lead",
|
|
108
|
+
content: `MODULE_COMPLETE:${current_module}`,
|
|
109
|
+
summary: `${current_module} complete`
|
|
110
|
+
});
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 3b. Sequential Multi-Module (modules-queue.json)
|
|
116
|
+
|
|
117
|
+
See `references/module-transition.md` for complete module advancement protocol.
|
|
118
|
+
|
|
119
|
+
```javascript
|
|
120
|
+
const queuePath = '.ralph/modules-queue.json';
|
|
121
|
+
if (fileExists(queuePath)) {
|
|
122
|
+
const queue = readJSON(queuePath);
|
|
123
|
+
const currentModule = queue.modules[queue.currentIndex];
|
|
124
|
+
|
|
125
|
+
// MODULE COMPLETENESS CHECK
|
|
126
|
+
const completedCats = new Set(prd.tasks.filter(t => t.status === 'completed').map(t => t.category));
|
|
127
|
+
const expected = ['domain', 'infrastructure', 'application', 'api', 'seedData', 'frontend', 'test'];
|
|
128
|
+
const missing = expected.filter(c => !completedCats.has(c));
|
|
129
|
+
|
|
130
|
+
if (missing.length > 0) {
|
|
131
|
+
console.log(`Module ${currentModule.code}: missing categories ${missing.join(', ')} — continuing loop`);
|
|
132
|
+
// Fall through to section 5 (compact loop)
|
|
133
|
+
} else {
|
|
134
|
+
// All categories complete — advance to next module
|
|
135
|
+
// (detailed logic in references/module-transition.md)
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 3c. Completion Output
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
ALL TASKS COMPLETE | Iterations: {n} | Tasks: {completed}/{total}
|
|
144
|
+
<promise>{completion_promise}</promise>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Set `prd.status = 'completed'` → step-05.
|
|
148
|
+
|
|
149
|
+
## 4. Dead-End Check
|
|
150
|
+
|
|
151
|
+
```javascript
|
|
152
|
+
const hasPending = prd.tasks.some(t => t.status === 'pending');
|
|
153
|
+
const MAX_RETRIES = 3;
|
|
154
|
+
|
|
155
|
+
// Before declaring dead-end, check if any failed tasks have retries left
|
|
156
|
+
const retriableCount = prd.tasks.filter(t =>
|
|
157
|
+
t.status === 'failed' && (t._retryCount || 0) < MAX_RETRIES
|
|
158
|
+
).length;
|
|
159
|
+
|
|
160
|
+
if (!hasPending && !allDone && retriableCount > 0) {
|
|
161
|
+
// NOT a dead-end — compact loop will reset failed tasks to pending
|
|
162
|
+
console.log(`${retriableCount} failed tasks have retries remaining — entering compact loop`);
|
|
163
|
+
// Fall through to section 5
|
|
164
|
+
} else if (!hasPending && !allDone && retriableCount === 0) {
|
|
165
|
+
// TRUE dead-end: all retries exhausted
|
|
166
|
+
console.log(`DEAD-END: ${tasksCompletedNow} done, ${tasksFailed} failed (retries exhausted), ${tasksBlocked} blocked`);
|
|
167
|
+
prd.status = 'failed';
|
|
168
|
+
writeJSON('.ralph/prd.json', prd);
|
|
169
|
+
// → step-05
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## 5. Compact Loop (MANDATORY — EXECUTE IMMEDIATELY)
|
|
174
|
+
|
|
175
|
+
> **THIS IS NOT OPTIONAL.** If there are pending tasks, you MUST enter the compact loop NOW.
|
|
176
|
+
> DO NOT stop. DO NOT wait for user. DO NOT ask for confirmation. DO NOT re-read step files.
|
|
177
|
+
> **Read `references/compact-loop.md` and execute ALL sections inline.**
|
|
178
|
+
> **Stopping here is a VIOLATION of the execution guarantee.**
|
|
179
|
+
|
|
180
|
+
If `hasPending && iteration < max`:
|
|
181
|
+
|
|
182
|
+
1. Read `references/compact-loop.md`
|
|
183
|
+
2. Execute sections A → B → C → D inline (find tasks → delegate to apex → commit PRD → loop back)
|
|
184
|
+
3. **IMMEDIATELY** return to section 1 of THIS step (do NOT pause)
|
|
185
|
+
4. Repeat until ALL tasks are complete, max iterations reached, or dead-end
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## CRITICAL RULES — EXECUTION GUARANTEE:
|
|
190
|
+
|
|
191
|
+
- **NEVER** output completion promise unless ALL tasks done (all modules if multi)
|
|
192
|
+
- **NEVER** stop between iterations — this is the CORE PROMISE of ralph-loop
|
|
193
|
+
- **NEVER** ask the user "should I continue?" or "is this OK?" — JUST CONTINUE
|
|
194
|
+
- **NEVER** pause to show intermediate results and wait for feedback
|
|
195
|
+
- **NEVER** generate code directly — ALWAYS delegate to /apex
|
|
196
|
+
- **BATCH** same-category tasks (max 5)
|
|
197
|
+
- **MODULE COMPLETENESS:** All layers must have completed tasks before advancing
|
|
198
|
+
- **Only valid stop conditions:** all complete, max iterations, dead-end, or user Ctrl+C
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## NEXT STEP:
|
|
203
|
+
|
|
204
|
+
- All done + more modules in queue → `./step-01-task.md`
|
|
205
|
+
- All done (no more modules) → `./step-05-report.md`
|
|
206
|
+
- Max iterations or dead-end → `./step-05-report.md`
|
|
207
|
+
- Tasks remaining → compact loop (section 5)
|