@polymorphism-tech/morph-spec 4.3.6 → 4.5.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 (375) hide show
  1. package/.morph/.morphversion +3 -3
  2. package/.morph/analytics/threads-log.jsonl +44 -9
  3. package/.morph/config/config.json +2 -3
  4. package/.morph/framework/standards/STANDARDS.json +812 -0
  5. package/.morph/{standards → framework/standards}/ai-agents/team-orchestration.md +3 -3
  6. package/.morph/framework/standards/integration/mcp/mcp-tools.md +384 -0
  7. package/.morph/{templates → framework/templates}/README.md +17 -17
  8. package/.morph/{templates → framework/templates}/REGISTRY.json +48 -233
  9. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs +172 -0
  10. package/.morph/{templates → framework/templates}/context/CONTEXT-FEATURE.md +1 -1
  11. package/.morph/{templates → framework/templates}/context/CONTEXT.md +3 -3
  12. package/.morph/framework/templates/docs/clarifications.md +253 -0
  13. package/.morph/framework/templates/docs/onboarding.md +123 -0
  14. package/.morph/framework/templates/docs/schema-analysis.md +119 -0
  15. package/.morph/{templates → framework/templates}/docs/spec.md +149 -149
  16. package/.morph/framework/templates/docs/ui-components.md +124 -0
  17. package/.morph/framework/templates/docs/ui-design-system.md +76 -0
  18. package/.morph/framework/templates/docs/ui-flows.md +167 -0
  19. package/.morph/framework/templates/docs/ui-mockups.md +98 -0
  20. package/.morph/{templates → framework/templates}/examples/spec-examples.md +1 -1
  21. package/.morph/{templates → framework/templates}/infrastructure/github/README.md +11 -11
  22. package/.morph/{templates → framework/templates}/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +2 -2
  23. package/.morph/{templates → framework/templates}/meta-prompts/parallel-workers/parallel-worker.md +2 -2
  24. package/.morph/{templates → framework/templates}/meta-prompts/validators/pre-commit-validator.md +1 -1
  25. package/.morph/logs/tool-failures.log +51 -0
  26. package/.morph/memory/pre-compact-2026-02-22T17-01-01-658Z.json +16 -0
  27. package/.morph/state.json +1 -1
  28. package/CLAUDE.md +20 -119
  29. package/README.md +20 -18
  30. package/bin/detect-agents.js +1 -1
  31. package/bin/morph-spec.js +116 -266
  32. package/bin/task-manager.cjs +2 -2
  33. package/bin/validate.js +1 -1
  34. package/claude-plugin.json +14 -0
  35. package/docs/claude-alignment-report.md +137 -0
  36. package/docs/plans/2026-02-22-claude-docs-morph-alignment-analysis.md +512 -0
  37. package/docs/plans/2026-02-22-claude-settings.md +515 -0
  38. package/docs/plans/2026-02-22-morph-cc-alignment-impl.md +728 -0
  39. package/docs/plans/2026-02-22-morph-spec-next.md +478 -0
  40. package/docs/plans/2026-02-22-native-alignment-design.md +199 -0
  41. package/docs/plans/2026-02-22-native-alignment-impl.md +925 -0
  42. package/docs/plans/2026-02-22-native-enrichment-design.md +244 -0
  43. package/docs/plans/2026-02-22-native-enrichment.md +735 -0
  44. package/framework/CLAUDE.md +77 -0
  45. package/framework/commands/morph-apply.md +9 -9
  46. package/framework/commands/morph-archive.md +8 -8
  47. package/framework/commands/morph-infra.md +1 -1
  48. package/framework/commands/morph-proposal.md +9 -9
  49. package/framework/commands/morph-status.md +3 -3
  50. package/framework/commands/morph-troubleshoot.md +1 -1
  51. package/framework/hooks/README.md +201 -282
  52. package/framework/hooks/claude-code/notification/approval-reminder.js +52 -0
  53. package/framework/hooks/claude-code/post-tool-use/dispatch.js +83 -0
  54. package/framework/hooks/claude-code/post-tool-use/handle-tool-failure.js +42 -0
  55. package/framework/hooks/claude-code/pre-compact/save-morph-context.js +61 -0
  56. package/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +71 -0
  57. package/framework/hooks/claude-code/pre-tool-use/protect-readonly-files.js +58 -0
  58. package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +64 -0
  59. package/framework/hooks/claude-code/session-start/inject-morph-context.js +94 -0
  60. package/framework/hooks/claude-code/statusline.py +239 -0
  61. package/framework/hooks/claude-code/statusline.sh +7 -0
  62. package/framework/hooks/claude-code/stop/validate-completion.js +88 -0
  63. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +91 -0
  64. package/framework/hooks/shared/hook-response.js +45 -0
  65. package/framework/hooks/shared/phase-utils.js +129 -0
  66. package/framework/hooks/shared/state-reader.js +138 -0
  67. package/framework/hooks/shared/stdin-reader.js +26 -0
  68. package/framework/phases.json +145 -0
  69. package/framework/rules/csharp-standards.md +10 -0
  70. package/framework/rules/frontend-standards.md +14 -0
  71. package/framework/rules/infrastructure-standards.md +13 -0
  72. package/framework/rules/morph-workflow.md +86 -0
  73. package/framework/rules/testing-standards.md +11 -0
  74. package/framework/skills/level-0-meta/brainstorming.md +133 -0
  75. package/framework/skills/level-0-meta/code-review.md +12 -4
  76. package/framework/skills/level-0-meta/mcp-registry.json +207 -0
  77. package/framework/skills/level-0-meta/morph-checklist.md +9 -1
  78. package/framework/skills/level-0-meta/simulation-checklist.md +9 -1
  79. package/framework/skills/level-0-meta/tool-usage-guide.md +335 -0
  80. package/framework/skills/level-0-meta/verification-before-completion.md +145 -0
  81. package/framework/skills/level-1-workflows/morph-replicate.md +9 -1
  82. package/framework/skills/level-1-workflows/phase-clarify.md +65 -4
  83. package/framework/skills/level-1-workflows/phase-codebase-analysis.md +182 -0
  84. package/framework/skills/level-1-workflows/phase-design.md +342 -80
  85. package/framework/skills/level-1-workflows/phase-implement.md +254 -0
  86. package/framework/skills/level-1-workflows/phase-setup.md +76 -10
  87. package/framework/skills/level-1-workflows/phase-tasks.md +88 -7
  88. package/framework/skills/level-1-workflows/phase-uiux.md +95 -17
  89. package/framework/skills/level-2-domains/ai-agents/ai-system-architect.md +8 -1
  90. package/framework/skills/level-2-domains/architecture/po-pm-advisor.md +8 -1
  91. package/framework/skills/level-2-domains/architecture/prompt-engineer.md +8 -1
  92. package/framework/skills/level-2-domains/architecture/seo-growth-hacker.md +8 -1
  93. package/framework/skills/level-2-domains/architecture/standards-architect.md +11 -4
  94. package/framework/skills/level-2-domains/backend/api-designer.md +8 -1
  95. package/framework/skills/level-2-domains/backend/dotnet-senior.md +8 -1
  96. package/framework/skills/level-2-domains/backend/ef-modeler.md +8 -1
  97. package/framework/skills/level-2-domains/backend/hangfire-orchestrator.md +9 -2
  98. package/framework/skills/level-2-domains/backend/ms-agent-expert.md +8 -1
  99. package/framework/skills/level-2-domains/frontend/blazor-builder.md +8 -1
  100. package/framework/skills/level-2-domains/frontend/nextjs-expert.md +8 -1
  101. package/framework/skills/level-2-domains/frontend/ui-ux-designer.md +9 -2
  102. package/framework/skills/level-2-domains/infrastructure/azure-architect.md +8 -1
  103. package/framework/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +8 -1
  104. package/framework/skills/level-2-domains/infrastructure/bicep-architect.md +8 -1
  105. package/framework/skills/level-2-domains/infrastructure/container-specialist.md +8 -1
  106. package/framework/skills/level-2-domains/infrastructure/devops-engineer.md +8 -1
  107. package/framework/skills/level-2-domains/integrations/asaas-financial.md +8 -1
  108. package/framework/skills/level-2-domains/integrations/azure-identity.md +8 -1
  109. package/framework/skills/level-2-domains/integrations/clerk-auth.md +8 -1
  110. package/framework/skills/level-2-domains/integrations/{hangfire-orchestrator.md → hangfire-integration.md} +8 -1
  111. package/framework/skills/level-2-domains/integrations/resend-email.md +8 -1
  112. package/framework/skills/level-2-domains/quality/code-analyzer.md +10 -3
  113. package/framework/skills/level-2-domains/quality/testing-specialist.md +8 -1
  114. package/framework/standards/STANDARDS.json +812 -0
  115. package/framework/standards/ai-agents/team-orchestration.md +3 -3
  116. package/framework/standards/frontend/nextjs/nextjs-patterns.md +17 -0
  117. package/framework/standards/integration/mcp/mcp-tools.md +384 -0
  118. package/framework/templates/README.md +17 -17
  119. package/framework/templates/REGISTRY.json +48 -233
  120. package/framework/templates/code/dotnet/contracts/contracts.cs.hbs +172 -0
  121. package/framework/templates/context/CONTEXT-FEATURE.md +1 -1
  122. package/framework/templates/context/CONTEXT.md +3 -3
  123. package/framework/templates/docs/clarifications.md +253 -0
  124. package/framework/templates/docs/onboarding.md +123 -0
  125. package/framework/templates/docs/schema-analysis.md +119 -0
  126. package/framework/templates/docs/spec.md +149 -149
  127. package/framework/templates/docs/ui-components.md +124 -0
  128. package/framework/templates/docs/ui-design-system.md +76 -0
  129. package/framework/templates/docs/ui-flows.md +167 -0
  130. package/framework/templates/docs/ui-mockups.md +98 -0
  131. package/framework/templates/docs/user-stories.md +34 -0
  132. package/framework/templates/examples/spec-examples.md +1 -1
  133. package/framework/templates/infrastructure/github/README.md +11 -11
  134. package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +2 -2
  135. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +2 -2
  136. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +1 -1
  137. package/framework/workflows/configs/express.json +45 -0
  138. package/framework/workflows/configs/spec-only.json +43 -0
  139. package/framework/workflows/docs/enforcement-pipeline.md +8 -8
  140. package/framework/workflows/docs/full-morph.md +3 -3
  141. package/package.json +3 -2
  142. package/scripts/generate-refs.js +336 -0
  143. package/scripts/generate-standards-registry.js +44 -0
  144. package/scripts/validate-real.mjs +255 -0
  145. package/src/commands/feature/create-story.js +362 -361
  146. package/src/commands/feature/shard-spec.js +225 -224
  147. package/src/commands/feature/sprint-status.js +1 -1
  148. package/src/commands/generation/generate-onboarding.js +169 -0
  149. package/src/commands/generation/generate.js +2 -2
  150. package/src/commands/mcp/mcp-setup.js +315 -0
  151. package/src/commands/project/changes.js +66 -0
  152. package/src/commands/project/checkpoint.js +209 -0
  153. package/src/commands/project/cost.js +179 -0
  154. package/src/commands/project/diff.js +278 -0
  155. package/src/commands/project/doctor.js +55 -7
  156. package/src/commands/project/init.js +318 -76
  157. package/src/commands/project/revert.js +173 -0
  158. package/src/commands/project/standards.js +80 -0
  159. package/src/commands/project/status.js +376 -0
  160. package/src/commands/project/update-agents.js +23 -0
  161. package/src/commands/project/update.js +63 -30
  162. package/src/commands/state/advance-phase.js +4 -3
  163. package/src/commands/state/state.js +10 -3
  164. package/src/commands/state/validate-phase.js +19 -2
  165. package/src/commands/templates/template-customize.js +4 -4
  166. package/src/commands/templates/template-render.js +1 -1
  167. package/src/commands/templates/template-show.js +1 -1
  168. package/src/commands/validation/validate-feature.js +359 -0
  169. package/src/core/orchestrator.js +3 -38
  170. package/src/core/paths/output-schema.js +135 -0
  171. package/src/core/state/state-manager.js +831 -592
  172. package/src/core/templates/template-registry.js +2 -2
  173. package/src/core/workflows/workflow-detector.js +17 -1
  174. package/src/lib/agents/micro-agent-factory.js +1 -1
  175. package/src/lib/context/context-bundler.js +2 -1
  176. package/src/lib/detectors/claude-config-detector.js +392 -0
  177. package/src/lib/detectors/conversation-analyzer.js +4 -4
  178. package/src/lib/detectors/design-system-detector.js +6 -5
  179. package/src/lib/detectors/standards-generator.js +2 -2
  180. package/src/lib/generators/context-generator.js +539 -538
  181. package/src/lib/generators/recap-generator.js +1 -1
  182. package/src/lib/generators/settings-generator.js +210 -0
  183. package/src/lib/hooks/hook-executor.js +1 -1
  184. package/src/lib/installers/mcp-installer.js +299 -0
  185. package/src/lib/learning/learning-system.js +3 -3
  186. package/src/lib/orchestration/team-orchestrator.js +1 -1
  187. package/src/lib/standards/standards-context-injector.js +7 -7
  188. package/src/lib/threads/thread-coordinator.js +1 -1
  189. package/src/lib/troubleshooting/troubleshoot-grep.js +1 -1
  190. package/src/lib/validators/contracts/contract-compliance-validator.js +274 -273
  191. package/src/lib/validators/design-system/design-system-validator.js +1 -1
  192. package/src/lib/validators/spec-validator.js +258 -258
  193. package/src/lib/validators/validation-runner.js +270 -269
  194. package/src/utils/agents-installer.js +206 -0
  195. package/src/utils/claude-settings-manager.js +258 -0
  196. package/src/utils/file-copier.js +1 -1
  197. package/src/utils/hooks-installer.js +354 -28
  198. package/src/utils/skills-installer.js +74 -0
  199. package/.morph/project/context/detection-log.md +0 -16
  200. package/.morph/project/standards/inferred.md +0 -59
  201. package/framework/hooks/agent-stop/validate-and-continue.js +0 -96
  202. package/framework/hooks/agent-stop/validate-checkpoints.js +0 -101
  203. package/framework/hooks/agent-stop/validate-tests.js +0 -109
  204. package/framework/hooks/agent-teams/dispatch.js +0 -67
  205. package/framework/hooks/agent-teams/phase-advanced.js +0 -80
  206. package/framework/hooks/agent-teams/task-completed.js +0 -76
  207. package/framework/hooks/agent-teams/teammate-idle.js +0 -70
  208. package/src/commands/agents/agents-fuse.js +0 -97
  209. package/src/commands/agents/micro-agent.js +0 -112
  210. package/src/commands/agents/spawn-team.js +0 -237
  211. package/src/commands/agents/squad-template.js +0 -146
  212. package/src/commands/analytics/analytics.js +0 -176
  213. package/src/commands/context/context-prime.js +0 -63
  214. package/src/commands/context/core-four.js +0 -54
  215. package/src/commands/generation/generate-context.js +0 -40
  216. package/src/commands/project/detect-agents.js +0 -207
  217. package/src/commands/project/detect-workflow.js +0 -174
  218. package/src/commands/threads/thread-template.js +0 -103
  219. package/src/commands/threads/threads.js +0 -261
  220. package/src/commands/utils/session-summary.js +0 -291
  221. package/src/llm/analyzer.js +0 -215
  222. package/src/llm/few-shot-examples.js +0 -216
  223. package/src/llm/project-config-schema.json +0 -188
  224. package/src/llm/prompt-builder.js +0 -96
  225. /package/.morph/{project/context → context}/README.md +0 -0
  226. /package/.morph/{config → framework}/agents.json +0 -0
  227. /package/.morph/{standards → framework/standards}/ai-agents/blazor-ui.md +0 -0
  228. /package/.morph/{standards → framework/standards}/ai-agents/production.md +0 -0
  229. /package/.morph/{standards → framework/standards}/ai-agents/setup.md +0 -0
  230. /package/.morph/{standards → framework/standards}/ai-agents/workflows.md +0 -0
  231. /package/.morph/{standards → framework/standards}/architecture/ddd/aggregates.md +0 -0
  232. /package/.morph/{standards → framework/standards}/architecture/ddd/entities.md +0 -0
  233. /package/.morph/{standards → framework/standards}/architecture/ddd/value-objects.md +0 -0
  234. /package/.morph/{standards → framework/standards}/backend/api/minimal-api.md +0 -0
  235. /package/.morph/{standards → framework/standards}/backend/api/rest.md +0 -0
  236. /package/.morph/{standards → framework/standards}/backend/api/validation.md +0 -0
  237. /package/.morph/{standards → framework/standards}/backend/authentication/passkeys.md +0 -0
  238. /package/.morph/{standards → framework/standards}/backend/database/ef-core.md +0 -0
  239. /package/.morph/{standards → framework/standards}/backend/database/migrations.md +0 -0
  240. /package/.morph/{standards → framework/standards}/backend/database/postgresql/database.md +0 -0
  241. /package/.morph/{standards → framework/standards}/backend/database/repository-patterns.md +0 -0
  242. /package/.morph/{standards → framework/standards}/backend/database/vector-search-rag.md +0 -0
  243. /package/.morph/{standards → framework/standards}/backend/dotnet/async.md +0 -0
  244. /package/.morph/{standards → framework/standards}/backend/dotnet/core.md +0 -0
  245. /package/.morph/{standards → framework/standards}/backend/dotnet/di.md +0 -0
  246. /package/.morph/{standards → framework/standards}/backend/dotnet/program-cs-checklist.md +0 -0
  247. /package/.morph/{standards → framework/standards}/backend/integrations/asaas/asaas-api.md +0 -0
  248. /package/.morph/{standards → framework/standards}/backend/integrations/clerk/clerk-auth.md +0 -0
  249. /package/.morph/{standards → framework/standards}/backend/integrations/hangfire/hangfire-jobs.md +0 -0
  250. /package/.morph/{standards → framework/standards}/backend/integrations/resend/resend-email.md +0 -0
  251. /package/.morph/{standards → framework/standards}/context/analytics.md +0 -0
  252. /package/.morph/{standards → framework/standards}/context/bundles.md +0 -0
  253. /package/.morph/{standards → framework/standards}/context/priming.md +0 -0
  254. /package/.morph/{standards → framework/standards}/core/architecture.md +0 -0
  255. /package/.morph/{standards → framework/standards}/core/coding.md +0 -0
  256. /package/.morph/{standards → framework/standards}/core/git-branching-strategy.md +0 -0
  257. /package/.morph/{standards → framework/standards}/core/git.md +0 -0
  258. /package/.morph/{standards → framework/standards}/core/testing.md +0 -0
  259. /package/.morph/{standards → framework/standards}/data/nosql/blob-storage.md +0 -0
  260. /package/.morph/{standards → framework/standards}/data/nosql/cache/redis.md +0 -0
  261. /package/.morph/{standards → framework/standards}/data/nosql/cosmos-db.md +0 -0
  262. /package/.morph/{standards → framework/standards}/data/vector-search/azure-ai-search.md +0 -0
  263. /package/.morph/{standards → framework/standards}/data/vector-search/rag-chunking.md +0 -0
  264. /package/.morph/{standards → framework/standards}/frontend/blazor/design-checklist.md +0 -0
  265. /package/.morph/{standards → framework/standards}/frontend/blazor/fluent-ui-setup.md +0 -0
  266. /package/.morph/{standards → framework/standards}/frontend/blazor/fluent-ui.md +0 -0
  267. /package/.morph/{standards → framework/standards}/frontend/blazor/html-conversion.md +0 -0
  268. /package/.morph/{standards → framework/standards}/frontend/blazor/lifecycle.md +0 -0
  269. /package/.morph/{standards → framework/standards}/frontend/blazor/pitfalls.md +0 -0
  270. /package/.morph/{standards → framework/standards}/frontend/blazor/state.md +0 -0
  271. /package/.morph/{standards → framework/standards}/frontend/design-system/animations.md +0 -0
  272. /package/.morph/{standards → framework/standards}/frontend/design-system/naming.md +0 -0
  273. /package/.morph/{standards → framework/standards}/frontend/nextjs/nextjs-patterns.md +0 -0
  274. /package/.morph/{standards → framework/standards}/infrastructure/azure/azure.md +0 -0
  275. /package/.morph/{standards → framework/standards}/infrastructure/azure/bicep/bicep-patterns.md +0 -0
  276. /package/.morph/{standards → framework/standards}/infrastructure/azure/devops/azure-devops-setup.md +0 -0
  277. /package/.morph/{standards → framework/standards}/infrastructure/azure/devops/local-development.md +0 -0
  278. /package/.morph/{standards → framework/standards}/infrastructure/azure/services/functions.md +0 -0
  279. /package/.morph/{standards → framework/standards}/infrastructure/azure/services/service-bus.md +0 -0
  280. /package/.morph/{standards → framework/standards}/infrastructure/azure/services/storage.md +0 -0
  281. /package/.morph/{standards → framework/standards}/infrastructure/docker/easypanel-deploy.md +0 -0
  282. /package/.morph/{standards → framework/standards}/infrastructure/supabase/mcp-setup.md +0 -0
  283. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-auth.md +0 -0
  284. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-pgvector.md +0 -0
  285. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-rls.md +0 -0
  286. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-storage.md +0 -0
  287. /package/.morph/{standards → framework/standards}/integration/api/graphql.md +0 -0
  288. /package/.morph/{standards → framework/standards}/integration/api/grpc.md +0 -0
  289. /package/.morph/{standards → framework/standards}/integration/api/rest-design.md +0 -0
  290. /package/.morph/{standards → framework/standards}/integration/event-driven/cqrs.md +0 -0
  291. /package/.morph/{standards → framework/standards}/integration/event-driven/event-sourcing.md +0 -0
  292. /package/.morph/{standards → framework/standards}/integration/event-driven/service-bus.md +0 -0
  293. /package/.morph/{standards → framework/standards}/observability/logging.md +0 -0
  294. /package/.morph/{standards → framework/standards}/observability/metrics.md +0 -0
  295. /package/.morph/{standards → framework/standards}/observability/monitoring.md +0 -0
  296. /package/.morph/{standards → framework/standards}/observability/tracing.md +0 -0
  297. /package/.morph/{standards → framework/standards}/workflows/parallel-execution.md +0 -0
  298. /package/.morph/{standards → framework/standards}/workflows/thread-management.md +0 -0
  299. /package/.morph/{templates → framework/templates}/.idea/morph-templates.xml +0 -0
  300. /package/.morph/{templates → framework/templates}/.vscode/morph-templates.code-snippets +0 -0
  301. /package/.morph/{templates → framework/templates}/IDE-SNIPPETS.md +0 -0
  302. /package/.morph/{templates → framework/templates}/code/dotnet/backend/repository.cs +0 -0
  303. /package/.morph/{templates → framework/templates}/code/dotnet/backend/service.cs +0 -0
  304. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/Commands.cs +0 -0
  305. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/Entities.cs +0 -0
  306. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/Queries.cs +0 -0
  307. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/README.md +0 -0
  308. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/api-contracts.cs +0 -0
  309. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/contracts.cs +0 -0
  310. /package/.morph/{templates → framework/templates}/code/dotnet/database/migration.cs +0 -0
  311. /package/.morph/{templates → framework/templates}/code/dotnet/frontend/component.razor +0 -0
  312. /package/.morph/{templates → framework/templates}/code/dotnet/jobs/agent.cs +0 -0
  313. /package/.morph/{templates → framework/templates}/code/dotnet/jobs/job.cs +0 -0
  314. /package/.morph/{templates → framework/templates}/code/dotnet/test.cs +0 -0
  315. /package/.morph/{templates → framework/templates}/code/sql/rls-policy.sql +0 -0
  316. /package/.morph/{templates → framework/templates}/code/sql/supabase-migration.sql +0 -0
  317. /package/.morph/{templates → framework/templates}/code/sql/supabase-migration.template.sql +0 -0
  318. /package/.morph/{templates → framework/templates}/code/typescript/contracts.ts +0 -0
  319. /package/.morph/{templates → framework/templates}/docs/proposal.md +0 -0
  320. /package/.morph/{templates → framework/templates}/examples/design-system-examples.md +0 -0
  321. /package/.morph/{templates → framework/templates}/feature/decisions.md +0 -0
  322. /package/.morph/{templates → framework/templates}/feature/recap.md +0 -0
  323. /package/.morph/{templates → framework/templates}/feature/tasks.md +0 -0
  324. /package/.morph/{templates → framework/templates}/infrastructure/azure/Dockerfile.example +0 -0
  325. /package/.morph/{templates → framework/templates}/infrastructure/azure/README.md +0 -0
  326. /package/.morph/{templates → framework/templates}/infrastructure/azure/app-insights.bicep +0 -0
  327. /package/.morph/{templates → framework/templates}/infrastructure/azure/app-service.bicep +0 -0
  328. /package/.morph/{templates → framework/templates}/infrastructure/azure/container-app-env.bicep +0 -0
  329. /package/.morph/{templates → framework/templates}/infrastructure/azure/container-app.bicep +0 -0
  330. /package/.morph/{templates → framework/templates}/infrastructure/azure/deploy-checklist.md +0 -0
  331. /package/.morph/{templates → framework/templates}/infrastructure/azure/deploy.ps1 +0 -0
  332. /package/.morph/{templates → framework/templates}/infrastructure/azure/deploy.sh +0 -0
  333. /package/.morph/{templates → framework/templates}/infrastructure/azure/key-vault.bicep +0 -0
  334. /package/.morph/{templates → framework/templates}/infrastructure/azure/main.bicep +0 -0
  335. /package/.morph/{templates → framework/templates}/infrastructure/azure/parameters.dev.json +0 -0
  336. /package/.morph/{templates → framework/templates}/infrastructure/azure/parameters.prod.json +0 -0
  337. /package/.morph/{templates → framework/templates}/infrastructure/azure/parameters.staging.json +0 -0
  338. /package/.morph/{templates → framework/templates}/infrastructure/azure/sql-database.bicep +0 -0
  339. /package/.morph/{templates → framework/templates}/infrastructure/azure/storage.bicep +0 -0
  340. /package/.morph/{templates → framework/templates}/infrastructure/docker/Dockerfile.template +0 -0
  341. /package/.morph/{templates → framework/templates}/infrastructure/docker/docker-compose.template.yml +0 -0
  342. /package/.morph/{templates → framework/templates}/infrastructure/docker/dockerfile-api.dockerfile +0 -0
  343. /package/.morph/{templates → framework/templates}/infrastructure/docker/dockerfile-web.dockerfile +0 -0
  344. /package/.morph/{templates → framework/templates}/infrastructure/docker/easypanel.template.json +0 -0
  345. /package/.morph/{templates → framework/templates}/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -0
  346. /package/.morph/{templates → framework/templates}/infrastructure/github/actions/docker-build-push/action.yml.hbs +0 -0
  347. /package/.morph/{templates → framework/templates}/infrastructure/github/actions/health-check/action.yml.hbs +0 -0
  348. /package/.morph/{templates → framework/templates}/infrastructure/github/workflows/deploy-easypanel.yml.hbs +0 -0
  349. /package/.morph/{templates → framework/templates}/infrastructure/github/workflows/docker-build-push.yml.hbs +0 -0
  350. /package/.morph/{templates → framework/templates}/infrastructure/github/workflows/dotnet-build.yml.hbs +0 -0
  351. /package/.morph/{templates → framework/templates}/integrations/asaas-client.cs +0 -0
  352. /package/.morph/{templates → framework/templates}/integrations/asaas-webhook.cs +0 -0
  353. /package/.morph/{templates → framework/templates}/integrations/azure-identity-config.cs +0 -0
  354. /package/.morph/{templates → framework/templates}/integrations/clerk-config.cs +0 -0
  355. /package/.morph/{templates → framework/templates}/meta-prompts/fusion/fusion-agent.md +0 -0
  356. /package/.morph/{templates → framework/templates}/meta-prompts/fusion/fusion-aggregator.md +0 -0
  357. /package/.morph/{templates → framework/templates}/meta-prompts/hops/hop-retry.md +0 -0
  358. /package/.morph/{templates → framework/templates}/meta-prompts/hops/hop-validation.md +0 -0
  359. /package/.morph/{templates → framework/templates}/meta-prompts/hops/hop-wrapper.md +0 -0
  360. /package/.morph/{templates → framework/templates}/meta-prompts/parallel-workers/parallel-coordinator.md +0 -0
  361. /package/.morph/{templates → framework/templates}/meta-prompts/squad-leaders/backend-squad.md +0 -0
  362. /package/.morph/{templates → framework/templates}/meta-prompts/squad-leaders/frontend-squad.md +0 -0
  363. /package/.morph/{templates → framework/templates}/meta-prompts/squad-leaders/squad-leader.md +0 -0
  364. /package/.morph/{templates → framework/templates}/meta-prompts/validators/checkpoint-validator.md +0 -0
  365. /package/.morph/{templates → framework/templates}/saas/subscription.cs +0 -0
  366. /package/.morph/{templates → framework/templates}/saas/tenant.cs +0 -0
  367. /package/.morph/{templates → framework/templates}/state.template.json +0 -0
  368. /package/.morph/{templates → framework/templates}/ui/FluentDesignTheme.cs +0 -0
  369. /package/.morph/{templates → framework/templates}/ui/MudTheme.cs +0 -0
  370. /package/.morph/{templates → framework/templates}/ui/design-system.css +0 -0
  371. /package/framework/hooks/{commit-msg → git/commit-msg}/conventional-commits.sh +0 -0
  372. /package/framework/hooks/{pre-commit → git/pre-commit}/agents.sh +0 -0
  373. /package/framework/hooks/{pre-commit → git/pre-commit}/orchestrator.sh +0 -0
  374. /package/framework/hooks/{pre-commit → git/pre-commit}/specs.sh +0 -0
  375. /package/framework/hooks/{pre-push → git/pre-push}/run-tests.sh +0 -0
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';
@@ -9,11 +9,18 @@ import { readFileSync } from 'fs';
9
9
  // Project commands
