@polymorphism-tech/morph-spec 4.12.0 → 4.13.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.
Files changed (314) hide show
  1. package/README.md +21 -29
  2. package/bin/morph-spec.js +41 -24
  3. package/bin/task-manager.js +962 -1341
  4. package/bin/validate.js +1 -1
  5. package/claude-plugin.json +1 -1
  6. package/docs/CHEATSHEET.md +10 -11
  7. package/docs/QUICKSTART.md +15 -15
  8. package/framework/CLAUDE.md +5 -2
  9. package/framework/agents/README.md +3 -4
  10. package/framework/agents/ai-agents/ai-system-architect.md +6 -10
  11. package/framework/agents/architecture/seo-growth-hacker.md +166 -326
  12. package/framework/agents/architecture/standards-architect.md +21 -31
  13. package/framework/agents/backend/dotnet-senior.md +160 -86
  14. package/framework/agents/backend/ef-modeler.md +2 -6
  15. package/framework/agents/backend/hangfire-orchestrator.md +8 -9
  16. package/framework/agents/backend/ms-agent-expert.md +1 -1
  17. package/framework/agents/frontend/nextjs-expert.md +198 -133
  18. package/framework/agents/frontend/ui-ux-designer.md +226 -267
  19. package/framework/agents/infrastructure/infra-architect.md +191 -27
  20. package/framework/agents/integrations/clerk-auth.md +19 -26
  21. package/framework/agents/integrations/hangfire-integration.md +1 -4
  22. package/framework/agents.json +215 -1453
  23. package/framework/commands/morph-apply.md +4 -4
  24. package/framework/commands/morph-preflight.md +4 -26
  25. package/framework/commands/morph-proposal.md +19 -19
  26. package/framework/commands/morph-status.md +2 -2
  27. package/framework/commands/morph-troubleshoot.md +6 -13
  28. package/framework/hooks/README.md +1 -6
  29. package/framework/hooks/claude-code/post-tool-use/validator-feedback.js +4 -6
  30. package/framework/hooks/claude-code/pre-compact/save-morph-context.js +12 -7
  31. package/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +2 -2
  32. package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +2 -2
  33. package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +5 -10
  34. package/framework/hooks/claude-code/session-start/inject-morph-context.js +63 -30
  35. package/framework/hooks/claude-code/session-start/resume-context.js +77 -0
  36. package/framework/hooks/claude-code/statusline.py +4 -5
  37. package/framework/hooks/claude-code/stop/validate-completion.js +4 -4
  38. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +8 -8
  39. package/framework/hooks/shared/compact-restore.js +28 -5
  40. package/framework/hooks/shared/phase-utils.js +4 -8
  41. package/framework/hooks/shared/state-reader.js +34 -3
  42. package/framework/phases.json +7 -45
  43. package/framework/rules/ai-agents-standards.md +15 -0
  44. package/framework/rules/asaas-standards.md +13 -0
  45. package/framework/rules/clerk-standards.md +13 -0
  46. package/framework/rules/csharp-standards.md +8 -4
  47. package/framework/rules/data-standards.md +18 -0
  48. package/framework/rules/dotnet-templates.md +87 -0
  49. package/framework/rules/frontend-standards.md +13 -13
  50. package/framework/rules/hangfire-standards.md +13 -0
  51. package/framework/rules/infrastructure-standards.md +27 -16
  52. package/framework/rules/morph-workflow.md +73 -13
  53. package/framework/rules/nextjs-standards.md +1 -0
  54. package/framework/rules/nextjs-templates.md +40 -0
  55. package/framework/rules/resend-standards.md +12 -0
  56. package/framework/rules/supabase-standards.md +29 -0
  57. package/framework/skills/README.md +6 -8
  58. package/framework/skills/level-0-meta/mcp-registry.json +21 -99
  59. package/framework/{standards/ai-agents/team-orchestration.md → skills/level-0-meta/morph-agent-teams/SKILL.md} +472 -479
  60. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +28 -1
  61. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +2 -2
  62. package/framework/skills/level-0-meta/morph-code-review/SKILL.md +1 -5
  63. package/framework/skills/level-0-meta/morph-code-review/scripts/scan-csharp.mjs +1 -1
  64. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +23 -41
  65. package/framework/skills/level-0-meta/morph-init/SKILL.md +18 -14
  66. package/framework/skills/level-0-meta/morph-parallel-dispatch/SKILL.md +225 -0
  67. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +20 -0
  68. package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +4 -8
  69. package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +15 -59
  70. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +7 -19
  71. package/framework/skills/level-0-meta/morph-verification-before-completion/scripts/check-phase-outputs.mjs +8 -8
  72. package/framework/skills/level-1-workflows/README.md +1 -1
  73. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +49 -50
  74. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +58 -124
  75. package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +5 -50
  76. package/framework/skills/level-1-workflows/morph-phase-design/references/spec-example.md +1 -1
  77. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +127 -159
  78. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +4 -3
  79. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/spec-reviewer-prompt.md +2 -2
  80. package/framework/skills/level-1-workflows/morph-phase-implement/references/recap-example.md +1 -1
  81. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +17 -13
  82. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +22 -40
  83. package/framework/skills/level-1-workflows/morph-phase-tasks/references/task-planning-patterns.md +0 -2
  84. package/framework/skills/level-1-workflows/morph-phase-tasks/references/tasks-example.md +5 -5
  85. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +57 -77
  86. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +1 -1
  87. package/framework/squad-templates/backend-only.json +6 -6
  88. package/framework/squad-templates/frontend-only.json +17 -8
  89. package/framework/squad-templates/full-stack.json +29 -24
  90. package/framework/standards/STANDARDS.json +1021 -2369
  91. package/framework/standards/backend/dotnet/fluent-validation-vsa.md +200 -0
  92. package/framework/standards/backend/dotnet/result-pattern.md +213 -0
  93. package/framework/standards/backend/dotnet/scalar-ui.md +172 -0
  94. package/framework/standards/backend/dotnet/scrutor.md +158 -0
  95. package/framework/standards/backend/dotnet/vsa-handler-patterns.md +274 -0
  96. package/framework/standards/frontend/nextjs/motion-patterns.md +1 -1
  97. package/framework/standards/infrastructure/supabase/mcp-setup.md +83 -193
  98. package/framework/standards/integration/mcp/mcp-tools.md +91 -77
  99. package/framework/templates/IDE-SNIPPETS.md +2 -6
  100. package/framework/templates/README.md +709 -814
  101. package/framework/templates/REGISTRY.json +223 -762
  102. package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -0
  103. package/framework/templates/code/dotnet/abstractions/error.cs +60 -0
  104. package/framework/templates/code/dotnet/abstractions/handler.cs +12 -0
  105. package/framework/templates/code/dotnet/abstractions/result.cs +74 -0
  106. package/framework/templates/code/dotnet/backend/repository.cs +148 -141
  107. package/framework/templates/code/dotnet/constants/api-tags.cs +6 -0
  108. package/framework/templates/code/dotnet/exceptions/exception-handler.cs +32 -0
  109. package/framework/templates/code/dotnet/extensions/database-extensions.cs +20 -0
  110. package/framework/templates/code/dotnet/extensions/handler-registration.cs +38 -0
  111. package/framework/templates/code/dotnet/extensions/health-checks.cs +24 -0
  112. package/framework/templates/code/dotnet/extensions/map-endpoints.cs +35 -0
  113. package/framework/templates/code/dotnet/extensions/result-extensions.cs +29 -0
  114. package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -0
  115. package/framework/templates/code/dotnet/feature/entity.cs.hbs +8 -0
  116. package/framework/templates/code/dotnet/feature/errors.cs.hbs +8 -0
  117. package/framework/templates/code/dotnet/feature/handler.cs.hbs +24 -0
  118. package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -0
  119. package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -0
  120. package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -0
  121. package/framework/templates/code/dotnet/jobs/job.cs +21 -17
  122. package/framework/templates/code/dotnet/pipelines/logging-decorator.cs +31 -0
  123. package/framework/templates/code/dotnet/pipelines/validation-decorator.cs +97 -0
  124. package/framework/templates/code/dotnet/test.cs +192 -106
  125. package/framework/templates/context/ARCHITECTURE.md +89 -0
  126. package/framework/templates/context/CONTEXT-FEATURE.md +2 -2
  127. package/framework/templates/context/CONTEXT.md +180 -181
  128. package/framework/templates/context/design-system.md +1 -5
  129. package/framework/templates/docs/onboarding.md +2 -3
  130. package/framework/templates/docs/proposal.md +171 -182
  131. package/framework/templates/docs/spec.md +1 -3
  132. package/framework/templates/docs/ui-components.md +0 -72
  133. package/framework/templates/examples/design-system-examples.md +4 -4
  134. package/framework/templates/feature/decisions.md +0 -66
  135. package/framework/templates/feature/recap.md +1 -2
  136. package/framework/templates/infrastructure/github/README.md +56 -593
  137. package/framework/templates/integrations/clerk-config.cs +0 -41
  138. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +2 -2
  139. package/framework/templates/meta-prompts/squad-leaders/backend-squad.md +1 -2
  140. package/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +83 -126
  141. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +2 -2
  142. package/framework/templates/project/validate.js +2 -4
  143. package/framework/templates/ui/design-system.css +1 -1
  144. package/framework/workflows/README.md +8 -8
  145. package/framework/workflows/configs/fast-track.json +51 -0
  146. package/framework/workflows/configs/full.json +68 -0
  147. package/framework/workflows/configs/standard.json +7 -3
  148. package/framework/workflows/docs/STORY-DRIVEN-DEVELOPMENT.md +1 -1
  149. package/framework/workflows/docs/enforcement-pipeline.md +18 -19
  150. package/framework/workflows/docs/full-morph.md +69 -76
  151. package/framework/workflows/docs/standard.md +49 -44
  152. package/framework/workflows/docs/ui-refresh.md +1 -1
  153. package/package.json +3 -3
  154. package/src/commands/agents/dispatch-agents.js +55 -116
  155. package/src/commands/context/context-refresh.js +79 -0
  156. package/src/commands/phase/phase-reset.js +1 -1
  157. package/src/commands/project/doctor.js +10 -32
  158. package/src/commands/project/init.js +12 -0
  159. package/src/commands/project/status.js +6 -12
  160. package/src/commands/scaffold/scaffold.js +131 -0
  161. package/src/commands/scope/escalate.js +1 -1
  162. package/src/commands/state/advance-phase.js +15 -29
  163. package/src/commands/state/state.js +20 -5
  164. package/src/commands/tasks/task.js +0 -30
  165. package/src/commands/validation/validate-feature.js +3 -10
  166. package/src/core/paths/output-schema.js +12 -13
  167. package/src/core/state/phase-state-machine.js +211 -217
  168. package/src/core/state/state-manager.js +9 -9
  169. package/src/lib/agents/agents-manager.js +2 -2
  170. package/src/lib/agents/output-collector.js +1 -2
  171. package/src/lib/detectors/design-system-detector.js +4 -4
  172. package/src/lib/detectors/index.js +1 -11
  173. package/src/lib/generators/architecture-scanner.js +640 -0
  174. package/src/lib/generators/context-generator.js +3 -3
  175. package/src/lib/generators/design-system-generator.js +508 -587
  176. package/src/lib/generators/index.js +12 -10
  177. package/src/lib/generators/metadata-extractor.js +386 -387
  178. package/src/lib/generators/recap-generator.js +4 -4
  179. package/src/lib/generators/scaffold-generator.js +317 -0
  180. package/src/lib/generators/settings-generator.js +0 -1
  181. package/src/lib/phase-chain/phase-validator.js +64 -42
  182. package/src/lib/stack/stack-profile.js +2 -2
  183. package/src/lib/standards/digest-builder.js +72 -285
  184. package/src/lib/tasks/task-parser.js +11 -5
  185. package/src/lib/validators/architecture/architecture-validator.js +259 -387
  186. package/src/lib/validators/content/content-validator.js +287 -287
  187. package/src/lib/validators/css/css-validator.js +340 -352
  188. package/src/lib/validators/packages/package-validator.js +347 -360
  189. package/src/lib/validators/shared/issue-counter.js +14 -18
  190. package/src/lib/validators/validation-runner.js +3 -19
  191. package/src/scripts/setup-infra.js +1 -1
  192. package/src/utils/agents-installer.js +24 -3
  193. package/src/utils/file-copier.js +1 -0
  194. package/src/utils/hooks-installer.js +11 -19
  195. package/src/utils/skills-installer.js +178 -178
  196. package/framework/agents/architecture/prompt-engineer.md +0 -195
  197. package/framework/agents/backend/api-designer.md +0 -106
  198. package/framework/agents/frontend/blazor-builder.md +0 -229
  199. package/framework/agents/frontend/nextjs-ui-specialist.md +0 -218
  200. package/framework/agents/infrastructure/azure-architect.md +0 -150
  201. package/framework/agents/infrastructure/azure-deploy-specialist.md +0 -707
  202. package/framework/agents/infrastructure/bicep-architect.md +0 -132
  203. package/framework/agents/infrastructure/container-specialist.md +0 -137
  204. package/framework/agents/infrastructure/devops-engineer.md +0 -126
  205. package/framework/agents/integrations/azure-identity.md +0 -148
  206. package/framework/agents/quality/code-analyzer.md +0 -239
  207. package/framework/agents/quality/testing-specialist.md +0 -130
  208. package/framework/hooks/claude-code/notification/approval-reminder.js +0 -57
  209. package/framework/hooks/claude-code/post-tool-use/context-refresh.js +0 -109
  210. package/framework/hooks/claude-code/post-tool-use/skill-reminder.js +0 -78
  211. package/framework/index/troubleshooting-index.json +0 -184
  212. package/framework/rules/testing-standards.md +0 -14
  213. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +0 -230
  214. package/framework/skills/level-0-meta/morph-replicate/references/blazor-html-mapping.md +0 -70
  215. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +0 -256
  216. package/framework/skills/level-1-workflows/morph-phase-clarify/references/clarifications-example.md +0 -117
  217. package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +0 -269
  218. package/framework/standards/ai-agents/blazor-ui.md +0 -364
  219. package/framework/standards/architecture/ddd/aggregates.md +0 -120
  220. package/framework/standards/architecture/ddd/bounded-contexts.md +0 -105
  221. package/framework/standards/architecture/ddd/complexity-levels.md +0 -108
  222. package/framework/standards/architecture/ddd/entities.md +0 -99
  223. package/framework/standards/architecture/ddd/ubiquitous-language.md +0 -58
  224. package/framework/standards/architecture/ddd/value-objects.md +0 -124
  225. package/framework/standards/backend/api/minimal-api.md +0 -494
  226. package/framework/standards/backend/api/rest.md +0 -492
  227. package/framework/standards/backend/authentication/passkeys.md +0 -428
  228. package/framework/standards/backend/database/ef-core.md +0 -199
  229. package/framework/standards/backend/database/migrations.md +0 -393
  230. package/framework/standards/backend/database/repository-patterns.md +0 -528
  231. package/framework/standards/backend/dotnet/async.md +0 -366
  232. package/framework/standards/backend/dotnet/core.md +0 -117
  233. package/framework/standards/backend/dotnet/di.md +0 -439
  234. package/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
  235. package/framework/standards/context/analytics.md +0 -96
  236. package/framework/standards/context/bundles.md +0 -110
  237. package/framework/standards/context/priming.md +0 -78
  238. package/framework/standards/core/architecture.md +0 -185
  239. package/framework/standards/core/coding.md +0 -214
  240. package/framework/standards/core/git-branching-strategy.md +0 -403
  241. package/framework/standards/core/git.md +0 -185
  242. package/framework/standards/core/testing.md +0 -295
  243. package/framework/standards/data/nosql/blob-storage.md +0 -102
  244. package/framework/standards/data/vector-search/azure-ai-search.md +0 -121
  245. package/framework/standards/frontend/blazor/design-checklist.md +0 -222
  246. package/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
  247. package/framework/standards/frontend/blazor/fluent-ui.md +0 -137
  248. package/framework/standards/frontend/blazor/html-conversion.md +0 -184
  249. package/framework/standards/frontend/blazor/lifecycle.md +0 -195
  250. package/framework/standards/frontend/blazor/pitfalls.md +0 -198
  251. package/framework/standards/frontend/blazor/state.md +0 -191
  252. package/framework/standards/frontend/design-system/aesthetic-direction.md +0 -266
  253. package/framework/standards/frontend/design-system/design-trends.md +0 -171
  254. package/framework/standards/infrastructure/azure/azure.md +0 -624
  255. package/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
  256. package/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
  257. package/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
  258. package/framework/standards/infrastructure/azure/services/functions.md +0 -486
  259. package/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
  260. package/framework/standards/infrastructure/azure/services/storage.md +0 -407
  261. package/framework/standards/infrastructure/vercel/vercel-database.md +0 -106
  262. package/framework/standards/integration/api/graphql.md +0 -91
  263. package/framework/standards/integration/api/grpc.md +0 -114
  264. package/framework/standards/integration/api/rest-design.md +0 -95
  265. package/framework/standards/integration/event-driven/cqrs.md +0 -101
  266. package/framework/standards/integration/event-driven/event-sourcing.md +0 -124
  267. package/framework/standards/integration/event-driven/service-bus.md +0 -95
  268. package/framework/standards/observability/logging.md +0 -131
  269. package/framework/standards/observability/metrics.md +0 -121
  270. package/framework/standards/observability/monitoring.md +0 -114
  271. package/framework/standards/observability/tracing.md +0 -132
  272. package/framework/standards/workflows/parallel-execution.md +0 -112
  273. package/framework/standards/workflows/thread-management.md +0 -113
  274. package/framework/templates/code/dotnet/backend/service.cs +0 -139
  275. package/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
  276. package/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
  277. package/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
  278. package/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
  279. package/framework/templates/code/dotnet/contracts/contracts-level1.cs +0 -69
  280. package/framework/templates/code/dotnet/contracts/contracts-level2.cs +0 -86
  281. package/framework/templates/code/dotnet/contracts/contracts-level3.cs +0 -41
  282. package/framework/templates/code/dotnet/frontend/component.razor +0 -239
  283. package/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
  284. package/framework/templates/infrastructure/azure/README.md +0 -286
  285. package/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
  286. package/framework/templates/infrastructure/azure/app-service.bicep +0 -164
  287. package/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
  288. package/framework/templates/infrastructure/azure/container-app.bicep +0 -156
  289. package/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
  290. package/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
  291. package/framework/templates/infrastructure/azure/deploy.sh +0 -208
  292. package/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
  293. package/framework/templates/infrastructure/azure/main.bicep +0 -189
  294. package/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
  295. package/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
  296. package/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
  297. package/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
  298. package/framework/templates/infrastructure/azure/storage.bicep +0 -106
  299. package/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
  300. package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
  301. package/framework/templates/integrations/azure-identity-config.cs +0 -288
  302. package/framework/templates/project-structure/dotnet-ddd.md +0 -70
  303. package/framework/templates/saas/subscription.cs +0 -347
  304. package/framework/templates/saas/tenant.cs +0 -338
  305. package/framework/templates/ui/FluentDesignTheme.cs +0 -149
  306. package/framework/templates/ui/MudTheme.cs +0 -281
  307. package/framework/workflows/configs/nodejs-cli.json +0 -40
  308. package/src/commands/standards/context-budget.js +0 -89
  309. package/src/lib/standards/index.js +0 -7
  310. package/src/lib/standards/standards-context-injector.js +0 -302
  311. package/src/lib/validators/blazor/blazor-concurrency-analyzer.js +0 -316
  312. package/src/lib/validators/blazor/blazor-state-validator.js +0 -279
  313. package/src/lib/validators/blazor/blazor-validator.js +0 -369
  314. package/src/lib/validators/blazor/index.js +0 -9
