@dewtech/dare-cli 0.3.8 → 1.0.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/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +125 -10
- package/dist/utils/project-generator.js.map +1 -1
- package/package.json +1 -1
- package/templates/ide/claude/.claude/commands/dare-blueprint.md +65 -0
- package/templates/ide/claude/.claude/commands/dare-design.md +55 -0
- package/templates/ide/claude/.claude/commands/dare-execute.md +73 -0
- package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -0
- package/templates/ide/claude/.claude/settings.example.json +35 -0
- package/templates/ide/claude/CLAUDE.md +108 -0
- package/templates/ide/claude/templates/BLUEPRINT-template.md +53 -0
- package/templates/ide/claude/templates/DESIGN-template.md +34 -0
- package/templates/ide/claude/templates/TASK-SPEC-template.md +43 -0
- package/templates/ide/claude/templates/TASKS-template.md +26 -0
- package/templates/ide/claude/templates/TELEMETRY-template.md +125 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-generator.d.ts","sourceRoot":"","sources":["../../src/utils/project-generator.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,aAAa,CAAC;IAC/C,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACnC,WAAW,CAAC,EAAE,CAAC,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;IACpD,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;IAC3E,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACtC,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"project-generator.d.ts","sourceRoot":"","sources":["../../src/utils/project-generator.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,aAAa,CAAC;IAC/C,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACnC,WAAW,CAAC,EAAE,CAAC,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;IACpD,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;IAC3E,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACtC,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEnF;AAED,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAwCf"}
|
|
@@ -43,6 +43,8 @@ export async function generateProjectStructure(config) {
|
|
|
43
43
|
// Write shared DARE README and templates
|
|
44
44
|
await fs.writeFile(path.join(outputDir, 'DARE', 'README.md'), generateSharedConfig(name));
|
|
45
45
|
await writeDareTemplates(outputDir);
|
|
46
|
+
// Write graphrag config
|
|
47
|
+
await writeGraphragConfig(outputDir, config);
|
|
46
48
|
// Generate project templates
|
|
47
49
|
if (structure === 'mcp-server') {
|
|
48
50
|
await generateMcpTemplate(outputDir, config);
|
|
@@ -72,6 +74,7 @@ export async function installDareToExistingProject(projectDir, config) {
|
|
|
72
74
|
await fs.writeJSON(path.join(outputDir, 'dare.config.json'), configData, { spaces: 2 });
|
|
73
75
|
await fs.writeFile(path.join(outputDir, 'DARE', 'README.md'), generateSharedConfig(name));
|
|
74
76
|
await writeDareTemplates(outputDir);
|
|
77
|
+
await writeGraphragConfig(outputDir, { ...config, outputDir });
|
|
75
78
|
if (ide === 'cursor' || ide === 'hybrid') {
|
|
76
79
|
const cursorRulesContent = structure === 'mcp-server'
|
|
77
80
|
? generateMcpCursorRules({ mcpTransport: config.mcpTransport, mcpLanguage: config.mcpLanguage, mcpFeatures: config.mcpFeatures, graphrag, mcp })
|
|
@@ -344,6 +347,105 @@ async function writeAntigravityFiles(dir, _config) {
|
|
|
344
347
|
await fs.ensureDir(path.join(dir, '.agents', 'workflows'));
|
|
345
348
|
}
|
|
346
349
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
350
|
+
// Helper: write dare-graph.yml — graphrag configuration
|
|
351
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
352
|
+
async function writeGraphragConfig(dir, config) {
|
|
353
|
+
const { graphrag } = config;
|
|
354
|
+
let content;
|
|
355
|
+
if (graphrag === 'sqlite') {
|
|
356
|
+
content = `# DARE Knowledge Graph — SQLite
|
|
357
|
+
backend: sqlite
|
|
358
|
+
|
|
359
|
+
sqlite:
|
|
360
|
+
path: .dare/graph.db
|
|
361
|
+
|
|
362
|
+
# Node types tracked in the graph
|
|
363
|
+
nodes:
|
|
364
|
+
- task
|
|
365
|
+
- file
|
|
366
|
+
- schema
|
|
367
|
+
- endpoint
|
|
368
|
+
- component
|
|
369
|
+
- entity
|
|
370
|
+
- concept
|
|
371
|
+
|
|
372
|
+
# Relationship types
|
|
373
|
+
edges:
|
|
374
|
+
- depends_on
|
|
375
|
+
- implements
|
|
376
|
+
- uses
|
|
377
|
+
- references
|
|
378
|
+
- related_to
|
|
379
|
+
- contains
|
|
380
|
+
- extends
|
|
381
|
+
`;
|
|
382
|
+
}
|
|
383
|
+
else if (graphrag === 'neo4j') {
|
|
384
|
+
content = `# DARE Knowledge Graph — Neo4j
|
|
385
|
+
backend: neo4j
|
|
386
|
+
|
|
387
|
+
neo4j:
|
|
388
|
+
url: bolt://localhost:7687
|
|
389
|
+
username: neo4j
|
|
390
|
+
password: password
|
|
391
|
+
database: dare
|
|
392
|
+
|
|
393
|
+
# Node types tracked in the graph
|
|
394
|
+
nodes:
|
|
395
|
+
- task
|
|
396
|
+
- file
|
|
397
|
+
- schema
|
|
398
|
+
- endpoint
|
|
399
|
+
- component
|
|
400
|
+
- entity
|
|
401
|
+
- concept
|
|
402
|
+
|
|
403
|
+
# Relationship types
|
|
404
|
+
edges:
|
|
405
|
+
- depends_on
|
|
406
|
+
- implements
|
|
407
|
+
- uses
|
|
408
|
+
- references
|
|
409
|
+
- related_to
|
|
410
|
+
- contains
|
|
411
|
+
- extends
|
|
412
|
+
`;
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
// json
|
|
416
|
+
content = `# DARE Knowledge Graph — JSON
|
|
417
|
+
backend: json
|
|
418
|
+
|
|
419
|
+
json:
|
|
420
|
+
path: .dare/graph.json
|
|
421
|
+
|
|
422
|
+
# Node types tracked in the graph
|
|
423
|
+
nodes:
|
|
424
|
+
- task
|
|
425
|
+
- file
|
|
426
|
+
- schema
|
|
427
|
+
- endpoint
|
|
428
|
+
- component
|
|
429
|
+
- entity
|
|
430
|
+
- concept
|
|
431
|
+
|
|
432
|
+
# Relationship types
|
|
433
|
+
edges:
|
|
434
|
+
- depends_on
|
|
435
|
+
- implements
|
|
436
|
+
- uses
|
|
437
|
+
- references
|
|
438
|
+
- related_to
|
|
439
|
+
- contains
|
|
440
|
+
- extends
|
|
441
|
+
`;
|
|
442
|
+
}
|
|
443
|
+
const destPath = path.join(dir, 'dare-graph.yml');
|
|
444
|
+
if (!await fs.pathExists(destPath)) {
|
|
445
|
+
await fs.writeFile(destPath, content);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
347
449
|
// Helper: write all DARE template files into templates/
|
|
348
450
|
// Source of truth: implementations/cursor/templates/ (or antigravity/templates/)
|
|
349
451
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -358,18 +460,31 @@ async function writeDareTemplates(dir) {
|
|
|
358
460
|
}
|
|
359
461
|
async function generateClaudeFiles(dir, config) {
|
|
360
462
|
const { structure, backend, frontend, graphrag, mcp } = config;
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
463
|
+
const ideTemplatesDir = path.join(getTemplatesDir(), 'ide', 'claude');
|
|
464
|
+
// CLAUDE.md — copiar de implementations/claude/ (com fallback para gerar dinâmico)
|
|
465
|
+
const claudeMdSrc = path.join(ideTemplatesDir, 'CLAUDE.md');
|
|
466
|
+
if (await fs.pathExists(claudeMdSrc)) {
|
|
467
|
+
await fs.copy(claudeMdSrc, path.join(dir, 'CLAUDE.md'), { overwrite: true });
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
const claudeMdContent = structure === 'mcp-server'
|
|
471
|
+
? generateMcpClaudeCodeRules({ mcpTransport: config.mcpTransport, mcpLanguage: config.mcpLanguage, mcpFeatures: config.mcpFeatures, graphrag, mcp })
|
|
472
|
+
: generateClaudeCodeRules({ backend, frontend, graphrag, mcp });
|
|
473
|
+
await fs.writeFile(path.join(dir, 'CLAUDE.md'), claudeMdContent);
|
|
474
|
+
}
|
|
475
|
+
// .claude/commands/ — copiar de implementations/claude/.claude/commands/
|
|
476
|
+
const commandsSrc = path.join(ideTemplatesDir, '.claude', 'commands');
|
|
367
477
|
await fs.ensureDir(path.join(dir, '.claude', 'commands'));
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
478
|
+
if (await fs.pathExists(commandsSrc)) {
|
|
479
|
+
await fs.copy(commandsSrc, path.join(dir, '.claude', 'commands'), { overwrite: true });
|
|
480
|
+
}
|
|
481
|
+
else {
|
|
482
|
+
const commands = generateClaudeCommands(structure);
|
|
483
|
+
for (const [filename, content] of Object.entries(commands)) {
|
|
484
|
+
await fs.writeFile(path.join(dir, '.claude', 'commands', filename), content);
|
|
485
|
+
}
|
|
371
486
|
}
|
|
372
|
-
// .claude/settings.json —
|
|
487
|
+
// .claude/settings.json — sempre dinâmico (depende do stack)
|
|
373
488
|
await fs.writeFile(path.join(dir, '.claude', 'settings.json'), generateClaudeSettings({ backend, frontend, structure }));
|
|
374
489
|
}
|
|
375
490
|
// Resolve templates directory (works both locally and after npm install)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-generator.js","sourceRoot":"","sources":["../../src/utils/project-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-generator.js","sourceRoot":"","sources":["../../src/utils/project-generator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# /dare-blueprint
|
|
2
|
+
|
|
3
|
+
Gera o `DARE/BLUEPRINT.md`, `DARE/dare-dag.yaml` e `DARE/TASKS.md` a partir do DESIGN.md.
|
|
4
|
+
|
|
5
|
+
## Como usar
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/dare-blueprint
|
|
9
|
+
/dare-blueprint --stack node-nestjs+react
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## O que fazer
|
|
13
|
+
|
|
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.
|
|
52
|
+
|
|
53
|
+
## Templates disponíveis
|
|
54
|
+
|
|
55
|
+
- `templates/BLUEPRINT-template.md`
|
|
56
|
+
- `templates/TASKS-template.md`
|
|
57
|
+
|
|
58
|
+
## Próximo passo
|
|
59
|
+
|
|
60
|
+
Após aprovação humana, rodar:
|
|
61
|
+
```bash
|
|
62
|
+
dare execute --parallel
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# /dare-design
|
|
2
|
+
|
|
3
|
+
Gera ou atualiza o `DARE/DESIGN.md` a partir de uma descrição do projeto ou feature.
|
|
4
|
+
|
|
5
|
+
## Como usar
|
|
6
|
+
|
|
7
|
+
```
|
|
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
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## O que fazer
|
|
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)
|
|
18
|
+
|
|
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
|
|
26
|
+
|
|
27
|
+
3. **Use o template** em `templates/DESIGN-template.md` se disponível
|
|
28
|
+
|
|
29
|
+
4. **Confirme com o usuário** antes de prosseguir para a fase de Architect
|
|
30
|
+
|
|
31
|
+
## Formato esperado do DESIGN.md
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
# DESIGN: <Nome do Projeto/Feature>
|
|
35
|
+
|
|
36
|
+
## Descrição
|
|
37
|
+
<O que será construído e por quê>
|
|
38
|
+
|
|
39
|
+
## Objetivos
|
|
40
|
+
- [ ] Objetivo mensurável 1
|
|
41
|
+
- [ ] Objetivo mensurável 2
|
|
42
|
+
|
|
43
|
+
## Restrições
|
|
44
|
+
- Técnicas: <stack, performance, etc>
|
|
45
|
+
- Negócio: <prazo, budget, regulatórias>
|
|
46
|
+
|
|
47
|
+
## Critérios de Sucesso
|
|
48
|
+
- <Critério verificável 1>
|
|
49
|
+
- <Critério verificável 2>
|
|
50
|
+
|
|
51
|
+
## Riscos
|
|
52
|
+
- <Risco 1 e mitigação>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# /dare-execute
|
|
2
|
+
|
|
3
|
+
Executa uma task específica do `DARE/dare-dag.yaml` seguindo o Ralph Loop.
|
|
4
|
+
|
|
5
|
+
## Como usar
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/dare-execute task-001
|
|
9
|
+
/dare-execute task-003 --force
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## O que fazer
|
|
13
|
+
|
|
14
|
+
1. **Leia `DARE/BLUEPRINT.md`** — obrigatório antes de qualquer implementação
|
|
15
|
+
|
|
16
|
+
2. **Leia a task especificada** em `DARE/dare-dag.yaml`:
|
|
17
|
+
- Extraia `subtask_prompt`
|
|
18
|
+
- Verifique `complexity` (LOW/MED/HIGH)
|
|
19
|
+
- Liste `depends_on`
|
|
20
|
+
|
|
21
|
+
3. **Verifique dependências:**
|
|
22
|
+
- Todas as tasks em `depends_on` devem ter status `DONE` em `DARE/TASKS.md`
|
|
23
|
+
- Se alguma estiver `PENDING`, alerte o usuário (a menos que `--force`)
|
|
24
|
+
- Se alguma estiver `FAILED`, recuse executar
|
|
25
|
+
|
|
26
|
+
4. **Implemente a task** seguindo o `subtask_prompt`:
|
|
27
|
+
- Siga padrões do `CLAUDE.md`
|
|
28
|
+
- Crie/modifique arquivos conforme spec
|
|
29
|
+
- Adicione testes
|
|
30
|
+
- Implemente validações de segurança
|
|
31
|
+
|
|
32
|
+
5. **Execute o Ralph Loop:**
|
|
33
|
+
- **Build:** compile sem erros
|
|
34
|
+
- **Test:** todos os testes passando (incluindo os novos)
|
|
35
|
+
- **Lint:** sem warnings
|
|
36
|
+
|
|
37
|
+
6. **Atualize `DARE/TASKS.md`:**
|
|
38
|
+
- Mude status para `DONE`
|
|
39
|
+
- Adicione duração e tokens consumidos se possível
|
|
40
|
+
|
|
41
|
+
7. **Crie artifact em `DARE/EXECUTION/task-<id>.md`:**
|
|
42
|
+
```markdown
|
|
43
|
+
# Task <id>: <título>
|
|
44
|
+
|
|
45
|
+
## Status: ✅ DONE
|
|
46
|
+
## Duração: <ms>
|
|
47
|
+
|
|
48
|
+
## Arquivos criados/modificados
|
|
49
|
+
- path/to/file1.ts
|
|
50
|
+
- path/to/file2.test.ts
|
|
51
|
+
|
|
52
|
+
## Testes
|
|
53
|
+
- ✅ test_should_x
|
|
54
|
+
- ✅ test_should_y
|
|
55
|
+
|
|
56
|
+
## Ralph Loop
|
|
57
|
+
- ✅ Build
|
|
58
|
+
- ✅ Test
|
|
59
|
+
- ✅ Lint
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
8. **Sugira a próxima task** disponível (com dependências satisfeitas)
|
|
63
|
+
|
|
64
|
+
## Modo Paralelo
|
|
65
|
+
|
|
66
|
+
Para executar múltiplas tasks em paralelo, use o CLI direto:
|
|
67
|
+
```bash
|
|
68
|
+
dare execute --parallel --runner claude
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Isto executa tasks por rank topológico, respeitando `depends_on`.
|
|
72
|
+
|
|
73
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# /dare-tasks
|
|
2
|
+
|
|
3
|
+
Exibe o status atual de todas as tasks do projeto e sugere próximos passos.
|
|
4
|
+
|
|
5
|
+
## Como usar
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/dare-tasks
|
|
9
|
+
/dare-tasks --pending
|
|
10
|
+
/dare-tasks --ready
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## O que fazer
|
|
14
|
+
|
|
15
|
+
1. **Leia os arquivos:**
|
|
16
|
+
- `DARE/TASKS.md` — status de cada task
|
|
17
|
+
- `DARE/dare-dag.yaml` — grafo de dependências
|
|
18
|
+
|
|
19
|
+
2. **Exiba uma tabela formatada:**
|
|
20
|
+
```
|
|
21
|
+
| ID | Título | Status | Depends On | Complexity |
|
|
22
|
+
|----------|---------------------------|-------------|------------------|------------|
|
|
23
|
+
| task-001 | Setup project structure | ✅ DONE | - | LOW |
|
|
24
|
+
| task-002 | Implement DB schema | 🔄 RUNNING | - | MED |
|
|
25
|
+
| task-003 | Implement core endpoints | ⏳ PENDING | task-001, 002 | HIGH |
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
3. **Destaque tasks prontas para execução:**
|
|
29
|
+
- Status `PENDING` E todas as `depends_on` com status `DONE`
|
|
30
|
+
- Estas podem ser executadas com `/dare-execute <id>`
|
|
31
|
+
|
|
32
|
+
4. **Calcule e exiba progresso:**
|
|
33
|
+
- Total de tasks
|
|
34
|
+
- Tasks DONE / FAILED / SKIPPED / PENDING / RUNNING
|
|
35
|
+
- Percentual concluído
|
|
36
|
+
- Barra visual: `█████░░░░░ 50%`
|
|
37
|
+
|
|
38
|
+
5. **Identifique gargalos:**
|
|
39
|
+
- Tasks com mais dependências
|
|
40
|
+
- Tasks bloqueando outras
|
|
41
|
+
- Tasks no caminho crítico
|
|
42
|
+
|
|
43
|
+
6. **Filtros opcionais:**
|
|
44
|
+
- `--pending` — só PENDING
|
|
45
|
+
- `--ready` — só prontas para execução
|
|
46
|
+
- `--failed` — só FAILED
|
|
47
|
+
- `--blocked` — PENDING com dependências não satisfeitas
|
|
48
|
+
|
|
49
|
+
## Exemplo de output
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
📋 DARE Tasks Status
|
|
53
|
+
|
|
54
|
+
| ID | Título | Status | Depends On |
|
|
55
|
+
|----------|---------------------------|-------------|------------------|
|
|
56
|
+
| task-001 | Setup project structure | ✅ DONE | - |
|
|
57
|
+
| task-002 | Implement DB schema | ✅ DONE | - |
|
|
58
|
+
| task-003 | Implement core endpoints | 🟢 READY | task-001, 002 |
|
|
59
|
+
| task-004 | Implement auth | 🟢 READY | task-001, 002 |
|
|
60
|
+
| task-005 | Write tests | 🔒 BLOCKED | task-003, 004 |
|
|
61
|
+
|
|
62
|
+
Progress: 2/5 tasks (40%)
|
|
63
|
+
████████░░░░░░░░░░░░ 40%
|
|
64
|
+
|
|
65
|
+
🟢 Ready to execute: task-003, task-004
|
|
66
|
+
Run: /dare-execute task-003
|
|
67
|
+
Or: dare execute --parallel (executa task-003 e task-004 em paralelo)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(git:*)",
|
|
5
|
+
"Bash(npm run build)",
|
|
6
|
+
"Bash(npm test)",
|
|
7
|
+
"Bash(npx eslint src)",
|
|
8
|
+
"Bash(dare:*)",
|
|
9
|
+
"Read(DARE/**)",
|
|
10
|
+
"Write(DARE/**)",
|
|
11
|
+
"Read(src/**)",
|
|
12
|
+
"Write(src/**)",
|
|
13
|
+
"Read(.claude/**)"
|
|
14
|
+
],
|
|
15
|
+
"deny": [
|
|
16
|
+
"Bash(rm -rf:*)",
|
|
17
|
+
"Bash(git push --force:*)",
|
|
18
|
+
"Write(.env)",
|
|
19
|
+
"Write(.env.local)"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"hooks": {
|
|
23
|
+
"PostToolUse": [
|
|
24
|
+
{
|
|
25
|
+
"matcher": "Write",
|
|
26
|
+
"hooks": [
|
|
27
|
+
{
|
|
28
|
+
"type": "command",
|
|
29
|
+
"command": "echo 'File saved. Remember to run Ralph Loop: build && test && lint before marking task DONE'"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# DARE Framework
|
|
2
|
+
|
|
3
|
+
## Metodologia
|
|
4
|
+
Você é o Claude Code, assistente de desenvolvimento seguindo o método DARE:
|
|
5
|
+
- **D**esign: Requisitos e objetivos definidos em `DARE/DESIGN.md`
|
|
6
|
+
- **A**rchitect: Blueprint técnico e grafo de tasks em `DARE/BLUEPRINT.md`
|
|
7
|
+
- **R**eview: Validação humana antes de executar
|
|
8
|
+
- **E**xecute: Implementação task a task com Ralph Loop
|
|
9
|
+
|
|
10
|
+
## Regras Fundamentais
|
|
11
|
+
- Sempre leia `DARE/BLUEPRINT.md` antes de implementar qualquer feature
|
|
12
|
+
- Atualize o status em `DARE/TASKS.md` ao concluir cada task
|
|
13
|
+
- Nunca pule o Ralph Loop (build → test → lint) antes de marcar uma task como DONE
|
|
14
|
+
- Aprovação humana obrigatória antes de merge para a branch principal
|
|
15
|
+
- Use os slash commands `/dare-design`, `/dare-blueprint`, `/dare-execute`, `/dare-tasks`
|
|
16
|
+
|
|
17
|
+
## Estrutura do Projeto
|
|
18
|
+
```
|
|
19
|
+
DARE/
|
|
20
|
+
├── DESIGN.md ← Fase D — requisitos (humano define)
|
|
21
|
+
├── BLUEPRINT.md ← Fase A — arquitetura (IA propõe, humano valida)
|
|
22
|
+
├── TASKS.md ← rastreamento de tasks
|
|
23
|
+
├── dare-dag.yaml ← grafo de dependências para execução paralela
|
|
24
|
+
└── EXECUTION/ ← logs de execução por task
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## DAG Task Runner (Execução Paralela)
|
|
28
|
+
|
|
29
|
+
O DARE suporta execução paralela de tasks via DAG:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
dare blueprint # gera BLUEPRINT.md + dare-dag.yaml + TASKS.md
|
|
33
|
+
dare execute --parallel # executa tasks em paralelo respeitando depends_on
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- Tasks com `depends_on: []` rodam no rank 0 (paralelas entre si)
|
|
37
|
+
- Tasks com `depends_on: [task-001]` rodam após task-001 concluir
|
|
38
|
+
- O canvas `DARE/.canvas.md` mostra o status ao vivo
|
|
39
|
+
|
|
40
|
+
## Backends Suportados
|
|
41
|
+
|
|
42
|
+
### Rust/Axum
|
|
43
|
+
- Use Rust idioms — sem `unwrap()` em produção
|
|
44
|
+
- Async/await com Tokio runtime
|
|
45
|
+
- Axum extractors para request handling
|
|
46
|
+
- Erros com `thiserror`/`anyhow`
|
|
47
|
+
- Ralph Loop: `cargo clippy && cargo test`
|
|
48
|
+
|
|
49
|
+
### Node.js/NestJS
|
|
50
|
+
- Decorators e dependency injection do NestJS
|
|
51
|
+
- DTOs com class-validator para todos os inputs
|
|
52
|
+
- TypeORM ou Prisma para acesso a dados
|
|
53
|
+
- Ralph Loop: `npm run build && npm test && npx eslint src`
|
|
54
|
+
|
|
55
|
+
### Python/FastAPI
|
|
56
|
+
- Pydantic v2 para validação
|
|
57
|
+
- Type hints PEP 484 obrigatórios
|
|
58
|
+
- async/await em todas as operações IO
|
|
59
|
+
- Ralph Loop: `python -m pytest && ruff check .`
|
|
60
|
+
|
|
61
|
+
### PHP/Laravel
|
|
62
|
+
- PSR-12 coding standards
|
|
63
|
+
- FormRequests para validação de input
|
|
64
|
+
- API Resources para responses
|
|
65
|
+
- Ralph Loop: `php artisan test && ./vendor/bin/phpstan analyse`
|
|
66
|
+
|
|
67
|
+
## Frontends Suportados
|
|
68
|
+
|
|
69
|
+
### React 18+
|
|
70
|
+
- Functional components com hooks apenas
|
|
71
|
+
- TypeScript em todos os componentes
|
|
72
|
+
- React Query para server state
|
|
73
|
+
- Ralph Loop: `npm run build && npm test && npx eslint src`
|
|
74
|
+
|
|
75
|
+
### Vue 3+
|
|
76
|
+
- Composition API com `<script setup>`
|
|
77
|
+
- TypeScript em todos os componentes
|
|
78
|
+
- Pinia para state management
|
|
79
|
+
- Ralph Loop: `npm run build && npm test && npx eslint src`
|
|
80
|
+
|
|
81
|
+
## Knowledge Graph (GraphRAG)
|
|
82
|
+
|
|
83
|
+
O projeto mantém um grafo de conhecimento em `dare-graph.yml`:
|
|
84
|
+
- **Nodes:** task, file, schema, endpoint, component, entity, concept
|
|
85
|
+
- **Edges:** depends_on, implements, uses, references, related_to, contains, extends
|
|
86
|
+
|
|
87
|
+
Use `@dewtech/dare-graphrag` para indexar e consultar o grafo.
|
|
88
|
+
|
|
89
|
+
## DARE MCP Server (opcional)
|
|
90
|
+
|
|
91
|
+
Quando habilitado, o MCP Server expõe queries de contexto em `http://localhost:3000`:
|
|
92
|
+
- `POST /context/query` com `{"type": "architecture"|"task"|"dependency", "query": "..."}`
|
|
93
|
+
- Reduz uso de tokens em ~95% comparado a reler arquivos inteiros
|
|
94
|
+
|
|
95
|
+
## Ralph Loop (obrigatório antes de DONE)
|
|
96
|
+
|
|
97
|
+
1. **Build** — compile e verifique erros
|
|
98
|
+
2. **Test** — rode a suite de testes completa
|
|
99
|
+
3. **Lint** — rode o linter/formatter
|
|
100
|
+
4. Só marque DONE se os 3 passos passarem sem erros
|
|
101
|
+
|
|
102
|
+
## Segurança
|
|
103
|
+
|
|
104
|
+
- Nunca exponha secrets em logs ou outputs
|
|
105
|
+
- Valide e sanitize todas as entradas
|
|
106
|
+
- Use proteções OWASP Top 10
|
|
107
|
+
- Autenticação/autorização em todos os endpoints sensíveis
|
|
108
|
+
- Rate limiting em endpoints públicos
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# BLUEPRINT DE IMPLEMENTAÇÃO: [Nome do Projeto]
|
|
2
|
+
|
|
3
|
+
## 1. VISÃO GERAL DA ARQUITETURA
|
|
4
|
+
[Descrição da arquitetura do sistema: Monolito modular, Microserviços, Hexagonal, etc.]
|
|
5
|
+
[Diagrama em formato Mermaid se aplicável]
|
|
6
|
+
|
|
7
|
+
## 2. STACK TÉCNICA DEFINIDA
|
|
8
|
+
- **Linguagem:** [ex: PHP 8.3]
|
|
9
|
+
- **Framework:** [ex: Laravel 11.x]
|
|
10
|
+
- **Banco de Dados:** [ex: PostgreSQL 16.x]
|
|
11
|
+
- **Pacotes Essenciais:** [Lista de dependências do composer/npm]
|
|
12
|
+
|
|
13
|
+
## 3. MODELO DE DADOS
|
|
14
|
+
[Entidades principais, relacionamentos e tipos de dados]
|
|
15
|
+
[Exemplo de Migration Laravel ou Model Pydantic/Go Struct]
|
|
16
|
+
|
|
17
|
+
## 4. ESTRUTURA DE PASTAS E ARQUIVOS
|
|
18
|
+
[Árvore de diretórios completa focando nos arquivos que serão criados/modificados]
|
|
19
|
+
```text
|
|
20
|
+
app/
|
|
21
|
+
├── Http/
|
|
22
|
+
│ ├── Controllers/
|
|
23
|
+
│ └── Requests/
|
|
24
|
+
├── Models/
|
|
25
|
+
├── Services/
|
|
26
|
+
└── ...
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 5. ENDPOINTS DA API
|
|
30
|
+
| Método | Endpoint | Controller@Method | Descrição | Request Body | Response | Auth |
|
|
31
|
+
|---|---|---|---|---|---|---|
|
|
32
|
+
| POST | /api/v1/users | UserController@store | Cria usuário | {name, email, pass} | {id, token} | Não |
|
|
33
|
+
| GET | /api/v1/users | UserController@index | Lista usuários | - | [{id, name}] | Sim |
|
|
34
|
+
|
|
35
|
+
## 6. CÓDIGO-BASE / PADRÕES A SEGUIR
|
|
36
|
+
[Trechos de código críticos que definem o padrão do projeto]
|
|
37
|
+
[Exemplo: Interface de repositório, FormRequest base, Trait de respostas de API]
|
|
38
|
+
|
|
39
|
+
## 7. PLANO DE EXECUÇÃO (FASES)
|
|
40
|
+
- **Fase 1:** Setup do projeto e Banco de Dados (Migrations/Seeds)
|
|
41
|
+
- **Fase 2:** Autenticação e Autorização (Middlewares/Policies)
|
|
42
|
+
- **Fase 3:** [Módulo Principal 1]
|
|
43
|
+
- **Fase 4:** [Módulo Principal 2]
|
|
44
|
+
- **Fase N:** Testes e Documentação
|
|
45
|
+
|
|
46
|
+
## 8. COMANDOS DE SETUP
|
|
47
|
+
[Todos os comandos para rodar o projeto do zero, ex: docker-compose up, php artisan migrate, etc]
|
|
48
|
+
|
|
49
|
+
## 9. CRITÉRIOS DE SUCESSO GERAIS
|
|
50
|
+
- [ ] O código passa em todos os testes (`php artisan test`)
|
|
51
|
+
- [ ] Não há erros de linting (`./vendor/bin/pint`)
|
|
52
|
+
- [ ] A API responde conforme os endpoints definidos
|
|
53
|
+
- [ ] A documentação Swagger/OpenAPI está atualizada
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# PROJETO: [Nome do Projeto]
|
|
2
|
+
|
|
3
|
+
## DESCRIÇÃO
|
|
4
|
+
[O que é o sistema em 2-3 frases claras e objetivas]
|
|
5
|
+
|
|
6
|
+
## FUNCIONALIDADES
|
|
7
|
+
- [Funcionalidade 1: descrição detalhada]
|
|
8
|
+
- [Funcionalidade 2: descrição detalhada]
|
|
9
|
+
- [...]
|
|
10
|
+
|
|
11
|
+
## STACK TÉCNICA
|
|
12
|
+
- **Linguagem:** [ex: PHP 8.3]
|
|
13
|
+
- **Framework:** [ex: Laravel 11]
|
|
14
|
+
- **Banco de Dados:** [ex: PostgreSQL 16]
|
|
15
|
+
- **Frontend:** [ex: Vue.js 3 / Nuxt]
|
|
16
|
+
- **Outros:** [ex: Redis, S3]
|
|
17
|
+
|
|
18
|
+
## REQUISITOS TÉCNICOS E DE NEGÓCIO
|
|
19
|
+
- [Requisito 1: ex. API deve responder em menos de 200ms]
|
|
20
|
+
- [Requisito 2: ex. Autenticação via JWT (Sanctum)]
|
|
21
|
+
- [Requisito 3: ex. Cobertura de testes unitários > 80%]
|
|
22
|
+
|
|
23
|
+
## INTEGRAÇÕES
|
|
24
|
+
- [Integração 1: ex. Stripe para pagamentos (link da doc)]
|
|
25
|
+
- [Integração 2: ex. AWS S3 para armazenamento de arquivos]
|
|
26
|
+
|
|
27
|
+
## RESTRIÇÕES
|
|
28
|
+
- **Prazo:** [Data limite ou restrição de tempo]
|
|
29
|
+
- **Orçamento:** [Limitações de custo com infra/APIs]
|
|
30
|
+
- **Limitações Técnicas:** [ex. Não pode usar banco NoSQL]
|
|
31
|
+
|
|
32
|
+
## FORA DO ESCOPO
|
|
33
|
+
- [O que NÃO será feito nesta versão]
|
|
34
|
+
- [Funcionalidades adiadas para v2]
|
|
@@ -0,0 +1,43 @@
|
|
|
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.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# TASKS DE IMPLEMENTAÇÃO: [Nome do Projeto]
|
|
2
|
+
|
|
3
|
+
Este documento contém o desdobramento do Blueprint aprovado em tarefas atômicas e executáveis para a IA.
|
|
4
|
+
Cada tarefa listada aqui possui um arquivo correspondente no diretório `DARE/EXECUTION/` contendo sua especificação detalhada.
|
|
5
|
+
|
|
6
|
+
## FASES DE IMPLEMENTAÇÃO
|
|
7
|
+
|
|
8
|
+
### Fase 1: [Nome da Fase, ex: Setup e Banco de Dados]
|
|
9
|
+
- [ ] **Task 001:** [Objetivo curto, ex: Criar Migration e Model de Usuário]
|
|
10
|
+
- [ ] **Task 002:** [Objetivo curto, ex: Configurar Traits e Classes Base]
|
|
11
|
+
|
|
12
|
+
### Fase 2: [Nome da Fase, ex: Autenticação]
|
|
13
|
+
- [ ] **Task 003:** [Objetivo curto, ex: Implementar AuthController (Login/Register)]
|
|
14
|
+
- [ ] **Task 004:** [Objetivo curto, ex: Criar Middlewares de verificação de permissão]
|
|
15
|
+
|
|
16
|
+
## DEPENDÊNCIAS
|
|
17
|
+
|
|
18
|
+
- A **Fase 2** depende da conclusão 100% da **Fase 1**.
|
|
19
|
+
- A **Task 004** depende da **Task 003**.
|
|
20
|
+
|
|
21
|
+
## INSTRUÇÕES PARA EXECUÇÃO
|
|
22
|
+
|
|
23
|
+
Para executar uma tarefa, use o comando `/execute-task [id-da-task]` no Cursor Composer.
|
|
24
|
+
Exemplo: `/execute-task task-001`
|
|
25
|
+
|
|
26
|
+
A IA lerá o arquivo `DARE/EXECUTION/task-001.md`, implementará o código, rodará os testes e validará os critérios de sucesso. Após a execução, marque a tarefa como concluída (com um `x` entre os colchetes `[x]`) neste documento.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Telemetria do Projeto: [Nome do Projeto]
|
|
2
|
+
|
|
3
|
+
## Resumo Executivo
|
|
4
|
+
|
|
5
|
+
| Métrica | Valor |
|
|
6
|
+
|---------|-------|
|
|
7
|
+
| **Projeto** | [Nome do Projeto] |
|
|
8
|
+
| **Data de Início** | [Data] |
|
|
9
|
+
| **Tokens Totais Processados** | [Número] (monitoramento de uso) |
|
|
10
|
+
| **IA Utilizada** | Cursor (por compliance) |
|
|
11
|
+
| **Modelos do Cursor Utilizados** | [Lista: GPT-4 Turbo, Claude, Gemini] |
|
|
12
|
+
| **Tempo Total de Execução** | [Horas/Minutos] |
|
|
13
|
+
| **Número de Tasks Executadas** | [Número] |
|
|
14
|
+
|
|
15
|
+
## Detalhamento por Etapa
|
|
16
|
+
|
|
17
|
+
### 1. Design (`/generate-design`)
|
|
18
|
+
|
|
19
|
+
| Campo | Valor |
|
|
20
|
+
|-------|-------|
|
|
21
|
+
| Data/Hora | [Timestamp] |
|
|
22
|
+
| Modelo do Cursor | [GPT-4 Turbo / Claude 3.5 Sonnet / Gemini 2.0 Flash] |
|
|
23
|
+
| Tokens Estimados | [Número] |
|
|
24
|
+
| Tempo de Execução | [Tempo] |
|
|
25
|
+
| Comando Executado | `/generate-design "[Descrição]"` |
|
|
26
|
+
| Observações | [Qualidade da resposta, ajustes necessários, etc] |
|
|
27
|
+
| Status | ✓ Sucesso / ✗ Falha |
|
|
28
|
+
|
|
29
|
+
### 2. Blueprint (`/generate-blueprint`)
|
|
30
|
+
|
|
31
|
+
| Campo | Valor |
|
|
32
|
+
|-------|-------|
|
|
33
|
+
| Data/Hora | [Timestamp] |
|
|
34
|
+
| Modelo do Cursor | [GPT-4 Turbo / Claude 3.5 Sonnet / Gemini 2.0 Flash] |
|
|
35
|
+
| Tokens Estimados | [Número] |
|
|
36
|
+
| Tempo de Execução | [Tempo] |
|
|
37
|
+
| Arquivo Processado | DARE/DESIGN.md |
|
|
38
|
+
| Observações | [Qualidade da arquitetura, endpoints claros, etc] |
|
|
39
|
+
| Status | ✓ Sucesso / ✗ Falha |
|
|
40
|
+
|
|
41
|
+
### 3. Tasks (`/generate-tasks`)
|
|
42
|
+
|
|
43
|
+
| Campo | Valor |
|
|
44
|
+
|-------|-------|
|
|
45
|
+
| Data/Hora | [Timestamp] |
|
|
46
|
+
| Modelo do Cursor | [GPT-4 Turbo / Claude 3.5 Sonnet / Gemini 2.0 Flash] |
|
|
47
|
+
| Tokens Estimados | [Número] |
|
|
48
|
+
| Tempo de Execução | [Tempo] |
|
|
49
|
+
| Arquivo Processado | DARE/BLUEPRINT.md |
|
|
50
|
+
| Tasks Geradas | [Número] |
|
|
51
|
+
| Observações | [Qualidade das tasks, clareza das especificações, etc] |
|
|
52
|
+
| Status | ✓ Sucesso / ✗ Falha |
|
|
53
|
+
|
|
54
|
+
### 4. Execute Tasks (`/execute-task`)
|
|
55
|
+
|
|
56
|
+
#### Task 001: [Nome da Task]
|
|
57
|
+
|
|
58
|
+
| Campo | Valor |
|
|
59
|
+
|-------|-------|
|
|
60
|
+
| Data/Hora | [Timestamp] |
|
|
61
|
+
| Modelo do Cursor | [GPT-4 Turbo / Claude 3.5 Sonnet / Gemini 2.0 Flash] |
|
|
62
|
+
| Tokens Estimados | [Número] |
|
|
63
|
+
| Tempo de Execução | [Tempo] |
|
|
64
|
+
| Tentativas (Ralph Loop) | [Número] |
|
|
65
|
+
| Observações | [Código limpo, testes, etc] |
|
|
66
|
+
| Status | ✓ Sucesso / ✗ Falha |
|
|
67
|
+
|
|
68
|
+
#### Task 002: [Nome da Task]
|
|
69
|
+
[Repetir estrutura acima para cada task]
|
|
70
|
+
|
|
71
|
+
## Análise de Tokens Processados
|
|
72
|
+
|
|
73
|
+
| Etapa | Tokens Estimados | % do Total | Tempo Total |
|
|
74
|
+
|-------|------------------|-----------|-------------|
|
|
75
|
+
| Design | [Número] | [%] | [Tempo] |
|
|
76
|
+
| Blueprint | [Número] | [%] | [Tempo] |
|
|
77
|
+
| Tasks | [Número] | [%] | [Tempo] |
|
|
78
|
+
| Execute (N tasks) | [Número] | [%] | [Tempo] |
|
|
79
|
+
| **TOTAL** | **[Número]** | **100%** | **[Tempo]** |
|
|
80
|
+
|
|
81
|
+
## Análise de Modelos do Cursor
|
|
82
|
+
|
|
83
|
+
| Modelo | Tokens Processados | % do Total | Tempo Médio | Melhor Para |
|
|
84
|
+
|--------|------------------|-----------|------------|------------|
|
|
85
|
+
| GPT-4 Turbo | [Número] | [%] | [Tempo] | Tarefas complexas |
|
|
86
|
+
| Claude 3.5 Sonnet | [Número] | [%] | [Tempo] | Análise profunda |
|
|
87
|
+
| Gemini 2.0 Flash | [Número] | [%] | [Tempo] | Tarefas simples |
|
|
88
|
+
| **TOTAL** | **[Número]** | **100%** | **[Tempo]** | - |
|
|
89
|
+
|
|
90
|
+
## Análise de Performance
|
|
91
|
+
|
|
92
|
+
| Métrica | Valor |
|
|
93
|
+
|---------|-------|
|
|
94
|
+
| Tempo Médio por Task | [Tempo] |
|
|
95
|
+
| Taxa de Sucesso (1ª tentativa) | [%] |
|
|
96
|
+
| Taxa de Sucesso (com Ralph Loop) | [%] |
|
|
97
|
+
| Tokens Médios por Task | [Número] |
|
|
98
|
+
| Modelo Mais Utilizado | [Modelo] |
|
|
99
|
+
| Modelo Mais Rápido | [Modelo] |
|
|
100
|
+
|
|
101
|
+
## Otimizações Recomendadas
|
|
102
|
+
|
|
103
|
+
1. **[Recomendação 1]**
|
|
104
|
+
- Descrição: [Detalhes]
|
|
105
|
+
- Economia Estimada: [Valor/Percentual]
|
|
106
|
+
- Ação: [Como implementar]
|
|
107
|
+
|
|
108
|
+
2. **[Recomendação 2]**
|
|
109
|
+
- Descrição: [Detalhes]
|
|
110
|
+
- Economia Estimada: [Valor/Percentual]
|
|
111
|
+
- Ação: [Como implementar]
|
|
112
|
+
|
|
113
|
+
3. **[Recomendação 3]**
|
|
114
|
+
- Descrição: [Detalhes]
|
|
115
|
+
- Economia Estimada: [Valor/Percentual]
|
|
116
|
+
- Ação: [Como implementar]
|
|
117
|
+
|
|
118
|
+
## Notas e Observações
|
|
119
|
+
|
|
120
|
+
[Espaço para anotações adicionais, como problemas encontrados, decisões tomadas, lições aprendidas, etc.]
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
**Última atualização:** [Data]
|
|
125
|
+
**Próxima revisão:** [Data]
|