@polymorphism-tech/morph-spec 4.22.0 → 6.0.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 (211) hide show
  1. package/CLAUDE.md +57 -71
  2. package/README.md +2 -2
  3. package/bin/morph-spec.js +224 -491
  4. package/claude-plugin.json +1 -1
  5. package/docs/CHEATSHEET.md +1 -1
  6. package/docs/QUICKSTART.md +1 -1
  7. package/framework/CLAUDE.md +55 -38
  8. package/framework/MORPH.md +244 -0
  9. package/framework/agents.json +127 -1198
  10. package/framework/commands/morph-apply.md +56 -240
  11. package/framework/commands/morph-archive.md +48 -85
  12. package/framework/commands/morph-preflight.md +7 -7
  13. package/framework/commands/morph-proposal.md +35 -191
  14. package/framework/commands/morph-status.md +19 -50
  15. package/framework/commands/morph-troubleshoot.md +2 -2
  16. package/framework/evals/rubrics/README.md +44 -0
  17. package/framework/evals/rubrics/architecture.md +46 -0
  18. package/framework/evals/rubrics/code-quality.md +50 -0
  19. package/framework/evals/rubrics/contracts.md +47 -0
  20. package/framework/evals/rubrics/test-coverage.md +50 -0
  21. package/framework/evals/scenarios/dotnet-crud.yaml +42 -0
  22. package/framework/evals/scenarios/nextjs-auth.yaml +38 -0
  23. package/framework/evals/suites/standard.yaml +5 -0
  24. package/framework/evals/trace-schema.md +67 -0
  25. package/framework/hooks/claude-code/core/README.md +3 -0
  26. package/framework/hooks/claude-code/core/denylist.json +14 -0
  27. package/framework/hooks/claude-code/{pre-tool-use → core}/enforce-phase-writes.js +5 -5
  28. package/framework/hooks/claude-code/core/post-edit-typecheck.js +69 -0
  29. package/framework/hooks/claude-code/core/pre-bash-denylist.js +29 -0
  30. package/framework/hooks/claude-code/{pre-tool-use → core}/protect-spec-files.js +4 -6
  31. package/framework/hooks/claude-code/{stop → core}/validate-completion.js +13 -82
  32. package/framework/hooks/shared/phase-utils.js +20 -31
  33. package/framework/hooks/shared/state-reader.js +4 -5
  34. package/framework/{skills/level-0-meta/mcp-registry.json → mcp/registry.json} +254 -243
  35. package/framework/phases.json +41 -115
  36. package/framework/rubrics/eval-rubric.json +66 -0
  37. package/framework/skills/README.md +39 -64
  38. package/framework/skills/core/README.md +3 -0
  39. package/framework/skills/core/morph-brainstorming/SKILL.md +102 -0
  40. package/framework/skills/core/morph-eval/SKILL.md +57 -0
  41. package/framework/skills/core/morph-implement/SKILL.md +83 -0
  42. package/framework/skills/core/morph-plan/SKILL.md +64 -0
  43. package/framework/skills/core/morph-review/SKILL.md +62 -0
  44. package/framework/skills/core/morph-stack-scan/SKILL.md +109 -0
  45. package/framework/skills/core/morph-standards/SKILL.md +49 -0
  46. package/framework/templates/CLAUDE.md.core.guide.md +29 -0
  47. package/framework/templates/CLAUDE.md.core.template +22 -0
  48. package/framework/templates/REGISTRY.json +4 -4
  49. package/framework/workflows/configs/fast-track.json +5 -10
  50. package/framework/workflows/configs/full.json +4 -8
  51. package/framework/workflows/configs/quick.json +32 -0
  52. package/framework/workflows/configs/standard.json +57 -64
  53. package/package.json +7 -6
  54. package/src/commands/mcp/mcp-setup.js +58 -31
  55. package/src/commands/project/doctor.js +69 -70
  56. package/src/commands/project/init.js +26 -5
  57. package/src/commands/project/status.js +18 -19
  58. package/src/commands/state/approve.js +1 -1
  59. package/src/commands/validation/validate-feature.js +18 -112
  60. package/src/core/paths/output-schema.js +133 -152
  61. package/src/core/state/phase-state-machine.js +10 -24
  62. package/src/core/state/state-manager.js +17 -17
  63. package/src/core/workflows/workflow-detector.js +214 -31
  64. package/src/core/workflows/workflow-router.js +204 -0
  65. package/src/dashboard/app/pages/AgentMap.jsx +32 -33
  66. package/src/dashboard/app/pages/LiveState.jsx +1 -1
  67. package/src/dashboard/app/pages/PhasePipeline.jsx +2 -4
  68. package/src/dashboard/app/pages/SkillsLibrary.jsx +2 -3
  69. package/src/dashboard/app/pages/Workflows.jsx +2 -2
  70. package/src/dashboard/scanner/agents-scanner.js +30 -35
  71. package/src/lib/agents/metrics-aggregator.js +1 -1
  72. package/src/lib/agents/output-collector.js +7 -9
  73. package/src/lib/context/context-builder.js +289 -0
  74. package/src/lib/detectors/claude-config-detector.js +19 -3
  75. package/src/lib/generators/context-generator.js +20 -42
  76. package/src/lib/generators/index.js +1 -0
  77. package/src/lib/generators/mandate-generator.js +512 -0
  78. package/src/lib/generators/metadata-extractor.js +1 -1
  79. package/src/lib/generators/recap-generator.js +3 -4
  80. package/src/lib/installers/mcp-installer.js +300 -92
  81. package/src/lib/phase-chain/phase-validator.js +36 -40
  82. package/src/lib/stack/stack-profile.js +74 -91
  83. package/src/lib/tasks/task-parser.js +1 -1
  84. package/src/lib/tasks/wave-resolver.js +353 -0
  85. package/src/lib/validators/checkpoint-persistence.js +2 -2
  86. package/src/lib/validators/content/cross-phase-validator.js +281 -0
  87. package/src/lib/validators/content/index.js +1 -0
  88. package/src/lib/validators/shared/emit-validator-dispatch.js +6 -56
  89. package/src/scripts/global-install.js +2 -27
  90. package/src/utils/agents-installer.js +224 -447
  91. package/src/utils/claude-settings-manager.js +57 -15
  92. package/src/utils/file-copier.js +1 -0
  93. package/src/utils/hooks-installer.js +15 -117
  94. package/src/utils/skills-installer.js +12 -18
  95. package/bin/detect-agents.js +0 -226
  96. package/bin/task-manager.js +0 -1036
  97. package/framework/agents/README.md +0 -13
  98. package/framework/agents/ai-agents/ai-system-architect.md +0 -194
  99. package/framework/agents/ai-agents/vector-search-expert.md +0 -247
  100. package/framework/agents/architecture/architecture-expert.md +0 -98
  101. package/framework/agents/architecture/morph-spec-architect.md +0 -66
  102. package/framework/agents/architecture/packages-validator.md +0 -89
  103. package/framework/agents/architecture/security-expert.md +0 -79
  104. package/framework/agents/architecture/seo-growth-hacker.md +0 -168
  105. package/framework/agents/architecture/standards-architect.md +0 -153
  106. package/framework/agents/backend/dotnet-senior.md +0 -163
  107. package/framework/agents/backend/ef-modeler.md +0 -119
  108. package/framework/agents/backend/hangfire-orchestrator.md +0 -133
  109. package/framework/agents/backend/ms-agent-expert.md +0 -55
  110. package/framework/agents/backend/neon-expert.md +0 -379
  111. package/framework/agents/frontend/css-specialist.md +0 -89
  112. package/framework/agents/frontend/design-system-validator.md +0 -100
  113. package/framework/agents/frontend/gsap-animator.md +0 -131
  114. package/framework/agents/frontend/nextjs-component-validator.md +0 -97
  115. package/framework/agents/frontend/nextjs-expert.md +0 -201
  116. package/framework/agents/frontend/ui-designer.md +0 -259
  117. package/framework/agents/infrastructure/infra-architect.md +0 -215
  118. package/framework/agents/integrations/asaas-financial.md +0 -138
  119. package/framework/agents/integrations/neon-auth.md +0 -151
  120. package/framework/agents/integrations/resend-email.md +0 -127
  121. package/framework/hooks/claude-code/post-tool-use/agent-complete.js +0 -122
  122. package/framework/hooks/claude-code/post-tool-use/dispatch.js +0 -363
  123. package/framework/hooks/claude-code/post-tool-use/handle-tool-failure.js +0 -78
  124. package/framework/hooks/claude-code/post-tool-use/validator-feedback.js +0 -194
  125. package/framework/hooks/claude-code/pre-compact/save-morph-context.js +0 -199
  126. package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +0 -55
  127. package/framework/hooks/claude-code/session-start/inject-morph-context.js +0 -323
  128. package/framework/hooks/claude-code/session-start/post-compact-restore.js +0 -41
  129. package/framework/hooks/claude-code/session-start/resume-context.js +0 -77
  130. package/framework/hooks/claude-code/teammate-idle/teammate-idle.js +0 -90
  131. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +0 -114
  132. package/framework/hooks/shared/compact-restore.js +0 -123
  133. package/framework/hooks/shared/dispatch-helpers.js +0 -147
  134. package/framework/hooks/shared/skill-reminder-helpers.js +0 -79
  135. package/framework/hooks/shared/stale-task-reset.js +0 -57
  136. package/framework/hooks/shared/worktree-helpers.js +0 -75
  137. package/framework/skills/level-0-meta/README.md +0 -7
  138. package/framework/skills/level-0-meta/morph-agent-teams/SKILL.md +0 -472
  139. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +0 -174
  140. package/framework/skills/level-0-meta/morph-brainstorming/references/proposal-example.md +0 -138
  141. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +0 -145
  142. package/framework/skills/level-0-meta/morph-code-review/SKILL.md +0 -250
  143. package/framework/skills/level-0-meta/morph-code-review/references/review-example.md +0 -164
  144. package/framework/skills/level-0-meta/morph-code-review/references/review-guidelines.md +0 -100
  145. package/framework/skills/level-0-meta/morph-code-review/scripts/scan-csharp.mjs +0 -151
  146. package/framework/skills/level-0-meta/morph-code-review-nextjs/SKILL.md +0 -165
  147. package/framework/skills/level-0-meta/morph-code-review-nextjs/references/review-example-nextjs.md +0 -254
  148. package/framework/skills/level-0-meta/morph-code-review-nextjs/scripts/scan-nextjs.mjs +0 -189
  149. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +0 -344
  150. package/framework/skills/level-0-meta/morph-frontend-review/scripts/scan-accessibility.mjs +0 -376
  151. package/framework/skills/level-0-meta/morph-gemini-image/SKILL.md +0 -290
  152. package/framework/skills/level-0-meta/morph-init/SKILL.md +0 -537
  153. package/framework/skills/level-0-meta/morph-parallel-dispatch/SKILL.md +0 -225
  154. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +0 -401
  155. package/framework/skills/level-0-meta/morph-post-implementation/scripts/detect-dev-server.mjs +0 -153
  156. package/framework/skills/level-0-meta/morph-post-implementation/scripts/detect-stack.mjs +0 -234
  157. package/framework/skills/level-0-meta/morph-simulation-checklist/SKILL.md +0 -106
  158. package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +0 -243
  159. package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +0 -169
  160. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +0 -148
  161. package/framework/skills/level-0-meta/morph-verification-before-completion/scripts/check-phase-outputs.mjs +0 -110
  162. package/framework/skills/level-1-workflows/README.md +0 -7
  163. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +0 -269
  164. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +0 -453
  165. package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +0 -44
  166. package/framework/skills/level-1-workflows/morph-phase-design/references/spec-authoring-guide.md +0 -55
  167. package/framework/skills/level-1-workflows/morph-phase-design/references/spec-example.md +0 -253
  168. package/framework/skills/level-1-workflows/morph-phase-implement/.morph/logs/activity.json +0 -38
  169. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +0 -634
  170. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/code-quality-reviewer-prompt.md +0 -50
  171. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +0 -54
  172. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/spec-reviewer-prompt.md +0 -47
  173. package/framework/skills/level-1-workflows/morph-phase-implement/references/recap-example.md +0 -132
  174. package/framework/skills/level-1-workflows/morph-phase-implement/references/vsa-implementation-guide.md +0 -92
  175. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +0 -257
  176. package/framework/skills/level-1-workflows/morph-phase-tasks/.morph/logs/activity.json +0 -14
  177. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +0 -291
  178. package/framework/skills/level-1-workflows/morph-phase-tasks/references/task-planning-patterns.md +0 -143
  179. package/framework/skills/level-1-workflows/morph-phase-tasks/references/tasks-example.md +0 -404
  180. package/framework/skills/level-1-workflows/morph-phase-tasks/scripts/validate-tasks.mjs +0 -112
  181. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +0 -995
  182. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +0 -147
  183. package/framework/squad-templates/backend-only.json +0 -47
  184. package/framework/squad-templates/frontend-only.json +0 -56
  185. package/framework/squad-templates/full-stack.json +0 -74
  186. package/src/commands/agents/agent-metrics.js +0 -174
  187. package/src/commands/agents/audit-dispatch.js +0 -82
  188. package/src/commands/agents/detect-agents.js +0 -275
  189. package/src/commands/agents/dispatch-agents.js +0 -461
  190. package/src/commands/agents/index.js +0 -13
  191. package/src/commands/agents/manage-agents.js +0 -352
  192. package/src/commands/agents/project-metrics.js +0 -74
  193. package/src/commands/phase/phase-reset.js +0 -74
  194. package/src/commands/scope/escalate.js +0 -217
  195. package/src/commands/state/advance-phase.js +0 -600
  196. package/src/commands/state/phase-runner.js +0 -215
  197. package/src/commands/state/state.js +0 -444
  198. package/src/commands/task/expand.js +0 -100
  199. package/src/commands/tasks/index.js +0 -4
  200. package/src/commands/tasks/task.js +0 -105
  201. package/src/commands/templates/index.js +0 -5
  202. package/src/commands/templates/template-render.js +0 -93
  203. package/src/commands/trust/trust.js +0 -118
  204. package/src/lib/agents/agents-manager.js +0 -349
  205. package/src/lib/build/build-runner.js +0 -99
  206. package/src/lib/checkpoints/checkpoint-hooks.js +0 -111
  207. package/src/lib/contracts/sprint-contract-generator.js +0 -137
  208. package/src/lib/scope/impact-analyzer.js +0 -106
  209. package/src/lib/trust/trust-manager.js +0 -157
  210. package/src/utils/tier-helpers.js +0 -24
  211. /package/framework/hooks/claude-code/{post-tool-use → core}/loop-detect.js +0 -0
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: morph-plan
3
+ description: Guia a produção dos três artefatos de planejamento de uma feature
4
+ version: core
5
+ when-to-invoke: ao iniciar a fase plan de uma feature, após o gate 1 (proposal aprovado)
6
+ user-invokable: true
7
+ ---
8
+
9
+ # morph-plan
10
+
11
+ ## Objetivo
12
+ Produzir spec.md, mandate.md e tasks.md com qualidade suficiente para abrir o Gate 2.
13
+ Os três artefatos juntos definem o quê, o como e o quanto da feature.
14
+
15
+ ## Quando invocar
16
+ Ao iniciar a fase plan — após o proposal.md ser aprovado e antes de qualquer implementação.
17
+
18
+ ## O que fazer
19
+
20
+ 1. Leia o `proposal.md` em `.morph/features/{feature}/0-proposal/` para entender escopo e critérios de aceite.
21
+ 2. Produza `spec.md` em `.morph/features/{feature}/2-plan/`:
22
+ - Arquitetura da solução: quais componentes, como se conectam, fluxos de dados principais.
23
+ - Edge cases identificados e como serão tratados.
24
+ - Integrações externas e contratos esperados.
25
+ 3. Produza `mandate.md` em `.morph/features/{feature}/2-plan/`:
26
+ - Stack exata do projeto (leia do CLAUDE.md → campo Stack).
27
+ - Standards obrigatórios: liste os IDs relevantes de `framework/standards/STANDARDS.json`.
28
+ - Patterns proibidos — inclua sempre os defaults abaixo mais qualquer específico da feature:
29
+ - `Guid.NewGuid()` → usar `Guid.CreateVersion7()`
30
+ - Classes não-sealed sem justificativa documentada
31
+ - Exceptions como fluxo de controle → usar result pattern com `result.Match()`
32
+ - Repository pattern / `IRepository<T>` → handlers VSA acessam DbContext diretamente
33
+ - Checklist de done com critérios verificáveis por tarefa.
34
+ 4. Produza `tasks.md` em `.morph/features/{feature}/2-plan/`:
35
+ - Liste cada tarefa com ID único (T1, T2...).
36
+ - Para cada tarefa: descrição, dependências, estimativa de esforço, critério de done.
37
+ - Ordene por dependências — tarefas sem dependências primeiro.
38
+ 5. Apresente o Gate 2 ao usuário usando exatamente este formato:
39
+
40
+ ```
41
+ ## Gate 2 — Plano pronto para revisão
42
+
43
+ **Spec:** {1 frase do problema} → {1 frase da solução técnica}
44
+ **Mandate:** Stack: {stack} | Standards: {N obrigatórios} | Proibido: {padrões proibidos listados}
45
+ **Tasks:** {N tarefas} | Estimativa: {X horas/dias} | Caminho crítico: {IDs das tarefas sem dependências paralelas}
46
+
47
+ Decisões de arquitetura:
48
+ - {decisão 1} — alternativa descartada: {alternativa}
49
+ {adicione apenas se houver decisões não triviais}
50
+
51
+ Aprovado? Responda "pode implementar" para avançar.
52
+ ```
53
+
54
+ Aguarde resposta explícita. Se o usuário pedir ajustes, aplique e reapresente o gate completo antes de avançar.
55
+
56
+ ## Output esperado
57
+ - `.morph/features/{feature}/2-plan/spec.md` — especificação técnica completa
58
+ - `.morph/features/{feature}/2-plan/mandate.md` — contrato de implementação
59
+ - `.morph/features/{feature}/2-plan/tasks.md` — lista de tarefas ordenada
60
+
61
+ ## Referências
62
+ - `framework/MORPH.md` — seções 2 (Fases), 3 (Contratos de Output), 5 (Gates)
63
+ - `framework/standards/STANDARDS.json` — para identificar standards relevantes ao mandate
64
+ - `.morph/features/{feature}/0-proposal/proposal.md` — escopo da feature
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: morph-review
3
+ description: Conduz a fase de revisão e produz o review-report.md para o Gate 3
4
+ version: core
5
+ when-to-invoke: ao iniciar a fase review, após todas as tarefas de implementação serem concluídas
6
+ user-invokable: true
7
+ ---
8
+
9
+ # morph-review
10
+
11
+ ## Objetivo
12
+ Verificar se a implementação atende ao mandate.md e produzir um review-report.md
13
+ claro o suficiente para que o usuário tome a decisão de aprovação ou rejeição.
14
+
15
+ ## Quando invocar
16
+ Ao iniciar a fase review — após todas as tarefas do tasks.md estarem com status Done
17
+ e o recap.md estar atualizado.
18
+
19
+ ## O que fazer
20
+
21
+ 1. Leia o mandate.md em `.morph/features/{feature}/2-plan/mandate.md`.
22
+ Liste os critérios de done, standards obrigatórios e patterns proibidos.
23
+
24
+ 2. Leia o recap.md em `.morph/features/{feature}/3-implement/recap.md`.
25
+ Verifique se todas as tarefas têm entrada e se os problemas foram resolvidos.
26
+
27
+ 3. Para cada critério do mandate.md, verifique se foi atendido:
28
+ - Se atendido: registre como "aprovado" com evidência (arquivo ou comportamento).
29
+ - Se não atendido: registre como "bloqueante" com descrição do gap.
30
+ - Se parcialmente atendido: registre como "pendência" com o que falta.
31
+
32
+ 4. Execute morph-eval na implementação completa (fase, não tarefa) para obter scores por dimensão.
33
+
34
+ 5. Produza `review-report.md` em `.morph/features/{feature}/4-review/` com:
35
+ - Scores por dimensão (arquitetura, contratos, qualidade, cobertura)
36
+ - Score composto final
37
+ - Lista de itens bloqueantes (se houver) — com descrição e critério de resolução
38
+ - Lista de melhorias recomendadas (não bloqueantes)
39
+ - Recomendação final: Aprovado / Rejeitar com condições / Reprovar
40
+
41
+ 6. Se houver itens bloqueantes (score < 6 em qualquer dimensão bloqueante), corrija antes
42
+ de apresentar o review-report.md ao usuário. Não abra o Gate 3 com bloqueantes em aberto.
43
+
44
+ 7. Finalize o trace de execução em `.morph/traces/YYYY-MM-DD-{feature}-implement.json`:
45
+ - Preencha `phase_summary.tasks_completed`, `tasks_failed`, `avg_eval_score`
46
+ - Calcule `standards_most_used` a partir das entradas em `tasks[].standards_consulted`
47
+ - Preencha `sub_agents_dispatched` com a contagem de tasks onde `sub_agent_dispatched: true`
48
+ - Preencha `completed_at` com o timestamp atual
49
+
50
+ 8. Apresente o relatório ao usuário e aguarde o Gate 3.
51
+
52
+ ## Output esperado
53
+ - `.morph/features/{feature}/4-review/review-report.md` com scores e recomendação
54
+ - Trace da fase com `phase_summary` preenchido
55
+ - Gate 3 apresentado ao usuário para aprovação
56
+
57
+ ## Referências
58
+ - `framework/MORPH.md` — seção 5 (Gate 3) e seção 1 (papel Evaluator)
59
+ - `framework/skills/core/morph-eval/SKILL.md` — para calcular scores por dimensão
60
+ - `framework/evals/trace-schema.md` — formato canônico do trace
61
+ - `.morph/features/{feature}/2-plan/mandate.md` — critérios de done da feature
62
+ - `.morph/features/{feature}/3-implement/recap.md` — registro de execução
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: morph-stack-scan
3
+ description: Varre o codebase existente, detecta stack atual, compara com o stack padrão e gera migration-plan.md se houver desvios
4
+ version: core
5
+ when-to-invoke: ao iniciar uma feature em projeto brownfield (codebase já existente)
6
+ user-invokable: true
7
+ ---
8
+
9
+ # morph-stack-scan
10
+
11
+ ## Objetivo
12
+ Identificar o estado real do codebase antes de planejar qualquer feature — garantindo que a implementação não adicione inconsistência a um projeto já existente.
13
+
14
+ ## Quando invocar
15
+ Quando o projeto já tem código existente e você precisa entender o estado atual antes de propor uma feature. Normalmente invocado pelo morph-brainstorming, mas pode ser invocado diretamente.
16
+
17
+ ## Stack padrão de referência
18
+
19
+ | Camada | Esperado |
20
+ |--------|----------|
21
+ | Runtime | .NET 10 |
22
+ | Arquitetura | VSA — feature-folder: `{Feature}/` com Handler, Validator, Endpoint, Errors, Tests |
23
+ | ORM | EF Core + Neon (Postgres) |
24
+ | IDs | `Guid.CreateVersion7()` |
25
+ | Classes | `sealed` por padrão |
26
+ | Erros | Result pattern (`result.Match()`), não exceptions não tratadas |
27
+ | IA | Microsoft Agent Framework (MAF) |
28
+ | Frontend | Next.js App Router + Tailwind + Framer Motion + Shadcn |
29
+ | Jobs | Hangfire (apenas quando necessário) |
30
+
31
+ **Padrões proibidos:** `Guid.NewGuid()`, classes não-sealed sem justificativa, exceptions como fluxo de controle, Repository pattern, `IRepository<T>`.
32
+
33
+ ## O que fazer
34
+
35
+ 1. Despache um `Explore` subagent para varrer o codebase:
36
+
37
+ ```
38
+ Varredura de stack compliance — morph-stack-scan.
39
+
40
+ Leia os seguintes arquivos/pastas e reporte o que encontrar:
41
+
42
+ BACKEND:
43
+ - Todos os .csproj: qual TargetFramework? Quais PackageReferences relevantes?
44
+ - Procure por: Guid.NewGuid() vs Guid.CreateVersion7(), sealed classes, result pattern vs exceptions
45
+ - Estrutura de src/: segue feature-folder (VSA)? Tem Controllers? Tem IRepository<T>?
46
+ - Migrations/: qual ORM? Neon/Postgres ou outro banco?
47
+ - Microsoft.Agents.* ou Microsoft.Extensions.AI nos PackageReferences?
48
+
49
+ FRONTEND:
50
+ - package.json: Next.js? Tailwind? Framer Motion? Shadcn/ui?
51
+ - Estrutura de app/ ou pages/: App Router ou Pages Router?
52
+
53
+ JOBS:
54
+ - Hangfire nos PackageReferences?
55
+
56
+ Para cada item acima, responda: presente/ausente, e se presente qual versão ou padrão.
57
+ Não faça sugestões — apenas reporte o que existe.
58
+ ```
59
+
60
+ 2. Com os resultados da varredura, compare com o stack padrão item por item e classifique cada desvio:
61
+
62
+ | Severidade | Critério |
63
+ |------------|---------|
64
+ | **Bloqueante** | Runtime diferente (.NET 8 ou anterior), ORM diferente (Dapper puro sem EF Core), banco diferente (MySQL, SQL Server) |
65
+ | **Alto** | `Guid.NewGuid()` generalizado, Repository pattern em toda a codebase, exceptions como fluxo de controle |
66
+ | **Médio** | Classes não-sealed, Pages Router em vez de App Router, biblioteca de UI diferente |
67
+ | **Baixo** | Versões de pacotes desatualizadas mas compatíveis |
68
+
69
+ 3. Produza `stack-scan.md` em `.morph/features/{feature}/0-proposal/`:
70
+
71
+ ```markdown
72
+ # Stack Scan — {feature}
73
+
74
+ ## Resultado
75
+ {Em compliance / Desvios detectados}
76
+
77
+ ## Stack detectado
78
+ | Camada | Detectado | Esperado | Status |
79
+ |--------|-----------|----------|--------|
80
+ | Runtime | .NET X | .NET 10 | ✓ / ✗ |
81
+ ...
82
+
83
+ ## Desvios
84
+ ### Bloqueantes
85
+ - {desvio}: {onde foi encontrado} — impacto: {o que quebra se não migrar}
86
+
87
+ ### Não bloqueantes
88
+ - {desvio}: {onde foi encontrado} — migração: {como resolver}
89
+
90
+ ## Recomendação
91
+ {Em compliance — prosseguir para morph-brainstorming}
92
+ {ou: Migração necessária antes de prosseguir — veja migration-plan.md}
93
+ ```
94
+
95
+ 4. Se houver desvios bloqueantes ou altos, produza `migration-plan.md` em `.morph/features/{feature}/0-proposal/` com:
96
+ - Lista de desvios ordenados por severidade
97
+ - Para cada desvio: o que migrar, como migrar, estimativa de esforço, ordem sugerida
98
+ - Pergunta única via `AskUserQuestion`: "Esta migração deve ser incluída na feature atual ou tratada numa feature separada?"
99
+
100
+ 5. Se não houver desvios (ou apenas baixos): informe "codebase em compliance com o stack padrão" e prossiga para morph-brainstorming ou morph-plan conforme o contexto.
101
+
102
+ ## Output esperado
103
+ - `.morph/features/{feature}/0-proposal/stack-scan.md` — resultado da varredura
104
+ - `.morph/features/{feature}/0-proposal/migration-plan.md` — apenas se houver desvios altos/bloqueantes
105
+ - Decisão documentada: incluir migração nesta feature ou separar
106
+
107
+ ## Referências
108
+ - `framework/MORPH.md` — seção 4 (Standards), seção 2 (Fases)
109
+ - `framework/skills/core/morph-brainstorming/SKILL.md` — fluxo greenfield/brownfield
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: morph-standards
3
+ description: Localiza e carrega um standard específico do STANDARDS.json sob demanda
4
+ version: core
5
+ when-to-invoke: quando precisar consultar um standard específico durante a implementação
6
+ user-invokable: true
7
+ ---
8
+
9
+ # morph-standards
10
+
11
+ ## Objetivo
12
+ Encontrar o standard certo para a situação atual e carregar apenas esse arquivo no contexto.
13
+ Nunca carregue todos os standards — o custo de token não compensa.
14
+
15
+ ## Quando invocar
16
+ Quando durante a implementação surgir uma dúvida de padrão arquitetural, de contrato, de qualidade
17
+ ou de teste — e o mandate.md não for suficiente para resolver.
18
+
19
+ ## O que fazer
20
+
21
+ 1. Abra `framework/standards/STANDARDS.json`.
22
+
23
+ 2. Filtre por `category` primeiro (valores típicos: "architecture", "contracts", "testing", "frontend", "backend").
24
+
25
+ 3. Dentro da categoria, filtre por `tags` que correspondam ao stack do projeto
26
+ (ex: "dotnet", "nextjs", "blazor", "typescript").
27
+
28
+ 4. Se dois standards parecerem relevantes e houver conflito, adote o mais específico ao stack.
29
+ Registre o conflito no `decisions.md` da feature.
30
+
31
+ 5. Leia o arquivo `.md` do standard selecionado — o path está no campo `path` do JSON.
32
+
33
+ 6. Aplique o standard na tarefa atual.
34
+
35
+ 7. Registre no `recap.md`: qual standard foi consultado e como foi aplicado.
36
+
37
+ ## Quando não há standard adequado
38
+ Registre no `decisions.md` que nenhum standard cobre o caso.
39
+ Descreva o critério adotado e sinalize para revisão futura.
40
+ Não invente um standard — padrões não documentados são dívida técnica.
41
+
42
+ ## Output esperado
43
+ - Standard identificado e lido no contexto
44
+ - Critério de implementação claro para a tarefa atual
45
+ - Entrada no recap.md registrando o standard consultado
46
+
47
+ ## Referências
48
+ - `framework/standards/STANDARDS.json` — índice completo com id, name, path, category, tags
49
+ - `framework/MORPH.md` — seção 4 (Como consultar Standards)
@@ -0,0 +1,29 @@
1
+ # Guia de uso — CLAUDE.md.core.template
2
+
3
+ Este template é o ponto de entrada do harness para um projeto morph-spec.
4
+ Preencha cada campo uma vez, no setup. Não modifique a estrutura.
5
+
6
+ ## Campos
7
+
8
+ **Nome do Projeto** — nome curto e identificável do sistema.
9
+
10
+ **Domínio** — 1-2 frases. O que o sistema faz, para quem, e qual o principal constraint (ex: multi-tenant, LGPD, tempo real).
11
+
12
+ **Stack** — não alterar. O harness assume o stack padrão. Se o projeto desvia (ex: Blazor em vez de Next.js), edite e documente o desvio aqui.
13
+
14
+ **Harness** — não alterar. Esta seção instrui o modelo a:
15
+ 1. Ler `MORPH.md` ao iniciar a sessão
16
+ 2. Ler `state.json` para identificar feature ativa
17
+ 3. Assumir o papel correspondente sem aguardar instrução
18
+
19
+ **Standards do projeto** — opcional. Apenas se algum standard específico do projeto desvia do default do stack. Default já injetado pelo morph-plan.
20
+
21
+ **Slash commands** — não alterar. Os dois entry points oficiais.
22
+
23
+ ## Regras
24
+
25
+ - Mantenha < 60 linhas — conteúdo acima não cabe em contexto comprimido.
26
+ - Não adicione regras condicionais (sem "se dotnet, então...").
27
+ - Não inline conteúdo de standards — aponte por ID, nunca copie.
28
+ - Não adicione campo "Feature ativa" estático — Claude lê state.json.
29
+ - Este arquivo pertence ao projeto. Versione no git.
@@ -0,0 +1,22 @@
1
+ # [Nome do Projeto]
2
+
3
+ [1-2 frases sobre o domínio do sistema, quem usa, qual o principal constraint.]
4
+
5
+ ## Stack
6
+
7
+ VSA + .NET 10 + EF Core + Neon (Postgres) + Microsoft Agent Framework + Next.js (App Router) + Tailwind + Framer Motion + Shadcn + Hangfire (quando necessário).
8
+
9
+ Padrões proibidos por padrão: `Guid.NewGuid()` (use `Guid.CreateVersion7()`), classes não-sealed sem justificativa, exceptions como fluxo de controle, Repository pattern.
10
+
11
+ ## Harness
12
+
13
+ morph-spec NLH — leia `.morph/framework/MORPH.md` ao iniciar cada sessão. Em seguida, leia `.morph/state.json` para identificar a feature ativa e a fase atual; assuma o papel correspondente (Orchestrator/Specialist/Evaluator) e continue o trabalho.
14
+
15
+ ## Standards do projeto
16
+
17
+ [Liste de 3 a 6 IDs de `.morph/framework/standards/STANDARDS.json` específicos deste projeto, se algum desviar do default. Caso contrário, deixe vazio — os defaults do stack já são aplicados pelo morph-plan.]
18
+
19
+ ## Slash commands
20
+
21
+ - `/morph-proposal {feature}` — entendimento de negócio + spec/mandate/tasks (Gates 1 e 2)
22
+ - `/morph-apply {feature}` — execução autônoma das tarefas + review (Gate 3)
@@ -50,7 +50,7 @@
50
50
  "path": "docs/spec.md",
