@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,101 +1,101 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: validate-feature
|
|
3
|
-
description: Validate that a scaffolded feature works end-to-end (compile, test, API smoke test)
|
|
4
|
-
version: 1.0.0
|
|
5
|
-
author: SmartStack
|
|
6
|
-
tags: [testing, validation, smoke-test, integration]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# /validate-feature
|
|
10
|
-
|
|
11
|
-
## PURPOSE
|
|
12
|
-
|
|
13
|
-
Validates that a scaffolded SmartStack feature **actually works** by running:
|
|
14
|
-
0. Dependency pre-flight check (restore, transitive deps, quick startup test)
|
|
15
|
-
1. Compilation check (`dotnet build`)
|
|
16
|
-
2. Unit tests (`dotnet test`)
|
|
17
|
-
3. Integration tests (`dotnet test --filter`)
|
|
18
|
-
4. API smoke test (start API, hit CRUD endpoints, verify responses)
|
|
19
|
-
5. DB validation (SQL Server: migrations, seed data, tenant isolation, LINQ→SQL)
|
|
20
|
-
|
|
21
|
-
## WHEN TO USE
|
|
22
|
-
|
|
23
|
-
- After running `/application` to scaffold a new feature
|
|
24
|
-
- After making changes to backend code (controllers, services, entities)
|
|
25
|
-
- Before committing to verify nothing is broken
|
|
26
|
-
- As a confidence check that the full stack works
|
|
27
|
-
|
|
28
|
-
## USAGE
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
/validate-feature {EntityName}
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**Examples:**
|
|
35
|
-
```
|
|
36
|
-
/validate-feature Product
|
|
37
|
-
/validate-feature Order
|
|
38
|
-
/validate-feature UserProfile
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## PARAMETERS
|
|
42
|
-
|
|
43
|
-
| Parameter | Required | Description |
|
|
44
|
-
|-----------|----------|-------------|
|
|
45
|
-
| `{entity_name}` | YES | PascalCase entity name to validate |
|
|
46
|
-
|
|
47
|
-
## PREREQUISITES
|
|
48
|
-
|
|
49
|
-
- The solution must compile
|
|
50
|
-
- Test project must exist with infrastructure (SmartStackTestFactory, IntegrationTestBase)
|
|
51
|
-
- Entity must have been scaffolded (controller, service, entity files exist)
|
|
52
|
-
|
|
53
|
-
## EXECUTION
|
|
54
|
-
|
|
55
|
-
This skill follows a 6-step sequential workflow:
|
|
56
|
-
|
|
57
|
-
| Step | File | Description | Blocking |
|
|
58
|
-
|------|------|-------------|----------|
|
|
59
|
-
| 0 | `steps/step-00-dependencies.md` | Pre-flight dependency check (restore, runtime assembly validation) | YES |
|
|
60
|
-
| 1 | `steps/step-01-compile.md` | Build the full solution | YES |
|
|
61
|
-
| 2 | `steps/step-02-unit-tests.md` | Run unit tests | YES |
|
|
62
|
-
| 3 | `steps/step-03-integration-tests.md` | Run integration tests | YES |
|
|
63
|
-
| 4 | `steps/step-04-api-smoke.md` | Start API and test CRUD endpoints | YES |
|
|
64
|
-
| 5 | `steps/step-05-db-validation.md` | SQL Server validation (migrations, seed data, tenant isolation, LINQ→SQL) | YES |
|
|
65
|
-
|
|
66
|
-
Each step must PASS before proceeding to the next.
|
|
67
|
-
|
|
68
|
-
## OUTPUT
|
|
69
|
-
|
|
70
|
-
A validation report showing pass/fail for each check:
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
## Feature Validation: {EntityName}
|
|
74
|
-
|
|
75
|
-
| Check | Result |
|
|
76
|
-
|-------|--------|
|
|
77
|
-
| Solution build | PASS |
|
|
78
|
-
| Unit tests (X passed) | PASS |
|
|
79
|
-
| Integration tests (X passed) | PASS |
|
|
80
|
-
| API smoke: GET /api/{entity} | PASS (200) |
|
|
81
|
-
| API smoke: POST /api/{entity} | PASS (201) |
|
|
82
|
-
| API smoke: GET /api/{entity}/{id} | PASS (200) |
|
|
83
|
-
| API smoke: PUT /api/{entity}/{id} | PASS (200) |
|
|
84
|
-
| API smoke: DELETE /api/{entity}/{id} | PASS (204) |
|
|
85
|
-
| DB: Migrations apply (SQL Server) | PASS |
|
|
86
|
-
| DB: Integration tests (SQL Server) | PASS |
|
|
87
|
-
| DB: Seed data accessible | PASS |
|
|
88
|
-
|
|
89
|
-
Result: ALL CHECKS PASSED
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
<success_criteria>
|
|
93
|
-
- Solution compiles without errors
|
|
94
|
-
- All unit tests pass
|
|
95
|
-
- All integration tests pass
|
|
96
|
-
- API smoke tests return expected HTTP status codes (200, 201, 204)
|
|
97
|
-
- Migrations apply cleanly on SQL Server LocalDB
|
|
98
|
-
- Integration tests pass against real SQL Server (LINQ→SQL, tenant isolation)
|
|
99
|
-
- Seed data is accessible via API endpoints
|
|
100
|
-
- Validation report displayed with per-check results
|
|
101
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: validate-feature
|
|
3
|
+
description: Validate that a scaffolded feature works end-to-end (compile, test, API smoke test)
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: SmartStack
|
|
6
|
+
tags: [testing, validation, smoke-test, integration]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /validate-feature
|
|
10
|
+
|
|
11
|
+
## PURPOSE
|
|
12
|
+
|
|
13
|
+
Validates that a scaffolded SmartStack feature **actually works** by running:
|
|
14
|
+
0. Dependency pre-flight check (restore, transitive deps, quick startup test)
|
|
15
|
+
1. Compilation check (`dotnet build`)
|
|
16
|
+
2. Unit tests (`dotnet test`)
|
|
17
|
+
3. Integration tests (`dotnet test --filter`)
|
|
18
|
+
4. API smoke test (start API, hit CRUD endpoints, verify responses)
|
|
19
|
+
5. DB validation (SQL Server: migrations, seed data, tenant isolation, LINQ→SQL)
|
|
20
|
+
|
|
21
|
+
## WHEN TO USE
|
|
22
|
+
|
|
23
|
+
- After running `/application` to scaffold a new feature
|
|
24
|
+
- After making changes to backend code (controllers, services, entities)
|
|
25
|
+
- Before committing to verify nothing is broken
|
|
26
|
+
- As a confidence check that the full stack works
|
|
27
|
+
|
|
28
|
+
## USAGE
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
/validate-feature {EntityName}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Examples:**
|
|
35
|
+
```
|
|
36
|
+
/validate-feature Product
|
|
37
|
+
/validate-feature Order
|
|
38
|
+
/validate-feature UserProfile
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## PARAMETERS
|
|
42
|
+
|
|
43
|
+
| Parameter | Required | Description |
|
|
44
|
+
|-----------|----------|-------------|
|
|
45
|
+
| `{entity_name}` | YES | PascalCase entity name to validate |
|
|
46
|
+
|
|
47
|
+
## PREREQUISITES
|
|
48
|
+
|
|
49
|
+
- The solution must compile
|
|
50
|
+
- Test project must exist with infrastructure (SmartStackTestFactory, IntegrationTestBase)
|
|
51
|
+
- Entity must have been scaffolded (controller, service, entity files exist)
|
|
52
|
+
|
|
53
|
+
## EXECUTION
|
|
54
|
+
|
|
55
|
+
This skill follows a 6-step sequential workflow:
|
|
56
|
+
|
|
57
|
+
| Step | File | Description | Blocking |
|
|
58
|
+
|------|------|-------------|----------|
|
|
59
|
+
| 0 | `steps/step-00-dependencies.md` | Pre-flight dependency check (restore, runtime assembly validation) | YES |
|
|
60
|
+
| 1 | `steps/step-01-compile.md` | Build the full solution | YES |
|
|
61
|
+
| 2 | `steps/step-02-unit-tests.md` | Run unit tests | YES |
|
|
62
|
+
| 3 | `steps/step-03-integration-tests.md` | Run integration tests | YES |
|
|
63
|
+
| 4 | `steps/step-04-api-smoke.md` | Start API and test CRUD endpoints | YES |
|
|
64
|
+
| 5 | `steps/step-05-db-validation.md` | SQL Server validation (migrations, seed data, tenant isolation, LINQ→SQL) | YES |
|
|
65
|
+
|
|
66
|
+
Each step must PASS before proceeding to the next.
|
|
67
|
+
|
|
68
|
+
## OUTPUT
|
|
69
|
+
|
|
70
|
+
A validation report showing pass/fail for each check:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
## Feature Validation: {EntityName}
|
|
74
|
+
|
|
75
|
+
| Check | Result |
|
|
76
|
+
|-------|--------|
|
|
77
|
+
| Solution build | PASS |
|
|
78
|
+
| Unit tests (X passed) | PASS |
|
|
79
|
+
| Integration tests (X passed) | PASS |
|
|
80
|
+
| API smoke: GET /api/{entity} | PASS (200) |
|
|
81
|
+
| API smoke: POST /api/{entity} | PASS (201) |
|
|
82
|
+
| API smoke: GET /api/{entity}/{id} | PASS (200) |
|
|
83
|
+
| API smoke: PUT /api/{entity}/{id} | PASS (200) |
|
|
84
|
+
| API smoke: DELETE /api/{entity}/{id} | PASS (204) |
|
|
85
|
+
| DB: Migrations apply (SQL Server) | PASS |
|
|
86
|
+
| DB: Integration tests (SQL Server) | PASS |
|
|
87
|
+
| DB: Seed data accessible | PASS |
|
|
88
|
+
|
|
89
|
+
Result: ALL CHECKS PASSED
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
<success_criteria>
|
|
93
|
+
- Solution compiles without errors
|
|
94
|
+
- All unit tests pass
|
|
95
|
+
- All integration tests pass
|
|
96
|
+
- API smoke tests return expected HTTP status codes (200, 201, 204)
|
|
97
|
+
- Migrations apply cleanly on SQL Server LocalDB
|
|
98
|
+
- Integration tests pass against real SQL Server (LINQ→SQL, tenant isolation)
|
|
99
|
+
- Seed data is accessible via API endpoints
|
|
100
|
+
- Validation report displayed with per-check results
|
|
101
|
+
</success_criteria>
|
|
@@ -1,140 +1,140 @@
|
|
|
1
|
-
# API Smoke Test Procedure
|
|
2
|
-
|
|
3
|
-
> **Reference for:** step-04-api-smoke.md
|
|
4
|
-
> **Purpose:** Validate CRUD endpoints with real HTTP requests
|
|
5
|
-
> **Scope:** GET all, POST create, GET by ID, PUT update, DELETE, GET verify deleted
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Startup Sequence
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
# Start API on test port
|
|
13
|
-
dotnet run --project {ApiProject} --urls "http://localhost:5099" > /tmp/api-smoke-output.log 2>&1 &
|
|
14
|
-
API_PID=$!
|
|
15
|
-
|
|
16
|
-
# Wait for readiness (with crash detection)
|
|
17
|
-
API_CRASHED=false
|
|
18
|
-
for i in $(seq 1 30); do
|
|
19
|
-
if ! kill -0 $API_PID 2>/dev/null; then
|
|
20
|
-
echo "API PROCESS CRASHED during startup"
|
|
21
|
-
cat /tmp/api-smoke-output.log 2>/dev/null
|
|
22
|
-
API_CRASHED=true
|
|
23
|
-
break
|
|
24
|
-
fi
|
|
25
|
-
|
|
26
|
-
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:5099/health 2>/dev/null)
|
|
27
|
-
if [ "$HTTP_CODE" != "000" ]; then
|
|
28
|
-
echo "API is ready (HTTP $HTTP_CODE)"
|
|
29
|
-
break
|
|
30
|
-
fi
|
|
31
|
-
sleep 1
|
|
32
|
-
done
|
|
33
|
-
|
|
34
|
-
# If API_CRASHED=true → Jump to section "Crash Classification" below
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## CRUD Test Sequence
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
# Get auth token (optional)
|
|
43
|
-
TOKEN=$(curl -s -X POST http://localhost:5099/api/auth/login \
|
|
44
|
-
-H "Content-Type: application/json" \
|
|
45
|
-
-d '{"email":"admin@smartstack.io","password":"Admin123!"}' \
|
|
46
|
-
| jq -r '.token // .accessToken // empty')
|
|
47
|
-
|
|
48
|
-
# Headers
|
|
49
|
-
AUTH_HEADER="Authorization: Bearer $TOKEN"
|
|
50
|
-
TENANT_HEADER="X-Tenant-Id: 11111111-1111-1111-1111-111111111111"
|
|
51
|
-
CONTENT_TYPE="Content-Type: application/json"
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### Test 1: GET All (expect 200)
|
|
55
|
-
```bash
|
|
56
|
-
curl -s -w "\nHTTP %{http_code}" \
|
|
57
|
-
-H "$AUTH_HEADER" -H "$TENANT_HEADER" \
|
|
58
|
-
http://localhost:5099/api/{entity_code}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Test 2: POST Create (expect 201 or 200)
|
|
62
|
-
```bash
|
|
63
|
-
CREATED=$(curl -s -X POST \
|
|
64
|
-
-H "$AUTH_HEADER" -H "$TENANT_HEADER" -H "$CONTENT_TYPE" \
|
|
65
|
-
-d '{"code":"smoke-test-01","name":"Smoke Test Entity"}' \
|
|
66
|
-
http://localhost:5099/api/{entity_code})
|
|
67
|
-
ENTITY_ID=$(echo "$CREATED" | jq -r '.id // .Id')
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Test 3: GET By ID (expect 200)
|
|
71
|
-
```bash
|
|
72
|
-
curl -s -w "\nHTTP %{http_code}" \
|
|
73
|
-
-H "$AUTH_HEADER" -H "$TENANT_HEADER" \
|
|
74
|
-
http://localhost:5099/api/{entity_code}/$ENTITY_ID
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Test 4: PUT Update (expect 200)
|
|
78
|
-
```bash
|
|
79
|
-
curl -s -X PUT -w "\nHTTP %{http_code}" \
|
|
80
|
-
-H "$AUTH_HEADER" -H "$TENANT_HEADER" -H "$CONTENT_TYPE" \
|
|
81
|
-
-d '{"code":"smoke-test-01","name":"Updated Name"}' \
|
|
82
|
-
http://localhost:5099/api/{entity_code}/$ENTITY_ID
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Test 5: DELETE (expect 204)
|
|
86
|
-
```bash
|
|
87
|
-
curl -s -X DELETE -w "\nHTTP %{http_code}" \
|
|
88
|
-
-H "$AUTH_HEADER" -H "$TENANT_HEADER" \
|
|
89
|
-
http://localhost:5099/api/{entity_code}/$ENTITY_ID
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Test 6: GET Deleted (expect 404)
|
|
93
|
-
```bash
|
|
94
|
-
curl -s -w "\nHTTP %{http_code}" \
|
|
95
|
-
-H "$AUTH_HEADER" -H "$TENANT_HEADER" \
|
|
96
|
-
http://localhost:5099/api/{entity_code}/$ENTITY_ID
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## HTTP Error Classification
|
|
102
|
-
|
|
103
|
-
| Status | Error | Cause | Fix |
|
|
104
|
-
|--------|-------|-------|-----|
|
|
105
|
-
| 401 | Unauthorized | Auth not configured | Check JWT token generation |
|
|
106
|
-
| 403 | Forbidden | Permissions missing | Verify PermissionConfiguration seeding |
|
|
107
|
-
| 404 | Not Found | Route not registered | Check NavRoute attribute on controller |
|
|
108
|
-
| 500 | Internal Server Error | Unhandled exception | Check API startup logs |
|
|
109
|
-
| Connection refused | API won't start | Startup config error | Review appsettings.json |
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## Crash Classification
|
|
114
|
-
|
|
115
|
-
If API process dies during startup, classify error from `/tmp/api-smoke-output.log`:
|
|
116
|
-
|
|
117
|
-
| Error Pattern | Category | Fix |
|
|
118
|
-
|---------------|----------|-----|
|
|
119
|
-
| `FileNotFoundException: Could not load file or assembly '{Name}, Version={V}'` | MISSING_PACKAGE | `dotnet add {ApiProject} package {Name} --version {Major.Minor.Patch}` |
|
|
120
|
-
| `FileNotFoundException: Could not load file or assembly '{Name}'` | MISSING_ASSEMBLY | Check .csproj references |
|
|
121
|
-
| `TypeLoadException: Could not load type '{Type}'` | VERSION_MISMATCH | Update package to correct version |
|
|
122
|
-
| `MissingMethodException` | VERSION_MISMATCH | Update package |
|
|
123
|
-
| `InvalidOperationException: Unable to resolve service for type '{Type}'` | MISSING_DI | Add DI registration in Program.cs |
|
|
124
|
-
| `SqlException` or connection errors | DATABASE_ERROR | Check appsettings.json connection string |
|
|
125
|
-
|
|
126
|
-
**For MISSING_PACKAGE:**
|
|
127
|
-
1. Extract assembly name (text between single quotes)
|
|
128
|
-
2. Extract version (Version=X.X.X.X segment)
|
|
129
|
-
3. Map to NuGet: assembly name usually equals package name
|
|
130
|
-
4. Output: `FIX: dotnet add {ApiProject} package {PackageName} --version {Major.Minor.Patch}`
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## Cleanup
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
kill $API_PID 2>/dev/null
|
|
138
|
-
wait $API_PID 2>/dev/null
|
|
139
|
-
rm -f /tmp/api-smoke-output.log
|
|
140
|
-
```
|
|
1
|
+
# API Smoke Test Procedure
|
|
2
|
+
|
|
3
|
+
> **Reference for:** step-04-api-smoke.md
|
|
4
|
+
> **Purpose:** Validate CRUD endpoints with real HTTP requests
|
|
5
|
+
> **Scope:** GET all, POST create, GET by ID, PUT update, DELETE, GET verify deleted
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Startup Sequence
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Start API on test port
|
|
13
|
+
dotnet run --project {ApiProject} --urls "http://localhost:5099" > /tmp/api-smoke-output.log 2>&1 &
|
|
14
|
+
API_PID=$!
|
|
15
|
+
|
|
16
|
+
# Wait for readiness (with crash detection)
|
|
17
|
+
API_CRASHED=false
|
|
18
|
+
for i in $(seq 1 30); do
|
|
19
|
+
if ! kill -0 $API_PID 2>/dev/null; then
|
|
20
|
+
echo "API PROCESS CRASHED during startup"
|
|
21
|
+
cat /tmp/api-smoke-output.log 2>/dev/null
|
|
22
|
+
API_CRASHED=true
|
|
23
|
+
break
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:5099/health 2>/dev/null)
|
|
27
|
+
if [ "$HTTP_CODE" != "000" ]; then
|
|
28
|
+
echo "API is ready (HTTP $HTTP_CODE)"
|
|
29
|
+
break
|
|
30
|
+
fi
|
|
31
|
+
sleep 1
|
|
32
|
+
done
|
|
33
|
+
|
|
34
|
+
# If API_CRASHED=true → Jump to section "Crash Classification" below
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## CRUD Test Sequence
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Get auth token (optional)
|
|
43
|
+
TOKEN=$(curl -s -X POST http://localhost:5099/api/auth/login \
|
|
44
|
+
-H "Content-Type: application/json" \
|
|
45
|
+
-d '{"email":"admin@smartstack.io","password":"Admin123!"}' \
|
|
46
|
+
| jq -r '.token // .accessToken // empty')
|
|
47
|
+
|
|
48
|
+
# Headers
|
|
49
|
+
AUTH_HEADER="Authorization: Bearer $TOKEN"
|
|
50
|
+
TENANT_HEADER="X-Tenant-Id: 11111111-1111-1111-1111-111111111111"
|
|
51
|
+
CONTENT_TYPE="Content-Type: application/json"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Test 1: GET All (expect 200)
|
|
55
|
+
```bash
|
|
56
|
+
curl -s -w "\nHTTP %{http_code}" \
|
|
57
|
+
-H "$AUTH_HEADER" -H "$TENANT_HEADER" \
|
|
58
|
+
http://localhost:5099/api/{entity_code}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Test 2: POST Create (expect 201 or 200)
|
|
62
|
+
```bash
|
|
63
|
+
CREATED=$(curl -s -X POST \
|
|
64
|
+
-H "$AUTH_HEADER" -H "$TENANT_HEADER" -H "$CONTENT_TYPE" \
|
|
65
|
+
-d '{"code":"smoke-test-01","name":"Smoke Test Entity"}' \
|
|
66
|
+
http://localhost:5099/api/{entity_code})
|
|
67
|
+
ENTITY_ID=$(echo "$CREATED" | jq -r '.id // .Id')
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Test 3: GET By ID (expect 200)
|
|
71
|
+
```bash
|
|
72
|
+
curl -s -w "\nHTTP %{http_code}" \
|
|
73
|
+
-H "$AUTH_HEADER" -H "$TENANT_HEADER" \
|
|
74
|
+
http://localhost:5099/api/{entity_code}/$ENTITY_ID
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Test 4: PUT Update (expect 200)
|
|
78
|
+
```bash
|
|
79
|
+
curl -s -X PUT -w "\nHTTP %{http_code}" \
|
|
80
|
+
-H "$AUTH_HEADER" -H "$TENANT_HEADER" -H "$CONTENT_TYPE" \
|
|
81
|
+
-d '{"code":"smoke-test-01","name":"Updated Name"}' \
|
|
82
|
+
http://localhost:5099/api/{entity_code}/$ENTITY_ID
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Test 5: DELETE (expect 204)
|
|
86
|
+
```bash
|
|
87
|
+
curl -s -X DELETE -w "\nHTTP %{http_code}" \
|
|
88
|
+
-H "$AUTH_HEADER" -H "$TENANT_HEADER" \
|
|
89
|
+
http://localhost:5099/api/{entity_code}/$ENTITY_ID
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Test 6: GET Deleted (expect 404)
|
|
93
|
+
```bash
|
|
94
|
+
curl -s -w "\nHTTP %{http_code}" \
|
|
95
|
+
-H "$AUTH_HEADER" -H "$TENANT_HEADER" \
|
|
96
|
+
http://localhost:5099/api/{entity_code}/$ENTITY_ID
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## HTTP Error Classification
|
|
102
|
+
|
|
103
|
+
| Status | Error | Cause | Fix |
|
|
104
|
+
|--------|-------|-------|-----|
|
|
105
|
+
| 401 | Unauthorized | Auth not configured | Check JWT token generation |
|
|
106
|
+
| 403 | Forbidden | Permissions missing | Verify PermissionConfiguration seeding |
|
|
107
|
+
| 404 | Not Found | Route not registered | Check NavRoute attribute on controller |
|
|
108
|
+
| 500 | Internal Server Error | Unhandled exception | Check API startup logs |
|
|
109
|
+
| Connection refused | API won't start | Startup config error | Review appsettings.json |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Crash Classification
|
|
114
|
+
|
|
115
|
+
If API process dies during startup, classify error from `/tmp/api-smoke-output.log`:
|
|
116
|
+
|
|
117
|
+
| Error Pattern | Category | Fix |
|
|
118
|
+
|---------------|----------|-----|
|
|
119
|
+
| `FileNotFoundException: Could not load file or assembly '{Name}, Version={V}'` | MISSING_PACKAGE | `dotnet add {ApiProject} package {Name} --version {Major.Minor.Patch}` |
|
|
120
|
+
| `FileNotFoundException: Could not load file or assembly '{Name}'` | MISSING_ASSEMBLY | Check .csproj references |
|
|
121
|
+
| `TypeLoadException: Could not load type '{Type}'` | VERSION_MISMATCH | Update package to correct version |
|
|
122
|
+
| `MissingMethodException` | VERSION_MISMATCH | Update package |
|
|
123
|
+
| `InvalidOperationException: Unable to resolve service for type '{Type}'` | MISSING_DI | Add DI registration in Program.cs |
|
|
124
|
+
| `SqlException` or connection errors | DATABASE_ERROR | Check appsettings.json connection string |
|
|
125
|
+
|
|
126
|
+
**For MISSING_PACKAGE:**
|
|
127
|
+
1. Extract assembly name (text between single quotes)
|
|
128
|
+
2. Extract version (Version=X.X.X.X segment)
|
|
129
|
+
3. Map to NuGet: assembly name usually equals package name
|
|
130
|
+
4. Output: `FIX: dotnet add {ApiProject} package {PackageName} --version {Major.Minor.Patch}`
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Cleanup
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
kill $API_PID 2>/dev/null
|
|
138
|
+
wait $API_PID 2>/dev/null
|
|
139
|
+
rm -f /tmp/api-smoke-output.log
|
|
140
|
+
```
|