@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
@@ -1,3 +1,12 @@
1
+ ---
2
+ name: phase-design
3
+ description: >
4
+ MORPH-SPEC Phase 2 (Design). Expands the approved proposal into spec.md, contracts.cs, decisions.md, and schema-analysis.md. Called by /morph-proposal after setup completes.
5
+ argument-hint: "[feature-name]"
6
+ user-invocable: false
7
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
8
+ ---
9
+
1
10
  # MORPH Design - FASE 2
2
11
 
3
12
  > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
@@ -10,6 +19,38 @@ Expanda a proposta em especificação técnica completa, contracts, decisões ar
10
19
  - [ ] FASE 1.5 (UI/UX) concluída OU pulada (se não houver front-end)
11
20
  - [ ] Proposta aprovada pelo usuário
12
21
 
22
+ ## Ferramentas Recomendadas
23
+
24
+ > **Ref:** `framework/skills/level-0-meta/tool-usage-guide.md` para guia completo.
25
+ > **Ref:** `framework/standards/integration/mcp/mcp-tools.md` para referência MCP.
26
+
27
+ | Ação | Ferramenta | Alternativa |
28
+ |------|------------|-------------|
29
+ | Ler proposal + UI specs | **Read** output files | — |
30
+ | Obter schema do banco | **Supabase MCP** `list_tables()`, `get_table_schema()` | **Grep** queries + **Read** types |
31
+ | Obter relacionamentos de FK | **Supabase MCP** `get_relationships()` | **Grep** JOIN/FK no código |
32
+ | Obter políticas RLS | **Supabase MCP** `query()` com pg_policies | **Read** arquivos de políticas |
33
+ | Encontrar arquivos de query (fallback) | **Grep** `\.from\(` em `*.ts,*.tsx,*.js,*.cs` | — |
34
+ | Encontrar definições de tipo (fallback) | **Glob** `src/**/types/**/*.ts` ou `**/Entities/**/*.cs` | — |
35
+ | Ler arquivos de query/tipos (fallback) | **Read** cada arquivo encontrado | — |
36
+ | Pesquisar biblioteca para ADR | **Context7 MCP** `query_docs()` | **WebSearch** + **WebFetch** |
37
+ | Buscar padrões no código | **GitHub MCP** `search_code()` | **Grep** padrões no projeto |
38
+ | Renderizar template contracts.cs | **Bash** `npx morph-spec template render code/dotnet/contracts/contracts.cs ...` | — |
39
+ | Renderizar template spec.md | **Bash** `npx morph-spec template render docs/spec ...` | — |
40
+ | Renderizar template decisions.md | **Bash** `npx morph-spec template render docs/decisions ...` | — |
41
+ | Criar schema-analysis.md | **Write** no diretório de outputs | — |
42
+ | Atualizar state | **Bash** `npx morph-spec state mark-output ...` | — |
43
+
44
+ **MCPs desta fase:** Supabase (schema analysis — **PRIORITÁRIO**), Context7 (research), GitHub (code search).
45
+
46
+ **Anti-padrões:**
47
+ - ❌ Adivinhar nomes de campos sem verificar schema (use MCP ou Grep primeiro!)
48
+ - ❌ Task agent para ler um único arquivo spec (use Read direto)
49
+ - ❌ WebSearch para schema do banco (use Supabase MCP ou análise de código)
50
+ - ❌ Escrever contracts.cs do zero (use template render)
51
+
52
+ ---
53
+
13
54
  ## Workflow
14
55
 
15
56
  ### Passo 1: Carregar Contexto e Standards
@@ -17,7 +58,7 @@ Expanda a proposta em especificação técnica completa, contracts, decisões ar
17
58
  **Obtenha feature state e standards context:**
18
59
 
19
60
  ```bash
20
- npx morph-spec state get {feature-name}
61
+ npx morph-spec state get $ARGUMENTS
21
62
  ```
22
63
 
23
64
  Parse o JSON para obter `activeAgents`, então use standards context (já carregado na FASE 1):
