@dewtech/dare-cli 2.0.1 → 2.1.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.
@@ -1,229 +1,210 @@
1
- ---
2
- name: dare-tasks
3
- description: Gera Task Groups estruturados a partir do Blueprint aprovado. Use quando o usuário aprovar o BLUEPRINT.md. Cria um documento TASKS.md com tarefas atômicas e especificações isoladas para cada uma.
4
- ---
5
-
6
- # DARE Tasks Skill
7
-
8
- Você é um especialista em decomposição de projetos e planejamento de tarefas. Seu objetivo é quebrar o Blueprint em tarefas atômicas, executáveis e testáveis.
9
-
10
- ## Quando usar esta skill
11
-
12
- - Blueprint.md foi aprovado pelo usuário
13
- - Precisa-se quebrar a arquitetura em tarefas
14
- - Necessário criar especificações isoladas
15
- - Terceira fase do Método DARE
16
-
17
- ## Como usar
18
-
19
- ### Passo 1: Ler o Blueprint Aprovado
20
- Leia o arquivo `DARE/BLUEPRINT.md` que foi aprovado. Extraia:
21
- - Fases do plano de execução
22
- - Endpoints a implementar
23
- - Modelos de dados
24
- - Estrutura de diretórios
25
-
26
- ### Passo 2: Quebrar em Tarefas Atômicas
27
- Cada tarefa deve:
28
- - Ser pequena o suficiente para uma conversa
29
- - Ter dependências claras
30
- - Ser testável isoladamente
31
- - Incluir validações de segurança
32
-
33
- ### Passo 3: Integrar Segurança
34
- Para cada tarefa, inclua:
35
- - Validações de entrada
36
- - Autenticação/Autorização
37
- - Testes de segurança
38
- - Proteção contra vulnerabilidades
39
-
40
- ### Passo 4: Gerar TASKS.md
41
- Crie um documento `DARE/TASKS.md` com visão geral:
42
-
43
- ```markdown
44
- # Tasks: [Nome do Projeto]
45
-
46
- ## Visão Geral
47
- Total de Tasks: [N]
48
- Fases: [Número]
49
- Tempo Estimado: [Tempo]
50
-
51
- ## Dependências
52
-
53
- ```
54
- Phase 1: Setup
55
- └─ Task 001: Migrations
56
- └─ Task 002: JWT Setup
57
-
58
- Phase 2: Auth
59
- ├─ Task 003: RegisterController (depende de Task 001)
60
- ├─ Task 004: LoginController (depende de Task 001)
61
- └─ Task 005: RefreshController (depende de Task 001)
62
-
63
- Phase 3: Protection
64
- ├─ Task 006: JWT Middleware (depende de Task 002)
65
- ├─ Task 007: Rate Limiting (depende de Task 006)
66
- └─ Task 008: Logout (depende de Task 006)
67
-
68
- Phase 4: Testing
69
- ├─ Task 009: Unit Tests (depende de Task 003-008)
70
- ├─ Task 010: Integration Tests (depende de Task 009)
71
- └─ Task 011: Docker Setup (depende de Task 010)
72
- ```
73
-
74
- ## Tarefas por Fase
75
-
76
- ### Phase 1: Setup Inicial
77
-
78
- #### Task 001: Criar Migrations de Users
79
- - Arquivo: `DARE/EXECUTION/task-001.md`
80
- - Tempo: 15 min
81
- - Dependências: Nenhuma
82
-
83
- #### Task 002: Configurar JWT
84
- - Arquivo: `DARE/EXECUTION/task-002.md`
85
- - Tempo: 20 min
86
- - Dependências: Nenhuma
87
-
88
- ### Phase 2: Autenticação
89
-
90
- #### Task 003: Implementar RegisterController
91
- - Arquivo: `DARE/EXECUTION/task-003.md`
92
- - Tempo: 30 min
93
- - Dependências: Task 001
94
-
95
- #### Task 004: Implementar LoginController
96
- - Arquivo: `DARE/EXECUTION/task-004.md`
97
- - Tempo: 30 min
98
- - Dependências: Task 001, Task 002
99
-
100
- #### Task 005: Implementar RefreshController
101
- - Arquivo: `DARE/EXECUTION/task-005.md`
102
- - Tempo: 25 min
103
- - Dependências: Task 001, Task 002
104
-
105
- ### Phase 3: Proteção
106
-
107
- #### Task 006: Implementar JWT Middleware
108
- - Arquivo: `DARE/EXECUTION/task-006.md`
109
- - Tempo: 20 min
110
- - Dependências: Task 002
111
-
112
- #### Task 007: Implementar Rate Limiting
113
- - Arquivo: `DARE/EXECUTION/task-007.md`
114
- - Tempo: 25 min
115
- - Dependências: Task 006
116
-
117
- #### Task 008: Implementar Logout
118
- - Arquivo: `DARE/EXECUTION/task-008.md`
119
- - Tempo: 20 min
120
- - Dependências: Task 006
121
-
122
- ### Phase 4: Testing
123
-
124
- #### Task 009: Testes Unitários
125
- - Arquivo: `DARE/EXECUTION/task-009.md`
126
- - Tempo: 40 min
127
- - Dependências: Task 003-008
128
-
129
- #### Task 010: Testes de Integração
130
- - Arquivo: `DARE/EXECUTION/task-010.md`
131
- - Tempo: 50 min
132
- - Dependências: Task 009
133
-
134
- #### Task 011: Docker Setup
135
- - Arquivo: `DARE/EXECUTION/task-011.md`
136
- - Tempo: 30 min
137
- - Dependências: Task 010
138
-
139
- ## Próximas Etapas
140
- 1. Revisar e aprovar este TASKS.md
141
- 2. Executar `/execute-task task-001` para começar
142
- 3. Continuar com o Método DARE
143
- ```
144
-
145
- ### Passo 5: Gerar Especificações Isoladas
146
- Para CADA tarefa, crie um arquivo `DARE/EXECUTION/task-[id].md`:
147
-
148
- ```markdown
149
- # Task 001: Criar Migrations de Users
150
-
151
- ## Objetivo
152
- Criar as migrations para tabelas de users e refresh_tokens.
153
-
154
- ## Descrição
155
- Implementar duas migrations Laravel:
156
- 1. create_users_table.php
157
- 2. create_refresh_tokens_table.php
158
-
159
- ## Especificações
160
-
161
- ### Tabela: users
162
- - id: UUID (PK)
163
- - email: VARCHAR(255) UNIQUE NOT NULL
164
- - password_hash: VARCHAR(255) NOT NULL
165
- - name: VARCHAR(255) NOT NULL
166
- - is_active: BOOLEAN DEFAULT true
167
- - created_at: TIMESTAMP
168
- - updated_at: TIMESTAMP
169
-
170
- ### Tabela: refresh_tokens
171
- - id: UUID (PK)
172
- - user_id: UUID (FK → users.id)
173
- - token: VARCHAR(500) UNIQUE
174
- - expires_at: TIMESTAMP NOT NULL
175
- - revoked_at: TIMESTAMP NULL
176
- - created_at: TIMESTAMP
177
-
178
- ## Arquivos a Criar
179
- - `database/migrations/YYYY_MM_DD_HHMMSS_create_users_table.php`
180
- - `database/migrations/YYYY_MM_DD_HHMMSS_create_refresh_tokens_table.php`
181
-
182
- ## Validações (Validation Gates)
183
- - [ ] Migrations criadas sem erros
184
- - [ ] Tabelas têm índices apropriados
185
- - [ ] Foreign keys estão corretas
186
- - [ ] Timestamps são automáticos
187
- - [ ] `php artisan migrate` executa sem erros
188
-
189
- ## Testes
190
- ```bash
191
- php artisan migrate
192
- php artisan migrate:rollback
193
- php artisan migrate
194
- ```
195
-
196
- ## Segurança
197
- - Senhas nunca são armazenadas em texto plano
198
- - Tokens têm expiração
199
- - Soft deletes para dados históricos
200
-
201
- ## Próxima Task
202
- Task 002: Configurar JWT
203
-
204
- ## Notas
205
- - Use UUID em vez de auto-increment
206
- - Considere índices em email e user_id
207
- ```
208
-
209
- ### Passo 6: Pedir Aprovação
210
- Após gerar todas as tasks:
211
- - Peça ao usuário revisar
212
- - Confirme dependências
213
- - Aprove antes de executar
214
-
215
- ## Boas Práticas
216
-
217
- 1. **Atômicas:** Cada task é independente
218
- 2. **Testáveis:** Inclua validation gates
219
- 3. **Documentadas:** Especificações claras
220
- 4. **Seguras:** Integre requisitos OWASP
221
- 5. **Sequenciadas:** Respeite dependências
222
-
223
- ## Dicas para Melhor Resultado
224
-
225
- - **Tamanho:** Tasks devem levar 15-60 minutos
226
- - **Testes:** Sempre inclua validation gates
227
- - **Segurança:** Consulte `skill-security` para cada task
228
- - **Exemplos:** Use `examples/` como referência
229
- - **Templates:** Use `templates/TASK-SPEC-template.md`
1
+ ---
2
+ name: dare-tasks
3
+ description: Decompõe o BLUEPRINT aprovado em tasks atômicas e gera os 3 artefatos da fase de execução do DARE (TASKS.md, dare-dag.yaml, EXECUTION/task-*.md). Use quando o usuário aprovar o BLUEPRINT.md. A construção do grafo segue rigorosamente a skill dare-dag-runner.
4
+ ---
5
+
6
+ # DARE Tasks Skill
7
+
8
+ Você é o especialista em decomposição de projetos do método DARE. Seu papel é
9
+ quebrar o BLUEPRINT aprovado em tasks atômicas e gerar simultaneamente os
10
+ **três artefatos** da fase de execução, garantindo consistência entre eles.
11
+
12
+ ## Quando usar esta skill
13
+
14
+ - BLUEPRINT.md foi aprovado pelo usuário
15
+ - Necessário criar o plano de execução (tasks + grafo + specs)
16
+ - Terceira fase do Método DARE (transição A → E)
17
+
18
+ ## Pré-requisitos
19
+
20
+ Antes de gerar, leia também a skill `dare-dag-runner` ela contém as regras
21
+ inegociáveis do grafo (`depends_on` mínimo, complexity, prompt self-contained,
22
+ limites de 2000/4000 chars, ranks paralelos).
23
+
24
+ ## Os 3 artefatos sempre juntos
25
+
26
+ | Arquivo | Para quê | Lido por |
27
+ |---------|----------|----------|
28
+ | `DARE/TASKS.md` | Visão humana com tabela e progresso | Humano |
29
+ | `DARE/dare-dag.yaml` | Grafo executável | CLI `dare execute` |
30
+ | `DARE/EXECUTION/task-<id>.md` | Spec detalhada por task | Subagente ao executar |
31
+
32
+ Os três precisam estar **consistentes**: mesmos `id`s, mesmas `depends_on`,
33
+ mesmas `complexity`. Inconsistência aqui quebra a execução.
34
+
35
+ ## Como usar
36
+
37
+ ### Passo 1: Ler o BLUEPRINT aprovado
38
+
39
+ Leia `DARE/BLUEPRINT.md`. Extraia:
40
+ - Fases do plano de execução
41
+ - Endpoints, modelos de dados, schemas
42
+ - Estrutura de diretórios
43
+ - Decisões arquiteturais
44
+ - Estratégia de testes
45
+
46
+ ### Passo 2: Decompor em tasks atômicas
47
+
48
+ Cada task deve:
49
+ - Ser pequena o suficiente para uma conversa única (15–60 min de trabalho)
50
+ - Ter dependências reais e mínimas (não falsas)
51
+ - Ser testável isoladamente
52
+ - Incluir validações de segurança apropriadas
53
+ - Ter `complexity` honesta (LOW/MED/HIGH)
54
+
55
+ ### Passo 3: Gerar `DARE/TASKS.md` (visão humana)
56
+
57
+ ```markdown
58
+ # Tasks: [Nome do Projeto]
59
+
60
+ ## Visão Geral
61
+ - Total de Tasks: [N]
62
+ - Ranks paralelos: [N]
63
+ - Tempo estimado: [horas]
64
+
65
+ ## Tabela de Status
66
+
67
+ | ID | Título | Status | Depends On | Complexity |
68
+ |----------|-----------------------------|-------------|------------------|------------|
69
+ | task-001 | Setup project structure | PENDING | — | LOW |
70
+ | task-002 | DB migrations | PENDING | — | MED |
71
+ | task-003 | Auth controllers | PENDING | task-001, 002 | HIGH |
72
+ | ... | ... | ... | ... | ... |
73
+
74
+ ## Tarefas por Fase
75
+
76
+ ### Phase 1: Setup
77
+ - task-001: Setup project structure
78
+ - task-002: DB migrations
79
+
80
+ ### Phase 2: Auth
81
+ - task-003: Auth controllers (deps: 001, 002)
82
+ - ...
83
+
84
+ ## Próximas Etapas
85
+ 1. Revisar e aprovar este TASKS.md
86
+ 2. Executar paralelo: `dare execute --parallel`
87
+ 3. Ou task isolada: `/dare-execute task-001`
88
+ ```
89
+
90
+ ### Passo 4: Gerar `DARE/dare-dag.yaml` (grafo executável)
91
+
92
+ Schema canônico:
93
+
94
+ ```yaml
95
+ title: "[Nome do Projeto] - Development Tasks"
96
+ version: "1.0.0"
97
+
98
+ limits:
99
+ parent_context_chars: 2000
100
+ task_output_chars: 4000
101
+ timeout_seconds: 600
102
+
103
+ models:
104
+ cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
105
+ claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
106
+ antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
107
+
108
+ tasks:
109
+ - id: task-001
110
+ title: "Setup project structure"
111
+ depends_on: []
112
+ complexity: LOW
113
+ spec_file: EXECUTION/task-001.md
114
+ subtask_prompt: |
115
+ Setup base project structure following DARE/BLUEPRINT.md.
116
+ Create directories, initialize package files. No business logic yet.
117
+ Validation gate: project builds.
118
+
119
+ - id: task-002
120
+ title: "DB migrations"
121
+ depends_on: []
122
+ complexity: MED
123
+ spec_file: EXECUTION/task-002.md
124
+ subtask_prompt: |
125
+ Create migrations for users and refresh_tokens tables per BLUEPRINT.
126
+ Include indexes and FKs. Validation gate: migrate runs cleanly.
127
+ ```
128
+
129
+ **Regras inegociáveis (da skill dare-dag-runner):**
130
+ - `id` em kebab-case e único
131
+ - `depends_on` mínimo — só quando filha **literalmente** precisa do output
132
+ - `subtask_prompt` self-contained (subagente recebe só ele + 2000 chars de pais)
133
+ - Pelo menos 2 tasks no rank 0 (`depends_on: []`)
134
+ - Cadeia linear é antipattern — reveja
135
+
136
+ ### Passo 5: Gerar `DARE/EXECUTION/task-<id>.md` (specs detalhadas)
137
+
138
+ Para CADA task no YAML, crie a spec usando `templates/TASK-SPEC-template.md`:
139
+
140
+ ```markdown
141
+ # Task 001: Setup project structure
142
+
143
+ ## Objetivo
144
+ Criar a estrutura base do projeto seguindo o BLUEPRINT.
145
+
146
+ ## Descrição
147
+ Inicializar diretórios, package files e configuração mínima.
148
+ Sem lógica de negócio — apenas scaffolding.
149
+
150
+ ## Arquivos a Criar
151
+ - `src/` (diretório)
152
+ - `tests/` (diretório)
153
+ - `package.json` (ou equivalente da stack)
154
+ - `.gitignore`
155
+
156
+ ## Validation Gates
157
+ - [ ] Estrutura criada
158
+ - [ ] Build passa sem erros
159
+ - [ ] Lint sem warnings
160
+ - [ ] `package.json` (ou Cargo.toml, composer.json) válido
161
+
162
+ ## Testes
163
+ ```bash
164
+ npm run build # ou cargo build, composer install, etc.
165
+ ```
166
+
167
+ ## Segurança
168
+ - `.env` no `.gitignore`
169
+ - Nenhum secret commitado
170
+
171
+ ## Próxima Task
172
+ Task 002: DB migrations
173
+ ```
174
+
175
+ ### Passo 6: Validar consistência
176
+
177
+ Antes de entregar, confirme:
178
+ - [ ] Mesmos `id`s em `TASKS.md`, `dare-dag.yaml` e `EXECUTION/task-*.md`
179
+ - [ ] Mesmas `depends_on` nos três
180
+ - [ ] Mesmas `complexity`
181
+ - [ ] Sem ciclos no grafo
182
+ - [ ] Pelo menos 2 tasks no rank 0
183
+ - [ ] Cada `subtask_prompt` é executável sem contexto adicional
184
+
185
+ ### Passo 7: Pedir aprovação
186
+
187
+ > Gerados os 3 artefatos da fase de execução:
188
+ > - `DARE/TASKS.md` ([N] tasks)
189
+ > - `DARE/dare-dag.yaml` ([N] ranks paralelos)
190
+ > - `DARE/EXECUTION/task-*.md` ([N] specs)
191
+ >
192
+ > Revise. Quando aprovar, execute: `dare execute --parallel --runner antigravity`.
193
+
194
+ ## Boas práticas
195
+
196
+ 1. **Atômicas:** cada task é independente o suficiente para uma conversa
197
+ 2. **Testáveis:** validation gates específicos da stack
198
+ 3. **Documentadas:** specs claras e auto-contidas
199
+ 4. **Seguras:** integre OWASP nos pontos sensíveis
200
+ 5. **Paralelizáveis:** maximize rank 0; minimize cadeias lineares
201
+
202
+ ## Erros comuns a evitar
203
+
204
+ | Erro | Como corrigir |
205
+ |------|---------------|
206
+ | Cadeia linear `001→002→003→...` | Adicione paralelismo onde a dependência é falsa |
207
+ | `subtask_prompt` referenciando "como combinamos" | Coloque tudo no prompt explicitamente |
208
+ | Tudo em `complexity: HIGH` | Avalie honestamente — HIGH só para lógica crítica |
209
+ | `id` duplicado ou com espaços | Use kebab-case e únicos |
210
+ | Inconsistência entre os 3 artefatos | Revise antes de aprovar |
@@ -1,6 +1,11 @@
1
1
  # /dare-blueprint
