@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
@@ -4,7 +4,7 @@ description: MORPH-SPEC Phase 4 (Tasks). Breaks approved spec into bottom-up ord
4
4
  argument-hint: "[feature-name]"
5
5
  user-invocable: false
6
6
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.12.0"
7
+ cliVersion: "4.13.0"
8
8
  ---
9
9
 
10
10
  # MORPH Tasks — Phase 4
@@ -15,9 +15,9 @@ Break the approved specification into executable tasks, define execution order,
15
15
 
16
16
  ## Prerequisites
17
17
 
18
- - [ ] Phase 3 (Clarify) completed
19
- - [ ] `spec.md` updated with clarifications
20
- - [ ] All edge cases documented
18
+ - [ ] Design phase completed and approved
19
+ - [ ] `spec.md` exists and approved
20
+ - [ ] Plan phase completed
21
21
 
22
22
  ## Recommended Tools
23
23
 
@@ -42,7 +42,7 @@ Break the approved specification into executable tasks, define execution order,
42
42
  - Task agent to break down a simple single-domain spec (do it directly)
43
43
  - Creating tasks without reading all design outputs first
44
44
  - **(VSA)** Creating separate tasks for Handler, Validator, and Endpoint — one slice = one task
45
- - **(VSA)** Using DDD categories (`domain`, `application`, `infrastructure`) in VSA projects — use VSA categories: `entity`, `errors`, `tags`, `migration`, `slice`, `frontend`, `tests`
45
+ - **(VSA)** Using generic layer categories (`domain`, `application`, `infrastructure`) in VSA projects — use VSA categories: `entity`, `errors`, `tags`, `migration`, `slice`, `frontend`, `tests`
46
46
  - **(VSA)** Creating a "Implement Service layer" task — there is no Service layer in VSA
47
47
  - Using vague effort labels ("Low", "Medium", "S/M") — always use specific minute estimates
48
48
  - Using non-standard task IDs (TASK-001, T01) — always use **T001** format (T + 3 digits)
@@ -61,9 +61,8 @@ Check the `"phase"` field:
61
61
 
62
62
  **If `"phase": "tasks"`** → correct phase, proceed.
63
63
 
64
- **If `"phase": "clarify"`** → run in sequence:
65
- 1. `morph-spec state mark-output $ARGUMENTS clarifications`
66
- 2. `morph-spec phase advance $ARGUMENTS` (→ tasks)
64
+ **If `"phase": "plan"`** → run:
65
+ 1. `morph-spec phase advance $ARGUMENTS` (→ tasks)
67
66
 
68
67
  **Any other value** → STOP — inconsistent state, report to user.
69
68
 
@@ -83,10 +82,10 @@ Check the `"phase"` field:
83
82
 
84
83
  ```
85
84
  # Single parallel call, not sequential:
86
- Read: .morph/features/{feature}/1-design/spec.md
87
- + Read: .morph/features/{feature}/1-design/contracts.cs (or contracts.ts for TypeScript projects)
88
- + Read: .morph/features/{feature}/1-design/decisions.md
89
- + Read: .morph/features/{feature}/1-design/schema-analysis.md (if exists)
85
+ Read: .morph/features/{feature}/2-design/spec.md
86
+ + Read: .morph/features/{feature}/2-design/contracts.cs (or contracts.ts for TypeScript projects)
87
+ + Read: .morph/features/{feature}/2-design/decisions.md
88
+ + Read: .morph/features/{feature}/2-design/schema-analysis.md (if exists)
90
89
  + Read: .morph/config/config.json (→ architecture.style)
91
90
  ```
92
91
 
@@ -116,25 +115,25 @@ morph-spec approval-status $ARGUMENTS
116
115
 
117
116
  ### Step 0: Detect Architecture Style
118
117
 
119
- Before anything else, determine if the project is VSA or DDD:
118
+ Before anything else, determine the architecture style:
120
119
 
121
120
  ```bash
122
121
  cat .morph/config/config.json | grep -A3 '"architecture"'
123
122
  ```
124
123
 
125
- **If `config.architecture.style === "vertical-slice"`** → follow **Step 0.5 (VSA)** and skip DDD path.
126
- **Otherwise** → follow **Step 0.6 (DDD)** below.
124
+ **If `config.architecture.style === "vertical-slice"`** → follow **Step 0.5 (VSA)**.
125
+ **Otherwise** → proceed to **Step 1 (Analyze Spec)** with standard layer-based task breakdown.
127
126
 
128
127
  ---
129
128
 
130
129
  ### Step 0.5: VSA Task Plan
131
130
 
132
- > For VSA task patterns and DDD-level mappings, see `references/task-planning-patterns.md`
131
+ > For VSA task patterns, see `references/task-planning-patterns.md`
133
132
 
134
133
  Read the `## Architecture Style: Vertical Slice` section from spec.md for the **VSA Blueprint**:
135
134
 
136
135
  ```bash
137
- grep -A30 "## Architecture Style" ".morph/features/$ARGUMENTS/1-design/spec.md"
136
+ grep -A30 "## Architecture Style" ".morph/features/$ARGUMENTS/2-design/spec.md"
138
137
  ```
139
138
 
140
139
  Create one task per slice following this order: entity → errors → tags → migration → CRUD slices → custom slices → frontend → tests. Each slice = Handler + Validator + Endpoint in a **single task**. `GetAll` operations do NOT have a Validator (no input parameters to validate).
@@ -145,30 +144,13 @@ Use VSA-specific categories: `entity`, `errors`, `tags`, `migration`, `slice`, `
145
144
 
146
145
  ---
147
146
 
148
- ### Step 0.6: Read Domain Level — DDD
149
-
150
- Read the `## Domain Complexity` section from spec.md:
151
-
152
- ```bash
153
- grep -A15 "## Domain Complexity" ".morph/features/$ARGUMENTS/1-design/spec.md"
154
- ```
155
-
156
- > If the section doesn't exist, assume **Level 1 (CRUD)**.
157
-
158
- Use the level to constrain categories:
159
- - **Level 1**: domain → infrastructure → application → presentation → tests
160
- - **Level 2**: adds AggregateRoot, ValueObjects, DomainEvents, CQRS handlers
161
- - **Level 3**: adds BC setup, Integration Events
162
-
163
- See `references/task-planning-patterns.md` for the complete table.
164
-
165
147
  ---
166
148
 
167
149
  ### Step 1: Analyze Spec
168
150
 
169
151
  > **VSA:** If coming from Step 0.5, the task breakdown was already defined — use the generated examples as a base and skip to Step 3 (Dependencies).
170
152
 
171
- Read `.morph/features/$ARGUMENTS/1-design/spec.md` and identify:
153
+ Read `.morph/features/$ARGUMENTS/2-design/spec.md` and identify:
172
154
 
173
155
  1. **Functional requirements** (FR001, FR002, ...)
174
156
  2. **Technical components** (Entities, Services/Slices, Controllers/Endpoints, Pages)
@@ -274,7 +256,7 @@ Use `AskUserQuestion` to capture explicit approval before advancing. This gate p
274
256
 
275
257
  - [x] `tasks.md` created with all tasks
276
258
  - [x] Tasks use T### format (T001, T002, ...) consistently
277
- - [x] Tasks categorized correctly (DDD layers or VSA categories)
259
+ - [x] Tasks categorized correctly (VSA categories or standard layers)
278
260
  - [x] Dependencies mapped
279
261
  - [x] Checkpoints defined (every 3 tasks)
280
262
  - [x] Effort estimated in minutes per task
@@ -298,10 +280,10 @@ Use `AskUserQuestion` to capture explicit approval before advancing. This gate p
298
280
 
299
281
  ## Phase Outputs
300
282
 
301
- <!-- morph-outputs:tasks -->
302
- | Output | Caminho |
303
- |--------|---------|
304
- | `tasks` | `.morph/features/{feature}/4-tasks/tasks.md` |
283
+ <!-- morph-outputs:tasks -->
284
+ | Output | Caminho |
285
+ |--------|---------|
286
+ | `tasks` | `.morph/features/{feature}/4-tasks/tasks.md` |
305
287
  <!-- /morph-outputs -->
306
288
 
307
289
  ---
@@ -93,8 +93,6 @@ T0NN: Tests
93
93
 
94
94
  ## Padrão DDD — Mapeamento de Níveis para Categorias
95
95
 
96
- **Ref:** `framework/standards/architecture/ddd/complexity-levels.md`
97
-
98
96
  ### Categorias por nível de complexidade
99
97
 
100
98
  | Nível | Categorias de Tasks |
@@ -81,7 +81,7 @@ Add `ProcessingJob` to `AppDbContext`, configure via Fluent API (column lengths,
81
81
  - **Type:** Infrastructure
82
82
  - **Priority:** 1
83
83
  - **Estimate:** 45min
84
- - **Assigned:** azure-architect
84
+ - **Assigned:** infra-architect
85
85
  - **Dependencies:** None
86
86
 
87
87
  **Description:**
@@ -154,11 +154,11 @@ Create two endpoints per spec.md:
154
154
  - **Type:** UI
155
155
  - **Priority:** 2
156
156
  - **Estimate:** 1h
157
- - **Assigned:** blazor-builder
157
+ - **Assigned:** nextjs-expert
158
158
  - **Dependencies:** T007
159
159
 
160
160
  **Description:**
161
- Blazor Server page at `/upload`. File input with client-side validation (type + size before submit). Loading state during upload. Redirect to `/processing/{jobId}` on success. Error message display per spec wireframe.
161
+ Frontend page at `/upload`. File input with client-side validation (type + size before submit). Loading state during upload. Redirect to `/processing/{jobId}` on success. Error message display per spec wireframe.
162
162
 
163
163
  **Deliverables:**
164
164
  - [ ] Create: `src/Web/Pages/Upload.razor`
@@ -170,11 +170,11 @@ Blazor Server page at `/upload`. File input with client-side validation (type +
170
170
  - **Type:** UI
171
171
  - **Priority:** 3
172
172
  - **Estimate:** 1h
173
- - **Assigned:** blazor-builder
173
+ - **Assigned:** nextjs-expert
174
174
  - **Dependencies:** T007
175
175
 
176
176
  **Description:**
177
- Blazor Server page at `/processing/{jobId}`. Polls `GET /api/status/{jobId}` every 5 seconds using `PeriodicTimer`. Shows status label + progress indicator. "Download" button when Completed. "Retry" suggestion when Failed. Stops polling on terminal state.
177
+ Frontend page at `/processing/{jobId}`. Polls `GET /api/status/{jobId}` every 5 seconds using `PeriodicTimer`. Shows status label + progress indicator. "Download" button when Completed. "Retry" suggestion when Failed. Stops polling on terminal state.
178
178
 
179
179
  **Deliverables:**
180
180
  - [ ] Create: `src/Web/Pages/ProcessingStatus.razor`
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: morph-phase-uiux
3
- description: MORPH-SPEC Phase 1.5 (UI/UX). Creates design-system.md, mockups.md, components.md, and flows.md using Playwright/Context7 MCPs. Use after setup for features with frontend UI components, pages, dashboards, forms, wizards, or visual interactions requiring design documentation.
3
+ description: MORPH-SPEC Phase 2 (UI/UX). Creates design-system.md, mockups.md, components.md, and flows.md using Playwright/Context7 MCPs. Use after setup for features with frontend UI components, pages, dashboards, forms, wizards, or visual interactions requiring design documentation.
4
4
  argument-hint: "[feature-name]"
5
5
  user-invocable: false
6
6
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.12.0"
7
+ cliVersion: "4.13.0"
8
8
  ---
9
9
 
10
- # MORPH UI/UX Design - Phase 1.5
10
+ # MORPH UI/UX Design - Phase 2
11
11
 
12
12
  > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
13
13
 
@@ -15,8 +15,8 @@ Conditional phase for features with front-end. Collects UI/UX requirements, gene
15
15
 
16
16
  ## Prerequisites
17
17
 
18
- - [ ] Phase 1 (Setup) completed
19
- - [ ] Feature has detected UI keywords (blazor, ui, component, page, dashboard, wizard, form, chart)
18
+ - [ ] Proposal approved by the user
19
+ - [ ] Feature has detected UI keywords (ui, component, page, dashboard, wizard, form, chart)
20
20
  - [ ] `ui-designer` agent activated
21
21
 
22
22
  ## Recommended Tools
@@ -29,7 +29,7 @@ Conditional phase for features with front-end. Collects UI/UX requirements, gene
29
29
  | Check existing design system | **Read** `.morph/context/design-system.md` | — |
30
30
  | Read user screenshots | **Read** (image file) | — |
31
31
  | Search for existing CSS variables | **Grep** `--root:` in `*.css,*.scss` | — |
32
- | Find existing components | **Glob** `**/Components/**/*.razor` or `**/components/**/*.tsx` | — |
32
+ | Find existing components | **Glob** `**/components/**/*.tsx` | — |
33
33
  | UI component documentation | **Context7 MCP** `query_docs({ libraryId, query })` | **WebSearch** + **WebFetch** |
34
34
  | Preview existing page | **Playwright MCP** `browser_navigate()` + `browser_take_screenshot()` | **WebFetch** URL |
35
35
  | Generate visual mockup | **Playwright MCP** `browser_navigate()` + `browser_resize()` + `browser_take_screenshot()` | HTML file + manual screenshot |
@@ -42,13 +42,11 @@ Conditional phase for features with front-end. Collects UI/UX requirements, gene
42
42
  | Auto-detect dev server | **Glob** `next.config.*`, `vite.config.*`, `*.csproj` | **Read** `package.json` scripts |
43
43
  | Capture existing app | **Playwright MCP** `browser_navigate()` + `browser_take_screenshot()` | — |
44
44
  | Read Tailwind config | **Read** `tailwind.config.{js,ts}` | **Grep** `colors:` |
45
- | Read MudBlazor theme | **Glob** `**/MudTheme*.cs` → **Read** | **Grep** `PaletteLight` |
46
- | Trend research | **Read** `design-trends.md` standard | **Context7 MCP** / **WebSearch** |
45
+ | Trend research | **Context7 MCP** / **WebSearch** | — |
47
46
 
48
47
  **MCPs for this phase:** Playwright (preview, inspection, responsiveness), Context7 (component docs).
49
48
 
50
49
  **Anti-patterns:**
51
- - WebSearch for MudBlazor docs (use Context7 MCP — more precise)
52
50
  - Task agent to read a screenshot (use Read directly on image)
53
51
  - Guess component props (use Context7 for actual API)
54
52
 
@@ -66,12 +64,13 @@ Check the `"phase"` field in the output:
66
64
 
67
65
  **If `"phase": "uiux"`** → correct phase, proceed.
68
66
 
69
- **If `"phase": "setup"`** → execute:
70
- 1. `morph-spec phase advance $ARGUMENTS` (→ uiux)
67
+ **If `"phase": "proposal"`** → execute in sequence:
68
+ 1. `morph-spec state mark-output $ARGUMENTS proposal`
69
+ 2. `morph-spec phase advance $ARGUMENTS` (→ uiux)
71
70
 
72
71
  **Any other value** → do not proceed — inconsistent state, report to user.
73
72
 
74
- > **Rule:** Never write to `2-ui/` until the phase is `uiux`. The hook will block writes.
73
+ > **Rule:** Never write to `1-ui/` until the phase is `uiux`. The hook will block writes.
75
74
 
76
75
  ---
77
76
 
@@ -88,8 +87,7 @@ Check in priority order:
88
87
  2. **`package.json` port flags**: Read `package.json` scripts → scan for `--port`, `-p` flags → extract port
89
88
  3. **Next.js**: Glob `next.config.*` → try `http://localhost:3000`
90
89
  4. **Vite**: Glob `vite.config.*` → try `http://localhost:5173`
91
- 5. **.NET launchSettings**: Glob `**/Properties/launchSettings.json` → Read → extract `applicationUrl`
92
- 6. **.NET fallback**: Glob `*.csproj` → try `https://localhost:5001`
90
+ 5. **.NET**: Glob `**/Properties/launchSettings.json` → Read → extract `applicationUrl`
93
91
 
94
92
  Track: `detectedUrl` (string or null).
95
93
 
@@ -147,11 +145,11 @@ Once connected, take screenshots of up to 5 pages:
147
145
  mcp__plugin_playwright_playwright__browser_resize({ width: 1440, height: 900 })
148
146
  mcp__plugin_playwright_playwright__browser_take_screenshot({})
149
147
  ```
150
- 4. Save screenshots to `.morph/features/$ARGUMENTS/2-ui/existing-*.png`
148
+ 4. Save screenshots to `.morph/features/$ARGUMENTS/1-ui/existing-*.png`
151
149
 
152
150
  #### 0.2.4 — Visual analysis
153
151
 
154
- Analyze the captured screenshots and write `.morph/features/$ARGUMENTS/2-ui/existing-ui-analysis.md`:
152
+ Analyze the captured screenshots and write `.morph/features/$ARGUMENTS/1-ui/existing-ui-analysis.md`:
155
153
 
156
154
  > **Note:** This is an intermediate artifact — NOT a tracked output in `output-schema.js`. It will not appear in `state mark-output`. Advisory warnings from `task-tracking-guard.js` are expected.
157
155
 
@@ -217,21 +215,12 @@ If found, Read the file and extract:
217
215
  Glob: `components.json`
218
216
  If found and contains `"style"` field, also scan `src/lib/utils.ts` or `lib/utils.ts` for CSS var references.
219
217
 
220
- **D. MudBlazor Theme (.NET):**
221
- Glob: `**/MudTheme*.cs`, `**/*Theme*.cs`, `**/CustomTheme*.cs`
222
- If found, Grep for `PaletteLight`, `PaletteDark`, `Typography` property assignments.
223
- Extract: Primary, Secondary, Tertiary, Background, Surface colors + font families.
224
-
225
- **E. Fluent UI Theme (.NET):**
226
- Glob: `**/FluentDesignTheme*.cs`, `**/DesignTheme*.cs`
227
- If found, Grep for `DesignThemePalette` properties.
228
-
229
- **F. Global theme files:**
218
+ **D. Global theme files:**
230
219
  Glob: `**/theme.{ts,js}`, `**/tokens.{ts,js}`, `**/design-tokens.{ts,js}`
231
220
  If found, Read and extract exported color/spacing/font objects.
232
221
 
233
222
  Classify ALL found tokens into:
234
- - **Colors**: `--color-*`, hex values, rgb(), Palette assignments
223
+ - **Colors**: `--color-*`, hex values, rgb()
235
224
  - **Fonts**: `--font-*`, `font-family:`, fontFamily config
236
225
  - **Spacing**: `--space-*`, `--gap-*`, spacing config
237
226
  - **Radius**: `--radius-*`, borderRadius config
@@ -253,7 +242,7 @@ Track: `dsExists` (bool).
253
242
  |------|-----------|--------|
254
243
  | **A** | `dsExists` AND `cssTokensFound` | Cross-check DS vs scanned tokens. If >2 colors diverge, flag misalignment and ask user if they want to update DS with `AskUserQuestion`. Proceed to Step 1. |
255
244
  | **B** | `dsExists` AND NOT `cssTokensFound` | Print: `✓ Design system found (no CSS tokens to cross-check)`. Proceed to Step 1. |
256
- | **C** | NOT `dsExists` AND tokens found | Auto-generate `.morph/context/design-system.md` from ALL scanned token sources (CSS vars, Tailwind config, MudBlazor theme, etc.). Merge tokens from multiple sources, preferring Tailwind/Theme config over raw CSS. If Step 0.2 produced `existing-ui-analysis.md`, cross-reference visual analysis with extracted tokens. Proceed to Step 1. |
245
+ | **C** | NOT `dsExists` AND tokens found | Auto-generate `.morph/context/design-system.md` from ALL scanned token sources (CSS vars, Tailwind config, etc.). Merge tokens from multiple sources, preferring Tailwind/Theme config over raw CSS. If Step 0.2 produced `existing-ui-analysis.md`, cross-reference visual analysis with extracted tokens. Proceed to Step 1. |
257
246
  | **D** | NOT `dsExists` AND NOT `cssTokensFound` | Greenfield project. Ask user for aesthetic direction + brand color using `AskUserQuestion` (same options as morph-init). Scaffold from template. Proceed to Step 1. |
258
247
 
259
248
  **Case C — auto-generate from scanned tokens:**
@@ -267,7 +256,7 @@ Create `.morph/context/design-system.md` with these sections populated from scan
267
256
 
268
257
  Print: `✓ Design system generated from [N] tokens — .morph/context/design-system.md`
269
258
 
270
- > **Design system is mandatory** for UI features. The implementation gate (Phase 5) will block if no design system exists.
259
+ > **Design system is mandatory** for UI features. The implementation gate (Phase 7) will block if no design system exists.
271
260
 
272
261
  ## MANDATORY: Session Tasks
273
262
 
@@ -285,16 +274,18 @@ Check if active agents include `ui-designer`:
285
274
  morph-spec state get $ARGUMENTS
286
275
  ```
287
276
 
288
- If `ui-designer` is NOT in `activeAgents`, skip this phase and continue to Phase 2 (Design).
277
+ If `ui-designer` is NOT in `activeAgents`, skip this phase and continue to Phase 3 (Design).
289
278
 
290
279
  ### Step 1.3: Trend Research
291
280
 
292
281
  > **Purpose:** Before defining aesthetic direction, research current design trends relevant to this project's domain.
293
- > **Ref:** `framework/standards/frontend/design-system/design-trends.md`
282
+ > Use Context7 MCP or web search for current design trends.
294
283
 
295
- #### 1.3.1 — Consult curated catalog
284
+ #### 1.3.1 — Research current trends
296
285
 
297
- Read `framework/standards/frontend/design-system/design-trends.md` and identify techniques relevant to the project.
286
+ > **MCP:** Use **WebSearch** to research current design trends for the detected domain (e.g., "{currentYear} UI design trends {detectedDomain}"). WebSearch provides real-time results that are more current than any static reference. If WebSearch is not available, use **Context7 MCP** to query UI library documentation for latest component patterns and best practices. If neither is available, rely on your training knowledge of current design trends.
287
+
288
+ Research current design trends relevant to the project's domain and stack. Identify 3-5 techniques that fit the project.
298
289
 
299
290
  #### 1.3.2 — Detect project domain
300
291
 
@@ -343,8 +334,6 @@ Selected trends feed into Step 1.5 (Aesthetic Direction) and Step 4 (Deliverable
343
334
 
344
335
  ### Step 1.5: Design Thinking — Aesthetic Direction
345
336
 
346
- > **Ref:** `framework/standards/frontend/design-system/aesthetic-direction.md`
347
-
348
337
  **BEFORE collecting technical requirements**, define visual direction with 4 questions:
349
338
 
350
339
  1. **Purpose**: What problem does it solve? Who uses it? What is the professional context?
@@ -352,16 +341,14 @@ Selected trends feed into Step 1.5 (Aesthetic Direction) and Step 4 (Deliverable
352
341
  3. **Differentiation**: What is the 1 memorable element of this interface?
353
342
  4. **Constraints**: Framework, performance budget, existing brand guidelines
354
343
 
355
- **CRITICAL:** Commit to direction BEFORE technical specs. Document in `ui-design-system.md`
344
+ **CRITICAL:** Commit to direction BEFORE technical specs. Document in `design-system.md`
356
345
  in section `## Aesthetic Direction` (template available in the standard above).
357
346
 
358
347
  #### Domain-Adaptive Patterns
359
348
 
360
349
  After defining aesthetic direction, apply domain-specific pattern suggestions:
361
350
 
362
- > **Ref:** `framework/standards/frontend/design-system/aesthetic-direction.md` → `## Domain Adaptation`
363
-
364
- Based on the domain detected in Step 1.3.2, suggest patterns from the Domain Adaptation guide:
351
+ Based on the domain detected in Step 1.3.2, suggest domain-adaptive patterns:
365
352
 
366
353
  | Domain | Preferred Directions | Key Patterns to Suggest |
367
354
  |--------|---------------------|------------------------|
@@ -391,8 +378,7 @@ If the user's chosen direction conflicts with domain recommendations (e.g., Indu
391
378
 
392
379
  Incorporate the trends selected in Step 1.3.4 into the aesthetic direction documentation:
393
380
 
394
- - Add selected trends to `## Aesthetic Direction` in `ui-design-system.md`
395
- - Reference the specific implementation from `design-trends.md`
381
+ - Add selected trends to `## Aesthetic Direction` in `design-system.md`
396
382
  - Document how each trend maps to the chosen direction
397
383
 
398
384
  **Anti-patterns to avoid:**
@@ -422,16 +408,14 @@ Incorporate the trends selected in Step 1.3.4 into the aesthetic direction docum
422
408
 
423
409
  Detect the stack from `.morph/config/config.json` and recommend the appropriate library:
424
410
 
425
- **Blazor stack:**
426
- - **Fluent UI Blazor** — dashboards, simple forms, AI components, Microsoft design language
427
- - **MudBlazor** — advanced data grids, complex charts, material design
428
-
429
411
  **Next.js stack:**
430
412
  - **shadcn/ui + Radix** (recommended) — composable primitives, full control, Tailwind-native
431
413
  - **MUI** — feature-rich, enterprise-grade, material design
432
414
 
433
415
  **Document the decision as an ADR in `decisions.md`** with: context, options considered, decision, and rationale.
434
416
 
417
+ > **MCP:** After selecting the UI library, use **Context7 MCP** (`resolve-library-id` → `query-docs`) to fetch the library's latest component API (e.g., shadcn/ui primitives, Radix props, MUI component APIs). This ensures component specs in `components.md` reference real, current props — not outdated or hallucinated ones. If Context7 is not available, use **WebSearch** + **WebFetch** to check the official component documentation.
418
+
435
419
  ### Step 3.5: Visual Mockup (Playwright MCP)
436
420
 
437
421
  > **Purpose:** Generate a real HTML preview using project design tokens before writing formal specs.
@@ -448,7 +432,7 @@ Create an HTML file that represents the main screen/layout using **real tokens f
448
432
  - Include representative content (realistic text, placeholder images)
449
433
  - All colors via CSS variables: `color: var(--color-primary)` not `color: #3b82f6`
450
434
 
451
- **Save to:** `.morph/features/$ARGUMENTS/2-ui/mockup.html`
435
+ **Save to:** `.morph/features/$ARGUMENTS/1-ui/mockup.html`
452
436
 
453
437
  Example structure:
454
438
  ```html
@@ -491,7 +475,7 @@ Example structure:
491
475
 
492
476
  **Navigate to the file:**
493
477
  ```
494
- mcp__plugin_playwright_playwright__browser_navigate({ url: "file:///[ABSOLUTE_PATH_TO].morph/features/$ARGUMENTS/2-ui/mockup.html" })
478
+ mcp__plugin_playwright_playwright__browser_navigate({ url: "file:///[ABSOLUTE_PATH_TO].morph/features/$ARGUMENTS/1-ui/mockup.html" })
495
479
  ```
496
480
 
497
481
  **Take screenshots at 3 breakpoints** (resize then screenshot for each):
@@ -499,19 +483,19 @@ mcp__plugin_playwright_playwright__browser_navigate({ url: "file:///[ABSOLUTE_PA
499
483
  **Mobile (375px):**
500
484
  ```
501
485
  mcp__plugin_playwright_playwright__browser_resize({ width: 375, height: 812 })
502
- mcp__plugin_playwright_playwright__browser_take_screenshot({}) → save as .morph/features/$ARGUMENTS/2-ui/mockup-mobile.png
486
+ mcp__plugin_playwright_playwright__browser_take_screenshot({}) → save as .morph/features/$ARGUMENTS/1-ui/mockup-mobile.png
503
487
  ```
504
488
 
505
489
  **Tablet (768px):**
506
490
  ```
507
491
  mcp__plugin_playwright_playwright__browser_resize({ width: 768, height: 1024 })
508
- mcp__plugin_playwright_playwright__browser_take_screenshot({}) → save as .morph/features/$ARGUMENTS/2-ui/mockup-tablet.png
492
+ mcp__plugin_playwright_playwright__browser_take_screenshot({}) → save as .morph/features/$ARGUMENTS/1-ui/mockup-tablet.png
509
493
  ```
510
494
 
511
495
  **Desktop (1440px):**
512
496
  ```
513
497
  mcp__plugin_playwright_playwright__browser_resize({ width: 1440, height: 900 })
514
- mcp__plugin_playwright_playwright__browser_take_screenshot({}) → save as .morph/features/$ARGUMENTS/2-ui/mockup-desktop.png
498
+ mcp__plugin_playwright_playwright__browser_take_screenshot({}) → save as .morph/features/$ARGUMENTS/1-ui/mockup-desktop.png
515
499
  ```
516
500
 
517
501
  #### 3.5.3 — Present and Iterate
@@ -523,7 +507,7 @@ mcp__plugin_playwright_playwright__browser_take_screenshot({}) → save as .morp
523
507
  3. **Iterate:** Refine `mockup.html` → re-take screenshots → show updated previews
524
508
  4. **Continue only when user approves** this visual direction
525
509
 
526
- > **Note:** `ui-mockups.md` (Step 4.2) continues to exist as the reference for states and interactions.
510
+ > **Note:** `mockups.md` (Step 4.2) continues to exist as the reference for states and interactions.
527
511
  > The PNGs are the visual reference; the .md covers behavior and edge cases.
528
512
 
529
513
  ---
@@ -534,22 +518,22 @@ Create the following files in `.morph/features/$ARGUMENTS/`:
534
518
 
535
519
  > **Use templates:** Use `morph-spec template render` to generate files from templates in `.morph/framework/templates/docs/`. Available templates: `ui-design-system`, `ui-mockups`, `ui-components`, `ui-flows`.
536
520
 
537
- #### 4.1. `ui-design-system.md`
521
+ #### 4.1. `design-system.md`
538
522
 
539
523
  **If project-level design system exists (`.morph/context/design-system.md`):**
540
524
  - Reference it in specs: "Uses project design system at .morph/context/design-system.md"
541
- - Create `ui-design-system.md` only if there are feature-specific colors/components
525
+ - Create `design-system.md` only if there are feature-specific colors/components
542
526
 
543
527
  **If it doesn't exist:**
544
528
  - Create complete feature-level design system with:
545
- - **Section `## Aesthetic Direction`** (use template from `aesthetic-direction.md`):
529
+ - **Section `## Aesthetic Direction`**:
546
530
  direction, font pair, color philosophy, motion intent, composition approach
547
531
  - Color palette (primary, secondary, accent, semantic)
548
532
  - Typography (heading scales, body text, code)
549
533
  - Spacing and layout (grid, margins, paddings)
550
534
  - Base components (buttons, inputs, cards)
551
535
 
552
- #### 4.2. `ui-mockups.md`
536
+ #### 4.2. `mockups.md`
553
537
 
554
538
  ASCII wireframes + descriptions:
555
539
  - General layout of each screen/page
@@ -557,15 +541,15 @@ ASCII wireframes + descriptions:
557
541
  - Responsiveness (desktop, tablet, mobile)
558
542
  - States (loading, error, empty, success)
559
543
 
560
- #### 4.3. `ui-components.md`
544
+ #### 4.3. `components.md`
561
545
 
562
- Technical specs for Fluent UI/MudBlazor components:
563
- - Component to use (FluentButton, MudDataGrid, etc.)
546
+ Technical specs for UI library components:
547
+ - Component to use (Button, DataTable, etc.)
564
548
  - Props and configurations
565
549
  - Events and bindings
566
550
  - Validations and states
567
551
 
568
- #### 4.4. `ui-flows.md`
552
+ #### 4.4. `flows.md`
569
553
 
570
554
  Complete user flows:
571
555
  - User stories
@@ -577,7 +561,7 @@ Complete user flows:
577
561
 
578
562
  **PAUSE - Before proceeding to accessibility:**
579
563
 
580
- - [ ] Aesthetic direction defined and documented in `ui-design-system.md`?
564
+ - [ ] Aesthetic direction defined and documented in `design-system.md`?
581
565
  - [ ] Font pair specified (not just Inter/Roboto for display)?
582
566
  - [ ] Color philosophy: dominant + accent + rationale documented?
583
567
  - [ ] Design system defined (project-level or feature-level)?
@@ -623,11 +607,11 @@ morph-spec state mark-output $ARGUMENTS ui-flows
623
607
 
624
608
  ## Generated Outputs
625
609
 
626
- - `.morph/features/$ARGUMENTS/2-ui/design-system.md`
627
- - `.morph/features/$ARGUMENTS/2-ui/mockups.md`
628
- - `.morph/features/$ARGUMENTS/2-ui/components.md`
629
- - `.morph/features/$ARGUMENTS/2-ui/flows.md`
630
- - `.morph/features/$ARGUMENTS/1-design/decisions.md` (updated with UI library ADR)
610
+ - `.morph/features/$ARGUMENTS/1-ui/design-system.md`
611
+ - `.morph/features/$ARGUMENTS/1-ui/mockups.md`
612
+ - `.morph/features/$ARGUMENTS/1-ui/components.md`
613
+ - `.morph/features/$ARGUMENTS/1-ui/flows.md`
614
+ - `.morph/features/$ARGUMENTS/2-design/decisions.md` (updated with UI library ADR)
631
615
 
632
616
  ### Step 7: Validate Design with Frontend Review
633
617
 
@@ -682,19 +666,15 @@ Use `AskUserQuestion` to capture explicit approval before advancing:
682
666
 
683
667
  ## Phase Outputs
684
668
 
685
- <!-- morph-outputs:uiux -->
686
- | Output | Caminho |
687
- |--------|---------|
688
- | `uiDesignSystem` | `.morph/features/{feature}/2-ui/design-system.md` |
689
- | `uiMockups` | `.morph/features/{feature}/2-ui/mockups.md` |
690
- | `uiComponents` | `.morph/features/{feature}/2-ui/components.md` |
691
- | `uiFlows` | `.morph/features/{feature}/2-ui/flows.md` |
692
- | `uiMockupHtml` | `.morph/features/{feature}/2-ui/mockup.html` |
693
- | `uiMockupMobile` | `.morph/features/{feature}/2-ui/mockup-mobile.png` |
694
- | `uiMockupTablet` | `.morph/features/{feature}/2-ui/mockup-tablet.png` |
695
- | `uiMockupDesktop` | `.morph/features/{feature}/2-ui/mockup-desktop.png` |
669
+ <!-- morph-outputs:uiux -->
670
+ | Output | Caminho |
671
+ |--------|---------|
672
+ | `uiDesignSystem` | `.morph/features/{feature}/1-ui/design-system.md` |
673
+ | `uiMockups` | `.morph/features/{feature}/1-ui/mockups.md` |
674
+ | `uiComponents` | `.morph/features/{feature}/1-ui/components.md` |
675
+ | `uiFlows` | `.morph/features/{feature}/1-ui/flows.md` |
696
676
  <!-- /morph-outputs -->
697
677
 
698
678
  ---
699
679
 
700
- Continue automatically to Phase 2 (Design) after approval.
680
+ Continue automatically to Phase 3 (Design) after approval.
@@ -4,7 +4,7 @@ description: Guided workflow for mid-implementation scope escalation — analyze
4
4
  user-invocable: true
5
5
  argument-hint: "[feature-name]"
6
6
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.12.0"
7
+ cliVersion: "4.13.0"
8
8
  ---
9
9
 
10
10
  # Scope Escalation Workflow
@@ -19,16 +19,16 @@
19
19
  "standards": ["coding.md", "ef-core.md"]
20
20
  },
21
21
  {
22
- "id": "api-designer",
23
- "role": "REST Endpoints + DTOs",
22
+ "id": "hangfire-orchestrator",
23
+ "role": "Background Jobs & Scheduling",
24
24
  "domain": "backend",
25
- "standards": ["coding.md", "integration/api/rest-design.md"]
25
+ "standards": ["coding.md"]
26
26
  }
27
27
  ],
28
28
  "deliverables": {
29
- "dotnet-senior": "Application services, business logic, command/query handlers",
29
+ "dotnet-senior": "Application services, business logic, command/query handlers, API endpoints, DTOs",
30
30
  "ef-modeler": "Entity models, DbContext, migrations",
31
- "api-designer": "Controllers, DTOs, Swagger docs"
31
+ "hangfire-orchestrator": "Background jobs, recurring tasks, job scheduling"
32
32
  },
33
33
  "estimatedParallelGain": "2-3x throughput vs sequential",
34
34
  "agent_team": {
@@ -38,7 +38,7 @@
38
38
  {
39
39
  "id": "dotnet-senior",
40
40
  "spawn_context": "standards/coding.md, standards/architecture/, contracts.cs, spec.md",
41
- "task_scope": "backend tasks (domain logic, application services, EF Core, API endpoints, DTOs)"
41
+ "task_scope": "backend tasks (domain logic, application services, EF Core, API endpoints, DTOs, background jobs)"
42
42
  }
43
43
  ],
44
44
  "coordination_notes": "Single-domain squad — Agent Teams not required. Use subagents for parallelization.",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "frontend-only",
3
3
  "name": "Frontend Squad",
4
- "description": "Frontend-focused squad: Blazor components + CSS + UX",
4
+ "description": "Frontend-focused squad: UI components + CSS + UX",
5
5
  "parallel": true,
6
6
  "coordination": "ui-designer",
7
7
  "waitForAll": true,
@@ -10,24 +10,33 @@
10
10
  "id": "ui-designer",
11
11
  "role": "UI Design Lead",
12
12
  "domain": "frontend",
13
- "standards": ["css-architecture.md", "css-design-system.md"]
13
+ "standards": [
14
+ "css-architecture.md",
15
+ "css-design-system.md"
16
+ ]
14
17
  },
15
18
  {
16
- "id": "blazor-builder",
17
- "role": "Blazor Component Developer",
19
+ "id": "nextjs-expert",
20
+ "role": "Frontend Developer",
18
21
  "domain": "frontend",
19
- "standards": ["coding.md", "blazor-components.md", "blazor-state.md"]
22
+ "standards": [
23
+ "coding.md",
24
+ "nextjs-components.md"
25
+ ]
20
26
  },
21
27
  {
22
28
  "id": "css-specialist",
23
29
  "role": "CSS/Design System Specialist",
24
30
  "domain": "frontend",
25
- "standards": ["css-architecture.md", "css-design-system.md"]
31
+ "standards": [
32
+ "css-architecture.md",
33
+ "css-design-system.md"
34
+ ]
26
35
  }
27
36
  ],
28
37
  "deliverables": {
29
38
  "ui-designer": "Design system tokens, component specs, mockup annotations",
30
- "blazor-builder": ".razor components, code-behind, state management",
39
+ "nextjs-expert": "React components, pages, state management",
31
40
  "css-specialist": "CSS modules, design system implementation, responsive layout"
32
41
  },
33
42
  "estimatedParallelGain": "2x throughput vs sequential",
@@ -38,7 +47,7 @@
38
47
  {
39
48
  "id": "ui-designer",
40
49
  "spawn_context": "standards/css-architecture.md, standards/css-design-system.md, design-system.md, spec.md",
41
- "task_scope": "frontend tasks (Blazor components, CSS, design system implementation, responsive layout)"
50
+ "task_scope": "frontend tasks (UI components, CSS, design system implementation, responsive layout)"
42
51
  }
43
52
  ],
44
53
  "coordination_notes": "Single-domain squad — Agent Teams not required. Use subagents for parallelization.",