@polymorphism-tech/morph-spec 4.2.0 → 4.3.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 (132) hide show
  1. package/bin/morph-spec.js +283 -8
  2. package/bin/validate.js +4 -4
  3. package/docs/{v3.0 → next-generation}/AGENTS.md +1 -1
  4. package/docs/next-generation/CONTEXT-OPTIMIZATION.md +267 -0
  5. package/docs/next-generation/EXECUTION-FLOW.md +274 -0
  6. package/docs/next-generation/META-PROMPTS.md +235 -0
  7. package/docs/next-generation/MIGRATION-GUIDE.md +253 -0
  8. package/docs/next-generation/THREAD-MANAGEMENT.md +240 -0
  9. package/package.json +5 -5
  10. package/src/commands/agents/agents-fuse.js +96 -0
  11. package/src/commands/agents/micro-agent.js +112 -0
  12. package/src/commands/agents/spawn-team.js +69 -4
  13. package/src/commands/agents/squad-template.js +146 -0
  14. package/src/commands/analytics/analytics.js +176 -0
  15. package/src/commands/context/context-prime.js +63 -0
  16. package/src/commands/context/core-four.js +54 -0
  17. package/src/commands/mcp/mcp.js +102 -0
  18. package/src/commands/project/detect-agents.js +1 -1
  19. package/src/commands/project/doctor.js +573 -356
  20. package/src/commands/project/init.js +1 -1
  21. package/src/commands/project/update.js +1 -1
  22. package/src/commands/state/advance-phase.js +433 -416
  23. package/src/commands/templates/template-render.js +80 -1
  24. package/src/commands/threads/thread-template.js +103 -0
  25. package/src/commands/threads/threads.js +261 -0
  26. package/src/commands/trust/trust.js +205 -0
  27. package/src/{orchestrator.js → core/orchestrator.js} +8 -8
  28. package/src/core/state/state-manager.js +18 -2
  29. package/src/core/workflows/workflow-detector.js +100 -2
  30. package/src/lib/agents/micro-agent-factory.js +161 -0
  31. package/src/lib/analytics/analytics-engine.js +345 -0
  32. package/src/lib/checkpoints/checkpoint-hooks.js +293 -258
  33. package/src/lib/context/context-bundler.js +240 -0
  34. package/src/lib/context/context-optimizer.js +212 -0
  35. package/src/lib/context/context-tracker.js +273 -0
  36. package/src/lib/context/core-four-tracker.js +201 -0
  37. package/src/lib/context/mcp-optimizer.js +200 -0
  38. package/src/lib/execution/fusion-executor.js +304 -0
  39. package/src/lib/execution/parallel-executor.js +270 -0
  40. package/src/lib/generators/context-generator.js +3 -3
  41. package/src/lib/generators/recap-generator.js +2 -2
  42. package/src/lib/hooks/hook-executor.js +169 -0
  43. package/src/lib/hooks/stop-hook-executor.js +286 -0
  44. package/src/lib/hops/hop-composer.js +221 -0
  45. package/src/lib/threads/thread-coordinator.js +238 -0
  46. package/src/lib/threads/thread-manager.js +317 -0
  47. package/src/lib/tracking/artifact-trail.js +202 -0
  48. package/src/lib/trust/trust-manager.js +269 -0
  49. package/src/lib/validators/design-system/design-system-validator.js +2 -2
  50. package/src/lib/validators/validation-runner.js +6 -6
  51. package/stacks/blazor-azure/.morph/config/agents.json +72 -3
  52. package/stacks/nextjs-supabase/.morph/config/agents.json +3 -3
  53. package/CLAUDE.md +0 -993
  54. package/docs/llm-interaction-config.md +0 -735
  55. package/docs/v3.0/EXECUTION-FLOW.md +0 -1304
  56. package/src/commands/utils/migrate-state.js +0 -158
  57. package/src/commands/utils/upgrade.js +0 -346
  58. package/src/lib/validators/architecture-validator.js +0 -60
  59. package/src/lib/validators/content-validator.js +0 -164
  60. package/src/lib/validators/package-validator.js +0 -61
  61. package/src/lib/validators/ui-contrast-validator.js +0 -44
  62. package/stacks/blazor-azure/.claude/commands/morph-apply.md +0 -221
  63. package/stacks/blazor-azure/.claude/commands/morph-archive.md +0 -79
  64. package/stacks/blazor-azure/.claude/commands/morph-deploy.md +0 -529
  65. package/stacks/blazor-azure/.claude/commands/morph-infra.md +0 -209
  66. package/stacks/blazor-azure/.claude/commands/morph-preflight.md +0 -227
  67. package/stacks/blazor-azure/.claude/commands/morph-proposal.md +0 -122
  68. package/stacks/blazor-azure/.claude/commands/morph-status.md +0 -86
  69. package/stacks/blazor-azure/.claude/commands/morph-troubleshoot.md +0 -122
  70. package/stacks/blazor-azure/.claude/skills/level-0-meta/README.md +0 -7
  71. package/stacks/blazor-azure/.claude/skills/level-0-meta/code-review.md +0 -226
  72. package/stacks/blazor-azure/.claude/skills/level-0-meta/morph-checklist.md +0 -117
  73. package/stacks/blazor-azure/.claude/skills/level-0-meta/simulation-checklist.md +0 -77
  74. package/stacks/blazor-azure/.claude/skills/level-1-workflows/README.md +0 -7
  75. package/stacks/blazor-azure/.claude/skills/level-1-workflows/morph-replicate.md +0 -213
  76. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-clarify.md +0 -131
  77. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-design.md +0 -213
  78. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-setup.md +0 -106
  79. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-tasks.md +0 -164
  80. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-uiux.md +0 -169
  81. package/stacks/blazor-azure/.claude/skills/level-2-domains/README.md +0 -14
  82. package/stacks/blazor-azure/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +0 -192
  83. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/po-pm-advisor.md +0 -197
  84. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/prompt-engineer.md +0 -189
  85. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/seo-growth-hacker.md +0 -320
  86. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/standards-architect.md +0 -156
  87. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/api-designer.md +0 -59
  88. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/dotnet-senior.md +0 -77
  89. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ef-modeler.md +0 -58
  90. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +0 -126
  91. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ms-agent-expert.md +0 -45
  92. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/blazor-builder.md +0 -210
  93. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/nextjs-expert.md +0 -154
  94. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +0 -191
  95. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/azure-architect.md +0 -142
  96. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +0 -699
  97. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +0 -126
  98. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/container-specialist.md +0 -131
  99. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +0 -119
  100. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/asaas-financial.md +0 -130
  101. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/azure-identity.md +0 -142
  102. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/clerk-auth.md +0 -108
  103. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/hangfire-orchestrator.md +0 -64
  104. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/resend-email.md +0 -119
  105. package/stacks/blazor-azure/.claude/skills/level-2-domains/quality/code-analyzer.md +0 -235
  106. package/stacks/blazor-azure/.claude/skills/level-2-domains/quality/testing-specialist.md +0 -126
  107. package/stacks/blazor-azure/.claude/skills/level-3-technologies/README.md +0 -7
  108. package/stacks/blazor-azure/.claude/skills/level-4-patterns/README.md +0 -7
  109. package/stacks/blazor-azure/.morph/archive/.gitkeep +0 -25
  110. package/stacks/blazor-azure/.morph/features/.gitkeep +0 -25
  111. package/stacks/blazor-azure/.morph/schemas/agent.schema.json +0 -296
  112. package/stacks/blazor-azure/.morph/schemas/tasks.schema.json +0 -220
  113. package/stacks/blazor-azure/.morph/specs/.gitkeep +0 -20
  114. package/stacks/blazor-azure/.morph/test-infra/example.bicep +0 -59
  115. package/stacks/nextjs-supabase/.claude/commands/morph-apply.md +0 -221
  116. package/stacks/nextjs-supabase/.claude/commands/morph-archive.md +0 -79
  117. package/stacks/nextjs-supabase/.claude/commands/morph-deploy.md +0 -529
  118. package/stacks/nextjs-supabase/.claude/commands/morph-infra.md +0 -209
  119. package/stacks/nextjs-supabase/.claude/commands/morph-preflight.md +0 -227
  120. package/stacks/nextjs-supabase/.claude/commands/morph-proposal.md +0 -122
  121. package/stacks/nextjs-supabase/.claude/commands/morph-status.md +0 -86
  122. package/stacks/nextjs-supabase/.claude/commands/morph-troubleshoot.md +0 -122
  123. package/stacks/nextjs-supabase/.claude/settings.local.json +0 -6
  124. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/backend/dotnet-supabase.md +0 -244
  125. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/frontend/nextjs-supabase.md +0 -335
  126. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/infrastructure/easypanel-deployer.md +0 -189
  127. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +0 -50
  128. /package/docs/{v3.0 → next-generation}/ANALYSIS.md +0 -0
  129. /package/docs/{v3.0 → next-generation}/ARCHITECTURE.md +0 -0
  130. /package/docs/{v3.0 → next-generation}/FEATURES.md +0 -0
  131. /package/docs/{v3.0 → next-generation}/README.md +0 -0
  132. /package/docs/{v3.0 → next-generation}/ROADMAP.md +0 -0
@@ -1,735 +0,0 @@
1
- # LLM Interaction Configuration Guide
2
-
3
- **MORPH-SPEC v3.0** introduces a comprehensive configuration system for controlling LLM interaction features via `.morph/config/llm-interaction.json`.
4
-
5
- ---
6
-
7
- ## Quick Start
8
-
9
- ### 1. Default Configuration
10
-
11
- On `morph-spec init`, a default `llm-interaction.json` is created with recommended settings:
12
-
13
- ```json
14
- {
15
- "$schema": "./llm-interaction-schema.json",
16
- "version": "1.0.0",
17
- "enabled": true,
18
-
19
- "approvalGates": {
20
- "enabled": true,
21
- "required": ["design", "tasks"],
22
- "optional": ["proposal", "uiux"],
23
- "allowSkip": false
24
- },
25
-
26
- "checkpoints": {
27
- "frequency": 3,
28
- "autoValidate": true,
29
- "validators": {
30
- "enabled": ["architecture", "packages", "design-system", "security"]
31
- },
32
- "hooks": {
33
- "runTests": false,
34
- "runLinters": true,
35
- "buildCheck": false
36
- },
37
- "onFailure": {
38
- "blockProgress": true,
39
- "maxRetries": 3
40
- }
41
- },
42
-
43
- "phaseValidation": {
44
- "strictTransitions": true,
45
- "requireContentValidation": true,
46
- "allowPhaseSkip": false,
47
- "forceSequential": true
48
- },
49
-
50
- "agentSpawning": {
51
- "enabled": true,
52
- "autoDetect": true,
53
- "spawnThreshold": {
54
- "complexity": "high",
55
- "fileCount": 15,
56
- "multiDomain": true,
57
- "agentCount": 5
58
- },
59
- "teamMode": "auto"
60
- },
61
-
62
- "metadata": {
63
- "autoGenerate": true,
64
- "updateFrequency": "on_task_done"
65
- },
66
-
67
- "patterns": {
68
- "captureOnComplete": true,
69
- "searchBeforeStart": true,
70
- "location": ".morph/memory/patterns-learned.md"
71
- },
72
-
73
- "templates": {
74
- "mcpDataInjection": true,
75
- "dataSources": ["projectStructure", "complianceStatus", "recentActivity"]
76
- },
77
-
78
- "interactiveDecisions": {
79
- "enabled": true,
80
- "usePromptTemplates": true,
81
- "requireUserInput": ["architecture-choice", "scope-change", "validator-override"]
82
- }
83
- }
84
- ```
85
-
86
- ---
87
-
88
- ## Configuration Sections
89
-
90
- ### 1. Approval Gates
91
-
92
- **Controls:** Explicit approval tracking for phase transitions.
93
-
94
- ```json
95
- {
96
- "approvalGates": {
97
- "enabled": true, // Enable approval gate system
98
- "required": ["design", "tasks"], // Required gates that block advancement
99
- "optional": ["proposal", "uiux"], // Optional gates (tracked but don't block)
100
- "allowSkip": false // Allow --skip-approval flag
101
- }
102
- }
103
- ```
104
-
105
- **Behavior:**
106
- - When `enabled: true`, phase transitions check approval status
107
- - `required` gates **block** `npx morph-spec phase advance` until approved
108
- - `optional` gates are tracked but don't block
109
- - `allowSkip: false` prevents `--skip-approval` override (strict mode)
110
-
111
- **Commands:**
112
- ```bash
113
- # Approve a gate
114
- npx morph-spec approve {feature} design
115
-
116
- # Reject with reason
117
- npx morph-spec reject {feature} design "Missing security considerations"
118
-
119
- # Check status
120
- npx morph-spec approval-status {feature}
121
- ```
122
-
123
- **Use Cases:**
124
- - **Strict governance:** `required: ["proposal", "design", "tasks"]`, `allowSkip: false`
125
- - **Lightweight:** `required: ["design"]`, `allowSkip: true`
126
- - **No gates:** `enabled: false`
127
-
128
- ---
129
-
130
- ### 2. Checkpoints
131
-
132
- **Controls:** Automated validation at regular task intervals.
133
-
134
- ```json
135
- {
136
- "checkpoints": {
137
- "frequency": 3, // Run checkpoint every N tasks
138
- "autoValidate": true, // Auto-run validators
139
- "validators": {
140
- "enabled": ["architecture", "packages", "security"]
141
- },
142
- "hooks": {
143
- "runTests": false, // Run test suite at checkpoints
144
- "runLinters": true, // Run linters (eslint, dotnet format)
145
- "buildCheck": false // Run build verification
146
- },
147
- "onFailure": {
148
- "blockProgress": true, // Block task completion if checkpoint fails
149
- "maxRetries": 3 // Max retries before escalation
150
- }
151
- }
152
- }
153
- ```
154
-
155
- **Behavior:**
156
- - Every `frequency` tasks (e.g., T003, T006, T009), runs checkpoint hooks
157
- - If `autoValidate: true`, runs all `enabled` validators
158
- - If `onFailure.blockProgress: true`, task NOT marked done until violations fixed
159
- - After `maxRetries` failures, prompts LLM to escalate or simplify
160
-
161
- **Validators:**
162
- - `architecture`: DI patterns, Blazor lifecycle, async/await anti-patterns
163
- - `packages`: NuGet/npm conflicts, outdated dependencies
164
- - `design-system`: CSS compliance, color palette, spacing
165
- - `security`: Secrets exposed, SQL injection, XSS
166
-
167
- **Use Cases:**
168
- - **Strict:** `autoValidate: true`, `blockProgress: true`, `frequency: 3`
169
- - **Lightweight:** `autoValidate: false`, `blockProgress: false`, `frequency: 5`
170
- - **Manual only:** `autoValidate: false`, `hooks: {runTests: false}`
171
-
172
- ---
173
-
174
- ### 3. Phase Validation
175
-
176
- **Controls:** State machine enforcement for phase transitions.
177
-
178
- ```json
179
- {
180
- "phaseValidation": {
181
- "strictTransitions": true, // Enforce valid state machine transitions
182
- "requireContentValidation": true, // Validate spec.md and tasks.json structure
183
- "allowPhaseSkip": false, // Allow jumping phases (e.g., setup → tasks)
184
- "forceSequential": true // Must go through all phases in order
185
- }
186
- }
187
- ```
188
-
189
- **Behavior:**
190
- - `strictTransitions: true`: Only valid transitions allowed (e.g., `proposal → setup`, NOT `proposal → implement`)
191
- - `requireContentValidation: true`: Checks spec.md has required sections, tasks.json has valid structure
192
- - `allowPhaseSkip: false`: Cannot skip optional phases (uiux, sync) without explicit decision
193
- - `forceSequential: true`: Must complete phases in order (proposal → setup → uiux/design → clarify → tasks → implement)
194
-
195
- **Valid Transitions (State Machine):**
196
- ```
197
- proposal → setup
198
- setup → uiux | design
199
- uiux → design
200
- design → clarify
201
- clarify → tasks
202
- tasks → implement
203
- implement → sync | archived
204
- sync → archived
205
- ```
206
-
207
- **Use Cases:**
208
- - **Strict:** All true (recommended for teams)
209
- - **Flexible:** `allowPhaseSkip: true`, `forceSequential: false`
210
- - **No validation:** `strictTransitions: false`
211
-
212
- ---
213
-
214
- ### 4. Agent Spawning
215
-
216
- **Controls:** When to suggest Task tool agent spawning.
217
-
218
- ```json
219
- {
220
- "agentSpawning": {
221
- "enabled": true, // Enable agent spawning suggestions
222
- "autoDetect": true, // Auto-detect based on thresholds
223
- "spawnThreshold": {
224
- "complexity": "high", // Suggest if complexity >= high
225
- "fileCount": 15, // Suggest if 15+ files to modify
226
- "multiDomain": true, // Suggest if backend + frontend + infra
227
- "agentCount": 5 // Suggest if 5+ agents activated
228
- },
229
- "teamMode": "auto" // auto | manual | always
230
- }
231
- }
232
- ```
233
-
234
- **Behavior:**
235
- - When ALL thresholds met, LLM suggests spawning agents via Task tool
236
- - `teamMode`:
237
- - `auto`: Suggest based on thresholds
238
- - `manual`: Never suggest, only if user requests
239
- - `always`: Always spawn for multi-agent features
240
-
241
- **Command:**
242
- ```bash
243
- # Get team configuration
244
- npx morph-spec spawn-team {feature}
245
-
246
- # Returns Task tool configs for:
247
- # - Backend Squad (dotnet-senior, ef-modeler, api-designer)
248
- # - Frontend Squad (blazor-senior, fluent-designer)
249
- # - Infrastructure Squad (bicep-architect, azure-specialist)
250
- ```
251
-
252
- **Use Cases:**
253
- - **Auto-spawn:** `autoDetect: true`, `teamMode: "auto"`
254
- - **Manual only:** `autoDetect: false`, `teamMode: "manual"`
255
- - **Always parallel:** `teamMode: "always"` (even for simple features)
256
-
257
- ---
258
-
259
- ### 5. Metadata
260
-
261
- **Controls:** Auto-generation of metadata.json summaries.
262
-
263
- ```json
264
- {
265
- "metadata": {
266
- "autoGenerate": true, // Auto-generate metadata.json
267
- "updateFrequency": "on_task_done" // When to update (on_task_done | on_checkpoint | on_phase_advance)
268
- }
269
- }
270
- ```
271
-
272
- **Behavior:**
273
- - `autoGenerate: true`: After each task completion, regenerates `metadata.json`
274
- - `updateFrequency`:
275
- - `on_task_done`: Update after every task (most frequent, recommended)
276
- - `on_checkpoint`: Update only at checkpoints (e.g., T003, T006)
277
- - `on_phase_advance`: Update only when phase changes
278
-
279
- **metadata.json Structure:**
280
- ```json
281
- {
282
- "version": "1.0.0",
283
- "feature": "user-authentication",
284
- "status": "active",
285
- "phase": "implement",
286
- "spec": {
287
- "id": "user-auth",
288
- "summary": { "problem": "...", "solution": "...", "tags": [...] },
289
- "requirements": [...],
290
- "dataModel": [...]
291
- },
292
- "decisions": {
293
- "decisions": [ { "id": "ADR-001", "title": "...", "fullPath": "..." } ]
294
- },
295
- "tasks": { "total": 12, "completed": 8, "progress": "67%" },
296
- "agents": ["dotnet-senior", "ef-modeler"],
297
- "checkpoints": [ { "num": 1, "passed": true } ]
298
- }
299
- ```
300
-
301
- **Use Cases:**
302
- - **Always up-to-date:** `autoGenerate: true`, `updateFrequency: "on_task_done"`
303
- - **Checkpoint-based:** `updateFrequency: "on_checkpoint"`
304
- - **Manual only:** `autoGenerate: false`
305
-
306
- ---
307
-
308
- ### 6. Patterns
309
-
310
- **Controls:** Learning system and pattern library.
311
-
312
- ```json
313
- {
314
- "patterns": {
315
- "captureOnComplete": true, // Prompt to capture patterns on feature complete
316
- "searchBeforeStart": true, // Search patterns before starting new feature
317
- "location": ".morph/memory/patterns-learned.md"
318
- }
319
- }
320
- ```
321
-
322
- **Behavior:**
323
- - `searchBeforeStart: true`: LLM runs `npx morph-spec search-patterns "{keywords}"` before PROPOSAL phase
324
- - `captureOnComplete: true`: After feature archived, LLM prompts to capture lessons
325
-
326
- **Commands:**
327
- ```bash
328
- # Search patterns
329
- npx morph-spec search-patterns "blazor state"
330
- npx morph-spec search-patterns "background job"
331
-
332
- # Capture pattern
333
- npx morph-spec capture-pattern {feature} success "Pattern description"
334
- npx morph-spec capture-pattern {feature} avoid "Anti-pattern description"
335
- npx morph-spec capture-pattern {feature} optimization "Performance improvement"
336
-
337
- # Categories: success, avoid, optimization, security, convention, best-practice
338
- ```
339
-
340
- **Use Cases:**
341
- - **Continuous learning:** Both true (recommended)
342
- - **Search only:** `searchBeforeStart: true`, `captureOnComplete: false`
343
- - **No learning:** Both false
344
-
345
- ---
346
-
347
- ### 7. Templates
348
-
349
- **Controls:** MCP data injection in templates.
350
-
351
- ```json
352
- {
353
- "templates": {
354
- "mcpDataInjection": true, // Enable MCP data injection
355
- "dataSources": [
356
- "projectStructure", // File counts, language stats
357
- "complianceStatus", // Validators, violations
358
- "recentActivity" // Last feature, commits, branches
359
- ]
360
- }
361
- }
362
- ```
363
-
364
- **Behavior:**
365
- - When rendering templates with `--with-mcp-data`, injects live project metrics
366
- - Available placeholders:
367
- - `{{MCP_PROJECT_FILES}}`, `{{MCP_CS_FILES}}`, `{{MCP_TS_FILES}}`
368
- - `{{MCP_TEST_COVERAGE}}`, `{{MCP_COMPLIANCE_SCORE}}`
369
- - `{{MCP_ARCHITECTURE_VIOLATIONS}}`, `{{MCP_SECURITY_ISSUES}}`
370
- - `{{MCP_LAST_FEATURE}}`, `{{MCP_LAST_COMMIT}}`
371
- - [Full list in `.morph/templates/MCP-TEMPLATES-README.md`]
372
-
373
- **Usage:**
374
- ```bash
375
- # Render with MCP data
376
- node bin/render-template.js \
377
- .morph/templates/proposal-with-mcp.md \
378
- .morph/features/{feature}/proposal.md \
379
- '{"FEATURE_NAME":"{feature}"}' \
380
- --with-mcp-data --verbose
381
- ```
382
-
383
- **Use Cases:**
384
- - **Context-aware docs:** `mcpDataInjection: true`, all data sources
385
- - **No dynamic data:** `mcpDataInjection: false`
386
-
387
- ---
388
-
389
- ### 8. Interactive Decisions
390
-
391
- **Controls:** When to use AskUserQuestion patterns.
392
-
393
- ```json
394
- {
395
- "interactiveDecisions": {
396
- "enabled": true, // Enable structured decision prompts
397
- "usePromptTemplates": true, // Use templates from decision-prompts.md
398
- "requireUserInput": [
399
- "architecture-choice", // Multiple valid approaches
400
- "scope-change", // Significant scope modifications
401
- "validator-override" // Skipping failed validation
402
- ]
403
- }
404
- }
405
- ```
406
-
407
- **Behavior:**
408
- - When `enabled: true`, LLM uses AskUserQuestion for key decisions
409
- - `usePromptTemplates: true`: Uses templates from `.morph/templates/decision-prompts.md`
410
- - `requireUserInput`: Decisions that MUST use AskUserQuestion (not free-form text)
411
-
412
- **Templates Available:**
413
- - Scope clarification (proposal phase)
414
- - Architecture choice (design phase)
415
- - Task ordering conflict (tasks phase)
416
- - Validation failure recovery (implement phase)
417
- - Breaking change approval (implement phase)
418
-
419
- **Use Cases:**
420
- - **Interactive:** All enabled (recommended for team projects)
421
- - **Autonomous:** `enabled: false` (LLM makes all decisions)
422
-
423
- ---
424
-
425
- ## Configuration Presets
426
-
427
- ### Preset 1: Strict (Recommended for Teams)
428
-
429
- ```json
430
- {
431
- "approvalGates": { "enabled": true, "required": ["design", "tasks"], "allowSkip": false },
432
- "checkpoints": { "autoValidate": true, "onFailure": { "blockProgress": true } },
433
- "phaseValidation": { "strictTransitions": true, "requireContentValidation": true },
434
- "agentSpawning": { "enabled": true, "teamMode": "auto" },
435
- "metadata": { "autoGenerate": true },
436
- "patterns": { "searchBeforeStart": true, "captureOnComplete": true },
437
- "interactiveDecisions": { "enabled": true }
438
- }
439
- ```
440
-
441
- **Best for:**
442
- - Team projects with governance
443
- - Production features
444
- - Learning from mistakes
445
-
446
- ---
447
-
448
- ### Preset 2: Lightweight (Solo Developers)
449
-
450
- ```json
451
- {
452
- "approvalGates": { "enabled": true, "required": ["design"], "allowSkip": true },
453
- "checkpoints": { "autoValidate": true, "onFailure": { "blockProgress": false } },
454
- "phaseValidation": { "strictTransitions": true, "allowPhaseSkip": true },
455
- "agentSpawning": { "enabled": false },
456
- "metadata": { "autoGenerate": false },
457
- "patterns": { "searchBeforeStart": true, "captureOnComplete": false },
458
- "interactiveDecisions": { "enabled": true }
459
- }
460
- ```
461
-
462
- **Best for:**
463
- - Solo developers
464
- - Rapid prototyping
465
- - Experimental features
466
-
467
- ---
468
-
469
- ### Preset 3: No Guardrails (Fast Iteration)
470
-
471
- ```json
472
- {
473
- "approvalGates": { "enabled": false },
474
- "checkpoints": { "autoValidate": false },
475
- "phaseValidation": { "strictTransitions": false, "allowPhaseSkip": true },
476
- "agentSpawning": { "enabled": false },
477
- "metadata": { "autoGenerate": false },
478
- "patterns": { "searchBeforeStart": false, "captureOnComplete": false },
479
- "interactiveDecisions": { "enabled": false }
480
- }
481
- ```
482
-
483
- **Best for:**
484
- - Spikes and experiments
485
- - Throwaway code
486
- - Learning the framework
487
-
488
- **⚠️ Warning:** Not recommended for production features.
489
-
490
- ---
491
-
492
- ## Runtime Overrides
493
-
494
- Most features can be overridden at runtime:
495
-
496
- ```bash
497
- # Skip approval gate (if allowSkip: true)
498
- npx morph-spec phase advance {feature} --skip-approval
499
-
500
- # Force invalid transition
501
- npx morph-spec phase advance {feature} --force
502
-
503
- # Skip validation
504
- npx morph-spec task done {feature} T001 --skip-validation
505
-
506
- # Disable checkpoints for one task
507
- # (Not available - checkpoints run based on config only)
508
- ```
509
-
510
- ---
511
-
512
- ## Migration & Upgrade
513
-
514
- ### Migrating Existing Projects
515
-
516
- ```bash
517
- # Auto-migrate state.json to include approval gates
518
- npx morph-spec migrate-state
519
-
520
- # Creates llm-interaction.json if missing
521
- npx morph-spec init --force
522
- ```
523
-
524
- **Migration Behavior:**
525
- - Adds `approvalGates` to all features in `state.json`
526
- - Past phases auto-approved (e.g., if currently in implement, design/tasks gates approved)
527
- - Creates empty `.morph/memory/patterns-learned.md`
528
- - Creates default `llm-interaction.json` with conservative settings
529
-
530
- ### Upgrading Configuration
531
-
532
- ```bash
533
- # Upgrade to latest schema version
534
- npx morph-spec upgrade --to-version=3.0.0
535
-
536
- # Options:
537
- # [1] Full upgrade (all breaking changes)
538
- # [2] Conservative (keep old behavior, opt-in to new)
539
- # [3] Custom (choose per-feature)
540
- ```
541
-
542
- ---
543
-
544
- ## Troubleshooting
545
-
546
- ### Checkpoint Always Failing
547
-
548
- **Problem:** Checkpoint fails every 3 tasks despite fixing issues.
549
-
550
- **Solutions:**
551
- 1. Check which validator is failing:
552
- ```bash
553
- npx morph-spec validate architecture --verbose
554
- npx morph-spec validate packages --verbose
555
- npx morph-spec validate security --verbose
556
- ```
557
-
558
- 2. Disable problematic validator temporarily:
559
- ```json
560
- {
561
- "checkpoints": {
562
- "validators": {
563
- "enabled": ["packages", "security"] // Removed "architecture"
564
- }
565
- }
566
- }
567
- ```
568
-
569
- 3. Set `blockProgress: false` to continue despite failures:
570
- ```json
571
- {
572
- "checkpoints": {
573
- "onFailure": { "blockProgress": false }
574
- }
575
- }
576
- ```
577
-
578
- ---
579
-
580
- ### Approval Gates Not Blocking
581
-
582
- **Problem:** Can advance phase without approval.
583
-
584
- **Solutions:**
585
- 1. Check `allowSkip` setting:
586
- ```json
587
- { "approvalGates": { "allowSkip": false } }
588
- ```
589
-
590
- 2. Ensure gate is in `required` list:
591
- ```json
592
- { "approvalGates": { "required": ["design", "tasks"] } }
593
- ```
594
-
595
- 3. Verify no `--force` flag used:
596
- ```bash
597
- # DON'T use --force unless intentional
598
- npx morph-spec phase advance {feature} # ✅ Correct
599
- npx morph-spec phase advance {feature} --force # ❌ Bypasses gates
600
- ```
601
-
602
- ---
603
-
604
- ### MCP Data Not Injecting
605
-
606
- **Problem:** `{{MCP_PROJECT_FILES}}` appears in rendered template.
607
-
608
- **Solutions:**
609
- 1. Ensure `--with-mcp-data` flag used:
610
- ```bash
611
- node bin/render-template.js template.md output.md '{}' --with-mcp-data
612
- ```
613
-
614
- 2. Check config:
615
- ```json
616
- { "templates": { "mcpDataInjection": true } }
617
- ```
618
-
619
- 3. Verify data sources available:
620
- - Git repo initialized (`git log` works)
621
- - Coverage file exists (`coverage/coverage-summary.json`)
622
- - `.morph/state.json` exists
623
-
624
- ---
625
-
626
- ## Best Practices
627
-
628
- ### 1. Start Strict, Relax Later
629
-
630
- Begin with **Preset 1: Strict** for first 2-3 features. Once comfortable, adjust:
631
- - Reduce checkpoint frequency (3 → 5)
632
- - Make some gates optional
633
- - Disable MCP data if not useful
634
-
635
- ### 2. Use Approval Gates for Critical Decisions
636
-
637
- **ALWAYS require approval for:**
638
- - Design phase (spec + contracts)
639
- - Tasks phase (breakdown + estimates)
640
-
641
- **Optional approval for:**
642
- - Proposal (if quick iteration needed)
643
- - UI/UX (if design-heavy feature)
644
-
645
- ### 3. Checkpoint Frequency
646
-
647
- - **High-risk features:** `frequency: 3` (every 3 tasks)
648
- - **Standard features:** `frequency: 5`
649
- - **Low-risk features:** `frequency: 10` or `autoValidate: false`
650
-
651
- ### 4. Pattern Library
652
-
653
- **Day 1-30:** Focus on `searchBeforeStart: true` (leverage pre-seeded patterns)
654
- **Day 30+:** Enable `captureOnComplete: true` (build your own library)
655
-
656
- ### 5. Metadata
657
-
658
- **Always enable** `autoGenerate: true` for features with:
659
- - 10+ tasks
660
- - Multiple agents
661
- - Complex decision history
662
-
663
- **Skip for:**
664
- - Spike/POC features
665
- - 1-2 task features
666
-
667
- ---
668
-
669
- ## Schema Reference
670
-
671
- Full JSON schema: `.morph/config/llm-interaction-schema.json`
672
-
673
- Validate config:
674
- ```bash
675
- # Auto-validates on phase advance, checkpoint, etc.
676
- # Manual validation:
677
- node -e "require('ajv')().validate(require('.morph/config/llm-interaction-schema.json'), require('.morph/config/llm-interaction.json'))"
678
- ```
679
-
680
- ---
681
-
682
- ## Examples
683
-
684
- ### Example 1: Enable Strict Mode Mid-Project
685
-
686
- ```bash
687
- # Edit .morph/config/llm-interaction.json
688
- {
689
- "checkpoints": {
690
- "onFailure": { "blockProgress": true } // Changed from false
691
- }
692
- }
693
-
694
- # Next task will block on checkpoint failure
695
- npx morph-spec task done my-feature T007
696
- ```
697
-
698
- ---
699
-
700
- ### Example 2: Disable Agent Spawning Suggestions
701
-
702
- ```bash
703
- # Edit .morph/config/llm-interaction.json
704
- {
705
- "agentSpawning": { "enabled": false }
706
- }
707
-
708
- # LLM will never suggest spawning agents, even if thresholds met
709
- ```
710
-
711
- ---
712
-
713
- ### Example 3: Custom Checkpoint Frequency
714
-
715
- ```bash
716
- # Edit .morph/config/llm-interaction.json
717
- {
718
- "checkpoints": { "frequency": 5 }
719
- }
720
-
721
- # Checkpoints now at T005, T010, T015 instead of T003, T006, T009
722
- ```
723
-
724
- ---
725
-
726
- ## See Also
727
-
728
- - [CLAUDE.md](../CLAUDE.md) - LLM instructions for using these features
729
- - [.morph/templates/MCP-TEMPLATES-README.md](.morph/templates/MCP-TEMPLATES-README.md) - MCP data placeholders
730
- - [.morph/templates/decision-prompts.md](.morph/templates/decision-prompts.md) - Decision templates
731
- - [.morph/memory/patterns-learned.md](.morph/memory/patterns-learned.md) - Pattern library
732
-
733
- ---
734
-
735
- *MORPH-SPEC v3.0 - LLM Interaction Configuration Guide*