@@ -25,24 +66,215 @@ Parse o JSON para obter `activeAgents`, então use standards context (já carreg
25
66
  - Padrões já incluem project overrides + inferred learnings
26
67
 
27
68
  **Leia outputs existentes:**
28
- 1. `.morph/project/outputs/{feature}/proposal.md` - Proposta inicial
29
- 2. `.morph/project/outputs/{feature}/ui-*.md` - UI/UX specs (se existirem)
69
+ 1. `.morph/features/$ARGUMENTS/0-proposal/proposal.md` - Proposta inicial
70
+ 2. `.morph/features/$ARGUMENTS/2-ui/*.md` - UI/UX specs (se existirem)
30
71
 
31
72
  **Use standards context ao gerar spec.md:**
32
73
  - Architecture standards → guiam Technical Architecture section
33
74
  - Coding standards → definem contracts.cs patterns
34
75
  - Azure standards → determinam Infrastructure Requirements
35
76
 
36
- ### Passo 2: Gerar `spec.md`
77
+ ### Passo 2: Analisar Código Existente (CRÍTICO - FAZER ANTES DE CONTRACTS!)
78
+
79
+ **⚠️ ATENÇÃO:** Este passo é OBRIGATÓRIO antes de gerar `contracts.cs`. Previne geração de DTOs com nomes de campos errados.
80
+
81
+ #### 2.1. Detectar Se Análise É Necessária
82
+
83
+ A análise de código é necessária se:
84
+ - Feature interage com banco de dados existente
85
+ - Feature usa APIs ou serviços existentes
86
+ - Projeto tem código frontend/backend que será integrado
87
+
88
+ **Pule este passo apenas se:**
89
+ - Feature é 100% nova (sem dependências em código existente)
90
+ - Não há banco de dados ou APIs envolvidas
91
+
92
+ #### 2.2. Tentar MCP Tools Primeiro (Preferencial)
93
+
94
+ **Se MCP Supabase disponível:**
95
+
96
+ ```javascript
97
+ // Verificar se MCP está disponível (procure por ferramentas mcp__supabase__*)
98
+ // Se disponível, use para obter schema real:
99
+
100
+ // 1. Listar todas as tabelas
101
+ await mcp__supabase__list_tables();
102
+
103
+ // 2. Para cada tabela relevante, obter schema completo
104
+ await mcp__supabase__get_table_schema({ table: 'leads' });
105
+ await mcp__supabase__get_table_schema({ table: 'users' });
106
+
107
+ // 3. Obter relacionamentos
108
+ await mcp__supabase__get_relationships({ table: 'leads' });
109
+
110
+ // 4. Documentar findings em SCHEMA-ANALYSIS.md
111
+ ```
112
+
113
+ **Se MCP Database/ORM disponível:**
114
+ - Use ferramentas MCP equivalentes para PostgreSQL, MySQL, EF Core, etc.
115
+ - Obtenha schema diretamente do banco
116
+
117
+ #### 2.3. Fallback: Análise Manual de Código
118
+
119
+ **Se MCP não disponível, use análise estática:**
120
+
121
+ **Passo A: Encontrar Queries no Código**
122
+
123
+ ```bash
124
+ # Use Grep tool para encontrar todas as queries:
125
+ pattern: "\.from\(|\.select\(|SELECT |supabase\.|context\.|dbContext\.|ef\.Database\."
126
+ type: "ts,tsx,js,jsx,cs"
127
+ output_mode: "files_with_matches"
128
+ ```
129
+
130
+ **Passo B: Ler Arquivos de Query**
131
+
132
+ Para cada arquivo encontrado, use Read tool para extrair:
133
+ - **Nomes de tabelas:** `from('leads')`, `DbSet<Lead>`, `FROM leads`
134
+ - **Nomes de colunas:** `.select('fullname, phonenumber')`, `l.FullName`, `SELECT full_name`
135
+ - **Tipos de dados:** TypeScript interfaces, C# DTOs, column types
136
+ - **Relacionamentos:** JOIN clauses, navigation properties, foreign keys
137
+
138
+ **Passo C: Encontrar Type Definitions**
139
+
140
+ ```bash
141
+ # TypeScript/JavaScript projects:
142
+ Glob: "src/**/types/**/*.ts"
143
+ Glob: "src/**/*.d.ts"
144
+ Glob: "src/**/interfaces/*.ts"
145
+
146
+ # .NET projects:
147
+ Glob: "**/*Dto.cs"
148
+ Glob: "**/Entities/**/*.cs"
149
+ Glob: "**/Models/**/*.cs"
150
+ ```
151
+
152
+ Leia cada arquivo e mapeie:
153
+ - Interface/Type → Database Table
154
+ - Property names → Column names
155
+ - Data types → SQL types
156
+
157
+ **Passo D: Inferir Schema Real**
158
+
159
+ Com base nos arquivos lidos, criar um mapa:
160
+
161
+ ```markdown
162
+ | Frontend/Code | Database | Type | Notes |
163
+ |--------------|----------|------|-------|
164
+ | user.name | users.fullname | string | MISMATCH! |
165
+ | lead.phone | leads.phonenumber | string | MISMATCH! |
166
+ | order.metadata | orders.metadata | JSONB | Complex type |
167
+ | user.orders | users → orders (1:N) | relation | Foreign key: orders.user_id |
168
+ ```
169
+
170
+ #### 2.4. Criar SCHEMA-ANALYSIS.md
171
+
172
+ Documente os findings em `.morph/features/$ARGUMENTS/1-design/schema-analysis.md`:
173
+
174
+ ```markdown
175
+ # Schema Analysis - {Feature Name}
176
+
177
+ **Date:** {DATE}
178
+ **Method:** {MCP Supabase / Manual Code Analysis}
179
+
180
+ ## Tables Analyzed
181
+
182
+ ### Table: leads
183
+
184
+ **Source:**
185
+ - MCP: supabase.list_tables()
186
+ - Code: src/lib/database/queries.ts
187
+
188
+ **Columns:**
189
+ | Column Name | Type | Nullable | Default | Notes |
190
+ |------------|------|----------|---------|-------|
191
+ | id | uuid | NO | gen_random_uuid() | Primary key |
192
+ | fullname | varchar(255) | NO | - | NOT 'name'! |
193
+ | phonenumber | varchar(20) | YES | - | NOT 'phone'! |
194
+ | metadata | jsonb | YES | {} | Complex object |
195
+ | created_at | timestamptz | NO | now() | Auto-generated |
196
+ | user_id | uuid | YES | - | FK to users table |
197
+
198
+ **Relationships:**
199
+ - leads.user_id → users.id (N:1)
200
+ - leads.id ← roulette_spins.lead_id (1:N)
201
+
202
+ **Indexes:**
203
+ - PRIMARY KEY (id)
204
+ - INDEX idx_leads_user_id ON (user_id)
205
+
206
+ ### Table: users
207
+ {Repetir para cada tabela}
37
208
 
38
- Crie `.morph/project/outputs/{feature}/spec.md` com:
209
+ ## ⚠️ CRITICAL FINDINGS
39
210
 
40
- #### 2.1. Overview
211
+ **Field Name Mismatches (MUST FIX):**
212
+ - ❌ Use `fullname`, NOT `name` (column doesn't exist!)
213
+ - ❌ Use `phonenumber`, NOT `phone` (column doesn't exist!)
214
+
215
+ **Type Mismatches:**
216
+ - ⚠️ `metadata` is JSONB, not `Record<string, string>` (use proper type)
217
+
218
+ **Relationship Corrections:**
219
+ - ✅ Lead → User is N:1 (NOT 1:1)
220
+ - ✅ Lead → RouletteSpins is 1:N (NOT 1:1)
221
+
222
+ ## Recommendations for contracts.cs
223
+
224
+ Based on real schema, DTOs should use:
225
+ \`\`\`csharp
226
+ public record LeadDto(
227
+ Guid Id,
228
+ string Fullname, // NOT 'Name'!
229
+ string? Phonenumber, // NOT 'Phone'! Nullable!
230
+ JsonObject? Metadata, // NOT Record<string,string>!
231
+ Guid? UserId, // Nullable FK
232
+ DateTime CreatedAt
233
+ );
234
+ \`\`\`
235
+ ```
236
+
237
+ #### 2.5. CHECKPOINT OBRIGATÓRIO: Revisar Schema Analysis
238
+
239
+ **⏸️ PAUSE - Validar findings antes de continuar:**
240
+
241
+ Apresente ao usuário:
242
+ - [ ] Analisei {N} arquivos de código
243
+ - [ ] Identifiquei {N} tabelas: {lista}
244
+ - [ ] Encontrei {N} field name mismatches
245
+ - [ ] Encontrei {N} type mismatches
246
+ - [ ] Mapeei {N} relacionamentos
247
+ - [ ] Criei `schema-analysis.md` com todos os findings
248
+
249
+ **Perguntas ao usuário:**
250
+ 1. "O schema analysis está correto?"
251
+ 2. "Encontrei field mismatches (fullname vs name). Confirma?"
252
+ 3. "Posso prosseguir para gerar contracts.cs com base nesse schema real?"
253
+
254
+ **❌ Se usuário responder "Não" ou encontrar erros:**
255
+ → VOLTAR e revisar análise
256
+ → Corrigir schema-analysis.md
257
+ → Re-apresentar para aprovação
258
+
259
+ **✅ Se usuário aprovar:**
260
+ → Prosseguir para Passo 3 (Gerar spec.md)
261
+
262
+ #### 2.6. Atualizar State
263
+
264
+ ```bash
265
+ npx morph-spec state mark-output $ARGUMENTS schema-analysis
266
+ ```
267
+
268
+ ### Passo 3: Gerar `spec.md`
269
+
270
+ Crie `.morph/features/$ARGUMENTS/1-design/spec.md` com:
271
+
272
+ #### 3.1. Overview
41
273
  - **Objetivo:** Resumo de 1-2 parágrafos
42
274
  - **Usuários afetados:** Quem vai usar?
43
275
  - **Problema resolvido:** Qual dor/necessidade?
44
276
 
45
- #### 2.2. Functional Requirements
277
+ #### 3.2. Functional Requirements
46
278
  Lista detalhada de requisitos funcionais:
47
279
  ```markdown
48
280
  ### FR001: {Requisito}
@@ -53,24 +285,24 @@ Lista detalhada de requisitos funcionais:
53
285
  **Priority:** High/Medium/Low
54
286
  ```
55
287
 
56
- #### 2.3. Non-Functional Requirements
288
+ #### 3.3. Non-Functional Requirements
57
289
  - Performance (tempos de resposta esperados)
58
290
  - Segurança (autenticação, autorização)
59
291
  - Escalabilidade (volume de dados/usuários)
60
292
  - Disponibilidade (uptime esperado)
61
293
 
62
- #### 2.4. Technical Architecture
294
+ #### 3.4. Technical Architecture
63
295
  - **Camadas:** (Presentation, Application, Domain, Infrastructure)
64
296
  - **Patterns:** (Repository, CQRS, DI, etc.)
65
297
  - **Dependências:** Bibliotecas/serviços externos necessários
66
298
 
67
- #### 2.5. Data Model
299
+ #### 3.5. Data Model
68
300
  - Entities principais
69
301
  - Relacionamentos (1:1, 1:N, N:N)
70
302
  - Campos obrigatórios vs opcionais
71
303
  - Validações de negócio
72
304
 
73
- #### 2.6. Infrastructure Requirements
305
+ #### 3.6. Infrastructure Requirements
74
306
  Se houver recursos Azure:
75
307
  - Banco de dados (Azure SQL, Cosmos DB)
76
308
  - Storage (Blob Storage)
@@ -79,87 +311,91 @@ Se houver recursos Azure:
79
311
 
80
312
  **SEMPRE usar Bicep para infra!**
81
313
 
82
- ### Passo 3: Gerar `contracts.cs`
314
+ ### Passo 4: Gerar `contracts.cs` (BASEADO NO SCHEMA REAL!)
83
315
 
84
- Crie `.morph/project/outputs/{feature}/contracts.cs` com:
316
+ **⚠️ IMPORTANTE:** Use `schema-analysis.md` (do Passo 2) para gerar DTOs corretos!
85
317
 
86
- ```csharp
87
- // Interfaces, DTOs, Enums, Value Objects
318
+ **Renderizar template:**
88
319
 
89
- namespace {ProjectName}.Features.{FeatureName};
90
-
91
- // DTOs (Data Transfer Objects)
92
- public record {Feature}CreateDto(
93
- string Name,
94
- DateTime Date
95
- );
320
+ ```bash
321
+ # Use o template de contracts com dados do schema-analysis.md:
322
+ npx morph-spec template render \
323
+ code/dotnet/contracts/contracts.cs \
324
+ .morph/features/$ARGUMENTS/1-design/contracts.cs \
325
+ '{
326
+ "FEATURE_NAME": "$ARGUMENTS",
327
+ "NAMESPACE": "{ProjectNamespace}",
328
+ "dtos": [...], # Extrair de schema-analysis.md
329
+ "interfaces": [...],
330
+ "enums": [...],
331
+ "valueObjects": [...]
332
+ }'
333
+ ```
96
334
 
97
- public record {Feature}ResponseDto(
98
- Guid Id,
99
- string Name,
100
- DateTime Date,
101
- DateTime CreatedAt
102
- );
335
+ **OU use Read tool para ler template:**
103
336
 
104
- // Interfaces
105
- public interface I{Feature}Service
106
- {
107
- Task<{Feature}ResponseDto> CreateAsync({Feature}CreateDto dto, CancellationToken ct);
108
- Task<{Feature}ResponseDto?> GetByIdAsync(Guid id, CancellationToken ct);
109
- }
110
-
111
- // Enums
112
- public enum {Feature}Status
113
- {
114
- Pending,
115
- Active,
116
- Completed
117
- }
337
+ ```bash
338
+ # Leia o template base:
339
+ Read: .morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs
340
+
341
+ # Preencha manualmente usando dados de schema-analysis.md
342
+ # Template contém placeholders para:
343
+ # - {{FEATURE_NAME_PASCAL}}
344
+ # - {{NAMESPACE}}
345
+ # - {{#each dtos}}...{{/each}}
346
+ # - {{#each interfaces}}...{{/each}}
347
+ # - {{#each enums}}...{{/each}}
118
348
  ```
119
349
 
120
- **Padrões obrigatórios:**
350
+ **Padrões obrigatórios (já incluídos no template):**
121
351
  - Records para DTOs (immutable)
122
352
  - Interfaces para serviços
123
353
  - CancellationToken em métodos async
124
354
  - Nullable reference types habilitados
355
+ - **USAR NOMES DE CAMPOS REAIS DO SCHEMA** (NÃO assumir!)
356
+ - XML documentation comments
357
+ - Value objects para complex types
125
358
 
126
- ### Passo 4: Iniciar `decisions.md`
127
-
128
- Crie `.morph/project/outputs/{feature}/decisions.md` com ADRs relevantes:
129
-
130
- ```markdown
131
- # Architectural Decision Records (ADRs)
132
-
133
- ## ADR-001: {Decisão Arquitetural}
134
-
135
- **Status:** Proposed/Accepted/Deprecated
136
-
137
- **Context:**
138
- {Por que esta decisão foi necessária}
139
-
140
- **Decision:**
141
- {O que foi decidido}
359
+ **⚠️ CHECKPOINT: Verificar contra schema-analysis.md**
360
+ - [ ] Todos os field names correspondem ao schema real?
361
+ - [ ] Tipos de dados corretos (JSONB → JsonObject, não string)?
362
+ - [ ] Nullability correta (campo opcional no banco → nullable no DTO)?
363
+ - [ ] Relacionamentos mapeados corretamente?
364
+ - [ ] Template foi renderizado corretamente?
142
365
 