@@ -18,11 +18,8 @@
18
18
  "dotnet",
19
19
  "typescript",
20
20
  "sql",
21
- "azure",
22
- "azure-devops",
23
21
  "github-actions",
24
22
  "docker",
25
- "bicep",
26
23
  "handlebars"
27
24
  ],
28
25
  "templates": [
@@ -132,7 +129,7 @@
132
129
  "path": "context/CONTEXT.md",
133
130
  "location": "framework",
134
131
  "category": "context",
135
- "phase": "setup",
132
+ "phase": "proposal",
136
133
  "required": false,
137
134
  "description": "Project-level context with tech stack, active features, agents, standards",
138
135
  "outputName": "CONTEXT.md",
@@ -146,13 +143,33 @@
146
143
  "deprecated": false,
147
144
  "technology": "handlebars"
148
145
  },
146
+ {
147
+ "id": "architecture",
148
+ "name": "Architecture Context",
149
+ "path": "context/ARCHITECTURE.md",
150
+ "location": "framework",
151
+ "category": "context",
152
+ "phase": "proposal",
153
+ "required": false,
154
+ "description": "Auto-scanned architecture context with entities, endpoints, pages, components, integrations, database tables, and package versions",
155
+ "outputName": "ARCHITECTURE.md",
156
+ "placeholders": [
157
+ "projectName",
158
+ "timestamp",
159
+ "morphVersion"
160
+ ],
161
+ "stackSpecific": false,
162
+ "engine": "handlebars",
163
+ "deprecated": false,
164
+ "technology": "handlebars"
165
+ },
149
166
  {
150
167
  "id": "context-feature",
151
168
  "name": "Feature Context",
152
169
  "path": "context/CONTEXT-FEATURE.md",
153
170
  "location": "framework",
154
171
  "category": "context",
155
- "phase": "setup",
172
+ "phase": "proposal",
156
173
  "required": false,
157
174
  "description": "Feature-level context with progress, agents, tasks, decisions, validations",
158
175
  "outputName": "CONTEXT-FEATURE.md",
@@ -199,29 +216,6 @@
199
216
  "deprecated": false,
200
217
  "technology": null
201
218
  },
