@dewtech/dare-cli 2.11.0 → 2.12.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 (32) hide show
  1. package/README.md +5 -4
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +35 -7
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/core/types/project.d.ts +3 -0
  6. package/dist/core/types/project.d.ts.map +1 -1
  7. package/dist/utils/project-generator.d.ts +2 -0
  8. package/dist/utils/project-generator.d.ts.map +1 -1
  9. package/dist/utils/project-generator.js +122 -29
  10. package/dist/utils/project-generator.js.map +1 -1
  11. package/dist/utils/stack-bootstrap.d.ts +2 -0
  12. package/dist/utils/stack-bootstrap.d.ts.map +1 -1
  13. package/dist/utils/stack-bootstrap.js +5 -3
  14. package/dist/utils/stack-bootstrap.js.map +1 -1
  15. package/package.json +1 -1
  16. package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -53
  17. package/templates/ide/antigravity/templates/DESIGN-template.md +129 -34
  18. package/templates/ide/antigravity/templates/TASK-SPEC-template.md +100 -43
  19. package/templates/ide/claude/.claude/commands/dare-blueprint.md +87 -81
  20. package/templates/ide/claude/.claude/commands/dare-design.md +45 -31
  21. package/templates/ide/claude/.claude/commands/dare-execute.md +131 -52
  22. package/templates/ide/claude/.claude/commands/dare-security.md +232 -0
  23. package/templates/ide/claude/CLAUDE.md +38 -10
  24. package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -53
  25. package/templates/ide/claude/templates/DESIGN-template.md +129 -34
  26. package/templates/ide/claude/templates/TASK-SPEC-template.md +100 -43
  27. package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +51 -21
  28. package/templates/ide/cursor/.cursor/commands/generate-design.md +35 -18
  29. package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -57
  30. package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -53
  31. package/templates/ide/cursor/templates/DESIGN-template.md +129 -34
  32. package/templates/ide/cursor/templates/TASK-SPEC-template.md +100 -43