143
- **Consequences:**
144
- **Pros:**
145
- - Pro 1
366
+ ### Passo 5: Iniciar `decisions.md`
146
367
 
147
- **Cons:**
148
- - Con 1
368
+ **Renderizar template:**
149
369
 
150
- **Alternatives Considered:**
151
- - Alternativa 1: {Por que foi rejeitada}
152
-
153
- **Date:** {YYYY-MM-DD}
370
+ ```bash
371
+ # Use o template de decisions:
372
+ Read: .morph/framework/templates/feature/decisions.md
373
+
374
+ # OU renderize via CLI:
375
+ npx morph-spec template render \
376
+ feature/decisions \
377
+ .morph/features/$ARGUMENTS/1-design/decisions.md \
378
+ '{
379
+ "FEATURE_NAME": "$ARGUMENTS",
380
+ "DATE": "{{DATE}}",
381
+ "decisions": []
382
+ }'
154
383
  ```
155
384
 
385
+ **Template contém estrutura para ADRs (Architecture Decision Records):**
386
+ - Status, Context, Decision, Consequences
387
+ - Pros/Cons analysis
388
+ - Alternatives Considered section
389
+ - Date tracking
390
+
156
391
  **ADRs obrigatórios:**
157
392
  - Escolha de biblioteca UI (se FASE 1.5 executou)