10
10
  import { initCommand } from '../src/commands/project/init.js';
11
11
  import { updateCommand } from '../src/commands/project/update.js';
12
+ import { updateAgentsCommand } from '../src/commands/project/update-agents.js';
12
13
  import { doctorCommand } from '../src/commands/project/doctor.js';
13
14
  import { detectCommand } from '../src/commands/project/detect.js';
14
- import { detectAgentsCommand } from '../src/commands/project/detect-agents.js';
15
- import { detectWorkflowCommand } from '../src/commands/project/detect-workflow.js';
15
+
16
16
  import { syncCommand } from '../src/commands/project/sync.js';
17
+ import { statusCommand } from '../src/commands/project/status.js';
18
+ import { diffCommand, diffSaveCommand } from '../src/commands/project/diff.js';
19
+ import { costCommand } from '../src/commands/project/cost.js';
20
+ import { revertCommand } from '../src/commands/project/revert.js';
21
+ import { checkpointSaveCommand, checkpointRestoreCommand, checkpointListCommand } from '../src/commands/project/checkpoint.js';
22
+
23
+ import { changesCommand } from '../src/commands/project/changes.js';
17
24
 
18
25
  // Feature commands
19
26
  import { createStoryCommand } from '../src/commands/feature/create-story.js';
@@ -32,7 +39,7 @@ import { taskDoneCommand, taskStartCommand, taskNextCommand } from '../src/comma
32
39
 