51
51
  "location": "framework",
52
52
  "category": "documentation",
53
- "phase": "design",
53
+ "phase": "plan",
54
54
  "required": true,
55
55
  "description": "Detailed technical spec with architecture, data model, API contracts",
56
56
  "outputName": "spec.md",
@@ -70,7 +70,7 @@
70
70
  "path": "feature/tasks.md",
71
71
  "location": "framework",
72
72
  "category": "documentation",
73
- "phase": "tasks",
73
+ "phase": "plan",
74
74
  "required": true,
75
75
  "description": "Task breakdown with IDs, dependencies, estimates, and checkpoints",
76
76
  "outputName": "tasks.md",
@@ -89,7 +89,7 @@
89
89
  "path": "feature/decisions.md",
90
90
  "location": "framework",
91
91
  "category": "documentation",
92
- "phase": "design",
92
+ "phase": "plan",
93
93
  "required": true,
94
94
  "description": "ADR format for documenting architectural decisions with context, alternatives, consequences",
95
95
  "outputName": "decisions.md",
@@ -109,7 +109,7 @@
109
109
  "path": "feature/recap.md",
110
110
  "location": "framework",
111
111
  "category": "documentation",
112
- "phase": "completed",
112
+ "phase": "implement",
113
113
  "required": true,
