@polymorphism-tech/morph-spec 4.10.9 → 4.11.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 (145) hide show
  1. package/CLAUDE.md +3 -3
  2. package/LICENSE +71 -71
  3. package/README.md +5 -11
  4. package/bin/morph-spec.js +23 -1
  5. package/bin/task-manager.js +5 -5
  6. package/claude-plugin.json +1 -1
  7. package/docs/CHEATSHEET.md +1 -1
  8. package/docs/QUICKSTART.md +2 -8
  9. package/framework/agents/README.md +14 -14
  10. package/framework/agents/architecture/standards-architect.md +159 -159
  11. package/framework/agents/frontend/css-specialist.md +1 -1
  12. package/framework/agents/infrastructure/azure-architect.md +149 -149
  13. package/framework/agents/infrastructure/azure-deploy-specialist.md +4 -4
  14. package/framework/agents/infrastructure/infra-architect.md +48 -48
  15. package/framework/commands/morph-apply.md +18 -18
  16. package/framework/commands/morph-preflight.md +3 -3
  17. package/framework/commands/morph-proposal.md +15 -15
  18. package/framework/commands/morph-status.md +3 -3
  19. package/framework/commands/morph-troubleshoot.md +1 -1
  20. package/framework/hooks/README.md +204 -204
  21. package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +2 -2
  22. package/framework/hooks/claude-code/session-start/inject-morph-context.js +1 -1
  23. package/framework/hooks/claude-code/teammate-idle/teammate-idle.js +3 -3
  24. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +2 -2
  25. package/framework/hooks/git/pre-commit/agents.sh +1 -1
  26. package/framework/hooks/shared/phase-utils.js +139 -139
  27. package/framework/rules/csharp-standards.md +13 -13
  28. package/framework/rules/frontend-standards.md +13 -13
  29. package/framework/rules/infrastructure-standards.md +16 -16
  30. package/framework/rules/testing-standards.md +14 -14
  31. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +8 -8
  32. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +3 -3
  33. package/framework/skills/level-0-meta/morph-code-review-nextjs/references/review-example-nextjs.md +254 -254
  34. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +1 -1
  35. package/framework/skills/level-0-meta/morph-init/SKILL.md +11 -11
  36. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +3 -3
  37. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +1 -1
  38. package/framework/skills/level-0-meta/morph-simulation-checklist/SKILL.md +4 -4
  39. package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +25 -25
  40. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +8 -8
  41. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +7 -7
  42. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +4 -4
  43. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +23 -23
  44. package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +1 -1
  45. package/framework/skills/level-1-workflows/morph-phase-implement/.morph/logs/activity.json +38 -0
  46. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +29 -29
  47. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +4 -4
  48. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +9 -9
  49. package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +17 -17
  50. package/framework/skills/level-1-workflows/morph-phase-tasks/.morph/logs/activity.json +14 -0
  51. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +12 -12
  52. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +16 -16
  53. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +5 -5
  54. package/framework/standards/STANDARDS.json +2338 -2041
  55. package/framework/standards/frontend/nextjs/nextjs-patterns.md +17 -17
  56. package/framework/standards/infrastructure/supabase/supabase-custom-jwt.md +206 -0
  57. package/framework/templates/.idea/morph-templates.xml +92 -0
  58. package/framework/templates/.vscode/morph-templates.code-snippets +186 -0
  59. package/framework/templates/README.md +814 -814
  60. package/framework/templates/code/dotnet/contracts/Commands.cs +74 -74
  61. package/framework/templates/code/dotnet/contracts/Entities.cs +25 -25
  62. package/framework/templates/code/dotnet/contracts/Queries.cs +74 -74
  63. package/framework/templates/code/dotnet/contracts/README.md +74 -74
  64. package/framework/templates/code/dotnet/contracts/api-contracts.cs +173 -173
  65. package/framework/templates/code/dotnet/frontend/component.razor +239 -239
  66. package/framework/templates/code/dotnet/jobs/agent.cs +163 -163
  67. package/framework/templates/code/dotnet/jobs/job.cs +171 -171
  68. package/framework/templates/code/dotnet/test.cs +239 -239
  69. package/framework/templates/code/sql/rls-policy.sql +57 -57
  70. package/framework/templates/code/sql/supabase-migration.sql +100 -100
  71. package/framework/templates/code/sql/supabase-migration.template.sql +113 -113
  72. package/framework/templates/code/typescript/contracts.ts +168 -168
  73. package/framework/templates/context/CONTEXT.md +181 -181
  74. package/framework/templates/docs/proposal.md +182 -182
  75. package/framework/templates/docs/user-stories.md +34 -34
  76. package/framework/templates/examples/design-system-examples.md +357 -357
  77. package/framework/templates/examples/spec-examples.md +90 -90
  78. package/framework/templates/feature/decisions.md +187 -187
  79. package/framework/templates/feature/recap.md +146 -146
  80. package/framework/templates/feature/tasks.md +199 -199
  81. package/framework/templates/infrastructure/azure/README.md +286 -286
  82. package/framework/templates/infrastructure/azure/deploy-checklist.md +426 -426
  83. package/framework/templates/infrastructure/azure/parameters.dev.json +29 -29
  84. package/framework/templates/infrastructure/azure/parameters.prod.json +29 -29
  85. package/framework/templates/infrastructure/azure/parameters.staging.json +29 -29
  86. package/framework/templates/infrastructure/docker/docker-compose.template.yml +67 -67
  87. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
  88. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
  89. package/framework/templates/infrastructure/docker/easypanel.template.json +54 -54
  90. package/framework/workflows/README.md +18 -18
  91. package/framework/workflows/docs/enforcement-pipeline.md +1 -1
  92. package/framework/workflows/docs/full-morph.md +2 -2
  93. package/package.json +1 -1
  94. package/src/commands/agents/dispatch-agents.js +17 -0
  95. package/src/commands/agents/index.js +13 -13
  96. package/src/commands/agents/project-metrics.js +74 -0
  97. package/src/commands/project/doctor.js +3 -4
  98. package/src/commands/project/install-plugin-cmd.js +28 -28
  99. package/src/commands/project/setup-infra-cmd.js +12 -12
  100. package/src/commands/project/status.js +8 -1
  101. package/src/commands/scope/escalate.js +5 -3
  102. package/src/commands/standards/context-budget.js +89 -0
  103. package/src/commands/tasks/index.js +4 -4
  104. package/src/commands/templates/index.js +5 -5
  105. package/src/commands/utils/index.js +3 -3
  106. package/src/commands/validation/index.js +4 -4
  107. package/src/commands/validation/validate-feature.js +32 -3
  108. package/src/core/state/phase-state-machine.js +217 -217
  109. package/src/lib/agents/metrics-aggregator.js +56 -0
  110. package/src/lib/generators/design-system-generator.js +298 -298
  111. package/src/lib/generators/index.js +10 -10
  112. package/src/lib/generators/metadata-extractor.js +387 -387
  113. package/src/lib/stack-filter.js +65 -65
  114. package/src/lib/standards/digest-builder.js +57 -3
  115. package/src/lib/standards/index.js +7 -7
  116. package/src/lib/standards/standards-context-injector.js +302 -302
  117. package/src/lib/validators/architecture/architecture-validator.js +387 -387
  118. package/src/lib/validators/architecture/index.js +7 -7
  119. package/src/lib/validators/blazor/blazor-concurrency-analyzer.js +316 -316
  120. package/src/lib/validators/blazor/blazor-state-validator.js +279 -279
  121. package/src/lib/validators/blazor/blazor-validator.js +369 -369
  122. package/src/lib/validators/blazor/index.js +9 -9
  123. package/src/lib/validators/content/content-validator.js +287 -287
  124. package/src/lib/validators/content/index.js +7 -7
  125. package/src/lib/validators/contracts/index.js +7 -7
  126. package/src/lib/validators/css/css-validator.js +352 -352
  127. package/src/lib/validators/css/index.js +7 -7
  128. package/src/lib/validators/design-system/design-system-validator.js +231 -231
  129. package/src/lib/validators/design-system/index.js +7 -7
  130. package/src/lib/validators/nextjs/index.js +6 -6
  131. package/src/lib/validators/nextjs/next-component-validator.js +183 -183
  132. package/src/lib/validators/packages/index.js +7 -7
  133. package/src/lib/validators/packages/package-validator.js +360 -360
  134. package/src/lib/validators/shared/index.js +12 -12
  135. package/src/lib/validators/shared/issue-counter.js +18 -18
  136. package/src/lib/validators/shared/result-formatter.js +124 -124
  137. package/src/lib/validators/ui/index.js +7 -7
  138. package/src/lib/validators/ui/ui-contrast-validator.js +422 -422
  139. package/src/scripts/global-install.js +112 -58
  140. package/src/scripts/install-plugin.js +126 -126
  141. package/src/utils/claude-md-injector.js +90 -90
  142. package/src/utils/file-copier.js +200 -200
  143. package/src/utils/logger.js +32 -32
  144. package/src/utils/skills-installer.js +178 -178
  145. package/src/utils/version-checker.js +169 -175