@@ -1,43 +1,100 @@
1
- # ESPECIFICAÇÃO DE TAREFA: [ID da Task, ex: task-001]
2
-
3
- ## OBJETIVO DA TAREFA
4
- [Descrição concisa do que precisa ser implementado, ex: Criar o Model, Migration e Factory para a entidade Usuário.]
5
-
6
- ## CONTEXTO E DEPENDÊNCIAS
7
- - **Fase:** [Nome da Fase]
8
- - **Depende de:** [ID de tasks anteriores, ex: Nenhuma / task-000]
9
- - **Arquivos Relacionados Existentes:** [Arquivos que servem de base ou serão modificados, ex: `app/Models/User.php`]
10
-
11
- ## ESPECIFICAÇÃO DE IMPLEMENTAÇÃO (O QUE FAZER)
12
- [Instruções detalhadas passo a passo para a IA Executora]
13
-
14
- 1. **[Passo 1, ex: Atualizar a migration `create_users_table`]**
15
- - Adicionar coluna `role` (enum: admin, user).
16
- - Adicionar coluna `is_active` (boolean, default true).
17
-
18
- 2. **[Passo 2, ex: Atualizar o Model `User`]**
19
- - Adicionar campos ao `$fillable`.
20
- - Criar os casts corretos.
21
-
22
- 3. **[Passo 3, ex: Criar/Atualizar a Factory]**
23
- - Garantir que os novos campos sejam gerados pelo Faker.
24
-
25
- ## EXEMPLOS E PADRÕES A SEGUIR
26
- - **Referência:** Siga o padrão de formatação definido em `.cursorrules`.
27
- - **Exemplo Existente:** Se houver um model parecido, cite aqui (ex: `app/Models/Product.php`).
28
-
29
- ## CRITÉRIOS DE SUCESSO (VALIDATION GATES)
30
- Estes comandos DEVEM ser executados pela IA para validar a implementação antes de concluir a tarefa.
31
-
32
- ```bash
33
- # 1. Linting / Formatação
34
- ./vendor/bin/pint
35
-
36
- # 2. Análise Estática (se aplicável, ex: PHPStan/Larastan)
37
- ./vendor/bin/phpstan analyse
38
-
39
- # 3. Testes Unitários/Feature
40
- php artisan test --filter=UserTest
41
- ```
42
-
43
- Se algum comando falhar, a IA deve ler o erro, consertar o código e rodar o comando novamente (Ralph Loop) até que todos os testes passem.
1
+ # TASK [ID]: [Título da Task]
2
+
3
+ > **Complexidade:** LOW / MED / HIGH
4
+ > **Depends on:** [task-ids ou ]
5
+ > **Estimativa:** [X horas]
6
+
7
+ ---
8
+
9
+ ## 1. OBJETIVO
10
+
11
+ [Uma frase precisa do que esta task entrega. Deve ser verificável — termine com um estado observável, não uma ação.]
12
+
13
+ Exemplo: _"Ao final desta task, o endpoint `POST /api/v1/users` aceita cadastro, valida unicidade de e-mail e retorna JWT."_
14
+
15
+ ---
16
+
17
+ ## 2. CONTEXTO
18
+
19
+ - **Fase no BLUEPRINT:** Fase [N] — [Nome da fase]
20
+ - **Arquivos existentes relevantes:** [caminhos de arquivos que servem de referência ou serão modificados]
21
+ - **Decisões do BLUEPRINT que afetam esta task:** [cite seção/decisão específica]
22
+
23
+ ---
24
+
25
+ ## 3. ARQUIVOS A CRIAR / MODIFICAR
26
+
27
+ | Ação | Caminho | Descrição |
28
+ |------|---------|-----------|
29
+ | CRIAR | `src/[módulo]/[arquivo]` | [o que contém] |
30
+ | MODIFICAR | `src/[módulo]/[arquivo]` | [o que muda] |
31
+ | CRIAR | `tests/[arquivo].test.[ext]` | Testes da feature |
32
+
33
+ ---
34
+
35
+ ## 4. IMPLEMENTAÇÃO
36
+
37
+ ### Passo 1: [Nome do passo]
38
+ [Descrição precisa do que fazer. Inclua assinaturas de função/struct se crítico.]
39
+
40
+ ```[lang]
41
+ // Exemplo de padrão esperado
42
+ ```
43
+
44
+ ### Passo 2: [Nome do passo]
45
+ [Descrição]
46
+
47
+ ### Passo 3: Testes
48
+ - [ ] Teste do caminho feliz (`should_[comportamento]_when_[condição]`)
49
+ - [ ] Teste de erro de validação (400 / erro de negócio)
50
+ - [ ] Teste de autorização (401 / 403 quando aplicável)
51
+ - [ ] Teste de edge case: [descrever]
52
+
53
+ ---
54
+
55
+ ## 5. CONSIDERAÇÕES DE SEGURANÇA
56
+
57
+ - [ ] **Input validation:** toda entrada do usuário validada no servidor antes de qualquer processamento
58
+ - [ ] **Autenticação / Autorização:** verificar se o usuário tem permissão sobre o *recurso específico*, não só sobre a rota
59
+ - [ ] **Dados sensíveis:** senhas, tokens e PII nunca aparecem em logs, responses de erro ou mensagens de exceção
60
+ - [ ] **SQL / Command Injection:** usar ORM / prepared statements; nunca concatenar strings em queries
61
+ - [ ] **Dependências novas:** se esta task adicionar uma dependência, verificar CVEs com `npm audit` / `cargo audit` / `pip-audit` antes de commitar
62
+ - [ ] **Segredo em código:** nenhum token, chave ou credencial hardcoded — sempre via variável de ambiente
63
+
64
+ ---
65
+
66
+ ## 6. VALIDATION GATES (RALPH LOOP)
67
+
68
+ Execute **todos** antes de marcar a task como DONE. Se qualquer um falhar, leia o erro, corrija e reexecute.
69
+
70
+ ```bash
71
+ # 1. Build — sem erros de compilação
72
+ [comando de build da stack]
73
+
74
+ # 2. Tests — todos passando, incluindo os novos
75
+ [comando de test]
76
+
77
+ # 3. Lint — sem warnings
78
+ [comando de lint]
79
+
80
+ # 4. Auditoria de dependências (se novas deps foram adicionadas nesta task)
81
+ [npm audit --audit-level=high | cargo audit | pip-audit | composer audit]
82
+ ```
83
+
84
+ > **Gate de segurança obrigatório:** se esta task adicionar dependências externas, `[audit-cmd]` não pode retornar CVE de nível HIGH ou CRITICAL.
85
+
86
+ ---
87
+
88
+ ## 7. CRITÉRIOS DE DONE
89
+
90
+ - [ ] Todos os 4 validation gates passaram sem erros
91
+ - [ ] Testes cobrem caminho feliz + erros + edge cases da seção 4
92
+ - [ ] Considerações de segurança da seção 5 todas checadas
93
+ - [ ] Arquivos listados na seção 3 criados/modificados conforme spec
94
+ - [ ] `DARE/TASKS.md` atualizado com status `DONE`
95
+
96
+ ---
97
+
98
+ ## 8. PRÓXIMA TASK SUGERIDA
99
+
100
+ `[task-id]` — [título] _(desbloqueada após conclusão desta task)_
@@ -1,11 +1,12 @@
1
1
  # /dare-blueprint
