@polymorphism-tech/morph-spec 4.9.0 → 4.10.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 (124) hide show
  1. package/README.md +2 -2
  2. package/bin/morph-spec.js +30 -0
  3. package/bin/task-manager.js +34 -22
  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 +99 -98
  8. package/framework/agents.json +37 -7
  9. package/framework/commands/commit.md +166 -0
  10. package/framework/commands/morph-apply.md +13 -2
  11. package/framework/commands/morph-archive.md +8 -2
  12. package/framework/commands/morph-infra.md +6 -0
  13. package/framework/commands/morph-preflight.md +6 -0
  14. package/framework/commands/morph-proposal.md +56 -7
  15. package/framework/commands/morph-status.md +6 -0
  16. package/framework/commands/morph-troubleshoot.md +6 -0
  17. package/framework/hooks/claude-code/notification/approval-reminder.js +3 -2
  18. package/framework/hooks/claude-code/post-tool-use/dispatch.js +154 -31
  19. package/framework/hooks/claude-code/post-tool-use/skill-reminder.js +7 -84
  20. package/framework/hooks/claude-code/post-tool-use/validator-feedback.js +8 -17
  21. package/framework/hooks/claude-code/pre-compact/save-morph-context.js +16 -3
  22. package/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +4 -3
  23. package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +3 -2
  24. package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +60 -0
  25. package/framework/hooks/claude-code/session-start/inject-morph-context.js +55 -2
  26. package/framework/hooks/claude-code/session-start/post-compact-restore.js +41 -0
  27. package/framework/hooks/claude-code/stop/validate-completion.js +2 -15
  28. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +23 -5
  29. package/framework/hooks/shared/compact-restore.js +100 -0
  30. package/framework/hooks/shared/dispatch-helpers.js +116 -0
  31. package/framework/hooks/shared/phase-utils.js +9 -5
  32. package/framework/hooks/shared/state-reader.js +27 -3
  33. package/framework/phases.json +30 -7
  34. package/framework/rules/morph-workflow.md +88 -86
  35. package/framework/skills/level-0-meta/mcp-registry.json +86 -51
  36. package/framework/skills/level-0-meta/{brainstorming → morph-brainstorming}/SKILL.md +13 -16
  37. package/framework/skills/level-0-meta/{code-review → morph-code-review}/SKILL.md +1 -1
  38. package/framework/skills/level-0-meta/{code-review-nextjs → morph-code-review-nextjs}/SKILL.md +2 -2
  39. package/framework/skills/level-0-meta/{frontend-review → morph-frontend-review}/SKILL.md +5 -5
  40. package/framework/skills/level-0-meta/morph-init/SKILL.md +72 -7
  41. package/framework/skills/level-0-meta/{post-implementation → morph-post-implementation}/SKILL.md +9 -9
  42. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +1 -1
  43. package/framework/skills/level-0-meta/{terminal-title → morph-terminal-title}/SKILL.md +1 -1
  44. package/framework/skills/level-0-meta/{tool-usage-guide → morph-tool-usage-guide}/SKILL.md +2 -3
  45. package/framework/skills/level-0-meta/{tool-usage-guide → morph-tool-usage-guide}/references/tools-per-phase.md +1 -2
  46. package/framework/skills/level-0-meta/{verification-before-completion → morph-verification-before-completion}/SKILL.md +1 -1
  47. package/framework/skills/level-0-meta/{verification-before-completion → morph-verification-before-completion}/scripts/check-phase-outputs.mjs +2 -2
  48. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +238 -0
  49. package/framework/skills/level-1-workflows/{phase-codebase-analysis → morph-phase-codebase-analysis}/SKILL.md +251 -251
  50. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +507 -0
  51. package/framework/skills/level-1-workflows/{phase-implement → morph-phase-implement}/SKILL.md +590 -491
  52. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/code-quality-reviewer-prompt.md +50 -0
  53. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +45 -0
  54. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/spec-reviewer-prompt.md +47 -0
  55. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +254 -0
  56. package/framework/skills/level-1-workflows/{phase-setup → morph-phase-setup}/SKILL.md +237 -194
  57. package/framework/skills/level-1-workflows/{phase-tasks → morph-phase-tasks}/SKILL.md +307 -270
  58. package/framework/skills/level-1-workflows/{phase-tasks → morph-phase-tasks}/scripts/validate-tasks.mjs +3 -3
  59. package/framework/skills/level-1-workflows/{phase-uiux → morph-phase-uiux}/SKILL.md +320 -285
  60. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +97 -0
  61. package/framework/standards/integration/mcp/mcp-tools.md +25 -7
  62. package/framework/templates/docs/onboarding.md +2 -2
  63. package/package.json +1 -2
  64. package/src/commands/agents/dispatch-agents.js +50 -3
  65. package/src/commands/mcp/mcp-setup.js +39 -2
  66. package/src/commands/phase/phase-reset.js +74 -0
  67. package/src/commands/project/doctor.js +19 -5
  68. package/src/commands/scope/escalate.js +215 -0
  69. package/src/commands/state/advance-phase.js +27 -53
  70. package/src/commands/state/state.js +1 -1
  71. package/src/commands/task/expand.js +100 -0
  72. package/src/core/paths/output-schema.js +4 -3
  73. package/src/core/state/phase-state-machine.js +7 -4
  74. package/src/core/state/state-manager.js +4 -3
  75. package/src/lib/detectors/claude-config-detector.js +93 -347
  76. package/src/lib/detectors/design-system-detector.js +189 -189
  77. package/src/lib/detectors/index.js +155 -57
  78. package/src/lib/generators/context-generator.js +2 -2
  79. package/src/lib/installers/mcp-installer.js +37 -5
  80. package/src/lib/phase-chain/phase-validator.js +22 -16
  81. package/src/lib/scope/impact-analyzer.js +106 -0
  82. package/src/lib/tasks/task-parser.js +1 -1
  83. package/src/lib/validators/shared/emit-validator-dispatch.js +64 -0
  84. package/src/scripts/setup-infra.js +15 -0
  85. package/src/utils/agents-installer.js +32 -12
  86. package/src/utils/file-copier.js +0 -1
  87. package/src/utils/hooks-installer.js +15 -1
  88. package/framework/skills/level-1-workflows/phase-clarify/SKILL.md +0 -216
  89. package/framework/skills/level-1-workflows/phase-design/SKILL.md +0 -383
  90. package/src/commands/project/index.js +0 -8
  91. package/src/core/index.js +0 -10
  92. package/src/core/state/index.js +0 -8
  93. package/src/core/templates/index.js +0 -9
  94. package/src/core/templates/template-data-sources.js +0 -325
  95. package/src/core/workflows/index.js +0 -7
  96. package/src/lib/detectors/config-detector.js +0 -223
  97. package/src/lib/detectors/standards-generator.js +0 -335
  98. package/src/lib/detectors/structure-detector.js +0 -275
  99. package/src/lib/monitor/agent-resolver.js +0 -144
  100. package/src/lib/monitor/renderer.js +0 -230
  101. package/src/lib/orchestration/index.js +0 -7
  102. package/src/lib/orchestration/team-orchestrator.js +0 -404
  103. package/src/sanitizer/context-sanitizer.js +0 -221
  104. package/src/sanitizer/patterns.js +0 -163
  105. package/src/writer/file-writer.js +0 -86
  106. /package/framework/skills/level-0-meta/{brainstorming → morph-brainstorming}/references/proposal-example.md +0 -0
  107. /package/framework/skills/level-0-meta/{code-review → morph-code-review}/references/review-example.md +0 -0
  108. /package/framework/skills/level-0-meta/{code-review → morph-code-review}/references/review-guidelines.md +0 -0
  109. /package/framework/skills/level-0-meta/{code-review → morph-code-review}/scripts/scan-csharp.mjs +0 -0
  110. /package/framework/skills/level-0-meta/{code-review-nextjs → morph-code-review-nextjs}/references/review-example-nextjs.md +0 -0
  111. /package/framework/skills/level-0-meta/{code-review-nextjs → morph-code-review-nextjs}/scripts/scan-nextjs.mjs +0 -0
  112. /package/framework/skills/level-0-meta/{frontend-review → morph-frontend-review}/scripts/scan-accessibility.mjs +0 -0
  113. /package/framework/skills/level-0-meta/{post-implementation → morph-post-implementation}/scripts/detect-dev-server.mjs +0 -0
  114. /package/framework/skills/level-0-meta/{post-implementation → morph-post-implementation}/scripts/detect-stack.mjs +0 -0
  115. /package/framework/skills/level-0-meta/{simulation-checklist → morph-simulation-checklist}/SKILL.md +0 -0
  116. /package/framework/skills/level-0-meta/{terminal-title → morph-terminal-title}/scripts/set_title.sh +0 -0
  117. /package/framework/skills/level-1-workflows/{phase-clarify → morph-phase-clarify}/references/clarifications-example.md +0 -0
  118. /package/framework/skills/level-1-workflows/{phase-design → morph-phase-design}/references/architecture-analysis-guide.md +0 -0
  119. /package/framework/skills/level-1-workflows/{phase-design → morph-phase-design}/references/spec-authoring-guide.md +0 -0
  120. /package/framework/skills/level-1-workflows/{phase-design → morph-phase-design}/references/spec-example.md +0 -0
  121. /package/framework/skills/level-1-workflows/{phase-implement → morph-phase-implement}/references/recap-example.md +0 -0
  122. /package/framework/skills/level-1-workflows/{phase-implement → morph-phase-implement}/references/vsa-implementation-guide.md +0 -0
  123. /package/framework/skills/level-1-workflows/{phase-tasks → morph-phase-tasks}/references/task-planning-patterns.md +0 -0
  124. /package/framework/skills/level-1-workflows/{phase-tasks → morph-phase-tasks}/references/tasks-example.md +0 -0
