@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.
- package/README.md +5 -4
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +35 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/core/types/project.d.ts +3 -0
- package/dist/core/types/project.d.ts.map +1 -1
- package/dist/utils/project-generator.d.ts +2 -0
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +122 -29
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/stack-bootstrap.d.ts +2 -0
- package/dist/utils/stack-bootstrap.d.ts.map +1 -1
- package/dist/utils/stack-bootstrap.js +5 -3
- package/dist/utils/stack-bootstrap.js.map +1 -1
- package/package.json +1 -1
- package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -53
- package/templates/ide/antigravity/templates/DESIGN-template.md +129 -34
- package/templates/ide/antigravity/templates/TASK-SPEC-template.md +100 -43
- package/templates/ide/claude/.claude/commands/dare-blueprint.md +87 -81
- package/templates/ide/claude/.claude/commands/dare-design.md +45 -31
- package/templates/ide/claude/.claude/commands/dare-execute.md +131 -52
- package/templates/ide/claude/.claude/commands/dare-security.md +232 -0
- package/templates/ide/claude/CLAUDE.md +38 -10
- package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -53
- package/templates/ide/claude/templates/DESIGN-template.md +129 -34
- package/templates/ide/claude/templates/TASK-SPEC-template.md +100 -43
- package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +51 -21
- package/templates/ide/cursor/.cursor/commands/generate-design.md +35 -18
- package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -57
- package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -53
- package/templates/ide/cursor/templates/DESIGN-template.md +129 -34
- package/templates/ide/cursor/templates/TASK-SPEC-template.md +100 -43
|
@@ -1,43 +1,100 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
##
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
|
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` —
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
|
43
|
-
task_output_chars: 4000
|
|
44
|
-
timeout_seconds: 600
|
|
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-
|
|
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: "
|
|
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
|
|
59
|
-
mais snippets de até 2000 chars de cada pai>
|
|
96
|
+
<prompt completamente self-contained>
|
|
60
97
|
```
|
|
61
98
|
|
|
62
|
-
**Regras inegociáveis
|
|
99
|
+
**Regras inegociáveis:**
|
|
63
100
|
|
|
64
101
|
- `id` em kebab-case e único
|
|
65
|
-
- `depends_on` **mínimo** — só
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
-
|
|
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 |
|
|
126
|
+
| task-001 | Containerização | ⏳ PENDING | — | LOW |
|
|
95
127
|
| task-002 | DB migrations | ⏳ PENDING | — | MED |
|
|
96
|
-
| task-003 | Auth
|
|
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
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
- **
|
|
106
|
-
- **Validation Gates** específicos da stack (
|
|
107
|
-
-
|
|
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
|
-
|
|
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
|
-
- [ ]
|
|
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
|
-
- [ ]
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
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
|
|
164
|
+
Após aprovação:
|
|
150
165
|
|
|
151
166
|
```bash
|
|
152
|
-
# Paralelo (recomendado)
|
|
153
167
|
dare execute --parallel --runner claude
|
|
154
|
-
|
|
155
|
-
#
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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 já existir — não sobrescreva sem aprovação explícita do usuário
|
|
26
19
|
|
|
27
|
-
|
|
20
|
+
### 2. Gere `DARE/DESIGN.md` com as seguintes seções obrigatórias
|
|
28
21
|
|
|
29
|
-
|
|
22
|
+
**2.1 Descrição** — 3 a 5 frases claras: o que é, qual problema resolve, quem usa.
|
|
30
23
|
|
|
31
|
-
|
|
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
|
-
|
|
34
|
-
# DESIGN: <Nome do Projeto/Feature>
|
|
26
|
+
**2.3 Stakeholders** — tabela: papel, nome/time, interesse principal.
|
|
35
27
|
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
52
|
-
|
|
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
|