2
2
 
3
- Gera os 4 artefatos a partir do `DARE/DESIGN.md`:
3
+ Gera os 5 artefatos a partir do `DARE/DESIGN.md`:
4
4
 
5
- 1. `DARE/BLUEPRINT.md` — arquitetura técnica
5
+ 1. `DARE/BLUEPRINT.md` — arquitetura técnica detalhada
6
6
  2. `DARE/TASKS.md` — visão humana das tasks
7
7
  3. `DARE/dare-dag.yaml` — grafo executável pelo CLI
8
- 4. `DARE/EXECUTION/task-<id>.md` — uma spec detalhada por task
8
+ 4. `DARE/EXECUTION/task-<id>.md` — spec detalhada por task
9
+ 5. `DARE/dag-graph.mmd` — visualização Mermaid do DAG
9
10
 
10
11
  ## Como usar
11
12
 
@@ -20,15 +21,52 @@ Gera os 4 artefatos a partir do `DARE/DESIGN.md`:
20
21
 
21
22
  Obrigatório. Se não existir, peça para rodar `/dare-design` primeiro.
22
23
 
24
+ Extraia e memorize para uso neste comando:
25
+ - Stack técnica (linguagem, framework, versões)
26
+ - Requisitos funcionais priorizados (RF-*)
27
+ - Requisitos de segurança (RS-*)
28
+ - Integrações externas confirmadas
29
+ - Restrições e escopo
30
+
23
31
  ### 2. Gerar `DARE/BLUEPRINT.md`
