@polymorphism-tech/morph-spec 4.11.1 → 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 (317) 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 +226 -1454
  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/agent-complete.js +122 -0
  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/dispatch-helpers.js +17 -0
  42. package/framework/hooks/shared/phase-utils.js +4 -8
  43. package/framework/hooks/shared/state-reader.js +34 -3
  44. package/framework/phases.json +7 -45
  45. package/framework/rules/ai-agents-standards.md +15 -0
  46. package/framework/rules/asaas-standards.md +13 -0
  47. package/framework/rules/clerk-standards.md +13 -0
  48. package/framework/rules/csharp-standards.md +8 -4
  49. package/framework/rules/data-standards.md +18 -0
  50. package/framework/rules/dotnet-templates.md +87 -0
  51. package/framework/rules/frontend-standards.md +13 -13
  52. package/framework/rules/hangfire-standards.md +13 -0
  53. package/framework/rules/infrastructure-standards.md +27 -16
  54. package/framework/rules/morph-workflow.md +73 -13
  55. package/framework/rules/nextjs-standards.md +1 -0
  56. package/framework/rules/nextjs-templates.md +40 -0
  57. package/framework/rules/resend-standards.md +12 -0
  58. package/framework/rules/supabase-standards.md +29 -0
  59. package/framework/skills/README.md +6 -8
  60. package/framework/skills/level-0-meta/mcp-registry.json +21 -99
  61. package/framework/{standards/ai-agents/team-orchestration.md → skills/level-0-meta/morph-agent-teams/SKILL.md} +472 -479
  62. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +28 -1
  63. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +2 -2
  64. package/framework/skills/level-0-meta/morph-code-review/SKILL.md +1 -5
  65. package/framework/skills/level-0-meta/morph-code-review/scripts/scan-csharp.mjs +1 -1
  66. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +23 -41
  67. package/framework/skills/level-0-meta/morph-init/SKILL.md +18 -14
  68. package/framework/skills/level-0-meta/morph-parallel-dispatch/SKILL.md +225 -0
  69. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +20 -0
  70. package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +4 -8
  71. package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +15 -59
  72. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +7 -19
  73. package/framework/skills/level-0-meta/morph-verification-before-completion/scripts/check-phase-outputs.mjs +8 -8
  74. package/framework/skills/level-1-workflows/README.md +1 -1
  75. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +49 -50
  76. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +58 -124
  77. package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +5 -50
  78. package/framework/skills/level-1-workflows/morph-phase-design/references/spec-example.md +1 -1
  79. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +127 -159
  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 +0 -2
  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 +275 -61
  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 -2338
  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 +342 -211
  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/mcp/mcp-setup.js +28 -6
  159. package/src/commands/phase/phase-reset.js +1 -1
  160. package/src/commands/project/doctor.js +10 -32
  161. package/src/commands/project/init.js +32 -1
  162. package/src/commands/project/status.js +6 -12
  163. package/src/commands/scaffold/scaffold.js +131 -0
  164. package/src/commands/scope/escalate.js +1 -1
  165. package/src/commands/state/advance-phase.js +15 -29
  166. package/src/commands/state/state.js +20 -5
  167. package/src/commands/tasks/task.js +0 -30
  168. package/src/commands/validation/validate-feature.js +3 -10
  169. package/src/core/paths/output-schema.js +12 -13
  170. package/src/core/state/phase-state-machine.js +211 -217
  171. package/src/core/state/state-manager.js +9 -9
  172. package/src/lib/agents/agents-manager.js +2 -2
  173. package/src/lib/agents/output-collector.js +1 -2
  174. package/src/lib/detectors/design-system-detector.js +4 -4
  175. package/src/lib/detectors/index.js +1 -11
  176. package/src/lib/generators/architecture-scanner.js +640 -0
  177. package/src/lib/generators/context-generator.js +3 -3
  178. package/src/lib/generators/design-system-generator.js +508 -298
  179. package/src/lib/generators/index.js +12 -10
  180. package/src/lib/generators/metadata-extractor.js +386 -387
  181. package/src/lib/generators/recap-generator.js +4 -4
  182. package/src/lib/generators/scaffold-generator.js +317 -0
  183. package/src/lib/generators/settings-generator.js +0 -1
  184. package/src/lib/phase-chain/phase-validator.js +64 -42
  185. package/src/lib/stack/stack-profile.js +2 -2
  186. package/src/lib/standards/digest-builder.js +72 -285
  187. package/src/lib/tasks/task-parser.js +11 -5
  188. package/src/lib/validators/architecture/architecture-validator.js +259 -387
  189. package/src/lib/validators/content/content-validator.js +287 -287
  190. package/src/lib/validators/css/css-validator.js +340 -352
  191. package/src/lib/validators/design-system/design-system-validator.js +11 -5
  192. package/src/lib/validators/packages/package-validator.js +347 -360
  193. package/src/lib/validators/shared/issue-counter.js +14 -18
  194. package/src/lib/validators/validation-runner.js +3 -19
  195. package/src/scripts/setup-infra.js +1 -1
  196. package/src/utils/agents-installer.js +24 -3
  197. package/src/utils/file-copier.js +1 -0
  198. package/src/utils/hooks-installer.js +21 -19
  199. package/src/utils/skills-installer.js +178 -178
  200. package/framework/agents/architecture/prompt-engineer.md +0 -195
  201. package/framework/agents/backend/api-designer.md +0 -106
  202. package/framework/agents/frontend/blazor-builder.md +0 -229
  203. package/framework/agents/frontend/nextjs-ui-specialist.md +0 -218
  204. package/framework/agents/infrastructure/azure-architect.md +0 -150
  205. package/framework/agents/infrastructure/azure-deploy-specialist.md +0 -707
  206. package/framework/agents/infrastructure/bicep-architect.md +0 -132
  207. package/framework/agents/infrastructure/container-specialist.md +0 -137
  208. package/framework/agents/infrastructure/devops-engineer.md +0 -126
  209. package/framework/agents/integrations/azure-identity.md +0 -148
  210. package/framework/agents/quality/code-analyzer.md +0 -239
  211. package/framework/agents/quality/testing-specialist.md +0 -130
  212. package/framework/hooks/claude-code/notification/approval-reminder.js +0 -57
  213. package/framework/hooks/claude-code/post-tool-use/context-refresh.js +0 -109
  214. package/framework/hooks/claude-code/post-tool-use/skill-reminder.js +0 -78
  215. package/framework/index/troubleshooting-index.json +0 -184
  216. package/framework/rules/testing-standards.md +0 -14
  217. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +0 -230
  218. package/framework/skills/level-0-meta/morph-replicate/references/blazor-html-mapping.md +0 -70
  219. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +0 -256
  220. package/framework/skills/level-1-workflows/morph-phase-clarify/references/clarifications-example.md +0 -117
  221. package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +0 -269
  222. package/framework/standards/ai-agents/blazor-ui.md +0 -364
  223. package/framework/standards/architecture/ddd/aggregates.md +0 -120
  224. package/framework/standards/architecture/ddd/bounded-contexts.md +0 -105
  225. package/framework/standards/architecture/ddd/complexity-levels.md +0 -108
  226. package/framework/standards/architecture/ddd/entities.md +0 -99
  227. package/framework/standards/architecture/ddd/ubiquitous-language.md +0 -58
  228. package/framework/standards/architecture/ddd/value-objects.md +0 -124
  229. package/framework/standards/backend/api/minimal-api.md +0 -494
  230. package/framework/standards/backend/api/rest.md +0 -492
  231. package/framework/standards/backend/authentication/passkeys.md +0 -428
  232. package/framework/standards/backend/database/ef-core.md +0 -199
  233. package/framework/standards/backend/database/migrations.md +0 -393
  234. package/framework/standards/backend/database/repository-patterns.md +0 -528
  235. package/framework/standards/backend/dotnet/async.md +0 -366
  236. package/framework/standards/backend/dotnet/core.md +0 -117
  237. package/framework/standards/backend/dotnet/di.md +0 -439
  238. package/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
  239. package/framework/standards/context/analytics.md +0 -96
  240. package/framework/standards/context/bundles.md +0 -110
  241. package/framework/standards/context/priming.md +0 -78
  242. package/framework/standards/core/architecture.md +0 -185
  243. package/framework/standards/core/coding.md +0 -214
  244. package/framework/standards/core/git-branching-strategy.md +0 -403
  245. package/framework/standards/core/git.md +0 -185
  246. package/framework/standards/core/testing.md +0 -295
  247. package/framework/standards/data/nosql/blob-storage.md +0 -102
  248. package/framework/standards/data/vector-search/azure-ai-search.md +0 -121
  249. package/framework/standards/frontend/blazor/design-checklist.md +0 -222
  250. package/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
  251. package/framework/standards/frontend/blazor/fluent-ui.md +0 -137
  252. package/framework/standards/frontend/blazor/html-conversion.md +0 -184
  253. package/framework/standards/frontend/blazor/lifecycle.md +0 -195
  254. package/framework/standards/frontend/blazor/pitfalls.md +0 -198
  255. package/framework/standards/frontend/blazor/state.md +0 -191
  256. package/framework/standards/frontend/design-system/aesthetic-direction.md +0 -213
  257. package/framework/standards/infrastructure/azure/azure.md +0 -624
  258. package/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
  259. package/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
  260. package/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
  261. package/framework/standards/infrastructure/azure/services/functions.md +0 -486
  262. package/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
  263. package/framework/standards/infrastructure/azure/services/storage.md +0 -407
  264. package/framework/standards/infrastructure/vercel/vercel-database.md +0 -106
  265. package/framework/standards/integration/api/graphql.md +0 -91
  266. package/framework/standards/integration/api/grpc.md +0 -114
  267. package/framework/standards/integration/api/rest-design.md +0 -95
  268. package/framework/standards/integration/event-driven/cqrs.md +0 -101
  269. package/framework/standards/integration/event-driven/event-sourcing.md +0 -124
  270. package/framework/standards/integration/event-driven/service-bus.md +0 -95
  271. package/framework/standards/observability/logging.md +0 -131
  272. package/framework/standards/observability/metrics.md +0 -121
  273. package/framework/standards/observability/monitoring.md +0 -114
  274. package/framework/standards/observability/tracing.md +0 -132
  275. package/framework/standards/workflows/parallel-execution.md +0 -112
  276. package/framework/standards/workflows/thread-management.md +0 -113
  277. package/framework/templates/code/dotnet/backend/service.cs +0 -139
  278. package/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
  279. package/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
  280. package/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
  281. package/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
  282. package/framework/templates/code/dotnet/contracts/contracts-level1.cs +0 -69
  283. package/framework/templates/code/dotnet/contracts/contracts-level2.cs +0 -86
  284. package/framework/templates/code/dotnet/contracts/contracts-level3.cs +0 -41
  285. package/framework/templates/code/dotnet/frontend/component.razor +0 -239
  286. package/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
  287. package/framework/templates/infrastructure/azure/README.md +0 -286
  288. package/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
  289. package/framework/templates/infrastructure/azure/app-service.bicep +0 -164
  290. package/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
  291. package/framework/templates/infrastructure/azure/container-app.bicep +0 -156
  292. package/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
  293. package/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
  294. package/framework/templates/infrastructure/azure/deploy.sh +0 -208
  295. package/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
  296. package/framework/templates/infrastructure/azure/main.bicep +0 -189
  297. package/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
  298. package/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
  299. package/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
  300. package/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
  301. package/framework/templates/infrastructure/azure/storage.bicep +0 -106
  302. package/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
  303. package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
  304. package/framework/templates/integrations/azure-identity-config.cs +0 -288
  305. package/framework/templates/project-structure/dotnet-ddd.md +0 -70
  306. package/framework/templates/saas/subscription.cs +0 -347
  307. package/framework/templates/saas/tenant.cs +0 -338
  308. package/framework/templates/ui/FluentDesignTheme.cs +0 -149
  309. package/framework/templates/ui/MudTheme.cs +0 -281
  310. package/framework/workflows/configs/nodejs-cli.json +0 -40
  311. package/src/commands/standards/context-budget.js +0 -89
  312. package/src/lib/standards/index.js +0 -7
  313. package/src/lib/standards/standards-context-injector.js +0 -302
  314. package/src/lib/validators/blazor/blazor-concurrency-analyzer.js +0 -316
  315. package/src/lib/validators/blazor/blazor-state-validator.js +0 -279
  316. package/src/lib/validators/blazor/blazor-validator.js +0 -369
  317. package/src/lib/validators/blazor/index.js +0 -9
@@ -1,256 +0,0 @@
1
- ---
2
- name: morph-phase-clarify
3
- description: MORPH-SPEC Phase 3 (Clarify). Iterative clarification loop driven by a satisfaction score (0-100). Generates targeted questions per round, always presents "End Clarify" as exit option, and stops when score >= 85 or user exits. Use after design approval to eliminate spec ambiguities before task breakdown begins.
4
- argument-hint: "[feature-name]"
5
- user-invocable: false
6
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.11.1"
8
- ---
9
-
10
- # MORPH Clarify — Phase 3
11
-
12
- > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
13
-
14
- Eliminate spec ambiguities through an iterative question loop until the spec has sufficient quality to generate tasks.
15
-
16
- ## Prerequisites
17
-
18
- - [ ] Phase 2 (Design) completed
19
- - [ ] `spec.md` approved by user
20
- - [ ] `contracts.cs` (or `contracts.ts`) defined
21
-
22
- ## Recommended Tools
23
-
24
- > **Ref:** `framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md` for complete guide.
25
- > **Example:** `references/clarifications-example.md` — filled-in clarifications.md showing expected Q&A format.
26
-
27
- | Action | Tool | Alternative |
28
- |--------|------|-------------|
29
- | Read spec + contracts | **Read** all design outputs | — |
30
- | Verify technical feasibility | **Context7 MCP** `query_docs()` | **WebSearch** |
31
- | Check external issues/limitations | **GitHub MCP** `search_issues()` | — |
32
- | Ask clarifying questions | **AskUserQuestion** (never plain text) | — |
33
- | Update spec with clarifications | **Edit** spec.md | — |
34
- | Create clarifications.md | **Write** | — |
35
- | Update state | **Bash** `morph-spec state mark-output $ARGUMENTS clarifications` | — |
36
-
37
- ---
38
-
39
- ## Satisfaction Scoring System
40
-
41
- Before each round, calculate the **Satisfaction Score (0-100)** by evaluating the current spec:
42
-
43
- | Dimension | Pts | Maximum Score Criteria |
44
- |-----------|-----|----------------------|
45
- | **Functional completeness** | 25 | All requirements have measurable acceptance criteria (no vague "should", "may", "generally") |
46
- | **Failure coverage** | 20 | All error paths have defined behavior (invalid input, not found, timeout, unauthorized) |
47
- | **Edge cases** | 20 | Boundaries, concurrent states, empty/extreme inputs documented |
48
- | **Definitional clarity** | 20 | No critical term undefined, no "TBD", no "to be defined" |
49
- | **Integration contracts** | 15 | External dependencies have payload format, errors, and retry policy defined |
50
-
51
- **Thresholds:**
52
-
53
- | Score | Action |
54
- |-------|--------|
55
- | >= 85 | Satisfied. Present results and offer "End Clarify" as the primary option |
56
- | 70-84 | Continue. Focus questions on the lowest-scoring dimensions |
57
- | < 70 | Continue. Broad questions covering the largest gaps |
58
-
59
- > The score rises as answers are incorporated. There's no fixed maximum rounds — the loop ends when score >= 85 **or** the user chooses to end.
60
-
61
- ---
62
-
63
- ## Workflow
64
-
65
- ### Initialization
66
-
67
- **Step 0 (BEFORE any writing) — Ensure clarify phase:**
68
-
69
- ```bash
70
- morph-spec state get $ARGUMENTS
71
- ```
72
-
73
- Check the `"phase"` field in the output:
74
-
75
- **If `"phase": "clarify"`** → correct phase, proceed.
76
-
77
- **If `"phase": "design"`** → run in sequence:
78
- 1. `morph-spec approve $ARGUMENTS design`
79
- 2. `morph-spec phase advance $ARGUMENTS` (→ clarify)
80
-
81
- **Any other value** → STOP — inconsistent state, report to user.
82
-
83
- > **Rule:** Never write `clarifications.md` or update `spec.md` until the phase is `clarify`.
84
-
85
- ---
86
-
87
- Read the base files in PARALLEL:
88
-
89
- ```
90
- Read: .morph/features/$ARGUMENTS/1-design/spec.md
91
- + Read: .morph/features/$ARGUMENTS/1-design/contracts.cs (or contracts.ts for TypeScript)
92
- + Read: .morph/features/$ARGUMENTS/1-design/schema-analysis.md (if exists)
93
- ```
94
-
95
- Calculate the initial score. Track accumulated answers from prior rounds to avoid repeating already-answered questions.
96
-
97
- ## MANDATORY: Session Tasks
98
-
99
- > **BEFORE starting clarification work**, analyze the spec quality and create session tasks.
100
- >
101
- > **Rules:** Minimum 2 tasks, typically 2-4. Mark `in_progress` before starting, `completed` after.
102
- > For the clarification loop, update the task `subject` with round and score progress.
103
- >
104
- > **Typical tasks:** initial score calculation, clarification rounds (iterative), output generation
105
-
106
- ---
107
-
108
- ### Main Loop
109
-
110
- **Repeat until: score >= 85 OR user chooses to end.**
111
-
112
- #### A. Calculate Current Round Score
113
-
114
- Score each dimension based on the spec + accumulated answers. Note which dimensions are weakest — they guide this round's questions.
115
-
116
- #### B. Identify New Questions
117
-
118
- Analyze only what **hasn't been answered yet**. Categorize by dimension:
119
-
120
- | Category | Example Questions |
121
- |----------|-------------------|
122
- | **Validation** | Field limits, accepted formats, business rules |
123
- | **Behavior** | What happens when X fails? Empty state? Loading state? |
124
- | **Priority** | Must-have vs nice-to-have? MVP vs v2? |
125
- | **Integration** | Webhook vs polling? Retry policy? Timeout? |
126
- | **Performance** | Expected volume? Response SLA? |
127
- | **UX** | Error message shown to user? Visual feedback? |
128
-
129
- #### C. Present Questions via `AskUserQuestion`
130
-
131
- **Why this matters:** AskUserQuestion gives structured options the user can click — far better UX than walls of text. It also captures answers programmatically for the clarifications.md output.
132
-
133
- **Rules:**
134
-
135
- 1. Use `AskUserQuestion` — **NEVER list questions as plain text**
136
- 2. Maximum **4 questions per call** (tool limit)
137
- 3. If there are more than 3 new questions, make sequential calls — the **exit option always appears in the last call of each round**
138
- 4. **Always include the following question as the last in the final batch of each round:**
139
-
140
- ```json
141
- {
142
- "header": "End Clarify?",
143
- "question": "End the Clarify phase now or continue refining the spec?",
144
- "multiSelect": false,
145
- "options": [
146
- {
147
- "label": "Continue refining",
148
- "description": "There are still open questions identified in this round"
149
- },
150
- {
151
- "label": "End Clarify",
152
- "description": "Proceed to Plan phase with the spec in its current state"
153
- }
154
- ]
155
- }
156
- ```
157
-
158
- > If score >= 85, adjust the first option label to: `"Continue (optional)"` with description: `"Score ${score}/100 — spec is satisfactory, but you can refine further"`
159
-
160
- #### D. Wait and Incorporate Answers
161
-
162
- **Do not proceed before receiving all responses.**
163
-
164
- After receiving answers:
165
- 1. Check if the answer is consistent with `contracts.cs` and `schema-analysis.md`
166
- 2. If any answer is ambiguous or contradictory → ask for clarification before updating
167
- 3. Update `spec.md` with:
168
- - Section `## Clarifications (Phase 3)` with structured Q&A
169
- - Updates to affected functional sections
170
- - New edge cases in `## Edge Cases`
171
-
172
- #### E. Check Exit Condition
173
-
174
- - User chose **"End Clarify"** → exit loop
175
- - Score >= 85 AND no new questions identified → exit loop
176
- - Otherwise → return to A
177
-
178
- ---
179
-
180
- ### Post-Loop: Generate Outputs
181
-
182
- **Step 1: Create `clarifications.md`**
183
-
184
- Write to `.morph/features/$ARGUMENTS/1-design/clarifications.md`:
185
-
186
- ```markdown
187
- # Clarifications — {Feature Name}
188
-
189
- **Phase:** Clarify (Phase 3)
190
- **Rounds completed:** {N}
191
- **Final score:** {score}/100
192
- **Status:** Resolved — incorporated into spec.md
193
-
194
- ---
195
-
196
- ## Questions & Answers
197
-
198
- ### Q{N}: {Title}
199
- **Question:** {question}
200
- **Answer:** {user's answer}
201
- **Spec Updates:** {which sections were updated}
202
- **Priority:** High/Medium/Low
203
- **Resolved:** Yes
204
-
205
- ---
206
-
207
- ## Edge Cases
208
-
209
- ### EC{N}: {Name}
210
- **Scenario:** {when it happens}
211
- **Expected Behavior:** {how the system reacts}
212
- **Implementation Notes:** {tips}
213
-
214
- ---
215
-
216
- ## Summary
217
-
218
- | | Count |
219
- |---|---|
220
- | Questions Answered | {N} |
221
- | Edge Cases Documented | {N} |
222
- | Spec Sections Updated | {N} |
223
- | Final Score | {score}/100 |
224
- ```
225
-
226
- **Step 2: Update State**
227
-
228
- ```bash
229
- morph-spec state mark-output $ARGUMENTS clarifications
230
- ```
231
-
232
- ---
233
-
234
- ## Phase Outputs
235
-
236
- <!-- morph-outputs:clarify -->
237
- | Output | Path |
238
- |--------|------|
239
- | `clarifications` | `.morph/features/{feature}/1-design/clarifications.md` |
240
- <!-- /morph-outputs -->
241
-
242
- ## Advancement Criteria
243
-
244
- - [x] Satisfaction score >= 85 OR user opted to end
245
- - [x] All answers are consistent with `contracts.cs`
246
- - [x] `spec.md` updated with clarifications and edge cases
247
- - [x] `clarifications.md` created with Q&A and final score
248
- - [x] State updated (`mark-output clarifications`)
249
-
250
- ---
251
-
252
- ```bash
253
- morph-spec phase advance $ARGUMENTS
254
- ```
255
-
256
- Continue automatically to Phase 4 (Plan) after clarifications.md is generated.
@@ -1,117 +0,0 @@
1
- # Clarifications - Photo Processing Pipeline
2
-
3
- > Example of a well-structured clarifications.md. Filled-in reference — not a template.
4
- > Each Q&A is concise: question raised during design review → answer → spec update.
5
-
6
- **Feature**: photo-processing
7
- **Phase**: CLARIFY (Phase 3)
8
- **Status**: Resolved — all items incorporated into spec.md
9
-
10
- ---
11
-
12
- ## Questions & Answers
13
-
14
- ### Q1: File size limit — 10MB for all users or tiered?
15
-
16
- **Question:** The spec says max 10MB but the proposal mentioned "higher for pro users." Should we implement tiered limits now?
17
-
18
- **Answer:** Free tier: 10MB. Pro tier: 50MB. Enforce via `[Authorize]` + claims check in the upload endpoint. YAGNI — don't build a generic tier system, just check the plan claim directly.
19
-
20
- **Spec Updates:**
21
- - Updated `spec.md` FR1 to specify tiered limits
22
- - Added `CanUploadLargeFile` policy to Security section
23
- - Updated `UploadPhotoCommand` to accept `userPlan` claim
24
-
25
- **Priority:** High — affects contracts
26
- **Resolved:** ✅ Yes
27
-
28
- ---
29
-
30
- ### Q2: Processed photo retention — indefinite or expiring?
31
-
32
- **Question:** Should processed photos in Blob Storage be kept forever, or do they expire?
33
-
34
- **Answer:** Auto-delete after 30 days via Blob lifecycle policy (no code needed, configured in Azure). Free tier: 7 days. Pro tier: 30 days. This is infrastructure-only — `ProcessingJob.ProcessedPhotoUrl` stays in DB but becomes a dead link after expiry.
35
-
36
- **Spec Updates:**
37
- - Added ADR-003 (Blob lifecycle policy over code-based cleanup)
38
- - Added note to `AzureBlobStorageService` about lifecycle dependency
39
-
40
- **Priority:** Low — no code change
41
- **Resolved:** ✅ Yes
42
-
43
- ---
44
-
45
- ### Q3: AI API — async webhook or polling?
46
-
47
- **Question:** spec.md assumed Hangfire polls job completion, but the AI vendor docs mention a webhook callback option.
48
-
49
- **Answer:** Use fire-and-forget HTTP call + Hangfire continuation (not webhook). The AI API's webhook requires a public URL we don't have in dev. Fire-and-forget is simpler and testable. If the vendor SLA changes, we can swap to webhook via `IPhotoProcessingJob` interface — no consumer changes needed.
50
-
51
- **Spec Updates:**
52
- - Clarified Processing Flow in spec.md to show fire-and-forget + await pattern
53
- - Added to Risks: "AI API webhook migration path if needed"
54
-
55
- **Priority:** High — affects job implementation
56
- **Resolved:** ✅ Yes
57
-
58
- ---
59
-
60
- ## Edge Cases
61
-
62
- ### EC1: Upload during Hangfire downtime
63
-
64
- **Scenario:** User uploads successfully but Hangfire server is stopped — job never executes.
65
-
66
- **Expected Behavior:** Job stays in `Pending` indefinitely. On next Hangfire server start, job auto-resumes (Hangfire persistent storage).
67
-
68
- **Solution:** No code change. Add monitoring alert if job stays Pending > 10 minutes.
69
-
70
- **Acceptance Criteria:**
71
- - [ ] `ProcessingJob` with status `Pending` survives Hangfire restart
72
- - [ ] Hangfire picks up orphaned jobs on startup (built-in behavior, covered by docs)
73
-
74
- ---
75
-
76
- ### EC2: Concurrent uploads of same file
77
-
78
- **Scenario:** User double-clicks Upload button, sending two identical requests simultaneously.
79
-
80
- **Expected Behavior:** Two separate `ProcessingJob` records created. Both process independently. No deduplication (not required at MVP scale).
81
-
82
- **Solution:** No code change. Each request gets a fresh GUID. If deduplication becomes needed, add idempotency key header in v2.
83
-
84
- ---
85
-
86
- ## Business Rules Clarified
87
-
88
- ### BR1: Only the uploading user can download their processed photo
89
-
90
- **Rule:** `GET /api/download/{jobId}` must check `job.UserId == currentUserId`. Return 403 if mismatch.
91
-
92
- **Rationale:** Users might guess sequential GUIDs (they can't since we use random GUIDs, but defense in depth).
93
-
94
- **Implementation:** Add `[Authorize]` + ownership check to download endpoint. Already in Security section of spec.md.
95
-
96
- ---
97
-
98
- ## Summary
99
-
100
- | | Count |
101
- |---|---|
102
- | Questions Answered | 3 / 3 |
103
- | Edge Cases Documented | 2 |
104
- | Business Rules Clarified | 1 |
105
- | Spec Updates Made | 6 |
106
-
107
- ## Next Steps
108
-
109
- 1. [x] All questions resolved
110
- 2. [x] `spec.md` updated with all clarifications
111
- 3. [x] `contracts.cs` updated (`UploadPhotoCommand` + plan claim)
112
- 4. [x] Stakeholder approval received
113
- 5. [ ] Advance to Phase 4 (Tasks)
114
-
115
- ---
116
-
117
- *MORPH-SPEC by Polymorphism Tech*
@@ -1,269 +0,0 @@
1
- ---
2
- name: morph-phase-setup
3
- description: MORPH-SPEC Phase 1 (Setup). Reads project context, detects tech stack, activates relevant agents by reading agents.json, and confirms the feature environment. Use at the start of every MORPH-SPEC feature workflow after proposal approval to load standards and initialize the context.
4
- argument-hint: "[feature-name]"
5
- user-invocable: false
6
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.11.1"
8
- ---
9
-
10
- # MORPH Setup — Phase 1
11
-
12
- > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
13
-
14
- Initialize the context and prepare the environment for an approved feature.
15
-
16
- ## Prerequisites
17
-
18
- - [ ] Feature has `proposal.md` created (Phase 0 complete)
19
- - [ ] Proposal was approved by the user
20
- - [ ] Agents were detected and registered in state
21
-
22
- ## Recommended Tools
23
-
24
- > **Ref:** `framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md` for full guide.
25
- > **Ref:** `framework/standards/integration/mcp/mcp-tools.md` for MCP reference.
26
-
27
- | Action | Tool | Alternative |
28
- |--------|------|-------------|
29
- | Verify state | **Bash** `morph-spec state get` | — |
30
- | Detect agents + standards | **Bash** `morph-spec detect-agents $ARGUMENTS --json` → parse → **Bash** `morph-spec state add-agent` | **Read** agents.json manually |
31
- | Read project context | **Read** `.morph/context/README.md` | — |
32
- | Read config | **Read** `.morph/config/config.json` | — |
33
- | Detect VSA architecture | **Read** `.morph/config/config.json` → check `config.architecture.style` | — |
34
- | Scan project structure | **Glob** `src/**/*.{ts,tsx,cs}` | — |
35
- | Repository metadata | **GitHub MCP** `get_repo()` | **Bash** `gh repo view --json` |
36
- | Update state | **Bash** `morph-spec state set` | — |
37
-
38
- **MCPs for this phase:** GitHub (optional — repo metadata).
39
-
40
- **Anti-patterns:**
41
- - Do not read agents.json manually for keyword matching — use `morph-spec detect-agents` CLI
42
- - Do not use a Task agent for agent detection (CLI is faster and consistent)
43
- - Do not use WebSearch for local project info (use Read/Glob)
44
-
45
- ---
46
-
47
- ## Workflow
48
-
49
- ### ENTRY CHECKPOINT: Verify Prerequisites
50
-
51
- Before proceeding with setup:
52
-
53
- - [ ] Does `proposal.md` exist in `.morph/features/$ARGUMENTS/0-proposal/`?
54
- - [ ] Was the proposal presented and approved by the user?
55
- - [ ] Is the feature registered in state?
56
-
57
- If any checkbox is NOT checked → go back to Phase 0 (Proposal).
58
-
59
- ---
60
-
61
- ## MANDATORY: Session Tasks
62
-
63
- > **BEFORE starting any setup work**, analyze the steps below and create session tasks.
64
- >
65
- > **Rules:** Minimum 2 tasks, typically 3-5. Mark `in_progress` before starting, `completed` after.
66
- >
67
- > **Typical tasks:** agent detection, MCP validation, stack confirmation, state configuration
68
-
69
- ---
70
-
71
- ### Step 1: Load Project Context
72
-
73
- Read these files first — they inform all subsequent decisions:
74
-
75
- ```bash
76
- morph-spec state get $ARGUMENTS
77
- ```
78
-
79
- If the feature doesn't exist in state, go back to Phase 0.
80
-
81
- Then read:
82
- - `.morph/context/README.md` — project overview, tech stack, architecture
83
- - `.morph/config/config.json` — project configuration
84
-
85
- ### Step 2: Detect Agents and Load Standards
86
-
87
- #### Step 2.0: Detect Architecture Style and Activate Architect
88
-
89
- Read `.morph/config/config.json` and check `config.architecture.style`:
90
-
91
- | Value | Action |
92
- |-------|--------|
93
- | `"vertical-slice"` | `morph-spec state add-agent $ARGUMENTS vsa-architect` |
94
- | absent / any other value | `morph-spec state add-agent $ARGUMENTS domain-architect` |
95
-
96
- Proceed with normal keyword detection for all other agents. The architect was already added above — skip it during keyword matching to avoid duplication.
97
-
98
- #### Step 2.1: Keyword Detection
99
-
100
- Use the `detect-agents` CLI to match agent keywords against the proposal (excludes architects already handled in Step 2.0):
101
-
102
- ```bash
103
- morph-spec detect-agents $ARGUMENTS --exclude domain-architect,vsa-architect --json
104
- ```
105
-
106
- This reads the proposal from `.morph/features/$ARGUMENTS/0-proposal/proposal.md` and agents.json, returning JSON with `detected[]` and `skipped[]` arrays. Agents with `active_phases: ['*']` are always included.
107
-
108
- Parse the JSON output and add each detected agent to state:
109
-
110
- ```bash
111
- morph-spec state add-agent $ARGUMENTS {agent-id}
112
- ```
113
-
114
- Run `add-agent` once per detected agent ID from the `detected[]` array.
115
-
116
- **To load standards for detected agents:**
117
- - For each active agent, read the standards referenced by the `standards[]` field in `agents.json`
118
- - Standard files are located at `.morph/framework/standards/{path}`
119
-
120
- **Standards resolution order:**
121
- 1. `.morph/context/*.md` — project overrides (highest priority)
122
- 2. `.morph/framework/standards/` — standards installed by morph-spec
123
- 3. `framework/standards/` — npm package standards (fallback)
124
-
125
- ### Step 2.5: Validate MCP Connections
126
-
127
- Check that configured MCPs are working before proceeding.
128
-
129
- **1. Collect recommended MCPs:**
130
- - Read `framework/phases.json` → for each phase in the feature's workflow, collect `recommendedMCPs[]`
131
- - Read `framework/skills/level-0-meta/mcp-registry.json` → get `healthCheck` for each MCP
132
-
133
- **2. Identify configured MCPs:**
134
- - Read `.claude/settings.local.json` → identify which MCPs are in `mcpServers`
135
-
136
- **3. For each MCP that is CONFIGURED AND RECOMMENDED:**
137
- 1. Search your available tools for one containing `healthCheck.toolPattern` in the name
138
- 2. If the tool exists → execute the `healthCheck.testCall` with `healthCheck.testParams`
139
- 3. Evaluate the result:
140
-
141
- | Result | Action |
142
- |--------|--------|
143
- | **Success** | `✓ {MCP} — connection verified` |
144
- | **Tool not found** | `○ {MCP} — needs restart to activate` |
145
- | **Error** | → Use `AskUserQuestion` with 3 options (below) |
146
-
147
- **On error — ask the user:**
148
-
149
- Use `AskUserQuestion` with header `"{MCP}"` and options:
150
- - **Continue without {MCP}** — show the `fallback` field from the registry and proceed
151
- - **Reconfigure credentials** — collect new credentials and update `.claude/settings.local.json`
152
- - **Stop setup** — abort and report what needs to be fixed
153
-
154
- **4. For MCPs RECOMMENDED but NOT CONFIGURED:**
155
- - Print `△ {MCP} — not configured (fallback: {registry.fallback})`
156
- - Suggestion: `Tip: configure with /morph-init refresh or morph-spec mcp setup`
157
-
158
- **Summary:** Show a status table for each MCP before proceeding:
159
- ```
160
- MCP Readiness:
161
- ✓ context7 — connection verified
162
- ○ playwright — needs restart
163
- △ supabase — not configured (fallback: Grep + Read for schema)
164
- ```
165
-
166
- ---
167
-
168
- ### Step 2.9: Check for Missing Agents
169
-
170
- Run a quick check to verify all expected agents are installed for this project's stack:
171
-
172
- ```bash
173
- morph-spec doctor 2>&1 | grep -A 1 "agents completeness"
174
- ```
175
-
176
- If the output shows **missing agents**, inform the user:
177
-
178
- > ⚠ Some agents for your stack are not installed. Run `morph-spec setup-infra` to install them.
179
-
180
- Use `AskUserQuestion` with header `"Agents"` and options:
181
- - **Install now** — run `morph-spec setup-infra` to reinstall with current stack tags
182
- - **Continue without** — proceed with available agents (may lack specialized support)
183
-
184
- If "Install now" is selected, run the command and continue.
185
-
186
- ---
187
-
188
- ### Step 3: Confirm Stack
189
-
190
- Based on the proposal and context, confirm:
191
- - Tech stack (Blazor Server, Next.js, .NET API, Node.js CLI, etc.)
192
- - Applicable architectural patterns
193
- - Existing reusable components
194
-
195
- ### Step 4: List Active Agents and Dispatch Preview
196
-
197
- Show the agents detected from the proposal:
198
-
199
- ```bash
200
- morph-spec state get $ARGUMENTS
201
- ```
202
-
203
- Parse the JSON and list `activeAgents` with their emojis/icons and responsibilities (look up each agent in `.morph/framework/agents.json` for the `icon` field).
204
-
205
- **If there are 2+ specialist agents active**, show the dispatch plan for the next phase:
206
-
207
- ```bash
208
- morph-spec dispatch-agents $ARGUMENTS design
209
- ```
210
-
211
- This shows which agents will be dispatched in parallel during the design phase and which tasks they'll execute.
212
-
213
- > **Important mapping:** `agents[].id` from the dispatch config = `subagent_type` in the `Agent` tool.
214
- > Example: `id: "nextjs-expert"` → `Agent(subagent_type=nextjs-expert, prompt=agent.taskPrompt)`.
215
- > Each `id` corresponds to the `name:` field in the frontmatter of the file in `.claude/agents/`.
216
-
217
- ### Step 5: Update State and Determine Next Phase
218
-
219
- Update the feature state:
220
-
221
- ```bash
222
- morph-spec state set $ARGUMENTS status in_progress
223
- ```
224
-
225
- **Determine the next phase** based on active agents:
226
-
227
- | Condition | Next Phase |
228
- |-----------|------------|
229
- | `ui-designer` is in activeAgents | **uiux** (UI/UX phase) |
230
- | `ui-designer` is NOT in activeAgents | **design** (skip uiux) |
231
-
232
- Announce the next phase clearly to the user.
233
-
234
- ## Outputs
235
-
236
- Present to the user:
237
-
238
- 1. **Context loaded**:
239
- - Project name
240
- - Confirmed stack
241
- - Applicable standards
242
-
243
- 2. **Active agents**:
244
- - Agent list with emojis/icons and tier
245
- - Responsibilities of each agent
246
-
247
- 3. **Next phase**:
248
- - Which phase comes next (uiux or design)
249
- - Why (ui-designer presence or absence)
250
-
251
- ## Advancement Criteria
252
-
253
- - [x] Project context loaded
254
- - [x] Standards identified (framework + project)
255
- - [x] Stack confirmed
256
- - [x] Agents listed with icons
257
- - [x] State updated to in_progress
258
- - [x] Next phase determined
259
-
260
- ---
261
-
262
- ## Worktree Note
263
-
264
- Worktree isolation is handled automatically by `/morph-proposal` Step 0 and `/morph-apply` Step 0.
265
- If a worktree is active, all file operations MUST use the worktree path (injected in session context as `WORKTREE_PATH`).
266
-
267
- ---
268
-
269
- Continue automatically to the next phase (UI/UX if ui-designer detected, otherwise Design).