@polymorphism-tech/morph-spec 4.10.10 → 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 (48) hide show
  1. package/README.md +5 -11
  2. package/bin/morph-spec.js +1 -1
  3. package/bin/task-manager.js +5 -5
  4. package/claude-plugin.json +1 -1
  5. package/docs/CHEATSHEET.md +1 -1
  6. package/docs/QUICKSTART.md +2 -8
  7. package/framework/agents/frontend/css-specialist.md +1 -1
  8. package/framework/agents/infrastructure/azure-deploy-specialist.md +4 -4
  9. package/framework/commands/morph-apply.md +18 -18
  10. package/framework/commands/morph-preflight.md +3 -3
  11. package/framework/commands/morph-proposal.md +15 -15
  12. package/framework/commands/morph-status.md +3 -3
  13. package/framework/commands/morph-troubleshoot.md +1 -1
  14. package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +2 -2
  15. package/framework/hooks/claude-code/session-start/inject-morph-context.js +1 -1
  16. package/framework/hooks/claude-code/teammate-idle/teammate-idle.js +3 -3
  17. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +2 -2
  18. package/framework/hooks/git/pre-commit/agents.sh +1 -1
  19. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +8 -8
  20. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +3 -3
  21. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +1 -1
  22. package/framework/skills/level-0-meta/morph-init/SKILL.md +11 -11
  23. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +3 -3
  24. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +1 -1
  25. package/framework/skills/level-0-meta/morph-simulation-checklist/SKILL.md +4 -4
  26. package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +25 -25
  27. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +8 -8
  28. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +7 -7
  29. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +4 -4
  30. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +23 -23
  31. package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +1 -1
  32. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +29 -29
  33. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +4 -4
  34. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +9 -9
  35. package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +17 -17
  36. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +12 -12
  37. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +16 -16
  38. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +5 -5
  39. package/framework/workflows/README.md +18 -18
  40. package/framework/workflows/docs/enforcement-pipeline.md +1 -1
  41. package/framework/workflows/docs/full-morph.md +2 -2
  42. package/package.json +1 -1
  43. package/src/commands/project/doctor.js +3 -4
  44. package/src/commands/project/status.js +8 -1
  45. package/src/commands/scope/escalate.js +5 -3
  46. package/src/commands/validation/validate-feature.js +32 -3
  47. package/src/scripts/global-install.js +57 -3
  48. package/src/utils/version-checker.js +1 -7
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > Spec-driven development framework for multi-stack projects. Turns feature requests into implementation-ready code through structured, AI-orchestrated phases.
4
4
 
5
5
  **Package:** `@polymorphism-tech/morph-spec`
6
- **Version:** 4.10.10
6
+ **Version:** 4.11.0
7
7
  **Requires:** Node.js 18+, Claude Code
8
8
 
9
9
  ---
@@ -312,17 +312,11 @@ After updating, run `morph-spec doctor` to confirm the installation is healthy.
312
312
 
313
313
  ### `morph-spec: command not found`
314
314
 
315
- If you are using nvm-windows or a Node version manager, the global bin path may not be on `PATH` in your shell. Use `npx` instead:
316
-
317
- ```bash
318
- npx @polymorphism-tech/morph-spec init
319
- ```
320
-
321
- Or add the npm global bin to your PATH:
315
+ The installer automatically adds the npm global directory to your PowerShell `$PROFILE`. Open a **new terminal** after installing. If it still doesn't work, add it manually:
322
316
 
323
317
  ```bash
324
318
  npm config get prefix
325
- # Add {prefix}/bin to your PATH
319
+ # Add {prefix} to your PATH
326
320
  ```
327
321
 
328
322
  ### `morph-spec doctor` reports issues
@@ -354,7 +348,7 @@ npm config set prefix %APPDATA%\npm-global
354
348
  npm install -g @polymorphism-tech/morph-spec