24
32
 
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
33
+ Siga o template `templates/BLUEPRINT-template.md`. Seções obrigatórias:
34
+
35
+ **2.1 Visão Geral da Arquitetura**
36
+ - Diagrama Mermaid da arquitetura
37
+ - Tabela de decisões arquiteturais com justificativa (não apenas "escolha X")
38
+
39
+ **2.2 Stack Técnica Definida** — versões fixas, não ranges
40
+
41
+ **2.3 Estrutura de Pastas** — árvore completa dos arquivos que serão criados
42
+
43
+ **2.4 Modelo de Dados** — entidades, campos tipados, relacionamentos, índices necessários
44
+
45
+ **2.5 Contratos de API** — tabela completa: método, rota, auth, request body, response, status codes
46
+
47
+ **2.6 Plano de Execução (Fases)** — cada fase com:
48
+ - Nome e objetivo
49
+ - **Critério de DONE** — comportamento verificável e testável (não "código feito")
50
+ - Lista de entregáveis concretos
51
+
52
+ > **Fase 1 é sempre containerização** (Dockerfile + docker-compose + healthcheck)
53
+ > **Fase N-1 é sempre auditoria de segurança e dependências**
54
+
55
+ **2.7 Validation Gates por Stack**
56
+
57
+ | Stack | Build | Test | Lint/Audit |
58
+ |-------|-------|------|------------|
59
+ | Rust/Axum | `cargo build` | `cargo test --workspace` | `cargo clippy && cargo audit` |
60
+ | Node/NestJS | `npm run build` | `npm test` | `npx eslint src && npm audit --audit-level=high` |
61
+ | Python/FastAPI | verificar imports | `pytest` | `ruff check . && pip-audit` |
62
+ | PHP/Laravel | `php artisan config:cache` | `php artisan test` | `./vendor/bin/phpstan && composer audit` |
63
+ | Go | `go build ./...` | `go test ./...` | `golangci-lint run` |
64
+
65
+ **2.8 Controles de Segurança** — checklist com todos os RS-* do DESIGN mapeados para tasks específicas
66
+
67
+ **2.9 Estratégia de Testes** — unitários + integração + segurança (auditoria de deps) + E2E se frontend
68
+
69
+ **2.10 Estratégia de Deploy** — por ambiente com branch, trigger e infra
32
70
 
33
71
  ### 3. Gerar `DARE/dare-dag.yaml` (grafo executável)
34
72
 
@@ -39,44 +77,38 @@ title: "<Nome do Projeto> - Development Tasks"
39
77
  version: "1.0.0"
40
78
 
41
79
  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
80
+ parent_context_chars: 2000
81
+ task_output_chars: 4000
82
+ timeout_seconds: 600
45
83
 
46
84
  models:
47
85
  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 }
86
+ claude: { HIGH: claude-sonnet-4-6, MED: claude-haiku-4-5, LOW: claude-haiku-4-5 }
49
87
  antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
50
88
 
51
89
  tasks:
52
90
  - id: task-001
53
- title: "Setup project structure"
91
+ title: "Containerização Dockerfile + docker-compose"
54
92
  depends_on: []
55
93
  complexity: LOW
56
94
  spec_file: EXECUTION/task-001.md
57
95
  subtask_prompt: |
58
- <prompt completamente self-contained — o subagente vê só este texto
59
- mais snippets de até 2000 chars de cada pai>
96
+ <prompt completamente self-contained>
60
97
  ```
61
98
 
62
- **Regras inegociáveis ao construir o DAG:**
99
+ **Regras inegociáveis:**
63
100
 
64
101
  - `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` para lógica crítica/segurança
72
- - Output cap de 4000 chars: se a task gera muito, escreva em arquivo e
73
- retorne resumo + caminhos
74
- - **A primeira task deve containerizar a aplicação** (Dockerfile + compose
75
- + healthcheck) — sem isso o Ralph Loop automático não tem onde rodar
76
- - **NÃO crie task "Ralph Loop final" / "Hardening" / "QA final"** — o
77
- Ralph Loop roda em CADA `dare execute --complete`, automaticamente
78
- - **Tests com assertions reais** — `assertTrue(true)` quebra o gate `test`
79
- e a task vai para FAILED
102
+ - `depends_on` **mínimo** — só quando a task filha literalmente não pode começar sem o output da pai
103
+ - `subtask_prompt` totalmente self-contained não use "siga o padrão da task-001"
104
+ - Pelo menos 2 tasks no rank 0 (`depends_on: []`) para haver paralelismo real
105
+ - Cadeia linear (`001→002→003→...`) é antipattern — reanalise o grafo
106
+ - `complexity: HIGH` apenas para lógica de segurança crítica, algoritmos complexos ou integrações externas arriscadas
107
+ - **task-001 = containerização** sempre
108
+ - **task-N-1 ou task-N = auditoria de segurança + dependências** (sem CVE HIGH/CRITICAL)
109
+ - **NÃO crie task "Ralph Loop final" / "QA final"** o Ralph Loop roda em CADA `--complete`
110
+ - **NÃO crie task "Refactoring geral"** — refactoring faz parte de cada task
111
+ - Testes com assertions reais `assertTrue(true)` quebra o gate e a task vai para FAILED
80
112
 
81
113
  ### 4. Gerar `DARE/TASKS.md` (visão humana)
82
114
 
@@ -91,78 +123,52 @@ tasks:
91
123
 
92
124
  | ID | Título | Status | Depends On | Complexity |
93
125
  |----------|---------------------------|-------------|------------------|------------|
94
- | task-001 | Setup project structure | ⏳ PENDING | — | LOW |
126
+ | task-001 | Containerização | ⏳ PENDING | — | LOW |
95
127
  | task-002 | DB migrations | ⏳ PENDING | — | MED |
96
- | task-003 | Auth controllers | ⏳ PENDING | task-001, 002 | HIGH |
128
+ | task-003 | Auth endpoints | ⏳ PENDING | task-001, 002 | HIGH |
97
129
  ```