@@ -14,10 +14,10 @@
14
14
  | Read project context | **Read** `.morph/context/README.md` | Single known file |
15
15
  | Read config | **Read** `.morph/config.json` | Single known file |
16
16
  | Find existing features | **Glob** `.morph/features/*/0-proposal/proposal.md` | Pattern search |
17
- | Detect project stack | **Read** `.morph/framework/agents.json` → match keywords → **Bash** `npx morph-spec state add-agent` | agents.json is the source of truth |
17
+ | Detect project stack | **Read** `.morph/framework/agents.json` → match keywords → **Bash** `morph-spec state add-agent` | agents.json is the source of truth |
18
18
  | Research external requirement | **WebSearch** | Current information needed |
19
- | Render proposal template | **Bash** `npx morph-spec template render docs/proposal ...` | CLI command |
20
- | Update state | **Bash** `npx morph-spec state mark-output {feature} proposal` | CLI command |
19
+ | Render proposal template | **Bash** `morph-spec template render docs/proposal ...` | CLI command |
20
+ | Update state | **Bash** `morph-spec state mark-output {feature} proposal` | CLI command |
21
21
 
22
22
  **MCPs used:** None typically. GitHub MCP if feature comes from an issue.
23
23
 
@@ -34,14 +34,14 @@
34
34
 
35
35
  | Action | Tool | Why |
36
36
  |--------|------|-----|
37
- | Verify feature state | **Bash** `npx morph-spec state get {feature}` | CLI command |
38
- | Detect agents + standards | **Read** `.morph/framework/agents.json` → match keywords → **Bash** `npx morph-spec state add-agent {f} {id}` per match | Keyword matching is fast inline |
37
+ | Verify feature state | **Bash** `morph-spec state get {feature}` | CLI command |
38
+ | Detect agents + standards | **Read** `.morph/framework/agents.json` → match keywords → **Bash** `morph-spec state add-agent {f} {id}` per match | Keyword matching is fast inline |
39
39
  | Read project context | **Read** `.morph/context/README.md` | Single file |
40
40
  | Read config | **Read** `.morph/config.json` | Single file |
41
41
  | Scan project structure | **Glob** `src/**/*.{ts,tsx,cs}` | Understand codebase layout |
42
42
  | Get repo metadata | **GitHub MCP** `get_repo()` | Structured repo info (if MCP available) |
43
- | Get dispatch config for next phases | **Bash** `npx morph-spec dispatch-agents {feature} design` | Shows which agents will be dispatched in design phase |
44
- | Update state | **Bash** `npx morph-spec state set ...` | CLI command |
43
+ | Get dispatch config for next phases | **Bash** `morph-spec dispatch-agents {feature} design` | Shows which agents will be dispatched in design phase |
44
+ | Update state | **Bash** `morph-spec state set ...` | CLI command |
45
45
 
46
46
  **MCPs used:** GitHub (optional — for repo metadata).
47
47
 
@@ -67,9 +67,9 @@
67
67
  | Inspecionar estrutura da página | **Playwright MCP** `browser_snapshot()` | **WebFetch** + parse manual |
68
68
  | Testar layout responsivo | **Playwright MCP** `browser_resize()` + `browser_take_screenshot()` | Manual testing |
69
69
  | Search for design references | **WebSearch** + **WebFetch** | External inspiration |
