@polymorphism-tech/morph-spec 4.3.7 → 4.6.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 (394) hide show
  1. package/.morph/.morphversion +3 -3
  2. package/.morph/analytics/threads-log.jsonl +6 -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/{standards → framework/standards}/frontend/nextjs/nextjs-patterns.md +17 -0
  7. package/.morph/framework/standards/integration/mcp/mcp-tools.md +384 -0
  8. package/.morph/{templates → framework/templates}/README.md +17 -17
  9. package/.morph/{templates → framework/templates}/REGISTRY.json +48 -233
  10. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs +172 -0
  11. package/.morph/{templates → framework/templates}/context/CONTEXT-FEATURE.md +1 -1
  12. package/.morph/{templates → framework/templates}/context/CONTEXT.md +3 -3
  13. package/.morph/framework/templates/docs/clarifications.md +253 -0
  14. package/.morph/framework/templates/docs/onboarding.md +123 -0
  15. package/.morph/framework/templates/docs/schema-analysis.md +119 -0
  16. package/.morph/{templates → framework/templates}/docs/spec.md +149 -149
  17. package/.morph/framework/templates/docs/ui-components.md +124 -0
  18. package/.morph/framework/templates/docs/ui-design-system.md +76 -0
  19. package/.morph/framework/templates/docs/ui-flows.md +167 -0
  20. package/.morph/framework/templates/docs/ui-mockups.md +98 -0
  21. package/.morph/framework/templates/docs/user-stories.md +34 -0
  22. package/.morph/{templates → framework/templates}/examples/spec-examples.md +1 -1
  23. package/.morph/{templates → framework/templates}/infrastructure/github/README.md +11 -11
  24. package/.morph/{templates → framework/templates}/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +2 -2
  25. package/.morph/{templates → framework/templates}/meta-prompts/parallel-workers/parallel-worker.md +2 -2
  26. package/.morph/{templates → framework/templates}/meta-prompts/validators/pre-commit-validator.md +1 -1
  27. package/.morph/logs/tool-failures.log +7 -0
  28. package/.morph/memory/pre-compact-2026-02-23T15-43-03-521Z.json +16 -0
  29. package/.morph/state.json +1 -1
  30. package/CLAUDE.md +77 -155
  31. package/README.md +20 -18
  32. package/bin/detect-agents.js +1 -1
  33. package/bin/morph-spec.js +116 -266
  34. package/bin/task-manager.cjs +2 -2
  35. package/bin/validate.js +1 -1
  36. package/claude-plugin.json +14 -0
  37. package/docs/claude-alignment-report.md +137 -0
  38. package/docs/plans/2026-02-22-claude-docs-morph-alignment-analysis.md +512 -0
  39. package/docs/plans/2026-02-22-claude-settings.md +515 -0
  40. package/docs/plans/2026-02-22-morph-cc-alignment-impl.md +728 -0
  41. package/docs/plans/2026-02-22-morph-spec-next.md +478 -0
  42. package/docs/plans/2026-02-22-native-alignment-design.md +199 -0
  43. package/docs/plans/2026-02-22-native-alignment-impl.md +925 -0
  44. package/docs/plans/2026-02-22-native-enrichment-design.md +244 -0
  45. package/docs/plans/2026-02-22-native-enrichment.md +735 -0
  46. package/framework/CLAUDE.md +77 -0
  47. package/framework/{skills/level-2-domains → agents}/ai-agents/ai-system-architect.md +7 -3
  48. package/framework/{skills/level-2-domains → agents}/architecture/po-pm-advisor.md +7 -1
  49. package/framework/{skills/level-2-domains → agents}/architecture/prompt-engineer.md +7 -1
  50. package/framework/{skills/level-2-domains → agents}/architecture/seo-growth-hacker.md +7 -1
  51. package/framework/{skills/level-2-domains → agents}/architecture/standards-architect.md +10 -6
  52. package/framework/agents/backend/api-designer.md +103 -0
  53. package/framework/{skills/level-2-domains → agents}/backend/dotnet-senior.md +7 -1
  54. package/framework/agents/backend/ef-modeler.md +119 -0
  55. package/framework/{skills/level-2-domains → agents}/backend/hangfire-orchestrator.md +8 -4
  56. package/framework/{skills/level-2-domains → agents}/backend/ms-agent-expert.md +7 -3
  57. package/framework/{skills/level-2-domains → agents}/frontend/blazor-builder.md +7 -3
  58. package/framework/{skills/level-2-domains → agents}/frontend/nextjs-expert.md +7 -3
  59. package/framework/{skills/level-2-domains → agents}/frontend/ui-ux-designer.md +8 -2
  60. package/framework/{skills/level-2-domains → agents}/infrastructure/azure-architect.md +7 -1
  61. package/framework/{skills/level-2-domains → agents}/infrastructure/azure-deploy-specialist.md +7 -1
  62. package/framework/{skills/level-2-domains → agents}/infrastructure/bicep-architect.md +7 -3
  63. package/framework/{skills/level-2-domains → agents}/infrastructure/container-specialist.md +7 -3
  64. package/framework/{skills/level-2-domains → agents}/infrastructure/devops-engineer.md +7 -3
  65. package/framework/{skills/level-2-domains → agents}/integrations/asaas-financial.md +7 -3
  66. package/framework/{skills/level-2-domains → agents}/integrations/azure-identity.md +7 -3
  67. package/framework/{skills/level-2-domains → agents}/integrations/clerk-auth.md +7 -3
  68. package/framework/{skills/level-2-domains/integrations/hangfire-orchestrator.md → agents/integrations/hangfire-integration.md} +7 -1
  69. package/framework/{skills/level-2-domains → agents}/integrations/resend-email.md +7 -3
  70. package/framework/{skills/level-2-domains → agents}/quality/code-analyzer.md +9 -5
  71. package/framework/{skills/level-2-domains → agents}/quality/testing-specialist.md +7 -3
  72. package/framework/commands/morph-apply.md +9 -9
  73. package/framework/commands/morph-archive.md +8 -8
  74. package/framework/commands/morph-infra.md +1 -1
  75. package/framework/commands/morph-proposal.md +9 -9
  76. package/framework/commands/morph-status.md +3 -3
  77. package/framework/commands/morph-troubleshoot.md +1 -1
  78. package/framework/hooks/README.md +201 -282
  79. package/framework/hooks/claude-code/notification/approval-reminder.js +52 -0
  80. package/framework/hooks/claude-code/post-tool-use/dispatch.js +83 -0
  81. package/framework/hooks/claude-code/post-tool-use/handle-tool-failure.js +42 -0
  82. package/framework/hooks/claude-code/pre-compact/save-morph-context.js +61 -0
  83. package/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +71 -0
  84. package/framework/hooks/claude-code/pre-tool-use/protect-readonly-files.js +58 -0
  85. package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +64 -0
  86. package/framework/hooks/claude-code/session-start/inject-morph-context.js +94 -0
  87. package/framework/hooks/claude-code/statusline.py +538 -0
  88. package/framework/hooks/claude-code/statusline.sh +7 -0
  89. package/framework/hooks/claude-code/stop/validate-completion.js +88 -0
  90. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +91 -0
  91. package/framework/hooks/shared/hook-response.js +45 -0
  92. package/framework/hooks/shared/phase-utils.js +129 -0
  93. package/framework/hooks/shared/state-reader.js +138 -0
  94. package/framework/hooks/shared/stdin-reader.js +26 -0
  95. package/framework/phases.json +145 -0
  96. package/framework/rules/csharp-standards.md +10 -0
  97. package/framework/rules/frontend-standards.md +14 -0
  98. package/framework/rules/infrastructure-standards.md +13 -0
  99. package/framework/rules/morph-workflow.md +86 -0
  100. package/framework/rules/testing-standards.md +11 -0
  101. package/framework/skills/README.md +66 -0
  102. package/framework/skills/level-0-meta/brainstorming/SKILL.md +135 -0
  103. package/framework/skills/level-0-meta/brainstorming/references/proposal-example.md +138 -0
  104. package/framework/skills/level-0-meta/{code-review.md → code-review/SKILL.md} +13 -4
  105. package/framework/skills/level-0-meta/code-review/references/review-example.md +164 -0
  106. package/framework/skills/level-0-meta/code-review/scripts/scan-csharp.mjs +121 -0
  107. package/framework/skills/level-0-meta/mcp-registry.json +207 -0
  108. package/framework/skills/level-0-meta/{morph-checklist.md → morph-checklist/SKILL.md} +8 -3
  109. package/framework/skills/{level-1-workflows/morph-replicate.md → level-0-meta/morph-replicate/SKILL.md} +13 -6
  110. package/framework/skills/level-0-meta/{simulation-checklist.md → simulation-checklist/SKILL.md} +9 -4
  111. package/framework/skills/level-0-meta/tool-usage-guide/SKILL.md +334 -0
  112. package/framework/skills/level-0-meta/verification-before-completion/SKILL.md +147 -0
  113. package/framework/skills/level-0-meta/verification-before-completion/scripts/check-phase-outputs.mjs +110 -0
  114. package/framework/skills/level-1-workflows/{phase-clarify.md → phase-clarify/SKILL.md} +65 -4
  115. package/framework/skills/level-1-workflows/phase-clarify/references/clarifications-example.md +117 -0
  116. package/framework/skills/level-1-workflows/phase-codebase-analysis/SKILL.md +181 -0
  117. package/framework/skills/level-1-workflows/phase-design/SKILL.md +303 -0
  118. package/framework/skills/level-1-workflows/phase-design/references/spec-example.md +253 -0
  119. package/framework/skills/level-1-workflows/phase-implement/SKILL.md +254 -0
  120. package/framework/skills/level-1-workflows/phase-implement/references/recap-example.md +132 -0
  121. package/framework/skills/level-1-workflows/phase-setup/SKILL.md +171 -0
  122. package/framework/skills/level-1-workflows/{phase-tasks.md → phase-tasks/SKILL.md} +89 -7
  123. package/framework/skills/level-1-workflows/phase-tasks/references/tasks-example.md +231 -0
  124. package/framework/skills/level-1-workflows/phase-tasks/scripts/validate-tasks.mjs +112 -0
  125. package/framework/skills/level-1-workflows/phase-uiux/SKILL.md +246 -0
  126. package/framework/standards/STANDARDS.json +812 -0
  127. package/framework/standards/ai-agents/team-orchestration.md +3 -3
  128. package/framework/standards/frontend/nextjs/nextjs-patterns.md +17 -0
  129. package/framework/standards/integration/mcp/mcp-tools.md +384 -0
  130. package/framework/templates/README.md +17 -17
  131. package/framework/templates/REGISTRY.json +48 -233
  132. package/framework/templates/code/dotnet/contracts/contracts.cs.hbs +172 -0
  133. package/framework/templates/context/CONTEXT-FEATURE.md +1 -1
  134. package/framework/templates/context/CONTEXT.md +3 -3
  135. package/framework/templates/docs/clarifications.md +253 -0
  136. package/framework/templates/docs/onboarding.md +123 -0
  137. package/framework/templates/docs/schema-analysis.md +119 -0
  138. package/framework/templates/docs/spec.md +149 -149
  139. package/framework/templates/docs/ui-components.md +124 -0
  140. package/framework/templates/docs/ui-design-system.md +76 -0
  141. package/framework/templates/docs/ui-flows.md +167 -0
  142. package/framework/templates/docs/ui-mockups.md +98 -0
  143. package/framework/templates/docs/user-stories.md +34 -0
  144. package/framework/templates/examples/spec-examples.md +1 -1
  145. package/framework/templates/infrastructure/github/README.md +11 -11
  146. package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +2 -2
  147. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +2 -2
  148. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +1 -1
  149. package/framework/workflows/configs/express.json +45 -0
  150. package/framework/workflows/configs/spec-only.json +43 -0
  151. package/framework/workflows/docs/enforcement-pipeline.md +8 -8
  152. package/framework/workflows/docs/full-morph.md +3 -3
  153. package/package.json +3 -1
  154. package/scripts/generate-refs.js +336 -0
  155. package/scripts/generate-standards-registry.js +44 -0
  156. package/scripts/validate-real.mjs +255 -0
  157. package/src/commands/feature/create-story.js +362 -361
  158. package/src/commands/feature/shard-spec.js +225 -224
  159. package/src/commands/feature/sprint-status.js +1 -1
  160. package/src/commands/generation/generate-onboarding.js +169 -0
  161. package/src/commands/generation/generate.js +2 -2
  162. package/src/commands/mcp/mcp-setup.js +315 -0
  163. package/src/commands/project/changes.js +66 -0
  164. package/src/commands/project/checkpoint.js +209 -0
  165. package/src/commands/project/cost.js +179 -0
  166. package/src/commands/project/diff.js +278 -0
  167. package/src/commands/project/doctor.js +55 -7
  168. package/src/commands/project/init.js +318 -136
  169. package/src/commands/project/revert.js +173 -0
  170. package/src/commands/project/standards.js +80 -0
  171. package/src/commands/project/status.js +376 -0
  172. package/src/commands/project/update-agents.js +23 -0
  173. package/src/commands/project/update.js +60 -88
  174. package/src/commands/state/advance-phase.js +4 -3
  175. package/src/commands/state/state.js +10 -3
  176. package/src/commands/state/validate-phase.js +19 -2
  177. package/src/commands/templates/template-customize.js +4 -4
  178. package/src/commands/templates/template-render.js +1 -1
  179. package/src/commands/templates/template-show.js +1 -1
  180. package/src/commands/validation/validate-feature.js +359 -0
  181. package/src/core/orchestrator.js +3 -38
  182. package/src/core/paths/output-schema.js +135 -0
  183. package/src/core/state/state-manager.js +831 -592
  184. package/src/core/templates/template-registry.js +2 -2
  185. package/src/core/workflows/workflow-detector.js +17 -1
  186. package/src/lib/agents/micro-agent-factory.js +1 -1
  187. package/src/lib/context/context-bundler.js +2 -1
  188. package/src/lib/detectors/claude-config-detector.js +390 -0
  189. package/src/lib/detectors/conversation-analyzer.js +4 -4
  190. package/src/lib/detectors/design-system-detector.js +6 -5
  191. package/src/lib/detectors/standards-generator.js +2 -2
  192. package/src/lib/generators/context-generator.js +539 -538
  193. package/src/lib/generators/recap-generator.js +1 -1
  194. package/src/lib/generators/settings-generator.js +210 -0
  195. package/src/lib/hooks/hook-executor.js +1 -1
  196. package/src/lib/installers/mcp-installer.js +299 -0
  197. package/src/lib/learning/learning-system.js +3 -3
  198. package/src/lib/orchestration/team-orchestrator.js +1 -1
  199. package/src/lib/standards/standards-context-injector.js +7 -7
  200. package/src/lib/threads/thread-coordinator.js +1 -1
  201. package/src/lib/troubleshooting/troubleshoot-grep.js +1 -1
  202. package/src/lib/validators/contracts/contract-compliance-validator.js +274 -273
  203. package/src/lib/validators/design-system/design-system-validator.js +1 -1
  204. package/src/lib/validators/spec-validator.js +258 -258
  205. package/src/lib/validators/validation-runner.js +270 -269
  206. package/src/utils/agents-installer.js +206 -0
  207. package/src/utils/claude-settings-manager.js +258 -0
  208. package/src/utils/file-copier.js +1 -1
  209. package/src/utils/hooks-installer.js +354 -28
  210. package/src/utils/skills-installer.js +118 -0
  211. package/.morph/project/context/README.md +0 -17
  212. package/.morph/project/context/detection-log.md +0 -16
  213. package/.morph/project/standards/inferred.md +0 -59
  214. package/framework/hooks/agent-stop/validate-and-continue.js +0 -96
  215. package/framework/hooks/agent-stop/validate-checkpoints.js +0 -101
  216. package/framework/hooks/agent-stop/validate-tests.js +0 -109
  217. package/framework/hooks/agent-teams/dispatch.js +0 -67
  218. package/framework/hooks/agent-teams/phase-advanced.js +0 -80
  219. package/framework/hooks/agent-teams/task-completed.js +0 -76
  220. package/framework/hooks/agent-teams/teammate-idle.js +0 -70
  221. package/framework/skills/level-1-workflows/phase-design.md +0 -213
  222. package/framework/skills/level-1-workflows/phase-setup.md +0 -106
  223. package/framework/skills/level-1-workflows/phase-uiux.md +0 -169
  224. package/framework/skills/level-2-domains/backend/api-designer.md +0 -59
  225. package/framework/skills/level-2-domains/backend/ef-modeler.md +0 -58
  226. package/framework/skills/level-3-technologies/README.md +0 -7
  227. package/framework/skills/level-4-patterns/README.md +0 -7
  228. package/src/commands/agents/agents-fuse.js +0 -97
  229. package/src/commands/agents/micro-agent.js +0 -112
  230. package/src/commands/agents/spawn-team.js +0 -237
  231. package/src/commands/agents/squad-template.js +0 -146
  232. package/src/commands/analytics/analytics.js +0 -176
  233. package/src/commands/context/context-prime.js +0 -63
  234. package/src/commands/context/core-four.js +0 -54
  235. package/src/commands/generation/generate-context.js +0 -40
  236. package/src/commands/project/detect-agents.js +0 -207
  237. package/src/commands/project/detect-workflow.js +0 -174
  238. package/src/commands/threads/thread-template.js +0 -103
  239. package/src/commands/threads/threads.js +0 -261
  240. package/src/commands/utils/session-summary.js +0 -291
  241. package/src/llm/analyzer.js +0 -215
  242. package/src/llm/few-shot-examples.js +0 -216
  243. package/src/llm/project-config-schema.json +0 -188
  244. package/src/llm/prompt-builder.js +0 -96
  245. /package/.morph/{config → framework}/agents.json +0 -0
  246. /package/.morph/{standards → framework/standards}/ai-agents/blazor-ui.md +0 -0
  247. /package/.morph/{standards → framework/standards}/ai-agents/production.md +0 -0
  248. /package/.morph/{standards → framework/standards}/ai-agents/setup.md +0 -0
  249. /package/.morph/{standards → framework/standards}/ai-agents/workflows.md +0 -0
  250. /package/.morph/{standards → framework/standards}/architecture/ddd/aggregates.md +0 -0
  251. /package/.morph/{standards → framework/standards}/architecture/ddd/entities.md +0 -0
  252. /package/.morph/{standards → framework/standards}/architecture/ddd/value-objects.md +0 -0
  253. /package/.morph/{standards → framework/standards}/backend/api/minimal-api.md +0 -0
  254. /package/.morph/{standards → framework/standards}/backend/api/rest.md +0 -0
  255. /package/.morph/{standards → framework/standards}/backend/api/validation.md +0 -0
  256. /package/.morph/{standards → framework/standards}/backend/authentication/passkeys.md +0 -0
  257. /package/.morph/{standards → framework/standards}/backend/database/ef-core.md +0 -0
  258. /package/.morph/{standards → framework/standards}/backend/database/migrations.md +0 -0
  259. /package/.morph/{standards → framework/standards}/backend/database/postgresql/database.md +0 -0
  260. /package/.morph/{standards → framework/standards}/backend/database/repository-patterns.md +0 -0
  261. /package/.morph/{standards → framework/standards}/backend/database/vector-search-rag.md +0 -0
  262. /package/.morph/{standards → framework/standards}/backend/dotnet/async.md +0 -0
  263. /package/.morph/{standards → framework/standards}/backend/dotnet/core.md +0 -0
  264. /package/.morph/{standards → framework/standards}/backend/dotnet/di.md +0 -0
  265. /package/.morph/{standards → framework/standards}/backend/dotnet/program-cs-checklist.md +0 -0
  266. /package/.morph/{standards → framework/standards}/backend/integrations/asaas/asaas-api.md +0 -0
  267. /package/.morph/{standards → framework/standards}/backend/integrations/clerk/clerk-auth.md +0 -0
  268. /package/.morph/{standards → framework/standards}/backend/integrations/hangfire/hangfire-jobs.md +0 -0
  269. /package/.morph/{standards → framework/standards}/backend/integrations/resend/resend-email.md +0 -0
  270. /package/.morph/{standards → framework/standards}/context/analytics.md +0 -0
  271. /package/.morph/{standards → framework/standards}/context/bundles.md +0 -0
  272. /package/.morph/{standards → framework/standards}/context/priming.md +0 -0
  273. /package/.morph/{standards → framework/standards}/core/architecture.md +0 -0
  274. /package/.morph/{standards → framework/standards}/core/coding.md +0 -0
  275. /package/.morph/{standards → framework/standards}/core/git-branching-strategy.md +0 -0
  276. /package/.morph/{standards → framework/standards}/core/git.md +0 -0
  277. /package/.morph/{standards → framework/standards}/core/testing.md +0 -0
  278. /package/.morph/{standards → framework/standards}/data/nosql/blob-storage.md +0 -0
  279. /package/.morph/{standards → framework/standards}/data/nosql/cache/redis.md +0 -0
  280. /package/.morph/{standards → framework/standards}/data/nosql/cosmos-db.md +0 -0
  281. /package/.morph/{standards → framework/standards}/data/vector-search/azure-ai-search.md +0 -0
  282. /package/.morph/{standards → framework/standards}/data/vector-search/rag-chunking.md +0 -0
  283. /package/.morph/{standards → framework/standards}/frontend/blazor/design-checklist.md +0 -0
  284. /package/.morph/{standards → framework/standards}/frontend/blazor/fluent-ui-setup.md +0 -0
  285. /package/.morph/{standards → framework/standards}/frontend/blazor/fluent-ui.md +0 -0
  286. /package/.morph/{standards → framework/standards}/frontend/blazor/html-conversion.md +0 -0
  287. /package/.morph/{standards → framework/standards}/frontend/blazor/lifecycle.md +0 -0
  288. /package/.morph/{standards → framework/standards}/frontend/blazor/pitfalls.md +0 -0
  289. /package/.morph/{standards → framework/standards}/frontend/blazor/state.md +0 -0
  290. /package/.morph/{standards → framework/standards}/frontend/design-system/animations.md +0 -0
  291. /package/.morph/{standards → framework/standards}/frontend/design-system/naming.md +0 -0
  292. /package/.morph/{standards → framework/standards}/infrastructure/azure/azure.md +0 -0
  293. /package/.morph/{standards → framework/standards}/infrastructure/azure/bicep/bicep-patterns.md +0 -0
  294. /package/.morph/{standards → framework/standards}/infrastructure/azure/devops/azure-devops-setup.md +0 -0
  295. /package/.morph/{standards → framework/standards}/infrastructure/azure/devops/local-development.md +0 -0
  296. /package/.morph/{standards → framework/standards}/infrastructure/azure/services/functions.md +0 -0
  297. /package/.morph/{standards → framework/standards}/infrastructure/azure/services/service-bus.md +0 -0
  298. /package/.morph/{standards → framework/standards}/infrastructure/azure/services/storage.md +0 -0
  299. /package/.morph/{standards → framework/standards}/infrastructure/docker/easypanel-deploy.md +0 -0
  300. /package/.morph/{standards → framework/standards}/infrastructure/supabase/mcp-setup.md +0 -0
  301. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-auth.md +0 -0
  302. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-pgvector.md +0 -0
  303. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-rls.md +0 -0
  304. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-storage.md +0 -0
  305. /package/.morph/{standards → framework/standards}/integration/api/graphql.md +0 -0
  306. /package/.morph/{standards → framework/standards}/integration/api/grpc.md +0 -0
  307. /package/.morph/{standards → framework/standards}/integration/api/rest-design.md +0 -0
  308. /package/.morph/{standards → framework/standards}/integration/event-driven/cqrs.md +0 -0
  309. /package/.morph/{standards → framework/standards}/integration/event-driven/event-sourcing.md +0 -0
  310. /package/.morph/{standards → framework/standards}/integration/event-driven/service-bus.md +0 -0
  311. /package/.morph/{standards → framework/standards}/observability/logging.md +0 -0
  312. /package/.morph/{standards → framework/standards}/observability/metrics.md +0 -0
  313. /package/.morph/{standards → framework/standards}/observability/monitoring.md +0 -0
  314. /package/.morph/{standards → framework/standards}/observability/tracing.md +0 -0
  315. /package/.morph/{standards → framework/standards}/workflows/parallel-execution.md +0 -0
  316. /package/.morph/{standards → framework/standards}/workflows/thread-management.md +0 -0
  317. /package/.morph/{templates → framework/templates}/.idea/morph-templates.xml +0 -0
  318. /package/.morph/{templates → framework/templates}/.vscode/morph-templates.code-snippets +0 -0
  319. /package/.morph/{templates → framework/templates}/IDE-SNIPPETS.md +0 -0
  320. /package/.morph/{templates → framework/templates}/code/dotnet/backend/repository.cs +0 -0
  321. /package/.morph/{templates → framework/templates}/code/dotnet/backend/service.cs +0 -0
  322. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/Commands.cs +0 -0
  323. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/Entities.cs +0 -0
  324. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/Queries.cs +0 -0
  325. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/README.md +0 -0
  326. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/api-contracts.cs +0 -0
  327. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/contracts.cs +0 -0
  328. /package/.morph/{templates → framework/templates}/code/dotnet/database/migration.cs +0 -0
  329. /package/.morph/{templates → framework/templates}/code/dotnet/frontend/component.razor +0 -0
  330. /package/.morph/{templates → framework/templates}/code/dotnet/jobs/agent.cs +0 -0
  331. /package/.morph/{templates → framework/templates}/code/dotnet/jobs/job.cs +0 -0
  332. /package/.morph/{templates → framework/templates}/code/dotnet/test.cs +0 -0
  333. /package/.morph/{templates → framework/templates}/code/sql/rls-policy.sql +0 -0
  334. /package/.morph/{templates → framework/templates}/code/sql/supabase-migration.sql +0 -0
  335. /package/.morph/{templates → framework/templates}/code/sql/supabase-migration.template.sql +0 -0
  336. /package/.morph/{templates → framework/templates}/code/typescript/contracts.ts +0 -0
  337. /package/.morph/{templates → framework/templates}/docs/proposal.md +0 -0
  338. /package/.morph/{templates → framework/templates}/examples/design-system-examples.md +0 -0
  339. /package/.morph/{templates → framework/templates}/feature/decisions.md +0 -0
  340. /package/.morph/{templates → framework/templates}/feature/recap.md +0 -0
  341. /package/.morph/{templates → framework/templates}/feature/tasks.md +0 -0
  342. /package/.morph/{templates → framework/templates}/infrastructure/azure/Dockerfile.example +0 -0
  343. /package/.morph/{templates → framework/templates}/infrastructure/azure/README.md +0 -0
  344. /package/.morph/{templates → framework/templates}/infrastructure/azure/app-insights.bicep +0 -0
  345. /package/.morph/{templates → framework/templates}/infrastructure/azure/app-service.bicep +0 -0
  346. /package/.morph/{templates → framework/templates}/infrastructure/azure/container-app-env.bicep +0 -0
  347. /package/.morph/{templates → framework/templates}/infrastructure/azure/container-app.bicep +0 -0
  348. /package/.morph/{templates → framework/templates}/infrastructure/azure/deploy-checklist.md +0 -0
  349. /package/.morph/{templates → framework/templates}/infrastructure/azure/deploy.ps1 +0 -0
  350. /package/.morph/{templates → framework/templates}/infrastructure/azure/deploy.sh +0 -0
  351. /package/.morph/{templates → framework/templates}/infrastructure/azure/key-vault.bicep +0 -0
  352. /package/.morph/{templates → framework/templates}/infrastructure/azure/main.bicep +0 -0
  353. /package/.morph/{templates → framework/templates}/infrastructure/azure/parameters.dev.json +0 -0
  354. /package/.morph/{templates → framework/templates}/infrastructure/azure/parameters.prod.json +0 -0
  355. /package/.morph/{templates → framework/templates}/infrastructure/azure/parameters.staging.json +0 -0
  356. /package/.morph/{templates → framework/templates}/infrastructure/azure/sql-database.bicep +0 -0
  357. /package/.morph/{templates → framework/templates}/infrastructure/azure/storage.bicep +0 -0
  358. /package/.morph/{templates → framework/templates}/infrastructure/docker/Dockerfile.template +0 -0
  359. /package/.morph/{templates → framework/templates}/infrastructure/docker/docker-compose.template.yml +0 -0
  360. /package/.morph/{templates → framework/templates}/infrastructure/docker/dockerfile-api.dockerfile +0 -0
  361. /package/.morph/{templates → framework/templates}/infrastructure/docker/dockerfile-web.dockerfile +0 -0
  362. /package/.morph/{templates → framework/templates}/infrastructure/docker/easypanel.template.json +0 -0
  363. /package/.morph/{templates → framework/templates}/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -0
  364. /package/.morph/{templates → framework/templates}/infrastructure/github/actions/docker-build-push/action.yml.hbs +0 -0
  365. /package/.morph/{templates → framework/templates}/infrastructure/github/actions/health-check/action.yml.hbs +0 -0
  366. /package/.morph/{templates → framework/templates}/infrastructure/github/workflows/deploy-easypanel.yml.hbs +0 -0
  367. /package/.morph/{templates → framework/templates}/infrastructure/github/workflows/docker-build-push.yml.hbs +0 -0
  368. /package/.morph/{templates → framework/templates}/infrastructure/github/workflows/dotnet-build.yml.hbs +0 -0
  369. /package/.morph/{templates → framework/templates}/integrations/asaas-client.cs +0 -0
  370. /package/.morph/{templates → framework/templates}/integrations/asaas-webhook.cs +0 -0
  371. /package/.morph/{templates → framework/templates}/integrations/azure-identity-config.cs +0 -0
  372. /package/.morph/{templates → framework/templates}/integrations/clerk-config.cs +0 -0
  373. /package/.morph/{templates → framework/templates}/meta-prompts/fusion/fusion-agent.md +0 -0
  374. /package/.morph/{templates → framework/templates}/meta-prompts/fusion/fusion-aggregator.md +0 -0
  375. /package/.morph/{templates → framework/templates}/meta-prompts/hops/hop-retry.md +0 -0
  376. /package/.morph/{templates → framework/templates}/meta-prompts/hops/hop-validation.md +0 -0
  377. /package/.morph/{templates → framework/templates}/meta-prompts/hops/hop-wrapper.md +0 -0
  378. /package/.morph/{templates → framework/templates}/meta-prompts/parallel-workers/parallel-coordinator.md +0 -0
  379. /package/.morph/{templates → framework/templates}/meta-prompts/squad-leaders/backend-squad.md +0 -0
  380. /package/.morph/{templates → framework/templates}/meta-prompts/squad-leaders/frontend-squad.md +0 -0
  381. /package/.morph/{templates → framework/templates}/meta-prompts/squad-leaders/squad-leader.md +0 -0
  382. /package/.morph/{templates → framework/templates}/meta-prompts/validators/checkpoint-validator.md +0 -0
  383. /package/.morph/{templates → framework/templates}/saas/subscription.cs +0 -0
  384. /package/.morph/{templates → framework/templates}/saas/tenant.cs +0 -0
  385. /package/.morph/{templates → framework/templates}/state.template.json +0 -0
  386. /package/.morph/{templates → framework/templates}/ui/FluentDesignTheme.cs +0 -0
  387. /package/.morph/{templates → framework/templates}/ui/MudTheme.cs +0 -0
  388. /package/.morph/{templates → framework/templates}/ui/design-system.css +0 -0
  389. /package/framework/{skills/level-2-domains → agents}/README.md +0 -0
  390. /package/framework/hooks/{commit-msg → git/commit-msg}/conventional-commits.sh +0 -0
  391. /package/framework/hooks/{pre-commit → git/pre-commit}/agents.sh +0 -0
  392. /package/framework/hooks/{pre-commit → git/pre-commit}/orchestrator.sh +0 -0
  393. /package/framework/hooks/{pre-commit → git/pre-commit}/specs.sh +0 -0
  394. /package/framework/hooks/{pre-push → git/pre-push}/run-tests.sh +0 -0