98
130
 
99
131
  ### 5. Gerar `DARE/EXECUTION/task-<id>.md` (uma por task)
100
132
 
101
- Para CADA task em `dare-dag.yaml`, crie a spec correspondente seguindo
102
- `templates/TASK-SPEC-template.md`:
103
-
104
- - **Objetivo** claro
105
- - **Arquivos a criar/modificar**
106
- - **Validation Gates** específicos da stack (PHPUnit, Pytest, Vitest, cargo test)
107
- - **Testes esperados**
108
- - **Considerações de segurança**
109
- - **Próxima task** sugerida
133
+ Para CADA task, use o template `templates/TASK-SPEC-template.md`:
134
+ - Objetivo verificável (não uma ação, mas um estado observável)
135
+ - Arquivos a criar/modificar (tabela)
136
+ - Implementação passo a passo
137
+ - **Considerações de segurança** (seção obrigatória mesmo para tasks de infra)
138
+ - **Validation Gates** específicos da stack (build + test + lint + audit se nova dep)
139
+ - Critérios de DONE explícitos
110
140
 
111
- O `subtask_prompt` no YAML pode referenciar `spec_file: EXECUTION/task-001.md`
112
- para que o subagente leia a spec na hora de executar.
141
+ ### 6. Validar consistência dos 5 artefatos
113
142
 
114
- ### 6. Validar consistência dos 4 artefatos
115
-
116
- Antes de entregar:
117
143
  - [ ] Mesmos `id`s em `TASKS.md`, `dare-dag.yaml` e `EXECUTION/task-*.md`
118
- - [ ] Mesmas `depends_on` nos três
119
- - [ ] Mesmas `complexity`
120
- - [ ] Sem ciclos
144
+ - [ ] Mesmas `depends_on` nos três artefatos
145
+ - [ ] Mesma `complexity` nos três artefatos
146
+ - [ ] Sem ciclos no DAG
121
147
  - [ ] Pelo menos 2 tasks no rank 0
122
- - [ ] Cada `subtask_prompt` executável sem contexto adicional
123
-
124
- ### 7. Regenerar a visualização do DAG
148
+ - [ ] task-001 é containerização
149
+ - [ ] Existe task de auditoria de segurança/dependências
150
+ - [ ] Cada `subtask_prompt` é executável sem contexto adicional
125
151
 
126
- Depois de salvar o `dare-dag.yaml`, rode:
152
+ ### 7. Regenerar visualização do DAG
127
153
 
128
154
  ```bash
129
155
  dare dag viz -o DARE/dag-graph.mmd
130
156
  ```
131
157
 
