@atlashub/smartstack-cli 3.39.0 → 3.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.documentation/apex.html +644 -644
- package/.documentation/css/styles.css +2320 -2320
- package/.documentation/init.html +1377 -1377
- package/.documentation/js/app.js +780 -780
- package/.documentation/prd-json-v2.0.0.md +396 -396
- package/.documentation/testing-ba-e2e.md +462 -462
- package/config/default-config.json +95 -95
- package/config/mcp-defaults.json +62 -62
- package/config/settings.json +53 -53
- package/config/settings.local.example.json +16 -16
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.mjs +6 -4
- package/dist/mcp-entry.mjs.map +1 -1
- package/package.json +115 -115
- package/scripts/extract-api-endpoints.ts +325 -325
- package/scripts/extract-business-rules.ts +440 -440
- package/scripts/generate-doc-with-mock-ui.ts +804 -804
- package/scripts/health-check.sh +168 -168
- package/scripts/postinstall.js +18 -18
- package/templates/agents/action.md +37 -37
- package/templates/agents/ba-reader.md +378 -378
- package/templates/agents/ba-writer.md +861 -861
- package/templates/agents/code-reviewer.md +163 -163
- package/templates/agents/db-reader.md +149 -149
- package/templates/agents/docs-context-reader.md +143 -143
- package/templates/agents/docs-sync-checker.md +122 -122
- package/templates/agents/efcore/conflicts.md +95 -84
- package/templates/agents/efcore/db-deploy.md +85 -74
- package/templates/agents/efcore/db-reset.md +96 -85
- package/templates/agents/efcore/db-seed.md +72 -61
- package/templates/agents/efcore/db-status.md +97 -86
- package/templates/agents/efcore/migration.md +197 -186
- package/templates/agents/efcore/rebase-snapshot.md +119 -108
- package/templates/agents/efcore/scan.md +103 -92
- package/templates/agents/efcore/squash.md +172 -161
- package/templates/agents/explore-codebase.md +66 -66
- package/templates/agents/explore-docs.md +98 -98
- package/templates/agents/fix-grammar.md +50 -50
- package/templates/agents/gitflow/abort.md +45 -45
- package/templates/agents/gitflow/cleanup.md +96 -96
- package/templates/agents/gitflow/commit.md +236 -236
- package/templates/agents/gitflow/exec.md +48 -48
- package/templates/agents/gitflow/finish.md +146 -146
- package/templates/agents/gitflow/init-clone.md +199 -199
- package/templates/agents/gitflow/init-detect.md +137 -137
- package/templates/agents/gitflow/init-validate.md +225 -225
- package/templates/agents/gitflow/init.md +340 -340
- package/templates/agents/gitflow/merge.md +145 -145
- package/templates/agents/gitflow/plan.md +42 -42
- package/templates/agents/gitflow/pr.md +191 -191
- package/templates/agents/gitflow/review.md +49 -49
- package/templates/agents/gitflow/start.md +147 -147
- package/templates/agents/gitflow/status.md +95 -95
- package/templates/agents/mcp-healthcheck.md +163 -163
- package/templates/agents/snipper.md +37 -37
- package/templates/agents/websearch.md +46 -46
- package/templates/hooks/appsettings-guard.sh +76 -76
- package/templates/hooks/docs-drift-check.md +96 -96
- package/templates/hooks/ef-migration-check.md +139 -139
- package/templates/hooks/hooks.json +58 -58
- package/templates/hooks/mcp-check.md +64 -64
- package/templates/hooks/ralph-mcp-logger.sh +46 -46
- package/templates/hooks/ralph-session-end.sh +69 -69
- package/templates/hooks/stop-hook.sh +177 -177
- package/templates/hooks/wsl-dotnet-cleanup.sh +24 -24
- package/templates/mcp-scaffolding/component.tsx.hbs +318 -318
- package/templates/mcp-scaffolding/controller.cs.hbs +192 -192
- package/templates/mcp-scaffolding/entity-extension.cs.hbs +239 -239
- package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -116
- package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -133
- package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -126
- package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -261
- package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -53
- package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +436 -436
- package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -239
- package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -441
- package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -442
- package/templates/mcp-scaffolding/tests/service.test.cs.hbs +402 -402
- package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -428
- package/templates/project/DependencyInjection.Application.cs.template +25 -25
- package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -61
- package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -70
- package/templates/project/ExampleEntity.cs.template +116 -116
- package/templates/project/ExampleEntityConfiguration.cs.template +64 -64
- package/templates/project/ExampleService.cs.template +146 -146
- package/templates/project/ExtensionsDbContext.cs.template +41 -41
- package/templates/project/IExtensionsDbContext.cs.template +22 -22
- package/templates/project/Program.cs.template +47 -47
- package/templates/project/README.md +79 -79
- package/templates/project/api.ts.template +12 -12
- package/templates/project/appsettings.json.template +170 -170
- package/templates/project/claude-settings.json.template +5 -5
- package/templates/project/test-frontend/msw/handlers.ts +58 -58
- package/templates/project/test-frontend/msw/server.ts +25 -25
- package/templates/project/test-frontend/setup.ts +16 -16
- package/templates/project/test-frontend/test-utils.tsx +59 -59
- package/templates/project/test-frontend/vitest.config.ts +31 -31
- package/templates/ralph/README.md +93 -93
- package/templates/ralph/ralph.config.yaml +113 -113
- package/templates/scripts/setup-ralph-loop.sh +173 -173
- package/templates/skills/_resources/config-safety.md +61 -61
- package/templates/skills/_resources/context-digest-template.md +53 -53
- package/templates/skills/_resources/doc-context-cache.md +60 -60
- package/templates/skills/_resources/docs-manifest-schema.md +155 -155
- package/templates/skills/_resources/formatting-guide.md +124 -124
- package/templates/skills/_resources/mcp-validate-documentation-spec.md +181 -181
- package/templates/skills/_shared.md +228 -228
- package/templates/skills/admin/SKILL.md +48 -48
- package/templates/skills/ai-prompt/SKILL.md +107 -107
- package/templates/skills/ai-prompt/steps/step-00-init.md +47 -47
- package/templates/skills/ai-prompt/steps/step-01-implementation.md +122 -122
- package/templates/skills/apex/SKILL.md +168 -168
- package/templates/skills/apex/_shared.md +141 -141
- package/templates/skills/apex/references/agent-teams-protocol.md +164 -164
- package/templates/skills/apex/references/analysis-methods.md +141 -141
- package/templates/skills/apex/references/challenge-questions.md +145 -145
- package/templates/skills/apex/references/code-generation.md +412 -412
- package/templates/skills/apex/references/core-seed-data.md +1437 -1437
- package/templates/skills/apex/references/error-classification.md +144 -144
- package/templates/skills/apex/references/examine-build-validation.md +82 -82
- package/templates/skills/apex/references/execution-frontend-gates.md +177 -177
- package/templates/skills/apex/references/execution-frontend-patterns.md +105 -105
- package/templates/skills/apex/references/execution-layer1-rules.md +96 -96
- package/templates/skills/apex/references/initialization-challenge-flow.md +110 -110
- package/templates/skills/apex/references/planning-layer-mapping.md +151 -151
- package/templates/skills/apex/references/post-checks.md +1584 -1584
- package/templates/skills/apex/references/smartstack-api.md +1053 -1053
- package/templates/skills/apex/references/smartstack-frontend.md +1571 -1571
- package/templates/skills/apex/references/smartstack-layers.md +402 -402
- package/templates/skills/apex/steps/step-00-init.md +307 -307
- package/templates/skills/apex/steps/step-01-analyze.md +165 -165
- package/templates/skills/apex/steps/step-02-plan.md +144 -144
- package/templates/skills/apex/steps/step-03-execute.md +328 -328
- package/templates/skills/apex/steps/step-04-examine.md +263 -263
- package/templates/skills/apex/steps/step-05-deep-review.md +129 -129
- package/templates/skills/apex/steps/step-06-resolve.md +101 -101
- package/templates/skills/apex/steps/step-07-tests.md +238 -238
- package/templates/skills/apex/steps/step-08-run-tests.md +125 -125
- package/templates/skills/application/SKILL.md +4 -4
- package/templates/skills/application/references/application-roles-template.md +227 -227
- package/templates/skills/application/references/backend-controller-hierarchy.md +58 -58
- package/templates/skills/application/references/backend-entity-seeding.md +72 -72
- package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -83
- package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -79
- package/templates/skills/application/references/backend-verification.md +88 -88
- package/templates/skills/application/references/frontend-i18n-and-output.md +67 -67
- package/templates/skills/application/references/frontend-route-naming.md +117 -117
- package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -107
- package/templates/skills/application/references/frontend-verification.md +156 -156
- package/templates/skills/application/references/migration-checklist-troubleshooting.md +1 -1
- package/templates/skills/application/references/provider-template.md +177 -177
- package/templates/skills/application/references/roles-client-project-handling.md +55 -55
- package/templates/skills/application/references/roles-fallback-procedure.md +149 -149
- package/templates/skills/application/references/test-coverage-requirements.md +213 -213
- package/templates/skills/application/references/test-frontend.md +73 -73
- package/templates/skills/application/references/test-prerequisites.md +72 -72
- package/templates/skills/application/steps/step-05-frontend.md +176 -176
- package/templates/skills/application/steps/step-06-migration.md +193 -193
- package/templates/skills/application/steps/step-07-tests.md +356 -356
- package/templates/skills/application/steps/step-08-documentation.md +137 -137
- package/templates/skills/application/templates-backend.md +463 -463
- package/templates/skills/application/templates-frontend.md +685 -685
- package/templates/skills/application/templates-i18n.md +520 -520
- package/templates/skills/application/templates-seed.md +1096 -1096
- package/templates/skills/business-analyse/SKILL.md +327 -327
- package/templates/skills/business-analyse/_architecture.md +123 -123
- package/templates/skills/business-analyse/_elicitation.md +206 -206
- package/templates/skills/business-analyse/_module-loop.md +115 -115
- package/templates/skills/business-analyse/_shared.md +383 -383
- package/templates/skills/business-analyse/_suggestions.md +34 -34
- package/templates/skills/business-analyse/html/ba-interactive.html +4477 -4477
- package/templates/skills/business-analyse/html/build-html.js +77 -77
- package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +150 -150
- package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +227 -227
- package/templates/skills/business-analyse/html/src/scripts/03-render-cadrage.js +199 -199
- package/templates/skills/business-analyse/html/src/scripts/04-render-modules.js +205 -205
- package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +647 -647
- package/templates/skills/business-analyse/html/src/scripts/06-render-consolidation.js +195 -195
- package/templates/skills/business-analyse/html/src/scripts/07-render-handoff.js +92 -92
- package/templates/skills/business-analyse/html/src/scripts/08-editing.js +135 -135
- package/templates/skills/business-analyse/html/src/scripts/09-export.js +168 -168
- package/templates/skills/business-analyse/html/src/scripts/10-comments.js +171 -171
- package/templates/skills/business-analyse/html/src/scripts/11-review-panel.js +166 -166
- package/templates/skills/business-analyse/html/src/styles/01-variables.css +38 -38
- package/templates/skills/business-analyse/html/src/styles/02-layout.css +101 -101
- package/templates/skills/business-analyse/html/src/styles/03-navigation.css +120 -120
- package/templates/skills/business-analyse/html/src/styles/04-cards.css +196 -196
- package/templates/skills/business-analyse/html/src/styles/05-modules.css +454 -454
- package/templates/skills/business-analyse/html/src/styles/06-wireframes.css +272 -272
- package/templates/skills/business-analyse/html/src/styles/07-comments.css +184 -184
- package/templates/skills/business-analyse/html/src/styles/08-review-panel.css +241 -241
- package/templates/skills/business-analyse/html/src/template.html +516 -516
- package/templates/skills/business-analyse/patterns/suggestion-catalog.md +546 -546
- package/templates/skills/business-analyse/questionnaire/00-application.md +160 -160
- package/templates/skills/business-analyse/questionnaire/00b-project.md +85 -85
- package/templates/skills/business-analyse/questionnaire/01-context.md +185 -185
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +189 -189
- package/templates/skills/business-analyse/questionnaire/03-scope.md +164 -164
- package/templates/skills/business-analyse/questionnaire/04-data.md +88 -88
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +58 -58
- package/templates/skills/business-analyse/questionnaire/06-security.md +68 -68
- package/templates/skills/business-analyse/questionnaire/07-ui.md +76 -76
- package/templates/skills/business-analyse/questionnaire/08-performance.md +42 -42
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +45 -45
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +43 -43
- package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +59 -59
- package/templates/skills/business-analyse/questionnaire/12-migration.md +58 -58
- package/templates/skills/business-analyse/questionnaire/13-cross-module.md +69 -69
- package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -135
- package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -136
- package/templates/skills/business-analyse/questionnaire.md +337 -337
- package/templates/skills/business-analyse/react/application-viewer.md +242 -242
- package/templates/skills/business-analyse/react/components.md +551 -551
- package/templates/skills/business-analyse/react/i18n-template.md +306 -306
- package/templates/skills/business-analyse/references/acceptance-criteria.md +169 -169
- package/templates/skills/business-analyse/references/agent-module-prompt.md +362 -362
- package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +557 -557
- package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -190
- package/templates/skills/business-analyse/references/cache-warming-strategy.md +566 -566
- package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -41
- package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -74
- package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +115 -115
- package/templates/skills/business-analyse/references/cadrage-shared-modules.md +68 -69
- package/templates/skills/business-analyse/references/cadrage-structure-cards.md +85 -85
- package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -297
- package/templates/skills/business-analyse/references/consolidation-structural-checks.md +107 -107
- package/templates/skills/business-analyse/references/deploy-data-build.md +180 -180
- package/templates/skills/business-analyse/references/deploy-modes.md +118 -118
- package/templates/skills/business-analyse/references/detection-strategies.md +424 -424
- package/templates/skills/business-analyse/references/entity-architecture-decision.md +218 -218
- package/templates/skills/business-analyse/references/handoff-file-templates.md +120 -120
- package/templates/skills/business-analyse/references/handoff-mappings.md +81 -81
- package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -312
- package/templates/skills/business-analyse/references/html-data-mapping.md +299 -299
- package/templates/skills/business-analyse/references/init-schema-deployment.md +65 -65
- package/templates/skills/business-analyse/references/naming-conventions.md +243 -243
- package/templates/skills/business-analyse/references/prd-generation.md +258 -258
- package/templates/skills/business-analyse/references/review-data-mapping.md +363 -363
- package/templates/skills/business-analyse/references/robustness-checks.md +542 -542
- package/templates/skills/business-analyse/references/spec-auto-inference.md +111 -111
- package/templates/skills/business-analyse/references/team-orchestration.md +1022 -1022
- package/templates/skills/business-analyse/references/ui-dashboard-spec.md +85 -85
- package/templates/skills/business-analyse/references/ui-resource-cards.md +259 -259
- package/templates/skills/business-analyse/references/validate-incremental-html.md +121 -121
- package/templates/skills/business-analyse/references/validation-checklist.md +347 -347
- package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +335 -335
- package/templates/skills/business-analyse/schemas/application-schema.json +453 -453
- package/templates/skills/business-analyse/schemas/feature-schema.json +53 -53
- package/templates/skills/business-analyse/schemas/project-schema.json +485 -485
- package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +201 -201
- package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +82 -82
- package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +80 -80
- package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +70 -70
- package/templates/skills/business-analyse/schemas/sections/specification-schema.json +547 -547
- package/templates/skills/business-analyse/schemas/sections/validation-schema.json +93 -93
- package/templates/skills/business-analyse/schemas/shared/common-defs.json +226 -226
- package/templates/skills/business-analyse/steps/step-00-init.md +575 -576
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +767 -767
- package/templates/skills/business-analyse/steps/step-01b-applications.md +419 -419
- package/templates/skills/business-analyse/steps/step-02-decomposition.md +387 -387
- package/templates/skills/business-analyse/steps/step-03a-data.md +16 -16
- package/templates/skills/business-analyse/steps/step-03a1-setup.md +506 -506
- package/templates/skills/business-analyse/steps/step-03a2-analysis.md +252 -252
- package/templates/skills/business-analyse/steps/step-03b-ui.md +425 -425
- package/templates/skills/business-analyse/steps/step-03c-compile.md +611 -611
- package/templates/skills/business-analyse/steps/step-03d-validate.md +783 -783
- package/templates/skills/business-analyse/steps/step-04-consolidation.md +17 -17
- package/templates/skills/business-analyse/steps/step-04a-collect.md +415 -415
- package/templates/skills/business-analyse/steps/step-04b-analyze.md +163 -163
- package/templates/skills/business-analyse/steps/step-04c-decide.md +186 -186
- package/templates/skills/business-analyse/steps/step-05a-handoff.md +840 -840
- package/templates/skills/business-analyse/steps/step-05b-deploy.md +522 -522
- package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +703 -703
- package/templates/skills/business-analyse/steps/step-06-review.md +278 -278
- package/templates/skills/business-analyse/templates/tpl-frd.md +168 -168
- package/templates/skills/business-analyse/templates/tpl-handoff.md +186 -186
- package/templates/skills/business-analyse/templates/tpl-launch-displays.md +59 -59
- package/templates/skills/business-analyse/templates/tpl-progress.md +172 -172
- package/templates/skills/business-analyse/templates-frd.md +476 -476
- package/templates/skills/business-analyse/templates-react.md +574 -574
- package/templates/skills/cc-agent/SKILL.md +129 -129
- package/templates/skills/cc-agent/references/agent-behavior-patterns.md +95 -95
- package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -213
- package/templates/skills/cc-agent/references/permission-modes.md +102 -102
- package/templates/skills/cc-agent/references/tools-reference.md +144 -144
- package/templates/skills/cc-agent/steps/step-00-init.md +134 -134
- package/templates/skills/cc-agent/steps/step-01-design.md +186 -186
- package/templates/skills/cc-agent/steps/step-02-generate.md +131 -131
- package/templates/skills/cc-agent/steps/step-03-validate.md +130 -130
- package/templates/skills/cc-agent/templates/agent-categorized.md +67 -67
- package/templates/skills/cc-agent/templates/agent-standalone.md +56 -56
- package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -94
- package/templates/skills/cc-audit/SKILL.md +108 -108
- package/templates/skills/cc-audit/references/agent-checklist.md +91 -91
- package/templates/skills/cc-audit/references/hook-checklist.md +110 -110
- package/templates/skills/cc-audit/references/skill-checklist.md +70 -70
- package/templates/skills/cc-audit/steps/step-00-init.md +98 -98
- package/templates/skills/cc-audit/steps/step-01-scan.md +142 -142
- package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -158
- package/templates/skills/cc-audit/steps/step-03-report.md +142 -142
- package/templates/skills/cc-skill/SKILL.md +134 -134
- package/templates/skills/cc-skill/references/best-practices.md +167 -167
- package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -182
- package/templates/skills/cc-skill/references/skill-patterns.md +199 -199
- package/templates/skills/cc-skill/steps/step-00-init.md +119 -119
- package/templates/skills/cc-skill/steps/step-01-design.md +199 -199
- package/templates/skills/cc-skill/steps/step-02-generate.md +145 -145
- package/templates/skills/cc-skill/steps/step-03-steps.md +151 -151
- package/templates/skills/cc-skill/steps/step-04-validate.md +124 -124
- package/templates/skills/cc-skill/templates/skill-forked.md +85 -85
- package/templates/skills/cc-skill/templates/skill-progressive.md +102 -102
- package/templates/skills/cc-skill/templates/skill-simple.md +75 -75
- package/templates/skills/cc-skill/templates/step-template.md +82 -82
- package/templates/skills/check-version/SKILL.md +196 -196
- package/templates/skills/controller/SKILL.md +162 -162
- package/templates/skills/controller/postman-templates.md +614 -614
- package/templates/skills/controller/references/controller-code-templates.md +159 -159
- package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -209
- package/templates/skills/controller/references/permission-sync-templates.md +149 -149
- package/templates/skills/controller/steps/step-00-init.md +193 -191
- package/templates/skills/controller/steps/step-01-analyze.md +146 -146
- package/templates/skills/controller/steps/step-02-plan.md +176 -176
- package/templates/skills/controller/steps/step-03-generate.md +189 -189
- package/templates/skills/controller/steps/step-04-perms.md +80 -80
- package/templates/skills/controller/steps/step-05-validate.md +107 -107
- package/templates/skills/controller/templates.md +1555 -1555
- package/templates/skills/debug/SKILL.md +70 -70
- package/templates/skills/debug/references/team-protocol.md +232 -232
- package/templates/skills/debug/steps/step-00-init.md +57 -57
- package/templates/skills/debug/steps/step-01-analyze.md +219 -219
- package/templates/skills/debug/steps/step-02-resolve.md +85 -85
- package/templates/skills/documentation/SKILL.md +132 -132
- package/templates/skills/documentation/data-schema.md +227 -227
- package/templates/skills/documentation/steps/step-00-init.md +70 -70
- package/templates/skills/documentation/steps/step-01-scan.md +113 -113
- package/templates/skills/documentation/steps/step-02-generate.md +231 -231
- package/templates/skills/documentation/steps/step-03-validate.md +251 -238
- package/templates/skills/documentation/templates.md +662 -663
- package/templates/skills/efcore/SKILL.md +168 -167
- package/templates/skills/efcore/references/both-contexts.md +32 -32
- package/templates/skills/efcore/references/database-operations.md +67 -67
- package/templates/skills/efcore/references/destructive-operations.md +38 -38
- package/templates/skills/efcore/references/reset-operations.md +81 -81
- package/templates/skills/efcore/references/seed-methods.md +86 -86
- package/templates/skills/efcore/references/shared-init-functions.md +250 -250
- package/templates/skills/efcore/references/sql-objects-injection.md +61 -61
- package/templates/skills/efcore/references/troubleshooting.md +81 -81
- package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -227
- package/templates/skills/efcore/steps/db/step-deploy.md +217 -217
- package/templates/skills/efcore/steps/db/step-reset.md +186 -186
- package/templates/skills/efcore/steps/db/step-seed.md +166 -166
- package/templates/skills/efcore/steps/db/step-status.md +173 -173
- package/templates/skills/efcore/steps/migration/step-00-init.md +102 -102
- package/templates/skills/efcore/steps/migration/step-01-check.md +164 -164
- package/templates/skills/efcore/steps/migration/step-02-create.md +160 -160
- package/templates/skills/efcore/steps/migration/step-03-validate.md +168 -168
- package/templates/skills/efcore/steps/rebase-snapshot/step-00-init.md +173 -173
- package/templates/skills/efcore/steps/rebase-snapshot/step-01-backup.md +100 -100
- package/templates/skills/efcore/steps/rebase-snapshot/step-02-fetch.md +115 -115
- package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +112 -112
- package/templates/skills/efcore/steps/rebase-snapshot/step-04-validate.md +157 -157
- package/templates/skills/efcore/steps/shared/step-00-init.md +131 -131
- package/templates/skills/efcore/steps/squash/step-00-init.md +141 -141
- package/templates/skills/efcore/steps/squash/step-01-backup.md +120 -120
- package/templates/skills/efcore/steps/squash/step-02-fetch.md +168 -168
- package/templates/skills/efcore/steps/squash/step-03-create.md +184 -184
- package/templates/skills/efcore/steps/squash/step-04-validate.md +174 -174
- package/templates/skills/explore/SKILL.md +98 -98
- package/templates/skills/feature-full/SKILL.md +111 -111
- package/templates/skills/feature-full/steps/step-00-init.md +57 -57
- package/templates/skills/feature-full/steps/step-01-implementation.md +120 -120
- package/templates/skills/gitflow/SKILL.md +377 -377
- package/templates/skills/gitflow/_shared.md +620 -620
- package/templates/skills/gitflow/phases/abort.md +189 -189
- package/templates/skills/gitflow/phases/cleanup.md +234 -234
- package/templates/skills/gitflow/phases/status.md +192 -192
- package/templates/skills/gitflow/references/commit-message-generation.md +58 -58
- package/templates/skills/gitflow/references/commit-migration-validation.md +49 -49
- package/templates/skills/gitflow/references/finish-cleanup.md +55 -55
- package/templates/skills/gitflow/references/finish-version-bumping.md +45 -45
- package/templates/skills/gitflow/references/init-config-template.md +135 -135
- package/templates/skills/gitflow/references/init-environment-detection.md +41 -41
- package/templates/skills/gitflow/references/init-name-normalization.md +103 -103
- package/templates/skills/gitflow/references/init-questions.md +185 -185
- package/templates/skills/gitflow/references/init-structure-creation.md +75 -75
- package/templates/skills/gitflow/references/init-version-detection.md +21 -21
- package/templates/skills/gitflow/references/init-workspace-detection.md +43 -43
- package/templates/skills/gitflow/references/merge-ci-status.md +36 -36
- package/templates/skills/gitflow/references/merge-execution.md +62 -62
- package/templates/skills/gitflow/references/merge-pr-context.md +76 -76
- package/templates/skills/gitflow/references/plan-template.md +69 -69
- package/templates/skills/gitflow/references/pr-build-checks.md +60 -60
- package/templates/skills/gitflow/references/pr-generation.md +58 -58
- package/templates/skills/gitflow/references/start-branch-normalization.md +28 -28
- package/templates/skills/gitflow/references/start-efcore-preflight.md +70 -70
- package/templates/skills/gitflow/references/start-local-config.md +113 -113
- package/templates/skills/gitflow/references/start-worktree-creation.md +50 -50
- package/templates/skills/gitflow/references/sync-push-verify.md +44 -44
- package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -38
- package/templates/skills/gitflow/steps/step-commit.md +199 -199
- package/templates/skills/gitflow/steps/step-finish.md +147 -147
- package/templates/skills/gitflow/steps/step-init.md +190 -190
- package/templates/skills/gitflow/steps/step-merge.md +85 -85
- package/templates/skills/gitflow/steps/step-plan.md +151 -151
- package/templates/skills/gitflow/steps/step-pr.md +199 -199
- package/templates/skills/gitflow/steps/step-start.md +195 -195
- package/templates/skills/gitflow/steps/step-sync.md +161 -161
- package/templates/skills/gitflow/templates/config.json +72 -72
- package/templates/skills/mcp/SKILL.md +62 -62
- package/templates/skills/mcp/steps/step-01-healthcheck.md +108 -108
- package/templates/skills/mcp/steps/step-02-tools.md +73 -73
- package/templates/skills/notification/SKILL.md +173 -173
- package/templates/skills/quick-search/SKILL.md +99 -99
- package/templates/skills/ralph-loop/SKILL.md +234 -234
- package/templates/skills/ralph-loop/references/category-completeness.md +185 -185
- package/templates/skills/ralph-loop/references/category-rules.md +96 -96
- package/templates/skills/ralph-loop/references/compact-loop.md +300 -300
- package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -127
- package/templates/skills/ralph-loop/references/module-transition.md +151 -151
- package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -171
- package/templates/skills/ralph-loop/references/parallel-execution.md +246 -246
- package/templates/skills/ralph-loop/references/section-splitting.md +439 -439
- package/templates/skills/ralph-loop/references/task-transform-legacy.md +256 -256
- package/templates/skills/ralph-loop/references/team-orchestration.md +547 -547
- package/templates/skills/ralph-loop/steps/step-00-init.md +150 -150
- package/templates/skills/ralph-loop/steps/step-01-task.md +174 -174
- package/templates/skills/ralph-loop/steps/step-02-execute.md +177 -177
- package/templates/skills/ralph-loop/steps/step-03-commit.md +92 -92
- package/templates/skills/ralph-loop/steps/step-04-check.md +207 -207
- package/templates/skills/ralph-loop/steps/step-05-report.md +175 -175
- package/templates/skills/refactor/SKILL.md +56 -56
- package/templates/skills/refactor/steps/step-01-discover.md +60 -60
- package/templates/skills/refactor/steps/step-02-execute.md +67 -67
- package/templates/skills/review-code/SKILL.md +95 -94
- package/templates/skills/review-code/references/clean-code-principles.md +292 -292
- package/templates/skills/review-code/references/code-quality-metrics.md +174 -174
- package/templates/skills/review-code/references/feedback-patterns.md +149 -149
- package/templates/skills/review-code/references/owasp-api-top10.md +243 -243
- package/templates/skills/review-code/references/security-checklist.md +212 -212
- package/templates/skills/review-code/steps/step-01-smartstack.md +96 -96
- package/templates/skills/review-code/steps/step-02-detailed-review.md +80 -80
- package/templates/skills/review-code/steps/step-03-react.md +44 -44
- package/templates/skills/ui-components/SKILL.md +137 -137
- package/templates/skills/ui-components/accessibility.md +170 -170
- package/templates/skills/ui-components/patterns/dashboard-chart.md +327 -327
- package/templates/skills/ui-components/patterns/data-table.md +39 -39
- package/templates/skills/ui-components/patterns/entity-card.md +77 -77
- package/templates/skills/ui-components/patterns/grid-layout.md +91 -91
- package/templates/skills/ui-components/patterns/kanban.md +43 -43
- package/templates/skills/ui-components/responsive-guidelines.md +278 -278
- package/templates/skills/ui-components/style-guide.md +113 -113
- package/templates/skills/utils/SKILL.md +44 -44
- package/templates/skills/utils/subcommands/test-web-config.md +152 -152
- package/templates/skills/utils/subcommands/test-web.md +123 -123
- package/templates/skills/validate/SKILL.md +181 -181
- package/templates/skills/validate-feature/SKILL.md +101 -101
- package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -140
- package/templates/skills/validate-feature/references/db-validation-checks.md +180 -180
- package/templates/skills/validate-feature/steps/step-00-dependencies.md +121 -121
- package/templates/skills/validate-feature/steps/step-01-compile.md +39 -39
- package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -45
- package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -53
- package/templates/skills/validate-feature/steps/step-04-api-smoke.md +94 -94
- package/templates/skills/validate-feature/steps/step-05-db-validation.md +149 -149
- package/templates/skills/workflow/SKILL.md +127 -127
- package/templates/skills/workflow/steps/step-00-init.md +57 -57
- package/templates/skills/workflow/steps/step-01-implementation.md +84 -84
- package/templates/test-web/api-health.json +38 -38
- package/templates/test-web/minimal.json +19 -19
- package/templates/test-web/npm-package.json +46 -46
- package/templates/test-web/seo-check.json +54 -54
|
@@ -1,236 +1,236 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gitflow-commit
|
|
3
|
-
description: GitFlow commit with EF Core migration validation (OPTIMISE)
|
|
4
|
-
color: green
|
|
5
|
-
model: haiku
|
|
6
|
-
tools: Bash, Read, Glob, Grep
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# GitFlow Commit Agent
|
|
10
|
-
|
|
11
|
-
Commit with EF Core migration validation. Executes directly, displays only the result.
|
|
12
|
-
|
|
13
|
-
> **OPTIMISED:** haiku model, reduced tools (no Edit/Write). Access to current context.
|
|
14
|
-
|
|
15
|
-
## EXECUTION SEQUENCE
|
|
16
|
-
|
|
17
|
-
### 0. Pre-flight: Worktree Accessibility
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
# Quick check: can git resolve the repo?
|
|
21
|
-
git rev-parse --git-dir >/dev/null 2>&1
|
|
22
|
-
if [ $? -ne 0 ]; then
|
|
23
|
-
# Worktree .git file likely has cross-platform absolute path
|
|
24
|
-
# Find .bare directory by walking up
|
|
25
|
-
BARE_DIR=""
|
|
26
|
-
DIR="$(pwd)"
|
|
27
|
-
while [ "$DIR" != "/" ]; do
|
|
28
|
-
[ -d "$DIR/.bare" ] && { BARE_DIR="$DIR/.bare"; break; }
|
|
29
|
-
DIR=$(dirname "$DIR")
|
|
30
|
-
done
|
|
31
|
-
|
|
32
|
-
if [ -n "$BARE_DIR" ] && [ -f .git ]; then
|
|
33
|
-
echo "Repairing worktree paths (cross-platform fix)..."
|
|
34
|
-
|
|
35
|
-
# Detect platform
|
|
36
|
-
GF_PLATFORM="linux"
|
|
37
|
-
[ -f /proc/version ] && grep -qi "microsoft\|wsl" /proc/version 2>/dev/null && GF_PLATFORM="wsl"
|
|
38
|
-
|
|
39
|
-
# Repair all worktrees: convert absolute paths to relative paths
|
|
40
|
-
WORKTREES_DIR="$BARE_DIR/worktrees"
|
|
41
|
-
for wt_dir in "$WORKTREES_DIR"/*/; do
|
|
42
|
-
[ ! -d "$wt_dir" ] && continue
|
|
43
|
-
wt_name=$(basename "$wt_dir")
|
|
44
|
-
gitdir_file="$wt_dir/gitdir"
|
|
45
|
-
[ ! -f "$gitdir_file" ] && continue
|
|
46
|
-
|
|
47
|
-
stored_path=$(cat "$gitdir_file" | tr -d '\n\r')
|
|
48
|
-
|
|
49
|
-
# Determine if path is absolute and resolve to current platform
|
|
50
|
-
resolved_path="$stored_path"
|
|
51
|
-
is_abs=false
|
|
52
|
-
if [[ "$stored_path" =~ ^[A-Za-z]:[\\/] ]]; then
|
|
53
|
-
is_abs=true
|
|
54
|
-
if [ "$GF_PLATFORM" = "wsl" ]; then
|
|
55
|
-
drive=$(echo "${stored_path:0:1}" | tr '[:upper:]' '[:lower:]')
|
|
56
|
-
rest="${stored_path:2}"; rest="${rest//\\//}"
|
|
57
|
-
resolved_path="/mnt/$drive$rest"
|
|
58
|
-
fi
|
|
59
|
-
elif [[ "$stored_path" =~ ^/ ]]; then
|
|
60
|
-
is_abs=true
|
|
61
|
-
fi
|
|
62
|
-
[ "$is_abs" = "false" ] && continue # Already relative, skip
|
|
63
|
-
|
|
64
|
-
wt_real_dir=$(dirname "$resolved_path")
|
|
65
|
-
[ ! -d "$wt_real_dir" ] && continue
|
|
66
|
-
|
|
67
|
-
bare_wt_abs=$(realpath -m "$wt_dir")
|
|
68
|
-
wt_abs=$(realpath -m "$wt_real_dir")
|
|
69
|
-
|
|
70
|
-
# Fix gitdir backlink to relative
|
|
71
|
-
rel_gitdir=$(realpath -m --relative-to="$bare_wt_abs" "$wt_abs/.git")
|
|
72
|
-
[ "$stored_path" != "$rel_gitdir" ] && printf '%s\n' "$rel_gitdir" > "$gitdir_file"
|
|
73
|
-
|
|
74
|
-
# Fix worktree .git pseudo-file to relative
|
|
75
|
-
if [ -f "$wt_real_dir/.git" ]; then
|
|
76
|
-
git_content=$(cat "$wt_real_dir/.git" | tr -d '\n\r')
|
|
77
|
-
git_path="${git_content#gitdir: }"
|
|
78
|
-
rel_bare=$(realpath -m --relative-to="$wt_abs" "$bare_wt_abs")
|
|
79
|
-
[ "$git_path" != "$rel_bare" ] && printf 'gitdir: %s\n' "$rel_bare" > "$wt_real_dir/.git"
|
|
80
|
-
fi
|
|
81
|
-
done
|
|
82
|
-
|
|
83
|
-
# Verify repair
|
|
84
|
-
git rev-parse --git-dir >/dev/null 2>&1 && echo "Worktree paths repaired successfully" || { echo "BLOCKED: worktree repair failed"; exit 1; }
|
|
85
|
-
else
|
|
86
|
-
echo "BLOCKED: not a git repository and no .bare found"; exit 1
|
|
87
|
-
fi
|
|
88
|
-
fi
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### 1. Guards
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
CURRENT=$(git rev-parse --abbrev-ref HEAD)
|
|
95
|
-
|
|
96
|
-
# BLOCK: main is protected
|
|
97
|
-
[[ "$CURRENT" == "main" ]] && { echo "BLOCKED - main is protected"; exit 1; }
|
|
98
|
-
|
|
99
|
-
# WARNING: develop → offer rescue to feature
|
|
100
|
-
[[ "$CURRENT" == "develop" ]] && echo "WARNING: direct commit on develop"
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### 2. Analyze Changes
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
# Run in parallel: status + diff + log
|
|
107
|
-
git status --short
|
|
108
|
-
git diff --cached --stat
|
|
109
|
-
git diff --stat
|
|
110
|
-
git ls-files --others --exclude-standard
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
If nothing to commit → exit with "Nothing to commit".
|
|
114
|
-
|
|
115
|
-
### 2b. Validate appsettings Integrity
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
# Check if any appsettings*.json files are staged or modified
|
|
119
|
-
APPSETTINGS_CHANGED=$(git diff --cached --name-only --diff-filter=ACMR 2>/dev/null | grep -E "appsettings.*\.json$" || true)
|
|
120
|
-
APPSETTINGS_UNSTAGED=$(git diff --name-only 2>/dev/null | grep -E "appsettings.*\.json$" || true)
|
|
121
|
-
ALL_APPSETTINGS=$(echo -e "$APPSETTINGS_CHANGED\n$APPSETTINGS_UNSTAGED" | sort -u | grep -v "^$" || true)
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
If appsettings files detected, for EACH file compare top-level JSON keys against HEAD:
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
for FILE in $ALL_APPSETTINGS; do
|
|
128
|
-
# Skip if file is new (not in HEAD)
|
|
129
|
-
git show HEAD:"$FILE" > /dev/null 2>&1 || continue
|
|
130
|
-
|
|
131
|
-
git show HEAD:"$FILE" | node -e "
|
|
132
|
-
const fs = require('fs');
|
|
133
|
-
const headContent = fs.readFileSync(0, 'utf8');
|
|
134
|
-
const currContent = fs.readFileSync('$FILE', 'utf8');
|
|
135
|
-
const headKeys = Object.keys(JSON.parse(headContent));
|
|
136
|
-
const currKeys = new Set(Object.keys(JSON.parse(currContent)));
|
|
137
|
-
const missing = headKeys.filter(k => !currKeys.has(k));
|
|
138
|
-
if (missing.length > 0) {
|
|
139
|
-
console.log('SECTIONS REMOVED: ' + missing.join(', '));
|
|
140
|
-
process.exit(1);
|
|
141
|
-
}
|
|
142
|
-
console.log('OK - all sections preserved');
|
|
143
|
-
"
|
|
144
|
-
done
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
**BLOCK if any section was removed.** Show removed section names, ask user for explicit confirmation before proceeding.
|
|
148
|
-
|
|
149
|
-
#### 2b-ii. Detect Hardcoded Secrets
|
|
150
|
-
|
|
151
|
-
For each appsettings file in `$ALL_APPSETTINGS`, scan for hardcoded secret values:
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
for FILE in $ALL_APPSETTINGS; do
|
|
155
|
-
node -e "
|
|
156
|
-
const fs = require('fs');
|
|
157
|
-
const content = fs.readFileSync('$FILE', 'utf8');
|
|
158
|
-
const secrets = [];
|
|
159
|
-
// Connection strings with password
|
|
160
|
-
const connStr = content.match(/Password\s*=\s*[^;\"]+/gi) || [];
|
|
161
|
-
connStr.forEach(m => { if (!/CONFIGURE_HERE|TODO|PLACEHOLDER|\{/i.test(m)) secrets.push(m.trim()); });
|
|
162
|
-
// API keys patterns (sk-, key-, long hex/base64)
|
|
163
|
-
const apiKeys = content.match(/\"[^\"]+\":\s*\"(sk-[a-zA-Z0-9]{20,}|[a-f0-9]{32,}|[A-Za-z0-9+\/=]{40,})\"/g) || [];
|
|
164
|
-
apiKeys.forEach(m => secrets.push(m.trim()));
|
|
165
|
-
// GUID-like secrets in sensitive sections (ClientSecret, SecretKey, ApiKey)
|
|
166
|
-
const sensitiveKeys = content.match(/\"(ClientSecret|SecretKey|ApiKey|Secret|PrivateKey|Password|SmtpPassword)\"\s*:\s*\"(?!<CONFIGURE_HERE>)[^\"]{8,}\"/gi) || [];
|
|
167
|
-
sensitiveKeys.forEach(m => secrets.push(m.trim()));
|
|
168
|
-
if (secrets.length > 0) {
|
|
169
|
-
console.log('SECRETS DETECTED in $FILE:');
|
|
170
|
-
secrets.forEach(s => console.log(' - ' + s));
|
|
171
|
-
console.log('Replace with <CONFIGURE_HERE> placeholder before committing.');
|
|
172
|
-
process.exit(1);
|
|
173
|
-
}
|
|
174
|
-
" 2>/dev/null
|
|
175
|
-
done
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
**WARNING if secrets detected.** Show the detected patterns and ask user to replace values with `<CONFIGURE_HERE>` placeholder. The key/section MUST remain — only the VALUE should be replaced.
|
|
179
|
-
|
|
180
|
-
### 3. Detect EF Core Migrations
|
|
181
|
-
|
|
182
|
-
```bash
|
|
183
|
-
# Find migration files in staged + modified + untracked
|
|
184
|
-
MIGRATIONS=$(git diff --cached --name-only && git diff --name-only && git ls-files --others --exclude-standard | grep -E "Migrations/.*\.cs$")
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
If migrations detected, validate **3 required files**:
|
|
188
|
-
- `{Name}.cs` (main migration)
|
|
189
|
-
- `{Name}.Designer.cs`
|
|
190
|
-
- `{DbContext}ModelSnapshot.cs`
|
|
191
|
-
|
|
192
|
-
**BLOCK if any file is missing.** Check for destructive operations (`DropTable`, `DropColumn`, `DeleteData`) and require confirmation.
|
|
193
|
-
|
|
194
|
-
### 4. Stage + Commit
|
|
195
|
-
|
|
196
|
-
```bash
|
|
197
|
-
# Stage specific files (prefer explicit over git add -A)
|
|
198
|
-
git add {files}
|
|
199
|
-
|
|
200
|
-
# Generate conventional commit message
|
|
201
|
-
# {type}({scope}): {description}
|
|
202
|
-
# Types: feat, fix, db(migrations), chore
|
|
203
|
-
|
|
204
|
-
git commit -m "$(cat <<'EOF'
|
|
205
|
-
{type}({scope}): {description}
|
|
206
|
-
|
|
207
|
-
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
208
|
-
EOF
|
|
209
|
-
)"
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### 5. Push (ALWAYS ASK USER)
|
|
213
|
-
|
|
214
|
-
**MANDATORY:** Ask user before pushing. Never push automatically.
|
|
215
|
-
|
|
216
|
-
After push, verify with force-fetch:
|
|
217
|
-
```bash
|
|
218
|
-
git fetch origin $CURRENT:refs/remotes/origin/$CURRENT --force --quiet
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### 6. Summary
|
|
222
|
-
|
|
223
|
-
```
|
|
224
|
-
COMMIT CREATED
|
|
225
|
-
Branch: {branch}
|
|
226
|
-
Commit: {hash}
|
|
227
|
-
Message: {first line}
|
|
228
|
-
Files: {N} changed
|
|
229
|
-
EF Core: {Valid | Destructive confirmed | N/A}
|
|
230
|
-
Pushed: {yes | no}
|
|
231
|
-
NEXT: /gitflow pr
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
## Priority
|
|
235
|
-
|
|
236
|
-
Correctness > Speed. Never commit incomplete migration.
|
|
1
|
+
---
|
|
2
|
+
name: gitflow-commit
|
|
3
|
+
description: GitFlow commit with EF Core migration validation (OPTIMISE)
|
|
4
|
+
color: green
|
|
5
|
+
model: haiku
|
|
6
|
+
tools: Bash, Read, Glob, Grep
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# GitFlow Commit Agent
|
|
10
|
+
|
|
11
|
+
Commit with EF Core migration validation. Executes directly, displays only the result.
|
|
12
|
+
|
|
13
|
+
> **OPTIMISED:** haiku model, reduced tools (no Edit/Write). Access to current context.
|
|
14
|
+
|
|
15
|
+
## EXECUTION SEQUENCE
|
|
16
|
+
|
|
17
|
+
### 0. Pre-flight: Worktree Accessibility
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Quick check: can git resolve the repo?
|
|
21
|
+
git rev-parse --git-dir >/dev/null 2>&1
|
|
22
|
+
if [ $? -ne 0 ]; then
|
|
23
|
+
# Worktree .git file likely has cross-platform absolute path
|
|
24
|
+
# Find .bare directory by walking up
|
|
25
|
+
BARE_DIR=""
|
|
26
|
+
DIR="$(pwd)"
|
|
27
|
+
while [ "$DIR" != "/" ]; do
|
|
28
|
+
[ -d "$DIR/.bare" ] && { BARE_DIR="$DIR/.bare"; break; }
|
|
29
|
+
DIR=$(dirname "$DIR")
|
|
30
|
+
done
|
|
31
|
+
|
|
32
|
+
if [ -n "$BARE_DIR" ] && [ -f .git ]; then
|
|
33
|
+
echo "Repairing worktree paths (cross-platform fix)..."
|
|
34
|
+
|
|
35
|
+
# Detect platform
|
|
36
|
+
GF_PLATFORM="linux"
|
|
37
|
+
[ -f /proc/version ] && grep -qi "microsoft\|wsl" /proc/version 2>/dev/null && GF_PLATFORM="wsl"
|
|
38
|
+
|
|
39
|
+
# Repair all worktrees: convert absolute paths to relative paths
|
|
40
|
+
WORKTREES_DIR="$BARE_DIR/worktrees"
|
|
41
|
+
for wt_dir in "$WORKTREES_DIR"/*/; do
|
|
42
|
+
[ ! -d "$wt_dir" ] && continue
|
|
43
|
+
wt_name=$(basename "$wt_dir")
|
|
44
|
+
gitdir_file="$wt_dir/gitdir"
|
|
45
|
+
[ ! -f "$gitdir_file" ] && continue
|
|
46
|
+
|
|
47
|
+
stored_path=$(cat "$gitdir_file" | tr -d '\n\r')
|
|
48
|
+
|
|
49
|
+
# Determine if path is absolute and resolve to current platform
|
|
50
|
+
resolved_path="$stored_path"
|
|
51
|
+
is_abs=false
|
|
52
|
+
if [[ "$stored_path" =~ ^[A-Za-z]:[\\/] ]]; then
|
|
53
|
+
is_abs=true
|
|
54
|
+
if [ "$GF_PLATFORM" = "wsl" ]; then
|
|
55
|
+
drive=$(echo "${stored_path:0:1}" | tr '[:upper:]' '[:lower:]')
|
|
56
|
+
rest="${stored_path:2}"; rest="${rest//\\//}"
|
|
57
|
+
resolved_path="/mnt/$drive$rest"
|
|
58
|
+
fi
|
|
59
|
+
elif [[ "$stored_path" =~ ^/ ]]; then
|
|
60
|
+
is_abs=true
|
|
61
|
+
fi
|
|
62
|
+
[ "$is_abs" = "false" ] && continue # Already relative, skip
|
|
63
|
+
|
|
64
|
+
wt_real_dir=$(dirname "$resolved_path")
|
|
65
|
+
[ ! -d "$wt_real_dir" ] && continue
|
|
66
|
+
|
|
67
|
+
bare_wt_abs=$(realpath -m "$wt_dir")
|
|
68
|
+
wt_abs=$(realpath -m "$wt_real_dir")
|
|
69
|
+
|
|
70
|
+
# Fix gitdir backlink to relative
|
|
71
|
+
rel_gitdir=$(realpath -m --relative-to="$bare_wt_abs" "$wt_abs/.git")
|
|
72
|
+
[ "$stored_path" != "$rel_gitdir" ] && printf '%s\n' "$rel_gitdir" > "$gitdir_file"
|
|
73
|
+
|
|
74
|
+
# Fix worktree .git pseudo-file to relative
|
|
75
|
+
if [ -f "$wt_real_dir/.git" ]; then
|
|
76
|
+
git_content=$(cat "$wt_real_dir/.git" | tr -d '\n\r')
|
|
77
|
+
git_path="${git_content#gitdir: }"
|
|
78
|
+
rel_bare=$(realpath -m --relative-to="$wt_abs" "$bare_wt_abs")
|
|
79
|
+
[ "$git_path" != "$rel_bare" ] && printf 'gitdir: %s\n' "$rel_bare" > "$wt_real_dir/.git"
|
|
80
|
+
fi
|
|
81
|
+
done
|
|
82
|
+
|
|
83
|
+
# Verify repair
|
|
84
|
+
git rev-parse --git-dir >/dev/null 2>&1 && echo "Worktree paths repaired successfully" || { echo "BLOCKED: worktree repair failed"; exit 1; }
|
|
85
|
+
else
|
|
86
|
+
echo "BLOCKED: not a git repository and no .bare found"; exit 1
|
|
87
|
+
fi
|
|
88
|
+
fi
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 1. Guards
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
CURRENT=$(git rev-parse --abbrev-ref HEAD)
|
|
95
|
+
|
|
96
|
+
# BLOCK: main is protected
|
|
97
|
+
[[ "$CURRENT" == "main" ]] && { echo "BLOCKED - main is protected"; exit 1; }
|
|
98
|
+
|
|
99
|
+
# WARNING: develop → offer rescue to feature
|
|
100
|
+
[[ "$CURRENT" == "develop" ]] && echo "WARNING: direct commit on develop"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 2. Analyze Changes
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Run in parallel: status + diff + log
|
|
107
|
+
git status --short
|
|
108
|
+
git diff --cached --stat
|
|
109
|
+
git diff --stat
|
|
110
|
+
git ls-files --others --exclude-standard
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
If nothing to commit → exit with "Nothing to commit".
|
|
114
|
+
|
|
115
|
+
### 2b. Validate appsettings Integrity
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# Check if any appsettings*.json files are staged or modified
|
|
119
|
+
APPSETTINGS_CHANGED=$(git diff --cached --name-only --diff-filter=ACMR 2>/dev/null | grep -E "appsettings.*\.json$" || true)
|
|
120
|
+
APPSETTINGS_UNSTAGED=$(git diff --name-only 2>/dev/null | grep -E "appsettings.*\.json$" || true)
|
|
121
|
+
ALL_APPSETTINGS=$(echo -e "$APPSETTINGS_CHANGED\n$APPSETTINGS_UNSTAGED" | sort -u | grep -v "^$" || true)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
If appsettings files detected, for EACH file compare top-level JSON keys against HEAD:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
for FILE in $ALL_APPSETTINGS; do
|
|
128
|
+
# Skip if file is new (not in HEAD)
|
|
129
|
+
git show HEAD:"$FILE" > /dev/null 2>&1 || continue
|
|
130
|
+
|
|
131
|
+
git show HEAD:"$FILE" | node -e "
|
|
132
|
+
const fs = require('fs');
|
|
133
|
+
const headContent = fs.readFileSync(0, 'utf8');
|
|
134
|
+
const currContent = fs.readFileSync('$FILE', 'utf8');
|
|
135
|
+
const headKeys = Object.keys(JSON.parse(headContent));
|
|
136
|
+
const currKeys = new Set(Object.keys(JSON.parse(currContent)));
|
|
137
|
+
const missing = headKeys.filter(k => !currKeys.has(k));
|
|
138
|
+
if (missing.length > 0) {
|
|
139
|
+
console.log('SECTIONS REMOVED: ' + missing.join(', '));
|
|
140
|
+
process.exit(1);
|
|
141
|
+
}
|
|
142
|
+
console.log('OK - all sections preserved');
|
|
143
|
+
"
|
|
144
|
+
done
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**BLOCK if any section was removed.** Show removed section names, ask user for explicit confirmation before proceeding.
|
|
148
|
+
|
|
149
|
+
#### 2b-ii. Detect Hardcoded Secrets
|
|
150
|
+
|
|
151
|
+
For each appsettings file in `$ALL_APPSETTINGS`, scan for hardcoded secret values:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
for FILE in $ALL_APPSETTINGS; do
|
|
155
|
+
node -e "
|
|
156
|
+
const fs = require('fs');
|
|
157
|
+
const content = fs.readFileSync('$FILE', 'utf8');
|
|
158
|
+
const secrets = [];
|
|
159
|
+
// Connection strings with password
|
|
160
|
+
const connStr = content.match(/Password\s*=\s*[^;\"]+/gi) || [];
|
|
161
|
+
connStr.forEach(m => { if (!/CONFIGURE_HERE|TODO|PLACEHOLDER|\{/i.test(m)) secrets.push(m.trim()); });
|
|
162
|
+
// API keys patterns (sk-, key-, long hex/base64)
|
|
163
|
+
const apiKeys = content.match(/\"[^\"]+\":\s*\"(sk-[a-zA-Z0-9]{20,}|[a-f0-9]{32,}|[A-Za-z0-9+\/=]{40,})\"/g) || [];
|
|
164
|
+
apiKeys.forEach(m => secrets.push(m.trim()));
|
|
165
|
+
// GUID-like secrets in sensitive sections (ClientSecret, SecretKey, ApiKey)
|
|
166
|
+
const sensitiveKeys = content.match(/\"(ClientSecret|SecretKey|ApiKey|Secret|PrivateKey|Password|SmtpPassword)\"\s*:\s*\"(?!<CONFIGURE_HERE>)[^\"]{8,}\"/gi) || [];
|
|
167
|
+
sensitiveKeys.forEach(m => secrets.push(m.trim()));
|
|
168
|
+
if (secrets.length > 0) {
|
|
169
|
+
console.log('SECRETS DETECTED in $FILE:');
|
|
170
|
+
secrets.forEach(s => console.log(' - ' + s));
|
|
171
|
+
console.log('Replace with <CONFIGURE_HERE> placeholder before committing.');
|
|
172
|
+
process.exit(1);
|
|
173
|
+
}
|
|
174
|
+
" 2>/dev/null
|
|
175
|
+
done
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**WARNING if secrets detected.** Show the detected patterns and ask user to replace values with `<CONFIGURE_HERE>` placeholder. The key/section MUST remain — only the VALUE should be replaced.
|
|
179
|
+
|
|
180
|
+
### 3. Detect EF Core Migrations
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# Find migration files in staged + modified + untracked
|
|
184
|
+
MIGRATIONS=$(git diff --cached --name-only && git diff --name-only && git ls-files --others --exclude-standard | grep -E "Migrations/.*\.cs$")
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
If migrations detected, validate **3 required files**:
|
|
188
|
+
- `{Name}.cs` (main migration)
|
|
189
|
+
- `{Name}.Designer.cs`
|
|
190
|
+
- `{DbContext}ModelSnapshot.cs`
|
|
191
|
+
|
|
192
|
+
**BLOCK if any file is missing.** Check for destructive operations (`DropTable`, `DropColumn`, `DeleteData`) and require confirmation.
|
|
193
|
+
|
|
194
|
+
### 4. Stage + Commit
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# Stage specific files (prefer explicit over git add -A)
|
|
198
|
+
git add {files}
|
|
199
|
+
|
|
200
|
+
# Generate conventional commit message
|
|
201
|
+
# {type}({scope}): {description}
|
|
202
|
+
# Types: feat, fix, db(migrations), chore
|
|
203
|
+
|
|
204
|
+
git commit -m "$(cat <<'EOF'
|
|
205
|
+
{type}({scope}): {description}
|
|
206
|
+
|
|
207
|
+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
208
|
+
EOF
|
|
209
|
+
)"
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 5. Push (ALWAYS ASK USER)
|
|
213
|
+
|
|
214
|
+
**MANDATORY:** Ask user before pushing. Never push automatically.
|
|
215
|
+
|
|
216
|
+
After push, verify with force-fetch:
|
|
217
|
+
```bash
|
|
218
|
+
git fetch origin $CURRENT:refs/remotes/origin/$CURRENT --force --quiet
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### 6. Summary
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
COMMIT CREATED
|
|
225
|
+
Branch: {branch}
|
|
226
|
+
Commit: {hash}
|
|
227
|
+
Message: {first line}
|
|
228
|
+
Files: {N} changed
|
|
229
|
+
EF Core: {Valid | Destructive confirmed | N/A}
|
|
230
|
+
Pushed: {yes | no}
|
|
231
|
+
NEXT: /gitflow pr
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Priority
|
|
235
|
+
|
|
236
|
+
Correctness > Speed. Never commit incomplete migration.
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gitflow-exec
|
|
3
|
-
description: GitFlow plan execution with versioning and conflict resolution
|
|
4
|
-
color: red
|
|
5
|
-
model: sonnet
|
|
6
|
-
tools: Bash, Read, Glob, Grep, Edit, Write
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# GitFlow Exec Agent
|
|
10
|
-
|
|
11
|
-
Expert GitFlow et EF Core. Execution securisee du plan d'integration.
|
|
12
|
-
|
|
13
|
-
## Workflow
|
|
14
|
-
|
|
15
|
-
1. **Charger**: Plan depuis `.claude/gitflow/plans/` (argument ou recent)
|
|
16
|
-
2. **Verifier**: Working dir propre, build OK, plan valide
|
|
17
|
-
3. **Checkpoint**: Sauvegarder etat dans `.claude/gitflow/logs/`
|
|
18
|
-
4. **Executer**: Etapes du plan avec gestion conflits
|
|
19
|
-
5. **Version**: Tag + increment fichier source (.NET)
|
|
20
|
-
6. **Valider**: Build, tests, migrations list
|
|
21
|
-
7. **Archiver**: Plan avec suffix `_DONE_{timestamp}`
|
|
22
|
-
|
|
23
|
-
## Gestion Conflits ModelSnapshot
|
|
24
|
-
|
|
25
|
-
Si conflit pendant rebase:
|
|
26
|
-
1. Accept theirs: `git checkout --theirs */Migrations/*ModelSnapshot.cs`
|
|
27
|
-
2. Regenerer: `dotnet ef migrations add {NomMigration}`
|
|
28
|
-
3. Continue: `git rebase --continue`
|
|
29
|
-
|
|
30
|
-
## Version (.NET)
|
|
31
|
-
|
|
32
|
-
Mettre a jour selon `versioning.source`:
|
|
33
|
-
- csproj: balise `<Version>`
|
|
34
|
-
- Directory.Build.props: balise `<Version>`
|
|
35
|
-
- AssemblyInfo.cs: attribut `[AssemblyVersion]`
|
|
36
|
-
- VERSION: contenu fichier
|
|
37
|
-
|
|
38
|
-
## Rollback
|
|
39
|
-
|
|
40
|
-
Si echec:
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
/gitflow abort --checkpoint
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Priority
|
|
47
|
-
|
|
48
|
-
Safety > Correctness > Speed. Checkpoint avant toute action destructive.
|
|
1
|
+
---
|
|
2
|
+
name: gitflow-exec
|
|
3
|
+
description: GitFlow plan execution with versioning and conflict resolution
|
|
4
|
+
color: red
|
|
5
|
+
model: sonnet
|
|
6
|
+
tools: Bash, Read, Glob, Grep, Edit, Write
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# GitFlow Exec Agent
|
|
10
|
+
|
|
11
|
+
Expert GitFlow et EF Core. Execution securisee du plan d'integration.
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
1. **Charger**: Plan depuis `.claude/gitflow/plans/` (argument ou recent)
|
|
16
|
+
2. **Verifier**: Working dir propre, build OK, plan valide
|
|
17
|
+
3. **Checkpoint**: Sauvegarder etat dans `.claude/gitflow/logs/`
|
|
18
|
+
4. **Executer**: Etapes du plan avec gestion conflits
|
|
19
|
+
5. **Version**: Tag + increment fichier source (.NET)
|
|
20
|
+
6. **Valider**: Build, tests, migrations list
|
|
21
|
+
7. **Archiver**: Plan avec suffix `_DONE_{timestamp}`
|
|
22
|
+
|
|
23
|
+
## Gestion Conflits ModelSnapshot
|
|
24
|
+
|
|
25
|
+
Si conflit pendant rebase:
|
|
26
|
+
1. Accept theirs: `git checkout --theirs */Migrations/*ModelSnapshot.cs`
|
|
27
|
+
2. Regenerer: `dotnet ef migrations add {NomMigration}`
|
|
28
|
+
3. Continue: `git rebase --continue`
|
|
29
|
+
|
|
30
|
+
## Version (.NET)
|
|
31
|
+
|
|
32
|
+
Mettre a jour selon `versioning.source`:
|
|
33
|
+
- csproj: balise `<Version>`
|
|
34
|
+
- Directory.Build.props: balise `<Version>`
|
|
35
|
+
- AssemblyInfo.cs: attribut `[AssemblyVersion]`
|
|
36
|
+
- VERSION: contenu fichier
|
|
37
|
+
|
|
38
|
+
## Rollback
|
|
39
|
+
|
|
40
|
+
Si echec:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
/gitflow abort --checkpoint
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Priority
|
|
47
|
+
|
|
48
|
+
Safety > Correctness > Speed. Checkpoint avant toute action destructive.
|