202
- {
203
- "id": "dotnet-backend-service",
204
- "name": ".NET Service Class",
205
- "path": "code/dotnet/backend/service.cs",
206
- "location": "framework",
207
- "category": "code",
208
- "phase": "implement",
209
- "required": false,
210
- "description": "C# service class template with dependency injection and interface pattern",
211
- "outputName": "{FeatureName}Service.cs",
212
- "placeholders": [
213
- "FEATURE_NAME",
214
- "NAMESPACE"
215
- ],
216
- "stackSpecific": false,
217
- "engine": "handlebars",
218
- "deprecated": false,
219
- "technology": "dotnet",
220
- "applicableStacks": [
221
- "blazor-azure",
222
- "nextjs-supabase"
223
- ]
224
- },
225
219
  {
226
220
  "id": "dotnet-backend-repository",
227
221
  "name": ".NET Repository Class",
@@ -241,7 +235,6 @@
241
235
  "deprecated": false,
242
236
  "technology": "dotnet",
243
237
  "applicableStacks": [
244
- "blazor-azure",
245
238
  "nextjs-supabase"
246
239
  ]
247
240
  },
@@ -264,32 +257,9 @@
264
257
  "deprecated": false,
265
258
  "technology": "dotnet",
266
259
  "applicableStacks": [
267
- "blazor-azure",
268
260
  "nextjs-supabase"
269
261
  ]
270
262
  },
271
- {
272
- "id": "dotnet-frontend-component",
273
- "name": "Blazor Component",
274
- "path": "code/dotnet/frontend/component.razor",
275
- "location": "framework",
276
- "category": "code",
277
- "phase": "implement",
278
- "required": false,
279
- "description": "Blazor component template with code-behind and lifecycle hooks",
280
- "outputName": "{FeatureName}.razor",
281
- "placeholders": [
282
- "FEATURE_NAME",
283
- "NAMESPACE"
284
- ],
285
- "stackSpecific": false,
286
- "engine": "handlebars",
287
- "deprecated": false,
288
- "technology": "dotnet",
289
- "applicableStacks": [
290
- "blazor-azure"
291
- ]
292
- },
293
263
  {
294
264
  "id": "dotnet-database-migration",
295
265
  "name": "EF Core Migration",
@@ -309,7 +279,6 @@
309
279
  "deprecated": false,
310
280
  "technology": "dotnet",
311
281
  "applicableStacks": [
312
- "blazor-azure",
313
282
  "nextjs-supabase"
314
283
  ]
315
284
  },
@@ -332,7 +301,6 @@
332
301
  "deprecated": false,
333
302
  "technology": "dotnet",
334
303
  "applicableStacks": [
335
- "blazor-azure",
336
304
  "nextjs-supabase"
337
305
  ]