132
- Isso reescreve `DARE/dag-graph.mmd` (Mermaid) refletindo o grafo atualizado.
133
- O usuário pode abrir no editor com Markdown Preview Mermaid para ver o
134
- grafo estático com cores por status antes de executar.
135
-
136
158
  ### 8. Aguardar aprovação humana
137
159
 
138
- **Não execute nenhuma task** até o usuário revisar e aprovar os 5 artefatos
139
- (BLUEPRINT, TASKS, dare-dag.yaml, EXECUTION/task-*, dag-graph.mmd).
140
-
141
- ## Templates disponíveis
142
-
143
- - `templates/BLUEPRINT-template.md`
144
- - `templates/TASKS-template.md`
145
- - `templates/TASK-SPEC-template.md`
160
+ **Não execute nenhuma task** até o usuário revisar e aprovar os 5 artefatos.
146
161
 
147
162
  ## Próximos passos
148
163
 
149
- Após aprovação humana:
164
+ Após aprovação:
150
165
 
151
166
  ```bash
152
- # Paralelo (recomendado)
153
167
  dare execute --parallel --runner claude
154
-
155
- # Sequencial (debug)
156
- dare execute --runner claude
157
-
158
- # Task única
159
- dare execute --task task-003 --runner claude
168
+ dare execute --runner claude # sequencial (debug)
169
+ dare execute --task task-003 --runner claude # task única
160
170
  ```
161
171
 
162
- Ou pelos slash commands:
163
-
164
- - `/dare-dag-run` — executa o DAG completo em paralelo
165
- - `/dare-execute task-001` — executa uma task específica
166
- - `/dare-tasks` — mostra status atual das tasks
172
+ Ou slash commands: `/dare-dag-run` · `/dare-execute task-001` · `/dare-tasks`
167
173
 
168
174
  $ARGUMENTS
@@ -6,50 +6,64 @@ Gera ou atualiza o `DARE/DESIGN.md` a partir de uma descrição do projeto ou fe
6
6
 
7
7
  ```
8
8
  /dare-design Quero uma API REST de autenticação com JWT e refresh token
9
- /dare-design Adicionar endpoint de upload de arquivos com validação
9
+ /dare-design Adicionar módulo de pagamentos com Stripe e webhook
10
10
  ```
11
11
 
12
12
  ## O que fazer
13
13
 
14
- 1. **Leia o contexto atual do projeto:**
15
- - `package.json` / `composer.json` / `Cargo.toml` / `requirements.txt` para entender stack
16
- - Estrutura de pastas existente
17
- - `DARE/DESIGN.md` se já existir (não sobrescreva sem autorização)
14
+ ### 1. Leia o contexto atual do projeto
18
15
 
19
- 2. **Crie ou atualize `DARE/DESIGN.md` com:**
20
- - **Descrição** clara do que será construído
21
- - **Objetivos** mensuráveis (use checkboxes `- [ ]`)
22
- - **Restrições** técnicas, de negócio e de tempo
23
- - **Critérios de sucesso** verificáveis
24
- - **Stakeholders** e personas afetadas
25
- - **Riscos** identificados
16
+ - `package.json` / `composer.json` / `Cargo.toml` / `go.mod` / `requirements.txt` — stack atual
17
+ - Estrutura de pastas existente
18
+ - `DARE/DESIGN.md` se existir não sobrescreva sem aprovação explícita do usuário
26
19
 
27
- 3. **Use o template** em `templates/DESIGN-template.md` se disponível
20
+ ### 2. Gere `DARE/DESIGN.md` com as seguintes seções obrigatórias
28
21
 
29
- 4. **Confirme com o usuário** antes de prosseguir para a fase de Architect
22
+ **2.1 Descrição** 3 a 5 frases claras: o que é, qual problema resolve, quem usa.
30
23
 