70
- | Render UI templates | **Bash** `npx morph-spec template render docs/ui-mockups ...` | CLI command |
71
- | Generate design system from CSS | **Bash** `npx morph-spec generate design-system --scan` | CLI command |
72
- | Update state | **Bash** `npx morph-spec state mark-output {feature} uiDesignSystem && npx morph-spec state mark-output {feature} uiMockups && npx morph-spec state mark-output {feature} uiComponents && npx morph-spec state mark-output {feature} uiFlows` | CLI command |
70
+ | Render UI templates | **Bash** `morph-spec template render docs/ui-mockups ...` | CLI command |
71
+ | Generate design system from CSS | **Bash** `morph-spec generate design-system --scan` | CLI command |
72
+ | Update state | **Bash** `morph-spec state mark-output {feature} uiDesignSystem && morph-spec state mark-output {feature} uiMockups && morph-spec state mark-output {feature} uiComponents && morph-spec state mark-output {feature} uiFlows` | CLI command |
73
73
 
74
74
  **MCPs used:** Playwright (live preview, page inspection), Context7 (component docs).
75
75
 
@@ -87,7 +87,7 @@
87
87
  | Action | Tool | Why |
88
88
  |--------|------|-----|
89
89
  | Read proposal + UI specs | **Read** output files | Single known files |
90
- | **Get dispatch config** | **Bash** `npx morph-spec dispatch-agents {feature} design` | Which agents to spawn + their task prompts |
90
+ | **Get dispatch config** | **Bash** `morph-spec dispatch-agents {feature} design` | Which agents to spawn + their task prompts |
91
91
  | **Dispatch domain-architect** (parallel) | **Task** subagent with prompt from dispatch config | Analyze DDD complexity independently |
92
92
  | **Dispatch tech leads** (parallel) | **Task** subagents (dotnet-senior, nextjs-expert, etc.) | Validate architecture independently |
93
93
  | Get database schema | **Supabase MCP** `list_tables()`, `get_table_schema()` | **PREFERRED** — real schema data |
@@ -99,11 +99,11 @@
99
99
  | Look up library for ADR | **Context7 MCP** `query_docs()` | Compare library capabilities |
100
100
  | Check existing code patterns | **GitHub MCP** `search_code()` | Find patterns in large repos |
101
101
  | **Fallback:** Search codebase | **Grep** patterns across project | When no GitHub MCP |
102
- | Render contracts template (detected level) | **Bash** `npx morph-spec template render code/dotnet/contracts/contracts-level{N}.cs ...` where N = level detected | CLI command |
103
- | Render spec template | **Bash** `npx morph-spec template render docs/spec ...` | CLI command |
104
- | Render decisions template | **Bash** `npx morph-spec template render docs/decisions ...` | CLI command |
102
+ | Render contracts template (detected level) | **Bash** `morph-spec template render code/dotnet/contracts/contracts-level{N}.cs ...` where N = level detected | CLI command |
103
+ | Render spec template | **Bash** `morph-spec template render docs/spec ...` | CLI command |
104
+ | Render decisions template | **Bash** `morph-spec template render docs/decisions ...` | CLI command |
105
105
  | Create schema-analysis.md | **Write** to output directory | Document findings |
106
- | Update state | **Bash** `npx morph-spec state mark-output {feature} schemaAnalysis && npx morph-spec state mark-output {feature} spec && npx morph-spec state mark-output {feature} contracts && npx morph-spec state mark-output {feature} decisions` | CLI command |
106
+ | Update state | **Bash** `morph-spec state mark-output {feature} schemaAnalysis && morph-spec state mark-output {feature} spec && morph-spec state mark-output {feature} contracts && morph-spec state mark-output {feature} decisions` | CLI command |
107
107
 
108
108
  **MCPs used:** Supabase (schema analysis), Context7 (library research), GitHub (code search).
109
109
 
@@ -131,8 +131,8 @@
131
131
  | Check known issues/limitations | **GitHub MCP** `search_issues()` | Library bugs affecting design |
132
132
  | Research edge case behavior | **WebSearch** | External knowledge for edge cases |
133
133
  | Update spec with clarifications | **Edit** spec.md | Preserve existing content, add sections |
134
- | Create clarifications.md | **Bash** `npx morph-spec template render docs/clarifications ...` | Use template |
135
- | Update state | **Bash** `npx morph-spec state mark-output {feature} clarifications` | CLI command |
134
+ | Create clarifications.md | **Bash** `morph-spec template render docs/clarifications ...` | Use template |
135
+ | Update state | **Bash** `morph-spec state mark-output {feature} clarifications` | CLI command |
136
136
 
137
137
  **MCPs used:** Context7 (validate feasibility), GitHub (known issues).
138
138
 
@@ -150,16 +150,16 @@
150
150
  | Action | Tool | Why |
151
151
  |--------|------|-----|
152
152
  | Read spec + contracts + decisions | **Read** all output files | Full context needed |
153
- | **Get dispatch config** | **Bash** `npx morph-spec dispatch-agents {feature} tasks` | Which domain experts to consult |
153
+ | **Get dispatch config** | **Bash** `morph-spec dispatch-agents {feature} tasks` | Which domain experts to consult |
154
154
  | Analyze implementation complexity | **Grep** patterns in existing code | Estimate effort from codebase size |
155
155
  | Count existing similar patterns | **Glob** `**/Services/**/*.cs` | Understand scope |
156
156
  | **Dispatch domain experts** (when spec is complex) | **Task** subagents per domain | Parallel per-domain task planning |
157
157
  | Look up implementation patterns | **Context7 MCP** `query_docs()` | Estimate task complexity accurately |
158
158
  | Create GitHub issues from tasks | **GitHub MCP** `create_issue()` | Sync tasks to project management |
159
159
  | **Fallback:** Create issues via CLI | **Bash** `gh issue create ...` | When no GitHub MCP |
160
- | Render tasks template | **Bash** `npx morph-spec template render docs/tasks ...` | CLI command |
161
- | Mark tasks output | **Bash** `npx morph-spec state mark-output {feature} tasks` | CLI command |
162
- | Update state with task count | **Bash** `npx morph-spec state set ... tasks.total N` | CLI command |
160
+ | Render tasks template | **Bash** `morph-spec template render docs/tasks ...` | CLI command |
161
+ | Mark tasks output | **Bash** `morph-spec state mark-output {feature} tasks` | CLI command |
162
+ | Update state with task count | **Bash** `morph-spec state set ... tasks.total N` | CLI command |
163
163
 