355
349
  ```
356
350
 
357
- 1. Use `npx` for all CLI invocations
351
+ 1. Open a new terminal (the installer adds npm to your PATH automatically)
358
352
 
359
353
  ### Hook not triggering on SessionStart
360
354
 
@@ -376,4 +370,4 @@ Code generated by morph-spec (contracts, templates, implementation output) belon
376
370
 
377
371
  ---
378
372
 
379
- *morph-spec v4.10.10 by [Polymorphism Tech](https://polymorphism.tech)*
373
+ *morph-spec v4.11.0 by [Polymorphism Tech](https://polymorphism.tech)*
package/bin/morph-spec.js CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  import { program } from 'commander';
4
4
  import chalk from 'chalk';
@@ -408,7 +408,7 @@ class TaskManager {
408
408
  // This is fail-open by design: a broken validator shouldn't block commits.
409
409
  // Common cause: missing optional deps.
410
410
  console.log(chalk.yellow(`\n⚠️ Validation skipped (${error.message})`));
411
- console.log(chalk.gray(` Run manually: npx morph-spec validate-feature ${featureName}`));
411
+ console.log(chalk.gray(` Run manually: morph-spec validate-feature ${featureName}`));
412
412
  return { passed: true, validators: {}, passRate: 1.0 };
413
413
  }
414
414
  }
@@ -850,7 +850,7 @@ async function main() {
850
850
  const taskIds = filteredArgs.slice(2);
851
851
 
852
852
  if (!featureName || taskIds.length === 0) {
853
- console.error(chalk.red('Usage: npx morph-spec task done <feature> <task-id> [task-id...] [--skip-validation] [--dry-run]'));
853
+ console.error(chalk.red('Usage: morph-spec task done <feature> <task-id> [task-id...] [--skip-validation] [--dry-run]'));
854
854
  process.exit(1);
855
855
  }
856
856
 
@@ -870,7 +870,7 @@ async function main() {
870
870
  const rangeArg = filteredArgs[2]; // e.g. T001..T082
871
871
 
872
872
  if (!featureName) {
873
- console.error(chalk.red('Usage: npx morph-spec task bulk-done <feature> [--all | --from T001 --to T053 | T001..T082] [--skip-validation] [--dry-run]'));
873
+ console.error(chalk.red('Usage: morph-spec task bulk-done <feature> [--all | --from T001 --to T053 | T001..T082] [--skip-validation] [--dry-run]'));
874
874
  process.exit(1);
875
875
  }
876
876
 
@@ -886,7 +886,7 @@ async function main() {
886
886
  const taskId = args[2];
887
887
 
888
888
  if (!featureName || !taskId) {
889
- console.error(chalk.red('Usage: npx morph-spec task start <feature> <task-id>'));
889
+ console.error(chalk.red('Usage: morph-spec task start <feature> <task-id>'));
890
890
  process.exit(1);
891
891
  }
892
892
 
@@ -898,7 +898,7 @@ async function main() {
898
898
  const featureName = args[1];
899
899
 
900
900
  if (!featureName) {
901
- console.error(chalk.red('Usage: npx morph-spec task next <feature>'));
901
+ console.error(chalk.red('Usage: morph-spec task next <feature>'));
902
902
  process.exit(1);
903
903
  }
904
904
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "morph-spec",
3
- "version": "4.10.10",
3
+ "version": "4.11.0",
4
4
  "displayName": "MORPH-SPEC Framework",
5
5
  "description": "Spec-driven development with 38 agents and 8-phase workflow for .NET/Blazor/Next.js/Azure",
6
6
  "publisher": "polymorphism-tech",
@@ -198,4 +198,4 @@ These files are never edited directly. Use CLI commands or `morph-spec update` i
198
198
 
199
199
  ---
200
200
 
201
- *morph-spec v4.10.10 by Polymorphism Tech*
201
+ *morph-spec v4.11.0 by Polymorphism Tech*
@@ -6,13 +6,7 @@
6
6
  npm install -g @polymorphism-tech/morph-spec
7
7
  ```
8
8
 
9
- Or use `npx` without a global install:
10
-
11
- ```bash
12
- npx @polymorphism-tech/morph-spec init
13
- ```
14
-
15
- > **Windows / nvm-windows:** Global installs may not appear on PATH. Use `npx` or add the npm prefix to PATH manually: `npm config get prefix`, then add `{prefix}` to your PATH.
9
+ > The installer automatically configures your PowerShell PATH on Windows. If `morph-spec` is not found, open a new terminal window.
16
10
 
17
11
  ---
18
12
 
@@ -203,4 +197,4 @@ morph-spec doctor
203
197
 
204
198
  ---
205
199
 
206
- *morph-spec v4.10.10 by Polymorphism Tech*
200
+ *morph-spec v4.11.0 by Polymorphism Tech*
@@ -67,7 +67,7 @@ When reviewing CSS:
67
67
 
68
68
  If project already has CSS variables, scan them:
69
69
  ```bash
70
- npx morph-spec generate design-system --scan
70
+ morph-spec generate design-system --scan
71
71
  ```
72
72
 