158
393
  - Padrões arquiteturais (CQRS, Repository, etc.)
159
394
  - Recursos Azure (se houver infra)
160
395
  - Integrações externas (APIs, webhooks, etc.)
396
+ - Análise de custos (se houver recursos pagos)
161
397
 
162
- ### Passo 5: Estimar Custos
398
+ ### Passo 6: Estimar Custos
163
399
 
164
400
  Se houver recursos Azure na spec:
165
401
 
@@ -171,24 +407,26 @@ Se houver recursos Azure na spec:
171
407
  Documente custos em `decisions.md` e atualize state:
172
408
 
173
409
  ```bash
174
- npx morph-spec state set {feature-name} costs.estimated {X.XX}
175
- npx morph-spec state set {feature-name} costs.approved {true/false}
410
+ npx morph-spec state set $ARGUMENTS costs.estimated {X.XX}
411
+ npx morph-spec state set $ARGUMENTS costs.approved {true/false}
176
412
  ```
177
413
 
178
- ### Passo 6: Atualizar State
414
+ ### Passo 7: Atualizar State
179
415
 
180
416
  ```bash
181
- npx morph-spec state set {feature-name} phase design
182
- npx morph-spec state mark-output {feature-name} spec
183
- npx morph-spec state mark-output {feature-name} contracts
184
- npx morph-spec state mark-output {feature-name} decisions
417
+ npx morph-spec state set $ARGUMENTS phase design
418
+ npx morph-spec state mark-output $ARGUMENTS schema-analysis
419
+ npx morph-spec state mark-output $ARGUMENTS spec
420
+ npx morph-spec state mark-output $ARGUMENTS contracts
421
+ npx morph-spec state mark-output $ARGUMENTS decisions
185
422
  ```
