@polymorphism-tech/morph-spec 4.8.19 → 4.9.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.
- package/CLAUDE.md +21 -0
- package/README.md +2 -2
- package/bin/morph-spec.js +15 -56
- package/bin/task-manager.js +115 -14
- package/bin/validate.js +67 -33
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +201 -203
- package/docs/QUICKSTART.md +2 -2
- package/framework/CLAUDE.md +21 -0
- package/framework/agents.json +698 -176
- package/framework/hooks/claude-code/post-tool-use/context-refresh.js +1 -1
- package/framework/hooks/claude-code/post-tool-use/dispatch.js +2 -2
- package/framework/hooks/claude-code/post-tool-use/skill-reminder.js +155 -0
- package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +1 -1
- package/framework/hooks/claude-code/session-start/inject-morph-context.js +71 -2
- package/framework/hooks/claude-code/statusline.py +76 -30
- package/framework/hooks/claude-code/user-prompt/set-terminal-title.js +14 -6
- package/framework/hooks/shared/activity-logger.js +0 -24
- package/framework/hooks/shared/phase-utils.js +3 -0
- package/framework/hooks/shared/skill-reminder-helpers.js +79 -0
- package/framework/hooks/shared/stale-task-reset.js +57 -0
- package/framework/hooks/shared/state-reader.js +2 -2
- package/framework/hooks/shared/worktree-helpers.js +53 -0
- package/framework/phases.json +40 -8
- package/framework/skills/level-0-meta/brainstorming/SKILL.md +1 -1
- package/framework/skills/level-0-meta/code-review/SKILL.md +1 -1
- package/framework/skills/level-0-meta/code-review-nextjs/SKILL.md +163 -163
- package/framework/skills/level-0-meta/frontend-review/SKILL.md +5 -5
- package/framework/skills/level-0-meta/morph-checklist/SKILL.md +2 -2
- package/framework/skills/level-0-meta/morph-init/SKILL.md +5 -5
- package/framework/skills/level-0-meta/morph-replicate/SKILL.md +4 -4
- package/framework/skills/level-0-meta/morph-replicate/references/blazor-html-mapping.md +1 -1
- package/framework/skills/level-0-meta/post-implementation/SKILL.md +59 -12
- package/framework/skills/level-0-meta/simulation-checklist/SKILL.md +1 -1
- package/framework/skills/level-0-meta/terminal-title/SKILL.md +1 -1
- package/framework/skills/level-0-meta/tool-usage-guide/SKILL.md +1 -1
- package/framework/skills/level-0-meta/tool-usage-guide/references/tools-per-phase.md +6 -5
- package/framework/skills/level-0-meta/verification-before-completion/SKILL.md +1 -1
- package/framework/skills/level-1-workflows/phase-clarify/SKILL.md +215 -189
- package/framework/skills/level-1-workflows/phase-codebase-analysis/SKILL.md +251 -251
- package/framework/skills/level-1-workflows/phase-design/SKILL.md +382 -365
- package/framework/skills/level-1-workflows/phase-implement/SKILL.md +492 -450
- package/framework/skills/level-1-workflows/phase-setup/SKILL.md +194 -190
- package/framework/skills/level-1-workflows/phase-tasks/SKILL.md +270 -270
- package/framework/skills/level-1-workflows/phase-uiux/SKILL.md +285 -285
- package/framework/standards/STANDARDS.json +640 -88
- package/framework/standards/infrastructure/vercel/vercel-database.md +106 -0
- package/framework/templates/REGISTRY.json +1825 -1909
- package/framework/templates/context/CONTEXT-FEATURE.md +276 -276
- package/framework/templates/docs/onboarding.md +1 -5
- package/package.json +2 -6
- package/src/commands/agents/dispatch-agents.js +55 -4
- package/src/commands/project/doctor.js +16 -47
- package/src/commands/project/init.js +1 -1
- package/src/commands/project/status.js +2 -2
- package/src/commands/project/update.js +381 -365
- package/src/commands/project/worktree.js +154 -0
- package/src/commands/state/advance-phase.js +120 -30
- package/src/commands/state/approve.js +2 -2
- package/src/commands/state/index.js +7 -8
- package/src/commands/state/phase-runner.js +1 -1
- package/src/commands/state/state.js +61 -6
- package/src/commands/tasks/task.js +78 -99
- package/src/commands/templates/template-render.js +93 -173
- package/src/commands/trust/trust.js +26 -21
- package/src/core/paths/output-schema.js +15 -0
- package/src/core/state/state-manager.js +28 -54
- package/src/core/workflows/workflow-detector.js +9 -87
- package/src/lib/phase-chain/phase-validator.js +330 -0
- package/src/lib/stack/stack-profile.js +88 -0
- package/src/lib/tasks/task-classifier.js +16 -0
- package/src/lib/tasks/test-runner.js +77 -0
- package/src/lib/trust/trust-manager.js +32 -144
- package/src/lib/validators/spec-validator.js +58 -4
- package/src/lib/validators/validation-runner.js +23 -11
- package/src/scripts/setup-infra.js +240 -224
- package/src/utils/agents-installer.js +2 -2
- package/src/utils/banner.js +1 -1
- package/src/utils/claude-settings-manager.js +1 -1
- package/src/utils/file-copier.js +1 -0
- package/src/utils/hooks-installer.js +258 -8
- package/framework/hooks/dev/check-sync-health.js +0 -117
- package/framework/hooks/dev/guard-version-numbers.js +0 -57
- package/framework/hooks/dev/sync-standards-registry.js +0 -60
- package/framework/hooks/dev/sync-template-registry.js +0 -60
- package/framework/hooks/dev/validate-skill-format.js +0 -70
- package/framework/hooks/dev/validate-standard-format.js +0 -73
- package/framework/templates/meta-prompts/hops/hop-retry.md +0 -78
- package/framework/templates/meta-prompts/hops/hop-validation.md +0 -97
- package/framework/templates/meta-prompts/hops/hop-wrapper.md +0 -36
- package/framework/workflows/configs/design-impl.json +0 -49
- package/framework/workflows/configs/express.json +0 -45
- package/framework/workflows/configs/fast-track.json +0 -42
- package/framework/workflows/configs/full-morph.json +0 -79
- package/framework/workflows/configs/fusion.json +0 -39
- package/framework/workflows/configs/long-running.json +0 -33
- package/framework/workflows/configs/spec-only.json +0 -43
- package/framework/workflows/configs/ui-refresh.json +0 -49
- package/framework/workflows/configs/zero-touch.json +0 -82
- package/src/commands/project/monitor.js +0 -295
- package/src/commands/project/tutorial.js +0 -115
- package/src/commands/state/validate-phase.js +0 -238
- package/src/commands/templates/generate-contracts.js +0 -445
- package/src/core/orchestrator.js +0 -171
- package/src/core/registry/command-registry.js +0 -28
- package/src/core/registry/index.js +0 -8
- package/src/core/registry/validator-registry.js +0 -204
- package/src/core/templates/template-validator.js +0 -296
- package/src/generator/config-generator.js +0 -206
- package/src/generator/templates/config.json.template +0 -40
- package/src/generator/templates/project.md.template +0 -67
- package/src/lib/agents/micro-agent-factory.js +0 -161
- package/src/lib/analysis/complexity-analyzer.js +0 -441
- package/src/lib/analysis/index.js +0 -7
- package/src/lib/analytics/analytics-engine.js +0 -345
- package/src/lib/checkpoints/checkpoint-hooks.js +0 -298
- package/src/lib/checkpoints/index.js +0 -7
- package/src/lib/context/context-bundler.js +0 -241
- package/src/lib/context/context-optimizer.js +0 -212
- package/src/lib/context/context-tracker.js +0 -273
- package/src/lib/context/core-four-tracker.js +0 -201
- package/src/lib/context/mcp-optimizer.js +0 -200
- package/src/lib/execution/fusion-executor.js +0 -304
- package/src/lib/execution/parallel-executor.js +0 -270
- package/src/lib/hooks/stop-hook-executor.js +0 -286
- package/src/lib/hops/hop-composer.js +0 -221
- package/src/lib/phase-chain/eligibility-checker.js +0 -243
- package/src/lib/threads/thread-coordinator.js +0 -238
- package/src/lib/threads/thread-manager.js +0 -317
- package/src/lib/tracking/artifact-trail.js +0 -202
- package/src/scanner/project-scanner.js +0 -242
- package/src/ui/diff-display.js +0 -91
- package/src/ui/interactive-wizard.js +0 -96
- package/src/ui/user-review.js +0 -211
- package/src/ui/wizard-questions.js +0 -188
- package/src/utils/color-utils.js +0 -70
- package/src/utils/process-handler.js +0 -97
|
@@ -1,191 +1,195 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 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.
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
- [x]
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
<!--
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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
|
+
|
|
191
195
|
Continuar automaticamente para próxima fase (UI/UX se detectado, ou Design).
|