114
114
  "description": "Post-implementation summary with deliverables, metrics, lessons learned",
115
115
  "outputName": "recap.md",
@@ -31,21 +31,16 @@
31
31
  "tooltip"
32
32
  ],
33
33
  "phases": {
34
- "run": ["proposal", "tasks", "implement"],
35
- "skip": ["uiux", "design", "plan", "sync"],
34
+ "run": ["proposal", "implement"],
35
+ "skip": ["uiux", "plan", "review", "sync"],
36
36
  "skipIfCondition": {},
37
37
  "combined": {}
38
38
  },
39
- "pausePoints": [
40
- {
41
- "phase": "tasks",
42
- "question": "Approve task breakdown?"
43
- }
44
- ],
39
+ "pausePoints": [],
45
40
  "outputs": {
46
- "required": ["proposal.md", "tasks.md"],
41
+ "required": ["proposal.md"],
47
42
  "optional": ["recap.md"],
48
- "skip": ["spec.md", "contracts.cs", "contracts.ts", "plan.md", "design-system.md", "schema-analysis.md"]
43
+ "skip": ["spec.md", "contracts.cs", "contracts.ts", "plan.md", "tasks.md", "mandate.md", "design-system.md", "schema-analysis.md"]
49
44
  },
50
45
  "priority": 1