@@ -0,0 +1,334 @@
1
+ ---
2
+ name: tool-usage-guide
3
+ description: Decision flowchart and per-phase reference for selecting the right Claude Code tool (Read, Grep, Glob, Bash, Task) or MCP tool in MORPH-SPEC workflows. Use when unsure which tool to use for a given action, when choosing between native tools and MCPs, or when deciding whether to use a subagent vs direct tools.
4
+ user-invocable: true
5
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
6
+ ---
7
+
8
+ # Tool Usage Guide for MORPH Workflows
9
+
10
+ > Operational guide for selecting the correct Claude Code tools and MCP tools at each morph-spec phase. Each phase uses a distinct set of tools optimized for its goals.
11
+ >
12
+ > **Ref:** `framework/standards/integration/mcp/mcp-tools.md` for detailed MCP examples.
13
+
14
+ ---
15
+
16
+ ## Decision Flowchart
17
+
18
+ ```
19
+ ┌──────────────────────────────┐
20
+ │ I need to complete an action │
21
+ └──────────────┬───────────────┘
22
+
23
+
24
+ ┌───────────────────────────────────────┐
25
+ │ Is it a SEARCH for a specific file, │
26
+ │ keyword, or function? │
27
+ └──────┬──────────────────┬─────────────┘
28
+ │ YES │ NO
29
+ ▼ ▼
30
+ Use Glob/Grep ┌─────────────────────────┐
31
+ or Read │ Does it need STRUCTURED │
32
+ │ external data (schema, │
33
+ │ API docs, design tokens)?│
34
+ └──┬──────────────┬────────┘
35
+ │ YES │ NO
36
+ ▼ ▼
37
+ Use MCP tool ┌──────────────────┐
38
+ (+ fallback) │ Does it require │
39
+ │ MULTI-STEP │
40
+ │ exploration of │
41
+ │ many files? │
42
+ └──┬──────────┬─────┘
43
+ │ YES │ NO
44
+ ▼ ▼
45
+ Use Task Do it
46
+ (subagent) directly
47
+ ```
48
+
49
+ ---
50
+
51
+ ## Tools Per Phase
52
+
53
+ ### Phase 0 — Proposal
54
+
55
+ **Goal:** Understand the feature request and create proposal.md
56
+
57
+ | Action | Tool | Why |
58
+ |--------|------|-----|
59
+ | Read project context | **Read** `.morph/context/README.md` | Single known file |
60
+ | Read config | **Read** `.morph/config.json` | Single known file |
61
+ | Find existing features | **Glob** `.morph/features/*/0-proposal/proposal.md` | Pattern search |
62
+ | Detect project stack | **Bash** `npx morph-spec detect-agents --json "..."` | CLI command |
63
+ | Research external requirement | **WebSearch** | Current information needed |
64
+ | Render proposal template | **Bash** `npx morph-spec template render docs/proposal ...` | CLI command |
65
+ | Update state | **Bash** `npx morph-spec state mark-output ...` | CLI command |
66
+
67
+ **MCPs used:** None typically. GitHub MCP if feature comes from an issue.
68
+
69
+ **Anti-patterns:**
70
+ - ❌ Task agent to read proposal template (just use Read)
71
+ - ❌ Bash `cat` to read files (use Read tool)
72
+ - ❌ Bash `find` to locate files (use Glob tool)
73
+
74
+ ---
75
+
76
+ ### Phase 1 — Setup
77
+
78
+ **Goal:** Load context, detect stack, activate agents
79
+
80
+ | Action | Tool | Why |
81
+ |--------|------|-----|
82
+ | Verify feature state | **Bash** `npx morph-spec state get {feature}` | CLI command |
83
+ | Detect agents + standards | **Bash** `npx morph-spec detect-agents --json "..."` | CLI command, returns JSON with standards |
84
+ | Read project context | **Read** `.morph/context/README.md` | Single file |
85
+ | Read config | **Read** `.morph/config.json` | Single file |
86
+ | Scan project structure | **Glob** `src/**/*.{ts,tsx,cs}` | Understand codebase layout |
87
+ | Get repo metadata | **GitHub MCP** `get_repo()` | Structured repo info (if MCP available) |
88
+ | Update state | **Bash** `npx morph-spec state set ...` | CLI command |
89
+
90
+ **MCPs used:** GitHub (optional — for repo metadata).
91
+
92
+ **Anti-patterns:**
93
+ - ❌ Task agent to detect project stack (detect-agents CLI does this)
94
+ - ❌ WebSearch for project info (it's local, use Read/Glob)
95
+ - ❌ Manual parsing of agents.json (detect-agents handles it)
96
+
97
+ ---
98
+
99
+ ### Phase 1.5 — UI/UX Design
100
+
101
+ **Goal:** Create UI mockups, design system, component specs, user flows
102
+
103
+ | Action | Tool | Why |
104
+ |--------|------|-----|
105
+ | Check existing design system | **Read** `.morph/context/design-system.md` | Single file |
106
+ | Read user-provided screenshots | **Read** (image files) | Claude Code reads images natively |
107
+ | Search for existing CSS variables | **Grep** `--root:` or `--color-` in `*.css,*.scss` | Find existing design tokens |
108
+ | Find existing UI components | **Glob** `**/Components/**/*.razor` or `**/components/**/*.tsx` | Existing patterns |
109
+ | Get Figma design tokens | **Figma MCP** `get_file({ fileKey })` | Extract colors, typography from Figma |
110
+ | Look up component library API | **Context7 MCP** `query_docs({ libraryId, query })` | Accurate component props/events |
111
+ | Preview de página existente | **Playwright MCP** `browser_navigate()` + `browser_take_screenshot()` | **WebFetch** URL |
112
+ | Inspecionar estrutura da página | **Playwright MCP** `browser_snapshot()` | **WebFetch** + parse manual |
113
+ | Testar layout responsivo | **Playwright MCP** `browser_resize()` + `browser_take_screenshot()` | Manual testing |
114
+ | Search for design references | **WebSearch** + **WebFetch** | External inspiration |
115
+ | Render UI templates | **Bash** `npx morph-spec template render docs/ui-mockups ...` | CLI command |
116
+ | Generate design system from CSS | **Bash** `npx morph-spec generate design-system --scan` | CLI command |
117
+ | Update state | **Bash** `npx morph-spec state mark-output ...` | CLI command |
118
+
119
+ **MCPs used:** Figma (design tokens), Playwright (live preview, page inspection), Context7 (component docs).
120
+
121
+ **Anti-patterns:**
122
+ - ❌ WebSearch for MudBlazor docs (use Context7 MCP — more accurate)
123
+ - ❌ Task agent to read a single screenshot (just use Read tool on the image)
124
+ - ❌ Manually guessing component props (use Context7 to get real API)
125
+
126
+ ---
127
+
128
+ ### Phase 2 — Design (Technical Spec)
129
+
130
+ **Goal:** Analyze schema, create spec.md, contracts.cs, decisions.md
131
+
132
+ | Action | Tool | Why |
133
+ |--------|------|-----|
134
+ | Read proposal + UI specs | **Read** output files | Single known files |
135
+ | Get database schema | **Supabase MCP** `list_tables()`, `get_table_schema()` | **PREFERRED** — real schema data |
136
+ | Get table relationships | **Supabase MCP** `get_relationships()` | Real FK/constraint data |
137
+ | Get RLS policies | **Supabase MCP** `query()` with pg_policies | Security analysis |
138
+ | **Fallback:** Find query files | **Grep** `\.from\(` or `\.select\(` in `*.ts,*.tsx,*.js,*.cs` | When no DB MCP available |
139
+ | **Fallback:** Find type definitions | **Glob** `src/**/types/**/*.ts` or `**/Entities/**/*.cs` | When no DB MCP available |
140
+ | **Fallback:** Read query/type files | **Read** each matched file | Extract field names manually |
141
+ | Look up library for ADR | **Context7 MCP** `query_docs()` | Compare library capabilities |
142
+ | Check existing code patterns | **GitHub MCP** `search_code()` | Find patterns in large repos |
143
+ | **Fallback:** Search codebase | **Grep** patterns across project | When no GitHub MCP |
144
+ | Render contracts template | **Bash** `npx morph-spec template render code/dotnet/contracts/contracts.cs ...` | CLI command |
145
+ | Render spec template | **Bash** `npx morph-spec template render docs/spec ...` | CLI command |
146
+ | Render decisions template | **Bash** `npx morph-spec template render docs/decisions ...` | CLI command |
147
+ | Create schema-analysis.md | **Write** to output directory | Document findings |
148
+ | Update state | **Bash** `npx morph-spec state mark-output ...` | CLI command |
149
+
150
+ **MCPs used:** Supabase (schema analysis), Context7 (library research), GitHub (code search).
151
+
152
+ **Anti-patterns:**
153
+ - ❌ Guessing field names without checking schema (use MCP or Grep first!)
154
+ - ❌ Task agent to read a single spec file (just use Read)
155
+ - ❌ WebSearch for database schema (use Supabase MCP or code analysis)
156
+ - ❌ Manually writing contracts.cs from scratch (use template render)
157
+
158
+ ---
159
+
160
+ ### Phase 3 — Clarify
161
+
162
+ **Goal:** Identify ambiguities, ask clarification questions, update spec
163
+
164
+ | Action | Tool | Why |
165
+ |--------|------|-----|
166
+ | Read spec.md in detail | **Read** spec.md | Full content analysis |
167
+ | Read contracts.cs | **Read** contracts.cs | Check contract consistency |
168
+ | Read schema-analysis.md | **Read** schema-analysis.md | Cross-reference with spec |
169
+ | Verify library capabilities | **Context7 MCP** `query_docs()` | Confirm feasibility of spec requirements |
170
+ | Check known issues/limitations | **GitHub MCP** `search_issues()` | Library bugs affecting design |
171
+ | Research edge case behavior | **WebSearch** | External knowledge for edge cases |
172
+ | Update spec with clarifications | **Edit** spec.md | Preserve existing content, add sections |
173
+ | Create clarifications.md | **Bash** `npx morph-spec template render docs/clarifications ...` | Use template |
174
+ | Update state | **Bash** `npx morph-spec state mark-output ... clarifications` | CLI command |
175
+
176
+ **MCPs used:** Context7 (validate feasibility), GitHub (known issues).
177
+
178
+ **Anti-patterns:**
179
+ - ❌ Task agent to read spec (just Read it directly)
180
+ - ❌ Rewriting spec from scratch (use Edit to update sections)
181
+ - ❌ Skipping schema-analysis.md cross-reference (critical for accuracy)
182
+
183
+ ---
184
+
185
+ ### Phase 4 — Tasks
186
+
187
+ **Goal:** Break spec into tasks, define dependencies, set checkpoints
188
+
189
+ | Action | Tool | Why |
190
+ |--------|------|-----|
191
+ | Read spec + contracts + decisions | **Read** all output files | Full context needed |
192
+ | Analyze implementation complexity | **Grep** patterns in existing code | Estimate effort from codebase size |
193
+ | Count existing similar patterns | **Glob** `**/Services/**/*.cs` | Understand scope |
194
+ | Look up implementation patterns | **Context7 MCP** `query_docs()` | Estimate task complexity accurately |
195
+ | Create GitHub issues from tasks | **GitHub MCP** `create_issue()` | Sync tasks to project management |
196
+ | **Fallback:** Create issues via CLI | **Bash** `gh issue create ...` | When no GitHub MCP |
197
+ | Render tasks template | **Bash** `npx morph-spec template render docs/tasks ...` | CLI command |
198
+ | Update state with task count | **Bash** `npx morph-spec state set ... tasks.total N` | CLI command |
199
+
200
+ **MCPs used:** Context7 (complexity estimation), GitHub (issue creation).
201
+
202
+ **Anti-patterns:**
203
+ - ❌ Task agent to break down a simple spec (do it directly, specs are already structured)
204
+ - ✅ Task agent for complex specs with 50+ requirements (legitimate multi-step work)
205
+ - ❌ Manually writing tasks.json without reading all outputs first
206
+
207
+ ---
208
+
209
+ ### Phase 5 — Implement
210
+
211
+ **Goal:** Implement tasks, checkpoint every 3, create recap
212
+
213
+ | Action | Tool | Why |
214
+ |--------|------|-----|
215
+ | Read task details | **Read** tasks.json, spec.md, contracts.cs | Implementation reference |
216
+ | Create new files | **Write** new source files | New entities, services, pages |
217
+ | Modify existing files | **Edit** existing source files | Add features to existing code |
218
+ | Look up API during coding | **Context7 MCP** `query_docs()` | Accurate library usage |
219
+ | Run database migrations | **Supabase MCP** `query()` | DDL statements directly |
220
+ | **Fallback:** Run migrations | **Bash** `npx supabase migration ...` or `dotnet ef ...` | CLI tools |
221
+ | Build project | **Bash** `dotnet build` or `npm run build` | Verify compilation |
222
+ | Run tests | **Bash** `dotnet test` or `npm test` | Verify implementation |
223
+ | Checkpoint validation | **Bash** `npx morph-spec checkpoint ...` | Every 3 tasks |
224
+ | Create RLS policies | **Supabase MCP** `query()` | Security policies |
225
+ | Create infrastructure | **Bash** `az bicep ...` or Bicep files via Write | IaC |
226
+ | Create PR | **GitHub MCP** `create_pull_request()` or **Bash** `gh pr create` | Ship code |
227
+ | Mark task done | **Bash** `npx morph-spec task done T001` | State tracking |
228
+ | Smoke test feature no browser | **Playwright MCP** `browser_navigate()` + `browser_snapshot()` | Manual testing |
229
+ | Verificar erros de console | **Playwright MCP** `browser_console_messages()` | Browser DevTools |
230
+ | Screenshot para recap.md | **Playwright MCP** `browser_take_screenshot()` | Manual screenshot |
231
+ | Multi-file refactoring | **Task** (subagent) | Complex parallel changes |
232
+ | Update state | **Bash** `npx morph-spec state set ...` | CLI command |
233
+
234
+ **MCPs used:** Supabase (migrations, RLS), Context7 (API lookup), GitHub (PRs), Playwright (smoke test, verification).
235
+
236
+ **Anti-patterns:**
237
+ - ❌ Task agent for a single file edit (use Edit directly)
238
+ - ✅ Task agent for implementing a full service layer across 5+ files
239
+ - ❌ Bash `cat` to create files (use Write tool)
240
+ - ❌ Bash `sed` to modify code (use Edit tool)
241
+ - ❌ Implementing without reading contracts.cs first (contracts are the source of truth)
242
+
243
+ ---
244
+
245
+ ## Tool Selection Rules
246
+
247
+ ### Claude Code Native Tools
248
+
249
+ | Tool | When to Use | When NOT to Use |
250
+ |------|-------------|-----------------|
251
+ | **Read** | Read 1-3 specific known files | Don't use for searching |
252
+ | **Glob** | Find files by name pattern | Don't use Bash `find` |
253
+ | **Grep** | Search content across files | Don't use Bash `grep` or `rg` |
254
+ | **Edit** | Modify existing files | Don't use Bash `sed` or `awk` |
255
+ | **Write** | Create new files | Don't use Bash `echo >` or heredoc |
256
+ | **Bash** | CLI commands, build, test, git | Don't use for file read/write/search |
257
+ | **WebSearch** | Current external information | Don't use for local codebase info |
258
+ | **WebFetch** | Specific URL content | Don't use for authenticated services |
259
+ | **Task** (subagent) | Multi-file exploration, complex analysis | Don't use for single-file operations |
260
+
261
+ ### MCP Tools
262
+
263
+ | MCP | When to Use | Fallback |
264
+ |-----|-------------|----------|
265
+ | **Supabase** | Schema analysis, migrations, RLS | Grep + Read code files |
266
+ | **GitHub** | Issues, PRs, repo metadata, code search | Bash `gh` CLI |
267
+ | **Figma** | Design tokens, component specs | Read CSS/SCSS files |
268
+ | **Context7** | Library documentation lookups | WebSearch + WebFetch |
269
+ | **Playwright** | Browser automation, screenshots, page inspection, smoke tests | WebFetch (read-only), Manual testing |
270
+ | **Azure** | Cloud resource management | Bash `az` CLI |
271
+ | **Docker** | Container management | Bash `docker` CLI |
272
+
273
+ ### The 3-Question Test
274
+
275
+ Before choosing a tool, ask:
276
+
277
+ 1. **Is the data local or external?**
278
+ - Local → Read/Grep/Glob
279
+ - External structured → MCP
280
+ - External unstructured → WebSearch/WebFetch
281
+
282
+ 2. **Am I reading or writing?**
283
+ - Reading → Read/Grep/Glob/MCP
284
+ - Writing → Write/Edit/Bash (for CLI)
285
+
286
+ 3. **How many files are involved?**
287
+ - 1-3 files → Direct tools (Read, Edit, Write)
288
+ - 4+ files of known names → Parallel Read calls
289
+ - Unknown files needing exploration → Glob/Grep, then Read
290
+ - Complex multi-step analysis → Task subagent
291
+
292
+ ---
293
+
294
+ ## MCP Registry
295
+
296
+ For the canonical list of MCPs, their tools, phase relevance, and fallbacks, see:
297
+
298
+ **`framework/skills/level-0-meta/mcp-registry.json`**
299
+
300
+ ### Phase → MCP Quick Reference
301
+
302
+ | Phase | Primary MCPs | Fallback |
303
+ |-------|-------------|----------|
304
+ | Proposal | Context7 | WebSearch |
305
+ | Setup | GitHub | `gh` CLI |
306
+ | UI/UX | Playwright, Figma, Context7 | WebFetch, Read CSS |
307
+ | Design | Supabase, Context7, GitHub | Grep + Read code |
308
+ | Clarify | Context7, GitHub | WebSearch |
309
+ | Tasks | Context7, GitHub | WebSearch, `gh` CLI |
310
+ | Implement | Supabase, Context7, Playwright, GitHub | CLI tools |
311
+
312
+ ### Detected Plugins & MCPs
313
+
314
+ If `morph-spec init` was run with Claude Code environment detection, check `.morph/config/integrations.json` for the detected plugins and MCPs available in this project.
315
+
316
+ ---
317
+
318
+ ## Superpowers Integration
319
+
320
+ When the `superpowers` plugin is installed, additional skills enhance each phase:
321
+
322
+ | Phase | Superpowers Skill | Purpose |
323
+ |-------|------------------|---------|
324
+ | Setup | `using-git-worktrees` | Isolate feature work |
325
+ | Design | `writing-plans`, `brainstorming` | Structure approach, explore alternatives |
326
+ | Clarify | `systematic-debugging` | Investigate technical ambiguities |
327
+ | Tasks | `writing-plans`, `executing-plans` | Plan and execute implementation |
328
+ | Implement | `test-driven-development`, `systematic-debugging`, `requesting-code-review` | TDD, debug failures, review |
329
+
330
+ See each phase skill for detailed integration instructions.
331
+
332
+ ---
333
+
334
+ *MORPH-SPEC by Polymorphism Tech*
@@ -0,0 +1,147 @@
1
+ ---
2
+ name: verification-before-completion
3
+ description: Phase-specific verification checklists and morph-spec validation commands for confirming MORPH-SPEC outputs are complete and correct. Use before marking any task done, before advancing to the next phase, before committing, or before creating PRs.
4
+ ---
5
+
6
+ # Verification Before Completion — MORPH-SPEC Integrated
7
+
8
+ > Never claim work is complete without running verification. Evidence before assertions.
9
+ >
10
+ > **Script:** Run `node scripts/check-phase-outputs.mjs <feature> [phase]` to check required output files exist.
11
+
12
+ ## When to Use
13
+
14
+ - Before marking any task as done (`morph-spec task done`)
15
+ - Before advancing to the next phase
16
+ - Before claiming a feature is complete
17
+ - Before creating a PR or commit
18
+
19
+ ---
20
+
21
+ ## Phase-Specific Checklists
22
+
23
+ ### Phase 0 — Proposal
24
+
25
+ - [ ] `proposal.md` exists in `.morph/features/{feature}/0-proposal/`
26
+ - [ ] Proposal contains: Goal, Scope, Constraints, Success Criteria
27
+ - [ ] `morph-spec state get {feature}` shows `phase: proposal`
28
+ - [ ] `morph-spec state mark-output {feature} proposal` was called
29
+
30
+ ### Phase 1 — Setup
31
+
32
+ - [ ] `morph-spec state get {feature}` shows `activeAgents` populated
33
+ - [ ] Stack and architecture confirmed in context
34
+ - [ ] State updated to `phase: setup`
35
+
36
+ ### Phase 1.5 — UI/UX (if applicable)
37
+
38
+ - [ ] `ui-design-system.md` exists with color tokens, typography, spacing
39
+ - [ ] `ui-mockups.md` exists with wireframes/ASCII mockups
40
+ - [ ] `morph-spec validate-feature {feature} --phase uiux` passes
41
+
42
+ ### Phase 2 — Design
43
+
44
+ - [ ] `spec.md` contains: Overview, Functional Requirements, Technical Architecture, Data Model
45
+ - [ ] `contracts.cs` exists with DTOs matching `schema-analysis.md`
46
+ - [ ] `decisions.md` contains at least 1 ADR
47
+ - [ ] `morph-spec validate-feature {feature} --phase design` passes
48
+
49
+ ### Phase 3 — Clarify
50
+
51
+ - [ ] All clarification questions answered by user
52
+ - [ ] `spec.md` updated with Clarifications section
53
+ - [ ] No unresolved ambiguities in spec
54
+
55
+ ### Phase 4 — Tasks
56
+
57
+ - [ ] `tasks.md` or `tasks.json` exists
58
+ - [ ] All tasks have: ID, title, description, dependencies
59
+ - [ ] Checkpoints defined (every 3 tasks)
60
+ - [ ] `morph-spec state set {feature} tasks.total N` called
61
+
62
+ ### Phase 5 — Implement
63
+
64
+ - [ ] All tasks marked as completed
65
+ - [ ] Build succeeds (`npm run build` or `dotnet build`)
66
+ - [ ] Tests pass (`npm test` or `dotnet test`)
67
+ - [ ] `recap.md` generated with implementation summary
68
+ - [ ] `morph-spec validate-feature {feature}` passes all checks
69
+
70
+ ---
71
+
72
+ ## Verification Commands
73
+
74
+ ```bash
75
+ # Run content-aware validation
76
+ npx morph-spec validate-feature {feature-name}
77
+
78
+ # Run with specific phase
79
+ npx morph-spec validate-feature {feature-name} --phase design
80
+
81
+ # Check feature status
82
+ npx morph-spec status {feature-name} --verbose
83
+
84
+ # Run full project validation
85
+ npx morph-spec validate
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Integration with Task Done
91
+
92
+ Before running `morph-spec task done`:
93
+
94
+ 1. **Run the relevant test** for the task being completed
95
+ 2. **Run `morph-spec validate-feature`** if completing a checkpoint task
96
+ 3. **Read the task spec** and verify all acceptance criteria are met
97
+ 4. **Check for build errors** — run build command
98
+
99
+ ```bash
100
+ # Verify before marking done
101
+ npx morph-spec validate-feature {feature} --phase implement
102
+ npx morph-spec task done {feature} T001
103
+ ```
104
+
105
+ ---
106
+
107
+ ## Integration with Checkpoints
108
+
109
+ Every 3 tasks, run full checkpoint validation:
110
+
111
+ ```bash
112
+ npx morph-spec checkpoint-save {feature}
113
+ npx morph-spec validate-feature {feature}
114
+ ```
115
+
116
+ If validation fails:
117
+ 1. **Do NOT mark the task as done**
118
+ 2. **Fix the issues** identified by validation
119
+ 3. **Re-run validation** until it passes
120
+ 4. **Then** mark the task as done
121
+
122
+ ---
123
+
124
+ ## Integration with Superpowers
125
+
126
+ > Available when the `superpowers` plugin is installed.
127
+
128
+ This skill replaces `superpowers:verification-before-completion` within morph-spec workflows. It adds:
129
+ - Phase-specific checklists (not just generic verification)
130
+ - `morph-spec validate-feature` integration
131
+ - Checkpoint system integration
132
+ - State tracking verification
133
+
134
+ For verification **outside** morph-spec workflows, the original `superpowers:verification-before-completion` skill remains available.
135
+
136
+ ---
137
+
138
+ ## Anti-patterns
139
+
140
+ - Never claim "tests pass" without actually running them
141
+ - Never skip validation because "the change is small"
142
+ - Never mark a task done if build is broken
143
+ - Never advance phases without checking the phase checklist
144
+
145
+ ---
146
+
147
+ *MORPH-SPEC by Polymorphism Tech*
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * check-phase-outputs.mjs
4
+ *
5
+ * Verifies that required MORPH-SPEC output files exist for a feature/phase.
6
+ * Executed locally by Claude via Bash — output is returned to Claude.
7
+ *
8
+ * Usage:
9
+ * node check-phase-outputs.mjs <feature> [phase]
10
+ *
11
+ * Examples:
12
+ * node check-phase-outputs.mjs photo-processing design
13
+ * node check-phase-outputs.mjs photo-processing # checks all phases
14
+ *
15
+ * Output: JSON array of { phase, file, exists, required }
16
+ */
17
+
18
+ import { existsSync } from 'fs';
19
+ import { join } from 'path';
20
+
21
+ const PHASE_OUTPUTS = {
22
+ proposal: [
23
+ { file: '0-proposal/proposal.md', required: true },
24
+ ],
25
+ design: [
26
+ { file: '1-design/spec.md', required: true },
27
+ { file: '1-design/contracts.cs', required: true },
28
+ { file: '1-design/decisions.md', required: true },
29
+ { file: '1-design/schema-analysis.md', required: false },
30
+ ],
31
+ uiux: [
32
+ { file: '2-ui/design-system.md', required: true },
33
+ { file: '2-ui/mockups.md', required: true },
34
+ { file: '2-ui/components.md', required: true },
35
+ { file: '2-ui/flows.md', required: false },
36
+ ],
37
+ tasks: [
38
+ { file: '3-tasks/tasks.md', required: true },
39
+ ],
40
+ implement: [
41
+ { file: '4-implement/recap.md', required: true },
42
+ ],
43
+ };
44
+
45
+ const feature = process.argv[2];
46
+ const targetPhase = process.argv[3];
47
+
48
+ if (!feature) {
49
+ console.error(JSON.stringify({ error: 'Usage: check-phase-outputs.mjs <feature> [phase]' }));
50
+ process.exit(1);
51
+ }
52
+
53
+ // Walk up to find .morph/ directory
54
+ let cwd = process.cwd();
55
+ let morphDir = null;
56
+ for (let i = 0; i < 5; i++) {
57
+ const candidate = join(cwd, '.morph');
58
+ if (existsSync(candidate)) {
59
+ morphDir = candidate;
60
+ break;
61
+ }
62
+ const parent = join(cwd, '..');
63
+ if (parent === cwd) break;
64
+ cwd = parent;
65
+ }
66
+
67
+ if (!morphDir) {
68
+ console.error(JSON.stringify({ error: '.morph/ directory not found. Run from inside a MORPH-SPEC project.' }));
69
+ process.exit(1);
70
+ }
71
+
72
+ const featureDir = join(morphDir, 'features', feature);
73
+ if (!existsSync(featureDir)) {
74
+ console.error(JSON.stringify({ error: `Feature directory not found: .morph/features/${feature}` }));
75
+ process.exit(1);
76
+ }
77
+
78
+ const phases = targetPhase
79
+ ? { [targetPhase]: PHASE_OUTPUTS[targetPhase] }
80
+ : PHASE_OUTPUTS;
81
+
82
+ if (targetPhase && !PHASE_OUTPUTS[targetPhase]) {
83
+ console.error(JSON.stringify({ error: `Unknown phase: ${targetPhase}. Valid: ${Object.keys(PHASE_OUTPUTS).join(', ')}` }));
84
+ process.exit(1);
85
+ }
86
+
87
+ const results = [];
88
+ let missingRequired = 0;
89
+
90
+ for (const [phase, outputs] of Object.entries(phases)) {
91
+ for (const { file, required } of outputs) {
92
+ const fullPath = join(featureDir, file);
93
+ const exists = existsSync(fullPath);
94
+ if (required && !exists) missingRequired++;
95
+ results.push({ phase, file, exists, required });
96
+ }
97
+ }
98
+
99
+ const summary = {
100
+ feature,
101
+ featureDir: featureDir.replace(/\\/g, '/'),
102
+ checks: results.length,
103
+ passed: results.filter(r => r.exists).length,
104
+ missingRequired,
105
+ ready: missingRequired === 0,
106
+ results,
107
+ };
108
+
109
+ console.log(JSON.stringify(summary, null, 2));
110
+ process.exit(missingRequired > 0 ? 1 : 0);