@polymorphism-tech/morph-spec 4.21.0 → 5.0.1

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 (213) 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 -1183
  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 -28
  33. package/framework/hooks/shared/state-reader.js +4 -5
  34. package/framework/{skills/level-0-meta/mcp-registry.json → mcp/registry.json} +254 -210
  35. package/framework/phases.json +40 -114
  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/standards/STANDARDS.json +32 -0
  47. package/framework/standards/frontend/design-system/ai-image-generation.md +244 -0
  48. package/framework/standards/integration/mcp/mcp-tools.md +48 -0
  49. package/framework/templates/CLAUDE.md.core.guide.md +29 -0
  50. package/framework/templates/CLAUDE.md.core.template +22 -0
  51. package/framework/templates/REGISTRY.json +4 -4
  52. package/framework/workflows/configs/fast-track.json +5 -10
  53. package/framework/workflows/configs/full.json +4 -8
  54. package/framework/workflows/configs/quick.json +32 -0
  55. package/framework/workflows/configs/standard.json +57 -64
  56. package/package.json +7 -6
  57. package/src/commands/mcp/mcp-setup.js +58 -31
  58. package/src/commands/project/doctor.js +69 -70
  59. package/src/commands/project/init.js +26 -5
  60. package/src/commands/project/status.js +18 -19
  61. package/src/commands/state/approve.js +1 -1
  62. package/src/commands/validation/validate-feature.js +18 -112
  63. package/src/core/paths/output-schema.js +133 -151
  64. package/src/core/state/phase-state-machine.js +10 -24
  65. package/src/core/state/state-manager.js +17 -17
  66. package/src/core/workflows/workflow-detector.js +214 -31
  67. package/src/core/workflows/workflow-router.js +204 -0
  68. package/src/dashboard/app/pages/AgentMap.jsx +32 -33
  69. package/src/dashboard/app/pages/LiveState.jsx +1 -1
  70. package/src/dashboard/app/pages/PhasePipeline.jsx +2 -4
  71. package/src/dashboard/app/pages/SkillsLibrary.jsx +2 -3
  72. package/src/dashboard/app/pages/Workflows.jsx +2 -2
  73. package/src/dashboard/scanner/agents-scanner.js +30 -35
  74. package/src/lib/agents/metrics-aggregator.js +1 -1
  75. package/src/lib/agents/output-collector.js +7 -8
  76. package/src/lib/context/context-builder.js +289 -0
  77. package/src/lib/detectors/claude-config-detector.js +19 -3
  78. package/src/lib/generators/context-generator.js +20 -42
  79. package/src/lib/generators/index.js +1 -0
  80. package/src/lib/generators/mandate-generator.js +512 -0
  81. package/src/lib/generators/metadata-extractor.js +1 -1
  82. package/src/lib/generators/recap-generator.js +3 -4
  83. package/src/lib/installers/mcp-installer.js +300 -92
  84. package/src/lib/phase-chain/phase-validator.js +36 -40
  85. package/src/lib/stack/stack-profile.js +74 -91
  86. package/src/lib/tasks/task-parser.js +1 -1
  87. package/src/lib/tasks/wave-resolver.js +353 -0
  88. package/src/lib/validators/checkpoint-persistence.js +2 -2
  89. package/src/lib/validators/content/cross-phase-validator.js +281 -0
  90. package/src/lib/validators/content/index.js +1 -0
  91. package/src/lib/validators/shared/emit-validator-dispatch.js +6 -56
  92. package/src/scripts/global-install.js +2 -27
  93. package/src/utils/agents-installer.js +224 -447
  94. package/src/utils/claude-settings-manager.js +57 -15
  95. package/src/utils/file-copier.js +1 -0
  96. package/src/utils/hooks-installer.js +15 -117
  97. package/src/utils/skills-installer.js +12 -18
  98. package/bin/detect-agents.js +0 -226
  99. package/bin/task-manager.js +0 -1036
  100. package/framework/agents/README.md +0 -13
  101. package/framework/agents/ai-agents/ai-system-architect.md +0 -194
  102. package/framework/agents/ai-agents/vector-search-expert.md +0 -247
  103. package/framework/agents/architecture/architecture-expert.md +0 -98
  104. package/framework/agents/architecture/morph-spec-architect.md +0 -66
  105. package/framework/agents/architecture/packages-validator.md +0 -89
  106. package/framework/agents/architecture/security-expert.md +0 -79
  107. package/framework/agents/architecture/seo-growth-hacker.md +0 -168
  108. package/framework/agents/architecture/standards-architect.md +0 -153
  109. package/framework/agents/backend/dotnet-senior.md +0 -163
  110. package/framework/agents/backend/ef-modeler.md +0 -119
  111. package/framework/agents/backend/hangfire-orchestrator.md +0 -133
  112. package/framework/agents/backend/ms-agent-expert.md +0 -55
  113. package/framework/agents/backend/neon-expert.md +0 -379
  114. package/framework/agents/frontend/css-specialist.md +0 -89
  115. package/framework/agents/frontend/design-system-validator.md +0 -100
  116. package/framework/agents/frontend/gsap-animator.md +0 -131
  117. package/framework/agents/frontend/nextjs-component-validator.md +0 -97
  118. package/framework/agents/frontend/nextjs-expert.md +0 -201
  119. package/framework/agents/frontend/ui-designer.md +0 -259
  120. package/framework/agents/infrastructure/infra-architect.md +0 -215
  121. package/framework/agents/integrations/asaas-financial.md +0 -138
  122. package/framework/agents/integrations/neon-auth.md +0 -151
  123. package/framework/agents/integrations/resend-email.md +0 -127
  124. package/framework/hooks/claude-code/post-tool-use/agent-complete.js +0 -122
  125. package/framework/hooks/claude-code/post-tool-use/dispatch.js +0 -363
  126. package/framework/hooks/claude-code/post-tool-use/handle-tool-failure.js +0 -78
  127. package/framework/hooks/claude-code/post-tool-use/validator-feedback.js +0 -194
  128. package/framework/hooks/claude-code/pre-compact/save-morph-context.js +0 -199
  129. package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +0 -55
  130. package/framework/hooks/claude-code/session-start/inject-morph-context.js +0 -323
  131. package/framework/hooks/claude-code/session-start/post-compact-restore.js +0 -41
  132. package/framework/hooks/claude-code/session-start/resume-context.js +0 -77
  133. package/framework/hooks/claude-code/teammate-idle/teammate-idle.js +0 -90
  134. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +0 -114
  135. package/framework/hooks/shared/compact-restore.js +0 -123
  136. package/framework/hooks/shared/dispatch-helpers.js +0 -147
  137. package/framework/hooks/shared/skill-reminder-helpers.js +0 -79
  138. package/framework/hooks/shared/stale-task-reset.js +0 -57
  139. package/framework/hooks/shared/worktree-helpers.js +0 -75
  140. package/framework/skills/level-0-meta/README.md +0 -7
  141. package/framework/skills/level-0-meta/morph-agent-teams/SKILL.md +0 -472
  142. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +0 -174
  143. package/framework/skills/level-0-meta/morph-brainstorming/references/proposal-example.md +0 -138
  144. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +0 -145
  145. package/framework/skills/level-0-meta/morph-code-review/SKILL.md +0 -250
  146. package/framework/skills/level-0-meta/morph-code-review/references/review-example.md +0 -164
  147. package/framework/skills/level-0-meta/morph-code-review/references/review-guidelines.md +0 -100
  148. package/framework/skills/level-0-meta/morph-code-review/scripts/scan-csharp.mjs +0 -151
  149. package/framework/skills/level-0-meta/morph-code-review-nextjs/SKILL.md +0 -165
  150. package/framework/skills/level-0-meta/morph-code-review-nextjs/references/review-example-nextjs.md +0 -254
  151. package/framework/skills/level-0-meta/morph-code-review-nextjs/scripts/scan-nextjs.mjs +0 -189
  152. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +0 -344
  153. package/framework/skills/level-0-meta/morph-frontend-review/scripts/scan-accessibility.mjs +0 -376
  154. package/framework/skills/level-0-meta/morph-init/SKILL.md +0 -537
  155. package/framework/skills/level-0-meta/morph-parallel-dispatch/SKILL.md +0 -225
  156. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +0 -382
  157. package/framework/skills/level-0-meta/morph-post-implementation/scripts/detect-dev-server.mjs +0 -153
  158. package/framework/skills/level-0-meta/morph-post-implementation/scripts/detect-stack.mjs +0 -234
  159. package/framework/skills/level-0-meta/morph-simulation-checklist/SKILL.md +0 -106
  160. package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +0 -243
  161. package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +0 -169
  162. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +0 -148
  163. package/framework/skills/level-0-meta/morph-verification-before-completion/scripts/check-phase-outputs.mjs +0 -110
  164. package/framework/skills/level-1-workflows/README.md +0 -7
  165. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +0 -269
  166. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +0 -453
  167. package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +0 -44
  168. package/framework/skills/level-1-workflows/morph-phase-design/references/spec-authoring-guide.md +0 -55
  169. package/framework/skills/level-1-workflows/morph-phase-design/references/spec-example.md +0 -253
  170. package/framework/skills/level-1-workflows/morph-phase-implement/.morph/logs/activity.json +0 -38
  171. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +0 -493
  172. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/code-quality-reviewer-prompt.md +0 -50
  173. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +0 -46
  174. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/spec-reviewer-prompt.md +0 -47
  175. package/framework/skills/level-1-workflows/morph-phase-implement/references/recap-example.md +0 -132
  176. package/framework/skills/level-1-workflows/morph-phase-implement/references/vsa-implementation-guide.md +0 -92
  177. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +0 -257
  178. package/framework/skills/level-1-workflows/morph-phase-tasks/.morph/logs/activity.json +0 -14
  179. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +0 -291
  180. package/framework/skills/level-1-workflows/morph-phase-tasks/references/task-planning-patterns.md +0 -143
  181. package/framework/skills/level-1-workflows/morph-phase-tasks/references/tasks-example.md +0 -404
  182. package/framework/skills/level-1-workflows/morph-phase-tasks/scripts/validate-tasks.mjs +0 -112
  183. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +0 -788
  184. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +0 -147
  185. package/framework/squad-templates/backend-only.json +0 -47
  186. package/framework/squad-templates/frontend-only.json +0 -56
  187. package/framework/squad-templates/full-stack.json +0 -74
  188. package/src/commands/agents/agent-metrics.js +0 -174
  189. package/src/commands/agents/audit-dispatch.js +0 -82
  190. package/src/commands/agents/detect-agents.js +0 -275
  191. package/src/commands/agents/dispatch-agents.js +0 -461
  192. package/src/commands/agents/index.js +0 -13
  193. package/src/commands/agents/manage-agents.js +0 -352
  194. package/src/commands/agents/project-metrics.js +0 -74
  195. package/src/commands/phase/phase-reset.js +0 -74
  196. package/src/commands/scope/escalate.js +0 -217
  197. package/src/commands/state/advance-phase.js +0 -600
  198. package/src/commands/state/phase-runner.js +0 -215
  199. package/src/commands/state/state.js +0 -444
  200. package/src/commands/task/expand.js +0 -100
  201. package/src/commands/tasks/index.js +0 -4
  202. package/src/commands/tasks/task.js +0 -105
  203. package/src/commands/templates/index.js +0 -5
  204. package/src/commands/templates/template-render.js +0 -93
  205. package/src/commands/trust/trust.js +0 -118
  206. package/src/lib/agents/agents-manager.js +0 -349
  207. package/src/lib/build/build-runner.js +0 -99
  208. package/src/lib/checkpoints/checkpoint-hooks.js +0 -111
  209. package/src/lib/contracts/sprint-contract-generator.js +0 -137
  210. package/src/lib/scope/impact-analyzer.js +0 -106
  211. package/src/lib/trust/trust-manager.js +0 -157
  212. package/src/utils/tier-helpers.js +0 -24
  213. /package/framework/hooks/claude-code/{post-tool-use → core}/loop-detect.js +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "morph-spec",