338
306
  },
@@ -355,99 +323,6 @@
355
323
  "deprecated": false,
356
324
  "technology": "dotnet",
357
325
  "applicableStacks": [
358
- "blazor-azure",
359
- "nextjs-supabase"
360
- ]
361
- },
362
- {
363
- "id": "dotnet-contracts-commands",
364
- "name": "CQRS Commands",
365
- "path": "code/dotnet/contracts/Commands.cs",
366
- "location": "framework",
367
- "category": "code",
368
- "phase": "design",
369
- "required": false,
370
- "description": "CQRS command contracts following command pattern",
371
- "outputName": "Commands.cs",
372
- "placeholders": [
373
- "FEATURE_NAME",
374
- "NAMESPACE"
375
- ],
376
- "stackSpecific": false,
377
- "engine": "handlebars",
378
- "deprecated": false,
379
- "technology": "dotnet",
380
- "applicableStacks": [
381
- "blazor-azure",
382
- "nextjs-supabase"
383
- ]
384
- },
385
- {
386
- "id": "dotnet-contracts-queries",
387
- "name": "CQRS Queries",
388
- "path": "code/dotnet/contracts/Queries.cs",
389
- "location": "framework",
390
- "category": "code",
391
- "phase": "design",
392
- "required": false,
393
- "description": "CQRS query contracts following query pattern",
394
- "outputName": "Queries.cs",
395
- "placeholders": [
396
- "FEATURE_NAME",
397
- "NAMESPACE"
398
- ],
399
- "stackSpecific": false,
400
- "engine": "handlebars",
401
- "deprecated": false,
402
- "technology": "dotnet",
403
- "applicableStacks": [
404
- "blazor-azure",
405
- "nextjs-supabase"
406
- ]
407
- },
408
- {
409
- "id": "dotnet-contracts-entities",
410
- "name": "Domain Entities",
411
- "path": "code/dotnet/contracts/Entities.cs",
412
- "location": "framework",
413
- "category": "code",
414
- "phase": "design",
415
- "required": false,
416
- "description": "Domain entity definitions with navigation properties",
417
- "outputName": "Entities.cs",
418
- "placeholders": [
419
- "FEATURE_NAME",
420
- "NAMESPACE"
421
- ],
422
- "stackSpecific": false,
423
- "engine": "handlebars",
424
- "deprecated": false,
425
- "technology": "dotnet",
426
- "applicableStacks": [
427
- "blazor-azure",
428
- "nextjs-supabase"
429
- ]
430
- },
431
- {
432
- "id": "dotnet-contracts-api",
433
- "name": "API Contracts",
434
- "path": "code/dotnet/contracts/api-contracts.cs",
435
- "location": "framework",
436
- "category": "code",
437
- "phase": "design",
438
- "required": false,
439
- "description": "REST API request/response contracts",
440
- "outputName": "ApiContracts.cs",
441
- "placeholders": [
442
- "FEATURE_NAME",
443
- "NAMESPACE"
444
- ],
445
- "stackSpecific": false,
446
- "engine": "handlebars",
447
- "deprecated": false,
448
- "technology": "dotnet",
449
- "applicableStacks": [
450
- "blazor-azure",
451
326
  "nextjs-supabase"
452
327
  ]
453
328
  },
@@ -469,7 +344,6 @@
469
344
  "deprecated": false,
470
345
  "technology": "dotnet",
471
346
  "applicableStacks": [
472
- "blazor-azure",
473
347
  "nextjs-supabase"
474
348
  ]
475
349
  },
@@ -490,414 +364,93 @@
490
364
  "DATE"
491
365
  ],
492
366
  "stackSpecific": false,
493
- "engine": "handlebars",
494
- "deprecated": false,
495
- "technology": "dotnet"
496
- },
497
- {
498
- "id": "typescript-contracts",
499
- "name": "TypeScript Contracts",
500
- "path": "code/typescript/contracts.ts",
501
- "location": "framework",
502
- "category": "code",
503
- "phase": "design",
504
- "required": false,
505
- "description": "TypeScript type definitions and interfaces",
506
- "outputName": "contracts.ts",
507
- "placeholders": [
508
- "FEATURE_NAME"
509
- ],
510
- "stackSpecific": false,
511
- "engine": "handlebars",
512
- "deprecated": false,
513
- "technology": "typescript",
514
- "applicableStacks": [
515
- "nextjs-supabase"
516
- ]
517
- },
518
- {
519
- "id": "sql-supabase-migration",
520
- "name": "Supabase Migration",
521
- "path": "code/sql/supabase-migration.sql",
522
- "location": "framework",
523
- "category": "code",
524
- "phase": "implement",
525
- "required": false,
526
- "description": "Supabase SQL migration template (basic)",
527
- "outputName": "{timestamp}_{feature_name}.sql",
528
- "placeholders": [
529
- "FEATURE_NAME"
530
- ],
531
- "stackSpecific": false,
532
- "engine": "handlebars",
533
- "deprecated": false,
534
- "technology": "sql",
535
- "applicableStacks": [
536
- "nextjs-supabase"
537
- ]
538
- },
539
- {
540
- "id": "sql-supabase-migration-enhanced",
541
- "name": "Supabase Migration (Enhanced)",
542
- "path": "code/sql/supabase-migration.template.sql",
543
- "location": "framework",
544
- "category": "code",
545
- "phase": "implement",
546
- "required": false,
547
- "description": "Enhanced Supabase migration with RLS and indexes",
548
- "outputName": "{timestamp}_{feature_name}.sql",
549
- "placeholders": [
550
- "FEATURE_NAME"
551
- ],
552
- "stackSpecific": false,
553
- "engine": "handlebars",
554
- "deprecated": false,
555
- "technology": "sql",
556
- "applicableStacks": [
557
- "nextjs-supabase"
558
- ]
559
- },
560
- {
561
- "id": "sql-rls-policy",
562
- "name": "Row-Level Security Policy",
563
- "path": "code/sql/rls-policy.sql",
564
- "location": "framework",
565
- "category": "code",
566
- "phase": "implement",
567
- "required": false,
568
- "description": "Row-level security policy template for Supabase",
569
- "outputName": "{table_name}_rls_policies.sql",
570
- "placeholders": [
571
- "FEATURE_NAME",
572
- "TABLE_NAME"
573
- ],
574
- "stackSpecific": false,
575
- "engine": "handlebars",
576
- "deprecated": false,
577
- "technology": "sql",
578
- "applicableStacks": [
579
- "nextjs-supabase"
580
- ]
581
- },
582
- {
583
- "id": "azure-bicep-main",
584
- "name": "Main Bicep Orchestration",
585
- "path": "infrastructure/azure/main.bicep",
586
- "location": "framework",
587
- "category": "infrastructure",
588
- "phase": "implement",
589
- "required": true,
590
- "description": "Main Bicep orchestration file for Azure resources",
591
- "outputName": "main.bicep",
592
- "placeholders": [
593
- "PROJECT_NAME",
594
- "ENVIRONMENT"
595
- ],
596
- "stackSpecific": false,
597
- "engine": "handlebars",
598
- "deprecated": false,
599
- "technology": "bicep",
600
- "applicableStacks": [
601
- "blazor-azure"
602
- ]
603
- },
604
- {
605
- "id": "azure-bicep-container-app",
606
- "name": "Azure Container App",
607
- "path": "infrastructure/azure/container-app.bicep",
608
- "location": "framework",
609
- "category": "infrastructure",
610
- "phase": "implement",
611
- "required": false,
612
- "description": "Azure Container App definition with scaling and secrets",
613
- "outputName": "container-app.bicep",
614
- "placeholders": [
615
- "PROJECT_NAME"
616
- ],
617
- "stackSpecific": false,
618
- "engine": "handlebars",
619
- "deprecated": false,
620
- "technology": "bicep",
621
- "applicableStacks": [
622
- "blazor-azure"
623
- ]
624
- },
625
- {
626
- "id": "azure-bicep-container-env",
627
- "name": "Container Apps Environment",
628
- "path": "infrastructure/azure/container-app-env.bicep",
629
- "location": "framework",
630
- "category": "infrastructure",
631
- "phase": "implement",
632
- "required": false,
633
- "description": "Azure Container Apps environment with Log Analytics",
634
- "outputName": "container-app-env.bicep",
635
- "placeholders": [
636
- "PROJECT_NAME"
637
- ],
638
- "stackSpecific": false,
639
- "engine": "handlebars",
640
- "deprecated": false,
641
- "technology": "bicep",
642
- "applicableStacks": [
643
- "blazor-azure"
644
- ]
645
- },
646
- {
647
- "id": "azure-bicep-app-service",
648
- "name": "Azure App Service",
649
- "path": "infrastructure/azure/app-service.bicep",
650
- "location": "framework",
651
- "category": "infrastructure",
652
- "phase": "implement",
653
- "required": false,
654
- "description": "Azure App Service definition (alternative to Container Apps)",
655
- "outputName": "app-service.bicep",
656
- "placeholders": [
657
- "PROJECT_NAME"
658
- ],
659
- "stackSpecific": false,
660
- "engine": "handlebars",
661
- "deprecated": false,
662
- "technology": "bicep",
663
- "applicableStacks": [
664
- "blazor-azure"
665
- ]
666
- },
667
- {
668
- "id": "azure-bicep-sql",
669
- "name": "Azure SQL Database",
670
- "path": "infrastructure/azure/sql-database.bicep",
671
- "location": "framework",
672
- "category": "infrastructure",
673
- "phase": "implement",
674
- "required": false,
675
- "description": "Azure SQL Database with server and firewall rules",
676
- "outputName": "sql-database.bicep",
677
- "placeholders": [
678
- "PROJECT_NAME"
679
- ],
680
- "stackSpecific": false,
681
- "engine": "handlebars",
682
- "deprecated": false,
683
- "technology": "bicep",
684
- "applicableStacks": [
685
- "blazor-azure"
686
- ]
687
- },
688
- {
689
- "id": "azure-bicep-storage",
690
- "name": "Azure Storage Account",
691
- "path": "infrastructure/azure/storage.bicep",
692
- "location": "framework",
693
- "category": "infrastructure",
694
- "phase": "implement",
695
- "required": false,
696
- "description": "Azure Storage Account with blob containers",
697
- "outputName": "storage.bicep",
698
- "placeholders": [
699
- "PROJECT_NAME"
700
- ],
701
- "stackSpecific": false,
702
- "engine": "handlebars",
703
- "deprecated": false,
704
- "technology": "bicep",
705
- "applicableStacks": [
706
- "blazor-azure"
707
- ]
708
- },
709
- {
710
- "id": "azure-bicep-key-vault",
711
- "name": "Azure Key Vault",
712
- "path": "infrastructure/azure/key-vault.bicep",
713
- "location": "framework",
714
- "category": "infrastructure",
715
- "phase": "implement",
716
- "required": false,
717
- "description": "Azure Key Vault for secrets management",
718
- "outputName": "key-vault.bicep",
719
- "placeholders": [
720
- "PROJECT_NAME"
721
- ],
722
- "stackSpecific": false,
723
- "engine": "handlebars",
724
- "deprecated": false,
725
- "technology": "bicep",
726
- "applicableStacks": [
727
- "blazor-azure"
728
- ]
729
- },
730
- {
731
- "id": "azure-bicep-app-insights",
732
- "name": "Application Insights",
733
- "path": "infrastructure/azure/app-insights.bicep",
734
- "location": "framework",
735
- "category": "infrastructure",
736
- "phase": "implement",
737
- "required": false,
738
- "description": "Application Insights for monitoring and telemetry",
739
- "outputName": "app-insights.bicep",
740
- "placeholders": [
741
- "PROJECT_NAME"
742
- ],
743
- "stackSpecific": false,
744
- "engine": "handlebars",
745
- "deprecated": false,
746
- "technology": "bicep",
747
- "applicableStacks": [
748
- "blazor-azure"
749
- ]
750
- },
751
- {
752
- "id": "azure-parameters-dev",
753
- "name": "Parameters (Development)",
754
- "path": "infrastructure/azure/parameters.dev.json",
755
- "location": "framework",
756
- "category": "infrastructure",
757
- "phase": "implement",
758
- "required": false,
759
- "description": "Bicep parameters for development environment",
760
- "outputName": "parameters.dev.json",
761
- "placeholders": [],
762
- "stackSpecific": false,
763
- "engine": null,
764
- "deprecated": false,
765
- "technology": "azure",
766
- "applicableStacks": [
767
- "blazor-azure"
768
- ]
769
- },
770
- {
771
- "id": "azure-parameters-staging",
772
- "name": "Parameters (Staging)",
773
- "path": "infrastructure/azure/parameters.staging.json",
774
- "location": "framework",
775
- "category": "infrastructure",
776
- "phase": "implement",
777
- "required": false,
778
- "description": "Bicep parameters for staging environment",
779
- "outputName": "parameters.staging.json",
780
- "placeholders": [],
781
- "stackSpecific": false,
782
- "engine": null,
783
- "deprecated": false,
784
- "technology": "azure",
785
- "applicableStacks": [
786
- "blazor-azure"
787
- ]
788
- },
789
- {
790
- "id": "azure-parameters-prod",
791
- "name": "Parameters (Production)",
792
- "path": "infrastructure/azure/parameters.prod.json",
793
- "location": "framework",
794
- "category": "infrastructure",
795
- "phase": "implement",
796
- "required": false,
797
- "description": "Bicep parameters for production environment",
798
- "outputName": "parameters.prod.json",
799
- "placeholders": [],
800
- "stackSpecific": false,
801
- "engine": null,
802
- "deprecated": false,
803
- "technology": "azure",
804
- "applicableStacks": [
805
- "blazor-azure"
806
- ]
807
- },
808
- {
809
- "id": "azure-deploy-ps1",
810
- "name": "Deploy Script (PowerShell)",
811
- "path": "infrastructure/azure/deploy.ps1",
812
- "location": "framework",
813
- "category": "infrastructure",
814
- "phase": "implement",
815
- "required": false,
816
- "description": "PowerShell deployment script for Azure",
817
- "outputName": "deploy.ps1",
818
- "placeholders": [],
819
- "stackSpecific": false,
820
- "engine": null,
367
+ "engine": "handlebars",
821
368
  "deprecated": false,
822
- "technology": "azure",
823
- "applicableStacks": [
824
- "blazor-azure"
825
- ]
369
+ "technology": "dotnet"
826
370
  },
827
371
  {
828
- "id": "azure-deploy-sh",
829
- "name": "Deploy Script (Bash)",
830
- "path": "infrastructure/azure/deploy.sh",
372
+ "id": "typescript-contracts",
373
+ "name": "TypeScript Contracts",
374
+ "path": "code/typescript/contracts.ts",
831
375
  "location": "framework",
832
- "category": "infrastructure",
833
- "phase": "implement",
376
+ "category": "code",
377
+ "phase": "design",
834
378
  "required": false,
835
- "description": "Bash deployment script for Azure",
836
- "outputName": "deploy.sh",
837
- "placeholders": [],
379
+ "description": "TypeScript type definitions and interfaces",
380
+ "outputName": "contracts.ts",
381
+ "placeholders": [
382
+ "FEATURE_NAME"
383
+ ],
838
384
  "stackSpecific": false,
839
- "engine": null,
385
+ "engine": "handlebars",
840
386
  "deprecated": false,
841
- "technology": "azure",
387
+ "technology": "typescript",
842
388
  "applicableStacks": [
843
- "blazor-azure"
389
+ "nextjs-supabase"
844
390
  ]
845
391
  },
846
392
  {
847
- "id": "azure-deploy-checklist",
848
- "name": "Deployment Checklist",
849
- "path": "infrastructure/azure/deploy-checklist.md",
393
+ "id": "sql-supabase-migration",
394
+ "name": "Supabase Migration",
395
+ "path": "code/sql/supabase-migration.sql",
850
396
  "location": "framework",
851
- "category": "infrastructure",
397
+ "category": "code",
852
398
  "phase": "implement",
853
399
  "required": false,
854
- "description": "Pre-deployment verification checklist",
855
- "outputName": "deploy-checklist.md",
856
- "placeholders": [],
400
+ "description": "Supabase SQL migration template (basic)",
401
+ "outputName": "{timestamp}_{feature_name}.sql",
402
+ "placeholders": [
403
+ "FEATURE_NAME"
404
+ ],
857
405
  "stackSpecific": false,
858
406
  "engine": "handlebars",
859
407
  "deprecated": false,
860
- "technology": "azure",
408
+ "technology": "sql",
861
409
  "applicableStacks": [
862
- "blazor-azure"
410
+ "nextjs-supabase"
863
411
  ]
864
412
  },
865
413
  {
866
- "id": "azure-dockerfile",
867
- "name": "Dockerfile (Azure)",
868
- "path": "infrastructure/azure/Dockerfile.example",
414
+ "id": "sql-supabase-migration-enhanced",
415
+ "name": "Supabase Migration (Enhanced)",
416
+ "path": "code/sql/supabase-migration.template.sql",
869
417
  "location": "framework",
870
- "category": "infrastructure",
418
+ "category": "code",
871
419
  "phase": "implement",
872
420
  "required": false,
873
- "description": "Example Dockerfile for Azure Container Apps",
874
- "outputName": "Dockerfile",
875
- "placeholders": [],
421
+ "description": "Enhanced Supabase migration with RLS and indexes",
422
+ "outputName": "{timestamp}_{feature_name}.sql",
423
+ "placeholders": [
424
+ "FEATURE_NAME"
425
+ ],
876
426
  "stackSpecific": false,
877
- "engine": null,
427
+ "engine": "handlebars",
878
428
  "deprecated": false,
879
- "technology": "docker",
429
+ "technology": "sql",
880
430
  "applicableStacks": [
881
- "blazor-azure"
431
+ "nextjs-supabase"
882
432
  ]
883
433
  },
884
434
  {
885
- "id": "azure-readme",
886
- "name": "Infrastructure README",
887
- "path": "infrastructure/azure/README.md",
435
+ "id": "sql-rls-policy",
436
+ "name": "Row-Level Security Policy",
437
+ "path": "code/sql/rls-policy.sql",
888
438
  "location": "framework",
889
- "category": "infrastructure",
439
+ "category": "code",
890
440
  "phase": "implement",
891
441
  "required": false,
892
- "description": "Documentation for Azure infrastructure",
893
- "outputName": "README.md",
894
- "placeholders": [],
442
+ "description": "Row-level security policy template for Supabase",
443
+ "outputName": "{table_name}_rls_policies.sql",
444
+ "placeholders": [
445
+ "FEATURE_NAME",
446
+ "TABLE_NAME"
447
+ ],
895
448
  "stackSpecific": false,
896
449
  "engine": "handlebars",
897
450
  "deprecated": false,
898
- "technology": "azure",
451
+ "technology": "sql",
899
452
  "applicableStacks": [
900
- "blazor-azure"
453
+ "nextjs-supabase"
901
454
  ]
902
455
  },
903
456
  {
@@ -1019,7 +572,6 @@
1019
572
  "deprecated": false,
1020
573
  "technology": "dotnet",
1021
574
  "applicableStacks": [
1022
- "blazor-azure",
1023
575
  "nextjs-supabase"
1024
576
  ]
1025
577
  },
@@ -1041,31 +593,9 @@
1041
593
  "deprecated": false,
1042
594
  "technology": "dotnet",
1043
595
  "applicableStacks": [
1044
- "blazor-azure",
1045
596
  "nextjs-supabase"
1046
597
  ]
1047
598
  },
1048
- {
1049
- "id": "integration-azure-identity",
1050
- "name": "Azure Identity Configuration",
1051
- "path": "integrations/azure-identity-config.cs",
1052
- "location": "framework",
1053
- "category": "integration",
1054
- "phase": "implement",
1055
- "required": false,
1056
- "description": "Azure AD/Entra ID authentication configuration",
1057
- "outputName": "AzureIdentityConfig.cs",
1058
- "placeholders": [
1059
- "NAMESPACE"
1060
- ],
1061
- "stackSpecific": false,
1062
- "engine": "handlebars",
1063
- "deprecated": false,
1064
- "technology": "dotnet",
1065
- "applicableStacks": [
1066
- "blazor-azure"
1067
- ]
1068
- },
1069
599
  {
1070
600
  "id": "integration-clerk",
1071
601
  "name": "Clerk Authentication",
@@ -1084,7 +614,6 @@
1084
614
  "deprecated": false,
1085
615
  "technology": "dotnet",
1086
616
  "applicableStacks": [
1087
- "blazor-azure",
1088
617
  "nextjs-supabase"
1089
618
  ]
1090
619
  },
@@ -1106,108 +635,19 @@
1106
635
  "deprecated": false,
1107
636
  "technology": "css",
1108
637
  "applicableStacks": [
1109
- "blazor-azure",
1110
- "nextjs-supabase"
1111
- ]
1112
- },
1113
- {
1114
- "id": "ui-fluent-theme",
1115
- "name": "Fluent Design Theme",
1116
- "path": "ui/FluentDesignTheme.cs",
1117
- "location": "framework",
1118
- "category": "ui",
1119
- "phase": "uiux",
1120
- "required": false,
1121
- "description": "FluentUI Blazor theme configuration (auto-generated)",
1122
- "outputName": "FluentDesignTheme.cs",
1123
- "placeholders": [
1124
- "NAMESPACE"
1125
- ],
1126
- "stackSpecific": false,
1127
- "engine": "handlebars",
1128
- "deprecated": false,
1129
- "autoGenerated": true,
1130
- "technology": "dotnet",
1131
- "applicableStacks": [
1132
- "blazor-azure"
1133
- ]
1134
- },
1135
- {
1136
- "id": "ui-mud-theme",
1137
- "name": "MudBlazor Theme",
1138
- "path": "ui/MudTheme.cs",
1139
- "location": "framework",
1140
- "category": "ui",
1141
- "phase": "uiux",
1142
- "required": false,
1143
- "description": "MudBlazor theme configuration (auto-generated)",
1144
- "outputName": "MudTheme.cs",
1145
- "placeholders": [
1146
- "NAMESPACE"
1147
- ],
1148
- "stackSpecific": false,
1149
- "engine": "handlebars",
1150
- "deprecated": false,
1151
- "autoGenerated": true,
1152
- "technology": "dotnet",
1153
- "applicableStacks": [
1154
- "blazor-azure"
1155
- ]
1156
- },
1157
- {
1158
- "id": "saas-subscription",
1159
- "name": "Subscription Model",
1160
- "path": "saas/subscription.cs",
1161
- "location": "framework",
1162
- "category": "saas",
1163
- "phase": "implement",
1164
- "required": false,
1165
- "description": "Multi-tenant subscription model with billing",
1166
- "outputName": "Subscription.cs",
1167
- "placeholders": [
1168
- "NAMESPACE"
1169
- ],
1170
- "stackSpecific": false,
1171
- "engine": "handlebars",
1172
- "deprecated": false,
1173
- "technology": "dotnet",
1174
- "applicableStacks": [
1175
- "blazor-azure",
1176
- "nextjs-supabase"
1177
- ]
1178
- },
1179
- {
1180
- "id": "saas-tenant",
1181
- "name": "Tenant Model",
1182
- "path": "saas/tenant.cs",
1183
- "location": "framework",
1184
- "category": "saas",
1185
- "phase": "implement",
1186
- "required": false,
1187
- "description": "Multi-tenant tenant model with isolation",
1188
- "outputName": "Tenant.cs",
1189
- "placeholders": [
1190
- "NAMESPACE"
1191
- ],
1192
- "stackSpecific": false,
1193
- "engine": "handlebars",
1194
- "deprecated": false,
1195
- "technology": "dotnet",
1196
- "applicableStacks": [
1197
- "blazor-azure",
1198
638
  "nextjs-supabase"
1199
639
  ]
1200
640
  },
1201
641
  {
1202
642
  "id": "ui-mockups",
1203
643
  "name": "UI Mockups",
1204
- "path": "docs/ui-mockups.md",
644
+ "path": "docs/mockups.md",
1205
645
  "location": "framework",
1206
646
  "category": "documentation",
1207
647
  "phase": "uiux",
1208
648
  "required": false,
1209
649
  "description": "Wireframes and layout specifications with ASCII mockups and responsive breakpoints",
1210
- "outputName": "ui-mockups.md",
650
+ "outputName": "mockups.md",
1211
651
  "placeholders": [
1212
652
  "FEATURE_NAME",
1213
653
  "DATE"
@@ -1220,13 +660,13 @@
1220
660
  {
1221
661
  "id": "ui-flows",
1222
662
  "name": "UI Flows",
1223
- "path": "docs/ui-flows.md",
663
+ "path": "docs/flows.md",
1224
664
  "location": "framework",
1225
665
  "category": "documentation",
1226
666
  "phase": "uiux",
1227
667
  "required": false,
1228
668
  "description": "User flows and interaction patterns with state diagrams and edge cases",
1229
- "outputName": "ui-flows.md",
669
+ "outputName": "flows.md",
1230
670
  "placeholders": [
1231
671
  "FEATURE_NAME",
1232
672
  "DATE"
@@ -1239,13 +679,13 @@
1239
679
  {
1240
680
  "id": "ui-components",
1241
681
  "name": "UI Components",
1242
- "path": "docs/ui-components.md",
682
+ "path": "docs/components.md",
1243
683
  "location": "framework",
1244
684
  "category": "documentation",
1245
685
  "phase": "uiux",
1246
686
  "required": false,
1247
- "description": "Component specifications mapping UI elements to FluentUI/MudBlazor components with props and events",
1248
- "outputName": "ui-components.md",
687
+ "description": "Component specifications mapping UI elements to shadcn/ui components with props and events",
688
+ "outputName": "components.md",
1249
689
  "placeholders": [
1250
690
  "FEATURE_NAME",
1251
691
  "DATE",
@@ -1259,13 +699,13 @@
1259
699
  {
1260
700
  "id": "ui-design-system",
1261
701
  "name": "UI Design System",
1262
- "path": "docs/ui-design-system.md",
702
+ "path": "docs/design-system.md",
1263
703
  "location": "framework",
1264
704
  "category": "documentation",
1265
705
  "phase": "uiux",
1266
706
  "required": false,
1267
707
  "description": "Design system documentation with color palette, typography, spacing, and semantic tokens",
1268
- "outputName": "ui-design-system.md",
708
+ "outputName": "design-system.md",
1269
709
  "placeholders": [
1270
710
  "FEATURE_NAME",
1271
711
  "DATE",
@@ -1292,7 +732,6 @@
1292
732
  ],
1293
733
  "stackSpecific": false,
1294
734
  "applicableStacks": [
1295
- "blazor-azure",
1296
735
  "nextjs-supabase"
1297
736
  ],
1298
737
  "engine": "handlebars",
@@ -1313,35 +752,12 @@
1313
752
  "placeholders": [],
1314
753
  "stackSpecific": false,
1315
754
  "applicableStacks": [
1316
- "blazor-azure",
1317
755
  "nextjs-supabase"
1318
756
  ],
1319
757
  "engine": "handlebars",
1320
758
  "deprecated": false,
1321
759
  "isFragment": true
1322
760
  },
1323
- {
1324
- "id": "github-workflow-deploy-azure-app-service",
1325
- "name": "GitHub Actions - Deploy to Azure App Service",
1326
- "path": "infrastructure/github/workflows/deploy-azure-app-service.yml.hbs",
1327
- "location": "framework",
1328
- "category": "infrastructure",
1329
- "technology": "github-actions",
1330
- "phase": "deploy",
1331
- "required": false,
1332
- "description": "Reusable workflow for deploying .NET applications to Azure App Service with Bicep infrastructure",
1333
- "outputName": "deploy-azure-app-service.yml",
1334
- "placeholders": [
1335
- "DOTNET_VERSION"
1336
- ],
1337
- "stackSpecific": false,
1338
- "applicableStacks": [
1339
- "blazor-azure"
1340
- ],
1341
- "engine": "handlebars",
1342
- "deprecated": false,
1343
- "isFragment": true
1344
- },
1345
761
  {
1346
762
  "id": "github-workflow-deploy-easypanel",
1347
763
  "name": "GitHub Actions - Deploy to EasyPanel",
@@ -1376,7 +792,6 @@
1376
792
  "placeholders": [],
1377
793
  "stackSpecific": false,
1378
794
  "applicableStacks": [
1379
- "blazor-azure",
1380
795
  "nextjs-supabase"
1381
796
  ],
1382
797
  "engine": "handlebars",
@@ -1397,98 +812,12 @@
1397
812
  "placeholders": [],
1398
813
  "stackSpecific": false,
1399
814
  "applicableStacks": [
1400
- "blazor-azure",
1401
815
  "nextjs-supabase"
1402
816
  ],
1403
817
  "engine": "handlebars",
1404
818
  "deprecated": false,
1405
819
  "isFragment": true
1406
820
  },
1407
- {
1408
- "id": "github-action-azure-auth",
1409
- "name": "GitHub Composite Action - Azure OIDC Auth",
1410
- "path": "infrastructure/github/actions/azure-auth/action.yml.hbs",
1411
- "location": "framework",
1412
- "category": "infrastructure",
1413
- "technology": "github-actions",
1414
- "phase": "deploy",
1415
- "required": false,
1416
- "description": "Composite action for Azure authentication using OIDC",
1417
- "outputName": "action.yml",
1418
- "placeholders": [],
1419
- "stackSpecific": false,
1420
- "applicableStacks": [
1421
- "blazor-azure"
1422
- ],
1423
- "engine": "handlebars",
1424
- "deprecated": false,
1425
- "isFragment": true
1426
- },
1427
- {
1428
- "id": "blazor-azure-ci-build",
1429
- "name": "Blazor-Azure CI Build Workflow",
1430
- "path": "infrastructure/github/workflows/ci-build.yml.hbs",
1431
- "location": "stack/blazor-azure",
1432
- "category": "infrastructure",
1433
- "technology": "github-actions",
1434
- "phase": "build",
1435
- "required": true,
1436
- "description": "CI build workflow for Blazor-Azure stack with security checks",
1437
- "outputName": "ci-build.yml",
1438
- "placeholders": [
1439
- "DOTNET_VERSION"
1440
- ],
1441
- "stackSpecific": true,
1442
- "applicableStacks": [
1443
- "blazor-azure"
1444
- ],
1445
- "engine": "handlebars",
1446
- "deprecated": false
1447
- },
1448
- {
1449
- "id": "blazor-azure-cd-staging",
1450
- "name": "Blazor-Azure Staging Deployment",
1451
- "path": "infrastructure/github/workflows/cd-staging.yml.hbs",
1452
- "location": "stack/blazor-azure",
1453
- "category": "infrastructure",
1454
- "technology": "github-actions",
1455
- "phase": "deploy",
1456
- "required": true,
1457
- "description": "Staging deployment workflow for Azure App Service",
1458
- "outputName": "cd-staging.yml",
1459
- "placeholders": [
1460
- "APP_NAME",
1461
- "DOTNET_VERSION"
1462
- ],
1463
- "stackSpecific": true,
1464
- "applicableStacks": [
1465
- "blazor-azure"
1466
- ],
1467
- "engine": "handlebars",
1468
- "deprecated": false
1469
- },
1470
- {
1471
- "id": "blazor-azure-cd-prod",
1472
- "name": "Blazor-Azure Production Deployment",
1473
- "path": "infrastructure/github/workflows/cd-prod.yml.hbs",
1474
- "location": "stack/blazor-azure",
1475
- "category": "infrastructure",
1476
- "technology": "github-actions",
1477
- "phase": "deploy",
1478
- "required": true,
1479
- "description": "Production deployment workflow for Azure App Service with security scanning",
1480
- "outputName": "cd-prod.yml",
1481
- "placeholders": [
1482
- "APP_NAME",
1483
- "DOTNET_VERSION"
1484
- ],
1485
- "stackSpecific": true,
1486
- "applicableStacks": [
1487
- "blazor-azure"
1488
- ],
1489
- "engine": "handlebars",
1490
- "deprecated": false
1491
- },
1492
821
  {
1493
822
  "id": "nextjs-supabase-ci-build",
1494
823
  "name": "NextJS-Supabase CI Build Workflow",
@@ -1563,7 +892,6 @@
1563
892
  "deprecated": false,
1564
893
  "hopType": "squad-leader",
1565
894
  "applicableStacks": [
1566
- "blazor-azure",
1567
895
  "nextjs-supabase"
1568
896
  ]
1569
897
  },
@@ -1576,7 +904,7 @@
1576
904
  "technology": "handlebars",
1577
905
  "phase": "implement",
1578
906
  "required": false,
1579
- "description": "Frontend squad leader HOP for ui-designer with Blazor or Next.js domain leaders and design system standards",
907
+ "description": "Frontend squad leader HOP for ui-designer with Next.js domain leaders and design system standards",
1580
908
  "outputName": "frontend-squad-prompt.md",
1581
909
  "placeholders": [
1582
910
  "AGENT_ID",
@@ -1595,7 +923,6 @@
1595
923
  "deprecated": false,
1596
924
  "hopType": "squad-leader",
1597
925
  "applicableStacks": [
1598
- "blazor-azure",
1599
926
  "nextjs-supabase"
1600
927
  ]
1601
928
  },
@@ -1760,6 +1087,146 @@
1760
1087
  "engine": "handlebars",
1761
1088
  "deprecated": false,
1762
1089
  "hopType": "fusion"
1090
+ },
1091
+ {
1092
+ "id": "dotnet-abstractions-handler",
1093
+ "path": "code/dotnet/abstractions/handler.cs",
1094
+ "category": "abstractions",
1095
+ "stack": "dotnet",
1096
+ "description": "IHandler<TRequest, TResponse> interface"
1097
+ },
1098
+ {
1099
+ "id": "dotnet-abstractions-result",
1100
+ "path": "code/dotnet/abstractions/result.cs",
1101
+ "category": "abstractions",
1102
+ "stack": "dotnet",
1103
+ "description": "Result<T> railway-oriented pattern"
1104
+ },
1105
+ {
1106
+ "id": "dotnet-abstractions-error",
1107
+ "path": "code/dotnet/abstractions/error.cs",
1108
+ "category": "abstractions",
1109
+ "stack": "dotnet",
1110
+ "description": "Error record + ErrorType enum + ValidationError"
1111
+ },
1112
+ {
1113
+ "id": "dotnet-abstractions-api-endpoint",
1114
+ "path": "code/dotnet/abstractions/api-endpoint.cs",
1115
+ "category": "abstractions",
1116
+ "stack": "dotnet",
1117
+ "description": "IApiEndpoint interface for minimal APIs"
1118
+ },
1119
+ {
1120
+ "id": "dotnet-extensions-handler-registration",
1121
+ "path": "code/dotnet/extensions/handler-registration.cs",
1122
+ "category": "extensions",
1123
+ "stack": "dotnet",
1124
+ "description": "Scrutor handler auto-discovery + decorators"
1125
+ },
1126
+ {
1127
+ "id": "dotnet-extensions-map-endpoints",
1128
+ "path": "code/dotnet/extensions/map-endpoints.cs",
1129
+ "category": "extensions",
1130
+ "stack": "dotnet",
1131
+ "description": "IApiEndpoint auto-discovery + mapping"
1132
+ },
1133
+ {
1134
+ "id": "dotnet-extensions-result-extensions",
1135
+ "path": "code/dotnet/extensions/result-extensions.cs",
1136
+ "category": "extensions",
1137
+ "stack": "dotnet",
1138
+ "description": "Match() pattern matching for Result<T>"
1139
+ },
1140
+ {
1141
+ "id": "dotnet-extensions-database",
1142
+ "path": "code/dotnet/extensions/database-extensions.cs",
1143
+ "category": "extensions",
1144
+ "stack": "dotnet",
1145
+ "description": "EF Core + Npgsql database configuration"
1146
+ },
1147
+ {
1148
+ "id": "dotnet-extensions-health-checks",
1149
+ "path": "code/dotnet/extensions/health-checks.cs",
1150
+ "category": "extensions",
1151
+ "stack": "dotnet",
1152
+ "description": "Health check configuration"
1153
+ },
1154
+ {
1155
+ "id": "dotnet-pipelines-validation-decorator",
1156
+ "path": "code/dotnet/pipelines/validation-decorator.cs",
1157
+ "category": "pipelines",
1158
+ "stack": "dotnet",
1159
+ "description": "FluentValidation decorator for handlers"
1160
+ },
1161
+ {
1162
+ "id": "dotnet-pipelines-logging-decorator",
1163
+ "path": "code/dotnet/pipelines/logging-decorator.cs",
1164
+ "category": "pipelines",
1165
+ "stack": "dotnet",
1166
+ "description": "Logging decorator with duration tracking"
1167
+ },
1168
+ {
1169
+ "id": "dotnet-exceptions-handler",
1170
+ "path": "code/dotnet/exceptions/exception-handler.cs",
1171
+ "category": "exceptions",
1172
+ "stack": "dotnet",
1173
+ "description": "IExceptionHandler with ProblemDetails"
1174
+ },
1175
+ {
1176
+ "id": "dotnet-constants-api-tags",
1177
+ "path": "code/dotnet/constants/api-tags.cs",
1178
+ "category": "constants",
1179
+ "stack": "dotnet",
1180
+ "description": "ApiTags constants for endpoint grouping"
1181
+ },
1182
+ {
1183
+ "id": "dotnet-feature-endpoint",
1184
+ "path": "code/dotnet/feature/endpoint.cs.hbs",
1185
+ "category": "feature",
1186
+ "stack": "dotnet",
1187
+ "description": "VSA feature endpoint (IApiEndpoint)"
1188
+ },
1189
+ {
1190
+ "id": "dotnet-feature-handler",
1191
+ "path": "code/dotnet/feature/handler.cs.hbs",
1192
+ "category": "feature",
1193
+ "stack": "dotnet",
1194
+ "description": "VSA feature handler (IHandler)"
1195
+ },
1196
+ {
1197
+ "id": "dotnet-feature-validator",
1198
+ "path": "code/dotnet/feature/validator.cs.hbs",
1199
+ "category": "feature",
1200
+ "stack": "dotnet",
1201
+ "description": "VSA feature validator (AbstractValidator)"
1202
+ },
1203
+ {
1204
+ "id": "dotnet-feature-request",
1205
+ "path": "code/dotnet/feature/request.cs.hbs",
1206
+ "category": "feature",
1207
+ "stack": "dotnet",
1208
+ "description": "VSA feature request (sealed record)"
1209
+ },
1210
+ {
1211
+ "id": "dotnet-feature-response",
1212
+ "path": "code/dotnet/feature/response.cs.hbs",
1213
+ "category": "feature",
1214
+ "stack": "dotnet",
1215
+ "description": "VSA feature response (sealed record)"
1216
+ },
1217
+ {
1218
+ "id": "dotnet-feature-errors",
1219
+ "path": "code/dotnet/feature/errors.cs.hbs",
1220
+ "category": "feature",
1221
+ "stack": "dotnet",
1222
+ "description": "VSA feature error factory"
1223
+ },
1224
+ {
1225
+ "id": "dotnet-feature-entity",
1226
+ "path": "code/dotnet/feature/entity.cs.hbs",
1227
+ "category": "feature",
1228
+ "stack": "dotnet",
1229
+ "description": "VSA feature entity"
1763
1230
  }
1764
1231
  ],
1765
1232
  "stats": {
@@ -1770,7 +1237,7 @@
1770
1237
  "documentation": 4,
1771
1238
  "code": 24,
1772
1239
  "infrastructure": 18,
1773
- "context": 2,
1240
+ "context": 3,
1774
1241
  "examples": 2,
1775
1242
  "integration": 4,
1776
1243
  "saas": 2,
@@ -1781,19 +1248,15 @@
1781
1248
  "dotnet": 26,
1782
1249
  "typescript": 1,
1783
1250
  "sql": 3,
1784
- "bicep": 8,
1785
- "azure": 9,
1786
1251
  "docker": 5,
1787
1252
  "handlebars": 22,
1788
1253
  "css": 1,
1789
1254
  "github-actions": 9
1790
1255
  },
1791
1256
  "byPhase": {
1792
- "setup": 1,
1793
1257
  "proposal": 1,
1794
1258
  "uiux": 6,
1795
1259
  "design": 10,
1796
- "clarify": 0,
1797
1260
  "tasks": 1,
1798
1261
  "implement": 34,
1799
1262
  "completed": 1,
@@ -1815,8 +1278,6 @@
1815
1278
  "dotnet",
1816
1279
  "typescript",
1817
1280
  "sql",
1818
- "bicep",
1819
- "azure",
1820
1281
  "docker"
1821
1282
  ],
1822
1283
  "actionRequired": "Delete stacks/{stack}/.morph/templates/ directories (Phase 6)"