@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
@@ -28,31 +28,9 @@
28
28
 
29
29
  ---
30
30
 
31
- ## Phase 1 — Setup
32
-
33
- **Goal:** Load context, detect stack, activate agents
34
-
35
- | Action | Tool | Why |
36
- |--------|------|-----|
37
- | Verify feature state | **Bash** `morph-spec state get {feature}` | CLI command |
38
- | Detect agents + standards | **Read** `.morph/framework/agents.json` → match keywords → **Bash** `morph-spec state add-agent {f} {id}` per match | Keyword matching is fast inline |
39
- | Read project context | **Read** `.morph/context/README.md` | Single file |
40
- | Read config | **Read** `.morph/config.json` | Single file |
41
- | Scan project structure | **Glob** `src/**/*.{ts,tsx,cs}` | Understand codebase layout |
42
- | Get repo metadata | **GitHub MCP** `get_repo()` | Structured repo info (if MCP available) |
43
- | Get dispatch config for next phases | **Bash** `morph-spec dispatch-agents {feature} design` | Shows which agents will be dispatched in design phase |
44
- | Update state | **Bash** `morph-spec state set ...` | CLI command |
45
-
46
- **MCPs used:** GitHub (optional — for repo metadata).
47
-
48
- **Anti-patterns:**
49
- - ❌ Calling `detect-agents` CLI (it doesn't exist — read `.morph/framework/agents.json` directly)
50
- - ❌ Task agent to detect project stack inline (keyword matching is fast enough directly)
51
- - ❌ WebSearch for project info (it's local, use Read/Glob)
52
-
53
31
  ---
54
32
 
55
- ## Phase 1.5 — UI/UX Design
33
+ ## Phase 2 — UI/UX Design
56
34
 
57
35
  **Goal:** Create UI mockups, design system, component specs, user flows
58
36
 
@@ -80,7 +58,7 @@
80
58
 
81
59
  ---
82
60
 
83
- ## Phase 2 — Design (Technical Spec)
61
+ ## Phase 3 — Design (Technical Spec)
84
62
 
85
63
  **Goal:** Analyze schema, create spec.md, contracts-level{N}.cs, decisions.md
86
64
 
@@ -88,11 +66,11 @@
88
66
  |--------|------|-----|
89
67
  | Read proposal + UI specs | **Read** output files | Single known files |
90
68
  | **Get dispatch config** | **Bash** `morph-spec dispatch-agents {feature} design` | Which agents to spawn + their task prompts |
91
- | **Dispatch domain-architect** (parallel) | **Task** subagent with prompt from dispatch config | Analyze DDD complexity independently |
69
+ | **Dispatch architecture analyst** (parallel) | **Task** subagent with prompt from dispatch config | Analyze architecture complexity independently |
92
70
  | **Dispatch tech leads** (parallel) | **Task** subagents (dotnet-senior, nextjs-expert, etc.) | Validate architecture independently |
93
- | Get database schema | **Supabase MCP** `list_tables()`, `get_table_schema()` | **PREFERRED** — real schema data |
94
- | Get table relationships | **Supabase MCP** `get_relationships()` | Real FK/constraint data |
95
- | Get RLS policies | **Supabase MCP** `query()` with pg_policies | Security analysis |
71
+ | Get database schema | **Bash** `npx supabase db dump --local` or `psql <DB_URL>` | **PREFERRED** — real local schema |
72
+ | Get table relationships | **Bash** `psql <DB_URL>` FK queries | Real FK/constraint data |
73
+ | Get RLS policies | **Bash** `psql <DB_URL>` pg_policies query | Security analysis |
96
74
  | **Fallback:** Find query files | **Grep** `\.from\(` or `\.select\(` in `*.ts,*.tsx,*.js,*.cs` | When no DB MCP available |
97
75
  | **Fallback:** Find type definitions | **Glob** `src/**/types/**/*.ts` or `**/Entities/**/*.cs` | When no DB MCP available |
98
76
  | **Fallback:** Read query/type files | **Read** each matched file | Extract field names manually |
@@ -105,45 +83,22 @@
105
83
  | Create schema-analysis.md | **Write** to output directory | Document findings |
106
84
  | Update state | **Bash** `morph-spec state mark-output {feature} schemaAnalysis && morph-spec state mark-output {feature} spec && morph-spec state mark-output {feature} contracts && morph-spec state mark-output {feature} decisions` | CLI command |
107
85
 
108
- **MCPs used:** Supabase (schema analysis), Context7 (library research), GitHub (code search).
86
+ **Tools used:** Supabase CLI / psql (schema analysis — local Docker), Context7 (library research), GitHub (code search).
109
87
 
110
- **Parallel dispatch opportunity:** Domain complexity analysis (domain-architect) and schema analysis (phase-codebase-analysis) are **independent** — run them as parallel Task subagents to cut design phase time.
88
+ **Parallel dispatch opportunity:** Architecture complexity analysis and schema analysis (phase-codebase-analysis) are **independent** — run them as parallel Task subagents to cut design phase time.
111
89
 
112
90
  **Anti-patterns:**
113
91
  - ❌ Guessing field names without checking schema (use MCP or Grep first!)
114
92
  - ❌ Task agent to read a single spec file (use Read directly)
115
- - ❌ WebSearch for database schema (use Supabase MCP or code analysis)
93
+ - ❌ WebSearch for database schema (use Supabase CLI/psql or code analysis)
116
94
  - ❌ Manually writing contracts-level{N}.cs from scratch (use template render)
117
95
  - ❌ Running domain analysis and schema analysis sequentially (they're independent — run in parallel)
118
96
 
119
97
  ---
120
98
 
121
- ## Phase 3 — Clarify
122
-
123
- **Goal:** Identify ambiguities, ask clarification questions, update spec
124
-
125
- | Action | Tool | Why |
126
- |--------|------|-----|
127
- | Read spec.md in detail | **Read** spec.md | Full content analysis |
128
- | Read contracts.cs | **Read** contracts.cs | Check contract consistency |
129
- | Read schema-analysis.md | **Read** schema-analysis.md | Cross-reference with spec |
130
- | Verify library capabilities | **Context7 MCP** `query_docs()` | Confirm feasibility of spec requirements |
131
- | Check known issues/limitations | **GitHub MCP** `search_issues()` | Library bugs affecting design |
132
- | Research edge case behavior | **WebSearch** | External knowledge for edge cases |
133
- | Update spec with clarifications | **Edit** spec.md | Preserve existing content, add sections |
134
- | Create clarifications.md | **Bash** `morph-spec template render docs/clarifications ...` | Use template |
135
- | Update state | **Bash** `morph-spec state mark-output {feature} clarifications` | CLI command |
136
-
137
- **MCPs used:** Context7 (validate feasibility), GitHub (known issues).
138
-
139
- **Anti-patterns:**
140
- - ❌ Task agent to read spec (just Read it directly)
141
- - ❌ Rewriting spec from scratch (use Edit to update sections)
142
- - ❌ Skipping schema-analysis.md cross-reference (critical for accuracy)
143
-
144
99
  ---
145
100
 
146
- ## Phase 4 — Tasks
101
+ ## Phase 6 — Tasks
147
102
 
148
103
  **Goal:** Break spec into tasks, define dependencies, set checkpoints
149
104
 
@@ -171,7 +126,7 @@
171
126
 
172
127
  ---
173
128
 
174
- ## Phase 5 — Implement
129
+ ## Phase 7 — Implement
175
130
 
176
131
  **Goal:** Implement tasks, checkpoint every 3, create recap
177
132
 
@@ -183,12 +138,13 @@
183
138
  | Create new files | **Write** new source files | New entities, services, pages |
184
139
  | Modify existing files | **Edit** existing source files | Add features to existing code |
185
140
  | Look up API during coding | **Context7 MCP** `query_docs()` | Accurate library usage |
186
- | Run database migrations | **Supabase MCP** `query()` | DDL statements directly |
141
+ | Run database migrations | **Bash** `npx supabase migration up --local` | DDL via psql |
187
142
  | **Fallback:** Run migrations | **Bash** `npx supabase migration ...` or `dotnet ef ...` | CLI tools |
188
143
  | Build project | **Bash** `dotnet build` or `npm run build` | Verify compilation |
189
144
  | Run tests | **Bash** `dotnet test` or `npm test` | Verify implementation |
190
145
  | Checkpoint validation | **Bash** `morph-spec checkpoint ...` | Every 3 tasks |
191
- | Create RLS policies | **Supabase MCP** `query()` | Security policies |
146
+ | Create RLS policies | **Bash** write SQL migration + `npx supabase migration up --local` | Security policies |
147
+ | Manage containers | **Bash** `docker ps`, `docker logs`, `docker compose` | Container health + debugging |
192
148
  | Create infrastructure | **Bash** `az bicep ...` or Bicep files via Write | IaC |
193
149
  | Create PR | **GitHub MCP** `create_pull_request()` or **Bash** `gh pr create` | Ship code |
194
150
  | Mark task done | **Bash** `morph-spec task done T001` | State tracking |
@@ -197,7 +153,7 @@
197
153
  | Screenshot para recap.md | **Playwright MCP** `browser_take_screenshot()` | Manual screenshot |
198
154
  | Mark recap output | **Bash** `morph-spec state mark-output {feature} recap` | CLI command |
199
155
 
200
- **MCPs used:** Supabase (migrations, RLS), Context7 (API lookup), GitHub (PRs), Playwright (smoke test, verification).
156
+ **Tools used:** Supabase CLI (migrations, RLS — local Docker), Context7 (API lookup), GitHub (PRs), Playwright (smoke test, verification).
201
157
 
202
158
  **Parallel dispatch threshold:**
203
159
  - `tasks.total ≥ 6` AND feature spans 2+ domains (e.g. `dotnet-senior` + `nextjs-expert`) → dispatch parallel implementers
@@ -30,16 +30,10 @@ allowed-tools: Read, Bash, Glob, Grep
30
30
  - [ ] `morph-spec state get {feature}` shows `phase: proposal`
31
31
  - [ ] `morph-spec state mark-output {feature} proposal` was called
32
32
 
33
- ### Phase 1 — Setup
33
+ ### Phase 1 — UI/UX (if applicable)
34
34
 
35
- - [ ] `morph-spec state get {feature}` shows `activeAgents` populated
36
- - [ ] Stack and architecture confirmed in context
37
- - [ ] State updated to `phase: setup`
38
-
39
- ### Phase 1.5 — UI/UX (if applicable)
40
-
41
- - [ ] `ui-design-system.md` exists with color tokens, typography, spacing
42
- - [ ] `ui-mockups.md` exists with wireframes/ASCII mockups
35
+ - [ ] `design-system.md` exists with color tokens, typography, spacing
36
+ - [ ] `mockups.md` exists with wireframes/ASCII mockups
43
37
  - [ ] `morph-spec validate-feature {feature} --phase uiux` passes
44
38
 
45
39
  ### Phase 2 — Design
@@ -47,16 +41,10 @@ allowed-tools: Read, Bash, Glob, Grep
47
41
  - [ ] `spec.md` contains: Overview, Functional Requirements, Technical Architecture, Data Model
48
42
  - [ ] `contracts.cs` exists with DTOs matching `schema-analysis.md`
49
43
  - [ ] `decisions.md` contains at least 1 ADR
44
+ - [ ] Quality + satisfaction score ≥ 85 (or user finalized)
50
45
  - [ ] `morph-spec validate-feature {feature} --phase design` passes
51
46
 
52
- ### Phase 3 — Clarify
53
-
54
- - [ ] All clarification questions answered by user
55
- - [ ] `spec.md` updated with Clarifications section
56
- - [ ] `clarifications.md` exists in `1-design/`
57
- - [ ] No unresolved ambiguities in spec
58
-
59
- ### Phase 4 — Plan
47
+ ### Phase 3 — Plan
60
48
 
61
49
  - [ ] `plan.md` exists in `.morph/features/{feature}/3-plan/`
62
50
  - [ ] Plan contains: Goal, Architecture, Execution Strategy, Task Groups
@@ -65,14 +53,14 @@ allowed-tools: Read, Bash, Glob, Grep
65
53
  - [ ] `morph-spec state mark-output {feature} plan` was called
66
54
  - [ ] User approved plan via `morph-spec approve {feature} plan`
67
55
 
68
- ### Phase 5 — Tasks
56
+ ### Phase 6 — Tasks
69
57
 
70
58
  - [ ] `tasks.md` exists
71
59
  - [ ] All tasks have: ID, title, description, dependencies
72
60
  - [ ] Checkpoints defined (every 3 tasks)
73
61
  - [ ] `morph-spec state set {feature} tasks.total N` called
74
62
 
75
- ### Phase 6 — Implement
63
+ ### Phase 7 — Implement
76
64
 
77
65
  - [ ] All tasks marked as completed
78
66
  - [ ] Build succeeds (`npm run build` or `dotnet build`)
@@ -23,16 +23,16 @@ const PHASE_OUTPUTS = {
23
23
  { file: '0-proposal/proposal.md', required: true },
24
24
  ],
25
25
  design: [
26
- { file: '1-design/spec.md', required: true },
27
- { file: '1-design/contracts.cs', required: true },
28
- { file: '1-design/decisions.md', required: true },
29
- { file: '1-design/schema-analysis.md', required: false },
26
+ { file: '2-design/spec.md', required: true },
27
+ { file: '2-design/contracts.cs', required: true },
28
+ { file: '2-design/decisions.md', required: true },
29
+ { file: '2-design/schema-analysis.md', required: false },
30
30
  ],
31
31
  uiux: [
32
- { file: '2-ui/design-system.md', required: true },
33
- { file: '2-ui/mockups.md', required: true },
34
- { file: '2-ui/components.md', required: true },
35
- { file: '2-ui/flows.md', required: false },
32
+ { file: '1-ui/design-system.md', required: true },
33
+ { file: '1-ui/mockups.md', required: true },
34
+ { file: '1-ui/components.md', required: true },
35
+ { file: '1-ui/flows.md', required: false },
36
36
  ],
37
37
  tasks: [
38
38
  { file: '4-tasks/tasks.md', required: true },
@@ -4,4 +4,4 @@ Phase orchestration and workflow management.
4
4
 
5
5
  **Purpose:** Skills that implement MORPH workflow phases (FASE 0-6).
6
6
 
7
- **Examples:** phase-setup, phase-design, phase-uiux
7
+ **Examples:** phase-design, phase-uiux, phase-plan, phase-implement
@@ -3,7 +3,7 @@ name: morph-phase-codebase-analysis
3
3
  description: MORPH-SPEC Design sub-phase that analyzes existing codebase and database schema, producing schema-analysis.md with real column names, types, relationships, and field mismatches. Use at the start of Design phase before generating contracts.cs to prevent incorrect field names or types.
4
4
  user-invocable: false
5
5
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
- cliVersion: "4.12.0"
6
+ cliVersion: "4.14.0"
7
7
  ---
8
8
 
9
9
  # MORPH Codebase Analysis - Design Sub-phase
@@ -15,7 +15,7 @@ Automates existing code analysis to generate `schema-analysis.md` with real data
15
15
 
16
16
  ## Prerequisites
17
17
 
18
- - [ ] Phase 1 (Setup) completed
18
+ - [ ] Proposal phase completed
19
19
  - [ ] Feature has approved `proposal.md`
20
20
  - [ ] Project context loaded (stack, agents)
21
21
 
@@ -26,17 +26,17 @@ Automates existing code analysis to generate `schema-analysis.md` with real data
26
26
 
27
27
  | Action | Tool | Alternative |
28
28
  |------|------------|-------------|
29
- | List database tables | **Supabase MCP** `list_tables()` | **Grep** `.from(` in code |
30
- | Get table schema | **Supabase MCP** `get_table_schema()` | **Read** type definitions |
31
- | Get FK relationships | **Supabase MCP** `get_relationships()` | **Grep** JOIN/FK patterns |
32
- | Get RLS policies | **Supabase MCP** `query()` | **Read** policy files |
29
+ | List database tables | **Bash** `npx supabase db dump --local` or `psql <DB_URL>` | **Grep** `.from(` in code |
30
+ | Get table schema | **Bash** `psql <DB_URL> -c "SELECT ... FROM information_schema.columns"` | **Read** type definitions |
31
+ | Get FK relationships | **Bash** `psql <DB_URL> -c "SELECT ... FROM information_schema.table_constraints"` | **Grep** JOIN/FK patterns |
32
+ | Get RLS policies | **Bash** `psql <DB_URL> -c "SELECT ... FROM pg_policies"` | **Read** policy files |
33
33
  | Find queries in code | **Grep** `\.from\(` in `*.ts,*.tsx,*.js,*.cs` | — |
34
34
  | Find type definitions | **Glob** `src/**/types/**/*.ts` or `**/Entities/**/*.cs` | — |
35
35
  | Read found files | **Read** each file | — |
36
36
  | Complex multi-file analysis | **Task** (subagent Explore) | Read individual |
37
37
  | Generate schema-analysis.md | **Write** using template | **Bash** template render |
38
38
 
39
- **MCPs for this phase:** Supabase (schema — **PRIORITY**), Generic database MCPs.
39
+ **Tools for this phase:** Supabase CLI / psql (schema — **PRIORITY**, local Docker), Generic database CLIs.
40
40
 
41
41
  ---
42
42
 
@@ -48,57 +48,56 @@ Automates existing code analysis to generate `schema-analysis.md` with real data
48
48
  Verify first with a test call before attempting to use it.
49
49
 
50
50
  ```
51
- 1. IF Supabase MCP configured in settings.json:
52
- → Try mcp__supabase__list_tables() with implicit timeout
53
- → IF returns valid data (array of tables with content):
54
- → Use Method A (direct MCP)
55
- → IF returns error, timeout, empty array, or inaccessible data:
56
- → Log: "Supabase MCP configured but inaccessible (CloudSQL? Auth? Permissions?)"
57
- → Use Method B (static code analysis)
58
-
59
- 2. IF Database MCP (other) configured:
60
- → Test connectivity with trivial query before using
61
- → IF OK: Use adapted Method A
62
- → IF fails: Use Method B
63
-
64
- 3. IF no MCP available:
51
+ 0. **Docker health check:** Run `docker info --format '{{.ServerVersion}}'` to verify Docker is running.
52
+ → IF Docker is not running → warn user: "Docker Desktop not running — Supabase local requires Docker."
53
+ → Ask user via AskUserQuestion: start Docker or fall back to Method B.
54
+
55
+ 1. IF Supabase project detected (supabase/ dir exists OR config.json stack includes supabase):
56
+ → Run `npx supabase status` to verify local Docker is running
57
+ → IF running (exit 0): extract DB URL from output → Use Method A (direct CLI/psql)
58
+ → IF not running (exit non-zero):
59
+ → Log: "Supabase local not running — run `npx supabase start`"
60
+ → Ask user via AskUserQuestion: start it or fall back to Method B
61
+
62
+ 2. IF no Supabase detected:
65
63
  → Use Method B (static code analysis)
66
64
  ```
67
65
 
68
- **Signs of inaccessible MCP:**
69
- - Empty response or `[]` from `list_tables()`
70
- - Authentication error / permission denied
71
- - Returned schema doesn't match code (e.g., tables exist in code but not in MCP)
66
+ **Signs of unavailable local Supabase:**
67
+ - `npx supabase status` exits with non-zero code
68
+ - Docker not running or Supabase containers stopped
72
69
  - Project uses database other than Supabase (CloudSQL, RDS, Azure SQL, etc.)
73
70
 
74
- ### Step 2A: MCP Method (Preferred)
71
+ ### Step 2A: CLI Method (Preferred — Local Docker)
75
72
 
76
- **Tools:** Supabase MCP
73
+ **Tools:** Bash (Supabase CLI + psql)
77
74
 
78
- ```javascript
79
- // 1. List all tables
80
- const tables = await mcp__supabase__list_tables();
75
+ ```bash
76
+ # 0. Get local DB URL (port may vary per instance)
77
+ npx supabase status
78
+ # → Extract "DB URL" line, e.g.: postgresql://postgres:postgres@127.0.0.1:54322/postgres
81
79
 
82
- // 2. For each feature-relevant table:
83
- for (const table of relevantTables) {
84
- // 2a. Complete schema
85
- const schema = await mcp__supabase__get_table_schema({ table: table.name });
86
- // → column_name, data_type, is_nullable, column_default
80
+ # 1. List all tables
81
+ npx supabase db dump --local --schema public 2>/dev/null | grep "CREATE TABLE"
87
82
 
88
- // 2b. Relationships
89
- const rels = await mcp__supabase__get_relationships({ table: table.name });
90
- // → foreign_table, foreign_column, constraint_type
83
+ # 2. For each feature-relevant table:
91
84
 
92
- // 2c. Indexes
93
- const indexes = await mcp__supabase__query({
94
- query: `SELECT indexname, indexdef FROM pg_indexes WHERE tablename = '${table.name}'`
95
- });
85
+ # 2a. Complete schema
86
+ psql $DB_URL -c "SELECT column_name, data_type, is_nullable, column_default \
87
+ FROM information_schema.columns WHERE table_name = 'TABLE_NAME' ORDER BY ordinal_position"
96
88
 
97
- // 2d. RLS policies (security)
98
- const policies = await mcp__supabase__query({
99
- query: `SELECT policyname, cmd, qual FROM pg_policies WHERE tablename = '${table.name}'`
100
- });
101
- }
89
+ # 2b. Relationships (FK)
90
+ psql $DB_URL -c "SELECT tc.table_name, kcu.column_name, ccu.table_name AS foreign_table, \
91
+ ccu.column_name AS foreign_column FROM information_schema.table_constraints tc \
92
+ JOIN information_schema.key_column_usage kcu ON tc.constraint_name = kcu.constraint_name \
93
+ JOIN information_schema.constraint_column_usage ccu ON tc.constraint_name = ccu.constraint_name \
94
+ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = 'TABLE_NAME'"
95
+
96
+ # 2c. Indexes
97
+ psql $DB_URL -c "SELECT indexname, indexdef FROM pg_indexes WHERE tablename = 'TABLE_NAME'"
98
+
99
+ # 2d. RLS policies (security)
100
+ psql $DB_URL -c "SELECT policyname, cmd, qual FROM pg_policies WHERE tablename = 'TABLE_NAME'"
102
101
  ```
103
102
 
104
103
  ### Step 2B: Static Analysis Method (Fallback)
@@ -155,7 +154,7 @@ The template is at `framework/templates/docs/schema-analysis.md`. Use it via:
155
154
 
156
155
  ```bash
157
156
  morph-spec template render docs/schema-analysis \
158
- .morph/features/{feature}/1-design/schema-analysis.md \
157
+ .morph/features/{feature}/2-design/schema-analysis.md \
159
158
  '{
160
159
  "FEATURE_NAME": "{feature}",
161
160
  "FEATURE_NAME_TITLE": "{Feature Display Name}",
@@ -214,7 +213,7 @@ Use the template at `framework/templates/docs/schema-analysis.md`:
214
213
 
215
214
  ```bash
216
215
  morph-spec template render docs/schema-analysis \
217
- .morph/features/{feature-name}/1-design/schema-analysis.md \
216
+ .morph/features/{feature-name}/2-design/schema-analysis.md \
218
217
  '{ "FEATURE_NAME": "{feature-name}", "DATE": "..." }'
219
218
  ```
220
219
 
@@ -230,7 +229,7 @@ morph-spec state mark-output {feature-name} schema-analysis
230
229
 
231
230
  ## Outputs
232
231
 
233
- - `.morph/features/{feature}/1-design/schema-analysis.md`
232
+ - `.morph/features/{feature}/2-design/schema-analysis.md`
234
233
  - State updated with `schemaAnalysis` output
235
234
 
236
235
  ## CHECKPOINT