164
164
  **MCPs used:** Context7 (complexity estimation), GitHub (issue creation).
165
165
 
@@ -178,7 +178,7 @@
178
178
  | Action | Tool | Why |
179
179
  |--------|------|-----|
180
180
  | Read task details | **Read** tasks.json, spec.md, contracts.cs | Implementation reference |
181
- | **Check parallelization viability** | **Bash** `npx morph-spec dispatch-agents {feature} implement` | Whether to dispatch parallel implementers |
181
+ | **Check parallelization viability** | **Bash** `morph-spec dispatch-agents {feature} implement` | Whether to dispatch parallel implementers |
182
182
  | **Dispatch per-domain implementers** (when viable) | **Task** subagents — one per domain group | Backend tasks + frontend tasks run in parallel |
183
183
  | Create new files | **Write** new source files | New entities, services, pages |
184
184
  | Modify existing files | **Edit** existing source files | Add features to existing code |
@@ -187,15 +187,15 @@
187
187
  | **Fallback:** Run migrations | **Bash** `npx supabase migration ...` or `dotnet ef ...` | CLI tools |
188
188
  | Build project | **Bash** `dotnet build` or `npm run build` | Verify compilation |
189
189
  | Run tests | **Bash** `dotnet test` or `npm test` | Verify implementation |
190
- | Checkpoint validation | **Bash** `npx morph-spec checkpoint ...` | Every 3 tasks |
190
+ | Checkpoint validation | **Bash** `morph-spec checkpoint ...` | Every 3 tasks |
191
191
  | Create RLS policies | **Supabase MCP** `query()` | Security policies |
192
192
  | Create infrastructure | **Bash** `az bicep ...` or Bicep files via Write | IaC |
193
193
  | Create PR | **GitHub MCP** `create_pull_request()` or **Bash** `gh pr create` | Ship code |
194
- | Mark task done | **Bash** `npx morph-spec task done T001` | State tracking |
194
+ | Mark task done | **Bash** `morph-spec task done T001` | State tracking |
195
195
  | Smoke test feature no browser | **Playwright MCP** `browser_navigate()` + `browser_snapshot()` | Manual testing |
196
196
  | Verificar erros de console | **Playwright MCP** `browser_console_messages()` | Browser DevTools |
197
197
  | Screenshot para recap.md | **Playwright MCP** `browser_take_screenshot()` | Manual screenshot |
198
- | Mark recap output | **Bash** `npx morph-spec state mark-output {feature} recap` | CLI command |
198
+ | Mark recap output | **Bash** `morph-spec state mark-output {feature} recap` | CLI command |
199
199
 
200
200
  **MCPs used:** Supabase (migrations, RLS), Context7 (API lookup), GitHub (PRs), Playwright (smoke test, verification).
201
201
 
@@ -86,16 +86,16 @@ allowed-tools: Read, Bash, Glob, Grep
86
86
 
87
87
  ```bash
88
88
  # Run full feature validation
89
- npx morph-spec validate-feature {feature-name}
89
+ morph-spec validate-feature {feature-name}
90
90
 
91
91
  # Check feature state and phase
92
- npx morph-spec state get {feature-name}
92
+ morph-spec state get {feature-name}
93
93
 
94
94
  # Check approval gates
95
- npx morph-spec approval-status {feature-name}
95
+ morph-spec approval-status {feature-name}
96
96
 
97
97
  # Check overall project status
98
- npx morph-spec status
98
+ morph-spec status
99
99
  ```
100
100
 
101
101
  ---
@@ -111,8 +111,8 @@ Before running `morph-spec task done`:
111
111
 
112
112
  ```bash
113
113
  # Verify before marking done
114
- npx morph-spec validate-feature {feature}
115
- npx morph-spec task done {feature} T001
114
+ morph-spec validate-feature {feature}
115
+ morph-spec task done {feature} T001
116
116
  ```
117
117
 
118
118
  ---
@@ -122,8 +122,8 @@ npx morph-spec task done {feature} T001
122
122
  Every 3 tasks, run full checkpoint validation:
123
123
 
124
124
  ```bash
125
- npx morph-spec checkpoint-save {feature}
126
- npx morph-spec validate-feature {feature}
125
+ morph-spec checkpoint-save {feature}
126
+ morph-spec validate-feature {feature}
127
127
  ```
128
128
 
129
129
  If validation fails:
@@ -4,7 +4,7 @@ description: MORPH-SPEC Phase 3 (Clarify). Iterative clarification loop driven b
4
4
  argument-hint: "[feature-name]"
5
5
  user-invocable: false
6
6
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.10.9"
7
+ cliVersion: "4.11.0"
8
8
  ---
9
9
 
10
10
  # MORPH Clarify — Phase 3
@@ -32,7 +32,7 @@ Eliminate spec ambiguities through an iterative question loop until the spec has
32
32
  | Ask clarifying questions | **AskUserQuestion** (never plain text) | — |
33
33
  | Update spec with clarifications | **Edit** spec.md | — |
34
34
  | Create clarifications.md | **Write** | — |
35
- | Update state | **Bash** `npx morph-spec state mark-output $ARGUMENTS clarifications` | — |
35
+ | Update state | **Bash** `morph-spec state mark-output $ARGUMENTS clarifications` | — |
36
36
 
37
37
  ---
38
38
 
@@ -67,7 +67,7 @@ Before each round, calculate the **Satisfaction Score (0-100)** by evaluating th
67
67
  **Step 0 (BEFORE any writing) — Ensure clarify phase:**
68
68
 
69
69
  ```bash
70
- npx morph-spec state get $ARGUMENTS
70
+ morph-spec state get $ARGUMENTS
71
71
  ```
72
72
 
73
73
  Check the `"phase"` field in the output:
@@ -75,8 +75,8 @@ Check the `"phase"` field in the output:
75
75
  **If `"phase": "clarify"`** → correct phase, proceed.
76
76
 
