@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,67 +1,67 @@
|
|
|
1
|
-
# Frontend: i18n Structure & Output Formatting
|
|
2
|
-
|
|
3
|
-
> Referenced from `steps/step-05-frontend.md` — i18n files and output presentation.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## i18n Structure
|
|
8
|
-
|
|
9
|
-
All i18n files must follow this structure:
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
locales/
|
|
13
|
-
├── fr/
|
|
14
|
-
│ └── {entityCode}.json
|
|
15
|
-
├── en/
|
|
16
|
-
│ └── {entityCode}.json
|
|
17
|
-
├── it/
|
|
18
|
-
│ └── {entityCode}.json
|
|
19
|
-
└── de/
|
|
20
|
-
└── {entityCode}.json
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
**Note:** i18n files are auto-generated by `type: "page"` scaffold. Verify the 4 language files were created and customize the `title`/`subtitle` with proper labels.
|
|
24
|
-
|
|
25
|
-
If customization needed:
|
|
26
|
-
- `i18n/locales/fr/{entityCode}.json` → set `"title": "{labels.fr}"`
|
|
27
|
-
- `i18n/locales/en/{entityCode}.json` → set `"title": "{labels.en}"`
|
|
28
|
-
- `i18n/locales/it/{entityCode}.json` → set `"title": "{labels.it}"`
|
|
29
|
-
- `i18n/locales/de/{entityCode}.json` → set `"title": "{labels.de}"`
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Presenting Output to User
|
|
34
|
-
|
|
35
|
-
Display generated frontend code organized by category:
|
|
36
|
-
|
|
37
|
-
### Pages
|
|
38
|
-
- `pages/{application}/{module}/{EntityName}Page.tsx`
|
|
39
|
-
- `pages/{application}/{module}/{EntityName}ListView.tsx`
|
|
40
|
-
|
|
41
|
-
### Components
|
|
42
|
-
- `components/{application}/{module}/{EntityName}.tsx`
|
|
43
|
-
- `hooks/use{EntityName}.ts`
|
|
44
|
-
|
|
45
|
-
### API Client
|
|
46
|
-
- `services/api/{entityCode}Api.ts`
|
|
47
|
-
- `types/{entityName}.types.ts`
|
|
48
|
-
|
|
49
|
-
### Routes
|
|
50
|
-
- Updated `navRoutes.generated.ts`
|
|
51
|
-
- Generated `clientRoutes.generated.tsx`
|
|
52
|
-
- Wired routes in `App.tsx` (standard + tenant blocks)
|
|
53
|
-
|
|
54
|
-
### i18n
|
|
55
|
-
- `locales/fr/{entityCode}.json`
|
|
56
|
-
- `locales/en/{entityCode}.json`
|
|
57
|
-
- `locales/it/{entityCode}.json`
|
|
58
|
-
- `locales/de/{entityCode}.json`
|
|
59
|
-
|
|
60
|
-
### Route Configuration Example
|
|
61
|
-
```tsx
|
|
62
|
-
// In routes.tsx - NESTED routes (not flat!)
|
|
63
|
-
<Route path="{application_kebab}">
|
|
64
|
-
<Route index element={<Navigate to="{module_kebab}" replace />} />
|
|
65
|
-
<Route path="{module_kebab}" element={<{EntityName}Page />} />
|
|
66
|
-
</Route>
|
|
67
|
-
```
|
|
1
|
+
# Frontend: i18n Structure & Output Formatting
|
|
2
|
+
|
|
3
|
+
> Referenced from `steps/step-05-frontend.md` — i18n files and output presentation.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## i18n Structure
|
|
8
|
+
|
|
9
|
+
All i18n files must follow this structure:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
locales/
|
|
13
|
+
├── fr/
|
|
14
|
+
│ └── {entityCode}.json
|
|
15
|
+
├── en/
|
|
16
|
+
│ └── {entityCode}.json
|
|
17
|
+
├── it/
|
|
18
|
+
│ └── {entityCode}.json
|
|
19
|
+
└── de/
|
|
20
|
+
└── {entityCode}.json
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Note:** i18n files are auto-generated by `type: "page"` scaffold. Verify the 4 language files were created and customize the `title`/`subtitle` with proper labels.
|
|
24
|
+
|
|
25
|
+
If customization needed:
|
|
26
|
+
- `i18n/locales/fr/{entityCode}.json` → set `"title": "{labels.fr}"`
|
|
27
|
+
- `i18n/locales/en/{entityCode}.json` → set `"title": "{labels.en}"`
|
|
28
|
+
- `i18n/locales/it/{entityCode}.json` → set `"title": "{labels.it}"`
|
|
29
|
+
- `i18n/locales/de/{entityCode}.json` → set `"title": "{labels.de}"`
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Presenting Output to User
|
|
34
|
+
|
|
35
|
+
Display generated frontend code organized by category:
|
|
36
|
+
|
|
37
|
+
### Pages
|
|
38
|
+
- `pages/{application}/{module}/{EntityName}Page.tsx`
|
|
39
|
+
- `pages/{application}/{module}/{EntityName}ListView.tsx`
|
|
40
|
+
|
|
41
|
+
### Components
|
|
42
|
+
- `components/{application}/{module}/{EntityName}.tsx`
|
|
43
|
+
- `hooks/use{EntityName}.ts`
|
|
44
|
+
|
|
45
|
+
### API Client
|
|
46
|
+
- `services/api/{entityCode}Api.ts`
|
|
47
|
+
- `types/{entityName}.types.ts`
|
|
48
|
+
|
|
49
|
+
### Routes
|
|
50
|
+
- Updated `navRoutes.generated.ts`
|
|
51
|
+
- Generated `clientRoutes.generated.tsx`
|
|
52
|
+
- Wired routes in `App.tsx` (standard + tenant blocks)
|
|
53
|
+
|
|
54
|
+
### i18n
|
|
55
|
+
- `locales/fr/{entityCode}.json`
|
|
56
|
+
- `locales/en/{entityCode}.json`
|
|
57
|
+
- `locales/it/{entityCode}.json`
|
|
58
|
+
- `locales/de/{entityCode}.json`
|
|
59
|
+
|
|
60
|
+
### Route Configuration Example
|
|
61
|
+
```tsx
|
|
62
|
+
// In routes.tsx - NESTED routes (not flat!)
|
|
63
|
+
<Route path="{application_kebab}">
|
|
64
|
+
<Route index element={<Navigate to="{module_kebab}" replace />} />
|
|
65
|
+
<Route path="{module_kebab}" element={<{EntityName}Page />} />
|
|
66
|
+
</Route>
|
|
67
|
+
```
|
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
# Frontend: Route Naming & Kebab-Case Requirements
|
|
2
|
-
|
|
3
|
-
> Referenced from `steps/step-05-frontend.md` — Route path conventions and naming rules.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Route Naming Rule (BLOCKING)
|
|
8
|
-
|
|
9
|
-
All route paths MUST use **kebab-case** to match navigation seed data exactly.
|
|
10
|
-
|
|
11
|
-
**Transformation:** `PascalCase` → `kebab-case`
|
|
12
|
-
|
|
13
|
-
Examples:
|
|
14
|
-
- `HumanResources` → `human-resources`
|
|
15
|
-
- `Employees` → `employees`
|
|
16
|
-
- `TimeManagement` → `time-management`
|
|
17
|
-
- `OrderItems` → `order-items`
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Forbidden Patterns
|
|
22
|
-
|
|
23
|
-
| Pattern | Issue |
|
|
24
|
-
|---------|-------|
|
|
25
|
-
| `humanresources` | Concatenated words without hyphens |
|
|
26
|
-
| `timemanagement` | Missing hyphens in multi-word names |
|
|
27
|
-
| `mymodule` | Ambiguous (is this "my-module" or literal "mymodule"?) |
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Required Patterns
|
|
32
|
-
|
|
33
|
-
| Pattern | Correct Usage |
|
|
34
|
-
|---------|---------------|
|
|
35
|
-
| `human-resources` | Multi-word segment with proper hyphens |
|
|
36
|
-
| `time-management` | Proper kebab-case |
|
|
37
|
-
| `employees` | Single-word segments stay lowercase |
|
|
38
|
-
| `products` | Single-word segments stay lowercase |
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Verification
|
|
43
|
-
|
|
44
|
-
Route paths MUST match the navigation seed data routes (which use `ToKebabCase()`).
|
|
45
|
-
|
|
46
|
-
**Example verification:**
|
|
47
|
-
|
|
48
|
-
Navigation seed data:
|
|
49
|
-
```csharp
|
|
50
|
-
Route = "/human-resources/time-management" // From ToKebabCase()
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
App.tsx routes must use:
|
|
54
|
-
```tsx
|
|
55
|
-
const applicationRoutes: ApplicationRouteExtensions = {
|
|
56
|
-
'human-resources': [ // ← kebab-case
|
|
57
|
-
{ path: 'time-management', element: <TimeManagementPage /> }, // ← kebab-case
|
|
58
|
-
],
|
|
59
|
-
};
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Kebab-Case Conversion Rules
|
|
65
|
-
|
|
66
|
-
| Input | Output | Rule |
|
|
67
|
-
|-------|--------|------|
|
|
68
|
-
| `ProductCode` | `product-code` | Insert `-` before uppercase letters |
|
|
69
|
-
| `Product` | `product` | Lowercase single words |
|
|
70
|
-
| `IDs` | `ids` | Lowercase acronyms |
|
|
71
|
-
| `HTTPSConnection` | `https-connection` | Insert `-` before each uppercase cluster transition |
|
|
72
|
-
| `CamelCaseExample` | `camel-case-example` | Insert `-` at each camelCase boundary |
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## Implementation Pattern
|
|
77
|
-
|
|
78
|
-
When generating routes, apply kebab-case to all multi-word segments:
|
|
79
|
-
|
|
80
|
-
```tsx
|
|
81
|
-
// CORRECT
|
|
82
|
-
<Route path="/human-resources" element={<HRLayout />}>
|
|
83
|
-
<Route path="employees" element={<EmployeesPage />} />
|
|
84
|
-
<Route path="time-management" element={<TimeManagementPage />} />
|
|
85
|
-
</Route>
|
|
86
|
-
|
|
87
|
-
// FORBIDDEN
|
|
88
|
-
<Route path="/humanresources" element={<HRLayout />} />
|
|
89
|
-
<Route path="/HR" element={<HRLayout />} />
|
|
90
|
-
<Route path="/human_resources" element={<HRLayout />} />
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## Cross-Reference with Navigation Seeds
|
|
96
|
-
|
|
97
|
-
Before finalizing route paths, verify they match navigation seeds:
|
|
98
|
-
|
|
99
|
-
**Step 1:** Extract application code from `{full_path}` (e.g., `human-resources.time-management` → app: `human-resources`)
|
|
100
|
-
|
|
101
|
-
**Step 2:** Check existing navigation seeds:
|
|
102
|
-
```bash
|
|
103
|
-
Glob: **/Seeding/Data/Navigation/NavigationApplicationSeedData.cs
|
|
104
|
-
Search for: Route = "/{application_kebab}"
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
**Step 3:** Ensure App.tsx routes use the exact same kebab-case format.
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## Validation Checklist
|
|
112
|
-
|
|
113
|
-
- [ ] All multi-word segments use hyphens (kebab-case)
|
|
114
|
-
- [ ] Single-word segments are lowercase
|
|
115
|
-
- [ ] Route paths match navigation seed data routes
|
|
116
|
-
- [ ] No uppercase letters in route paths
|
|
117
|
-
- [ ] No underscores (`_`) or camelCase in paths
|
|
1
|
+
# Frontend: Route Naming & Kebab-Case Requirements
|
|
2
|
+
|
|
3
|
+
> Referenced from `steps/step-05-frontend.md` — Route path conventions and naming rules.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Route Naming Rule (BLOCKING)
|
|
8
|
+
|
|
9
|
+
All route paths MUST use **kebab-case** to match navigation seed data exactly.
|
|
10
|
+
|
|
11
|
+
**Transformation:** `PascalCase` → `kebab-case`
|
|
12
|
+
|
|
13
|
+
Examples:
|
|
14
|
+
- `HumanResources` → `human-resources`
|
|
15
|
+
- `Employees` → `employees`
|
|
16
|
+
- `TimeManagement` → `time-management`
|
|
17
|
+
- `OrderItems` → `order-items`
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Forbidden Patterns
|
|
22
|
+
|
|
23
|
+
| Pattern | Issue |
|
|
24
|
+
|---------|-------|
|
|
25
|
+
| `humanresources` | Concatenated words without hyphens |
|
|
26
|
+
| `timemanagement` | Missing hyphens in multi-word names |
|
|
27
|
+
| `mymodule` | Ambiguous (is this "my-module" or literal "mymodule"?) |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Required Patterns
|
|
32
|
+
|
|
33
|
+
| Pattern | Correct Usage |
|
|
34
|
+
|---------|---------------|
|
|
35
|
+
| `human-resources` | Multi-word segment with proper hyphens |
|
|
36
|
+
| `time-management` | Proper kebab-case |
|
|
37
|
+
| `employees` | Single-word segments stay lowercase |
|
|
38
|
+
| `products` | Single-word segments stay lowercase |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Verification
|
|
43
|
+
|
|
44
|
+
Route paths MUST match the navigation seed data routes (which use `ToKebabCase()`).
|
|
45
|
+
|
|
46
|
+
**Example verification:**
|
|
47
|
+
|
|
48
|
+
Navigation seed data:
|
|
49
|
+
```csharp
|
|
50
|
+
Route = "/human-resources/time-management" // From ToKebabCase()
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
App.tsx routes must use:
|
|
54
|
+
```tsx
|
|
55
|
+
const applicationRoutes: ApplicationRouteExtensions = {
|
|
56
|
+
'human-resources': [ // ← kebab-case
|
|
57
|
+
{ path: 'time-management', element: <TimeManagementPage /> }, // ← kebab-case
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Kebab-Case Conversion Rules
|
|
65
|
+
|
|
66
|
+
| Input | Output | Rule |
|
|
67
|
+
|-------|--------|------|
|
|
68
|
+
| `ProductCode` | `product-code` | Insert `-` before uppercase letters |
|
|
69
|
+
| `Product` | `product` | Lowercase single words |
|
|
70
|
+
| `IDs` | `ids` | Lowercase acronyms |
|
|
71
|
+
| `HTTPSConnection` | `https-connection` | Insert `-` before each uppercase cluster transition |
|
|
72
|
+
| `CamelCaseExample` | `camel-case-example` | Insert `-` at each camelCase boundary |
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Implementation Pattern
|
|
77
|
+
|
|
78
|
+
When generating routes, apply kebab-case to all multi-word segments:
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
// CORRECT
|
|
82
|
+
<Route path="/human-resources" element={<HRLayout />}>
|
|
83
|
+
<Route path="employees" element={<EmployeesPage />} />
|
|
84
|
+
<Route path="time-management" element={<TimeManagementPage />} />
|
|
85
|
+
</Route>
|
|
86
|
+
|
|
87
|
+
// FORBIDDEN
|
|
88
|
+
<Route path="/humanresources" element={<HRLayout />} />
|
|
89
|
+
<Route path="/HR" element={<HRLayout />} />
|
|
90
|
+
<Route path="/human_resources" element={<HRLayout />} />
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Cross-Reference with Navigation Seeds
|
|
96
|
+
|
|
97
|
+
Before finalizing route paths, verify they match navigation seeds:
|
|
98
|
+
|
|
99
|
+
**Step 1:** Extract application code from `{full_path}` (e.g., `human-resources.time-management` → app: `human-resources`)
|
|
100
|
+
|
|
101
|
+
**Step 2:** Check existing navigation seeds:
|
|
102
|
+
```bash
|
|
103
|
+
Glob: **/Seeding/Data/Navigation/NavigationApplicationSeedData.cs
|
|
104
|
+
Search for: Route = "/{application_kebab}"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Step 3:** Ensure App.tsx routes use the exact same kebab-case format.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Validation Checklist
|
|
112
|
+
|
|
113
|
+
- [ ] All multi-word segments use hyphens (kebab-case)
|
|
114
|
+
- [ ] Single-word segments are lowercase
|
|
115
|
+
- [ ] Route paths match navigation seed data routes
|
|
116
|
+
- [ ] No uppercase letters in route paths
|
|
117
|
+
- [ ] No underscores (`_`) or camelCase in paths
|
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
# Frontend: Route Wiring in App.tsx
|
|
2
|
-
|
|
3
|
-
> Referenced from `steps/step-05-frontend.md` — Detailed route wiring patterns and verification.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Step 4: Wire Routes to App.tsx (BLOCKING)
|
|
8
|
-
|
|
9
|
-
**CRITICAL:** This step is MANDATORY. Without it, routes exist as files but are invisible to the React Router. The page will be BLANK.
|
|
10
|
-
|
|
11
|
-
After `scaffold_routes` generates the route files, you MUST manually insert the routes into `App.tsx`.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Step 4a: Import Page Components
|
|
16
|
-
|
|
17
|
-
At the top of App.tsx:
|
|
18
|
-
|
|
19
|
-
```tsx
|
|
20
|
-
import { {EntityName}Page } from '@/pages/{Application}/{Module}/{EntityName}Page';
|
|
21
|
-
// Or lazy-loaded:
|
|
22
|
-
const {EntityName}Page = lazy(() => import('@/pages/{Application}/{Module}/{EntityName}Page'));
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Step 4b: Detect App.tsx Routing Pattern
|
|
28
|
-
|
|
29
|
-
Read App.tsx and detect which pattern is used:
|
|
30
|
-
|
|
31
|
-
### Pattern A: applicationRoutes Object
|
|
32
|
-
|
|
33
|
-
**If App.tsx contains:** `applicationRoutes: ApplicationRouteExtensions`
|
|
34
|
-
|
|
35
|
-
→ Add routes to `applicationRoutes.{application}[]` with **RELATIVE** paths (no leading `/`)
|
|
36
|
-
|
|
37
|
-
```tsx
|
|
38
|
-
const applicationRoutes: ApplicationRouteExtensions = {
|
|
39
|
-
'human-resources': [
|
|
40
|
-
// existing routes...
|
|
41
|
-
{ path: '{module_kebab}', element: <{EntityName}ListPage /> },
|
|
42
|
-
{ path: '{module_kebab}/new', element: <Create{EntityName}Page /> },
|
|
43
|
-
{ path: '{module_kebab}/:id', element: <{EntityName}DetailPage /> },
|
|
44
|
-
{ path: '{module_kebab}/:id/edit', element: <Create{EntityName}Page /> },
|
|
45
|
-
],
|
|
46
|
-
};
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Routes are automatically injected into BOTH standard (`/{application}/...`) and tenant-prefixed (`/t/:slug/{application}/...`) route trees by `mergeRoutes()`. No manual duplication needed.
|
|
50
|
-
|
|
51
|
-
### Pattern B: JSX Routes
|
|
52
|
-
|
|
53
|
-
**If App.tsx contains:** `<Route path="/{application}" element={<{Layout} />}>`
|
|
54
|
-
|
|
55
|
-
→ Insert `<Route>` children inside the Layout wrapper:
|
|
56
|
-
|
|
57
|
-
```tsx
|
|
58
|
-
<Route path="/human-resources" element={<AppLayout />}>
|
|
59
|
-
{/* ... existing routes ... */}
|
|
60
|
-
<Route path="{module_kebab}" element={<{EntityName}Page />} />
|
|
61
|
-
</Route>
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
**ALSO add the same routes inside the tenant-prefixed block:**
|
|
65
|
-
|
|
66
|
-
Find `<Route path="/t/:slug">` and add the **same route entries** there.
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Step 4c: Application-to-Layout Mapping
|
|
71
|
-
|
|
72
|
-
| Application prefix | Layout Component | Route path |
|
|
73
|
-
|---------|------------------|------------|
|
|
74
|
-
| `administration.*` | `AppLayout` | `/administration` |
|
|
75
|
-
| `*` (business apps) | `AppLayout` | `/{application}` |
|
|
76
|
-
| `myspace.*` | `AppLayout` | `/myspace` |
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Step 4d: Verify Wiring
|
|
81
|
-
|
|
82
|
-
```
|
|
83
|
-
Tool: mcp__smartstack__validate_frontend_routes
|
|
84
|
-
Args:
|
|
85
|
-
scope: "routes"
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
If `appWiring.issues` is not empty, fix the wiring before proceeding.
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Forbidden Patterns (BOTH patterns)
|
|
93
|
-
|
|
94
|
-
- Adding application routes to `clientRoutes[]` with absolute paths — `clientRoutes` is ONLY for routes outside SmartStack applications (e.g., `/about`, `/pricing`)
|
|
95
|
-
- Adding routes OUTSIDE the Layout wrapper (shell will not render)
|
|
96
|
-
- Using `createBrowserRouter` (SmartStack uses `useRoutes()` + `mergeRoutes()`)
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## Verification Checklist
|
|
101
|
-
|
|
102
|
-
- [ ] Routes are inside the AppLayout wrapper
|
|
103
|
-
- [ ] Routes use NESTED structure (not flat)
|
|
104
|
-
- [ ] Application kebab-case matches navigation seed data
|
|
105
|
-
- [ ] Both standard and tenant-prefixed blocks have routes (if using Pattern B)
|
|
106
|
-
- [ ] Page components are imported at top of App.tsx
|
|
107
|
-
- [ ] `mcp__smartstack__validate_frontend_routes` returns no issues
|
|
1
|
+
# Frontend: Route Wiring in App.tsx
|
|
2
|
+
|
|
3
|
+
> Referenced from `steps/step-05-frontend.md` — Detailed route wiring patterns and verification.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Step 4: Wire Routes to App.tsx (BLOCKING)
|
|
8
|
+
|
|
9
|
+
**CRITICAL:** This step is MANDATORY. Without it, routes exist as files but are invisible to the React Router. The page will be BLANK.
|
|
10
|
+
|
|
11
|
+
After `scaffold_routes` generates the route files, you MUST manually insert the routes into `App.tsx`.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Step 4a: Import Page Components
|
|
16
|
+
|
|
17
|
+
At the top of App.tsx:
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
import { {EntityName}Page } from '@/pages/{Application}/{Module}/{EntityName}Page';
|
|
21
|
+
// Or lazy-loaded:
|
|
22
|
+
const {EntityName}Page = lazy(() => import('@/pages/{Application}/{Module}/{EntityName}Page'));
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Step 4b: Detect App.tsx Routing Pattern
|
|
28
|
+
|
|
29
|
+
Read App.tsx and detect which pattern is used:
|
|
30
|
+
|
|
31
|
+
### Pattern A: applicationRoutes Object
|
|
32
|
+
|
|
33
|
+
**If App.tsx contains:** `applicationRoutes: ApplicationRouteExtensions`
|
|
34
|
+
|
|
35
|
+
→ Add routes to `applicationRoutes.{application}[]` with **RELATIVE** paths (no leading `/`)
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
const applicationRoutes: ApplicationRouteExtensions = {
|
|
39
|
+
'human-resources': [
|
|
40
|
+
// existing routes...
|
|
41
|
+
{ path: '{module_kebab}', element: <{EntityName}ListPage /> },
|
|
42
|
+
{ path: '{module_kebab}/new', element: <Create{EntityName}Page /> },
|
|
43
|
+
{ path: '{module_kebab}/:id', element: <{EntityName}DetailPage /> },
|
|
44
|
+
{ path: '{module_kebab}/:id/edit', element: <Create{EntityName}Page /> },
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Routes are automatically injected into BOTH standard (`/{application}/...`) and tenant-prefixed (`/t/:slug/{application}/...`) route trees by `mergeRoutes()`. No manual duplication needed.
|
|
50
|
+
|
|
51
|
+
### Pattern B: JSX Routes
|
|
52
|
+
|
|
53
|
+
**If App.tsx contains:** `<Route path="/{application}" element={<{Layout} />}>`
|
|
54
|
+
|
|
55
|
+
→ Insert `<Route>` children inside the Layout wrapper:
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
<Route path="/human-resources" element={<AppLayout />}>
|
|
59
|
+
{/* ... existing routes ... */}
|
|
60
|
+
<Route path="{module_kebab}" element={<{EntityName}Page />} />
|
|
61
|
+
</Route>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**ALSO add the same routes inside the tenant-prefixed block:**
|
|
65
|
+
|
|
66
|
+
Find `<Route path="/t/:slug">` and add the **same route entries** there.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Step 4c: Application-to-Layout Mapping
|
|
71
|
+
|
|
72
|
+
| Application prefix | Layout Component | Route path |
|
|
73
|
+
|---------|------------------|------------|
|
|
74
|
+
| `administration.*` | `AppLayout` | `/administration` |
|
|
75
|
+
| `*` (business apps) | `AppLayout` | `/{application}` |
|
|
76
|
+
| `myspace.*` | `AppLayout` | `/myspace` |
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Step 4d: Verify Wiring
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
Tool: mcp__smartstack__validate_frontend_routes
|
|
84
|
+
Args:
|
|
85
|
+
scope: "routes"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
If `appWiring.issues` is not empty, fix the wiring before proceeding.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Forbidden Patterns (BOTH patterns)
|
|
93
|
+
|
|
94
|
+
- Adding application routes to `clientRoutes[]` with absolute paths — `clientRoutes` is ONLY for routes outside SmartStack applications (e.g., `/about`, `/pricing`)
|
|
95
|
+
- Adding routes OUTSIDE the Layout wrapper (shell will not render)
|
|
96
|
+
- Using `createBrowserRouter` (SmartStack uses `useRoutes()` + `mergeRoutes()`)
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Verification Checklist
|
|
101
|
+
|
|
102
|
+
- [ ] Routes are inside the AppLayout wrapper
|
|
103
|
+
- [ ] Routes use NESTED structure (not flat)
|
|
104
|
+
- [ ] Application kebab-case matches navigation seed data
|
|
105
|
+
- [ ] Both standard and tenant-prefixed blocks have routes (if using Pattern B)
|
|
106
|
+
- [ ] Page components are imported at top of App.tsx
|
|
107
|
+
- [ ] `mcp__smartstack__validate_frontend_routes` returns no issues
|