51
46
  }
@@ -29,7 +29,7 @@
29
29
  "integração"
30
30
  ],
31
31
  "phases": {
32
- "run": ["proposal", "uiux", "design", "plan", "tasks", "implement", "sync"],
32
+ "run": ["proposal", "uiux", "plan", "implement", "review", "sync"],
33
33
  "skip": [],
34
34
  "skipIfCondition": {
35
35
  "uiux": "!hasUIAgents"
@@ -46,17 +46,13 @@
46
46
  "question": "Approve UI/UX designs?",
47
47
  "condition": "hasUIAgents"
48
48
  },
49
- {
50
- "phase": "design",
51
- "question": "Approve technical specification?"
52
- },
53
49
  {
54
50
  "phase": "plan",
55
- "question": "Approve implementation plan?"
51
+ "question": "Approve spec, plan, and task breakdown?"
56
52
  },
57
53
  {
58
- "phase": "tasks",
59
- "question": "Approve task breakdown?"
54
+ "phase": "review",
55
+ "question": "Approve for merge/PR?"
60
56
  }
61
57
  ],
62
58
  "outputs": {
@@ -0,0 +1,32 @@
1
+ {
2
+ "id": "quick",
3
+ "name": "Quick (Single-Shot)",
4
+ "description": "Single-shot for trivial changes — skips all ceremony. Typo fixes, config changes, small bug fixes.",
5
+ "priority": 0,
6
+ "criteria": {
7
+ "maxFiles": 2,
8
+ "maxLines": 20,
9
+ "maxComponents": 0,
10
+ "noInfrastructure": true
11
+ },
12
+ "keywords": [
13
+ "fix", "typo", "rename", "update", "change", "add", "remove",
14
+ "bump", "config", "label", "text", "string", "color", "css",
15
+ "toggle", "flag", "icon", "badge", "tooltip", "placeholder"
16
+ ],
17
+ "phases": {
18
+ "run": ["proposal", "implement"],
19
+ "skip": ["uiux", "plan", "review", "sync"],
20
+ "skipIfCondition": {},
21
+ "combined": {}
22
+ },
23
+ "pausePoints": [],
24
+ "outputs": {
25
+ "required": ["proposal.md"],
26
+ "optional": [],
27
+ "skip": ["spec.md", "contracts.cs", "contracts.ts", "plan.md", "tasks.md", "mandate.md", "design-system.md", "schema-analysis.md", "review-report.md"]
28
+ },
29
+ "gates": {
30
+ "autoApproveAll": true
31
+ }
32
+ }
@@ -1,64 +1,57 @@
1
- {
2
- "id": "standard",
3
- "name": "Standard (Medium Complexity)",
4
- "description": "Medium complexity features - 3-10 files, tactical decisions",
5
- "criteria": {
6
- "minFiles": 3,
7
- "maxFiles": 10,
8
- "minLines": 50,
9
- "maxLines": 500,
10
- "maxComponents": 2,
11
- "noInfrastructure": true,
12
- "tacticalDecisions": true
13
- },
14
- "keywords": [
15
- "paginação",
16
- "pagination",
17
- "paginate",
18
- "filtro",
19
- "filter",
20
- "filtering",
21
- "refatorar",
22
- "refactor",
23
- "performance",
24
- "exportar",
25
- "export",
26
- "optimize",
27
- "sorting",
28
- "search",
29
- "busca"
30
- ],
31
- "phases": {
32
- "run": ["proposal", "design", "plan", "tasks", "implement", "sync"],
33
- "skip": [],
34
- "skipIfCondition": {
35
- "uiux": "!hasUIAgents"
36
- },
37
- "combined": {}
38
- },
39
- "pausePoints": [
40
- {
41
- "phase": "proposal",
42
- "question": "Approve feature proposal?"
43
- },
44
- {
45
- "phase": "design",
46
- "question": "Approve spec (concise, 1-2 pages)?"
47
- },
48
- {
49
- "phase": "plan",
50
- "question": "Approve implementation plan?"
51
- },
52
- {
53
- "phase": "tasks",
54
- "question": "Approve task breakdown?",
55
- "condition": "taskCount > 5"
56
- }
57
- ],
58
- "outputs": {
59
- "required": ["proposal.md", "spec.md", "plan.md", "recap.md"],
60
- "optional": ["decisions.md"],
61
- "skip": ["contracts.cs"]
62
- },
63
- "priority": 2
64
- }
1
+ {
2
+ "id": "standard",
3
+ "name": "Standard (Medium Complexity)",
4
+ "description": "Medium complexity features - 3-10 files, tactical decisions",
5
+ "criteria": {
6
+ "minFiles": 3,
7
+ "maxFiles": 10,
8
+ "minLines": 50,
9
+ "maxLines": 500,
10
+ "maxComponents": 2,
11
+ "noInfrastructure": true,
12
+ "tacticalDecisions": true
13
+ },
14
+ "keywords": [
15
+ "paginação",
16
+ "pagination",
17
+ "paginate",
18
+ "filtro",
19
+ "filter",
20
+ "filtering",
21
+ "refatorar",
22
+ "refactor",
23
+ "performance",
24
+ "exportar",
25
+ "export",
26
+ "optimize",
27
+ "sorting",
28
+ "search",
29
+ "busca"
30
+ ],
31
+ "phases": {
32
+ "run": ["proposal", "plan", "implement", "review", "sync"],
33
+ "skip": ["uiux"],
34
+ "skipIfCondition": {},
35
+ "combined": {}
36
+ },
37
+ "pausePoints": [
38
+ {
39
+ "phase": "proposal",
40
+ "question": "Approve feature proposal?"
41
+ },
42
+ {
43
+ "phase": "plan",
44
+ "question": "Approve plan and task breakdown?"
45
+ },
46
+ {
47
+ "phase": "review",
48
+ "question": "Approve for merge/PR?"
49
+ }
50
+ ],
51
+ "outputs": {
52
+ "required": ["proposal.md", "spec.md", "plan.md", "recap.md"],
53
+ "optional": ["decisions.md"],
54
+ "skip": ["contracts.cs"]
55
+ },
56
+ "priority": 2
57
+ }
package/package.json CHANGED
@@ -1,23 +1,24 @@
1
1
  {
2
2
  "name": "@polymorphism-tech/morph-spec",
3
- "version": "4.22.0",
4
- "description": "MORPH-SPEC: AI-First development framework with validation pipeline and multi-stack support",
3
+ "version": "6.0.0",
4
+ "description": "MORPH-SPEC: NLH (Natural Language Harness) for spec-driven development with Claude Code",
5
5
  "keywords": [
6
6
  "claude-code",
7
7
  "claude",
8
8
  "ai-coding",
9
9
  "ai-first",
10
10
  "spec-driven",
11
+ "nlh",
12
+ "natural-language-harness",
13
+ "autonomy",
11
14
  "dotnet",
12
15
  "dotnet10",
13
16
  "nextjs",
14
- "agent-framework",
15
17
  "vsa",
18
+ "vertical-slice",
16
19
  "framework",
17
- "developer-tools",
18
20
  "morph",
19
- "polymorphism",
20
- "micro-saas"
21
+ "polymorphism"
21
22
  ],
22
23
  "main": "src/index.js",
23
24
  "bin": {