@polymorphism-tech/morph-spec 3.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 (386) hide show
  1. package/README.md +1 -14
  2. package/bin/detect-agents.js +1 -1
  3. package/bin/morph-spec.js +403 -40
  4. package/bin/validate.js +5 -5
  5. package/docs/getting-started.md +0 -5
  6. package/docs/next-generation/AGENTS.md +521 -0
  7. package/docs/next-generation/ANALYSIS.md +555 -0
  8. package/docs/next-generation/ARCHITECTURE.md +436 -0
  9. package/docs/next-generation/CONTEXT-OPTIMIZATION.md +267 -0
  10. package/docs/next-generation/EXECUTION-FLOW.md +274 -0
  11. package/docs/next-generation/FEATURES.md +688 -0
  12. package/docs/next-generation/META-PROMPTS.md +235 -0
  13. package/docs/next-generation/MIGRATION-GUIDE.md +253 -0
  14. package/docs/next-generation/README.md +231 -0
  15. package/docs/next-generation/ROADMAP.md +801 -0
  16. package/docs/next-generation/THREAD-MANAGEMENT.md +240 -0
  17. package/docs/validation-checklist.md +0 -1
  18. package/package.json +5 -5
  19. package/src/commands/agents/agents-fuse.js +96 -0
  20. package/src/commands/agents/index.js +4 -0
  21. package/src/commands/agents/micro-agent.js +112 -0
  22. package/src/commands/{spawn-team.js → agents/spawn-team.js} +237 -172
  23. package/src/commands/agents/squad-template.js +146 -0
  24. package/src/commands/analytics/analytics.js +176 -0
  25. package/src/commands/context/context-prime.js +63 -0
  26. package/src/commands/context/core-four.js +54 -0
  27. package/src/commands/{create-story.js → feature/create-story.js} +357 -354
  28. package/src/commands/feature/index.js +6 -0
  29. package/src/commands/{shard-spec.js → feature/shard-spec.js} +2 -2
  30. package/src/commands/{sprint-status.js → feature/sprint-status.js} +1 -1
  31. package/src/commands/{generate-context.js → generation/generate-context.js} +40 -40
  32. package/src/commands/{generate.js → generation/generate.js} +4 -4
  33. package/src/commands/generation/index.js +5 -0
  34. package/src/commands/index.js +16 -0
  35. package/src/commands/{capture-pattern.js → learning/capture-pattern.js} +121 -121
  36. package/src/commands/learning/index.js +5 -0
  37. package/src/commands/mcp/mcp.js +102 -0
  38. package/src/commands/{detect-agents.js → project/detect-agents.js} +178 -178
  39. package/src/commands/project/detect-workflow.js +174 -0
  40. package/src/commands/{detect.js → project/detect.js} +104 -104
  41. package/src/commands/{doctor.js → project/doctor.js} +221 -4
  42. package/src/commands/project/index.js +10 -0
  43. package/src/commands/{init.js → project/init.js} +305 -295
  44. package/src/commands/{sync.js → project/sync.js} +167 -167
  45. package/src/commands/{update.js → project/update.js} +240 -240
  46. package/src/commands/{advance-phase.js → state/advance-phase.js} +101 -25
  47. package/src/commands/{approve.js → state/approve.js} +221 -221
  48. package/src/commands/state/index.js +8 -0
  49. package/src/commands/{rollback-phase.js → state/rollback-phase.js} +185 -185
  50. package/src/commands/{state.js → state/state.js} +334 -334
  51. package/src/commands/{validate-phase.js → state/validate-phase.js} +221 -221
  52. package/src/commands/tasks/index.js +4 -0
  53. package/src/commands/{task.js → tasks/task.js} +78 -78
  54. package/src/commands/templates/index.js +8 -0
  55. package/src/commands/templates/template-customize.js +101 -0
  56. package/src/commands/templates/template-list.js +128 -0
  57. package/src/commands/templates/template-render.js +174 -0
  58. package/src/commands/templates/template-show.js +131 -0
  59. package/src/commands/templates/template-validate.js +91 -0
  60. package/src/commands/threads/thread-template.js +103 -0
  61. package/src/commands/threads/threads.js +261 -0
  62. package/src/commands/trust/trust.js +205 -0
  63. package/src/commands/utils/index.js +7 -0
  64. package/src/commands/{session-summary.js → utils/session-summary.js} +291 -291
  65. package/src/commands/{troubleshoot.js → utils/troubleshoot.js} +222 -222
  66. package/src/commands/{analyze-blazor-concurrency.js → validation/analyze-blazor-concurrency.js} +193 -193
  67. package/src/commands/validation/index.js +8 -0
  68. package/src/commands/{lint-fluent.js → validation/lint-fluent.js} +352 -352
  69. package/src/commands/{validate-blazor-state.js → validation/validate-blazor-state.js} +210 -210
  70. package/src/commands/{validate-blazor.js → validation/validate-blazor.js} +156 -156
  71. package/src/commands/{validate-css.js → validation/validate-css.js} +84 -84
  72. package/src/core/index.js +10 -0
  73. package/src/{orchestrator.js → core/orchestrator.js} +8 -8
  74. package/src/core/registry/command-registry.js +302 -0
  75. package/src/core/registry/index.js +8 -0
  76. package/src/core/registry/validator-registry.js +204 -0
  77. package/src/core/state/index.js +8 -0
  78. package/src/{lib → core/state}/phase-state-machine.js +214 -214
  79. package/src/{lib → core/state}/state-manager.js +588 -534
  80. package/src/core/templates/index.js +9 -0
  81. package/src/core/templates/template-registry.js +335 -0
  82. package/src/core/templates/template-renderer.js +477 -0
  83. package/src/core/templates/template-validator.js +296 -0
  84. package/src/core/workflows/index.js +7 -0
  85. package/src/core/workflows/workflow-detector.js +452 -0
  86. package/src/lib/agents/micro-agent-factory.js +161 -0
  87. package/src/lib/{complexity-analyzer.js → analysis/complexity-analyzer.js} +441 -441
  88. package/src/lib/analysis/index.js +7 -0
  89. package/src/lib/analytics/analytics-engine.js +345 -0
  90. package/src/lib/{checkpoint-hooks.js → checkpoints/checkpoint-hooks.js} +35 -0
  91. package/src/lib/checkpoints/index.js +7 -0
  92. package/src/lib/context/context-bundler.js +240 -0
  93. package/src/lib/context/context-optimizer.js +212 -0
  94. package/src/lib/context/context-tracker.js +273 -0
  95. package/src/lib/context/core-four-tracker.js +201 -0
  96. package/src/lib/context/mcp-optimizer.js +200 -0
  97. package/src/lib/detectors/config-detector.js +223 -223
  98. package/src/lib/detectors/conversation-analyzer.js +163 -163
  99. package/src/lib/{design-system-detector.js → detectors/design-system-detector.js} +187 -187
  100. package/src/lib/detectors/index.js +87 -84
  101. package/src/lib/detectors/standards-generator.js +275 -275
  102. package/src/lib/detectors/structure-detector.js +245 -245
  103. package/src/lib/execution/fusion-executor.js +304 -0
  104. package/src/lib/execution/parallel-executor.js +270 -0
  105. package/src/lib/{context-generator.js → generators/context-generator.js} +526 -516
  106. package/src/lib/generators/index.js +10 -0
  107. package/src/lib/{metadata-extractor.js → generators/metadata-extractor.js} +387 -380
  108. package/src/lib/{recap-generator.js → generators/recap-generator.js} +205 -205
  109. package/src/lib/hooks/hook-executor.js +169 -0
  110. package/src/lib/hooks/stop-hook-executor.js +286 -0
  111. package/src/lib/hops/hop-composer.js +221 -0
  112. package/src/lib/learning/index.js +7 -0
  113. package/src/lib/orchestration/index.js +7 -0
  114. package/src/lib/{team-orchestrator.js → orchestration/team-orchestrator.js} +323 -323
  115. package/src/lib/stacks/index.js +7 -0
  116. package/src/lib/{stack-resolver.js → stacks/stack-resolver.js} +180 -148
  117. package/src/lib/standards/index.js +7 -0
  118. package/src/lib/{standards-context-injector.js → standards/standards-context-injector.js} +298 -288
  119. package/src/lib/threads/thread-coordinator.js +238 -0
  120. package/src/lib/threads/thread-manager.js +317 -0
  121. package/src/lib/tracking/artifact-trail.js +202 -0
  122. package/src/lib/troubleshooting/index.js +8 -0
  123. package/src/lib/{troubleshoot-grep.js → troubleshooting/troubleshoot-grep.js} +204 -204
  124. package/src/lib/{troubleshoot-index.js → troubleshooting/troubleshoot-index.js} +144 -144
  125. package/src/lib/trust/trust-manager.js +269 -0
  126. package/src/lib/validators/{architecture-validator.js → architecture/architecture-validator.js} +8 -8
  127. package/src/lib/validators/architecture/index.js +7 -0
  128. package/src/lib/{blazor-concurrency-analyzer.js → validators/blazor/blazor-concurrency-analyzer.js} +277 -288
  129. package/src/lib/{blazor-state-validator.js → validators/blazor/blazor-state-validator.js} +279 -291
  130. package/src/lib/{blazor-validator.js → validators/blazor/blazor-validator.js} +369 -374
  131. package/src/lib/validators/blazor/index.js +9 -0
  132. package/src/lib/validators/{content-validator.js → content/content-validator.js} +351 -351
  133. package/src/lib/validators/content/index.js +7 -0
  134. package/src/lib/validators/{contract-compliance-validator.js → contracts/contract-compliance-validator.js} +273 -273
  135. package/src/lib/validators/contracts/index.js +7 -0
  136. package/src/lib/{css-validator.js → validators/css/css-validator.js} +352 -352
  137. package/src/lib/validators/css/index.js +7 -0
  138. package/src/lib/validators/{design-system-validator.js → design-system/design-system-validator.js} +231 -231
  139. package/src/lib/validators/design-system/index.js +7 -0
  140. package/src/lib/validators/packages/index.js +7 -0
  141. package/src/lib/validators/shared/index.js +12 -0
  142. package/src/lib/validators/shared/issue-counter.js +18 -0
  143. package/src/lib/validators/shared/result-formatter.js +124 -0
  144. package/src/lib/{spec-validator.js → validators/spec-validator.js} +258 -258
  145. package/src/lib/validators/ui/index.js +7 -0
  146. package/src/lib/{validation-runner.js → validators/validation-runner.js} +286 -284
  147. package/src/ui/wizard-questions.js +0 -2
  148. package/src/utils/color-utils.js +70 -0
  149. package/src/utils/file-copier.js +188 -189
  150. package/src/utils/process-handler.js +97 -0
  151. package/stacks/blazor-azure/.morph/config/agents.json +948 -764
  152. package/stacks/blazor-azure/.morph/hooks/{pre-commit-tests.sh → pre-commit/tests-csharp.sh} +3 -2
  153. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +41 -0
  154. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +24 -0
  155. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +23 -0
  156. package/stacks/nextjs-supabase/.morph/config/agents.json +345 -345
  157. package/stacks/nextjs-supabase/.morph/hooks/pre-commit/tests-typescript.sh +61 -0
  158. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +22 -0
  159. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +22 -0
  160. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +35 -0
  161. package/stacks/nextjs-supabase/README.md +6 -15
  162. package/CLAUDE.md +0 -648
  163. package/bin/render-template.js +0 -349
  164. package/bin/semantic-detect-agents.js +0 -247
  165. package/bin/validate-agents-skills.js +0 -257
  166. package/bin/validate-agents.js +0 -70
  167. package/bin/validate-phase.js +0 -263
  168. package/docs/examples.md +0 -328
  169. package/docs/llm-interaction-config.md +0 -735
  170. package/scripts/reorganize-skills.cjs +0 -175
  171. package/scripts/validate-agents-structure.cjs +0 -52
  172. package/scripts/validate-skills.cjs +0 -180
  173. package/src/commands/deploy.js +0 -780
  174. package/src/commands/migrate-state.js +0 -158
  175. package/src/commands/upgrade.js +0 -346
  176. package/src/lib/continuous-validator.js +0 -421
  177. package/src/lib/decision-constraint-loader.js +0 -109
  178. package/src/lib/design-system-scaffolder.js +0 -299
  179. package/src/lib/hook-executor.js +0 -257
  180. package/src/lib/mockup-generator.js +0 -366
  181. package/src/lib/ui-detector.js +0 -350
  182. package/src/llm/schema-validator.js +0 -121
  183. package/src/sanitizer/.gitkeep +0 -0
  184. package/src/scanner/.gitkeep +0 -0
  185. package/src/types/index.js +0 -477
  186. package/src/ui/.gitkeep +0 -0
  187. package/src/writer/.gitkeep +0 -0
  188. package/stacks/blazor-azure/.azure/README.md +0 -293
  189. package/stacks/blazor-azure/.azure/docs/azure-devops-setup.md +0 -454
  190. package/stacks/blazor-azure/.azure/docs/branch-strategy.md +0 -398
  191. package/stacks/blazor-azure/.azure/docs/local-development.md +0 -515
  192. package/stacks/blazor-azure/.azure/pipelines/pipeline-variables.yml +0 -34
  193. package/stacks/blazor-azure/.azure/pipelines/prod-pipeline.yml +0 -319
  194. package/stacks/blazor-azure/.azure/pipelines/staging-pipeline.yml +0 -234
  195. package/stacks/blazor-azure/.azure/pipelines/templates/build-dotnet.yml +0 -75
  196. package/stacks/blazor-azure/.azure/pipelines/templates/deploy-app-service.yml +0 -94
  197. package/stacks/blazor-azure/.azure/pipelines/templates/deploy-container-app.yml +0 -120
  198. package/stacks/blazor-azure/.azure/pipelines/templates/infra-deploy.yml +0 -90
  199. package/stacks/blazor-azure/.claude/commands/morph-apply.md +0 -221
  200. package/stacks/blazor-azure/.claude/commands/morph-archive.md +0 -79
  201. package/stacks/blazor-azure/.claude/commands/morph-deploy.md +0 -529
  202. package/stacks/blazor-azure/.claude/commands/morph-infra.md +0 -209
  203. package/stacks/blazor-azure/.claude/commands/morph-preflight.md +0 -227
  204. package/stacks/blazor-azure/.claude/commands/morph-proposal.md +0 -122
  205. package/stacks/blazor-azure/.claude/commands/morph-status.md +0 -86
  206. package/stacks/blazor-azure/.claude/commands/morph-troubleshoot.md +0 -122
  207. package/stacks/blazor-azure/.claude/settings.local.json +0 -15
  208. package/stacks/blazor-azure/.claude/skills/level-0-meta/README.md +0 -7
  209. package/stacks/blazor-azure/.claude/skills/level-0-meta/code-review.md +0 -226
  210. package/stacks/blazor-azure/.claude/skills/level-0-meta/morph-checklist.md +0 -117
  211. package/stacks/blazor-azure/.claude/skills/level-0-meta/simulation-checklist.md +0 -77
  212. package/stacks/blazor-azure/.claude/skills/level-1-workflows/README.md +0 -7
  213. package/stacks/blazor-azure/.claude/skills/level-1-workflows/morph-replicate.md +0 -213
  214. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-clarify.md +0 -131
  215. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-design.md +0 -213
  216. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-setup.md +0 -106
  217. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-tasks.md +0 -164
  218. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-uiux.md +0 -169
  219. package/stacks/blazor-azure/.claude/skills/level-2-domains/README.md +0 -14
  220. package/stacks/blazor-azure/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +0 -192
  221. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/po-pm-advisor.md +0 -197
  222. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/prompt-engineer.md +0 -189
  223. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/seo-growth-hacker.md +0 -320
  224. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/standards-architect.md +0 -156
  225. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/dotnet-senior.md +0 -287
  226. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ef-modeler.md +0 -113
  227. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +0 -126
  228. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ms-agent-expert.md +0 -109
  229. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/blazor-builder.md +0 -210
  230. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/nextjs-expert.md +0 -154
  231. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +0 -191
  232. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/azure-architect.md +0 -142
  233. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +0 -699
  234. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +0 -126
  235. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/container-specialist.md +0 -131
  236. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +0 -119
  237. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/asaas-financial.md +0 -130
  238. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/azure-identity.md +0 -142
  239. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/clerk-auth.md +0 -108
  240. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/resend-email.md +0 -119
  241. package/stacks/blazor-azure/.claude/skills/level-2-domains/quality/code-analyzer.md +0 -235
  242. package/stacks/blazor-azure/.claude/skills/level-2-domains/quality/testing-specialist.md +0 -126
  243. package/stacks/blazor-azure/.claude/skills/level-3-technologies/README.md +0 -7
  244. package/stacks/blazor-azure/.claude/skills/level-4-patterns/README.md +0 -7
  245. package/stacks/blazor-azure/.morph/archive/.gitkeep +0 -25
  246. package/stacks/blazor-azure/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +0 -392
  247. package/stacks/blazor-azure/.morph/docs/workflows/design-impl.md +0 -37
  248. package/stacks/blazor-azure/.morph/docs/workflows/enforcement-pipeline.md +0 -668
  249. package/stacks/blazor-azure/.morph/docs/workflows/fast-track.md +0 -29
  250. package/stacks/blazor-azure/.morph/docs/workflows/full-morph.md +0 -76
  251. package/stacks/blazor-azure/.morph/docs/workflows/standard.md +0 -44
  252. package/stacks/blazor-azure/.morph/docs/workflows/ui-refresh.md +0 -39
  253. package/stacks/blazor-azure/.morph/examples/api-nextjs/README.md +0 -241
  254. package/stacks/blazor-azure/.morph/examples/api-nextjs/contracts.ts +0 -307
  255. package/stacks/blazor-azure/.morph/examples/api-nextjs/spec.md +0 -399
  256. package/stacks/blazor-azure/.morph/examples/api-nextjs/tasks.md +0 -168
  257. package/stacks/blazor-azure/.morph/examples/micro-saas/README.md +0 -125
  258. package/stacks/blazor-azure/.morph/examples/micro-saas/contracts.cs +0 -358
  259. package/stacks/blazor-azure/.morph/examples/micro-saas/decisions.md +0 -246
  260. package/stacks/blazor-azure/.morph/examples/micro-saas/spec.md +0 -236
  261. package/stacks/blazor-azure/.morph/examples/micro-saas/tasks.md +0 -150
  262. package/stacks/blazor-azure/.morph/examples/multi-agent/README.md +0 -309
  263. package/stacks/blazor-azure/.morph/examples/multi-agent/contracts.cs +0 -433
  264. package/stacks/blazor-azure/.morph/examples/multi-agent/spec.md +0 -479
  265. package/stacks/blazor-azure/.morph/examples/multi-agent/tasks.md +0 -185
  266. package/stacks/blazor-azure/.morph/examples/scheduled-reports/decisions.md +0 -158
  267. package/stacks/blazor-azure/.morph/examples/scheduled-reports/proposal.md +0 -95
  268. package/stacks/blazor-azure/.morph/examples/scheduled-reports/spec.md +0 -267
  269. package/stacks/blazor-azure/.morph/examples/state-v3.json +0 -188
  270. package/stacks/blazor-azure/.morph/features/.gitkeep +0 -25
  271. package/stacks/blazor-azure/.morph/hooks/README.md +0 -348
  272. package/stacks/blazor-azure/.morph/hooks/pre-commit-agents.sh +0 -24
  273. package/stacks/blazor-azure/.morph/hooks/pre-commit-all.sh +0 -48
  274. package/stacks/blazor-azure/.morph/hooks/pre-commit-specs.sh +0 -49
  275. package/stacks/blazor-azure/.morph/hooks/task-completed.js +0 -73
  276. package/stacks/blazor-azure/.morph/hooks/teammate-idle.js +0 -68
  277. package/stacks/blazor-azure/.morph/schemas/agent.schema.json +0 -296
  278. package/stacks/blazor-azure/.morph/schemas/tasks.schema.json +0 -220
  279. package/stacks/blazor-azure/.morph/specs/.gitkeep +0 -20
  280. package/stacks/blazor-azure/.morph/standards/agent-framework-blazor-ui.md +0 -359
  281. package/stacks/blazor-azure/.morph/standards/agent-framework-production.md +0 -410
  282. package/stacks/blazor-azure/.morph/standards/agent-framework-setup.md +0 -413
  283. package/stacks/blazor-azure/.morph/standards/agent-framework-workflows.md +0 -349
  284. package/stacks/blazor-azure/.morph/standards/agent-teams-workflow.md +0 -474
  285. package/stacks/blazor-azure/.morph/standards/architecture.md +0 -325
  286. package/stacks/blazor-azure/.morph/standards/azure.md +0 -605
  287. package/stacks/blazor-azure/.morph/standards/coding.md +0 -377
  288. package/stacks/blazor-azure/.morph/standards/dotnet10-migration.md +0 -520
  289. package/stacks/blazor-azure/.morph/standards/fluent-ui-setup.md +0 -590
  290. package/stacks/blazor-azure/.morph/standards/migration-guide.md +0 -514
  291. package/stacks/blazor-azure/.morph/standards/passkeys-auth.md +0 -423
  292. package/stacks/blazor-azure/.morph/standards/vector-search-rag.md +0 -536
  293. package/stacks/blazor-azure/.morph/templates/CONTEXT-FEATURE.md +0 -276
  294. package/stacks/blazor-azure/.morph/templates/CONTEXT.md +0 -170
  295. package/stacks/blazor-azure/.morph/templates/FluentDesignTheme.cs +0 -149
  296. package/stacks/blazor-azure/.morph/templates/MudTheme.cs +0 -281
  297. package/stacks/blazor-azure/.morph/templates/agent.cs +0 -163
  298. package/stacks/blazor-azure/.morph/templates/clarify-questions.md +0 -159
  299. package/stacks/blazor-azure/.morph/templates/component.razor +0 -239
  300. package/stacks/blazor-azure/.morph/templates/contracts/Commands.cs +0 -74
  301. package/stacks/blazor-azure/.morph/templates/contracts/Entities.cs +0 -25
  302. package/stacks/blazor-azure/.morph/templates/contracts/Queries.cs +0 -74
  303. package/stacks/blazor-azure/.morph/templates/contracts/README.md +0 -74
  304. package/stacks/blazor-azure/.morph/templates/contracts.cs +0 -217
  305. package/stacks/blazor-azure/.morph/templates/decisions.md +0 -123
  306. package/stacks/blazor-azure/.morph/templates/design-system.css +0 -226
  307. package/stacks/blazor-azure/.morph/templates/infra/.dockerignore.example +0 -89
  308. package/stacks/blazor-azure/.morph/templates/infra/Dockerfile.example +0 -82
  309. package/stacks/blazor-azure/.morph/templates/infra/README.md +0 -286
  310. package/stacks/blazor-azure/.morph/templates/infra/app-insights.bicep +0 -63
  311. package/stacks/blazor-azure/.morph/templates/infra/app-service.bicep +0 -164
  312. package/stacks/blazor-azure/.morph/templates/infra/azure-pipelines-deploy.yml +0 -480
  313. package/stacks/blazor-azure/.morph/templates/infra/container-app-env.bicep +0 -49
  314. package/stacks/blazor-azure/.morph/templates/infra/container-app.bicep +0 -156
  315. package/stacks/blazor-azure/.morph/templates/infra/deploy-checklist.md +0 -426
  316. package/stacks/blazor-azure/.morph/templates/infra/deploy.ps1 +0 -229
  317. package/stacks/blazor-azure/.morph/templates/infra/deploy.sh +0 -208
  318. package/stacks/blazor-azure/.morph/templates/infra/key-vault.bicep +0 -91
  319. package/stacks/blazor-azure/.morph/templates/infra/main.bicep +0 -189
  320. package/stacks/blazor-azure/.morph/templates/infra/parameters.dev.json +0 -29
  321. package/stacks/blazor-azure/.morph/templates/infra/parameters.prod.json +0 -29
  322. package/stacks/blazor-azure/.morph/templates/infra/parameters.staging.json +0 -29
  323. package/stacks/blazor-azure/.morph/templates/infra/sql-database.bicep +0 -103
  324. package/stacks/blazor-azure/.morph/templates/infra/storage.bicep +0 -106
  325. package/stacks/blazor-azure/.morph/templates/integrations/asaas-client.cs +0 -387
  326. package/stacks/blazor-azure/.morph/templates/integrations/asaas-webhook.cs +0 -351
  327. package/stacks/blazor-azure/.morph/templates/integrations/azure-identity-config.cs +0 -288
  328. package/stacks/blazor-azure/.morph/templates/integrations/clerk-config.cs +0 -258
  329. package/stacks/blazor-azure/.morph/templates/job.cs +0 -171
  330. package/stacks/blazor-azure/.morph/templates/migration.cs +0 -83
  331. package/stacks/blazor-azure/.morph/templates/proposal.md +0 -141
  332. package/stacks/blazor-azure/.morph/templates/recap.md +0 -94
  333. package/stacks/blazor-azure/.morph/templates/repository.cs +0 -141
  334. package/stacks/blazor-azure/.morph/templates/saas/subscription.cs +0 -347
  335. package/stacks/blazor-azure/.morph/templates/saas/tenant.cs +0 -338
  336. package/stacks/blazor-azure/.morph/templates/service.cs +0 -139
  337. package/stacks/blazor-azure/.morph/templates/simulation.md +0 -353
  338. package/stacks/blazor-azure/.morph/templates/spec.md +0 -149
  339. package/stacks/blazor-azure/.morph/templates/sprint-status.yaml +0 -68
  340. package/stacks/blazor-azure/.morph/templates/state.template.json +0 -222
  341. package/stacks/blazor-azure/.morph/templates/story.md +0 -143
  342. package/stacks/blazor-azure/.morph/templates/tasks.md +0 -257
  343. package/stacks/blazor-azure/.morph/templates/test.cs +0 -239
  344. package/stacks/blazor-azure/.morph/templates/ui-components.md +0 -362
  345. package/stacks/blazor-azure/.morph/templates/ui-design-system.md +0 -286
  346. package/stacks/blazor-azure/.morph/templates/ui-flows.md +0 -336
  347. package/stacks/blazor-azure/.morph/templates/ui-mockups.md +0 -133
  348. package/stacks/blazor-azure/.morph/test-infra/example.bicep +0 -59
  349. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/backend/dotnet-supabase.md +0 -244
  350. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/frontend/nextjs-supabase.md +0 -335
  351. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/infrastructure/easypanel-deployer.md +0 -189
  352. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +0 -170
  353. package/stacks/nextjs-supabase/.morph/docs/easypanel-setup.md +0 -169
  354. package/stacks/nextjs-supabase/.morph/docs/supabase-mcp-setup.md +0 -247
  355. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/README.md +0 -697
  356. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/spec.md +0 -85
  357. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/tasks.md +0 -86
  358. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/README.md +0 -498
  359. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/decisions.md +0 -121
  360. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/spec.md +0 -138
  361. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/tasks.md +0 -162
  362. package/stacks/nextjs-supabase/.morph/standards/easypanel-deploy.md +0 -191
  363. package/stacks/nextjs-supabase/.morph/standards/nextjs-patterns.md +0 -193
  364. package/stacks/nextjs-supabase/.morph/standards/supabase-auth.md +0 -171
  365. package/stacks/nextjs-supabase/.morph/standards/supabase-pgvector.md +0 -164
  366. package/stacks/nextjs-supabase/.morph/standards/supabase-rls.md +0 -179
  367. package/stacks/nextjs-supabase/.morph/standards/supabase-storage.md +0 -148
  368. package/stacks/nextjs-supabase/.morph/templates/contracts.cs +0 -173
  369. package/stacks/nextjs-supabase/.morph/templates/contracts.ts +0 -168
  370. package/stacks/nextjs-supabase/.morph/templates/decisions.md +0 -115
  371. package/stacks/nextjs-supabase/.morph/templates/dockerfile-api.dockerfile +0 -38
  372. package/stacks/nextjs-supabase/.morph/templates/dockerfile-web.dockerfile +0 -48
  373. package/stacks/nextjs-supabase/.morph/templates/proposal.md +0 -145
  374. package/stacks/nextjs-supabase/.morph/templates/recap.md +0 -134
  375. package/stacks/nextjs-supabase/.morph/templates/rls-policy.sql +0 -57
  376. package/stacks/nextjs-supabase/.morph/templates/spec.md +0 -231
  377. package/stacks/nextjs-supabase/.morph/templates/supabase-migration.sql +0 -100
  378. package/stacks/nextjs-supabase/.morph/templates/tasks.md +0 -257
  379. /package/src/commands/{search-patterns.js → learning/search-patterns.js} +0 -0
  380. /package/src/{lib → core/templates}/template-data-sources.js +0 -0
  381. /package/src/lib/{design-system-generator.js → generators/design-system-generator.js} +0 -0
  382. /package/src/lib/{learning-system.js → learning/learning-system.js} +0 -0
  383. /package/src/lib/validators/{package-validator.js → packages/package-validator.js} +0 -0
  384. /package/src/lib/validators/{ui-contrast-validator.js → ui/ui-contrast-validator.js} +0 -0
  385. /package/{src/generator → stacks/blazor-azure/.morph/templates}/.gitkeep +0 -0
  386. /package/{src/llm → stacks/nextjs-supabase/.morph/templates}/.gitkeep +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*