@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,212 +1,212 @@
|
|
|
1
|
-
<overview>
|
|
2
|
-
Security code review checklist based on OWASP Code Review Guide and Top 10 2025. Comprehensive vulnerability patterns and search techniques.
|
|
3
|
-
</overview>
|
|
4
|
-
|
|
5
|
-
<critical_vulnerabilities>
|
|
6
|
-
<a01_broken_access_control priority="most_critical">
|
|
7
|
-
Authorization checks on **every request** (not just UI):
|
|
8
|
-
|
|
9
|
-
- [ ] Server-side enforcement (never trust client)
|
|
10
|
-
- [ ] IDOR protection: Users can't access others' data by changing IDs
|
|
11
|
-
- [ ] No privilege escalation paths
|
|
12
|
-
- [ ] Default deny policy (explicit allow required)
|
|
13
|
-
</a01_broken_access_control>
|
|
14
|
-
|
|
15
|
-
<a02_security_misconfiguration>
|
|
16
|
-
Configuration hardening:
|
|
17
|
-
|
|
18
|
-
- [ ] No default credentials
|
|
19
|
-
- [ ] Debug mode disabled in production
|
|
20
|
-
- [ ] Secure headers present (see below)
|
|
21
|
-
- [ ] Error messages don't expose internals
|
|
22
|
-
|
|
23
|
-
**Security headers configuration (ASP.NET Core):**
|
|
24
|
-
```csharp
|
|
25
|
-
// Program.cs
|
|
26
|
-
app.UseHsts(); // HTTP Strict Transport Security (production only)
|
|
27
|
-
|
|
28
|
-
app.Use(async (context, next) =>
|
|
29
|
-
{
|
|
30
|
-
var headers = context.Response.Headers;
|
|
31
|
-
headers["X-Content-Type-Options"] = "nosniff";
|
|
32
|
-
headers["X-Frame-Options"] = "DENY";
|
|
33
|
-
headers["Referrer-Policy"] = "strict-origin-when-cross-origin";
|
|
34
|
-
headers["Permissions-Policy"] = "camera=(), microphone=(), geolocation=()";
|
|
35
|
-
headers["Content-Security-Policy"] = "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'";
|
|
36
|
-
await next();
|
|
37
|
-
});
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
**Expected headers in responses:**
|
|
41
|
-
| Header | Value | Purpose |
|
|
42
|
-
|--------|-------|---------|
|
|
43
|
-
| `Strict-Transport-Security` | `max-age=31536000; includeSubDomains` | Force HTTPS |
|
|
44
|
-
| `X-Content-Type-Options` | `nosniff` | Prevent MIME sniffing |
|
|
45
|
-
| `X-Frame-Options` | `DENY` | Prevent clickjacking |
|
|
46
|
-
| `Referrer-Policy` | `strict-origin-when-cross-origin` | Limit referrer info |
|
|
47
|
-
| `Permissions-Policy` | `camera=(), microphone=()` | Restrict browser features |
|
|
48
|
-
| `Content-Security-Policy` | `default-src 'self'` | Prevent XSS via inline scripts |
|
|
49
|
-
</a02_security_misconfiguration>
|
|
50
|
-
|
|
51
|
-
<a04_cryptographic_failures>
|
|
52
|
-
Encryption requirements:
|
|
53
|
-
|
|
54
|
-
- [ ] TLS 1.2+ for data in transit
|
|
55
|
-
- [ ] AES-256 for data at rest
|
|
56
|
-
- [ ] Password hashing: bcrypt/Argon2/scrypt (NOT MD5/SHA1)
|
|
57
|
-
- [ ] No hardcoded encryption keys
|
|
58
|
-
</a04_cryptographic_failures>
|
|
59
|
-
|
|
60
|
-
<a05_injection>
|
|
61
|
-
Injection prevention:
|
|
62
|
-
|
|
63
|
-
- [ ] SQL: Parameterized queries only (no string concatenation)
|
|
64
|
-
- [ ] Command: No `eval()`, `exec()`, `system()` with user input
|
|
65
|
-
- [ ] XSS: Output encoding context-appropriate
|
|
66
|
-
- [ ] Template: No user input in template names
|
|
67
|
-
</a05_injection>
|
|
68
|
-
</critical_vulnerabilities>
|
|
69
|
-
|
|
70
|
-
<input_validation>
|
|
71
|
-
Server-side validation checklist:
|
|
72
|
-
|
|
73
|
-
✓ Server-side validation on ALL inputs
|
|
74
|
-
✓ Allowlist approach (whitelist known-good)
|
|
75
|
-
✓ Validate: type, length, format, range
|
|
76
|
-
✓ File uploads: extension + MIME + content inspection
|
|
77
|
-
✓ Regex reviewed for ReDoS vulnerabilities
|
|
78
|
-
</input_validation>
|
|
79
|
-
|
|
80
|
-
<authentication>
|
|
81
|
-
| Check | Requirement |
|
|
82
|
-
|-------|-------------|
|
|
83
|
-
| Password Storage | bcrypt/Argon2 with salt |
|
|
84
|
-
| Session Tokens | ≥128 bits entropy, HttpOnly+Secure+SameSite |
|
|
85
|
-
| Error Messages | Generic ("Invalid credentials"), no enumeration |
|
|
86
|
-
| MFA | Required for sensitive accounts |
|
|
87
|
-
| Lockout | Exponential delay after failed attempts |
|
|
88
|
-
</authentication>
|
|
89
|
-
|
|
90
|
-
<authorization>
|
|
91
|
-
Access control requirements:
|
|
92
|
-
|
|
93
|
-
✓ Default deny (explicit allow required)
|
|
94
|
-
✓ Checks on EVERY request
|
|
95
|
-
✓ Server-side only (never trust client roles)
|
|
96
|
-
✓ Centralized access control logic
|
|
97
|
-
✓ No horizontal escalation (user → other user's data)
|
|
98
|
-
✓ No vertical escalation (user → admin functions)
|
|
99
|
-
</authorization>
|
|
100
|
-
|
|
101
|
-
<rate_limiting>
|
|
102
|
-
## Rate Limiting & Throttling
|
|
103
|
-
|
|
104
|
-
**ASP.NET Core built-in middleware** (`Microsoft.AspNetCore.RateLimiting`):
|
|
105
|
-
|
|
106
|
-
```csharp
|
|
107
|
-
// Program.cs
|
|
108
|
-
builder.Services.AddRateLimiter(options =>
|
|
109
|
-
{
|
|
110
|
-
// Global fixed window: 100 requests per minute
|
|
111
|
-
options.GlobalLimiter = PartitionedRateLimiter.Create<HttpContext, string>(context =>
|
|
112
|
-
RateLimitPartition.GetFixedWindowLimiter(
|
|
113
|
-
partitionKey: context.User?.FindFirst("tenant_id")?.Value ?? context.Connection.RemoteIpAddress?.ToString() ?? "anonymous",
|
|
114
|
-
factory: _ => new FixedWindowRateLimiterOptions
|
|
115
|
-
{
|
|
116
|
-
PermitLimit = 100,
|
|
117
|
-
Window = TimeSpan.FromMinutes(1),
|
|
118
|
-
QueueLimit = 0
|
|
119
|
-
}));
|
|
120
|
-
|
|
121
|
-
// Named policy for sensitive endpoints
|
|
122
|
-
options.AddFixedWindowLimiter("auth", opt =>
|
|
123
|
-
{
|
|
124
|
-
opt.PermitLimit = 5;
|
|
125
|
-
opt.Window = TimeSpan.FromMinutes(15);
|
|
126
|
-
opt.QueueLimit = 0;
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
options.RejectionStatusCode = StatusCodes.Status429TooManyRequests;
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
app.UseRateLimiter();
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
**Controller usage:**
|
|
136
|
-
```csharp
|
|
137
|
-
[EnableRateLimiting("auth")]
|
|
138
|
-
[HttpPost("login")]
|
|
139
|
-
[AllowAnonymous]
|
|
140
|
-
public async Task<ActionResult> Login([FromBody] LoginDto dto) { ... }
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
**Available strategies:**
|
|
144
|
-
| Strategy | Use case |
|
|
145
|
-
|----------|----------|
|
|
146
|
-
| Fixed Window | General API protection |
|
|
147
|
-
| Sliding Window | Smoother rate distribution |
|
|
148
|
-
| Token Bucket | Burst-tolerant endpoints |
|
|
149
|
-
| Concurrency | Limit parallel requests (file upload, reports) |
|
|
150
|
-
|
|
151
|
-
**Checklist:**
|
|
152
|
-
- [ ] Global rate limiter configured
|
|
153
|
-
- [ ] Partition by tenant (multi-tenant) or IP (anonymous)
|
|
154
|
-
- [ ] Stricter limits on auth endpoints (login, register, password reset)
|
|
155
|
-
- [ ] `429 Too Many Requests` returned with `Retry-After` header
|
|
156
|
-
- [ ] Rate limit headers present (`X-RateLimit-Limit`, `X-RateLimit-Remaining`)
|
|
157
|
-
</rate_limiting>
|
|
158
|
-
|
|
159
|
-
<search_patterns>
|
|
160
|
-
Grep patterns for vulnerability detection:
|
|
161
|
-
|
|
162
|
-
<hardcoded_secrets>
|
|
163
|
-
```bash
|
|
164
|
-
grep -rE "(password|api[_-]?key|secret|token)\s*=\s*['\"]" --include="*.{js,ts,py,java}"
|
|
165
|
-
```
|
|
166
|
-
</hardcoded_secrets>
|
|
167
|
-
|
|
168
|
-
<dangerous_functions>
|
|
169
|
-
```bash
|
|
170
|
-
grep -rE "(eval|exec|system|shell_exec)\s*\(" --include="*.{js,ts,py,php}"
|
|
171
|
-
```
|
|
172
|
-
</dangerous_functions>
|
|
173
|
-
|
|
174
|
-
<sql_injection_risk>
|
|
175
|
-
```bash
|
|
176
|
-
grep -rE "query\s*\(\s*['\"].*\+|execute\s*\(\s*f['\"]" --include="*.{js,ts,py}"
|
|
177
|
-
```
|
|
178
|
-
</sql_injection_risk>
|
|
179
|
-
</search_patterns>
|
|
180
|
-
|
|
181
|
-
<csrf_protection>
|
|
182
|
-
CSRF prevention requirements:
|
|
183
|
-
|
|
184
|
-
✓ Tokens in state-changing requests (POST, PUT, DELETE)
|
|
185
|
-
✓ Token validated server-side
|
|
186
|
-
✓ SameSite=Lax minimum on cookies
|
|
187
|
-
✓ GET requests have no side effects
|
|
188
|
-
</csrf_protection>
|
|
189
|
-
|
|
190
|
-
<logging_security>
|
|
191
|
-
<must_log>
|
|
192
|
-
Events that must be logged:
|
|
193
|
-
|
|
194
|
-
- Authentication events (login, logout, failed attempts)
|
|
195
|
-
- Authorization failures
|
|
196
|
-
- Sensitive data access
|
|
197
|
-
</must_log>
|
|
198
|
-
|
|
199
|
-
<never_log>
|
|
200
|
-
Sensitive data to never log:
|
|
201
|
-
|
|
202
|
-
- Passwords, API keys, session tokens
|
|
203
|
-
- Full credit card numbers
|
|
204
|
-
- PII without masking
|
|
205
|
-
</never_log>
|
|
206
|
-
</logging_security>
|
|
207
|
-
|
|
208
|
-
<sources>
|
|
209
|
-
- [OWASP Code Review Guide](https://owasp.org/www-project-code-review-guide/)
|
|
210
|
-
- [OWASP Top 10:2025](https://owasp.org/Top10/)
|
|
211
|
-
- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/)
|
|
212
|
-
</sources>
|
|
1
|
+
<overview>
|
|
2
|
+
Security code review checklist based on OWASP Code Review Guide and Top 10 2025. Comprehensive vulnerability patterns and search techniques.
|
|
3
|
+
</overview>
|
|
4
|
+
|
|
5
|
+
<critical_vulnerabilities>
|
|
6
|
+
<a01_broken_access_control priority="most_critical">
|
|
7
|
+
Authorization checks on **every request** (not just UI):
|
|
8
|
+
|
|
9
|
+
- [ ] Server-side enforcement (never trust client)
|
|
10
|
+
- [ ] IDOR protection: Users can't access others' data by changing IDs
|
|
11
|
+
- [ ] No privilege escalation paths
|
|
12
|
+
- [ ] Default deny policy (explicit allow required)
|
|
13
|
+
</a01_broken_access_control>
|
|
14
|
+
|
|
15
|
+
<a02_security_misconfiguration>
|
|
16
|
+
Configuration hardening:
|
|
17
|
+
|
|
18
|
+
- [ ] No default credentials
|
|
19
|
+
- [ ] Debug mode disabled in production
|
|
20
|
+
- [ ] Secure headers present (see below)
|
|
21
|
+
- [ ] Error messages don't expose internals
|
|
22
|
+
|
|
23
|
+
**Security headers configuration (ASP.NET Core):**
|
|
24
|
+
```csharp
|
|
25
|
+
// Program.cs
|
|
26
|
+
app.UseHsts(); // HTTP Strict Transport Security (production only)
|
|
27
|
+
|
|
28
|
+
app.Use(async (context, next) =>
|
|
29
|
+
{
|
|
30
|
+
var headers = context.Response.Headers;
|
|
31
|
+
headers["X-Content-Type-Options"] = "nosniff";
|
|
32
|
+
headers["X-Frame-Options"] = "DENY";
|
|
33
|
+
headers["Referrer-Policy"] = "strict-origin-when-cross-origin";
|
|
34
|
+
headers["Permissions-Policy"] = "camera=(), microphone=(), geolocation=()";
|
|
35
|
+
headers["Content-Security-Policy"] = "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'";
|
|
36
|
+
await next();
|
|
37
|
+
});
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Expected headers in responses:**
|
|
41
|
+
| Header | Value | Purpose |
|
|
42
|
+
|--------|-------|---------|
|
|
43
|
+
| `Strict-Transport-Security` | `max-age=31536000; includeSubDomains` | Force HTTPS |
|
|
44
|
+
| `X-Content-Type-Options` | `nosniff` | Prevent MIME sniffing |
|
|
45
|
+
| `X-Frame-Options` | `DENY` | Prevent clickjacking |
|
|
46
|
+
| `Referrer-Policy` | `strict-origin-when-cross-origin` | Limit referrer info |
|
|
47
|
+
| `Permissions-Policy` | `camera=(), microphone=()` | Restrict browser features |
|
|
48
|
+
| `Content-Security-Policy` | `default-src 'self'` | Prevent XSS via inline scripts |
|
|
49
|
+
</a02_security_misconfiguration>
|
|
50
|
+
|
|
51
|
+
<a04_cryptographic_failures>
|
|
52
|
+
Encryption requirements:
|
|
53
|
+
|
|
54
|
+
- [ ] TLS 1.2+ for data in transit
|
|
55
|
+
- [ ] AES-256 for data at rest
|
|
56
|
+
- [ ] Password hashing: bcrypt/Argon2/scrypt (NOT MD5/SHA1)
|
|
57
|
+
- [ ] No hardcoded encryption keys
|
|
58
|
+
</a04_cryptographic_failures>
|
|
59
|
+
|
|
60
|
+
<a05_injection>
|
|
61
|
+
Injection prevention:
|
|
62
|
+
|
|
63
|
+
- [ ] SQL: Parameterized queries only (no string concatenation)
|
|
64
|
+
- [ ] Command: No `eval()`, `exec()`, `system()` with user input
|
|
65
|
+
- [ ] XSS: Output encoding context-appropriate
|
|
66
|
+
- [ ] Template: No user input in template names
|
|
67
|
+
</a05_injection>
|
|
68
|
+
</critical_vulnerabilities>
|
|
69
|
+
|
|
70
|
+
<input_validation>
|
|
71
|
+
Server-side validation checklist:
|
|
72
|
+
|
|
73
|
+
✓ Server-side validation on ALL inputs
|
|
74
|
+
✓ Allowlist approach (whitelist known-good)
|
|
75
|
+
✓ Validate: type, length, format, range
|
|
76
|
+
✓ File uploads: extension + MIME + content inspection
|
|
77
|
+
✓ Regex reviewed for ReDoS vulnerabilities
|
|
78
|
+
</input_validation>
|
|
79
|
+
|
|
80
|
+
<authentication>
|
|
81
|
+
| Check | Requirement |
|
|
82
|
+
|-------|-------------|
|
|
83
|
+
| Password Storage | bcrypt/Argon2 with salt |
|
|
84
|
+
| Session Tokens | ≥128 bits entropy, HttpOnly+Secure+SameSite |
|
|
85
|
+
| Error Messages | Generic ("Invalid credentials"), no enumeration |
|
|
86
|
+
| MFA | Required for sensitive accounts |
|
|
87
|
+
| Lockout | Exponential delay after failed attempts |
|
|
88
|
+
</authentication>
|
|
89
|
+
|
|
90
|
+
<authorization>
|
|
91
|
+
Access control requirements:
|
|
92
|
+
|
|
93
|
+
✓ Default deny (explicit allow required)
|
|
94
|
+
✓ Checks on EVERY request
|
|
95
|
+
✓ Server-side only (never trust client roles)
|
|
96
|
+
✓ Centralized access control logic
|
|
97
|
+
✓ No horizontal escalation (user → other user's data)
|
|
98
|
+
✓ No vertical escalation (user → admin functions)
|
|
99
|
+
</authorization>
|
|
100
|
+
|
|
101
|
+
<rate_limiting>
|
|
102
|
+
## Rate Limiting & Throttling
|
|
103
|
+
|
|
104
|
+
**ASP.NET Core built-in middleware** (`Microsoft.AspNetCore.RateLimiting`):
|
|
105
|
+
|
|
106
|
+
```csharp
|
|
107
|
+
// Program.cs
|
|
108
|
+
builder.Services.AddRateLimiter(options =>
|
|
109
|
+
{
|
|
110
|
+
// Global fixed window: 100 requests per minute
|
|
111
|
+
options.GlobalLimiter = PartitionedRateLimiter.Create<HttpContext, string>(context =>
|
|
112
|
+
RateLimitPartition.GetFixedWindowLimiter(
|
|
113
|
+
partitionKey: context.User?.FindFirst("tenant_id")?.Value ?? context.Connection.RemoteIpAddress?.ToString() ?? "anonymous",
|
|
114
|
+
factory: _ => new FixedWindowRateLimiterOptions
|
|
115
|
+
{
|
|
116
|
+
PermitLimit = 100,
|
|
117
|
+
Window = TimeSpan.FromMinutes(1),
|
|
118
|
+
QueueLimit = 0
|
|
119
|
+
}));
|
|
120
|
+
|
|
121
|
+
// Named policy for sensitive endpoints
|
|
122
|
+
options.AddFixedWindowLimiter("auth", opt =>
|
|
123
|
+
{
|
|
124
|
+
opt.PermitLimit = 5;
|
|
125
|
+
opt.Window = TimeSpan.FromMinutes(15);
|
|
126
|
+
opt.QueueLimit = 0;
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
options.RejectionStatusCode = StatusCodes.Status429TooManyRequests;
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
app.UseRateLimiter();
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Controller usage:**
|
|
136
|
+
```csharp
|
|
137
|
+
[EnableRateLimiting("auth")]
|
|
138
|
+
[HttpPost("login")]
|
|
139
|
+
[AllowAnonymous]
|
|
140
|
+
public async Task<ActionResult> Login([FromBody] LoginDto dto) { ... }
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Available strategies:**
|
|
144
|
+
| Strategy | Use case |
|
|
145
|
+
|----------|----------|
|
|
146
|
+
| Fixed Window | General API protection |
|
|
147
|
+
| Sliding Window | Smoother rate distribution |
|
|
148
|
+
| Token Bucket | Burst-tolerant endpoints |
|
|
149
|
+
| Concurrency | Limit parallel requests (file upload, reports) |
|
|
150
|
+
|
|
151
|
+
**Checklist:**
|
|
152
|
+
- [ ] Global rate limiter configured
|
|
153
|
+
- [ ] Partition by tenant (multi-tenant) or IP (anonymous)
|
|
154
|
+
- [ ] Stricter limits on auth endpoints (login, register, password reset)
|
|
155
|
+
- [ ] `429 Too Many Requests` returned with `Retry-After` header
|
|
156
|
+
- [ ] Rate limit headers present (`X-RateLimit-Limit`, `X-RateLimit-Remaining`)
|
|
157
|
+
</rate_limiting>
|
|
158
|
+
|
|
159
|
+
<search_patterns>
|
|
160
|
+
Grep patterns for vulnerability detection:
|
|
161
|
+
|
|
162
|
+
<hardcoded_secrets>
|
|
163
|
+
```bash
|
|
164
|
+
grep -rE "(password|api[_-]?key|secret|token)\s*=\s*['\"]" --include="*.{js,ts,py,java}"
|
|
165
|
+
```
|
|
166
|
+
</hardcoded_secrets>
|
|
167
|
+
|
|
168
|
+
<dangerous_functions>
|
|
169
|
+
```bash
|
|
170
|
+
grep -rE "(eval|exec|system|shell_exec)\s*\(" --include="*.{js,ts,py,php}"
|
|
171
|
+
```
|
|
172
|
+
</dangerous_functions>
|
|
173
|
+
|
|
174
|
+
<sql_injection_risk>
|
|
175
|
+
```bash
|
|
176
|
+
grep -rE "query\s*\(\s*['\"].*\+|execute\s*\(\s*f['\"]" --include="*.{js,ts,py}"
|
|
177
|
+
```
|
|
178
|
+
</sql_injection_risk>
|
|
179
|
+
</search_patterns>
|
|
180
|
+
|
|
181
|
+
<csrf_protection>
|
|
182
|
+
CSRF prevention requirements:
|
|
183
|
+
|
|
184
|
+
✓ Tokens in state-changing requests (POST, PUT, DELETE)
|
|
185
|
+
✓ Token validated server-side
|
|
186
|
+
✓ SameSite=Lax minimum on cookies
|
|
187
|
+
✓ GET requests have no side effects
|
|
188
|
+
</csrf_protection>
|
|
189
|
+
|
|
190
|
+
<logging_security>
|
|
191
|
+
<must_log>
|
|
192
|
+
Events that must be logged:
|
|
193
|
+
|
|
194
|
+
- Authentication events (login, logout, failed attempts)
|
|
195
|
+
- Authorization failures
|
|
196
|
+
- Sensitive data access
|
|
197
|
+
</must_log>
|
|
198
|
+
|
|
199
|
+
<never_log>
|
|
200
|
+
Sensitive data to never log:
|
|
201
|
+
|
|
202
|
+
- Passwords, API keys, session tokens
|
|
203
|
+
- Full credit card numbers
|
|
204
|
+
- PII without masking
|
|
205
|
+
</never_log>
|
|
206
|
+
</logging_security>
|
|
207
|
+
|
|
208
|
+
<sources>
|
|
209
|
+
- [OWASP Code Review Guide](https://owasp.org/www-project-code-review-guide/)
|
|
210
|
+
- [OWASP Top 10:2025](https://owasp.org/Top10/)
|
|
211
|
+
- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/)
|
|
212
|
+
</sources>
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
# SmartStack Project Detection & MCP Validation
|
|
2
|
-
|
|
3
|
-
**CRITICAL**: Before starting any code review, detect if this is a SmartStack project and run MCP validation.
|
|
4
|
-
|
|
5
|
-
## Detection
|
|
6
|
-
|
|
7
|
-
**Detect SmartStack project by checking for ANY of these:**
|
|
8
|
-
- `.claude/mcp-status.json` exists
|
|
9
|
-
- `SmartStack.Domain/` or `SmartStack.Application/` directories
|
|
10
|
-
- `*.sln` file containing "SmartStack"
|
|
11
|
-
- `package.json` with `@smartstack/` dependencies
|
|
12
|
-
|
|
13
|
-
## MCP Validation
|
|
14
|
-
|
|
15
|
-
**If SmartStack detected, run comprehensive code review via MCP:**
|
|
16
|
-
|
|
17
|
-
**Primary tool - `review_code`** (unified review):
|
|
18
|
-
```
|
|
19
|
-
mcp__smartstack__review_code
|
|
20
|
-
scope: "changed" # or "all" or "staged"
|
|
21
|
-
checks: ["all"] # 9 categories covered
|
|
22
|
-
severity: "all" # blocking, critical, warning, info
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
**This single tool covers ALL categories:**
|
|
26
|
-
- Security (OWASP, secrets, SQL injection, XSS)
|
|
27
|
-
- Architecture (layer violations, DI bypass)
|
|
28
|
-
- Hardcoded values (magic numbers, URLs, feature flags)
|
|
29
|
-
- Tests (missing tests, test quality)
|
|
30
|
-
- AI Hallucinations (non-existent imports, phantom methods)
|
|
31
|
-
- Performance (N+1 queries, over-fetching)
|
|
32
|
-
- Dead Code (unused imports, functions)
|
|
33
|
-
- i18n (non-translated UI text)
|
|
34
|
-
- Accessibility (missing alt, ARIA issues)
|
|
35
|
-
|
|
36
|
-
**Optional: Additional convention checks:**
|
|
37
|
-
```
|
|
38
|
-
mcp__smartstack__validate_conventions
|
|
39
|
-
checks: ["all"]
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## MCP Check Categories
|
|
43
|
-
|
|
44
|
-
**SmartStack code review categories via MCP `review_code`:**
|
|
45
|
-
|
|
46
|
-
| Category | Check ID | What it detects |
|
|
47
|
-
|----------|----------|-----------------|
|
|
48
|
-
| **Security** | SEC-xxx | Hardcoded secrets, SQL injection, XSS, missing [Authorize] |
|
|
49
|
-
| **Architecture** | ARCH-xxx | Layer violations (Domain->Infrastructure), DI bypass |
|
|
50
|
-
| **Hardcoded** | HARD-xxx | Magic numbers, hardcoded URLs, feature flags |
|
|
51
|
-
| **Tests** | TEST-xxx | Missing tests, useless assertions, no coverage |
|
|
52
|
-
| **AI Hallucinations** | AI-xxx | Non-existent imports, phantom methods, placeholders |
|
|
53
|
-
| **Performance** | PERF-xxx | N+1 queries, ToList before Where, over-fetching |
|
|
54
|
-
| **Dead Code** | DEAD-xxx | Unused imports, functions, commented code, TODOs |
|
|
55
|
-
| **i18n** | I18N-xxx | Hardcoded UI text, missing translations |
|
|
56
|
-
| **Accessibility** | A11Y-xxx | Missing alt, no aria-label, focus issues |
|
|
57
|
-
|
|
58
|
-
**Severity levels:**
|
|
59
|
-
- `blocking` -> Must fix before merge (security, hallucinations)
|
|
60
|
-
- `critical` -> Should fix ASAP (architecture, tests)
|
|
61
|
-
- `warning` -> Recommended fix (performance, dead code)
|
|
62
|
-
- `info` -> Nice to have (i18n, a11y)
|
|
63
|
-
|
|
64
|
-
## Output Integration
|
|
65
|
-
|
|
66
|
-
**Merge MCP `review_code` results into review output:**
|
|
67
|
-
|
|
68
|
-
```markdown
|
|
69
|
-
## Code Review Results (via MCP)
|
|
70
|
-
|
|
71
|
-
### Summary
|
|
72
|
-
| Metric | Value |
|
|
73
|
-
|--------|-------|
|
|
74
|
-
| Status | {PASSED/FAILED/WARNING} |
|
|
75
|
-
| Score | {score}/100 |
|
|
76
|
-
| Grade | {A/B/C/D/F} |
|
|
77
|
-
|
|
78
|
-
### Blocking Issues ({count})
|
|
79
|
-
| ID | Issue | File:Line | Fix |
|
|
80
|
-
|----|-------|-----------|-----|
|
|
81
|
-
| SEC-001 | {title} | `{file}:{line}` | {suggestion} |
|
|
82
|
-
|
|
83
|
-
### Critical Issues ({count})
|
|
84
|
-
| ID | Issue | File:Line | Fix |
|
|
85
|
-
|----|-------|-----------|-----|
|
|
86
|
-
| ARCH-001 | {title} | `{file}:{line}` | {suggestion} |
|
|
87
|
-
|
|
88
|
-
### Warnings ({count})
|
|
89
|
-
(List or summarize)
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**Priority mapping from MCP:**
|
|
93
|
-
- `blocking` -> `[BLOCKING]` - Must fix before merge
|
|
94
|
-
- `critical` -> `[CRITICAL]` - Should fix ASAP
|
|
95
|
-
- `warning` -> `[SUGGESTION]` - Recommended
|
|
96
|
-
- `info` -> `[NIT]` - Nice to have
|
|
1
|
+
# SmartStack Project Detection & MCP Validation
|
|
2
|
+
|
|
3
|
+
**CRITICAL**: Before starting any code review, detect if this is a SmartStack project and run MCP validation.
|
|
4
|
+
|
|
5
|
+
## Detection
|
|
6
|
+
|
|
7
|
+
**Detect SmartStack project by checking for ANY of these:**
|
|
8
|
+
- `.claude/mcp-status.json` exists
|
|
9
|
+
- `SmartStack.Domain/` or `SmartStack.Application/` directories
|
|
10
|
+
- `*.sln` file containing "SmartStack"
|
|
11
|
+
- `package.json` with `@smartstack/` dependencies
|
|
12
|
+
|
|
13
|
+
## MCP Validation
|
|
14
|
+
|
|
15
|
+
**If SmartStack detected, run comprehensive code review via MCP:**
|
|
16
|
+
|
|
17
|
+
**Primary tool - `review_code`** (unified review):
|
|
18
|
+
```
|
|
19
|
+
mcp__smartstack__review_code
|
|
20
|
+
scope: "changed" # or "all" or "staged"
|
|
21
|
+
checks: ["all"] # 9 categories covered
|
|
22
|
+
severity: "all" # blocking, critical, warning, info
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**This single tool covers ALL categories:**
|
|
26
|
+
- Security (OWASP, secrets, SQL injection, XSS)
|
|
27
|
+
- Architecture (layer violations, DI bypass)
|
|
28
|
+
- Hardcoded values (magic numbers, URLs, feature flags)
|
|
29
|
+
- Tests (missing tests, test quality)
|
|
30
|
+
- AI Hallucinations (non-existent imports, phantom methods)
|
|
31
|
+
- Performance (N+1 queries, over-fetching)
|
|
32
|
+
- Dead Code (unused imports, functions)
|
|
33
|
+
- i18n (non-translated UI text)
|
|
34
|
+
- Accessibility (missing alt, ARIA issues)
|
|
35
|
+
|
|
36
|
+
**Optional: Additional convention checks:**
|
|
37
|
+
```
|
|
38
|
+
mcp__smartstack__validate_conventions
|
|
39
|
+
checks: ["all"]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## MCP Check Categories
|
|
43
|
+
|
|
44
|
+
**SmartStack code review categories via MCP `review_code`:**
|
|
45
|
+
|
|
46
|
+
| Category | Check ID | What it detects |
|
|
47
|
+
|----------|----------|-----------------|
|
|
48
|
+
| **Security** | SEC-xxx | Hardcoded secrets, SQL injection, XSS, missing [Authorize] |
|
|
49
|
+
| **Architecture** | ARCH-xxx | Layer violations (Domain->Infrastructure), DI bypass |
|
|
50
|
+
| **Hardcoded** | HARD-xxx | Magic numbers, hardcoded URLs, feature flags |
|
|
51
|
+
| **Tests** | TEST-xxx | Missing tests, useless assertions, no coverage |
|
|
52
|
+
| **AI Hallucinations** | AI-xxx | Non-existent imports, phantom methods, placeholders |
|
|
53
|
+
| **Performance** | PERF-xxx | N+1 queries, ToList before Where, over-fetching |
|
|
54
|
+
| **Dead Code** | DEAD-xxx | Unused imports, functions, commented code, TODOs |
|
|
55
|
+
| **i18n** | I18N-xxx | Hardcoded UI text, missing translations |
|
|
56
|
+
| **Accessibility** | A11Y-xxx | Missing alt, no aria-label, focus issues |
|
|
57
|
+
|
|
58
|
+
**Severity levels:**
|
|
59
|
+
- `blocking` -> Must fix before merge (security, hallucinations)
|
|
60
|
+
- `critical` -> Should fix ASAP (architecture, tests)
|
|
61
|
+
- `warning` -> Recommended fix (performance, dead code)
|
|
62
|
+
- `info` -> Nice to have (i18n, a11y)
|
|
63
|
+
|
|
64
|
+
## Output Integration
|
|
65
|
+
|
|
66
|
+
**Merge MCP `review_code` results into review output:**
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
## Code Review Results (via MCP)
|
|
70
|
+
|
|
71
|
+
### Summary
|
|
72
|
+
| Metric | Value |
|
|
73
|
+
|--------|-------|
|
|
74
|
+
| Status | {PASSED/FAILED/WARNING} |
|
|
75
|
+
| Score | {score}/100 |
|
|
76
|
+
| Grade | {A/B/C/D/F} |
|
|
77
|
+
|
|
78
|
+
### Blocking Issues ({count})
|
|
79
|
+
| ID | Issue | File:Line | Fix |
|
|
80
|
+
|----|-------|-----------|-----|
|
|
81
|
+
| SEC-001 | {title} | `{file}:{line}` | {suggestion} |
|
|
82
|
+
|
|
83
|
+
### Critical Issues ({count})
|
|
84
|
+
| ID | Issue | File:Line | Fix |
|
|
85
|
+
|----|-------|-----------|-----|
|
|
86
|
+
| ARCH-001 | {title} | `{file}:{line}` | {suggestion} |
|
|
87
|
+
|
|
88
|
+
### Warnings ({count})
|
|
89
|
+
(List or summarize)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Priority mapping from MCP:**
|
|
93
|
+
- `blocking` -> `[BLOCKING]` - Must fix before merge
|
|
94
|
+
- `critical` -> `[CRITICAL]` - Should fix ASAP
|
|
95
|
+
- `warning` -> `[SUGGESTION]` - Recommended
|
|
96
|
+
- `info` -> `[NIT]` - Nice to have
|