33
40
  // Generation commands
34
41
  import { generateDesignSystemCommand, generateMetadataCommand } from '../src/commands/generation/generate.js';
35
- import { generateContextCommand } from '../src/commands/generation/generate-context.js';
42
+ import { generateOnboardingCommand } from '../src/commands/generation/generate-onboarding.js';
36
43
 
37
44
  // Validation commands
38
45
  import { validateCommand } from './validate.js';
@@ -41,6 +48,7 @@ import { lintFluentCommand } from '../src/commands/validation/lint-fluent.js';
41
48
  import { analyzeBlazorConcurrencyCommand } from '../src/commands/validation/analyze-blazor-concurrency.js';
42
49
  import { validateBlazorStateCommand } from '../src/commands/validation/validate-blazor-state.js';
43
50
  import { validateCssCommand } from '../src/commands/validation/validate-css.js';
51
+ import { validateFeatureCommand } from '../src/commands/validation/validate-feature.js';
44
52
 
45
53
  // Template commands
46
54
  import { templateListCommand } from '../src/commands/templates/template-list.js';
@@ -50,7 +58,6 @@ import { templateCustomizeCommand } from '../src/commands/templates/template-cus
50
58
  import { templateValidateCommand } from '../src/commands/templates/template-validate.js';
51
59
 
52
60
  // Agent commands
53
- import { spawnTeamCommand } from '../src/commands/agents/spawn-team.js';
54
61
 
55
62
  // Learning commands
56
63
  import capturePatternProgram from '../src/commands/learning/capture-pattern.js';
@@ -58,39 +65,10 @@ import searchPatternsProgram from '../src/commands/learning/search-patterns.js';
58
65
 
59
66
  // Utility commands
60
67
  import troubleshootCommand from '../src/commands/utils/troubleshoot.js';
61
- import { sessionSummaryCommand } from '../src/commands/utils/session-summary.js';
62
-
63
- // Thread, Analytics, Core Four commands
64
- import {
65
- threadsListCommand, threadsStatusCommand, threadsKillCommand,
66
- threadsAnalyticsCommand, threadsWaitAllCommand, threadsWaitAnyCommand
67
- } from '../src/commands/threads/threads.js';
68
- import {
69
- analyticsFeatureCommand, analyticsContextCommand, analyticsProjectCommand
70
- } from '../src/commands/analytics/analytics.js';
71
- import { coreFourCommand } from '../src/commands/context/core-four.js';
72
68
 
73
69
  // Context Optimization commands
74
70
  import { mcpOptimizeCommand, mcpListCommand } from '../src/commands/mcp/mcp.js';
75
- import {
76
- microAgentCreateCommand, microAgentListCommand, microAgentShowCommand
77
- } from '../src/commands/agents/micro-agent.js';
78
- import { contextPrimeCommand } from '../src/commands/context/context-prime.js';
79
-
80
- // Parallelization commands
81
- import {
82
- squadTemplateListCommand, squadTemplateUseCommand, squadTemplateShowCommand
83
- } from '../src/commands/agents/squad-template.js';
84
- import {
85
- threadTemplateListCommand, threadTemplateUseCommand
86
- } from '../src/commands/threads/thread-template.js';
87
- import { spawnTeamParallelCommand } from '../src/commands/agents/spawn-team.js';
88
-
89
- // Fusion commands
90
- import { agentsFuseCommand, agentsReviewAggregateCommand } from '../src/commands/agents/agents-fuse.js';
91
-
92
- // Meta-Prompts (HOP) commands
93
- import { hopRenderCommand, hopListCommand } from '../src/commands/templates/template-render.js';
71
+ import { mcpSetupCommand } from '../src/commands/mcp/mcp-setup.js';
94
72
 
95
73
  // Trust commands
96
74
  import {
@@ -127,6 +105,7 @@ program
127
105
  .description('Initialize MORPH-SPEC in current directory')
128
106
  .option('-f, --force', 'Overwrite existing MORPH installation')
129
107
  .option('-p, --path <path>', 'Target path (default: current directory)')
108
+ .option('--skip-mcp', 'Skip MCP server auto-setup')
130
109
  .action(initCommand);
131
110
 
132
111
  program
@@ -136,10 +115,16 @@ program
136
115
  .option('--standards', 'Update only standards')
137
116
  .action(updateCommand);
138
117
 
118
+ program
119
+ .command('update-agents')
120
+ .description('Refresh .claude/agents/ with latest morph orchestrator and domain agents')
121
+ .action(updateAgentsCommand);
122
+
139
123
  program
140
124
  .command('doctor')
141
125
  .description('Check MORPH installation health')
142
126
  .option('--full', 'Run full health check (lib files, commands, HOPs, standards, agents, state)')
127
+ .option('--reset', 'Remove morph-managed entries from .claude/settings.local.json')
143
128
  .action(doctorCommand);
144
129
 
145
130
  program
@@ -150,22 +135,6 @@ program
150
135
  .option('--no-save', 'Do not save results to .morph/project/')
151
136
  .action(detectCommand);
152
137
 
153
- program
154
- .command('detect-agents <input...>')
155
- .description('Detect which agents to activate based on keywords in user input')
156
- .option('-v, --verbose', 'Show detailed detection results')
157
- .option('-j, --json', 'Output full result as JSON')
158
- .option('-i, --ids-only', 'Output only agent IDs (one per line)')
159
- .action(detectAgentsCommand);
160
-
161
- program
162
- .command('detect-workflow <input...>')
163
- .description('Detect appropriate workflow for a feature request')
164
- .option('-v, --verbose', 'Show detailed detection reasoning')
165
- .option('-j, --json', 'Output as JSON')
166
- .option('-p, --project-path <path>', 'Project path (default: current directory)')
167
- .action(detectWorkflowCommand);
168
-
169
138
  program
170
139
  .command('sync')
171
140
  .description('Sync standards from feature decisions')
@@ -173,6 +142,19 @@ program
173
142
  .option('--dry-run', 'Show what would be synced without updating files')
174
143
  .action(syncCommand);
175
144
 
145
+ program
146
+ .command('status <feature>')
147
+ .description('Show comprehensive feature status dashboard')
148
+ .option('--json', 'Output as JSON')
149
+ .option('-v, --verbose', 'Show detailed output')
150
+ .action(statusCommand);
151
+
152
+ program
153
+ .command('changes <feature>')
154
+ .description('List files created/modified by a feature, grouped by phase')
155
+ .option('--json', 'Output as JSON')
156
+ .action((feature, options) => changesCommand(feature, options));
157
+
176
158
  // Story-driven development commands
177
159
  const storyCommand = program
178
160
  .command('story')
@@ -258,13 +240,6 @@ generateCommand
258
240
  await generateRecap('.', feature, options);
259
241
  });
260
242
 
261
- generateCommand
262
- .command('context [feature]')
263
- .description('Generate CONTEXT.md with full project data for Claude Code')
264
- .action(async (feature) => {
265
- await generateContextCommand('.', feature);
266
- });
267
-
268
243
  generateCommand
269
244
  .command('metadata <feature>')
270
245
  .description('Generate metadata.json summary from markdown outputs')
@@ -272,6 +247,11 @@ generateCommand
272
247
  .option('--verbose', 'Show detailed extraction info')
273
248
  .action((feature, options) => generateMetadataCommand(feature, options));
274
249
 
250
+ generateCommand
251
+ .command('onboarding')
252
+ .description('Generate onboarding.md guide with project context, MCPs, agents, and workflows')
253
+ .action(generateOnboardingCommand);
254
+
275
255
  // Validation commands (Sprint 4: Continuous Validation)
276
256
  program
277
257
  .command('validate [validator]')
@@ -404,6 +384,26 @@ learnCommand
404
384
  console.log(chalk.green('\n✅ Knowledge base reset\n'));
405
385
  });
406
386
 
387
+ // Standards browsing command
388
+ program
389
+ .command('standards')
390
+ .description('Browse framework standards library')
391
+ .option('--list', 'List all standards')
392
+ .option('--search <query>', 'Search standards by keyword')
393
+ .option('--show <id>', 'Show full content of a standard')
394
+ .option('--category <cat>', 'Filter by category (core, backend, frontend, infrastructure, ...)')
395
+ .option('--json', 'Output as JSON')
396
+ .action(async (opts) => {
397
+ const { listStandards, searchStandards, showStandard } = await import('../src/commands/project/standards.js');
398
+ if (opts.search) {
399
+ await searchStandards(opts.search, opts);
400
+ } else if (opts.show) {
401
+ await showStandard(opts.show);
402
+ } else {
403
+ await listStandards(opts);
404
+ }
405
+ });
406
+
407
407
  // Template management commands
408
408
  const templateCommand = program
409
409
  .command('template')
@@ -454,23 +454,6 @@ templateCommand
454
454
  .option('-v, --verbose', 'Show detailed validation information')
455
455
  .action(templateValidateCommand);
456
456
 
457
- // HOP (Higher-Order Prompts) commands
458
- const hopCommand = program
459
- .command('hop')
460
- .description('Higher-Order Prompts — render and manage meta-prompt templates');
461
-
462
- hopCommand
463
- .command('list')
464
- .description('List all available HOP templates')
465
- .action(hopListCommand);
466
-
467
- hopCommand
468
- .command('render <hop-id> [output-path]')
469
- .description('Render a HOP template with variables')
470
- .option('--variables <json>', 'Variables JSON string', '{}')
471
- .option('--dry-run', 'Preview without writing file')
472
- .action((hopId, outputPath, options) => hopRenderCommand(hopId, outputPath, options.variables, options));
473
-
474
457
  // Trust commands
475
458
  const trustCommand = program
476
459
  .command('trust')
@@ -529,13 +512,60 @@ program
529
512
  .option('-v, --verbose', 'Show detailed output')
530
513
  .action(validatePhaseCommand);
531
514
 
532
- // Session summary command
515
+ // Feature validation command (content-aware)
516
+ program
517
+ .command('validate-feature <feature>')
518
+ .alias('vf')
519
+ .description('Content-aware validation of feature outputs (sections, schema, contracts)')
520
+ .option('--phase <phase>', 'Validate outputs for a specific phase')
521
+ .option('--json', 'Output as JSON')
522
+ .option('-v, --verbose', 'Show detailed output')
523
+ .action(validateFeatureCommand);
524
+
525
+ // Diff command
526
+ program
527
+ .command('diff <feature> [output-file]')
528
+ .description('Show changes to specifications since last snapshot')
529
+ .option('--json', 'Output as JSON')
530
+ .action(diffCommand);
531
+
532
+ program
533
+ .command('diff-save <feature>')
534
+ .description('Save current outputs as snapshot for future diffs')
535
+ .action(diffSaveCommand);
536
+
537
+ // Cost tracking command
538
+ program
539
+ .command('cost <feature>')
540
+ .description('Track token usage and cost estimates across phases')
541
+ .option('--json', 'Output as JSON')
542
+ .action(costCommand);
543
+
544
+ // Revert command
533
545
  program
534
- .command('session-summary <feature>')
535
- .alias('summary')
536
- .description('Show summary of current session (phases, decisions, progress)')
546
+ .command('revert <feature>')
547
+ .description('Revert feature to a previous phase')
548
+ .option('--to <phase>', 'Target phase to revert to')
549
+ .option('--delete-outputs', 'Delete output files (default: preserve files, reset state)')
550
+ .action(revertCommand);
551
+
552
+ // Checkpoint save/restore commands
553
+ program
554
+ .command('checkpoint-save <feature>')
555
+ .description('Save full context at current phase boundary')
556
+ .option('--label <label>', 'Custom label for checkpoint')
557
+ .action(checkpointSaveCommand);
558
+
559
+ program
560
+ .command('checkpoint-restore <feature> [checkpoint]')
561
+ .description('Restore feature from a checkpoint (latest if no name given)')
562
+ .action(checkpointRestoreCommand);
563
+
564
+ program
565
+ .command('checkpoint-list <feature>')
566
+ .description('List all checkpoints for a feature')
537
567
  .option('--json', 'Output as JSON')
538
- .action(sessionSummaryCommand);
568
+ .action(checkpointListCommand);
539
569
 
540
570
  // Rollback phase command
541
571
  program
@@ -564,93 +594,10 @@ program
564
594
  .option('--json', 'Output as JSON')
565
595
  .action((feature, options) => approvalStatusCommand(feature, options));
566
596
 
567
- // Agent team spawning
568
- program
569
- .command('spawn-team <feature>')
570
- .description('Generate agent team configuration for Task tool')
571
- .option('--json', 'Output as JSON')
572
- .option('--verbose', 'Show detailed team configuration')
573
- .action((feature, options) => spawnTeamCommand(feature, options));
574
-
575
597
  // Pattern learning system - Add as subcommands
576
598
  program.addCommand(capturePatternProgram);
577
599
  program.addCommand(searchPatternsProgram);
578
600
 
579
- // ─────────────────────────────────────────────────────────────────────────────
580
- // Thread Management
581
- // ─────────────────────────────────────────────────────────────────────────────
582
- const threadsCommand = program
583
- .command('threads')
584
- .description('Thread lifecycle management');
585
-
586
- threadsCommand
587
- .command('list')
588
- .description('List threads (optionally filtered by feature/status/type)')
589
- .option('--feature <feature>', 'Filter by feature name')
590
- .option('--status <status>', 'Filter by status (pending|running|completed|failed|killed)')
591
- .option('--type <type>', 'Filter by type (base|parallel|fusion|long-running|zero-touch)')
592
- .action((options) => threadsListCommand(options));
593
-
594
- threadsCommand
595
- .command('status <id>')
596
- .description('Show detailed status of a thread')
597
- .action((id) => threadsStatusCommand(id));
598
-
599
- threadsCommand
600
- .command('kill <id>')
601
- .description('Terminate a running thread')
602
- .action((id) => threadsKillCommand(id));
603
-
604
- threadsCommand
605
- .command('analytics')
606
- .description('Show thread analytics dashboard for a feature')
607
- .option('--feature <feature>', 'Feature name (required)')
608
- .action((options) => threadsAnalyticsCommand(options));
609
-
610
- threadsCommand
611
- .command('wait-all <feature>')
612
- .description('Block until all threads for a feature complete')
613
- .option('--timeout <minutes>', 'Timeout in minutes (default: 60)', '60')
614
- .action((feature, options) => threadsWaitAllCommand(feature, options));
615
-
616
- threadsCommand
617
- .command('wait-any <feature>')
618
- .description('Block until any thread for a feature completes')
619
- .option('--timeout <minutes>', 'Timeout in minutes (default: 60)', '60')
620
- .action((feature, options) => threadsWaitAnyCommand(feature, options));
621
-
622
- // ─────────────────────────────────────────────────────────────────────────────
623
- // Analytics
624
- // ─────────────────────────────────────────────────────────────────────────────
625
- const analyticsCommand = program
626
- .command('analytics')
627
- .description('Metrics and analytics dashboards');
628
-
629
- analyticsCommand
630
- .command('feature <name>')
631
- .description('Show thread analytics dashboard for a feature')
632
- .action((name, options) => analyticsFeatureCommand(name, options));
633
-
634
- analyticsCommand
635
- .command('context <name>')
636
- .description('Show context token usage and optimization opportunities')
637
- .action((name, options) => analyticsContextCommand(name, options));
638
-
639
- analyticsCommand
640
- .command('project')
641
- .description('Show project-wide analytics dashboard (30-day summary)')
642
- .option('--period <days>', 'Period in days (default: 30)', '30')
643
- .action((options) => analyticsProjectCommand(options));
644
-
645
- // ─────────────────────────────────────────────────────────────────────────────
646
- // Core Four
647
- // ─────────────────────────────────────────────────────────────────────────────
648
- program
649
- .command('core-four <feature>')
650
- .description('Show Core Four dashboard: Context/Model/Prompt/Tools')
651
- .option('--json', 'Output as JSON')
652
- .action((feature, options) => coreFourCommand(feature, options));
653
-
654
601
  // ─────────────────────────────────────────────────────────────────────────────
655
602
  // MCP Optimizer
656
603
  // ─────────────────────────────────────────────────────────────────────────────
@@ -668,108 +615,11 @@ mcpCommand
668
615
  .description('List configured MCP servers with usage stats')
669
616
  .action((options) => mcpListCommand(options));
670
617
 
671
- // ─────────────────────────────────────────────────────────────────────────────
672
- // Micro Agents
673
- // ─────────────────────────────────────────────────────────────────────────────
674
- const microAgentCommand = program
675
- .command('micro-agent')
676
- .description('Create and manage ultra-specialized micro-agents');
677
-
678
- microAgentCommand
679
- .command('create <name>')
680
- .description('Create a new micro-agent')
681
- .option('--base-agent <agent>', 'Base agent ID to specialize from')
682
- .option('--mission <mission>', 'Single focused mission for this agent')
683
- .option('--standards <files>', 'Comma-separated standards files to load (1-3 max)')
684
- .option('--tools <tools>', 'Comma-separated tools to allow (default: Read,Write,Edit)')
685
- .action((name, options) => microAgentCreateCommand(name, options));
686
-
687
- microAgentCommand
688
- .command('list')
689
- .description('List all micro-agents')
690
- .action((options) => microAgentListCommand(options));
691
-
692
- microAgentCommand
693
- .command('show <name>')
694
- .description('Show micro-agent details')
695
- .option('--show-prompt', 'Show the generated system prompt')
696
- .action((name, options) => microAgentShowCommand(name, options));
697
-
698
- // ─────────────────────────────────────────────────────────────────────────────
699
- // Context Prime
700
- // ─────────────────────────────────────────────────────────────────────────────
701
- program
702
- .command('prime [type]')
703
- .description('Output context priming file (feature|bug|refactor|design|infra)')
704
- .option('--json', 'Output as JSON')
705
- .action((type, options) => contextPrimeCommand(type, options));
706
-
707
- // ─────────────────────────────────────────────────────────────────────────────
708
- // Fusion (F-Thread)
709
- // ─────────────────────────────────────────────────────────────────────────────
710
- const agentsFuseCmd = program
711
- .command('agents-fuse')
712
- .description('F-Thread fusion execution: run N agents, aggregate best result');
713
-
714
- agentsFuseCmd
715
- .command('run')
716
- .description('Run fusion: spawn N agents with same prompt, aggregate results')
717
- .option('--prompt <prompt>', 'Prompt/mission for all fusion agents (required)')
718
- .option('--count <n>', 'Number of agents to run (default: 3)', '3')
719
- .option('--strategy <strategy>', 'Aggregation strategy: best-of-n | consensus | manual-select', 'best-of-n')
720
- .option('--feature <feature>', 'Feature name for tracking')
721
- .option('--agents <list>', 'Comma-separated agent IDs to use')
722
- .option('--json', 'Output as JSON')
723
- .action((options) => agentsFuseCommand(options));
724
-
725
- agentsFuseCmd
726
- .command('aggregate-reviews <feature>')
727
- .description('Aggregate review results from N agents')
728
- .option('--agents <list>', 'Comma-separated agent IDs (required)')
729
- .option('--strategy <strategy>', 'Aggregation strategy', 'best-of-n')
730
- .action((feature, options) => agentsReviewAggregateCommand(feature, options));
731
-
732
- // ─────────────────────────────────────────────────────────────────────────────
733
- // Squad Templates
734
- // ─────────────────────────────────────────────────────────────────────────────
735
- const squadTemplateCmd = program
736
- .command('squad-template')
737
- .description('Squad template management for parallel execution');
738
-
739
- squadTemplateCmd
740
- .command('list')
741
- .description('List available squad templates')
742
- .action((options) => squadTemplateListCommand(options));
743
-
744
- squadTemplateCmd
745
- .command('use <template-id>')
746
- .description('Configure a feature to use a squad template')
747
- .option('--feature <feature>', 'Feature name (required)')
748
- .action((id, options) => squadTemplateUseCommand(id, options));
749
-
750
- squadTemplateCmd
751
- .command('show <template-id>')
752
- .description('Show squad template details')
753
- .option('--json', 'Output as JSON')
754
- .action((id, options) => squadTemplateShowCommand(id, options));
755
-
756
- // ─────────────────────────────────────────────────────────────────────────────
757
- // Commands — Thread Templates
758
- // ─────────────────────────────────────────────────────────────────────────────
759
- const threadTemplateCmd = program
760
- .command('thread-template')
761
- .description('Thread type management');
762
-
763
- threadTemplateCmd
764
- .command('list')
765
- .description('List available thread types (B/P/F/L/Z-Thread)')
766
- .action((options) => threadTemplateListCommand(options));
767
-
768
- threadTemplateCmd
769
- .command('use <type>')
770
- .description('Configure thread type for a feature')
771
- .option('--feature <feature>', 'Feature name (required)')
772
- .action((type, options) => threadTemplateUseCommand(type, options));
773
-
618
+ mcpCommand
619
+ .command('setup [name]')
620
+ .description('Install and configure MCP servers')
621
+ .option('--list', 'Show MCP install status')
622
+ .option('--auto', 'Auto-install credential-free MCPs without prompts')
623
+ .action((name, options) => mcpSetupCommand(name, options));
774
624
 
775
625
  program.parse();
@@ -32,7 +32,7 @@ const chalk = {
32
32
  * Looks for headings like: ### T001 — Task title
33
33
  */
34
34
  async function parseTasksMd(featureName) {
35
- const tasksPath = path.join(process.cwd(), `.morph/project/outputs/${featureName}/tasks.md`);
35
+ const tasksPath = path.join(process.cwd(), `.morph/features/${featureName}/tasks.md`);
36
36
  let content = '';
37
37
  try {
38
38
  content = await fs.readFile(tasksPath, 'utf-8');
@@ -423,7 +423,7 @@ class TaskManager {
423
423
 
424
424
  const outputPath = path.join(
425
425
  process.cwd(),
426
- `.morph/project/outputs/${featureName}/metadata.json`
426
+ `.morph/features/${featureName}/metadata.json`
427
427
  );
428
428
 
429
429
  // Ensure directory exists
package/bin/validate.js CHANGED
@@ -64,7 +64,7 @@ async function validateSpecVsTasks(projectPath, options = {}) {
64
64
  }
65
65
 
66
66
  for (const [featureName, feature] of Object.entries(state.features)) {
67
- const outputsPath = path.join(projectPath, '.morph/project/outputs', featureName);
67
+ const outputsPath = path.join(projectPath, '.morph/features', featureName);
68
68
  const specPath = path.join(outputsPath, 'spec.md');
69
69
 
70
70
  if (!fs.existsSync(specPath)) {
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "morph-spec",
3
+ "version": "4.3.7",
4
+ "displayName": "MORPH-SPEC Framework",
5
+ "description": "Spec-driven development with 37 agents and 5-phase workflow for .NET/Blazor/Next.js",
6
+ "publisher": "polymorphism-tech",
7
+ "skills": {
8
+ "directory": "framework/skills",
9
+ "namespace": "morph-spec"
10
+ },
11
+ "hooks": {
12
+ "directory": "framework/hooks/claude-code"
13
+ }
14
+ }