73
73
  This extracts existing `:root { --var: value }` declarations and populates design-system.md.
@@ -220,7 +220,7 @@ Por favor, forneca os valores abaixo. Serao armazenados de forma segura.
220
220
 
221
221
  ```bash
222
222
  # Validar custos antes de deploy
223
- npx morph-spec cost infra/main.bicep --verbose
223
+ morph-spec cost infra/main.bicep --verbose
224
224
 
225
225
  # Se custo > limite configurado:
226
226
  # 1. PARAR deployment
@@ -563,7 +563,7 @@ Para uso em pipelines Azure DevOps:
563
563
 
564
564
  ```bash
565
565
  # Uso automatico (sem pausas interativas)
566
- npx morph-spec deploy prod --auto \
566
+ morph-spec deploy prod --auto \
567
567
  --sql-password "$(SQL_PASSWORD)" \
568
568
  --tenant-id "$(TENANT_ID)" \
569
569
  --client-secret "$(CLIENT_SECRET)" \
@@ -622,7 +622,7 @@ stages:
622
622
  deploy:
623
623
  steps:
624
624
  - script: |
625
- npx morph-spec deploy dev --auto \
625
+ morph-spec deploy dev --auto \
626
626
  --sql-password "$(SqlPassword)" \
627
627
  --skip-confirmation
628
628
  displayName: 'Deploy to Dev'
@@ -638,7 +638,7 @@ stages:
638
638
  deploy:
639
639
  steps:
640
640
  - script: |
641
- npx morph-spec deploy prod --auto \
641
+ morph-spec deploy prod --auto \
642
642
  --sql-password "$(SqlPasswordProd)" \
643
643
  --skip-confirmation
644
644
  displayName: 'Deploy to Prod'
@@ -23,10 +23,10 @@ Implement the feature by executing its task breakdown, tracking progress through
23
23
  |--------|------|-------------|
24
24
  | Read spec, tasks, contracts | **Read** all outputs | — |
25
25
  | Detect architecture style | **Bash** `cat .morph/config/config.json \| grep architecture` | — |
26
- | Agent dispatch config | **Bash** `npx morph-spec dispatch-agents $ARGUMENTS implement` | — |
26
+ | Agent dispatch config | **Bash** `morph-spec dispatch-agents $ARGUMENTS implement` | — |
27
27
  | Parallel task execution | **Agent** subagent per task group | Sequential fallback |
28
28
  | Look up implementation patterns | **Context7 MCP** `query_docs()` | **WebSearch** |
29
- | Track progress | **Bash** `npx morph-spec state get $ARGUMENTS` | — |
29
+ | Track progress | **Bash** `morph-spec state get $ARGUMENTS` | — |
30
30
 
31
31
  ---
32
32
 
@@ -37,9 +37,9 @@ Before writing any code, verify all prior phases are complete. This gate prevent
37
37
  ### 1. Check state and approvals
38
38
 
39
39
  ```bash
40
- npx morph-spec state get $ARGUMENTS
41
- npx morph-spec approval-status $ARGUMENTS
42
- npx morph-spec validate-feature $ARGUMENTS
40
+ morph-spec state get $ARGUMENTS
41
+ morph-spec approval-status $ARGUMENTS
42
+ morph-spec validate-feature $ARGUMENTS
43
43
  ```
44
44
 
45
45
  **All three must pass.** If any fails:
@@ -87,13 +87,13 @@ cat .morph/config/config.json | grep -A3 '"architecture"'
87
87
  ### 4. Get agent dispatch config
88
88
 
89
89
  ```bash
90
- npx morph-spec dispatch-agents $ARGUMENTS implement --table
90
+ morph-spec dispatch-agents $ARGUMENTS implement --table
91
91
  ```
92
92
 
93
93
  This shows which agents are active for implementation and how tasks can be grouped. If agent teams are enabled and tasks have no dependencies between groups, consider dispatching parallel agents:
94
94
 
95
95
  ```bash
96
- npx morph-spec dispatch-agents $ARGUMENTS implement
96
+ morph-spec dispatch-agents $ARGUMENTS implement
97
97
  ```
98
98
 
99
99
  The JSON output includes `shouldDispatch`, `agents[]`, and `taskGroups` for multi-agent coordination.
@@ -105,7 +105,7 @@ The JSON output includes `shouldDispatch`, `agents[]`, and `taskGroups` for mult
105
105
  ### Step 1: Advance to implement phase
106
106
 
107
107
  ```bash
108
- npx morph-spec phase advance $ARGUMENTS
108
+ morph-spec phase advance $ARGUMENTS
109
109
  ```
110
110
 
111
111
  This validates phase eligibility and emits a SKILL DISPATCH block listing required skills for implementation (verification-before-completion, morph-checklist, etc.).
@@ -113,7 +113,7 @@ This validates phase eligibility and emits a SKILL DISPATCH block listing requir
113
113
  ### Step 2: Initialize state tracking
114
114
 
115
115
  ```bash
116
- npx morph-spec state set $ARGUMENTS tasks.total {N}
116
+ morph-spec state set $ARGUMENTS tasks.total {N}
117
117
  ```
118
118
 
119
119
  Where `{N}` is the number of tasks in tasks.md (e.g., 6 for T001-T006).
@@ -124,7 +124,7 @@ For each task in the breakdown, follow this cycle:
124
124
 
125
125
  ```bash
126
126
  # 1. Start the task (activates task-tracking guard)
127
- npx morph-spec task start $ARGUMENTS {task-id}
127
+ morph-spec task start $ARGUMENTS {task-id}
128
128
 
129
129
  # 2. Implement the task
130
130
  # - Follow spec.md and contracts
@@ -136,7 +136,7 @@ npx morph-spec task start $ARGUMENTS {task-id}
136
136
  # matches the spec and contracts before marking done
137
137
 
138
138
  # 4. Complete the task (triggers Tier-4 validators automatically)
139
- npx morph-spec task done $ARGUMENTS {task-id}
139
+ morph-spec task done $ARGUMENTS {task-id}
140
140
  ```
141
141
 
142
142
  **If validation fails on `task done`:**
@@ -153,8 +153,8 @@ If `dispatch-agents` identified parallelizable task groups and agent teams are e
153
153
  After every 3 completed tasks, save a checkpoint:
154
154
 
155
155
  ```bash
156
- npx morph-spec checkpoint-save $ARGUMENTS "after-T003"
157
- npx morph-spec state get $ARGUMENTS
156
+ morph-spec checkpoint-save $ARGUMENTS "after-T003"
157
+ morph-spec state get $ARGUMENTS
158
158
  ```
159
159
 
160
160
  Checkpoints validate architecture compliance, check package versions, scan for security issues, and save a restorable snapshot. The cadence is every 3 tasks — for 6 tasks: checkpoint after T003 and T006. For 10 tasks: after T003, T006, T009, and at completion.
@@ -162,7 +162,7 @@ Checkpoints validate architecture compliance, check package versions, scan for s
162
162
  After each checkpoint, check progress:
163
163
 
164
164
  ```bash
165
- npx morph-spec state list
165
+ morph-spec state list
166
166
  ```
167
167
 
168
168
  ### Step 5: Finalize implementation
@@ -171,16 +171,16 @@ After all tasks are complete:
171
171
 
172
172
  ```bash
173
173
  # Final validation
174
- npx morph-spec validate-feature $ARGUMENTS
174
+ morph-spec validate-feature $ARGUMENTS
175
175
 
176
176
  # Generate recap (auto-marks 'recap' output in state)
177
- npx morph-spec generate recap $ARGUMENTS
177
+ morph-spec generate recap $ARGUMENTS
178
178
 
179
179
  # Verify final state
180
- npx morph-spec state get $ARGUMENTS
180
+ morph-spec state get $ARGUMENTS
181
181
 
182
182
  # Advance to next phase
183
- npx morph-spec phase advance $ARGUMENTS
183
+ morph-spec phase advance $ARGUMENTS
184
184
  ```
185
185
 
186
186
  ### Step 6: Post-implementation review
@@ -26,9 +26,9 @@ These checks verify that the morph-spec workflow is complete for the feature bei
26
26
 
27
27
  ```bash
28
28
  # Verify implementation is complete
29
- npx morph-spec state get {feature}
30
- npx morph-spec approval-status {feature}
31
- npx morph-spec validate-feature {feature}
29
+ morph-spec state get {feature}
30
+ morph-spec approval-status {feature}
31
+ morph-spec validate-feature {feature}
32
32
  ```
33
33
 
34
34
  | Check | Command | Pass Criteria |
@@ -15,7 +15,7 @@ Guide a feature through the full planning pipeline (proposal through tasks) with
15
15
  Check if the feature already has state:
16
16
 
17
17
  ```bash
18
- npx morph-spec state get {feature-name}
18
+ morph-spec state get {feature-name}
19
19
  ```
20
20
 
21
21
  - **Exists:** Read the current phase and resume from where it stopped (skip completed phases)
@@ -40,7 +40,7 @@ Read `framework/agents.json` (or `.morph/framework/agents.json` in client projec
40
40
 
41
41
  Register each selected agent:
42
42
  ```bash
43
- npx morph-spec state add-agent {feature-name} {agent-id}
43
+ morph-spec state add-agent {feature-name} {agent-id}
44
44
  ```
45
45
 
46
46
  ### Step 3: Determine if UI/UX phase is needed
@@ -70,9 +70,9 @@ Fill every section of the template. In particular:
70
70
  ### Step 5: Register state
71
71
 
72
72
  ```bash
73
- npx morph-spec state init {feature-name}
74
- npx morph-spec state set {feature-name} status draft
75
- npx morph-spec state mark-output {feature-name} proposal
73
+ morph-spec state init {feature-name}
74
+ morph-spec state set {feature-name} status draft
75
+ morph-spec state mark-output {feature-name} proposal
76
76
  ```
77
77
 
78
78
  ### MANDATORY PAUSE
@@ -88,8 +88,8 @@ Options: Approve proposal / Request changes / Reject
88
88
 
89
89
  After approval:
90
90
  ```bash
91
- npx morph-spec approve {feature-name} proposal
92
- npx morph-spec phase advance {feature-name}
91
+ morph-spec approve {feature-name} proposal
92
+ morph-spec phase advance {feature-name}
93
93
  ```
94
94
 
95
95
  ---
@@ -112,8 +112,8 @@ Check if `ui-designer` is in `activeAgents`:
112
112
 
113
113
  After approval:
114
114
  ```bash
115
- npx morph-spec approve {feature-name} uiux
116
- npx morph-spec phase advance {feature-name}
115
+ morph-spec approve {feature-name} uiux
116
+ morph-spec phase advance {feature-name}
117
117
  ```
118
118
 
119
119
  ---
@@ -130,8 +130,8 @@ Present: spec, contracts, decisions, effort estimate. Use `AskUserQuestion` with
130
130
 
131
131
  After approval:
132
132
  ```bash
133
- npx morph-spec approve {feature-name} design
134
- npx morph-spec phase advance {feature-name}
133
+ morph-spec approve {feature-name} design
134
+ morph-spec phase advance {feature-name}
135
135
  ```
136
136
 
137
137
  ---
@@ -158,8 +158,8 @@ Present: implementation plan with recommended strategy. Use `AskUserQuestion` wi
158
158
 
159
159
  After approval:
160
160
  ```bash
161
- npx morph-spec approve {feature-name} plan
162
- npx morph-spec phase advance {feature-name}
161
+ morph-spec approve {feature-name} plan
162
+ morph-spec phase advance {feature-name}
163
163
  ```
164
164
 
165
165
  ---
@@ -176,8 +176,8 @@ Present: task breakdown, execution order, total estimate. Use `AskUserQuestion`
176
176
 
177
177
  After approval:
178
178
  ```bash
179
- npx morph-spec approve {feature-name} tasks
180
- npx morph-spec phase advance {feature-name}
179
+ morph-spec approve {feature-name} tasks
180
+ morph-spec phase advance {feature-name}
181
181
  ```
182
182
 
183
183
  ---
@@ -13,7 +13,7 @@ Show the current MORPH project status and features in development.
13
13
  **ALWAYS** use the state-manager CLI to get status:
14
14
 
15
15
  ```bash
16
- npx morph-spec state list
16
+ morph-spec state list
17
17
  ```
18
18
 
19
19
  This command automatically shows:
@@ -35,7 +35,7 @@ This command automatically shows:
35
35
  To get detailed JSON for a feature:
36
36
 
37
37
  ```bash
38
- npx morph-spec state get {feature-name}
38
+ morph-spec state get {feature-name}
39
39
  ```
40
40
 
41
41
  ### 3. Archived Features
@@ -51,7 +51,7 @@ Check `.morph/specs/` for consolidated specs.
51
51
 
52
52
  ## Output
53
53
 
54
- The `npx morph-spec state list` command automatically generates a formatted dashboard:
54
+ The `morph-spec state list` command automatically generates a formatted dashboard:
55
55
 
56
56
  ```
57
57
  ╔════════════════════════════════════════════════════════════════╗
@@ -72,7 +72,7 @@ site:learn.microsoft.com/azure {error}
72
72
  **WebSearch usage example:**
73
73
 
74
74
  If the user asks about a SignalR error:
75
- 1. First: `npx morph-spec troubleshoot SignalR connection`
75
+ 1. First: `morph-spec troubleshoot SignalR connection`
76
76
  2. If not found: WebSearch with `site:github.com/dotnet/aspnetcore SignalR connection closed`
77
77
  3. Return formatted relevant links
78
78
 
@@ -50,8 +50,8 @@ try {
50
50
  approve(
51
51
  `[morph-spec] WARNING: No active task tracking detected during implement phase.\n` +
52
52
  `Before writing code, start a task:\n` +
53
- ` npx morph-spec task next ${name} # see what's next\n` +
54
- ` npx morph-spec task start ${name} <id> # mark it in progress\n` +
53
+ ` morph-spec task next ${name} # see what's next\n` +
54
+ ` morph-spec task start ${name} <id> # mark it in progress\n` +
55
55
  `Task tracking ensures validators run, checkpoints fire, and progress is recorded.`
56
56
  );
57
57
  } catch {
@@ -140,7 +140,7 @@ try {
140
140
  if (trustLevel !== 'high' && trustLevel !== 'maximum') {
141
141
  lines.push('');
142
142
  lines.push(`⚠ Trust level: ${trustLevel} — approval gates require manual approval`);
143
- lines.push(` To auto-approve: npx morph-spec trust set ${name} high`);
143
+ lines.push(` To auto-approve: morph-spec trust set ${name} high`);
144
144
  }
145
145
  if (!workflow && config?.workflowDetection?.confidence === 0) {
146
146
  lines.push('');
@@ -51,7 +51,7 @@ try {
51
51
 
52
52
  try {
53
53
  output = execSync(
54
- `npx morph-spec validate-feature "${featureName}" --phase implement --quiet`,
54
+ `morph-spec validate-feature "${featureName}" --phase implement --quiet`,
55
55
  {
56
56
  cwd: process.cwd(),
57
57
  encoding: 'utf-8',
@@ -71,9 +71,9 @@ try {
71
71
  const feedback = [
72
72
  'MORPH-SPEC validation found issues — please fix before going idle:',
73
73
  '',
74
- output.trim() || 'Run `npx morph-spec validate-feature to see details.',
74
+ output.trim() || 'Run `morph-spec validate-feature to see details.',
75
75
  '',
76
- `Run: npx morph-spec validate-feature ${featureName} --phase implement`,
76
+ `Run: morph-spec validate-feature ${featureName} --phase implement`,
77
77
  ].join('\n');
78
78
 
79
79
  // Claude Code reads additionalContext from stdout for exit code 2
@@ -72,8 +72,8 @@ try {
72
72
  context.push(
73
73
  `[morph-spec] REMINDER: No task is currently in_progress for '${name}'.` +
74
74
  ` Start a task before coding:\n` +
75
- ` npx morph-spec task next ${name} # see what's next\n` +
76
- ` npx morph-spec task start ${name} <id> # mark it in progress`
75
+ ` morph-spec task next ${name} # see what's next\n` +
76
+ ` morph-spec task start ${name} <id> # mark it in progress`
77
77
  );
78
78
  }
79
79
  }
@@ -10,7 +10,7 @@ if git diff --cached --name-only | grep -q 'agents\.json$'; then
10
10
  echo "Detected changes to agents.json"
11
11
 
12
12
  # Run validator
13
- if ! npx morph-spec validate-agents-skills; then
13
+ if ! morph-spec validate-agents-skills; then
14
14
  echo ""
15
15
  echo "❌ COMMIT BLOCKED: agents.json validation failed"
16
16
  echo " Fix errors above before committing"
@@ -22,12 +22,12 @@ allowed-tools: Read, Bash, Glob, Grep, AskUserQuestion
22
22
 
23
23
  | Action | Tool | Alternative |
24
24
  |--------|------|-------------|
25
- | Load feature state | **Bash** `npx morph-spec state get $ARGUMENTS` | — |
25
+ | Load feature state | **Bash** `morph-spec state get $ARGUMENTS` | — |
26
26
  | Read project config | **Read** `.morph/config/config.json` | — |
27
27
  | Scan existing code | **Glob** / **Grep** | — |
28
28
  | Research libraries | **Context7 MCP** `query_docs()` | **WebSearch** |
29
29
  | Ask clarifying questions | **AskUserQuestion** (never plain text) | — |
30
- | Render proposal template | **Bash** `npx morph-spec template render docs/proposal ...` | — |
30
+ | Render proposal template | **Bash** `morph-spec template render docs/proposal ...` | — |
31
31
 
32
32
  ---
33
33
 
@@ -49,11 +49,11 @@ Update each to `in_progress` before its step and `completed` after.
49
49
 
50
50
  Gather information before generating ideas. This step is what makes morph-aware brainstorming different from generic brainstorming — it grounds your thinking in the actual project state and constraints.
51
51
 
52
- 1. **Read state** — `npx morph-spec state get $ARGUMENTS` → current phase, active agents, existing outputs, task history
52
+ 1. **Read state** — `morph-spec state get $ARGUMENTS` → current phase, active agents, existing outputs, task history
53
53
  2. **Read config** — `.morph/config/config.json` → stack, architecture style (VSA vs standard), project name, integrations
54
54
  3. **Check architecture** — `cat .morph/config/config.json | grep -A3 architecture` → determines which agents and patterns apply
55
55
  4. **Read existing outputs** — proposal.md, spec.md, decisions.md (if they exist from prior work)
56
- 5. **Check active agents** — `npx morph-spec dispatch-agents $ARGUMENTS design --table` → which specialists are available
56
+ 5. **Check active agents** — `morph-spec dispatch-agents $ARGUMENTS design --table` → which specialists are available
57
57
  6. **Scan codebase** — use Glob/Grep to understand existing patterns, domain models, and service boundaries relevant to the feature
58
58
  7. **Check MCP tools** — if Context7, GitHub, or other MCPs are available, use them for research
59
59
 
@@ -106,7 +106,7 @@ For each approach, document:
106
106
 
107
107
  **Phase 0 (Proposal):**
108
108
  ```bash
109
- npx morph-spec template render docs/proposal ".morph/features/$ARGUMENTS/0-proposal/proposal.md" '{"FEATURE_NAME":"...", "DATE":"..."}'
109
+ morph-spec template render docs/proposal ".morph/features/$ARGUMENTS/0-proposal/proposal.md" '{"FEATURE_NAME":"...", "DATE":"..."}'
110
110
  ```
111
111
  Then edit the rendered file to add the brainstorming results.
112
112
 
@@ -115,12 +115,12 @@ For each approach, document:
115
115
 
116
116
  3. **Update state** (mandatory — do not skip):
117
117
  ```bash
118
- npx morph-spec state mark-output $ARGUMENTS proposal # Phase 0
119
- npx morph-spec state mark-output $ARGUMENTS decisions # Phase 2
118
+ morph-spec state mark-output $ARGUMENTS proposal # Phase 0
119
+ morph-spec state mark-output $ARGUMENTS decisions # Phase 2
120
120
  ```
121
121
  Then verify the output was recorded:
122
122
  ```bash
123
- npx morph-spec state get $ARGUMENTS
123
+ morph-spec state get $ARGUMENTS
124
124
  ```
125
125
 
126
126
  ---
@@ -14,9 +14,9 @@ Types: `deploy`, `security`, `seo`, `performance`, `accessibility`, `legal-brazi
14
14
  ## Deploy
15
15
 
16
16
  ### MORPH-SPEC Validation (run first)
17
- - [ ] `npx morph-spec validate-feature {feature}` — passes with 100% pass rate
18
- - [ ] `npx morph-spec approval-status {feature}` — all gates approved (design, plan, tasks)
19
- - [ ] `npx morph-spec state get {feature}` — phase is `implement`, all tasks `done`
17
+ - [ ] `morph-spec validate-feature {feature}` — passes with 100% pass rate
18
+ - [ ] `morph-spec approval-status {feature}` — all gates approved (design, plan, tasks)
19
+ - [ ] `morph-spec state get {feature}` — phase is `implement`, all tasks `done`
20
20
  - [ ] Recap generated: `.morph/features/{feature}/5-implement/recap.md` exists
21
21
 
22
22
  ### Pre-Deploy
@@ -57,7 +57,7 @@ Store `stack`, `frontendPath`, `startCommand` and the detected context — all s
57
57
  ## Step 1 — Design Outputs Validation (if context includes design validation)
58
58
 
59
59
  ```bash
60
- npx morph-spec validate-feature $ARGUMENTS
60
+ morph-spec validate-feature $ARGUMENTS
61
61
  ```
62
62
 
63
63
  Verify existence and quality of the 4 mandatory outputs in `.morph/features/$ARGUMENTS/2-ui/`:
@@ -25,10 +25,10 @@ Before running any `morph-spec` command, detect how to invoke the CLI:
25
25
 
26
26
  ```bash
27
27
  # Try local first (project dependency), then global
28
- npx morph-spec --version
28
+ morph-spec --version
29
29
  ```
30
30
 
31
- - If `npx morph-spec --version` succeeds → use `npx morph-spec` as the CLI prefix for all commands.
31
+ - If `morph-spec --version` succeeds → use `morph-spec` as the CLI prefix for all commands.
32
32
  - If it fails → try `morph-spec --version` (global install). If that works → use `morph-spec`.
33
33
  - If both fail → **STOP** and show:
34
34
  ```
@@ -36,7 +36,7 @@ npx morph-spec --version
36
36
  npm install @polymorphism-tech/morph-spec
37
37
  ```
38
38
 
39
- Use the resolved CLI prefix (e.g. `npx morph-spec`) for ALL bash commands in the following steps.
39
+ Use the resolved CLI prefix (e.g. `morph-spec`) for ALL bash commands in the following steps.
40
40
 
41
41
  ---
42
42
 
@@ -78,19 +78,19 @@ Check if `.morph/` exists in the current directory.
78
78
 
79
79
  **If MISSING:**
80
80
  ```bash
81
- npx morph-spec setup-infra
81
+ morph-spec setup-infra
82
82
  ```
83
83
  Output confirms: `✓ MORPH-SPEC infrastructure installed.`
84
84
 
85
85
  **If EXISTS and argument is `refresh`:**
86
86
  Re-run setup-infra to update framework files, then continue with context/config refresh:
87
87
  ```bash
88
- npx morph-spec setup-infra
88
+ morph-spec setup-infra
89
89
  ```
90
90
 
91
91
  **If EXISTS and no argument:**
92
92
  Ask: *"MORPH already initialized. Refresh context and config? (y/n)"*
93
- If `y` → re-run `npx morph-spec setup-infra` then continue.
93
+ If `y` → re-run `morph-spec setup-infra` then continue.
94
94
  If `n` → STOP.
95
95
 
96
96
  ---
@@ -359,7 +359,7 @@ And inform the user:
359
359
  To create a new VSA project:
360
360
  dotnet new install https://github.com/polymorphism-tech/Morph_Template_VerticalSliceArchitecture
361
361
  dotnet new vsa -n MyProject
362
- cd MyProject && npx morph-spec init
362
+ cd MyProject && morph-spec init
363
363
  ```
364
364
 
365
365
  ---
@@ -374,7 +374,7 @@ For each detected integration with an available MCP:
374
374
  ```json
375
375
  "supabase": { "type": "http", "url": "https://mcp.supabase.com/mcp" }
376
376
  ```
377
- - NO → show snippet + `npx morph-spec mcp setup supabase`
377
+ - NO → show snippet + `morph-spec mcp setup supabase`
378
378
 
379
379
  **GitHub:**
380
380
  > *"Configure GitHub MCP? Requires Docker + a `GITHUB_PERSONAL_ACCESS_TOKEN`."*
@@ -386,7 +386,7 @@ For each detected integration with an available MCP:
386
386
  "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<token>" }
387
387
  }
388
388
  ```
389
- - NO → show snippet + `npx morph-spec mcp setup github`
389
+ - NO → show snippet + `morph-spec mcp setup github`
390
390
 
391
391
  **Vercel detected** (vercel.json exists OR stack is nextjs):
392
392
  > *"Configure Vercel MCP? Uses OAuth — no credentials needed."*
@@ -394,7 +394,7 @@ For each detected integration with an available MCP:
394
394
  ```json
395
395
  "vercel": { "type": "http", "url": "https://mcp.vercel.com" }
396
396
  ```
397
- - NO → show snippet + `npx morph-spec mcp setup vercel`
397
+ - NO → show snippet + `morph-spec mcp setup vercel`
398
398
 
399
399
  Only offer Docker, Azure if explicitly detected in `.env.example`.
400
400
 
@@ -462,7 +462,7 @@ Use `AskUserQuestion` with header `"{MCP} failed"` and these options:
462
462
  After all configuration is complete, run the health check to verify everything is properly installed:
463
463
 
464
464
  ```bash
465
- npx morph-spec doctor
465
+ morph-spec doctor
466
466
  ```
467
467
 
468
468
  This validates: config.json integrity, agents.json presence, hooks installation, skills distribution, required command files, and state.json schema version. Fix any reported issues before proceeding.