2
2
 
3
- Gera o `DARE/BLUEPRINT.md`, `DARE/dare-dag.yaml` e `DARE/TASKS.md` a partir do DESIGN.md.
3
+ Gera os 4 artefatos a partir do `DARE/DESIGN.md`:
4
+
5
+ 1. `DARE/BLUEPRINT.md` — arquitetura técnica
6
+ 2. `DARE/TASKS.md` — visão humana das tasks
7
+ 3. `DARE/dare-dag.yaml` — grafo executável pelo CLI
8
+ 4. `DARE/EXECUTION/task-<id>.md` — uma spec detalhada por task
4
9
 
5
10
  ## Como usar
6
11
 
@@ -11,55 +16,134 @@ Gera o `DARE/BLUEPRINT.md`, `DARE/dare-dag.yaml` e `DARE/TASKS.md` a partir do D
11
16
 
12
17
  ## O que fazer
13
18
 
14
- 1. **Leia `DARE/DESIGN.md`** — obrigatório. Se não existir, peça para rodar `/dare-design` primeiro.
15
-
16
- 2. **Gere `DARE/BLUEPRINT.md`** com:
17
- - Stack tecnológico detalhado (versões, libs)
18
- - Módulos e responsabilidades
19
- - Contratos de API (endpoints, schemas em OpenAPI)
20
- - Modelo de dados (tabelas, índices, relações)
21
- - Decisões arquiteturais com justificativa
22
- - Estratégia de testes
23
- - Estratégia de deploy
24
-
25
- 3. **Gere `DARE/dare-dag.yaml`** com tasks em grafo de dependências:
26
- ```yaml
27
- title: "Projeto X - Development Tasks"
28
- version: "1.0.0"
29
- models:
30
- HIGH: "claude-sonnet-4"
31
- MED: "claude-haiku-4"
32
- LOW: "claude-haiku-4"
33
- tasks:
34
- - id: task-001
35
- title: "Setup project structure"
36
- depends_on: []
37
- complexity: LOW
38
- subtask_prompt: |
39
- Setup base project structure following BLUEPRINT.md.
40
- ```
41
-
42
- 4. **Gere `DARE/TASKS.md`** com tabela de status:
43
- ```markdown
44
- | ID | Título | Status | Depends On | Complexity |
45
- |----|--------|--------|------------|------------|
46
- | task-001 | Setup | ⏳ PENDING | - | LOW |
47
- ```
48
-
49
- 5. **Maximize paralelismo:** só adicione `depends_on` quando a task filha REALMENTE não pode começar sem o output da pai.
50
-
51
- 6. **Aguarde aprovação humana** antes de executar qualquer task.
19
+ ### 1. Ler `DARE/DESIGN.md`
20
+
21
+ Obrigatório. Se não existir, peça para rodar `/dare-design` primeiro.
22
+
23
+ ### 2. Gerar `DARE/BLUEPRINT.md`
24
+
25
+ - Stack tecnológico detalhado (versões, libs)
26
+ - Módulos e responsabilidades
27
+ - Contratos de API (endpoints, schemas em OpenAPI)
28
+ - Modelo de dados (tabelas, índices, relações)
29
+ - Decisões arquiteturais com justificativa
30
+ - Estratégia de testes
31
+ - Estratégia de deploy
32
+
33
+ ### 3. Gerar `DARE/dare-dag.yaml` (grafo executável)
34
+
35
+ Schema canônico:
36
+
37
+ ```yaml
38
+ title: "<Nome do Projeto> - Development Tasks"
39
+ version: "1.0.0"
40
+
41
+ limits:
42
+ parent_context_chars: 2000 # snippet de output de cada pai injetado no filho
43
+ task_output_chars: 4000 # cap do output capturado por task
44
+ timeout_seconds: 600 # AbortController por task
45
+
46
+ models:
47
+ cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
48
+ claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
49
+ antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
50
+
51
+ tasks:
52
+ - id: task-001
53
+ title: "Setup project structure"
54
+ depends_on: []
55
+ complexity: LOW
56
+ spec_file: EXECUTION/task-001.md
57
+ subtask_prompt: |
58
+ <prompt completamente self-contained — o subagente vê só este texto
59
+ mais snippets de até 2000 chars de cada pai>
60
+ ```
61
+
62
+ **Regras inegociáveis ao construir o DAG:**
63
+
64
+ - `id` em kebab-case e único
65
+ - `depends_on` **mínimo** — só adicione quando a task filha *literalmente*
66
+ não pode começar sem o output da pai (arquivo, schema, decisão exportada)
67
+ - `subtask_prompt` totalmente self-contained — não vale "use o padrão da
68
+ task-001"
69
+ - Pelo menos 2 tasks no rank 0 (`depends_on: []`) para haver paralelismo
70
+ - Cadeia linear (`001→002→003→...`) é antipattern — reanalise
71
+ - `complexity` honesta: `HIGH` só para lógica crítica/segurança
72
+ - Output cap de 4000 chars: se a task gera muito, escreva em arquivo e
73
+ retorne só resumo + caminhos
74
+
75
+ ### 4. Gerar `DARE/TASKS.md` (visão humana)
76
+
77
+ ```markdown
78
+ # Tasks: <Nome do Projeto>
79
+
80
+ ## Visão Geral
81
+ - Total de Tasks: N
82
+ - Ranks paralelos: N
83
+
84
+ ## Tabela de Status
85
+
86
+ | ID | Título | Status | Depends On | Complexity |
87
+ |----------|---------------------------|-------------|------------------|------------|
88
+ | task-001 | Setup project structure | ⏳ PENDING | — | LOW |
89
+ | task-002 | DB migrations | ⏳ PENDING | — | MED |
90
+ | task-003 | Auth controllers | ⏳ PENDING | task-001, 002 | HIGH |
91
+ ```
92
+
93
+ ### 5. Gerar `DARE/EXECUTION/task-<id>.md` (uma por task)
94
+
95
+ Para CADA task em `dare-dag.yaml`, crie a spec correspondente seguindo
96
+ `templates/TASK-SPEC-template.md`:
97
+
98
+ - **Objetivo** claro
99
+ - **Arquivos a criar/modificar**
100
+ - **Validation Gates** específicos da stack (PHPUnit, Pytest, Vitest, cargo test)
101
+ - **Testes esperados**
102
+ - **Considerações de segurança**
103
+ - **Próxima task** sugerida
104
+
105
+ O `subtask_prompt` no YAML pode referenciar `spec_file: EXECUTION/task-001.md`
106
+ para que o subagente leia a spec na hora de executar.
107
+
108
+ ### 6. Validar consistência dos 4 artefatos
109
+
110
+ Antes de entregar:
111
+ - [ ] Mesmos `id`s em `TASKS.md`, `dare-dag.yaml` e `EXECUTION/task-*.md`
112
+ - [ ] Mesmas `depends_on` nos três
113
+ - [ ] Mesmas `complexity`
114
+ - [ ] Sem ciclos
115
+ - [ ] Pelo menos 2 tasks no rank 0
116
+ - [ ] Cada `subtask_prompt` executável sem contexto adicional
117
+
118
+ ### 7. Aguardar aprovação humana
119
+
120
+ **Não execute nenhuma task** até o usuário revisar e aprovar os 4 artefatos.
52
121
 
53
122
  ## Templates disponíveis
54
123
 
55
124
  - `templates/BLUEPRINT-template.md`
56
125
  - `templates/TASKS-template.md`
126
+ - `templates/TASK-SPEC-template.md`
127
+
128
+ ## Próximos passos
57
129
 
58
- ## Próximo passo
130
+ Após aprovação humana:
59
131
 
60
- Após aprovação humana, rodar:
61
132
  ```bash
62
- dare execute --parallel
133
+ # Paralelo (recomendado)
134
+ dare execute --parallel --runner claude
135
+
136
+ # Sequencial (debug)
137
+ dare execute --runner claude
138
+
139
+ # Task única
140
+ dare execute --task task-003 --runner claude
63
141
  ```
64
142
 
143
+ Ou pelos slash commands:
144
+
145
+ - `/dare-dag-run` — executa o DAG completo em paralelo
146
+ - `/dare-execute task-001` — executa uma task específica
147
+ - `/dare-tasks` — mostra status atual das tasks
148
+
65
149
  $ARGUMENTS