77
77
  **If `"phase": "design"`** → run in sequence:
78
- 1. `npx morph-spec approve $ARGUMENTS design`
79
- 2. `npx morph-spec phase advance $ARGUMENTS` (→ clarify)
78
+ 1. `morph-spec approve $ARGUMENTS design`
79
+ 2. `morph-spec phase advance $ARGUMENTS` (→ clarify)
80
80
 
81
81
  **Any other value** → STOP — inconsistent state, report to user.
82
82
 
@@ -217,7 +217,7 @@ Write to `.morph/features/$ARGUMENTS/1-design/clarifications.md`:
217
217
  **Step 2: Update State**
218
218
 
219
219
  ```bash
220
- npx morph-spec state mark-output $ARGUMENTS clarifications
220
+ morph-spec state mark-output $ARGUMENTS clarifications
221
221
  ```
222
222
 
223
223
  ---
@@ -241,7 +241,7 @@ npx morph-spec state mark-output $ARGUMENTS clarifications
241
241
  ---
242
242
 
243
243
  ```bash
244
- npx morph-spec phase advance $ARGUMENTS
244
+ morph-spec phase advance $ARGUMENTS
245
245
  ```
246
246
 
247
247
  Continue automatically to Phase 4 (Plan) after clarifications.md is generated.
@@ -3,7 +3,7 @@ name: morph-phase-codebase-analysis
3
3
  description: MORPH-SPEC Design sub-phase that analyzes existing codebase and database schema, producing schema-analysis.md with real column names, types, relationships, and field mismatches. Use at the start of Design phase before generating contracts.cs to prevent incorrect field names or types.
4
4
  user-invocable: false
5
5
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
- cliVersion: "4.10.9"
6
+ cliVersion: "4.11.0"
7
7
  ---
8
8
 
9
9
  # MORPH Codebase Analysis - Design Sub-phase
@@ -154,7 +154,7 @@ This ensures `contracts.cs` can be generated mechanically, without manual interp
154
154
  The template is at `framework/templates/docs/schema-analysis.md`. Use it via:
155
155
 
156
156
  ```bash
157
- npx morph-spec template render docs/schema-analysis \
157
+ morph-spec template render docs/schema-analysis \
158
158
  .morph/features/{feature}/1-design/schema-analysis.md \
159
159
  '{
160
160
  "FEATURE_NAME": "{feature}",
@@ -213,7 +213,7 @@ Create a map of:
213
213
  Use the template at `framework/templates/docs/schema-analysis.md`:
214
214
 
215
215
  ```bash
216
- npx morph-spec template render docs/schema-analysis \
216
+ morph-spec template render docs/schema-analysis \
217
217
  .morph/features/{feature-name}/1-design/schema-analysis.md \
218
218
  '{ "FEATURE_NAME": "{feature-name}", "DATE": "..." }'
219
219
  ```
@@ -223,7 +223,7 @@ OR use **Write** tool to create directly with collected data.
223
223
  ### Step 5: Update State
224
224
 
225
225
  ```bash
226
- npx morph-spec state mark-output {feature-name} schema-analysis
226
+ morph-spec state mark-output {feature-name} schema-analysis
227
227
  ```
228
228
 
229
229
  ---
@@ -4,7 +4,7 @@ description: MORPH-SPEC Phase 2 (Design). Schema-first interactive design: reads
4
4
  argument-hint: "[feature-name]"
5
5
  user-invocable: false
6
6
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Agent
7
- cliVersion: "4.10.9"
7
+ cliVersion: "4.11.0"
8
8
  ---
9
9
 
10
10
  # MORPH Design — Phase 2
@@ -37,11 +37,11 @@ Schema-first interactive design: read the real schema, validate with user, gener
37
37
  | Dispatch domain-architect | **Agent** `subagent_type=domain-architect` + `prompt=agent.taskPrompt` | — |
38
38
  | Dispatch tech leads | **Agent** for each active agent from dispatch config | — |
39
39
  | Research library | **Context7 MCP** `query_docs()` | **WebSearch** + **WebFetch** |
40
- | Render contracts VSA | **Bash** `npx morph-spec template render dotnet-contracts-vsa ...` | — |
41
- | Render contracts DDD | **Bash** `npx morph-spec template render dotnet-contracts-level{N} ...` | — |
42
- | Render spec.md | **Bash** `npx morph-spec template render docs/spec ...` | — |
43
- | Render decisions.md | **Bash** `npx morph-spec template render docs/decisions ...` | — |
44
- | Update state | **Bash** `npx morph-spec state mark-output $ARGUMENTS <type>` | — |
40
+ | Render contracts VSA | **Bash** `morph-spec template render dotnet-contracts-vsa ...` | — |
41
+ | Render contracts DDD | **Bash** `morph-spec template render dotnet-contracts-level{N} ...` | — |
42
+ | Render spec.md | **Bash** `morph-spec template render docs/spec ...` | — |
43
+ | Render decisions.md | **Bash** `morph-spec template render docs/decisions ...` | — |
44
+ | Update state | **Bash** `morph-spec state mark-output $ARGUMENTS <type>` | — |
45
45
 
46
46
  **Anti-patterns:**
47
47
  - Do not generate contracts before reading the real schema — guessed field names corrupt the entire design
@@ -72,7 +72,7 @@ Update each to `in_progress` before starting and `completed` after finishing.
72
72
  **STEP 0 (BEFORE any reads or writes) — Ensure phase is design:**
73
73
 
74
74
  ```bash
75
- npx morph-spec state get $ARGUMENTS
75
+ morph-spec state get $ARGUMENTS
76
76
  ```
77
77
 
78
78
  Check the `"phase"` field in the output:
@@ -80,12 +80,12 @@ Check the `"phase"` field in the output:
80
80
  **If `"phase": "design"`** → phase is correct, proceed.
81
81
 
82
82
  **If `"phase": "proposal"`** → execute in sequence:
83
- 1. `npx morph-spec state mark-output $ARGUMENTS proposal`
84
- 2. `npx morph-spec phase advance $ARGUMENTS` (→ setup)
85
- 3. `npx morph-spec phase advance $ARGUMENTS` (→ design)
83
+ 1. `morph-spec state mark-output $ARGUMENTS proposal`
84
+ 2. `morph-spec phase advance $ARGUMENTS` (→ setup)
85
+ 3. `morph-spec phase advance $ARGUMENTS` (→ design)
86
86
 
87
87
  **If `"phase": "setup"`** → execute:
88
- 1. `npx morph-spec phase advance $ARGUMENTS` (→ design)
88
+ 1. `morph-spec phase advance $ARGUMENTS` (→ design)
89
89
 
90
90
  **Any other value** → do not proceed — inconsistent state, report to user.
91
91
 
@@ -197,7 +197,7 @@ Use `AskUserQuestion`:
197
197
  #### 2-VSA.1 Dispatch vsa-architect
198
198
 
199
199
  ```bash