31
- ## Formato esperado do DESIGN.md
24
+ **2.2 Objetivos e Métricas de Sucesso** — tabela numerada (O-01, O-02…) com métrica verificável e meta numérica para cada objetivo. Evite objetivos vagos como "melhorar performance" — use "p99 < 200 ms".
32
25
 
33
- ```markdown
34
- # DESIGN: <Nome do Projeto/Feature>
26
+ **2.3 Stakeholders** — tabela: papel, nome/time, interesse principal.
35
27
 
36
- ## Descrição
37
- <O que será construído e por quê>
28
+ **2.4 Requisitos Funcionais** — tabela numerada (RF-01, RF-02…) com prioridade MUST/SHOULD/COULD e critério de aceite verificável para cada um.
38
29
 
39
- ## Objetivos
40
- - [ ] Objetivo mensurável 1
41
- - [ ] Objetivo mensurável 2
30
+ **2.5 Requisitos Não-Funcionais** — tabela numerada (RNF-01…) cobrindo: performance, disponibilidade, segurança (autenticação, rate limiting, segredos), observabilidade, manutenibilidade.
42
31
 
43
- ## Restrições
44
- - Técnicas: <stack, performance, etc>
45
- - Negócio: <prazo, budget, regulatórias>
32
+ **2.6 Requisitos de Segurança** — tabela numerada (RS-01…). Inclua **sempre**:
33
+ - RS-01: validação de entrada (OWASP A03)
34
+ - RS-02: proteção de dados sensíveis / hash de senhas (OWASP A02)
35
+ - RS-03: controle de acesso por recurso (OWASP A01)
36
+ - RS-04: auditoria de dependências sem CVE HIGH/CRITICAL (OWASP A06)
37
+ - RS-05: secrets via variáveis de ambiente — nunca em código
38
+ - Adicione requisitos específicos do domínio do projeto
46
39
 
47
- ## Critérios de Sucesso
48
- - <Critério verificável 1>
49
- - <Critério verificável 2>
40
+ **2.7 Stack Técnica** — tabela por camada com tecnologia e versão.
50
41
 
51
- ## Riscos
52
- - <Risco 1 e mitigação>
53
- ```
42
+ **2.8 Integrações Externas** — tabela: sistema, tipo, protocolo, direção, dados trocados, responsável. Inclua apenas integrações confirmadas; marque incertas como "A confirmar".
43
+
44
+ **2.9 Restrições** — prazo, orçamento de infra, limitações técnicas, compliance regulatório.
45
+
46
+ **2.10 Fora do Escopo (v1)** — lista explícita do que NÃO será feito e o motivo.
47
+
48
+ **2.11 Riscos e Mitigações** — tabela: risco, probabilidade (Alta/Média/Baixa), impacto (Alto/Médio/Baixo), mitigação concreta.
49
+
50
+ **2.12 Checklist de Aprovação** — checkboxes para o usuário revisar antes de avançar ao `/dare-blueprint`.
51
+
52
+ ### 3. Use o template em `templates/DESIGN-template.md`
53
+
54
+ Siga o template fielmente. Não omita seções — use "[A definir]" se a informação não estiver disponível ainda, mas deixe a seção explícita para o usuário preencher.
55
+
56
+ ### 4. Qualidade esperada
57
+
58
+ O DESIGN.md gerado deve permitir que qualquer engenheiro novo no projeto entenda:
59
+ - **O QUÊ** vai ser construído (requisitos funcionais)
60
+ - **POR QUÊ** (objetivos e métricas)
61
+ - **PARA QUEM** (stakeholders e personas)
62
+ - **O QUE NÃO** vai ser feito (escopo)
63
+ - **QUAIS RISCOS** existem (com mitigação)
64
+
65
+ ### 5. Confirme com o usuário antes de prosseguir
66
+
67
+ Após gerar o DESIGN.md, apresente um resumo das seções geradas e pergunte se o usuário quer ajustar algo antes de rodar `/dare-blueprint`.
54
68
 
55
69
  $ARGUMENTS