@dewtech/dare-cli 2.4.1 → 2.6.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 +68 -2
- package/dist/__tests__/dag-runner/ralph-loop.test.d.ts +2 -0
- package/dist/__tests__/dag-runner/ralph-loop.test.d.ts.map +1 -0
- package/dist/__tests__/dag-runner/ralph-loop.test.js +109 -0
- package/dist/__tests__/dag-runner/ralph-loop.test.js.map +1 -0
- package/dist/bin/dare.js +2 -0
- package/dist/bin/dare.js.map +1 -1
- package/dist/commands/blueprint.d.ts.map +1 -1
- package/dist/commands/blueprint.js +31 -23
- package/dist/commands/blueprint.js.map +1 -1
- package/dist/commands/bootstrap.d.ts +14 -0
- package/dist/commands/bootstrap.d.ts.map +1 -0
- package/dist/commands/bootstrap.js +103 -0
- package/dist/commands/bootstrap.js.map +1 -0
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +59 -5
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/dag-runner/ralph-loop.d.ts +42 -0
- package/dist/dag-runner/ralph-loop.d.ts.map +1 -0
- package/dist/dag-runner/ralph-loop.js +185 -0
- package/dist/dag-runner/ralph-loop.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/project-generator.d.ts +6 -0
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +112 -16
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/stack-bootstrap.d.ts +22 -0
- package/dist/utils/stack-bootstrap.d.ts.map +1 -0
- package/dist/utils/stack-bootstrap.js +468 -0
- package/dist/utils/stack-bootstrap.js.map +1 -0
- package/package.json +1 -1
- package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +30 -2
- package/templates/ide/claude/.claude/commands/dare-blueprint.md +6 -0
- package/templates/ide/cursor/.cursor/commands/generate-tasks.md +13 -0
- package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +37 -2
|
@@ -81,12 +81,20 @@ tasks:
|
|
|
81
81
|
2. Para cada prompt:
|
|
82
82
|
- leia spec_file se houver
|
|
83
83
|
- implemente
|
|
84
|
-
- rode build/test/lint (Ralph Loop)
|
|
85
84
|
3. dare execute --complete <id> --output "<resumo + arquivos tocados>"
|
|
86
|
-
|
|
85
|
+
↓ o CLI roda o RALPH LOOP automático (build → test → lint)
|
|
86
|
+
↓ se passar: task vira DONE
|
|
87
|
+
↓ se falhar: task vira FAILED com stderr capturado; corrija e retente
|
|
87
88
|
4. Volte ao passo 1 até não haver mais tasks ready
|
|
88
89
|
```
|
|
89
90
|
|
|
91
|
+
> **Ralph Loop é AUTOMÁTICO e OBRIGATÓRIO.** Você NÃO roda build/test/lint
|
|
92
|
+
> manualmente — o `dare execute --complete` faz isso. Se algum gate falhar,
|
|
93
|
+
> a task NÃO vai para DONE; vai para FAILED. Corrija e retente.
|
|
94
|
+
>
|
|
95
|
+
> **Não existe flag para pular o Ralph Loop.** Toda task passa pelos 3 gates
|
|
96
|
+
> da stack do projeto.
|
|
97
|
+
|
|
90
98
|
Comandos úteis:
|
|
91
99
|
|
|
92
100
|
```bash
|
|
@@ -164,6 +172,23 @@ O CLI reescreve a cada `--complete`/`--fail`:
|
|
|
164
172
|
| Tudo em rank 0 | Adicione deps reais quando há contenção |
|
|
165
173
|
| Cadeia linear | Reveja se as deps são necessárias |
|
|
166
174
|
|
|
175
|
+
## Antipatterns que você NÃO deve criar
|
|
176
|
+
|
|
177
|
+
- ❌ Task **"Ralph Loop final"** / **"Hardening"** / **"QA"** — gate é por task
|
|
178
|
+
- ❌ Tests com `assertTrue(true)` — o gate `test` roda de verdade
|
|
179
|
+
- ❌ "Setup project structure" antes de containerizar o app
|
|
180
|
+
|
|
181
|
+
## Ordem recomendada das primeiras tasks
|
|
182
|
+
|
|
183
|
+
1. **Containerize app** (Dockerfile + docker-compose + healthcheck)
|
|
184
|
+
2. **Database schema** (migrations + factories)
|
|
185
|
+
3. **Core endpoints / componentes**
|
|
186
|
+
4. **Auth / autorização**
|
|
187
|
+
5. **Test suite real** (assertions de verdade)
|
|
188
|
+
|
|
189
|
+
A task de container/compose pode estar em outra ordem para projetos sem
|
|
190
|
+
DB ou em monorepo já containerizado. Mas quase sempre é uma das primeiras.
|
|
191
|
+
|
|
167
192
|
## Checklist antes de aprovar
|
|
168
193
|
|
|
169
194
|
- [ ] Pelo menos 2 tasks no rank 0
|
|
@@ -172,4 +197,7 @@ O CLI reescreve a cada `--complete`/`--fail`:
|
|
|
172
197
|
- [ ] `complexity` reflete o esforço real
|
|
173
198
|
- [ ] `id` em kebab-case e único
|
|
174
199
|
- [ ] Sem ciclos
|
|
200
|
+
- [ ] **Sem task de "Ralph Loop final"** — gate é por task
|
|
201
|
+
- [ ] **Tests com assertions reais** — placeholder quebra o gate
|
|
202
|
+
- [ ] Container/runtime resolvido cedo
|
|
175
203
|
- [ ] Os 3 artefatos consistentes
|
|
@@ -71,6 +71,12 @@ tasks:
|
|
|
71
71
|
- `complexity` honesta: `HIGH` só para lógica crítica/segurança
|
|
72
72
|
- Output cap de 4000 chars: se a task gera muito, escreva em arquivo e
|
|
73
73
|
retorne só 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
|
|
74
80
|
|
|
75
81
|
### 4. Gerar `DARE/TASKS.md` (visão humana)
|
|
76
82
|
|
|
@@ -29,6 +29,19 @@ executável pelo CLI) e `EXECUTION/task-<id>.md` (specs detalhadas por task).
|
|
|
29
29
|
ter tasks específicas ou estar explícitas nas tasks relevantes.
|
|
30
30
|
- Atribua `complexity` a cada task: LOW / MED / HIGH.
|
|
31
31
|
|
|
32
|
+
#### Regras inegociáveis de ordenação
|
|
33
|
+
|
|
34
|
+
1. **A primeira task deve preparar o ambiente local** — Dockerfile +
|
|
35
|
+
`docker-compose.yml` + healthcheck. Sem isso o Ralph Loop não tem onde
|
|
36
|
+
rodar build/test/lint. Exceção: projeto que já vive em monorepo
|
|
37
|
+
containerizado.
|
|
38
|
+
2. **Não crie task "Ralph Loop final" / "Hardening final"** — o Ralph Loop
|
|
39
|
+
roda automático em cada `dare execute --complete`. Não é uma task; é um
|
|
40
|
+
gate por task.
|
|
41
|
+
3. **Tests devem ter assertions reais** desde a task que os escreve.
|
|
42
|
+
Placeholders (`assertTrue(true)` etc.) fazem o gate `test` falhar e a
|
|
43
|
+
task vai para FAILED.
|
|
44
|
+
|
|
32
45
|
### 3. Gerar `DARE/TASKS.md` (visão humana)
|
|
33
46
|
|
|
34
47
|
Tabela com todas as tasks e dependências em formato legível:
|
|
@@ -76,12 +76,22 @@ tasks:
|
|
|
76
76
|
2. Para cada prompt:
|
|
77
77
|
- leia spec_file se houver
|
|
78
78
|
- implemente
|
|
79
|
-
- rode build/test/lint (Ralph Loop)
|
|
80
79
|
3. dare execute --complete <id> --output "<resumo + arquivos tocados>"
|
|
81
|
-
|
|
80
|
+
↓ o CLI roda o RALPH LOOP automático (build → test → lint)
|
|
81
|
+
↓ se passar: task vira DONE
|
|
82
|
+
↓ se falhar: task vira FAILED com stderr capturado; corrija e retente
|
|
82
83
|
4. Volte ao passo 1 até não haver mais tasks ready
|
|
83
84
|
```
|
|
84
85
|
|
|
86
|
+
> **Ralph Loop é AUTOMÁTICO e OBRIGATÓRIO.** Você NÃO roda build/test/lint
|
|
87
|
+
> manualmente — o `dare execute --complete` faz isso. Se algum gate falhar,
|
|
88
|
+
> a task NÃO vai para DONE; vai para FAILED. Você corrige o código e tenta
|
|
89
|
+
> de novo (`dare execute --complete <id>` outra vez, ou `--reset` antes se
|
|
90
|
+
> precisar zerar histórico).
|
|
91
|
+
>
|
|
92
|
+
> **Não existe flag para pular o Ralph Loop.** Toda task passa pelos 3 gates
|
|
93
|
+
> da stack do projeto.
|
|
94
|
+
|
|
85
95
|
Comandos úteis:
|
|
86
96
|
|
|
87
97
|
```bash
|
|
@@ -175,6 +185,28 @@ nada; o CLI cuida do cascade.
|
|
|
175
185
|
| Tudo em rank 0 | Conflito de escrita no mesmo arquivo | Adicione `depends_on` quando há contenção |
|
|
176
186
|
| Cadeia linear longa | Sem ganho de paralelismo | Reveja se as deps são reais |
|
|
177
187
|
|
|
188
|
+
## Antipatterns que você NÃO deve criar
|
|
189
|
+
|
|
190
|
+
- ❌ Task chamada **"Ralph Loop final"**, **"Hardening final"**, **"QA final"**
|
|
191
|
+
— Ralph Loop roda automaticamente em cada `--complete`. Não é uma task.
|
|
192
|
+
- ❌ Tests com `assertTrue(true)` ou equivalentes — o gate `test` vai rodar
|
|
193
|
+
de verdade. Placeholder não engana o CLI; só atrasa o ciclo.
|
|
194
|
+
- ❌ "Setup project structure" como primeira task quando o ambiente ainda
|
|
195
|
+
não foi containerizado — sem container/runtime, o Ralph Loop não roda.
|
|
196
|
+
|
|
197
|
+
## Ordem recomendada das primeiras tasks
|
|
198
|
+
|
|
199
|
+
1. **Containerize app** (Dockerfile + docker-compose + healthcheck) — sem
|
|
200
|
+
isso o Ralph Loop não tem onde rodar
|
|
201
|
+
2. **Database schema** (migrations + factories)
|
|
202
|
+
3. **Core endpoints / componentes**
|
|
203
|
+
4. **Auth / autorização**
|
|
204
|
+
5. **Test suite real** (com assertions de verdade)
|
|
205
|
+
|
|
206
|
+
A task de container/compose pode estar em **outra ordem** se o projeto já
|
|
207
|
+
vive em um container do monorepo, ou se a stack não precisa de DB. Mas
|
|
208
|
+
quase sempre é uma das primeiras — nunca a última.
|
|
209
|
+
|
|
178
210
|
## Checklist antes de aprovar um DAG
|
|
179
211
|
|
|
180
212
|
- [ ] Pelo menos 2 tasks no rank 0
|
|
@@ -183,4 +215,7 @@ nada; o CLI cuida do cascade.
|
|
|
183
215
|
- [ ] `complexity` reflete o esforço real (não tudo HIGH)
|
|
184
216
|
- [ ] `id` em kebab-case e único
|
|
185
217
|
- [ ] Sem ciclos
|
|
218
|
+
- [ ] **Sem task de "Ralph Loop final"** — Ralph Loop é gate por task
|
|
219
|
+
- [ ] **Tests com assertions reais** — placeholder quebra o gate `test`
|
|
220
|
+
- [ ] Container/runtime resolvido cedo, não na última task
|
|
186
221
|
- [ ] `TASKS.md` + `dare-dag.yaml` + `EXECUTION/task-*.md` consistentes
|