186
423
 
187
424
  ## Outputs Gerados
188
425
 
189
- - `.morph/project/outputs/{feature}/spec.md` - Especificação técnica completa
190
- - `.morph/project/outputs/{feature}/contracts.cs` - Interfaces, DTOs, Enums
191
- - `.morph/project/outputs/{feature}/decisions.md` - ADRs (novo ou atualizado)
426
+ - `.morph/features/$ARGUMENTS/1-design/schema-analysis.md` - **NOVO!** Análise do schema real
427
+ - `.morph/features/$ARGUMENTS/1-design/spec.md` - Especificação técnica completa
428
+ - `.morph/features/$ARGUMENTS/1-design/contracts.cs` - Interfaces, DTOs, Enums (baseados no schema real!)
429
+ - `.morph/features/$ARGUMENTS/1-design/decisions.md` - ADRs (novo ou atualizado)
192
430
  - State atualizado com custos estimados
193
431
 
194
432
  ## PAUSA OBRIGATÓRIA
@@ -210,4 +448,28 @@ Apresente ao usuário 3 ações sugeridas:
210
448
 
211
449
  ---
212
450
 
213
- Continuar automaticamente para FASE 3 (Clarify) após aprovação.
451
+ ## Integração com Superpowers
452
+
453
+ > Disponível quando o plugin `superpowers` está instalado.
454
+
455
+ | Skill | Quando Usar | Invocação |
456
+ |-------|-------------|-----------|
457
+ | `writing-plans` | Após spec aprovado, para estruturar abordagem de implementação | `Skill(superpowers:writing-plans)` |
458
+ | `brainstorming` | Para explorar alternativas de arquitetura (use morph-spec version) | Use `brainstorming` (morph-spec version) |
459
+
460
+ ---
461
+
462
+ ## Outputs desta Fase
463
+
464
+ <!-- morph:outputs:design -->
465
+ | Output | Caminho |
466
+ |--------|---------|
467
+ | `schemaAnalysis` | `.morph/features/{feature}/1-design/schema-analysis.md` |
468
+ | `spec` | `.morph/features/{feature}/1-design/spec.md` |
469
+ | `contracts` | `.morph/features/{feature}/1-design/contracts.cs` |
470
+ | `decisions` | `.morph/features/{feature}/1-design/decisions.md` |
471
+ <!-- /morph:outputs -->
472
+
473
+ ---
474
+
475
+ Continuar automaticamente para FASE 3 (Clarify) após aprovação.