@dewtech/dare-cli 2.11.0 → 2.13.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 +58 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/core/types/project.d.ts +5 -0
- package/dist/core/types/project.d.ts.map +1 -1
- package/dist/utils/project-generator.d.ts +4 -0
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +125 -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 +12 -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 +174 -168
- 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 +45 -15
- 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,34 +1,129 @@
|
|
|
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
|
-
|
|
1
|
+
# DESIGN: [Nome do Projeto / Feature]
|
|
2
|
+
|
|
3
|
+
> **Versão:** v1.0 | **Data:** YYYY-MM-DD | **Status:** DRAFT → APROVADO
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. DESCRIÇÃO
|
|
8
|
+
|
|
9
|
+
[O que é o sistema e qual problema ele resolve — 3 a 5 frases claras e objetivas. Evite jargão.]
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 2. OBJETIVOS E MÉTRICAS DE SUCESSO
|
|
14
|
+
|
|
15
|
+
| # | Objetivo | Métrica verificável | Meta |
|
|
16
|
+
|---|----------|---------------------|------|
|
|
17
|
+
| O-01 | [ex: Reduzir tempo de resposta da API] | p99 latência em produção | < 200 ms |
|
|
18
|
+
| O-02 | [ex: Aumentar cobertura de testes] | `coverage --summary` | > 80 % |
|
|
19
|
+
| O-03 | | | |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 3. STAKEHOLDERS
|
|
24
|
+
|
|
25
|
+
| Papel | Nome / Time | Interesse principal |
|
|
26
|
+
|-------|-------------|---------------------|
|
|
27
|
+
| Product Owner | | Aprovação de scope e prioridades |
|
|
28
|
+
| Tech Lead | | Decisões arquiteturais |
|
|
29
|
+
| Usuário Final | | [Persona] — [necessidade] |
|
|
30
|
+
| Operações / SRE | | SLA, alertas, deploys |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 4. REQUISITOS FUNCIONAIS
|
|
35
|
+
|
|
36
|
+
| ID | Requisito | Prioridade | Critério de aceite |
|
|
37
|
+
|----|-----------|------------|--------------------|
|
|
38
|
+
| RF-01 | | MUST | |
|
|
39
|
+
| RF-02 | | SHOULD | |
|
|
40
|
+
| RF-03 | | COULD | |
|
|
41
|
+
|
|
42
|
+
> Prioridades: **MUST** (bloqueia v1) · **SHOULD** (importante, mas não bloqueia) · **COULD** (nice to have)
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 5. REQUISITOS NÃO-FUNCIONAIS
|
|
47
|
+
|
|
48
|
+
| ID | Categoria | Requisito | Meta |
|
|
49
|
+
|----|-----------|-----------|------|
|
|
50
|
+
| RNF-01 | Performance | [ex: API responde dentro do SLA] | p95 < 500 ms |
|
|
51
|
+
| RNF-02 | Disponibilidade | [ex: uptime mensal] | ≥ 99,5 % |
|
|
52
|
+
| RNF-03 | Segurança | Autenticação obrigatória em todos os endpoints sensíveis | JWT + refresh |
|
|
53
|
+
| RNF-04 | Segurança | Rate limiting em endpoints públicos | ≤ 60 req/min/IP |
|
|
54
|
+
| RNF-05 | Segurança | Dados sensíveis (PII, tokens) nunca em logs | auditoria automática |
|
|
55
|
+
| RNF-06 | Observabilidade | Logs estruturados (JSON) com trace-id | OpenTelemetry |
|
|
56
|
+
| RNF-07 | Manutenibilidade | Cobertura de testes | > 80 % |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 6. REQUISITOS DE SEGURANÇA
|
|
61
|
+
|
|
62
|
+
| ID | Requisito | Referência |
|
|
63
|
+
|----|-----------|------------|
|
|
64
|
+
| RS-01 | Todas as entradas do usuário validadas no servidor antes de qualquer processamento | OWASP A03 |
|
|
65
|
+
| RS-02 | Senhas e segredos nunca armazenados em texto plano; hash Argon2/Bcrypt | OWASP A02 |
|
|
66
|
+
| RS-03 | Controle de acesso verificado por recurso (não só por rota) | OWASP A01 |
|
|
67
|
+
| RS-04 | Dependências auditadas antes de cada release (sem CVE HIGH/CRITICAL) | OWASP A06 |
|
|
68
|
+
| RS-05 | Segredos gerenciados via variáveis de ambiente / vault — nunca em código | Supply chain |
|
|
69
|
+
| RS-06 | [Requisito específico do domínio] | |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 7. STACK TÉCNICA
|
|
74
|
+
|
|
75
|
+
| Camada | Tecnologia | Versão |
|
|
76
|
+
|--------|-----------|--------|
|
|
77
|
+
| Linguagem / Runtime | | |
|
|
78
|
+
| Framework principal | | |
|
|
79
|
+
| Banco de dados | | |
|
|
80
|
+
| Cache | | |
|
|
81
|
+
| Frontend | | |
|
|
82
|
+
| Infra / deploy | | |
|
|
83
|
+
| Observabilidade | | |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 8. INTEGRAÇÕES EXTERNAS
|
|
88
|
+
|
|
89
|
+
| Sistema | Tipo | Protocolo | Direção | Dados trocados | Responsável |
|
|
90
|
+
|---------|------|-----------|---------|----------------|-------------|
|
|
91
|
+
| [ex: Stripe] | Pagamento | REST/webhook | Saída + entrada | Cobrança, confirmação | Time Pagamentos |
|
|
92
|
+
| [ex: Auth0] | IdP | OIDC | Entrada | ID Token, Claims | Time Auth |
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 9. RESTRIÇÕES
|
|
97
|
+
|
|
98
|
+
- **Prazo:** [Data de entrega ou milestone]
|
|
99
|
+
- **Orçamento de infra:** [Limite de custo mensal ou por request]
|
|
100
|
+
- **Limitações técnicas:** [ex: não pode usar banco NoSQL; deve usar Go ≥ 1.22]
|
|
101
|
+
- **Regulatórias / Compliance:** [ex: LGPD, GDPR, SOC 2, PCI-DSS se aplicável]
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 10. FORA DO ESCOPO (v1)
|
|
106
|
+
|
|
107
|
+
- [Funcionalidade adiada para v2 — e o motivo]
|
|
108
|
+
- [Caso de uso que NÃO será tratado nesta versão]
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 11. RISCOS E MITIGAÇÕES
|
|
113
|
+
|
|
114
|
+
| # | Risco | Probabilidade | Impacto | Mitigação |
|
|
115
|
+
|---|-------|---------------|---------|-----------|
|
|
116
|
+
| R-01 | [ex: Latência alta no serviço de terceiros] | Média | Alto | Circuit breaker + fallback |
|
|
117
|
+
| R-02 | [ex: Falta de dados históricos para ML] | Alta | Médio | Dataset sintético inicial |
|
|
118
|
+
| R-03 | | | | |
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## 12. CHECKLIST DE APROVAÇÃO
|
|
123
|
+
|
|
124
|
+
- [ ] Requisitos funcionais revisados e priorizados
|
|
125
|
+
- [ ] Requisitos de segurança validados pelo Tech Lead
|
|
126
|
+
- [ ] Stack técnica aprovada
|
|
127
|
+
- [ ] Integrações externas confirmadas com responsáveis
|
|
128
|
+
- [ ] Fora do escopo alinhado com Product Owner
|
|
129
|
+
- [ ] Riscos críticos com mitigação definida
|
|
@@ -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)_
|