@brunosps00/dev-workflow 0.8.1 → 0.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/README.md +16 -12
- package/bin/dev-workflow.js +1 -1
- package/lib/constants.js +8 -2
- package/lib/init.js +6 -0
- package/lib/install-deps.js +0 -5
- package/lib/migrate-gsd.js +164 -0
- package/lib/uninstall.js +2 -2
- package/package.json +1 -1
- package/scaffold/en/commands/dw-analyze-project.md +6 -11
- package/scaffold/en/commands/dw-autopilot.md +6 -13
- package/scaffold/en/commands/dw-brainstorm.md +1 -1
- package/scaffold/en/commands/dw-code-review.md +6 -5
- package/scaffold/en/commands/dw-create-prd.md +5 -4
- package/scaffold/en/commands/dw-create-techspec.md +5 -4
- package/scaffold/en/commands/dw-execute-phase.md +149 -0
- package/scaffold/en/commands/dw-help.md +5 -2
- package/scaffold/en/commands/dw-intel.md +98 -29
- package/scaffold/en/commands/dw-map-codebase.md +125 -0
- package/scaffold/en/commands/dw-new-project.md +1 -1
- package/scaffold/en/commands/dw-plan-checker.md +144 -0
- package/scaffold/en/commands/dw-quick.md +30 -12
- package/scaffold/en/commands/dw-redesign-ui.md +5 -9
- package/scaffold/en/commands/dw-refactoring-analysis.md +6 -5
- package/scaffold/en/commands/dw-resume.md +10 -8
- package/scaffold/en/commands/dw-run-plan.md +14 -20
- package/scaffold/en/commands/dw-run-task.md +5 -4
- package/scaffold/en/commands/dw-update.md +3 -1
- package/scaffold/en/templates/idea-onepager.md +1 -1
- package/scaffold/pt-br/commands/dw-analyze-project.md +6 -11
- package/scaffold/pt-br/commands/dw-autopilot.md +6 -13
- package/scaffold/pt-br/commands/dw-brainstorm.md +1 -1
- package/scaffold/pt-br/commands/dw-code-review.md +6 -5
- package/scaffold/pt-br/commands/dw-create-prd.md +5 -4
- package/scaffold/pt-br/commands/dw-create-techspec.md +5 -4
- package/scaffold/pt-br/commands/dw-execute-phase.md +149 -0
- package/scaffold/pt-br/commands/dw-help.md +5 -2
- package/scaffold/pt-br/commands/dw-intel.md +98 -29
- package/scaffold/pt-br/commands/dw-map-codebase.md +125 -0
- package/scaffold/pt-br/commands/dw-new-project.md +1 -1
- package/scaffold/pt-br/commands/dw-plan-checker.md +144 -0
- package/scaffold/pt-br/commands/dw-quick.md +30 -12
- package/scaffold/pt-br/commands/dw-redesign-ui.md +5 -9
- package/scaffold/pt-br/commands/dw-refactoring-analysis.md +6 -5
- package/scaffold/pt-br/commands/dw-resume.md +10 -8
- package/scaffold/pt-br/commands/dw-run-plan.md +16 -22
- package/scaffold/pt-br/commands/dw-run-task.md +5 -4
- package/scaffold/pt-br/commands/dw-update.md +3 -1
- package/scaffold/pt-br/templates/idea-onepager.md +1 -1
- package/scaffold/skills/dw-codebase-intel/SKILL.md +101 -0
- package/scaffold/skills/dw-codebase-intel/agents/intel-updater.md +318 -0
- package/scaffold/skills/dw-codebase-intel/references/incremental-update.md +79 -0
- package/scaffold/skills/dw-codebase-intel/references/intel-format.md +208 -0
- package/scaffold/skills/dw-codebase-intel/references/query-patterns.md +148 -0
- package/scaffold/skills/dw-execute-phase/SKILL.md +133 -0
- package/scaffold/skills/dw-execute-phase/agents/executor.md +264 -0
- package/scaffold/skills/dw-execute-phase/agents/plan-checker.md +215 -0
- package/scaffold/skills/dw-execute-phase/references/atomic-commits.md +143 -0
- package/scaffold/skills/dw-execute-phase/references/plan-verification.md +156 -0
- package/scaffold/skills/dw-execute-phase/references/wave-coordination.md +102 -0
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
<system_instructions>
|
|
2
|
-
Voce e um assistente de inteligencia do codebase. Este comando
|
|
2
|
+
Voce e um assistente de inteligencia do codebase. Este comando responde perguntas sobre o projeto usando o indice queryable em `.dw/intel/` (construido pelo `/dw-map-codebase`) e as convencoes human-readable em `.dw/rules/` (construidas pelo `/dw-analyze-project`).
|
|
3
3
|
|
|
4
4
|
<critical>Este comando e somente leitura. NAO modifique codigo ou arquivos do projeto.</critical>
|
|
5
|
-
<critical>Sempre cite as fontes
|
|
5
|
+
<critical>Sempre cite as fontes (caminho do arquivo, numero da linha quando aplicavel).</critical>
|
|
6
|
+
<critical>Se o indice esta defasado (>7 dias) ou ausente, suba o aviso para o usuario — NAO caia em fallback silencioso sem sinalizar.</critical>
|
|
6
7
|
|
|
7
8
|
## Quando Usar
|
|
8
|
-
|
|
9
|
+
|
|
10
|
+
- Use para entender como algo funciona no projeto (fluxo de auth, modelo de dados, superficie de rotas)
|
|
9
11
|
- Use para encontrar padroes, convencoes ou decisoes arquiteturais
|
|
10
12
|
- Use para verificar se algo ja existe antes de implementar
|
|
11
13
|
- NAO use para implementar mudancas (use `/dw-quick` ou `/dw-run-task`)
|
|
12
14
|
|
|
13
15
|
## Posicao no Pipeline
|
|
14
|
-
|
|
16
|
+
|
|
17
|
+
**Antecessor:** `/dw-map-codebase` (gera `.dw/intel/`) e/ou `/dw-analyze-project` (gera `.dw/rules/`) | **Sucessor:** qualquer comando `dw-*` que precisa agir sobre o intel
|
|
18
|
+
|
|
19
|
+
## Skills Complementares
|
|
20
|
+
|
|
21
|
+
| Skill | Gatilho |
|
|
22
|
+
|-------|---------|
|
|
23
|
+
| `dw-codebase-intel` | **SEMPRE** quando `.dw/intel/` existir. Leia `references/query-patterns.md` para mapear a query do usuario para o arquivo certo (stack/files/apis/deps/arch). |
|
|
15
24
|
|
|
16
25
|
## Variaveis de Entrada
|
|
17
26
|
|
|
@@ -19,42 +28,102 @@ Voce e um assistente de inteligencia do codebase. Este comando existe para respo
|
|
|
19
28
|
|----------|-----------|---------|
|
|
20
29
|
| `{{QUERY}}` | Pergunta sobre o codebase | "como funciona a autenticacao?" |
|
|
21
30
|
|
|
31
|
+
## Localizacao dos Arquivos
|
|
32
|
+
|
|
33
|
+
- Intel machine-readable (consulta primeira): `.dw/intel/{stack,files,apis,deps}.json` + `.dw/intel/arch.md`
|
|
34
|
+
- Metadados de refresh: `.dw/intel/.last-refresh.json`
|
|
35
|
+
- Rules human-readable (consulta segunda): `.dw/rules/{index,<modulo>,integrations}.md`
|
|
36
|
+
- Grep direto fallback (consulta por ultimo): os arquivos source do projeto
|
|
37
|
+
|
|
22
38
|
## Comportamento Obrigatorio
|
|
23
39
|
|
|
24
|
-
1.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
40
|
+
### 1. Verificacao de indice defasado
|
|
41
|
+
|
|
42
|
+
Antes de responder, leia `.dw/intel/.last-refresh.json` se existir:
|
|
43
|
+
|
|
44
|
+
- Se `updated_at` e mais de 7 dias atras → prefixe a resposta com: `⚠ Indice atualizado em YYYY-MM-DD (X dias atras). Considere rodar /dw-map-codebase para refresh.`
|
|
45
|
+
- Se `.dw/intel/` existe mas `.last-refresh.json` falta → prefixe com: `⚠ Sem metadado de refresh; o indice pode estar defasado.`
|
|
46
|
+
- Se `.dw/intel/` nao existe → diga ao usuario: `Sem .dw/intel/. Caindo para .dw/rules/ + grep. Para respostas mais ricas, rode /dw-map-codebase.`
|
|
47
|
+
|
|
48
|
+
Nao recuse responder — devolva a melhor info disponivel.
|
|
49
|
+
|
|
50
|
+
### 2. Deteccao do shape da query
|
|
51
|
+
|
|
52
|
+
Classifique o `{{QUERY}}` em uma das formas documentadas em `.agents/skills/dw-codebase-intel/references/query-patterns.md`:
|
|
53
|
+
|
|
54
|
+
- **where-is** — primario: `files.json`, secundario: `apis.json`
|
|
55
|
+
- **what-uses** — primario: `deps.json` (libs) ou `files.json` (simbolos)
|
|
56
|
+
- **architecture-of** — primario: `arch.md`, secundario: `stack.json`
|
|
57
|
+
- **stack** — primario: `stack.json`
|
|
58
|
+
- **dep-info** — primario: `deps.json`
|
|
59
|
+
- **api-list** — primario: `apis.json`
|
|
60
|
+
- **find-export** — primario: `files.json` (busca em arrays `exports`)
|
|
61
|
+
- **convention** — primario: `arch.md`, secundario: `.dw/rules/`
|
|
62
|
+
|
|
63
|
+
### 3. Execucao da busca
|
|
64
|
+
|
|
65
|
+
Leia o arquivo primario e busque matches (case-insensitive). Ranqueie:
|
|
31
66
|
|
|
32
|
-
|
|
67
|
+
1. Match exato de simbolo/path
|
|
68
|
+
2. Match substring nas keys
|
|
69
|
+
3. Match substring nas descricoes
|
|
33
70
|
|
|
34
|
-
|
|
71
|
+
Se primario retorna zero matches, caia para secundario, depois grep.
|
|
35
72
|
|
|
36
|
-
|
|
37
|
-
- Delegue para `/gsd-intel "{{QUERY}}"` para consulta indexada
|
|
38
|
-
- O GSD retorna informacoes de: architectural assumptions, decision spaces, behavioral references, UI patterns
|
|
39
|
-
- Enriqueca com dados de `.dw/rules/` quando relevante
|
|
73
|
+
### 4. Cross-reference
|
|
40
74
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
75
|
+
Para respostas mais ricas, cruze o match primario com intel relacionado:
|
|
76
|
+
|
|
77
|
+
- Um arquivo de `files.json` → pesquise suas dependencias em `deps.json`
|
|
78
|
+
- Uma API de `apis.json` → resolva o handler via `apis.json[entry].file`, depois liste os exports daquele arquivo em `files.json`
|
|
79
|
+
- Uma dep de `deps.json` → liste `used_by` e olhe cada entry em `files.json` para contexto
|
|
80
|
+
|
|
81
|
+
### 5. Sintetize e cite
|
|
82
|
+
|
|
83
|
+
Nao despeje JSON. Escreva resposta de 3-8 linhas que:
|
|
84
|
+
|
|
85
|
+
- Aborda a pergunta direto
|
|
86
|
+
- Cita caminhos em backticks
|
|
87
|
+
- Inclui linhas quando conhecidas (leia o arquivo brevemente se preciso)
|
|
88
|
+
- Menciona conceitos relacionados que o usuario pode querer seguir
|
|
45
89
|
|
|
46
90
|
## Formato de Resposta
|
|
47
91
|
|
|
48
|
-
|
|
92
|
+
```markdown
|
|
93
|
+
[⚠ aviso de indice defasado se aplicavel]
|
|
94
|
+
|
|
95
|
+
## Resposta: [topico]
|
|
96
|
+
|
|
97
|
+
[Resposta estruturada, 3-8 linhas, prosa. Cite caminhos inline.]
|
|
98
|
+
|
|
99
|
+
## Fontes
|
|
100
|
+
|
|
101
|
+
- `.dw/intel/files.json` — entries de `<arquivo_a>`, `<arquivo_b>`
|
|
102
|
+
- `.dw/intel/apis.json` — `<endpoint>`
|
|
103
|
+
- `.dw/rules/<modulo>.md` — convencao "<nome>"
|
|
104
|
+
- `<src/path/file.ts>:<linha>` — referencia direta de codigo (so se o arquivo foi aberto)
|
|
105
|
+
|
|
106
|
+
## Comandos Relacionados
|
|
107
|
+
|
|
108
|
+
- `/<dw-cmd>` — [por que util como proximo passo]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Heuristicas
|
|
112
|
+
|
|
113
|
+
- **Prefira `.dw/intel/` ao grep.** E curado e mais rapido. Grep so quando intel esta ausente ou defasado.
|
|
114
|
+
- **Cite caminhos, nao conteudos.** O usuario pode `Read` se precisar do source.
|
|
115
|
+
- **Nao invente.** Se `.dw/intel/` nao tem a resposta e grep retorna nada, diga. Sugira `/dw-map-codebase` se `.dw/intel/` esta faltando.
|
|
116
|
+
- **Combine intel + rules.** Uma query sobre "como nomeamos arquivos de service?" deve puxar de `arch.md` (intel) E `.dw/rules/<modulo>.md` (convencoes do projeto). Os dois se complementam.
|
|
117
|
+
|
|
118
|
+
## Regras Criticas
|
|
49
119
|
|
|
50
|
-
|
|
120
|
+
- <critical>Somente leitura. NUNCA edite codigo ou arquivos do projeto deste comando.</critical>
|
|
121
|
+
- <critical>Cite caminhos. Toda afirmacao sobre o codebase tem que referenciar um arquivo real.</critical>
|
|
122
|
+
- <critical>Suba avisos de indice defasado de forma visivel — nao enterre no rodape.</critical>
|
|
123
|
+
- NAO inclua secrets/tokens/credenciais em nenhuma resposta (eles nao deveriam estar em `.dw/intel/` em primeiro lugar, mas defesa em profundidade).
|
|
51
124
|
|
|
52
|
-
|
|
53
|
-
- `.planning/intel/[arquivo].md` — [secao relevante]
|
|
54
|
-
- `.dw/rules/[arquivo].md` — [convencao referenciada]
|
|
55
|
-
- `src/[caminho]:[linha]` — [referencia de codigo]
|
|
125
|
+
## Inspirado em
|
|
56
126
|
|
|
57
|
-
|
|
58
|
-
- [Sugestao de comando dw- para agir com base na informacao]
|
|
127
|
+
O mapeamento de query-patterns (where-is / what-uses / architecture-of / etc.) e o schema JSON do intel sao adaptados do projeto [`get-shit-done-cc`](https://github.com/gsd-build/get-shit-done) (licenca MIT). Convencoes de path mudaram de `.planning/intel/` para `.dw/intel/`.
|
|
59
128
|
|
|
60
129
|
</system_instructions>
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
Voce e um orquestrador de inteligencia de codebase. Sua funcao e spawnar o agente `dw-intel-updater` (da skill bundled `dw-codebase-intel`) para ler os arquivos source do projeto e escrever um indice queryable em `.dw/intel/`. Outros comandos do dev-workflow (`/dw-intel`, `/dw-create-prd`, `/dw-create-techspec`, `/dw-code-review`, etc.) leem esse indice em vez de fazer exploracao cara do codebase em cada invocacao.
|
|
3
|
+
|
|
4
|
+
<critical>Este comando escreve so em `.dw/intel/`. Nunca modifica codigo da aplicacao.</critical>
|
|
5
|
+
<critical>Use o agente `dw-intel-updater` — NAO inline a logica de geracao do intel neste comando. O agente possui o contrato do schema.</critical>
|
|
6
|
+
|
|
7
|
+
## Quando Usar
|
|
8
|
+
|
|
9
|
+
- **Primeira analise**: projeto fresco sem `.dw/intel/`. Roda full scan.
|
|
10
|
+
- **Refresh incremental**: depois de uma branch / PR grande aterrissar e arquivos source mudaram. Roda com `--files <paths>` para atualizar so os entries afetados.
|
|
11
|
+
- **Refresh agendado**: a cada 1-4 semanas para manter o indice fresco; a heuristica de defasagem em `/dw-intel` avisa quando >7 dias.
|
|
12
|
+
- **Apos mudancas de dependencia**: `/dw-deps-audit --execute` atualiza lockfiles e pode tocar deps. Re-rode `/dw-map-codebase` depois para refrescar `deps.json`.
|
|
13
|
+
- NAO use para projetos greenfield sem source ainda — `/dw-new-project` ja semeia `.dw/rules/index.md` minimo; nao tem o que mapear.
|
|
14
|
+
|
|
15
|
+
## Posicao no Pipeline
|
|
16
|
+
|
|
17
|
+
**Antecessor:** qualquer projeto com source (rode apos `/dw-new-project` para greenfield, ou como primeiro comando em repo brownfield) | **Sucessor:** `/dw-intel "<query>"` para perguntas ad-hoc, ou `/dw-analyze-project` para enriquecer `.dw/rules/` com convencoes/anti-patterns derivados do intel
|
|
18
|
+
|
|
19
|
+
## Skills Complementares
|
|
20
|
+
|
|
21
|
+
| Skill | Gatilho |
|
|
22
|
+
|-------|---------|
|
|
23
|
+
| `dw-codebase-intel` | **SEMPRE** — fonte do agente `dw-intel-updater` e dos references (`intel-format.md`, `incremental-update.md`, `query-patterns.md`) |
|
|
24
|
+
|
|
25
|
+
## Variaveis de Entrada
|
|
26
|
+
|
|
27
|
+
| Variavel | Descricao | Exemplo |
|
|
28
|
+
|----------|-----------|---------|
|
|
29
|
+
| `{{FOCUS}}` | Opcional. `full` (default sem `--files`), `partial` (quando `--files` setado) | `partial` |
|
|
30
|
+
| `{{FILES}}` | Opcional. Lista space-separated de paths para refrescar (so com `--files`) | `src/auth/index.ts src/routes/auth.ts` |
|
|
31
|
+
| `{{SINCE}}` | Opcional alternativo a `--files`. Git ref para derivar arquivos mudados | `HEAD~5` ou `origin/main` |
|
|
32
|
+
|
|
33
|
+
## Flags
|
|
34
|
+
|
|
35
|
+
| Flag | Comportamento |
|
|
36
|
+
|------|---------------|
|
|
37
|
+
| (default) | Full scan se `.dw/intel/` faltando OU `.last-refresh.json` >30 dias; senao pergunta full/skip |
|
|
38
|
+
| `--full` | Forca full scan independente do estado |
|
|
39
|
+
| `--files <a> <b> ...` | Update parcial so para os paths listados |
|
|
40
|
+
| `--since <gitref>` | Update parcial para arquivos mudados desde `<gitref>` (usa `git diff --name-only <gitref>...HEAD`) |
|
|
41
|
+
|
|
42
|
+
## Localizacao dos Arquivos
|
|
43
|
+
|
|
44
|
+
- Indice de saida: `.dw/intel/{stack,files,apis,deps}.json` + `.dw/intel/arch.md`
|
|
45
|
+
- Metadados de refresh: `.dw/intel/.last-refresh.json`
|
|
46
|
+
- Fonte da skill: `.agents/skills/dw-codebase-intel/{SKILL.md, agents/intel-updater.md, references/*.md}`
|
|
47
|
+
|
|
48
|
+
## Comportamento Obrigatorio
|
|
49
|
+
|
|
50
|
+
### 1. Deteccao de estado
|
|
51
|
+
|
|
52
|
+
- Cheque `.dw/intel/.last-refresh.json` se existir.
|
|
53
|
+
- Compute estado: greenfield (sem source) → aborta com dica; brownfield sem `.dw/intel/` → primeira analise; com `.dw/intel/` existente → decida path de refresh.
|
|
54
|
+
|
|
55
|
+
### 2. Selecao de modo
|
|
56
|
+
|
|
57
|
+
| Condicao | Modo |
|
|
58
|
+
|----------|------|
|
|
59
|
+
| Sem `.dw/intel/` | full |
|
|
60
|
+
| Flag `--full` | full |
|
|
61
|
+
| Flag `--files <list>` | partial com lista explicita |
|
|
62
|
+
| Flag `--since <ref>` | partial com lista derivada de `git diff --name-only <ref>...HEAD` |
|
|
63
|
+
| `.last-refresh.json` >30 dias | prompt usuario: full / partial / skip |
|
|
64
|
+
| Caso contrario | partial desde ultimo refresh, derivado de `git log --name-only --since=<last_refresh_date>` |
|
|
65
|
+
|
|
66
|
+
### 3. Spawnar `dw-intel-updater`
|
|
67
|
+
|
|
68
|
+
Construa o spawn prompt do agente. Campos obrigatorios:
|
|
69
|
+
|
|
70
|
+
- `focus: full` ou `focus: partial --files <paths space-separated>`
|
|
71
|
+
- `project_root: <path absoluto>`
|
|
72
|
+
- Bloco `required_reading:` opcional listando SKILL.md e references (o agente le esses para contexto)
|
|
73
|
+
|
|
74
|
+
Spawne o agente e aguarde conclusao.
|
|
75
|
+
|
|
76
|
+
### 4. Verificar saida
|
|
77
|
+
|
|
78
|
+
Apos o agente retornar:
|
|
79
|
+
|
|
80
|
+
- Verifique `.dw/intel/{stack,files,apis,deps}.json` existem e parseiam como JSON valido.
|
|
81
|
+
- Verifique `.dw/intel/arch.md` existe.
|
|
82
|
+
- Verifique `.dw/intel/.last-refresh.json` foi escrito e os hashes batem com os arquivos recem-escritos.
|
|
83
|
+
- Se algum falhar, reporte a falha com a saida do agente e aborte com status `MAP-FAILED`.
|
|
84
|
+
|
|
85
|
+
### 5. Relatar
|
|
86
|
+
|
|
87
|
+
Imprima resumo tight:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
## Mapa do Codebase Refrescado
|
|
91
|
+
|
|
92
|
+
Modo: full | partial (<N> arquivos)
|
|
93
|
+
Arquivos escritos:
|
|
94
|
+
- .dw/intel/stack.json (<bytes>) — <N> linguagens, <N> frameworks
|
|
95
|
+
- .dw/intel/files.json (<bytes>) — <N> entries
|
|
96
|
+
- .dw/intel/apis.json (<bytes>) — <N> endpoints
|
|
97
|
+
- .dw/intel/deps.json (<bytes>) — <N> deps (<producao>/<dev>)
|
|
98
|
+
- .dw/intel/arch.md (<linhas>) — <nome do padrao>
|
|
99
|
+
- .dw/intel/.last-refresh.json
|
|
100
|
+
|
|
101
|
+
Proximos passos:
|
|
102
|
+
- Consultar o indice: /dw-intel "<pergunta>"
|
|
103
|
+
- Construir rules legiveis: /dw-analyze-project
|
|
104
|
+
- Auditar deps: /dw-deps-audit --scan-only
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Regras Criticas
|
|
108
|
+
|
|
109
|
+
- <critical>O agente possui o schema. Se schema precisa mudar, atualize o arquivo do agente em `.agents/skills/dw-codebase-intel/` primeiro; este comando so orquestra.</critical>
|
|
110
|
+
- <critical>NUNCA escreva `.dw/intel/` manualmente deste comando — sempre via o agente.</critical>
|
|
111
|
+
- <critical>Escrita atomica: o agente escreve em `.tmp` e renomeia. Se write parcial, o indice anterior fica preservado.</critical>
|
|
112
|
+
- NAO inclua secrets em saida nenhuma. A lista de forbidden-files do agente (`.env*`, `*.key`, `*.pem`, `id_rsa`, etc.) e enforced; se algo vazar, trate como bug CRITICAL.
|
|
113
|
+
|
|
114
|
+
## Tratamento de Erros
|
|
115
|
+
|
|
116
|
+
- Agente falha → print stdout/stderr, marca `.dw/intel/` como last-known-good (preservado por atomic write), exit nao-zero.
|
|
117
|
+
- Sem source no escopo → aborta: `"Sem arquivos source detectados (TS/JS/Python/C#/Rust). Rode /dw-new-project primeiro ou cheque o project root."`
|
|
118
|
+
- `git diff --since` falha (nao e git repo, ref ruim) → cai para full scan com aviso.
|
|
119
|
+
- Arquivo source referenciado em `.dw/intel/` ja nao existe → o agente remove o entry no proximo update parcial.
|
|
120
|
+
|
|
121
|
+
## Inspirado em
|
|
122
|
+
|
|
123
|
+
`dw-map-codebase` e dev-workflow-native. O padrao de orquestracao (spawn agente, espera, verifica, relata) e as convencoes de escopo de arquivos sao adaptados de [`get-shit-done-cc`](https://github.com/gsd-build/get-shit-done) (`/gsd-map-codebase` + `gsd-intel-updater`) por gsd-build (MIT). Especificos do dev-workflow: escreve em `.dw/intel/` (nao `.planning/intel/`), usa agente unico (intel-updater) em vez de varios mappers paralelos (a analise human-readable vive separada em `/dw-analyze-project`), e integra com `--since <gitref>` para updates parciais git-aware.
|
|
124
|
+
|
|
125
|
+
</system_instructions>
|
|
@@ -188,7 +188,7 @@ Adapte o `dev:db:migrate` por ORM (Prisma: `pnpm prisma migrate dev`; Alembic: `
|
|
|
188
188
|
|
|
189
189
|
Por stack, anexe ao que `create-*` gerou:
|
|
190
190
|
- `.gitignore` deve excluir `.env`.
|
|
191
|
-
-
|
|
191
|
+
- O diretorio `.dw/` e preservado entre updates pelo `/dw-update` (rules, spec, intel sao dados do usuario).
|
|
192
192
|
- `.dockerignore`: exclua `.git`, `node_modules`, `.dw`, `.agents`, `tests`, `*.md` (em imagens prod).
|
|
193
193
|
|
|
194
194
|
#### 3.7 Gerar GitHub Actions CI
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
Voce e um orquestrador de verificacao de plano. Sua funcao e spawnar o agente `dw-plan-checker` (da skill bundled `dw-execute-phase`) para verificar que o `tasks.md` de uma fase vai atingir o goal do PRD — ANTES de qualquer codigo ser tocado.
|
|
3
|
+
|
|
4
|
+
Este e um gate manual standalone. `/dw-execute-phase` e `/dw-autopilot` invocam o mesmo agente automaticamente; este comando deixa voce rodar so o gate para inspecionar a qualidade do plano sem se comprometer com execucao.
|
|
5
|
+
|
|
6
|
+
<critical>Este comando e somente leitura. Plan-checker NUNCA modifica arquivos.</critical>
|
|
7
|
+
<critical>Saida em um de tres veredictos: PASS, REVISE, BLOCK. Sem meio-termo.</critical>
|
|
8
|
+
|
|
9
|
+
## Quando Usar
|
|
10
|
+
|
|
11
|
+
- Antes de invocar `/dw-execute-phase` se voce quer inspecionar a qualidade do plano primeiro
|
|
12
|
+
- Apos uma execucao parcial para verificar se as tasks restantes ainda fazem sentido
|
|
13
|
+
- Apos edits manuais em `tasks.md` (sempre re-verifique antes de re-executar)
|
|
14
|
+
- Durante revisoes do `/dw-create-tasks` para confirmar que o planner enderecou issues REVISE anteriores
|
|
15
|
+
- NAO para verificar correcao de implementacao (use `/dw-run-qa`)
|
|
16
|
+
- NAO para review de qualidade de codigo (use `/dw-code-review`)
|
|
17
|
+
|
|
18
|
+
## Posicao no Pipeline
|
|
19
|
+
|
|
20
|
+
**Antecessor:** `/dw-create-tasks` (ou edits manuais em `tasks.md`) | **Sucessor:** `/dw-execute-phase` se PASS; `/dw-create-tasks --revise` se REVISE; intervencao manual se BLOCK
|
|
21
|
+
|
|
22
|
+
## Skills Complementares
|
|
23
|
+
|
|
24
|
+
| Skill | Gatilho |
|
|
25
|
+
|-------|---------|
|
|
26
|
+
| `dw-execute-phase` | **SEMPRE** — fonte do agente `dw-plan-checker` e `references/plan-verification.md` |
|
|
27
|
+
| `dw-codebase-intel` | Opcional — agente le `.dw/intel/` para verificar plano contra fatos reais do codebase |
|
|
28
|
+
|
|
29
|
+
## Variaveis de Entrada
|
|
30
|
+
|
|
31
|
+
| Variavel | Descricao | Exemplo |
|
|
32
|
+
|----------|-----------|---------|
|
|
33
|
+
| `{{PRD_PATH}}` | Caminho da pasta do PRD com `tasks.md` | `.dw/spec/prd-checkout-v2` |
|
|
34
|
+
|
|
35
|
+
## Localizacao dos Arquivos
|
|
36
|
+
|
|
37
|
+
- Inputs (somente leitura): `{{PRD_PATH}}/{prd.md, techspec.md, tasks.md, <NN>_task.md}`, `.dw/rules/*.md`, `.dw/intel/*` (se existir), `./CLAUDE.md`
|
|
38
|
+
- Audit log (append-only): `.dw/audit/plan-checks-<YYYY-MM-DD>.log` (registra cada veredito para audit trail do `--skip-check`)
|
|
39
|
+
|
|
40
|
+
## Comportamento Obrigatorio
|
|
41
|
+
|
|
42
|
+
### 1. Carregar contexto
|
|
43
|
+
|
|
44
|
+
Verifique que o caminho do PRD existe e contem `tasks.md`. Leia `prd.md`, `techspec.md`, `tasks.md`, e quaisquer arquivos `<NN>_task.md` referenciados.
|
|
45
|
+
|
|
46
|
+
### 2. Spawnar o agente
|
|
47
|
+
|
|
48
|
+
Spawne agente `dw-plan-checker` com:
|
|
49
|
+
|
|
50
|
+
- `prd_path: {{PRD_PATH}}`
|
|
51
|
+
- Bloco `required_reading:` citando `.agents/skills/dw-execute-phase/SKILL.md` e `.agents/skills/dw-execute-phase/references/plan-verification.md`
|
|
52
|
+
|
|
53
|
+
O agente roda a verificacao de 6 dimensoes:
|
|
54
|
+
|
|
55
|
+
1. **Requirement Coverage** — todo RF-XX tem uma task
|
|
56
|
+
2. **Task Completeness** — files / action / verification / done presentes
|
|
57
|
+
3. **Dependency Soundness** — sem ciclos, sem refs quebradas, waves ≤ 8 de largura
|
|
58
|
+
4. **Artifact Wiring** — todo artefato produzido e consumido downstream ou referenciado no PRD
|
|
59
|
+
5. **Context Budget** — ≤ 12 tasks, ≤ 30 arquivos agregados
|
|
60
|
+
6. **Constraint Compliance** — sem violacoes de `.dw/rules/`, CONTEXT.md `## Decisions`, CLAUDE.md
|
|
61
|
+
|
|
62
|
+
### 3. Processar veredito
|
|
63
|
+
|
|
64
|
+
**PASS:**
|
|
65
|
+
|
|
66
|
+
- Append em `.dw/audit/plan-checks-<YYYY-MM-DD>.log`:
|
|
67
|
+
```
|
|
68
|
+
<ISO-8601> PASS {{PRD_PATH}} <task_count> tasks, <wave_count> waves
|
|
69
|
+
```
|
|
70
|
+
- Imprime: `Verificacao do plano PASS — siga para /dw-execute-phase {{PRD_PATH}}`
|
|
71
|
+
|
|
72
|
+
**REVISE:**
|
|
73
|
+
|
|
74
|
+
- Append em audit log com veredito `REVISE`
|
|
75
|
+
- Imprime os issues por dimensao
|
|
76
|
+
- Sugere: `/dw-create-tasks --revise --issues <arquivo-de-issues-gerado>` OU edits manuais
|
|
77
|
+
- Exit status: `PLAN-CHECK-REVISE`
|
|
78
|
+
|
|
79
|
+
**BLOCK:**
|
|
80
|
+
|
|
81
|
+
- Append em audit log com veredito `BLOCK`
|
|
82
|
+
- Imprime os issues conflitantes com file:line
|
|
83
|
+
- Sugere: resolver o conflito de locked-decision (update CONTEXT.md, OU mudar o plano para honrar)
|
|
84
|
+
- Exit status: `PLAN-CHECK-BLOCK`
|
|
85
|
+
|
|
86
|
+
### 4. Formato de saida
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
# Verificacao do Plano — <prd-slug>
|
|
90
|
+
|
|
91
|
+
**Veredito:** PASS | REVISE | BLOCK
|
|
92
|
+
**PRD:** {{PRD_PATH}}
|
|
93
|
+
**Arquivo tasks:** {{PRD_PATH}}/tasks.md (<N> tasks em <M> waves)
|
|
94
|
+
**Verificado em:** <ISO-8601>
|
|
95
|
+
|
|
96
|
+
## Dimensoes
|
|
97
|
+
|
|
98
|
+
| # | Dimensao | Status | Issues |
|
|
99
|
+
|---|----------|--------|--------|
|
|
100
|
+
| 1 | Requirement Coverage | ✓ / ✗ | <count> |
|
|
101
|
+
| 2 | Task Completeness | ✓ / ✗ | <count> |
|
|
102
|
+
| 3 | Dependency Soundness | ✓ / ✗ | <count> |
|
|
103
|
+
| 4 | Artifact Wiring | ✓ / ✗ | <count> |
|
|
104
|
+
| 5 | Context Budget | ✓ / ✗ | <count> |
|
|
105
|
+
| 6 | Constraint Compliance | ✓ / ✗ | <count> |
|
|
106
|
+
|
|
107
|
+
## Issues (so REVISE/BLOCK)
|
|
108
|
+
|
|
109
|
+
[issues detalhados por dimensao; cite file:line]
|
|
110
|
+
|
|
111
|
+
## Recomendacao
|
|
112
|
+
|
|
113
|
+
- PASS → `/dw-execute-phase {{PRD_PATH}}`
|
|
114
|
+
- REVISE → `/dw-create-tasks --revise` e rerode este comando
|
|
115
|
+
- BLOCK → resolve [lista de conflitos de locked-decision] depois re-planeje
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Regras Criticas
|
|
119
|
+
|
|
120
|
+
- <critical>O agente possui a logica de verificacao. NUNCA inline checks neste comando.</critical>
|
|
121
|
+
- <critical>Somente leitura. Plan-checker NAO PODE modificar nenhum arquivo do projeto.</critical>
|
|
122
|
+
- <critical>Audit log e append-only. NUNCA edite entries anteriores.</critical>
|
|
123
|
+
- <critical>BLOCK e reservado para conflitos hard (locked decisions, ciclos). REVISE e para issues fixaveis.</critical>
|
|
124
|
+
- NAO auto-dispare `/dw-create-tasks` em REVISE. O usuario decide se re-roda.
|
|
125
|
+
|
|
126
|
+
## Tratamento de Erros
|
|
127
|
+
|
|
128
|
+
- `tasks.md` faltando → exit `PLAN-CHECK-FAILED` com dica: "Rode `/dw-create-tasks {{PRD_PATH}}` primeiro"
|
|
129
|
+
- `prd.md` faltando → exit `PLAN-CHECK-FAILED`: "PRD nao encontrado; o caminho esta correto?"
|
|
130
|
+
- Agente timeout (>5 min) → exit `PLAN-CHECK-TIMEOUT`: "Plano grande demais; considere split via `/dw-create-tasks --split`"
|
|
131
|
+
- Ciclo detectado em dependencias → BLOCK com o caminho do ciclo; NAO tente quebrar automaticamente
|
|
132
|
+
|
|
133
|
+
## Integracao com Outros dw-* Commands
|
|
134
|
+
|
|
135
|
+
- **`/dw-create-tasks`** — antecessor; produz o `tasks.md` que este comando verifica
|
|
136
|
+
- **`/dw-execute-phase`** — embrulha este comando como gate antes de execucao
|
|
137
|
+
- **`/dw-autopilot`** — embrulha `/dw-create-tasks` → este comando → `/dw-execute-phase` com gates hard entre
|
|
138
|
+
- **`/dw-resume`** — ao resumir apos checkpoint, este comando verifica que tasks restantes ainda satisfazem o goal
|
|
139
|
+
|
|
140
|
+
## Inspirado em
|
|
141
|
+
|
|
142
|
+
`dw-plan-checker` e dev-workflow-native. O protocolo de verificacao goal-backward em 6 dimensoes e adaptado de [`get-shit-done-cc`](https://github.com/gsd-build/get-shit-done) (`/gsd-plan-phase`, `gsd-plan-checker`) por gsd-build (licenca MIT). Especificos do dev-workflow: verifica `tasks.md` (nao PLAN.md do GSD), usa vocabulario PRD/TechSpec/Tasks do dev-workflow, audit log para trail do `--skip-check`.
|
|
143
|
+
|
|
144
|
+
</system_instructions>
|
|
@@ -38,26 +38,44 @@ Voce e um executor de tasks rapidas. Este comando existe para implementar mudanc
|
|
|
38
38
|
8. Invoque `dw-verify` e inclua o VERIFICATION REPORT no output antes de commitar. Sem PASS, NAO commit.
|
|
39
39
|
9. Crie commit atomico semantico com a mudanca
|
|
40
40
|
|
|
41
|
-
##
|
|
41
|
+
## Tracking de Task
|
|
42
42
|
|
|
43
|
-
<critical>
|
|
43
|
+
<critical>Toda execução de `/dw-quick` escreve um entry de tracking em `.dw/spec/quick/<slug>.md` para a mudança ser descoberta depois.</critical>
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
- Delegue para `/gsd-quick` para tracking em `.planning/quick/`
|
|
47
|
-
- A task fica registrada no historico para consulta futura via `/dw-intel`
|
|
45
|
+
Formato de tracking (um arquivo por quick task):
|
|
48
46
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
-
|
|
47
|
+
```markdown
|
|
48
|
+
---
|
|
49
|
+
type: quick-task
|
|
50
|
+
schema_version: "1.0"
|
|
51
|
+
status: COMPLETE | PARTIAL | ABORTED
|
|
52
|
+
date: YYYY-MM-DD
|
|
53
|
+
files_touched: [...]
|
|
54
|
+
commit: <SHA>
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
# Quick Task — <slug>
|
|
58
|
+
|
|
59
|
+
## Descrição
|
|
60
|
+
<descrição de uma linha do prompt do usuário>
|
|
61
|
+
|
|
62
|
+
## Arquivos
|
|
63
|
+
<lista>
|
|
64
|
+
|
|
65
|
+
## Verificação
|
|
66
|
+
<excerto do report do dw-verify>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Queries subsequentes do `/dw-intel` surfaceam essas entries via index de arquivos.
|
|
52
70
|
|
|
53
71
|
## Inteligencia do Codebase
|
|
54
72
|
|
|
55
|
-
Se `.
|
|
56
|
-
- Execute internamente: `/
|
|
73
|
+
Se `.dw/intel/` existir, consulte antes de implementar:
|
|
74
|
+
- Execute internamente: `/dw-intel "implementation patterns in [target area]"`
|
|
57
75
|
- Siga os padroes encontrados
|
|
58
76
|
|
|
59
|
-
Se `.
|
|
60
|
-
- Use apenas `.dw/rules/` como contexto
|
|
77
|
+
Se `.dw/intel/` NAO existir:
|
|
78
|
+
- Use apenas `.dw/rules/` como contexto (ou grep direto se `.dw/rules/` também faltar)
|
|
61
79
|
|
|
62
80
|
## Formato de Resposta
|
|
63
81
|
|
|
@@ -64,17 +64,13 @@ Utilize ferramentas de diagnóstico conforme o framework do projeto:
|
|
|
64
64
|
7. **VALIDAR**: capture estado depois em AMBAS as resoluções (mobile e desktop), compare antes/depois, verifique acessibilidade (WCAG 2.2 via `ui-ux-pro-max`), rode react-doctor `--diff` se React. Se `webapp-testing` disponível, capture screenshots em viewport 375px (mobile) e 1440px (desktop).
|
|
65
65
|
8. **PERSISTIR CONTRATO**: se o usuário aprovou uma direção, gere `design-contract.md` no diretório do PRD (`.dw/spec/prd-[nome]/design-contract.md`) com: direção aprovada, paleta de cores, par tipográfico, regras de layout, regras de acessibilidade e regras de componentes. Este contrato será lido por `dw-run-task` e `dw-run-plan` para garantir consistência visual.
|
|
66
66
|
|
|
67
|
-
##
|
|
67
|
+
## Inteligência do Codebase
|
|
68
68
|
|
|
69
|
-
<critical>
|
|
69
|
+
<critical>Se `.dw/intel/` existir, a consulta via `/dw-intel` é OBRIGATÓRIA na fase de auditoria para identificar UI patterns existentes.</critical>
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
|
|
75
|
-
Se o GSD NÃO estiver instalado:
|
|
76
|
-
- O design contract funciona normalmente (file-based em `.dw/spec/`)
|
|
77
|
-
- Auditoria usa apenas `.dw/rules/` para contexto
|
|
71
|
+
- Fase de auditoria: execute internamente `/dw-intel "componentes UI, padrões de design, convenções de layout"` antes de propor direções de redesign
|
|
72
|
+
- O design contract (`.dw/spec/prd-[nome]/design-contract.md`) é a fonte única de verdade para consistência visual — lido por `/dw-run-task` e `/dw-run-plan` e persiste cross-sessão naturalmente (sem registro separado)
|
|
73
|
+
- Se `.dw/intel/` NÃO existir, caia para `.dw/rules/` e grep direto sobre `apps/web/src/` (ou frontend root equivalente)
|
|
78
74
|
|
|
79
75
|
## Formato de Resposta Preferido
|
|
80
76
|
|
|
@@ -31,13 +31,14 @@ Para projetos Angular, use `ng lint` como complemento analítico.
|
|
|
31
31
|
|
|
32
32
|
## Inteligência do Codebase
|
|
33
33
|
|
|
34
|
-
<critical>Se `.
|
|
35
|
-
- Execute internamente: `/
|
|
36
|
-
- Contextualize findings com decisões já documentadas
|
|
34
|
+
<critical>Se `.dw/intel/` existir, a consulta via `/dw-intel` é OBRIGATÓRIA antes de sinalizar oportunidades de refactoring. NÃO pule este passo.</critical>
|
|
35
|
+
- Execute internamente: `/dw-intel "tech debt e decisões técnicas conhecidas"`
|
|
36
|
+
- Contextualize findings com decisões já documentadas em `.dw/rules/`
|
|
37
37
|
- Evite sinalizar como smell algo que é uma decisão intencional registrada
|
|
38
38
|
|
|
39
|
-
Se `.
|
|
40
|
-
- Use `.dw/rules/` como contexto
|
|
39
|
+
Se `.dw/intel/` NÃO existir:
|
|
40
|
+
- Use `.dw/rules/` como contexto, caindo para grep
|
|
41
|
+
- Sugira rodar `/dw-map-codebase` para enriquecer contexto downstream
|
|
41
42
|
|
|
42
43
|
## Variáveis de Entrada
|
|
43
44
|
|
|
@@ -40,17 +40,19 @@ Voce e um assistente de continuidade de sessao. Este comando existe para restaur
|
|
|
40
40
|
6. Apresente o resumo no formato abaixo (incluindo bullets de "Do ponto onde paramos" com base na memory)
|
|
41
41
|
7. Sugira o proximo comando a executar
|
|
42
42
|
|
|
43
|
-
##
|
|
43
|
+
## Estado Cross-Sessao
|
|
44
44
|
|
|
45
|
-
<critical>
|
|
45
|
+
<critical>Se `.dw/spec/active-session.md` existir (escrito pelo `/dw-execute-phase` em checkpoint), a leitura e OBRIGATORIA para restaurar a ultima posicao conhecida.</critical>
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
- Delegue para `/gsd-resume-work` para restaurar estado cross-sessao de `.planning/STATE.md`
|
|
49
|
-
- Incorpore contexto adicional: threads persistentes, backlog, notas
|
|
47
|
+
Ordem de leitura para contexto cross-sessao:
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
1. `.dw/spec/active-session.md` — ultima task completa, proxima task, blockers, deviations abertas (escrito pelo `/dw-execute-phase` em checkpoint a 70% de budget de contexto OU quando o usuario sinaliza stop)
|
|
50
|
+
2. `.dw/spec/prd-*/SUMMARY.md` — resumos de fases concluidas (mais recentes)
|
|
51
|
+
3. Commits recentes via `git log --oneline -20` — o que aterrissou na branch atual
|
|
52
|
+
4. Deviations abertas via `.dw/spec/prd-*/deviations.md` — Rule 1/2/3 entries nao resolvidas
|
|
53
|
+
5. Deteccao de PRD ativo — diretorio sob `.dw/spec/` cujo `tasks.md` tem a task uncompleted mais recente
|
|
54
|
+
|
|
55
|
+
Se `.dw/spec/active-session.md` esta ausente (sem checkpoint escrito; boundary limpa de sessao), caia para git log + estado de `tasks.md` em PRDs ativos.
|
|
54
56
|
|
|
55
57
|
## Formato de Resposta
|
|
56
58
|
|
|
@@ -152,36 +152,30 @@ Se uma tarefa FALHAR durante a execução:
|
|
|
152
152
|
4. Aguardar intervenção manual do usuário
|
|
153
153
|
5. **NÃO** continuar automaticamente para próxima task
|
|
154
154
|
|
|
155
|
-
##
|
|
155
|
+
## Verificação de Plano + Execução Paralela
|
|
156
156
|
|
|
157
|
-
<critical>
|
|
157
|
+
<critical>Verificação de plano e execução paralela em waves são OBRIGATÓRIAS, não opcionais. Ambas são agora nativas no dev-workflow via skill bundled `dw-execute-phase`.</critical>
|
|
158
158
|
|
|
159
159
|
### Verificação de Plano (Pré-Execução)
|
|
160
160
|
|
|
161
|
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
- Se
|
|
165
|
-
- Se
|
|
166
|
-
|
|
167
|
-
Se o GSD NÃO estiver instalado:
|
|
168
|
-
- Pule a verificação e execute diretamente (comportamento atual)
|
|
161
|
+
Antes de iniciar execução, delegue para `/dw-plan-checker {{PRD_PATH}}`:
|
|
162
|
+
- O agente plan-checker verifica as 6 dimensões (cobertura de requisitos, completude da task, soundness de dependência, wiring de artefatos, budget de contexto, compliance de constraints)
|
|
163
|
+
- Se REVISE: apresente os issues e sugira correções. Máximo 3 ciclos via `/dw-create-tasks --revise`
|
|
164
|
+
- Se BLOCK: suba o conflito para o usuário, NÃO auto-replan
|
|
165
|
+
- Se PASS: prossiga para execução
|
|
169
166
|
|
|
170
167
|
### Execução Paralela (Wave-Based)
|
|
171
168
|
|
|
172
|
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
175
|
-
- Wave 1: tasks sem dependências (
|
|
176
|
-
- Wave 2: tasks que dependem
|
|
169
|
+
Após PASS do plan-checker, delegue para `/dw-execute-phase {{PRD_PATH}}`:
|
|
170
|
+
- O agente executor analisa o campo `Depends on:` de cada task para montar o grafo de dependências
|
|
171
|
+
- Agrupa tasks em waves:
|
|
172
|
+
- Wave 1: tasks sem dependências (rodam em paralelo)
|
|
173
|
+
- Wave 2: tasks que dependem das tasks da Wave 1
|
|
177
174
|
- Wave N: assim por diante
|
|
178
|
-
-
|
|
179
|
-
-
|
|
180
|
-
-
|
|
181
|
-
-
|
|
182
|
-
|
|
183
|
-
Se o GSD NÃO estiver instalado:
|
|
184
|
-
- Execute sequencialmente como hoje (comportamento atual)
|
|
175
|
+
- Cada wave dispatcha subagentes em paralelo (um por task)
|
|
176
|
+
- Resultados mergeados após a wave completar
|
|
177
|
+
- Se qualquer task em uma wave falha permanentemente (deviation Rule 3): pausa a wave, reporta, aguarda decisão do usuário
|
|
178
|
+
- O executor commita atomicamente por task e escreve `SUMMARY.md` após a wave final
|
|
185
179
|
|
|
186
180
|
### Design Contracts
|
|
187
181
|
|