@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
@@ -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.12.0"
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.12.0"
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).