200
- npx morph-spec dispatch-agents $ARGUMENTS design
200
+ morph-spec dispatch-agents $ARGUMENTS design
201
201
  ```
202
202
 
203
203
  Use the `taskPrompt` from the `vsa-architect` agent in the result. Call:
@@ -255,7 +255,7 @@ Read the proposal and evaluate using the 5 detection questions in `framework/sta
255
255
  #### 2-DDD.2 Dispatch domain-architect
256
256
 
257
257
  ```bash
258
- npx morph-spec dispatch-agents $ARGUMENTS design
258
+ morph-spec dispatch-agents $ARGUMENTS design
259
259
  ```
260
260
 
261
261
  Use the `taskPrompt` from the `domain-architect` agent in the result. Call:
@@ -314,7 +314,7 @@ Read the spec-authoring-guide first, then create `.morph/features/$ARGUMENTS/1-d
314
314
  **Mandatory source:** fields from `schema-analysis.md` + operations from the VSA Blueprint.
315
315
 
316
316
  ```bash
317
- npx morph-spec template render \
317
+ morph-spec template render \
318
318
  dotnet-contracts-vsa \
319
319
  .morph/features/$ARGUMENTS/1-design/contracts.cs \
320
320
  '{
@@ -340,7 +340,7 @@ After rendering, fill in the `// placeholder:` sections with real fields from sc
340
340
 
341
341
  ```bash
342
342
  # Replace {N} with the detected level (1, 2, or 3):
343
- npx morph-spec template render \
343
+ morph-spec template render \
344
344
  dotnet-contracts-level{N} \
345
345
  .morph/features/$ARGUMENTS/1-design/contracts.cs \
346
346
  '{
@@ -364,7 +364,7 @@ For TypeScript/Next.js projects, generate `contracts.ts` instead of `contracts.c
364
364
  ### Generate decisions.md
365
365
 
366
366
  ```bash
367
- npx morph-spec template render docs/decisions \
367
+ morph-spec template render docs/decisions \
368
368
  .morph/features/$ARGUMENTS/1-design/decisions.md \
369
369
  '{"FEATURE_NAME": "$ARGUMENTS", "DATE": "{{TODAY}}", "decisions": []}'
370
370
  ```
@@ -448,15 +448,15 @@ Update spec.md, contracts, and decisions.md with the answers received. Recalcula
448
448
  ## Post-Loop: Update State
449
449
 
450
450
  ```bash
451
- npx morph-spec state mark-output $ARGUMENTS schema-analysis
452
- npx morph-spec state mark-output $ARGUMENTS spec
453
- npx morph-spec state mark-output $ARGUMENTS contracts
454
- npx morph-spec state mark-output $ARGUMENTS decisions
451
+ morph-spec state mark-output $ARGUMENTS schema-analysis
452
+ morph-spec state mark-output $ARGUMENTS spec
453
+ morph-spec state mark-output $ARGUMENTS contracts
454
+ morph-spec state mark-output $ARGUMENTS decisions
455
455
  ```
456
456
 
457
457
  If Azure costs were estimated:
458
458
  ```bash
459
- npx morph-spec state set $ARGUMENTS costs.estimated {X.XX}
459
+ morph-spec state set $ARGUMENTS costs.estimated {X.XX}
460
460
  ```
461
461
 
462
462
  ## MANDATORY PAUSE
@@ -477,8 +477,8 @@ npx morph-spec state set $ARGUMENTS costs.estimated {X.XX}
477
477
 
478
478
  - **"Approve and continue"** →
479
479
  ```bash
480
- npx morph-spec approve $ARGUMENTS design
481
- npx morph-spec phase advance $ARGUMENTS
480
+ morph-spec approve $ARGUMENTS design
481
+ morph-spec phase advance $ARGUMENTS
482
482
  ```
483
483
  - **"I have feedback" / Other** → apply feedback and repeat PAUSE
484
484
 
@@ -11,7 +11,7 @@
11
11
 
12
12
  **Ref:** `framework/standards/architecture/ddd/complexity-levels.md`
13
13
 
14
- **Obtenha o taskPrompt do dispatch config** (`npx morph-spec dispatch-agents $ARGUMENTS design`) e use o Task tool:
14
+ **Obtenha o taskPrompt do dispatch config** (`morph-spec dispatch-agents $ARGUMENTS design`) e use o Task tool:
15
15
 
16
16
  ```
17
17
  [Task tool — domain-architect]
@@ -0,0 +1,38 @@
1
+ {
2
+ "sessionId": "",
3
+ "feature": "",
4
+ "phase": "",
5
+ "hooks": [
6
+ {
7
+ "name": "set-terminal-title",
8
+ "event": "UserPromptSubmit",
9
+ "result": "failed",
10
+ "ts": "16:06:20"
11
+ },
12
+ {
13
+ "name": "set-terminal-title",
14
+ "event": "UserPromptSubmit",
15
+ "result": "failed",
16
+ "ts": "16:12:07"
17
+ },
18
+ {
19
+ "name": "set-terminal-title",
20
+ "event": "UserPromptSubmit",
21
+ "result": "failed",
22
+ "ts": "16:12:15"
23
+ },
24
+ {
25
+ "name": "set-terminal-title",
26
+ "event": "UserPromptSubmit",
27
+ "result": "failed",
28
+ "ts": "16:12:15"
29
+ },
30
+ {
31
+ "name": "set-terminal-title",
32
+ "event": "UserPromptSubmit",
33
+ "result": "failed",
34
+ "ts": "16:12:40"
35
+ }
36
+ ],
37
+ "skills": []
38
+ }
@@ -5,7 +5,7 @@ argument-hint: "[feature-name]"
5
5
  context: fork
6
6
  agent: general-purpose
7
7
  user-invocable: false
8
- cliVersion: "4.10.9"
8
+ cliVersion: "4.11.0"
9
9
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Agent
10
10
  ---
11
11
 
@@ -27,7 +27,7 @@ Implement the tasks defined in Phase 4, with checkpoints every 3 tasks and a fin
27
27
  **Before any reads or writes — verify the current phase:**
28
28
 
29
29
  ```bash