@@ -1,195 +1,238 @@
1
- ---
2
- name: morph:phase-setup
3
- description: MORPH-SPEC Phase 1 (Setup). Reads project context, detects tech stack, activates relevant agents by reading agents.json, and confirms the feature environment. Use at the start of every MORPH-SPEC feature workflow after proposal approval to load standards and initialize the context.
4
- argument-hint: "[feature-name]"
5
- user-invocable: false
6
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep
7
- cliVersion: "4.9.0"
8
- ---
9
-
10
- # MORPH Setup - FASE 1
11
-
12
- > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
13
-
14
- Inicialize o contexto e prepare o ambiente para uma feature aprovada.
15
-
16
- ## Pré-requisitos
17
-
18
- - [ ] Feature tem `proposal.md` criado (FASE 0 concluída)
19
- - [ ] Proposal foi aprovado pelo usuário
20
- - [ ] Agentes foram detectados e registrados no state
21
-
22
- ## Ferramentas Recomendadas
23
-
24
- > **Ref:** `framework/skills/level-0-meta/tool-usage-guide/SKILL.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
- | Verificar state | **Bash** `npx morph-spec state get` | — |
30
- | Detectar agentes + standards | **Read** `.morph/framework/agents.json` → match keywords → **Bash** `npx morph-spec state add-agent` | — |
31
- | Ler contexto do projeto | **Read** `.morph/context/README.md` | — |
32
- | Ler config | **Read** `.morph/config/config.json` | — |
33
- | Detectar arquitetura VSA | **Read** `.morph/config/config.json` → verificar `config.architecture.style` | — |
34
- | Escanear estrutura do projeto | **Glob** `src/**/*.{ts,tsx,cs}` | — |
35
- | Metadata do repositório | **GitHub MCP** `get_repo()` | **Bash** `gh repo view --json` |
36
- | Atualizar state | **Bash** `npx morph-spec state set` | — |
37
-
38
- **MCPs desta fase:** GitHub (opcional — metadata do repo).
39
-
40
- **Anti-padrões:**
41
- - ❌ Chamar `detect-agents` CLI (não existe — leia `.morph/framework/agents.json` diretamente)
42
- - ❌ Task agent para o keyword matching inline de stack detection (rápido o suficiente direto)
43
- - ❌ WebSearch para info local do projeto (use Read/Glob)
44
-
45
- ---
46
-
47
- ## Workflow
48
-
49
- ### CHECKPOINT DE ENTRADA: Verificar Pré-requisitos
50
-
51
- **⏸️ Antes de prosseguir com setup:**
52
-
53
- - [ ] `proposal.md` existe em `.morph/features/$ARGUMENTS/`?
54
- - [ ] Proposal foi apresentado e aprovado pelo usuário?
55
- - [ ] Feature foi registrada no state?
56
-
57
- **❌ Se alguma checkbox NÃO estiver marcada:**
58
- → Voltar para FASE 0 (Proposal)
59
-
60
- ---
61
-
62
- ### Passo 1: Verificar State
63
-
64
- Confirme que a feature existe no state:
65
-
66
- ```bash
67
- npx morph-spec state get $ARGUMENTS
68
- ```
69
-
70
- Se não existir, volte para FASE 0 (proposal).
71
-
72
- ### Passo 2: Detectar Agentes e Carregar Standards
73
-
74
- #### Passo 2.0: Detectar Estilo de Arquitetura e Ativar Arquiteto
75
-
76
- **Leia `.morph/config/config.json` e verifique `config.architecture.style`:**
77
-
78
- | Valor | Ação |
79
- |-------|------|
80
- | `"vertical-slice"` | `npx morph-spec state add-agent $ARGUMENTS vsa-architect` |
81
- | ausente / qualquer outro | `npx morph-spec state add-agent $ARGUMENTS domain-architect` |
82
-
83
- **Prossiga com keyword detection normal para os demais agentes** (ef-modeler, api-designer, etc.).
84
- O arquiteto já foi adicionado acima — **ignore-o no keyword matching** para evitar duplicação.
85
-
86
- #### Passo 2.1: Keyword Detection
87
-
88
- **Leia agents.json diretamente e faça o match de keywords** (exceto `domain-architect` e `vsa-architect` que já foram tratados no Passo 2.0):
89
-
90
- 1. Leia `.morph/framework/agents.json`
91
- 2. Extraia título e descrição da feature de `0-proposal/proposal.md`
92
- 3. Para cada agente no JSON (exceto arquitetos), verifique se alguma keyword do campo `keywords[]` aparece no texto da proposta
93
- 4. Adicione os agentes correspondentes ao state:
94
-
95
- ```bash
96
- npx morph-spec state add-agent $ARGUMENTS {agent-id}
97
- # Exemplo:
98
- npx morph-spec state add-agent $ARGUMENTS dotnet-senior
99
- npx morph-spec state add-agent $ARGUMENTS ef-modeler
100
- ```
101
-
102
- **Para carregar standards dos agentes detectados:**
103
- - Para cada agente ativo, leia os standards referenciados pelo campo `standards[]` em `agents.json`
104
- - Os arquivos de standard ficam em `.morph/framework/standards/{path}`
105
-
106
- **Standards resolution order** (manual):
107
- 1. `.morph/context/*.md` — project overrides (maior prioridade)
108
- 2. `.morph/framework/standards/` — standards instalados pelo morph-spec
109
- 3. `framework/standards/` — standards do pacote npm (fallback)
110
-
111
- **Contexto geral** (leia sempre):
112
- - `.morph/context/README.md` — Overview do projeto
113
- - `.morph/config/config.json` — Configurações
114
-
115
- ### Passo 3: Confirmar Stack
116
-
117
- Baseado no proposal e contexto, confirme:
118
- - Stack tecnológica (Blazor Server, Next.js, etc.)
119
- - Padrões arquiteturais aplicáveis
120
- - Componentes reutilizáveis existentes
121
-
122
- ### Passo 4: Listar Agentes Ativos e Preview de Dispatch
123
-
124
- Mostre os agentes detectados no proposal:
125
-
126
- ```bash
127
- npx morph-spec state get $ARGUMENTS
128
- ```
129
-
130
- Parse o JSON e liste os `activeAgents` com seus emojis e responsabilidades (consulte `.morph/framework/agents.json`).
131
-
132
- **Se houver 2+ agentes especialistas ativos**, mostre o plano de dispatch para as próximas fases:
133
-
134
- ```bash
135
- npx morph-spec dispatch-agents $ARGUMENTS design
136
- ```
137
-
138
- Isso informa quais agentes serão disparados em paralelo na fase de design e quais tasks eles executarão.
139
-
140
- > **Mapeamento importante:** `agents[].id` do dispatch config = `subagent_type` no `Agent` tool.
141
- > Exemplo: `id: "nextjs-expert"` `Agent(subagent_type=nextjs-expert, prompt=agent.taskPrompt)`.
142
- > Cada `id` corresponde ao campo `name:` no frontmatter do arquivo em `.claude/agents/`.
143
-
144
- ### Passo 5: Atualizar State
145
-
146
- Marque a feature como na fase SETUP:
147
-
148
- ```bash
149
- npx morph-spec state set $ARGUMENTS status in_progress
150
- ```
151
-
152
- ## Outputs
153
-
154
- **Apresente ao usuário:**
155
-
156
- 1. **Contexto carregado**:
157
- - Nome do projeto
158
- - Stack confirmado
159
- - Standards aplicáveis
160
-
161
- 2. **Agentes ativos**:
162
- - Lista de agentes com emojis
163
- - Responsabilidades de cada um
164
-
165
- ## Critérios de Avanço
166
-
167
- - [x] Contexto do projeto carregado
168
- - [x] Standards identificados (framework + project)
169
- - [x] Stack confirmado
170
- - [x] Agentes listados
171
- - [x] State atualizado para phase: setup
172
-
173
- ---
174
-
175
- ## Integração com Superpowers
176
-
177
- > Disponível quando o plugin `superpowers` está instalado.
178
-
179
- | Skill | Quando Usar | Invocação |
180
- |-------|-------------|-----------|
181
- | `using-git-worktrees` | Se feature requer isolamento do workspace | `Skill(superpowers:using-git-worktrees)` |
182
-
183
- ---
184
-
185
- ## Outputs desta Fase
186
-
187
- <!-- morph:outputs:proposal -->
188
- | Output | Caminho |
189
- |--------|---------|
190
- | `proposal` | `.morph/features/{feature}/0-proposal/proposal.md` |
191
- <!-- /morph:outputs -->
192
-
193
- ---
194
-
1
+ ---
2
+ name: morph:phase-setup
3
+ description: MORPH-SPEC Phase 1 (Setup). Reads project context, detects tech stack, activates relevant agents by reading agents.json, and confirms the feature environment. Use at the start of every MORPH-SPEC feature workflow after proposal approval to load standards and initialize the context.
4
+ argument-hint: "[feature-name]"
5
+ user-invocable: false
6
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
7
+ cliVersion: "4.10.0"
8
+ ---
9
+
10
+ # MORPH Setup - FASE 1
11
+
12
+ > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
13
+
14
+ Inicialize o contexto e prepare o ambiente para uma feature aprovada.
15
+
16
+ ## Pré-requisitos
17
+
18
+ - [ ] Feature tem `proposal.md` criado (FASE 0 concluída)
19
+ - [ ] Proposal foi aprovado pelo usuário
20
+ - [ ] Agentes foram detectados e registrados no state
21
+
22
+ ## Ferramentas Recomendadas
23
+
24
+ > **Ref:** `framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.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
+ | Verificar state | **Bash** `npx morph-spec state get` | — |
30
+ | Detectar agentes + standards | **Read** `.morph/framework/agents.json` → match keywords → **Bash** `npx morph-spec state add-agent` | — |
31
+ | Ler contexto do projeto | **Read** `.morph/context/README.md` | — |
32
+ | Ler config | **Read** `.morph/config/config.json` | — |
33
+ | Detectar arquitetura VSA | **Read** `.morph/config/config.json` → verificar `config.architecture.style` | — |
34
+ | Escanear estrutura do projeto | **Glob** `src/**/*.{ts,tsx,cs}` | — |
35
+ | Metadata do repositório | **GitHub MCP** `get_repo()` | **Bash** `gh repo view --json` |
36
+ | Atualizar state | **Bash** `npx morph-spec state set` | — |
37
+
38
+ **MCPs desta fase:** GitHub (opcional — metadata do repo).
39
+
40
+ **Anti-padrões:**
41
+ - ❌ Chamar `detect-agents` CLI (não existe — leia `.morph/framework/agents.json` diretamente)
42
+ - ❌ Task agent para o keyword matching inline de stack detection (rápido o suficiente direto)
43
+ - ❌ WebSearch para info local do projeto (use Read/Glob)
44
+
45
+ ---
46
+
47
+ ## Workflow
48
+
49
+ ### CHECKPOINT DE ENTRADA: Verificar Pré-requisitos
50
+
51
+ **⏸️ Antes de prosseguir com setup:**
52
+
53
+ - [ ] `proposal.md` existe em `.morph/features/$ARGUMENTS/`?
54
+ - [ ] Proposal foi apresentado e aprovado pelo usuário?
55
+ - [ ] Feature foi registrada no state?
56
+
57
+ **❌ Se alguma checkbox NÃO estiver marcada:**
58
+ → Voltar para FASE 0 (Proposal)
59
+
60
+ ---
61
+
62
+ ### Passo 1: Verificar State
63
+
64
+ Confirme que a feature existe no state:
65
+
66
+ ```bash
67
+ npx morph-spec state get $ARGUMENTS
68
+ ```
69
+
70
+ Se não existir, volte para FASE 0 (proposal).
71
+
72
+ ### Passo 2: Detectar Agentes e Carregar Standards
73
+
74
+ #### Passo 2.0: Detectar Estilo de Arquitetura e Ativar Arquiteto
75
+
76
+ **Leia `.morph/config/config.json` e verifique `config.architecture.style`:**
77
+
78
+ | Valor | Ação |
79
+ |-------|------|
80
+ | `"vertical-slice"` | `npx morph-spec state add-agent $ARGUMENTS vsa-architect` |
81
+ | ausente / qualquer outro | `npx morph-spec state add-agent $ARGUMENTS domain-architect` |
82
+
83
+ **Prossiga com keyword detection normal para os demais agentes** (ef-modeler, api-designer, etc.).
84
+ O arquiteto já foi adicionado acima — **ignore-o no keyword matching** para evitar duplicação.
85
+
86
+ #### Passo 2.1: Keyword Detection
87
+
88
+ **Leia agents.json diretamente e faça o match de keywords** (exceto `domain-architect` e `vsa-architect` que já foram tratados no Passo 2.0):
89
+
90
+ 1. Leia `.morph/framework/agents.json`
91
+ 2. Extraia título e descrição da feature de `0-proposal/proposal.md`
92
+ 3. Para cada agente no JSON (exceto arquitetos), verifique se alguma keyword do campo `keywords[]` aparece no texto da proposta
93
+ 4. Adicione os agentes correspondentes ao state:
94
+
95
+ ```bash
96
+ npx morph-spec state add-agent $ARGUMENTS {agent-id}
97
+ # Exemplo:
98
+ npx morph-spec state add-agent $ARGUMENTS dotnet-senior
99
+ npx morph-spec state add-agent $ARGUMENTS ef-modeler
100
+ ```
101
+
102
+ **Para carregar standards dos agentes detectados:**
103
+ - Para cada agente ativo, leia os standards referenciados pelo campo `standards[]` em `agents.json`
104
+ - Os arquivos de standard ficam em `.morph/framework/standards/{path}`
105
+
106
+ **Standards resolution order** (manual):
107
+ 1. `.morph/context/*.md` — project overrides (maior prioridade)
108
+ 2. `.morph/framework/standards/` — standards instalados pelo morph-spec
109
+ 3. `framework/standards/` — standards do pacote npm (fallback)
110
+
111
+ **Contexto geral** (leia sempre):
112
+ - `.morph/context/README.md` — Overview do projeto
113
+ - `.morph/config/config.json` — Configurações
114
+
115
+ ### Passo 2.5: Validar Conexoes MCP
116
+
117
+ Verifique se os MCPs configurados estao funcionando antes de prosseguir.
118
+
119
+ **1. Coletar MCPs recomendados:**
120
+ - Leia `framework/phases.json` → para cada fase no workflow da feature, colete os `recommendedMCPs[]`
121
+ - Leia `framework/skills/level-0-meta/mcp-registry.json` → obtenha os `healthCheck` de cada MCP
122
+
123
+ **2. Identificar MCPs configurados:**
124
+ - Leia `.claude/settings.local.json` identifique quais MCPs estao em `mcpServers`
125
+
126
+ **3. Para cada MCP que esta CONFIGURADO E RECOMENDADO:**
127
+ 1. Procure nas suas ferramentas disponiveis por uma que contenha `healthCheck.toolPattern` no nome
128
+ 2. Se a ferramenta existir → execute o `healthCheck.testCall` com `healthCheck.testParams`
129
+ 3. Avalie o resultado:
130
+
131
+ | Resultado | Acao |
132
+ |-----------|------|
133
+ | **Sucesso** | `✓ {MCP} — conexao verificada` |
134
+ | **Ferramenta nao encontrada** | `○ {MCP} — precisa restart para ativar` |
135
+ | **Erro** | **AskUserQuestion** com 3 opcoes (abaixo) |
136
+
137
+ **Em caso de erro — pergunte ao usuario:**
138
+
139
+ Use `AskUserQuestion` com header `"{MCP}"` e opcoes:
140
+ - **Continuar sem {MCP}** Mostre o campo `fallback` do registry e prossiga
141
+ - **Reconfigurar credenciais** Colete novas credenciais e atualize `.claude/settings.local.json`
142
+ - **Parar setup** Aborte e reporte o que precisa ser corrigido
143
+
144
+ **4. Para MCPs RECOMENDADOS mas NAO CONFIGURADOS:**
145
+ - Print `△ {MCP} — nao configurado (fallback: {registry.fallback})`
146
+ - Sugestao: `Tip: configure com /morph:init refresh ou npx morph-spec mcp setup`
147
+
148
+ **Resumo:** Mostre uma tabela com status de cada MCP antes de prosseguir:
149
+ ```
150
+ MCP Readiness:
151
+ ✓ context7 — conexao verificada
152
+ playwright — precisa restart
153
+ △ supabase — nao configurado (fallback: Grep + Read para schema)
154
+ ```
155
+
156
+ ---
157
+
158
+ ### Passo 3: Confirmar Stack
159
+
160
+ Baseado no proposal e contexto, confirme:
161
+ - Stack tecnológica (Blazor Server, Next.js, etc.)
162
+ - Padrões arquiteturais aplicáveis
163
+ - Componentes reutilizáveis existentes
164
+
165
+ ### Passo 4: Listar Agentes Ativos e Preview de Dispatch
166
+
167
+ Mostre os agentes detectados no proposal:
168
+
169
+ ```bash
170
+ npx morph-spec state get $ARGUMENTS
171
+ ```
172
+
173
+ Parse o JSON e liste os `activeAgents` com seus emojis e responsabilidades (consulte `.morph/framework/agents.json`).
174
+
175
+ **Se houver 2+ agentes especialistas ativos**, mostre o plano de dispatch para as próximas fases:
176
+
177
+ ```bash
178
+ npx morph-spec dispatch-agents $ARGUMENTS design
179
+ ```
180
+
181
+ Isso informa quais agentes serão disparados em paralelo na fase de design e quais tasks eles executarão.
182
+
183
+ > **Mapeamento importante:** `agents[].id` do dispatch config = `subagent_type` no `Agent` tool.
184
+ > Exemplo: `id: "nextjs-expert"` → `Agent(subagent_type=nextjs-expert, prompt=agent.taskPrompt)`.
185
+ > Cada `id` corresponde ao campo `name:` no frontmatter do arquivo em `.claude/agents/`.
186
+
187
+ ### Passo 5: Atualizar State
188
+
189
+ Marque a feature como na fase SETUP:
190
+
191
+ ```bash
192
+ npx morph-spec state set $ARGUMENTS status in_progress
193
+ ```
194
+
195
+ ## Outputs
196
+
197
+ **Apresente ao usuário:**
198
+
199
+ 1. **Contexto carregado**:
200
+ - Nome do projeto
201
+ - Stack confirmado
202
+ - Standards aplicáveis
203
+
204
+ 2. **Agentes ativos**:
205
+ - Lista de agentes com emojis
206
+ - Responsabilidades de cada um
207
+
208
+ ## Critérios de Avanço
209
+
210
+ - [x] Contexto do projeto carregado
211
+ - [x] Standards identificados (framework + project)
212
+ - [x] Stack confirmado
213
+ - [x] Agentes listados
214
+ - [x] State atualizado para phase: setup
215
+
216
+ ---
217
+
218
+ ## Integração com Superpowers
219
+
220
+ > Disponível quando o plugin `superpowers` está instalado.
221
+
222
+ | Skill | Quando Usar | Invocação |
223
+ |-------|-------------|-----------|
224
+ | `using-git-worktrees` | Se feature requer isolamento do workspace | `Skill(superpowers:using-git-worktrees)` |
225
+
226
+ ---
227
+
228
+ ## Outputs desta Fase
229
+
230
+ <!-- morph:outputs:proposal -->
231
+ | Output | Caminho |
232
+ |--------|---------|
233
+ | `proposal` | `.morph/features/{feature}/0-proposal/proposal.md` |
234
+ <!-- /morph:outputs -->
235
+
236
+ ---
237
+
195
238
  Continuar automaticamente para próxima fase (UI/UX se detectado, ou Design).