3
- "version": "4.21.0",
3
+ "version": "4.22.1",
4
4
  "displayName": "MORPH-SPEC Framework",
5
5
  "description": "Spec-driven development with 38 agents and 8-phase workflow for .NET/Blazor/Next.js/Azure",
6
6
  "publisher": "polymorphism-tech",
@@ -196,4 +196,4 @@ These files are never edited directly. Use CLI commands or `morph-spec update` i
196
196
 
197
197
  ---
198
198
 
199
- *morph-spec v4.21.0 by Polymorphism Tech*
199
+ *morph-spec v4.22.1 by Polymorphism Tech*
@@ -197,4 +197,4 @@ morph-spec doctor
197
197
 
198
198
  ---
199
199
 
200
- *morph-spec v4.21.0 by Polymorphism Tech*
200
+ *morph-spec v4.22.1 by Polymorphism Tech*
@@ -1,38 +1,55 @@
1
- # MORPH-SPEC Runtime Instructions
2
-
3
- > by Polymorphism Tech — Spec-driven development framework
4
-
5
- @.morph/context/README.md
6
-
7
- ## Critical Rules
8
-
9
- **NEVER:**
10
- - Skip to code without a specification
11
- - Implement without design approval
12
- - Ignore standards in `.morph/framework/standards/`
13
- - Generate code without defined contracts
14
- - List questions as plain text — always use the `AskUserQuestion` tool
15
-
16
- **ALWAYS:**
17
- - Follow the mandatory phases
18
- - Generate outputs in `.morph/features/{feature}/`
19
- - Document decisions in `decisions.md`
20
- - Use `AskUserQuestion` tool whenever asking the user anything (1-4 questions per call)
21
- - Read spec.md FR sections before implementing each task
22
- - Reference FR IDs in task descriptions and commit messages
23
-
24
- ## Quick Reference
25
-
26
- | Command | Purpose |
27
- |---------|---------|
28
- | `/morph-proposal {feature}` | Full spec pipeline (pauses for approval) |
29
- | `/morph-apply {feature}` | Implement feature |
30
- | `/morph-status` | Status dashboard |
31
- | `/morph-preflight` | Pre-deploy validation |
32
- | `morph-spec context refresh` | Scan architecture & update context |
33
-
34
- ## Agents
35
-
36
- MORPH agents (tiers 1-4) are available as native subagents in `.claude/agents/`.
37
-
38
- *MORPH-SPEC by Polymorphism Tech*
1
+ # MORPH-SPEC Runtime Instructions
2
+
3
+ > by Polymorphism Tech — Spec-driven development harness for Claude Code
4
+
5
+ ## Como começar cada sessão
6
+
7
+ 1. Leia `.morph/framework/MORPH.md` — o charter NLH com papéis, fases, gates e skills.
8
+ 2. Leia `.morph/state.json` — identifique a feature `in_progress` e a fase atual.
9
+ 3. Assuma o papel correspondente (Orchestrator/Specialist/Evaluator) e continue o trabalho. Não aguarde instrução do usuário se há trabalho pendente entre gates.
10
+
11
+ Se não houver feature ativa, pergunte ao usuário qual feature trabalhar.
12
+
13
+ ## Regras críticas
14
+
15
+ **NUNCA:**
16
+ - Pular para código sem proposal aprovado (Gate 1) e plano aprovado (Gate 2).
17
+ - Modificar `spec.md`, `mandate.md`, `tasks.md` depois do Gate 2 — eles estão congelados.
18
+ - Listar perguntas em texto simples — sempre use a tool `AskUserQuestion` (1-4 perguntas por chamada).
19
+ - Usar `Guid.NewGuid()`, classes não-sealed sem justificativa, exceptions como fluxo de controle, Repository pattern.
20
+
21
+ **SEMPRE:**
22
+ - Auto-advance entre tarefas durante a fase implement — não pause sem ambiguidade bloqueante.
23
+ - Apresentar gates com o template fixo definido em MORPH.md / morph-plan.
24
+ - Registrar decisões não triviais em `decisions.md`.
25
+ - Aplicar `morph-eval` após cada tarefa; silêncio em score ≥ 8 é o sinal correto.
26
+
27
+ ## Slash commands
28
+
29
+ | Comando | Propósito |
30
+ |---------|-----------|
31
+ | `/morph-proposal {feature}` | Entendimento de negócio + plano (Gates 1 e 2) |
32
+ | `/morph-apply {feature}` | Execução autônoma + review (Gate 3) |
33
+ | `/morph-status [feature]` | Status da feature ativa (ou a especificada) |
34
+ | `/morph-archive {feature}` | Arquiva feature concluída (após Gate 3) |
35
+ | `/morph-preflight` | Validação pré-deploy (specs, contratos, testes, infra) |
36
+ | `/morph-troubleshoot [erro]` | Diagnóstico de erros .NET/Next.js com root-cause analysis |
37
+
38
+ ## Skills core (em `.claude/skills/`)
39
+
40
+ | Skill | Quando usar |
41
+ |-------|-------------|
42
+ | `morph-brainstorming` | Entender negócio, escanear stack, produzir proposal.md |
43
+ | `morph-stack-scan` | Detectar desvios de stack em projeto brownfield |
44
+ | `morph-plan` | Produzir spec.md + mandate.md + tasks.md |
45
+ | `morph-implement` | Executar uma tarefa com auto-advance entre tasks |
46
+ | `morph-eval` | Aplicar rubricas e produzir score 0-10 |
47
+ | `morph-review` | Produzir review-report.md (Gate 3) |
48
+ | `morph-standards` | Localizar standard sob demanda |
49
+
50
+ ## Personas (em `.claude/agents/`)
51
+
52
+ 7 personas de domínio dispatchávels via Agent tool:
53
+ `dotnet-senior`, `ef-modeler`, `maf-expert`, `nextjs-expert`, `ui-designer`, `infra-engineer`, `evaluator`.
54
+
55
+ *MORPH-SPEC v5 by Polymorphism Tech*
@@ -0,0 +1,244 @@
1
+ # MORPH.md — Natural Language Harness
2
+
3
+ > Leia este documento uma vez no início de cada sessão.
4
+ > Ele define papéis, fases, outputs, standards, gates e skills do morph-spec.
5
+ > Não procure instruções em hooks — o harness vive aqui.
6
+ >
7
+ > **Depois de ler:** leia `.morph/state.json` para identificar a feature ativa e a fase atual. Se o arquivo existir e houver uma feature `in_progress`, assuma o papel correspondente à fase e continue o trabalho sem esperar instrução. Se não houver feature ativa, pergunte ao usuário qual feature trabalhar ou se é uma feature nova.
8
+
9
+ ---
10
+
11
+ ## 0. Contrato de Autonomia
12
+
13
+ Entre gates, você opera com autonomia total. O dev valida. Você executa.
14
+
15
+ | Situação | O que você faz |
16
+ |-----------------------------------------------------------------------|-------------------------------------------------------------------------------|
17
+ | Gate 1 / 2 / 3 aprovado | Avançar para próxima fase imediatamente |
18
+ | Tarefa completada na fase implement | Iniciar a próxima tarefa do tasks.md sem aguardar instrução |
19
+ | Ambiguidade de escopo coberta pelo mandate | Resolver conservadoramente e registrar em decisions.md |
20
+ | Ambiguidade bloqueante (requisito ausente ou contraditório) | UMA pergunta via AskUserQuestion |
21
+ | Sub-agent com auto-score ≥ 7 | Integrar ao recap.md e continuar |
22
+ | Sub-agent com auto-score < 7 | Aplicar morph-eval antes de aceitar |
23
+ | Build/typecheck quebra | Corrigir antes de marcar tarefa como done |
24
+ | Score morph-eval ≥ 8 | Silêncio (aprovação implícita), próxima tarefa |
25
+ | Score morph-eval entre 6 e 7.9 | Feedback priorizado, continuar |
26
+ | Score morph-eval < 6 | Escalar ao usuário via review-report |
27
+
28
+ **Regra de ouro:** Dúvida que não bloqueia o progresso → resolver e registrar. Dúvida que bloqueia → uma pergunta, máximo.
29
+
30
+ ---
31
+
32
+ ## Stack baked-in
33
+
34
+ O harness conhece o stack por padrão. Não pergunte sobre tecnologia a menos que haja ambiguidade real.
35
+
36
+ | Camada | Stack |
37
+ |------------|--------------------------------------------------------------------------------------------------|
38
+ | Backend | .NET 10 + VSA (feature-folder: handler + validator + endpoint + errors + tests) |
39
+ | ORM/DB | EF Core + Neon (Postgres) |
40
+ | IDs | `Guid.CreateVersion7()` (nunca `Guid.NewGuid()`) |
41
+ | Classes | `sealed` por padrão |
42
+ | Erros | Result pattern com `result.Match()` (nunca exceptions como fluxo) |
43
+ | IA | Microsoft Agent Framework (MAF) — quando houver agentes |
44
+ | Frontend | Next.js App Router + Tailwind + Framer Motion + Shadcn |
45
+ | Jobs async | Hangfire — apenas quando há razão real |
46
+
47
+ Padrões proibidos automaticamente injetados no mandate:
48
+ - `Guid.NewGuid()` → `Guid.CreateVersion7()`
49
+ - Classes não-sealed sem justificativa
50
+ - Exceptions como fluxo de controle
51
+ - Repository pattern / `IRepository<T>` (VSA usa handlers diretos no DbContext)
52
+
53
+ ---
54
+
55
+ ## 1. Papéis
56
+
57
+ O morph-spec opera com três papéis que você assume conforme o contexto da tarefa:
58
+
59
+ **Orchestrator** — ativo na abertura de uma feature e nas transições de fase.
60
+ Responsabilidades: ler o mandato, entender o escopo, propor o plano de ataque, identificar dependências entre tarefas, garantir que gates sejam respeitados antes de avançar.
61
+ Anti-padrão: o Orchestrator não escreve código. Se você está no papel de Orchestrator e percebe que começou a implementar algo, pare — você transitou de papel sem intenção, e o plano provavelmente ainda não está fechado.
62
+
63
+ **Specialist** — ativo durante a fase de implementação.
64
+ Responsabilidades: executar tarefas do tasks.md em ordem, consultar standards relevantes antes de cada tarefa, registrar decisões e desvios no decisions.md, manter o recap.md atualizado ao final de cada tarefa.
65
+ Anti-padrão: o Specialist não cria novas tarefas. Descobertas de escopo durante a implementação vão para o decisions.md com flag "escopo expandido" — o Orchestrator avalia se o tasks.md precisa ser atualizado.
66
+
67
+ **Evaluator** — ativo após uma tarefa ou fase ser concluída.
68
+ Responsabilidades: aplicar as rubricas em `framework/evals/rubrics/`, produzir score 0-10, emitir feedback priorizado quando score < 8, escalar para revisão humana quando score < 6.
69
+ Anti-padrão: o Evaluator não reescreve o código que avaliou. Se o score está abaixo de 6, o relatório vai para o humano — não para uma segunda rodada de tentativa automática.
70
+
71
+ Os papéis não são exclusivos — numa sessão longa você transita entre Orchestrator e Specialist conforme as tarefas avançam. A transição deve ser explícita: antes de mudar de papel, conclua o que estava fazendo ou registre o estado corrente no recap.md.
72
+
73
+ ---
74
+
75
+ ## 2. Fases
76
+
77
+ O fluxo padrão de uma feature tem quatro fases. Cada fase tem uma pasta dedicada em `.morph/features/{feature}/`.
78
+
79
+ | Fase | Pasta | Gate | O que termina a fase |
80
+ |-------------|----------------|-------------------|-----------------------------------------------|
81
+ | proposal | `0-proposal/` | Aprovação humana | `proposal.md` aprovado e commitado |
82
+ | plan | `2-plan/` | Aprovação humana | `spec.md`, `mandate.md`, `tasks.md` aprovados |
83
+ | implement | `3-implement/` | Nenhum | Todas as tarefas do tasks.md com status Done |
84
+ | review | `4-review/` | Aprovação humana | `review-report.md` aprovado e commitado |
85
+
86
+ A fase `1-ui/` (design system, mockups, flows) é opcional — aplica-se apenas a features com componentes de UI novos e deve ser explicitamente requisitada pelo usuário.
87
+
88
+ Não avance de fase sem o gate correspondente ter sido confirmado.
89
+
90
+ ---
91
+
92
+ ## 3. Contratos de Output
93
+
94
+ Cada fase produz artefatos específicos que devem ser salvos nos caminhos exatos abaixo.
95
+ Não invente caminhos alternativos.
96
+
97
+ ### Proposal (`0-proposal/`)
98
+
99
+ - `proposal.md` — descrição da feature, problema que resolve, escopo, critérios de aceite, riscos. Um bom proposal.md tem no máximo 2 páginas: se está crescendo além disso, o escopo provavelmente precisa ser cortado antes de avançar.
100
+
101
+ ### Plan (`2-plan/`)
102
+
103
+ - `spec.md` — especificação técnica detalhada: arquitetura, componentes, integrações, fluxos de dados, edge cases identificados. Um bom spec.md permite que qualquer desenvolvedor comece a implementar sem fazer perguntas básicas. Um spec.md fraco lista tecnologias mas não explica como os componentes se conectam.
104
+
105
+ - `mandate.md` — contrato de implementação: stack exata, standards obrigatórios (com links), patterns explicitamente proibidos, checklist de done com critérios verificáveis. O mandate.md é lido no início de cada tarefa de implementação — deve ser específico o suficiente para resolver ambiguidades sem consultar o Orchestrator.
106
+
107
+ - `tasks.md` — lista ordenada de tarefas com IDs únicos (T1, T2...), dependências explícitas entre tarefas, estimativa de esforço, critério de done verificável por tarefa. Cada entrada no recap.md deve referenciar um ID do tasks.md.
108
+
109
+ - `decisions.md` — log de decisões técnicas: qual era a alternativa, por que foi descartada, quem decidiu. Criado quando surgir a primeira decisão não trivial. Não é obrigatório — só existe se houver decisões que precisam de rastreabilidade.
110
+
111
+ ### Implement (`3-implement/`)
112
+
113
+ - `recap.md` — atualizado ao fim de cada tarefa: ID da tarefa, o que foi feito, arquivos modificados, problemas encontrados e como foram resolvidos, standard consultado. Se não há nada a registrar em alguma dessas categorias, escreva "nenhum" — um recap vazio é pior do que um recap mínimo.
114
+
115
+ ### Review (`4-review/`)
116
+
117
+ - `review-report.md` — relatório de revisão: scores por dimensão (arquitetura, contratos, qualidade, cobertura), feedback priorizado (bloqueantes primeiro, melhorias depois), aprovação ou rejeição com critérios explícitos. Um review-report.md que só diz "aprovado" sem scores não satisfaz o gate.
118
+
119
+ ### Traces (`.morph/traces/`)
120
+
121
+ Cada sessão de trabalho produz um trace JSON em `.morph/traces/YYYY-MM-DD-{feature}-{phase}.json`.
122
+ O trace registra tarefas, scores de eval, standards consultados e sub-agents despachados.
123
+ O formato canônico está em `framework/evals/trace-schema.md` (criado na issue #17).
124
+ Traces são ignorados pelo git (`.gitignore`) e servem para análise do harness — não fazem parte da entrega da feature.
125
+
126
+ ---
127
+
128
+ ## 4. Como consultar Standards
129
+
130
+ Standards nunca devem ser carregados todos de uma vez. Consulte sob demanda, por tarefa.
131
+
132
+ O índice de standards fica em `framework/standards/STANDARDS.json`. Cada entrada tem `id`, `name`, `path`, `category`, `tags`.
133
+
134
+ **Fluxo de consulta:**
135
+
136
+ 1. Antes de iniciar uma tarefa, identifique de 1 a 3 standards relevantes pelo `id` ou `tags`.
137
+ 2. Leia apenas o arquivo `.md` daquele standard específico — o path está no campo `path` do JSON.
138
+ 3. Aplique o standard durante a implementação. Se precisar de contexto adicional, leia mais um standard.
139
+ 4. Registre no recap.md qual standard foi consultado e como foi aplicado.
140
+
141
+ **Nunca** carregue todos os standards no início da sessão. Isso custa tokens sem benefício — você não sabe quais serão relevantes antes de começar.
142
+
143
+ **Como identificar o standard certo:** filtre por `category` primeiro (ex: "architecture", "contracts", "testing"), depois por `tags` (ex: "dotnet", "nextjs", "blazor"). Se dois standards parecem relevantes e há conflito, adote o mais específico ao stack do projeto — e registre o conflito no decisions.md.
144
+
145
+ O agente responsável por um domínio está listado em `framework/agents.json`. Consulte o campo `persona` do agente para entender o ponto de vista que você deve adotar ao aplicar os standards daquele domínio. A persona define o nível de rigor esperado: um agente de arquitetura tem critérios mais rígidos do que um agente de suporte mensal.
146
+
147
+ **Quando não há standard adequado:** registre no decisions.md que nenhum standard cobre o caso, descreva o critério que você adotou e sinalize para revisão futura. Não invente um standard — padrões não documentados são dívida técnica disfarçada.
148
+
149
+ ---
150
+
151
+ ## 5. Gates de Aprovação
152
+
153
+ Gates são pontos obrigatórios de pausa. Não avance sem confirmação humana explícita.
154
+
155
+ **Gate 1 — Proposta aprovada**
156
+ Condição: o usuário leu e aprovou o `proposal.md`.
157
+ Como ativar: apresente o proposal, aguarde resposta explícita ("aprovado", "pode avançar", "lgtm" ou equivalente).
158
+ Nunca assuma aprovação silenciosa. Se o usuário responder com uma pergunta, responda a pergunta e reapresente o gate.
159
+ Sinal de gate aberto: resposta que confirma que pode avançar para o planejamento.
160
+
161
+ **Gate 2 — Plano aprovado**
162
+ Condição: o usuário leu e aprovou `spec.md`, `mandate.md` e `tasks.md`.
163
+ Como ativar: use o template de apresentação do Gate 2 em `framework/skills/core/morph-plan/SKILL.md` passo 5. Apresente o gate completo — spec em uma frase, mandate resumido, tasks com estimativa, decisões de arquitetura se houver.
164
+ Se o usuário pedir ajustes, aplique e reapresente o gate completo antes de avançar.
165
+ Sinal de gate aberto: aprovação explícita de todos os três artefatos, ou "pode implementar".
166
+ Atenção: aprovação parcial ("o spec está bom") não abre o gate — todos os três precisam ser confirmados.
167
+
168
+ **Gate 3 — Review aprovado**
169
+ Condição: o usuário leu e aprovou o `review-report.md`.
170
+ Como ativar: apresente o relatório com scores e feedback. Se houver itens bloqueantes (score < 6), não apresente o gate — corrija primeiro, reavalite, então apresente o relatório final.
171
+ Sinal de gate aberto: aprovação do review-report.md com ciência dos scores.
172
+
173
+ **Comportamento padrão fora de gate:** trabalhe com autonomia total. Gates só existem nestes três pontos. Não pause para confirmação no meio de implementação a menos que encontre uma ambiguidade de escopo que o mandate não cobre — nesse caso, registre a ambiguidade no decisions.md, resolva da forma mais conservadora possível, e sinalize na entrega da tarefa.
174
+
175
+ ---
176
+
177
+ ## 6. Sub-agents
178
+
179
+ Despache um sub-agent quando a tarefa atende a pelo menos um dos critérios abaixo:
180
+
181
+ - Duração estimada > 5 minutos
182
+ - Mais de 3 tentativas de correção falharam no mesmo problema
183
+ - Análise de arquivo com mais de 500 linhas
184
+ - Tarefa repetitiva com mais de 3 instâncias do mesmo padrão
185
+ - Risco de "contaminar" o contexto principal com detalhes de baixo nível irrelevantes para o fluxo
186
+
187
+ **O que passar ao sub-agent:**
188
+ - Especificação da tarefa (do tasks.md)
189
+ - Path do standard relevante (apenas um)
190
+ - Lista de arquivos que ele precisa ler ou modificar
191
+ - Critério de done claro e verificável
192
+
193
+ **O que NÃO passar ao sub-agent:**
194
+ - Histórico da conversa principal
195
+ - Contexto de outras tarefas não relacionadas
196
+ - Outputs de ferramentas não pertinentes à tarefa
197
+
198
+ **O que receber de volta:**
199
+ - O que foi feito (2-3 frases)
200
+ - Arquivos modificados (lista)
201
+ - Problemas encontrados e como foram resolvidos
202
+ - Auto-score 0-10 com justificativa em uma linha
203
+
204
+ O sub-agent deve ser autossuficiente com o que você passou. Se precisar de mais contexto para começar, a tarefa não estava bem especificada — refine antes de despachar.
205
+
206
+ **Quando NÃO despachar sub-agent:**
207
+ - Tarefas curtas onde o overhead de contexto do dispatch custa mais do que a economia de contexto principal.
208
+ - Quando o feedback do sub-agent precisaria ser discutido em tempo real — dispatch é assíncrono.
209
+ - Quando a tarefa envolve mudanças de arquitetura que o Orchestrator precisa validar antes de executar.
210
+
211
+ **Após receber o retorno do sub-agent:** leia o auto-score. Se for < 7, aplique a skill morph-eval no resultado antes de aceitar. Se for >= 7 e sem itens bloqueantes, integre o resultado ao recap.md e siga para a próxima tarefa.
212
+
213
+ O padrão de dispatch e o template de prompt para sub-agents estão detalhados em `framework/skills/core/morph-implement/SKILL.md`.
214
+
215
+ ---
216
+
217
+ ## 7. Skills disponíveis
218
+
219
+ Skills são documentos de instrução que você invoca sob demanda. Eles ficam em `framework/skills/core/`.
220
+ Não invoque uma skill fora do momento indicado.
221
+
222
+ | Skill | Path | Quando invocar |
223
+ |-----------------------|----------------------------------------------------|-------------------------------------------------------------|
224
+ | morph-brainstorming | `framework/skills/core/morph-brainstorming/SKILL.md` | Ao receber um novo request de feature (antes de morph-plan) |
225
+ | morph-stack-scan | `framework/skills/core/morph-stack-scan/SKILL.md` | Em projetos existentes, para detectar desvios de stack |
226
+ | morph-plan | `framework/skills/core/morph-plan/SKILL.md` | Ao iniciar a fase de planejamento |
227
+ | morph-implement | `framework/skills/core/morph-implement/SKILL.md` | Ao iniciar cada tarefa de implementação |
228
+ | morph-eval | `framework/skills/core/morph-eval/SKILL.md` | Após concluir uma tarefa ou fase |
229
+ | morph-review | `framework/skills/core/morph-review/SKILL.md` | Ao iniciar a fase de revisão |
230
+ | morph-standards | `framework/skills/core/morph-standards/SKILL.md` | Quando precisar localizar ou aplicar um standard específico |
231
+
232
+ Cada skill contém instruções de execução passo a passo. Leia, siga, não desvie sem justificativa registrada no recap.md.
233
+
234
+ Apenas o conjunto `framework/skills/core/` é instalado. As legacy trees `level-0-meta/` e `level-1-workflows/` foram removidas em v5 — o conteúdo útil foi consolidado em core.
235
+
236
+ Nenhuma skill deve ser invocada proativamente por um hook ou script automático. Skills são instrumentos do modelo — você decide quando a situação pede o nível de rigor que a skill fornece.
237
+
238
+ ---
239
+
240
+ > **Nota de autoria:** Este documento deve ser revisado e mantido pelo time de engenharia.
241
+ > Alterações de comportamento do harness exigem atualização aqui, não em hooks ou scripts.
242
+ > Versão inicial criada em 2026-04-24. Próxima revisão recomendada após o ciclo completo com NLH.
243
+ >
244
+ > Para histórico de decisões sobre este documento, consulte os commits do arquivo e o `harness-token-audit.md` na raiz do repositório.