30
- npx morph-spec state get $ARGUMENTS
30
+ morph-spec state get $ARGUMENTS
31
31
  ```
32
32
 
33
33
  Check the `"phase"` field:
@@ -35,9 +35,9 @@ Check the `"phase"` field:
35
35
  **If `"phase": "implement"`** → correct phase, proceed.
36
36
 
37
37
  **If `"phase": "tasks"`** → run in sequence:
38
- 1. `npx morph-spec state mark-output $ARGUMENTS tasks`
39
- 2. `npx morph-spec approve $ARGUMENTS tasks`
40
- 3. `npx morph-spec phase advance $ARGUMENTS` (→ implement)
38
+ 1. `morph-spec state mark-output $ARGUMENTS tasks`
39
+ 2. `morph-spec approve $ARGUMENTS tasks`
40
+ 3. `morph-spec phase advance $ARGUMENTS` (→ implement)
41
41
 
42
42
  **Any other value** → STOP — inconsistent state, report to user.
43
43
 
@@ -51,13 +51,13 @@ Before any task work, validate that prior phases are truly complete. `state.json
51
51
 
52
52
  ```bash
53
53
  # 1. Verify mandatory outputs from all prior phases
54
- npx morph-spec validate-feature $ARGUMENTS
54
+ morph-spec validate-feature $ARGUMENTS
55
55
 
56
56
  # 2. Confirm all approval gates passed
57
- npx morph-spec approval-status $ARGUMENTS
57
+ morph-spec approval-status $ARGUMENTS
58
58
 
59
59
  # 3. Verify activeAgents are populated
60
- npx morph-spec state get $ARGUMENTS | grep -A5 activeAgents
60
+ morph-spec state get $ARGUMENTS | grep -A5 activeAgents
61
61
  ```
62
62
 
63
63
  If any check fails → **STOP**. Do not start any task. Report what's missing:
@@ -65,8 +65,8 @@ If any check fails → **STOP**. Do not start any task. Report what's missing:
65
65
  | Problem | Resolution |
66
66
  |---------|-----------|
67
67
  | Missing output (spec.md, contracts, etc.) | Return to corresponding phase and generate it |
68
- | Gate not approved (design, plan, tasks) | `npx morph-spec approve $ARGUMENTS <gate>` |
69
- | Invalid phase | `npx morph-spec phase advance $ARGUMENTS` |
68
+ | Gate not approved (design, plan, tasks) | `morph-spec approve $ARGUMENTS <gate>` |
69
+ | Invalid phase | `morph-spec phase advance $ARGUMENTS` |
70
70
  | Empty activeAgents | Run `/phase-setup $ARGUMENTS` first |
71
71
 
72
72
  **This step is not optional.** Only proceed when all commands return without errors.
@@ -111,7 +111,7 @@ Use `AskUserQuestion` with header `"{MCP}"` and options:
111
111
 
112
112
  | Action | Tool | Alternative |
113
113
  |--------|------|-------------|
114
- | Check execution mode (single/subagents/agent-teams) | **Bash** `npx morph-spec dispatch-agents $ARGUMENTS implement` | Task groups + subagent prompts |
114
+ | Check execution mode (single/subagents/agent-teams) | **Bash** `morph-spec dispatch-agents $ARGUMENTS implement` | Task groups + subagent prompts |
115
115
  | **Dispatch implementers by domain** (subagents) | **Agent** `subagent_type=<taskGroups[group].subagentType>` + `prompt=taskPrompt` from dispatch config | Backend + frontend + infra in parallel |
116
116
  | **Create Agent Team** (critical multi-domain features) | Natural language — see Step 0.5b | — |
117
117
  | Read task details | **Read** tasks.md, spec.md, contracts.cs/.ts | — |
@@ -121,14 +121,14 @@ Use `AskUserQuestion` with header `"{MCP}"` and options:
121
121
  | Run migrations | **Supabase MCP** `query()` | **Bash** `npx supabase migration ...` |
122
122
  | Build project | **Bash** `dotnet build` or `npm run build` | — |
123
123
  | Run tests | **Bash** `dotnet test` or `npm test` | — |
124
- | Checkpoint validation | **Bash** `npx morph-spec validate-feature ...` | — |
125
- | Mark task complete | **Bash** `npx morph-spec task done $ARGUMENTS T001` | — |
124
+ | Checkpoint validation | **Bash** `morph-spec validate-feature ...` | — |
125
+ | Mark task complete | **Bash** `morph-spec task done $ARGUMENTS T001` | — |
126
126
  | Smoke test in browser | **Playwright MCP** `browser_navigate()` + `browser_snapshot()` | Manual |
127
127
  | Check console errors | **Playwright MCP** `browser_console_messages()` | — |
128
128
  | Screenshot for recap | **Playwright MCP** `browser_take_screenshot()` | — |
129
129
  | Deploy and logs Vercel | **Vercel MCP** `list_projects()`, `get_deployments()`, `manage_env_vars()` | **Bash** `vercel deploy` |
130
130
  | Create PR | **Bash** `gh pr create ...` | **GitHub MCP** `create_pull_request()` |
131
- | Update state | **Bash** `npx morph-spec state set ...` | — |
131
+ | Update state | **Bash** `morph-spec state set ...` | — |
132
132
 
133
133
  **Phase MCPs:** Supabase (migrations, RLS), Context7 (API lookup), Playwright (smoke test), GitHub (PRs), Vercel (deploy, logs, env vars).
134
134
 
@@ -227,7 +227,7 @@ The strategy was defined and approved in the Plan phase. Use it directly:
227
227
  If `plan.md` doesn't exist or the field is missing, auto-detect via dispatch-agents:
228
228
 
229
229
  ```bash
230
- npx morph-spec dispatch-agents $ARGUMENTS implement
230
+ morph-spec dispatch-agents $ARGUMENTS implement
231
231
  ```
232
232
 
233
233
  Check the `mode` field in the JSON output to determine the execution strategy.
@@ -239,7 +239,7 @@ Check the `mode` field in the JSON output to determine the execution strategy.
239
239
  **Step 0.5a: Get dispatch config:**
240
240
 
241
241
  ```bash
242
- npx morph-spec dispatch-agents $ARGUMENTS implement
242
+ morph-spec dispatch-agents $ARGUMENTS implement
243
243
  ```
244
244
 
245
245
  Parse the JSON output. Extract `taskGroups` and each group's `subagentType`.
@@ -252,7 +252,7 @@ For each group, verify `.claude/agents/{subagentType}.md` exists:
252
252
  ls .claude/agents/{subagentType}.md
253
253
  ```
254
254
 
255
- If missing → **STOP** with: `"Agent file .claude/agents/{subagentType}.md not found. Run: npx morph-spec setup-infra"`. Do NOT fall back to general-purpose agents for missing files.
255
+ If missing → **STOP** with: `"Agent file .claude/agents/{subagentType}.md not found. Run: morph-spec setup-infra"`. Do NOT fall back to general-purpose agents for missing files.
256
256
 
257
257
  **Step 0.5c: Dispatch subagents:**
258
258
 
@@ -271,7 +271,7 @@ Each subagent receives a prompt with:
271
271
  - **MANDATORY verification before every `task done`** (see Step 2, item 6b)
272
272
 
273
273
  2. Dispatch subagents for groups in **parallel** (when no cross-group dependencies)
274
- 3. After all complete, validate integration: `npx morph-spec validate-feature $ARGUMENTS --phase implement`
274
+ 3. After all complete, validate integration: `morph-spec validate-feature $ARGUMENTS --phase implement`
275
275
 
276
276
  **Fallback:** If `dispatch-agents` fails (non-zero exit or invalid JSON), log a warning and fall back to sequential single-agent mode (Step 2).
277
277
 
@@ -294,14 +294,14 @@ Create the team with natural language specifying:
294
294
  - Enable **plan approval**: teammates must get plans approved before implementing
295
295
  - Gate: only approve plans matching contracts.cs/.ts and spec.md
296
296
 
297
- After all teammates complete: `npx morph-spec validate-feature $ARGUMENTS --phase implement`
297
+ After all teammates complete: `morph-spec validate-feature $ARGUMENTS --phase implement`
298
298
 
299
299
  ---
300
300
 
301
301
  ### Step 2: Task Loop
302
302
 
303
303
  ```bash
304
- npx morph-spec task next $ARGUMENTS
304
+ morph-spec task next $ARGUMENTS
305
305
  ```
306
306
 
307
307
  For each task (T001 → T00N):
@@ -312,7 +312,7 @@ For each task (T001 → T00N):
312
312
  ```
313
313
  2. **Start via CLI:**
314
314
  ```bash
315
- npx morph-spec task start $ARGUMENTS T001
315
+ morph-spec task start $ARGUMENTS T001
316
316
  ```
317
317
  3. **Read the task description** + contracts.cs/.ts for relevant DTOs/interfaces
318
318
  4. **Implement** using Write (new) or Edit (existing)
@@ -320,12 +320,12 @@ For each task (T001 → T00N):
320
320
  6. **MANDATORY — Verification before `task done`:**
321
321
  Run `validate-feature` before marking ANY task as done. This is non-negotiable — it catches broken code, missing files, and spec violations before they compound across tasks.
322
322
  ```bash
323
- npx morph-spec validate-feature $ARGUMENTS --phase implement
323
+ morph-spec validate-feature $ARGUMENTS --phase implement
324
324
  ```
325
325
  Only proceed to step 7 if verification passes. If it fails → fix before marking `task done`.
326
326
  7. **Mark as done via CLI:**
327
327
  ```bash
328
- npx morph-spec task done $ARGUMENTS T001
328
+ morph-spec task done $ARGUMENTS T001
329
329
  ```
330
330
  8. **If `task done` returns without error, update group task progress:**
331
331
  - Increment completed count for the task's group
@@ -339,10 +339,10 @@ For each task (T001 → T00N):
339
339
 
340
340
  ```bash
341
341
  # Save checkpoint
342
- npx morph-spec checkpoint-save $ARGUMENTS
342
+ morph-spec checkpoint-save $ARGUMENTS
343
343
 
344
344
  # Run validation
345
- npx morph-spec validate-feature $ARGUMENTS --phase implement
345
+ morph-spec validate-feature $ARGUMENTS --phase implement
346
346
  ```
347
347
 
348
348
  **If validation fails:**
@@ -392,7 +392,7 @@ await mcp__playwright__browser_take_screenshot({ type: 'png' });
392
392
  After ALL tasks completed:
393
393
 
394
394
  ```bash
395
- npx morph-spec generate recap $ARGUMENTS
395
+ morph-spec generate recap $ARGUMENTS
396
396
  ```
397
397
 
398
398
  > For the full recap format, see `references/recap-example.md`
@@ -400,8 +400,8 @@ npx morph-spec generate recap $ARGUMENTS
400
400
  ### Step 7: Update State
401
401
 
402
402
  ```bash
403
- npx morph-spec state set $ARGUMENTS status done
404
- npx morph-spec state mark-output $ARGUMENTS recap
403
+ morph-spec state set $ARGUMENTS status done
404
+ morph-spec state mark-output $ARGUMENTS recap
405
405
  ```
406
406
 
407
407
  ### Step 8: Post-Implementation Review (mandatory before PR)
@@ -440,7 +440,7 @@ morph-spec uses its own agents and validators for implementation, dispatch, and
440
440
 
441
441
  Implementers are dispatched via `dispatch-agents`:
442
442
  ```bash
443
- npx morph-spec dispatch-agents $ARGUMENTS implement
443
+ morph-spec dispatch-agents $ARGUMENTS implement
444
444
  ```
445
445
 
446
446
  Use the `subagentType` from each group in the Agent tool: