@polymorphism-tech/morph-spec 4.12.0 → 4.14.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 (316) hide show
  1. package/CLAUDE.md +7 -7
  2. package/README.md +28 -34
  3. package/bin/morph-spec.js +41 -24
  4. package/bin/task-manager.js +962 -1341
  5. package/bin/validate.js +1 -1
  6. package/claude-plugin.json +1 -1
  7. package/docs/CHEATSHEET.md +14 -16
  8. package/docs/QUICKSTART.md +15 -15
  9. package/framework/CLAUDE.md +5 -2
  10. package/framework/agents/README.md +3 -4
  11. package/framework/agents/ai-agents/ai-system-architect.md +6 -10
  12. package/framework/agents/architecture/seo-growth-hacker.md +166 -326
  13. package/framework/agents/architecture/standards-architect.md +21 -31
  14. package/framework/agents/backend/dotnet-senior.md +160 -86
  15. package/framework/agents/backend/ef-modeler.md +2 -6
  16. package/framework/agents/backend/hangfire-orchestrator.md +8 -9
  17. package/framework/agents/backend/ms-agent-expert.md +1 -1
  18. package/framework/agents/frontend/nextjs-expert.md +198 -133
  19. package/framework/agents/frontend/ui-ux-designer.md +226 -267
  20. package/framework/agents/infrastructure/infra-architect.md +191 -27
  21. package/framework/agents/integrations/clerk-auth.md +19 -26
  22. package/framework/agents/integrations/hangfire-integration.md +1 -4
  23. package/framework/agents.json +1084 -2278
  24. package/framework/commands/morph-apply.md +4 -6
  25. package/framework/commands/morph-preflight.md +192 -269
  26. package/framework/commands/morph-proposal.md +210 -238
  27. package/framework/commands/morph-status.md +72 -92
  28. package/framework/commands/morph-troubleshoot.md +6 -13
  29. package/framework/hooks/README.md +1 -6
  30. package/framework/hooks/claude-code/post-tool-use/validator-feedback.js +4 -6
  31. package/framework/hooks/claude-code/pre-compact/save-morph-context.js +12 -7
  32. package/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +2 -2
  33. package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +2 -2
  34. package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +5 -10
  35. package/framework/hooks/claude-code/session-start/inject-morph-context.js +63 -30
  36. package/framework/hooks/claude-code/session-start/resume-context.js +77 -0
  37. package/framework/hooks/claude-code/statusline.py +4 -5
  38. package/framework/hooks/claude-code/stop/validate-completion.js +4 -4
  39. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +8 -8
  40. package/framework/hooks/shared/compact-restore.js +28 -5
  41. package/framework/hooks/shared/phase-utils.js +4 -8
  42. package/framework/hooks/shared/state-reader.js +34 -3
  43. package/framework/phases.json +162 -200
  44. package/framework/rules/ai-agents-standards.md +15 -0
  45. package/framework/rules/asaas-standards.md +13 -0
  46. package/framework/rules/clerk-standards.md +13 -0
  47. package/framework/rules/csharp-standards.md +8 -4
  48. package/framework/rules/data-standards.md +18 -0
  49. package/framework/rules/dotnet-templates.md +87 -0
  50. package/framework/rules/frontend-standards.md +13 -13
  51. package/framework/rules/hangfire-standards.md +13 -0
  52. package/framework/rules/infrastructure-standards.md +27 -16
  53. package/framework/rules/morph-workflow.md +73 -13
  54. package/framework/rules/nextjs-standards.md +1 -0
  55. package/framework/rules/nextjs-templates.md +40 -0
  56. package/framework/rules/resend-standards.md +12 -0
  57. package/framework/rules/supabase-standards.md +29 -0
  58. package/framework/skills/README.md +6 -8
  59. package/framework/skills/level-0-meta/mcp-registry.json +21 -99
  60. package/framework/{standards/ai-agents/team-orchestration.md → skills/level-0-meta/morph-agent-teams/SKILL.md} +472 -479
  61. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +28 -1
  62. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +2 -2
  63. package/framework/skills/level-0-meta/morph-code-review/SKILL.md +1 -5
  64. package/framework/skills/level-0-meta/morph-code-review/scripts/scan-csharp.mjs +1 -1
  65. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +23 -41
  66. package/framework/skills/level-0-meta/morph-init/SKILL.md +18 -14
  67. package/framework/skills/level-0-meta/morph-parallel-dispatch/SKILL.md +225 -0
  68. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +20 -0
  69. package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +4 -8
  70. package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +15 -59
  71. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +7 -19
  72. package/framework/skills/level-0-meta/morph-verification-before-completion/scripts/check-phase-outputs.mjs +8 -8
  73. package/framework/skills/level-1-workflows/README.md +1 -1
  74. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +49 -50
  75. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +57 -123
  76. package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +5 -50
  77. package/framework/skills/level-1-workflows/morph-phase-design/references/spec-example.md +1 -1
  78. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +127 -159
  79. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/code-quality-reviewer-prompt.md +1 -1
  80. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +4 -3
  81. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/spec-reviewer-prompt.md +2 -2
  82. package/framework/skills/level-1-workflows/morph-phase-implement/references/recap-example.md +1 -1
  83. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +17 -13
  84. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +22 -40
  85. package/framework/skills/level-1-workflows/morph-phase-tasks/references/task-planning-patterns.md +143 -172
  86. package/framework/skills/level-1-workflows/morph-phase-tasks/references/tasks-example.md +5 -5
  87. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +57 -77
  88. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +1 -1
  89. package/framework/squad-templates/backend-only.json +6 -6
  90. package/framework/squad-templates/frontend-only.json +17 -8
  91. package/framework/squad-templates/full-stack.json +29 -24
  92. package/framework/standards/STANDARDS.json +1021 -2369
  93. package/framework/standards/backend/dotnet/fluent-validation-vsa.md +200 -0
  94. package/framework/standards/backend/dotnet/result-pattern.md +213 -0
  95. package/framework/standards/backend/dotnet/scalar-ui.md +172 -0
  96. package/framework/standards/backend/dotnet/scrutor.md +158 -0
  97. package/framework/standards/backend/dotnet/vsa-handler-patterns.md +274 -0
  98. package/framework/standards/frontend/nextjs/motion-patterns.md +1 -1
  99. package/framework/standards/infrastructure/supabase/mcp-setup.md +83 -193
  100. package/framework/standards/integration/mcp/mcp-tools.md +91 -77
  101. package/framework/templates/IDE-SNIPPETS.md +2 -6
  102. package/framework/templates/README.md +709 -814
  103. package/framework/templates/REGISTRY.json +223 -762
  104. package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -0
  105. package/framework/templates/code/dotnet/abstractions/error.cs +60 -0
  106. package/framework/templates/code/dotnet/abstractions/handler.cs +12 -0
  107. package/framework/templates/code/dotnet/abstractions/result.cs +74 -0
  108. package/framework/templates/code/dotnet/backend/repository.cs +148 -141
  109. package/framework/templates/code/dotnet/constants/api-tags.cs +6 -0
  110. package/framework/templates/code/dotnet/exceptions/exception-handler.cs +32 -0
  111. package/framework/templates/code/dotnet/extensions/database-extensions.cs +20 -0
  112. package/framework/templates/code/dotnet/extensions/handler-registration.cs +38 -0
  113. package/framework/templates/code/dotnet/extensions/health-checks.cs +24 -0
  114. package/framework/templates/code/dotnet/extensions/map-endpoints.cs +35 -0
  115. package/framework/templates/code/dotnet/extensions/result-extensions.cs +29 -0
  116. package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -0
  117. package/framework/templates/code/dotnet/feature/entity.cs.hbs +8 -0
  118. package/framework/templates/code/dotnet/feature/errors.cs.hbs +8 -0
  119. package/framework/templates/code/dotnet/feature/handler.cs.hbs +24 -0
  120. package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -0
  121. package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -0
  122. package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -0
  123. package/framework/templates/code/dotnet/jobs/job.cs +21 -17
  124. package/framework/templates/code/dotnet/pipelines/logging-decorator.cs +31 -0
  125. package/framework/templates/code/dotnet/pipelines/validation-decorator.cs +97 -0
  126. package/framework/templates/code/dotnet/test.cs +192 -106
  127. package/framework/templates/context/ARCHITECTURE.md +89 -0
  128. package/framework/templates/context/CONTEXT-FEATURE.md +2 -2
  129. package/framework/templates/context/CONTEXT.md +180 -181
  130. package/framework/templates/context/design-system.md +1 -5
  131. package/framework/templates/docs/onboarding.md +2 -3
  132. package/framework/templates/docs/proposal.md +171 -182
  133. package/framework/templates/docs/spec.md +1 -3
  134. package/framework/templates/docs/ui-components.md +0 -72
  135. package/framework/templates/examples/design-system-examples.md +4 -4
  136. package/framework/templates/feature/decisions.md +0 -66
  137. package/framework/templates/feature/recap.md +1 -2
  138. package/framework/templates/infrastructure/github/README.md +56 -593
  139. package/framework/templates/integrations/clerk-config.cs +0 -41
  140. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +2 -2
  141. package/framework/templates/meta-prompts/squad-leaders/backend-squad.md +1 -2
  142. package/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +83 -126
  143. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +2 -2
  144. package/framework/templates/project/validate.js +2 -4
  145. package/framework/templates/ui/design-system.css +1 -1
  146. package/framework/workflows/README.md +8 -8
  147. package/framework/workflows/configs/fast-track.json +51 -0
  148. package/framework/workflows/configs/full.json +68 -0
  149. package/framework/workflows/configs/standard.json +7 -3
  150. package/framework/workflows/docs/STORY-DRIVEN-DEVELOPMENT.md +1 -1
  151. package/framework/workflows/docs/enforcement-pipeline.md +18 -19
  152. package/framework/workflows/docs/full-morph.md +69 -76
  153. package/framework/workflows/docs/standard.md +49 -44
  154. package/framework/workflows/docs/ui-refresh.md +1 -1
  155. package/package.json +3 -3
  156. package/src/commands/agents/dispatch-agents.js +55 -116
  157. package/src/commands/context/context-refresh.js +79 -0
  158. package/src/commands/phase/phase-reset.js +1 -1
  159. package/src/commands/project/doctor.js +10 -32
  160. package/src/commands/project/init.js +12 -0
  161. package/src/commands/project/status.js +6 -12
  162. package/src/commands/scaffold/scaffold.js +131 -0
  163. package/src/commands/scope/escalate.js +1 -1
  164. package/src/commands/state/advance-phase.js +15 -29
  165. package/src/commands/state/state.js +20 -5
  166. package/src/commands/tasks/task.js +0 -30
  167. package/src/commands/validation/validate-feature.js +3 -10
  168. package/src/core/paths/output-schema.js +12 -13
  169. package/src/core/state/phase-state-machine.js +211 -217
  170. package/src/core/state/state-manager.js +9 -9
  171. package/src/lib/agents/agents-manager.js +2 -2
  172. package/src/lib/agents/output-collector.js +1 -2
  173. package/src/lib/detectors/design-system-detector.js +4 -4
  174. package/src/lib/detectors/index.js +1 -11
  175. package/src/lib/generators/architecture-scanner.js +640 -0
  176. package/src/lib/generators/context-generator.js +3 -3
  177. package/src/lib/generators/design-system-generator.js +508 -587
  178. package/src/lib/generators/index.js +12 -10
  179. package/src/lib/generators/metadata-extractor.js +386 -387
  180. package/src/lib/generators/recap-generator.js +4 -4
  181. package/src/lib/generators/scaffold-generator.js +317 -0
  182. package/src/lib/generators/settings-generator.js +0 -1
  183. package/src/lib/phase-chain/phase-validator.js +64 -42
  184. package/src/lib/stack/stack-profile.js +2 -2
  185. package/src/lib/standards/digest-builder.js +72 -285
  186. package/src/lib/tasks/task-parser.js +11 -5
  187. package/src/lib/validators/architecture/architecture-validator.js +259 -387
  188. package/src/lib/validators/content/content-validator.js +287 -287
  189. package/src/lib/validators/css/css-validator.js +340 -352
  190. package/src/lib/validators/packages/package-validator.js +347 -360
  191. package/src/lib/validators/shared/issue-counter.js +14 -18
  192. package/src/lib/validators/validation-runner.js +3 -19
  193. package/src/scripts/setup-infra.js +1 -1
  194. package/src/utils/agents-installer.js +61 -10
  195. package/src/utils/file-copier.js +1 -0
  196. package/src/utils/hooks-installer.js +11 -19
  197. package/src/utils/skills-installer.js +178 -178
  198. package/framework/agents/architecture/prompt-engineer.md +0 -195
  199. package/framework/agents/backend/api-designer.md +0 -106
  200. package/framework/agents/frontend/blazor-builder.md +0 -229
  201. package/framework/agents/frontend/nextjs-ui-specialist.md +0 -218
  202. package/framework/agents/infrastructure/azure-architect.md +0 -150
  203. package/framework/agents/infrastructure/azure-deploy-specialist.md +0 -707
  204. package/framework/agents/infrastructure/bicep-architect.md +0 -132
  205. package/framework/agents/infrastructure/container-specialist.md +0 -137
  206. package/framework/agents/infrastructure/devops-engineer.md +0 -126
  207. package/framework/agents/integrations/azure-identity.md +0 -148
  208. package/framework/agents/quality/code-analyzer.md +0 -239
  209. package/framework/agents/quality/testing-specialist.md +0 -130
  210. package/framework/hooks/claude-code/notification/approval-reminder.js +0 -57
  211. package/framework/hooks/claude-code/post-tool-use/context-refresh.js +0 -109
  212. package/framework/hooks/claude-code/post-tool-use/skill-reminder.js +0 -78
  213. package/framework/index/troubleshooting-index.json +0 -184
  214. package/framework/rules/testing-standards.md +0 -14
  215. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +0 -230
  216. package/framework/skills/level-0-meta/morph-replicate/references/blazor-html-mapping.md +0 -70
  217. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +0 -256
  218. package/framework/skills/level-1-workflows/morph-phase-clarify/references/clarifications-example.md +0 -117
  219. package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +0 -269
  220. package/framework/standards/ai-agents/blazor-ui.md +0 -364
  221. package/framework/standards/architecture/ddd/aggregates.md +0 -120
  222. package/framework/standards/architecture/ddd/bounded-contexts.md +0 -105
  223. package/framework/standards/architecture/ddd/complexity-levels.md +0 -108
  224. package/framework/standards/architecture/ddd/entities.md +0 -99
  225. package/framework/standards/architecture/ddd/ubiquitous-language.md +0 -58
  226. package/framework/standards/architecture/ddd/value-objects.md +0 -124
  227. package/framework/standards/backend/api/minimal-api.md +0 -494
  228. package/framework/standards/backend/api/rest.md +0 -492
  229. package/framework/standards/backend/authentication/passkeys.md +0 -428
  230. package/framework/standards/backend/database/ef-core.md +0 -199
  231. package/framework/standards/backend/database/migrations.md +0 -393
  232. package/framework/standards/backend/database/repository-patterns.md +0 -528
  233. package/framework/standards/backend/dotnet/async.md +0 -366
  234. package/framework/standards/backend/dotnet/core.md +0 -117
  235. package/framework/standards/backend/dotnet/di.md +0 -439
  236. package/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
  237. package/framework/standards/context/analytics.md +0 -96
  238. package/framework/standards/context/bundles.md +0 -110
  239. package/framework/standards/context/priming.md +0 -78
  240. package/framework/standards/core/architecture.md +0 -185
  241. package/framework/standards/core/coding.md +0 -214
  242. package/framework/standards/core/git-branching-strategy.md +0 -403
  243. package/framework/standards/core/git.md +0 -185
  244. package/framework/standards/core/testing.md +0 -295
  245. package/framework/standards/data/nosql/blob-storage.md +0 -102
  246. package/framework/standards/data/vector-search/azure-ai-search.md +0 -121
  247. package/framework/standards/frontend/blazor/design-checklist.md +0 -222
  248. package/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
  249. package/framework/standards/frontend/blazor/fluent-ui.md +0 -137
  250. package/framework/standards/frontend/blazor/html-conversion.md +0 -184
  251. package/framework/standards/frontend/blazor/lifecycle.md +0 -195
  252. package/framework/standards/frontend/blazor/pitfalls.md +0 -198
  253. package/framework/standards/frontend/blazor/state.md +0 -191
  254. package/framework/standards/frontend/design-system/aesthetic-direction.md +0 -266
  255. package/framework/standards/frontend/design-system/design-trends.md +0 -171
  256. package/framework/standards/infrastructure/azure/azure.md +0 -624
  257. package/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
  258. package/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
  259. package/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
  260. package/framework/standards/infrastructure/azure/services/functions.md +0 -486
  261. package/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
  262. package/framework/standards/infrastructure/azure/services/storage.md +0 -407
  263. package/framework/standards/infrastructure/vercel/vercel-database.md +0 -106
  264. package/framework/standards/integration/api/graphql.md +0 -91
  265. package/framework/standards/integration/api/grpc.md +0 -114
  266. package/framework/standards/integration/api/rest-design.md +0 -95
  267. package/framework/standards/integration/event-driven/cqrs.md +0 -101
  268. package/framework/standards/integration/event-driven/event-sourcing.md +0 -124
  269. package/framework/standards/integration/event-driven/service-bus.md +0 -95
  270. package/framework/standards/observability/logging.md +0 -131
  271. package/framework/standards/observability/metrics.md +0 -121
  272. package/framework/standards/observability/monitoring.md +0 -114
  273. package/framework/standards/observability/tracing.md +0 -132
  274. package/framework/standards/workflows/parallel-execution.md +0 -112
  275. package/framework/standards/workflows/thread-management.md +0 -113
  276. package/framework/templates/code/dotnet/backend/service.cs +0 -139
  277. package/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
  278. package/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
  279. package/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
  280. package/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
  281. package/framework/templates/code/dotnet/contracts/contracts-level1.cs +0 -69
  282. package/framework/templates/code/dotnet/contracts/contracts-level2.cs +0 -86
  283. package/framework/templates/code/dotnet/contracts/contracts-level3.cs +0 -41
  284. package/framework/templates/code/dotnet/frontend/component.razor +0 -239
  285. package/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
  286. package/framework/templates/infrastructure/azure/README.md +0 -286
  287. package/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
  288. package/framework/templates/infrastructure/azure/app-service.bicep +0 -164
  289. package/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
  290. package/framework/templates/infrastructure/azure/container-app.bicep +0 -156
  291. package/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
  292. package/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
  293. package/framework/templates/infrastructure/azure/deploy.sh +0 -208
  294. package/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
  295. package/framework/templates/infrastructure/azure/main.bicep +0 -189
  296. package/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
  297. package/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
  298. package/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
  299. package/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
  300. package/framework/templates/infrastructure/azure/storage.bicep +0 -106
  301. package/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
  302. package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
  303. package/framework/templates/integrations/azure-identity-config.cs +0 -288
  304. package/framework/templates/project-structure/dotnet-ddd.md +0 -70
  305. package/framework/templates/saas/subscription.cs +0 -347
  306. package/framework/templates/saas/tenant.cs +0 -338
  307. package/framework/templates/ui/FluentDesignTheme.cs +0 -149
  308. package/framework/templates/ui/MudTheme.cs +0 -281
  309. package/framework/workflows/configs/nodejs-cli.json +0 -40
  310. package/src/commands/standards/context-budget.js +0 -89
  311. package/src/lib/standards/index.js +0 -7
  312. package/src/lib/standards/standards-context-injector.js +0 -302
  313. package/src/lib/validators/blazor/blazor-concurrency-analyzer.js +0 -316
  314. package/src/lib/validators/blazor/blazor-state-validator.js +0 -279
  315. package/src/lib/validators/blazor/blazor-validator.js +0 -369
  316. package/src/lib/validators/blazor/index.js +0 -9
@@ -57,9 +57,9 @@ Do NOT proceed until all phases are complete and all gates approved.
57
57
  Read all prerequisite files in a single parallel call — every file listed here matters for implementation quality:
58
58
 
59
59
  ```
60
- Read: .morph/features/$ARGUMENTS/1-design/spec.md (→ functional requirements, API contracts)
61
- + Read: .morph/features/$ARGUMENTS/1-design/contracts.cs (or contracts.ts / contracts-vsa.cs → C# interfaces)
62
- + Read: .morph/features/$ARGUMENTS/1-design/decisions.md (→ ADRs, architectural choices)
60
+ Read: .morph/features/$ARGUMENTS/2-design/spec.md (→ functional requirements, API contracts)
61
+ + Read: .morph/features/$ARGUMENTS/2-design/contracts.cs (or contracts.ts / contracts-vsa.cs → C# interfaces)
62
+ + Read: .morph/features/$ARGUMENTS/2-design/decisions.md (→ ADRs, architectural choices)
63
63
  + Read: .morph/features/$ARGUMENTS/3-plan/plan.md (→ TDD structure, execution strategy)
64
64
  + Read: .morph/features/$ARGUMENTS/4-tasks/tasks.md (→ task breakdown with T### IDs)
65
65
  + Read: .morph/config/config.json (→ architecture.style for VSA routing)
@@ -82,7 +82,6 @@ cat .morph/config/config.json | grep -A3 '"architecture"'
82
82
  ```
83
83
 
84
84
  - **`"vertical-slice"`** → follow VSA implementation patterns from `framework/standards/architecture/vertical-slice/vertical-slice.md`. Each task is a complete slice (Handler + Validator + Endpoint in one folder).
85
- - **Otherwise** → follow DDD/Clean Architecture patterns. Tasks map to domain layers.
86
85
 
87
86
  ### 4. Get agent dispatch config
88
87
 
@@ -96,7 +95,7 @@ This shows which agents are active for implementation and how tasks can be group
96
95
  morph-spec dispatch-agents $ARGUMENTS implement
97
96
  ```
98
97
 
99
- The JSON output includes `shouldDispatch`, `agents[]`, and `taskGroups` for multi-agent coordination.
98
+ The JSON output includes `shouldDispatch`, `recommended` (agents by group), and `tasks` (task IDs by group) for multi-agent coordination.
100
99
 
101
100
  ---
102
101
 
@@ -142,7 +141,6 @@ morph-spec task start $ARGUMENTS {task-id}
142
141
  # - Follow spec.md and contracts
143
142
  # - Follow coding standards from framework/standards/ and .morph/context/
144
143
  # - For VSA: create all slice files in one folder (Handler + Validator + Endpoint)
145
- # - For DDD: implement in the correct domain layer
146
144
 
147
145
  # 3. Verify before completing — run validate-feature or check your work
148
146
  # matches the spec and contracts before marking done
@@ -1,269 +1,192 @@
1
- ---
2
- description: Validate project readiness before Azure deploy — checks specs, contracts, tests, and infrastructure
3
- argument-hint: [feature-name]
4
- allowed-tools: Read, Bash, Glob, Grep
5
- ---
6
-
7
- # Pre-Flight Check for Azure Deployment
8
-
9
- Validates project readiness before deploying to Azure.
10
-
11
- ## Usage
12
-
13
- ```
14
- /morph-preflight azure
15
- ```
16
-
17
- ## Purpose
18
-
19
- Detect problems **before** deploy that would cause production failures. Saves time and avoids debugging in Azure environment.
20
-
21
- ---
22
-
23
- ## MORPH-SPEC Validation (run before all other checks)
24
-
25
- These checks verify that the morph-spec workflow is complete for the feature being deployed. Skip only if deploying a non-morph-spec project.
26
-
27
- ```bash
28
- # Verify implementation is complete
29
- morph-spec state get {feature}
30
- morph-spec approval-status {feature}
31
- morph-spec validate-feature {feature}
32
- ```
33
-
34
- | Check | Command | Pass Criteria |
35
- |-------|---------|---------------|
36
- | Phase is implement or later | `state get` | phase derived as `implement` |
37
- | All gates approved | `approval-status` | design, plan, tasks gates all approved |
38
- | Feature validation passes | `validate-feature` | 100% pass rate |
39
- | All tasks complete | `state get` → tasks array | 0 tasks in `pending` or `in_progress` |
40
- | Recap generated | Read `5-implement/recap.md` | File exists and is non-empty |
41
-
42
- **If any MORPH check fails:** Show which check failed and recommend: `Run /morph-apply {feature} to complete implementation before deploying.`
43
-
44
- ---
45
-
46
- ## Test Suite (run before infrastructure checks)
47
-
48
- ```bash
49
- dotnet test --verbosity normal
50
- ```
51
-
52
- **Pass criteria:** 100% test pass rate. Zero tolerance — any failing test blocks deployment. If tests fail, categorize each failure:
53
- - **Genuine bug** → fix implementation
54
- - **Flaky/environment test** → isolate and fix
55
- - **Outdated assertion** → update test to match correct new behavior
56
-
57
- ---
58
-
59
- ## Validations Performed
60
-
61
- ### 1. Package Version Conflicts
62
-
63
- **What it checks:**
64
- - `Azure.Identity` explicitly specified
65
- - No version conflicts (NU1605, NU1608)
66
- - Critical packages with compatible versions
67
-
68
- **How to check:**
69
- ```bash
70
- dotnet restore --verbosity normal 2>&1 | grep -E "(NU1605|NU1608|warning)"
71
- ```
72
-
73
- **Common fix:**
74
- ```xml
75
- <PackageReference Include="Azure.Identity" Version="1.14.2" />
76
- ```
77
-
78
- ---
79
-
80
- ### 2. EF Core Migrations
81
-
82
- **What it checks:**
83
- - No pending model changes
84
- - Applicable migrations exist
85
- - Migration scripts are valid
86
-
87
- **How to check:**
88
- ```bash
89
- dotnet ef migrations has-pending-model-changes \
90
- --project src/Infrastructure \
91
- --startup-project src/Web
92
- ```
93
-
94
- **Common fix:**
95
- ```bash
96
- dotnet ef migrations add <MigrationName> \
97
- --project src/Infrastructure \
98
- --startup-project src/Web
99
- ```
100
-
101
- ---
102
-
103
- ### 3. Dockerfile Validation (if Container Apps)
104
-
105
- **What it checks:**
106
- - Dockerfile exists
107
- - Base image is valid
108
- - Multi-stage build configured
109
- - EXPOSE ports correct
110
- - ENTRYPOINT defined
111
-
112
- **How to check:**
113
- ```bash
114
- docker build --check .
115
- # Or manual Dockerfile validation
116
- ```
117
-
118
- ---
119
-
120
- ### 4. Blazor .NET 10 Assets
121
-
122
- **What it checks:**
123
- - `RequiresAspNetWebAssets` is `true` (if Blazor + .NET 10)
124
- - Static web assets configured correctly
125
-
126
- **How to check:**
127
- ```bash
128
- grep -r "RequiresAspNetWebAssets" *.csproj
129
- ```
130
-
131
- **Fix:**
132
- ```xml
133
- <PropertyGroup>
134
- <RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>
135
- </PropertyGroup>
136
- ```
137
-
138
- ---
139
-
140
- ### 5. Bicep Syntax Validation
141
-
142
- **What it checks:**
143
- - `.bicep` files without syntax errors
144
- - Required parameters defined
145
- - Resources with valid names
146
-
147
- **How to check:**
148
- ```bash
149
- az bicep build --file infra/main.bicep --stdout > /dev/null
150
- ```
151
-
152
- ---
153
-
154
- ### 6. Key Vault Configuration
155
-
156
- **What it checks:**
157
- - Key Vault URI configured in `appsettings.json` or environment
158
- - Key Vault not conditioned on environment (common bug)
159
- - Managed Identity enabled
160
-
161
- **How to check:**
162
- ```bash
163
- grep -r "KeyVaultUri\|AzureKeyVault" appsettings*.json
164
- grep -r "IsDevelopment()" Program.cs | grep -i keyvault
165
- ```
166
-
167
- **Anti-pattern to detect:**
168
- ```csharp
169
- // ❌ WRONG - Doesn't load Key Vault in dev!
170
- if (!builder.Environment.IsDevelopment())
171
- {
172
- builder.Configuration.AddAzureKeyVault(...);
173
- }
174
- ```
175
-
176
- ---
177
-
178
- ### 7. Connection Strings Security
179
-
180
- **What it checks:**
181
- - Connection strings not hardcoded in code
182
- - Secrets in Key Vault or User Secrets
183
- - No credentials in `appsettings.json` (except Development)
184
-
185
- **How to check:**
186
- ```bash
187
- # Detect passwords in appsettings
188
- grep -rE "(Password=|Pwd=|Secret=)" appsettings*.json | grep -v Development
189
- ```
190
-
191
- ---
192
-
193
- ## Example Output
194
-
195
- ```
196
- 🔍 MORPH Pre-Flight Check: Azure Deployment
197
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
198
-
199
- ✅ Packages: No version conflicts detected
200
- ✅ Migrations: No pending model changes
201
- ✅ Dockerfile: Valid multi-stage build
202
- ✅ Blazor Assets: RequiresAspNetWebAssets=true
203
- ✅ Bicep: Syntax valid
204
- ❌ Key Vault: URI not configured in appsettings.Production.json
205
- ⚠️ Connection Strings: Found password in appsettings.Staging.json
206
-
207
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
208
-
209
- 📋 Summary: 5 passed, 1 failed, 1 warning
210
-
211
- ❌ BLOCKED: Fix Key Vault configuration before deploy!
212
-
213
- Recommended fixes:
214
- 1. Add KeyVaultUri to appsettings.Production.json
215
- 2. Move password from appsettings.Staging.json to Key Vault
216
- ```
217
-
218
- ---
219
-
220
- ## Usage Workflow
221
-
222
- ### Before creating PR for production
223
-
224
- ```bash
225
- /morph-preflight azure
226
- ```
227
-
228
- ### In CI/CD pipeline
229
-
230
- ```yaml
231
- - script: |
232
- # Package check
233
- dotnet restore 2>&1 | grep -E "NU1605|NU1608" && exit 1
234
-
235
- # Migration check
236
- dotnet ef migrations has-pending-model-changes \
237
- --project src/Infrastructure \
238
- --startup-project src/Web
239
- if [ $? -ne 0 ]; then exit 1; fi
240
-
241
- # Bicep check
242
- az bicep build --file infra/main.bicep --stdout > /dev/null
243
- if [ $? -ne 0 ]; then exit 1; fi
244
-
245
- echo "Pre-flight checks passed!"
246
- displayName: 'Pre-flight validation'
247
- ```
248
-
249
- ---
250
-
251
- ## Future Validations (Roadmap)
252
-
253
- - [ ] Cost estimation validation (within budget)
254
- - [ ] RBAC permissions check
255
- - [ ] Network security rules validation
256
- - [ ] Health probe endpoint exists
257
- - [ ] Application Insights configured
258
-
259
- ---
260
-
261
- ## References
262
-
263
- - [azure.md](../../standards/azure.md) - Azure Standards
264
- - [dotnet10-migration.md](../../standards/dotnet10-migration.md) - Breaking changes .NET 10
265
- - [blazor-efcore.md](../../../../framework/standards/blazor-efcore.md) - EF Core patterns
266
-
267
- ---
268
-
269
- *MORPH-SPEC by Polymorphism Tech*
1
+ ---
2
+ description: Validate project readiness before deploy — checks specs, contracts, tests, Docker, Supabase, and EasyPanel configuration
3
+ argument-hint: [feature-name]
4
+ allowed-tools: Read, Bash, Glob, Grep
5
+ ---
6
+
7
+ # Pre-Flight Check for Deployment
8
+
9
+ Validates project readiness before deploying to Docker/EasyPanel + Supabase.
10
+
11
+ ## Usage
12
+
13
+ ```
14
+ /morph-preflight
15
+ ```
16
+
17
+ ## Purpose
18
+
19
+ Detect problems **before** deploy that would cause production failures. Saves time and avoids debugging in production.
20
+
21
+ ---
22
+
23
+ ## MORPH-SPEC Validation (run before all other checks)
24
+
25
+ These checks verify that the morph-spec workflow is complete for the feature being deployed.
26
+
27
+ ```bash
28
+ # Verify implementation is complete
29
+ morph-spec state get {feature}
30
+ morph-spec approval-status {feature}
31
+ morph-spec validate-feature {feature}
32
+ ```
33
+
34
+ | Check | Command | Pass Criteria |
35
+ |-------|---------|---------------|
36
+ | Phase is implement or later | `state get` | phase derived as `implement` |
37
+ | All gates approved | `approval-status` | design, plan, tasks gates all approved |
38
+ | Feature validation passes | `validate-feature` | 100% pass rate |
39
+ | All tasks complete | `state get` → tasks | 0 tasks in `pending` or `in_progress` |
40
+ | Recap generated | Read `5-implement/recap.md` | File exists and is non-empty |
41
+
42
+ **If any MORPH check fails:** Show which check failed and recommend: `Run /morph-apply {feature} to complete implementation before deploying.`
43
+
44
+ ---
45
+
46
+ ## Test Suite (run before infrastructure checks)
47
+
48
+ ```bash
49
+ dotnet test --verbosity normal
50
+ ```
51
+
52
+ **Pass criteria:** 100% test pass rate. Zero tolerance — any failing test blocks deployment.
53
+
54
+ ---
55
+
56
+ ## Validations Performed
57
+
58
+ ### 1. Package Version Conflicts
59
+
60
+ **What it checks:**
61
+ - No version conflicts (NU1605, NU1608)
62
+ - Critical packages with compatible versions
63
+
64
+ **How to check:**
65
+ ```bash
66
+ dotnet restore --verbosity normal 2>&1 | grep -E "(NU1605|NU1608|warning)"
67
+ ```
68
+
69
+ ---
70
+
71
+ ### 2. Supabase Migrations
72
+
73
+ **What it checks:**
74
+ - No pending migrations
75
+ - RLS policies defined for all public tables
76
+ - Database schema matches expected state
77
+
78
+ **How to check:**
79
+ ```bash
80
+ # Check for pending migrations
81
+ npx supabase db diff --local
82
+
83
+ # Verify RLS is enabled on all tables
84
+ npx supabase db lint --level warning
85
+ ```
86
+
87
+ **Common fix:**
88
+ ```bash
89
+ npx supabase migration new <migration-name>
90
+ ```
91
+
92
+ ---
93
+
94
+ ### 3. Dockerfile Validation
95
+
96
+ **What it checks:**
97
+ - Dockerfile exists for each service (API, Web)
98
+ - Multi-stage build configured
99
+ - EXPOSE ports correct
100
+ - ENTRYPOINT defined
101
+ - .dockerignore present
102
+
103
+ **How to check:**
104
+ ```bash
105
+ # Validate API Dockerfile
106
+ docker build --check -f Dockerfile.api .
107
+
108
+ # Validate Web Dockerfile
109
+ docker build --check -f Dockerfile.web .
110
+ ```
111
+
112
+ ---
113
+
114
+ ### 4. Docker Compose
115
+
116
+ **What it checks:**
117
+ - `docker-compose.yml` exists and is valid
118
+ - All services have health checks
119
+ - Environment variables reference `.env` (not hardcoded)
120
+ - Volumes mapped correctly
121
+
122
+ **How to check:**
123
+ ```bash
124
+ docker compose config --quiet
125
+ ```
126
+
127
+ ---
128
+
129
+ ### 5. Environment Variables & Secrets
130
+
131
+ **What it checks:**
132
+ - Connection strings not hardcoded in code
133
+ - Secrets in environment variables (not in appsettings)
134
+ - `.env.example` exists with all required vars documented
135
+ - No credentials in source code
136
+
137
+ **How to check:**
138
+ ```bash
139
+ # Detect passwords in appsettings
140
+ grep -rE "(Password=|Pwd=|Secret=|sk_live|pk_live)" appsettings*.json src/ --include="*.cs" --include="*.json" | grep -v Development
141
+
142
+ # Verify .env.example exists
143
+ test -f .env.example && echo "OK" || echo "MISSING .env.example"
144
+ ```
145
+
146
+ ---
147
+
148
+ ### 6. EasyPanel Configuration
149
+
150
+ **What it checks:**
151
+ - Services correctly defined for EasyPanel
152
+ - Health check endpoints exist (`/health` or `/healthz`)
153
+ - Port mappings match Dockerfile EXPOSE
154
+
155
+ **How to check:**
156
+ ```bash
157
+ # Verify health endpoint exists in code
158
+ grep -rn "MapGet.*health" src/ --include="*.cs"
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Example Output
164
+
165
+ ```
166
+ MORPH Pre-Flight Check: Deployment
167
+
168
+ Packages: No version conflicts detected
169
+ Migrations: No pending changes
170
+ Dockerfile: Valid multi-stage build (API + Web)
171
+ Docker Compose: Valid configuration
172
+ Secrets: No hardcoded credentials found
173
+ EasyPanel: Health endpoint found at /healthz
174
+
175
+ Summary: 6 passed, 0 failed, 0 warnings
176
+
177
+ READY TO DEPLOY
178
+ ```
179
+
180
+ ---
181
+
182
+ ## Usage Workflow
183
+
184
+ ### Before creating PR for production
185
+
186
+ ```bash
187
+ /morph-preflight
188
+ ```
189
+
190
+ ---
191
+
192
+ *MORPH-SPEC by Polymorphism Tech*