@dewtech/dare-cli 0.3.5 → 0.3.8

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 (72) hide show
  1. package/dist/bin/dare.js +4 -1
  2. package/dist/bin/dare.js.map +1 -1
  3. package/dist/utils/project-generator.d.ts.map +1 -1
  4. package/dist/utils/project-generator.js +143 -72
  5. package/dist/utils/project-generator.js.map +1 -1
  6. package/dist/utils/templates.d.ts +1 -1
  7. package/dist/utils/templates.d.ts.map +1 -1
  8. package/dist/utils/templates.js +92 -98
  9. package/dist/utils/templates.js.map +1 -1
  10. package/package.json +8 -6
  11. package/templates/backend/node-nestjs/.env.example +9 -0
  12. package/templates/backend/node-nestjs/nest-cli.json +8 -0
  13. package/templates/backend/node-nestjs/package.json +50 -0
  14. package/templates/backend/node-nestjs/src/app.controller.ts +12 -0
  15. package/templates/backend/node-nestjs/src/app.module.ts +15 -0
  16. package/templates/backend/node-nestjs/src/app.service.ts +8 -0
  17. package/templates/backend/node-nestjs/src/main.ts +24 -0
  18. package/templates/backend/node-nestjs/tsconfig.json +21 -0
  19. package/templates/backend/php-laravel/.env.example +22 -0
  20. package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -0
  21. package/templates/backend/php-laravel/composer.json +40 -0
  22. package/templates/backend/python-fastapi/.env.example +4 -0
  23. package/templates/backend/python-fastapi/app/api/router.py +8 -0
  24. package/templates/backend/python-fastapi/app/core/config.py +20 -0
  25. package/templates/backend/python-fastapi/main.py +35 -0
  26. package/templates/backend/python-fastapi/requirements.txt +13 -0
  27. package/templates/backend/rust-axum/.env.example +3 -0
  28. package/templates/backend/rust-axum/Cargo.toml +23 -0
  29. package/templates/backend/rust-axum/src/errors.rs +30 -0
  30. package/templates/backend/rust-axum/src/main.rs +32 -0
  31. package/templates/backend/rust-axum/src/routes.rs +6 -0
  32. package/templates/frontend/react/index.html +12 -0
  33. package/templates/frontend/react/package.json +35 -0
  34. package/templates/frontend/react/src/App.tsx +25 -0
  35. package/templates/frontend/react/src/main.tsx +9 -0
  36. package/templates/frontend/vue/package.json +32 -0
  37. package/templates/frontend/vue/src/App.vue +7 -0
  38. package/templates/frontend/vue/src/main.ts +10 -0
  39. package/templates/frontend/vue/src/router/index.ts +14 -0
  40. package/templates/frontend/vue/src/views/HomeView.vue +6 -0
  41. package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +224 -0
  42. package/templates/ide/antigravity/.agents/skills/dare-bugfix-design/SKILL.md +76 -0
  43. package/templates/ide/antigravity/.agents/skills/dare-design/SKILL.md +180 -0
  44. package/templates/ide/antigravity/.agents/skills/dare-execute/SKILL.md +264 -0
  45. package/templates/ide/antigravity/.agents/skills/dare-feature-design/SKILL.md +74 -0
  46. package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +229 -0
  47. package/templates/ide/antigravity/templates/BLUEPRINT-template.md +53 -0
  48. package/templates/ide/antigravity/templates/DESIGN-template.md +34 -0
  49. package/templates/ide/antigravity/templates/TASK-SPEC-template.md +43 -0
  50. package/templates/ide/antigravity/templates/TASKS-template.md +26 -0
  51. package/templates/ide/antigravity/templates/TELEMETRY-template.md +125 -0
  52. package/templates/ide/cursor/.cursor/commands/execute-task.md +19 -0
  53. package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +21 -0
  54. package/templates/ide/cursor/.cursor/commands/generate-bugfix-design.md +64 -0
  55. package/templates/ide/cursor/.cursor/commands/generate-design.md +18 -0
  56. package/templates/ide/cursor/.cursor/commands/generate-docker-compose.md +18 -0
  57. package/templates/ide/cursor/.cursor/commands/generate-dockerfile.md +17 -0
  58. package/templates/ide/cursor/.cursor/commands/generate-feature-design.md +64 -0
  59. package/templates/ide/cursor/.cursor/commands/generate-tasks.md +20 -0
  60. package/templates/ide/cursor/.cursor/commands/telemetry-report.md +42 -0
  61. package/templates/ide/cursor/.cursor/rules/skill-bugfix-design.mdc +51 -0
  62. package/templates/ide/cursor/.cursor/rules/skill-docker.mdc +33 -0
  63. package/templates/ide/cursor/.cursor/rules/skill-feature-design.mdc +43 -0
  64. package/templates/ide/cursor/.cursor/rules/skill-laravel-api.mdc +44 -0
  65. package/templates/ide/cursor/.cursor/rules/skill-security.mdc +57 -0
  66. package/templates/ide/cursor/.cursor/rules/skill-telemetry.mdc +156 -0
  67. package/templates/ide/cursor/templates/BLUEPRINT-template.md +53 -0
  68. package/templates/ide/cursor/templates/DESIGN-template.md +34 -0
  69. package/templates/ide/cursor/templates/TASK-SPEC-template.md +43 -0
  70. package/templates/ide/cursor/templates/TASKS-template.md +26 -0
  71. package/templates/ide/cursor/templates/TELEMETRY-template.md +125 -0
  72. package/templates/shared/docker-compose.yml +41 -0
@@ -53,7 +53,7 @@ You are an AI assistant following the DARE methodology:
53
53
  ## Core Rules
54
54
  - Always read DARE/BLUEPRINT.md before implementing any feature
55
55
  - Update DARE/TASKS.md status after completing each task
56
- - Never skip the Ralph Loop (build test lint) before marking a task as DONE
56
+ - Never skip the Ralph Loop (build → test → lint) before marking a task as DONE
57
57
  - Human approval is required before merging to main branch
58
58
  - Context is king: use MCP Server queries instead of re-reading large files
59
59
 
@@ -111,7 +111,7 @@ export function generateMcpCursorRules(config) {
111
111
  const langRules = mcpLanguage === 'python'
112
112
  ? `## Language: Python
113
113
  - Use FastMCP (@mcp.tool, @mcp.resource, @mcp.prompt decorators)
114
- - Type all arguments FastMCP builds JSON schema from type hints
114
+ - Type all arguments — FastMCP builds JSON schema from type hints
115
115
  - Use docstrings as tool/resource/prompt descriptions
116
116
  - Test: npx @modelcontextprotocol/inspector python main.py
117
117
  - Lint: ruff check . && mypy .`
@@ -122,10 +122,10 @@ export function generateMcpCursorRules(config) {
122
122
  - Test: npm run inspect (MCP Inspector)
123
123
  - Build: npm run build before marking any task DONE`;
124
124
  const transportNote = mcpTransport === 'stdio'
125
- ? `- Transport: stdio server communicates via stdin/stdout, no HTTP port needed`
125
+ ? `- Transport: stdio — server communicates via stdin/stdout, no HTTP port needed`
126
126
  : mcpTransport === 'sse'
127
- ? `- Transport: SSE server exposes GET /sse and POST /messages endpoints`
128
- : `- Transport: HTTP Stream use StreamableHTTPServerTransport`;
127
+ ? `- Transport: SSE — server exposes GET /sse and POST /messages endpoints`
128
+ : `- Transport: HTTP Stream — use StreamableHTTPServerTransport`;
129
129
  return `# DARE Framework - Cursor Rules (MCP Server Project)
130
130
 
131
131
  ## DARE Methodology
@@ -138,7 +138,7 @@ You are an AI assistant following the DARE methodology:
138
138
  ## Core Rules
139
139
  - Always read DARE/BLUEPRINT.md before implementing any tool or resource
140
140
  - Update DARE/TASKS.md status after completing each task
141
- - Never skip the Ralph Loop (build test inspect) before marking a task as DONE
141
+ - Never skip the Ralph Loop (build → test → inspect) before marking a task as DONE
142
142
  - Test every tool with MCP Inspector before marking DONE
143
143
  - Validate tool inputSchema matches actual handler logic exactly
144
144
 
@@ -175,8 +175,8 @@ You are an autonomous AI agent implementing an MCP server using the DARE methodo
175
175
  Execute tasks from DARE/dare-dag.yaml in parallel when dependencies allow.
176
176
 
177
177
  ## DARE Phases
178
- - **Design**: Read DARE/DESIGN.md what tools/resources/prompts does this MCP server expose?
179
- - **Architect**: Read DARE/BLUEPRINT.md tool schemas, transport, auth strategy
178
+ - **Design**: Read DARE/DESIGN.md — what tools/resources/prompts does this MCP server expose?
179
+ - **Architect**: Read DARE/BLUEPRINT.md — tool schemas, transport, auth strategy
180
180
  - **Review**: Test each tool with MCP Inspector before marking DONE
181
181
  - **Execute**: Implement tasks, update DARE/TASKS.md
182
182
 
@@ -186,7 +186,7 @@ Execute tasks from DARE/dare-dag.yaml in parallel when dependencies allow.
186
186
  - Features: ${mcpFeatures.join(', ')}
187
187
 
188
188
  ## Implementation Rules
189
- - Each tool must have a strict inputSchema Claude uses it to call the tool
189
+ - Each tool must have a strict inputSchema — Claude uses it to call the tool
190
190
  - Test with MCP Inspector after implementing each tool
191
191
  - Never skip error handling for unknown tool names
192
192
 
@@ -204,7 +204,7 @@ export function generateClaudeCodeRules(config) {
204
204
  const { backend, frontend, graphrag, mcp } = config;
205
205
  const backendRules = {
206
206
  'rust-axum': `## Backend: Rust/Axum
207
- - Use Rust idioms no \`unwrap()\` in production code
207
+ - Use Rust idioms — no \`unwrap()\` in production code
208
208
  - Prefer async/await with Tokio runtime
209
209
  - Use Axum extractors for request handling
210
210
  - Handle all errors with \`thiserror\`/\`anyhow\`
@@ -240,27 +240,27 @@ export function generateClaudeCodeRules(config) {
240
240
  return `# DARE Framework
241
241
 
242
242
  ## Metodologia
243
- Você é o Claude Code, assistente de desenvolvimento seguindo o método DARE:
243
+ Você é o Claude Code, assistente de desenvolvimento seguindo o método DARE:
244
244
  - **D**esign: Requisitos e objetivos definidos em \`DARE/DESIGN.md\`
245
- - **A**rchitect: Blueprint técnico e grafo de tasks em \`DARE/BLUEPRINT.md\`
246
- - **R**eview: Validação humana antes de executar
247
- - **E**xecute: Implementação task a task com Ralph Loop
245
+ - **A**rchitect: Blueprint técnico e grafo de tasks em \`DARE/BLUEPRINT.md\`
246
+ - **R**eview: Validação humana antes de executar
247
+ - **E**xecute: Implementação task a task com Ralph Loop
248
248
 
249
249
  ## Regras Fundamentais
250
250
  - Sempre leia \`DARE/BLUEPRINT.md\` antes de implementar qualquer feature
251
251
  - Atualize o status em \`DARE/TASKS.md\` ao concluir cada task
252
- - Nunca pule o Ralph Loop (build test lint) antes de marcar uma task como DONE
253
- - Aprovação humana obrigatória antes de merge para a branch principal
252
+ - Nunca pule o Ralph Loop (build → test → lint) antes de marcar uma task como DONE
253
+ - Aprovação humana obrigatória antes de merge para a branch principal
254
254
  - Use os slash commands \`/dare-design\`, \`/dare-blueprint\`, \`/dare-execute\`
255
255
 
256
256
  ## Estrutura do Projeto
257
257
  \`\`\`
258
258
  DARE/
259
- ├── DESIGN.md Fase D requisitos (humano define)
260
- ├── BLUEPRINT.md Fase A arquitetura (IA propõe, humano valida)
261
- ├── TASKS.md rastreamento de tasks
262
- ├── dare-dag.yaml grafo de dependências
263
- └── EXECUTION/ logs de execução por task
259
+ ├── DESIGN.md ← Fase D — requisitos (humano define)
260
+ ├── BLUEPRINT.md ← Fase A — arquitetura (IA propõe, humano valida)
261
+ ├── TASKS.md ← rastreamento de tasks
262
+ ├── dare-dag.yaml ← grafo de dependências
263
+ └── EXECUTION/ ← logs de execução por task
264
264
  \`\`\`
265
265
 
266
266
  ${backend && backendRules[backend] ? backendRules[backend] : ''}
@@ -270,13 +270,13 @@ ${frontend && frontendRules[frontend] ? frontendRules[frontend] : ''}
270
270
  ## Contexto (${graphrag})
271
271
  ${mcp ? `- Consulte o DARE MCP Server em http://localhost:3000 para queries de contexto
272
272
  - Use POST /context/query com {"type": "architecture"|"task"|"dependency", "query": "..."}
273
- - Evite reler arquivos inteiros use queries direcionadas` : `- Use DARE/BLUEPRINT.md como fonte única de verdade para contexto`}
273
+ - Evite reler arquivos inteiros — use queries direcionadas` : `- Use DARE/BLUEPRINT.md como fonte única de verdade para contexto`}
274
274
 
275
- ## Ralph Loop (obrigatório antes de DONE)
276
- 1. Build compile e verifique erros
277
- 2. Test rode a suite de testes completa
278
- 3. Lint rode o linter/formatter
279
- 4. marque DONE se os 3 passos passarem sem erros
275
+ ## Ralph Loop (obrigatório antes de DONE)
276
+ 1. Build — compile e verifique erros
277
+ 2. Test — rode a suite de testes completa
278
+ 3. Lint — rode o linter/formatter
279
+ 4. Só marque DONE se os 3 passos passarem sem erros
280
280
  `;
281
281
  }
282
282
  export function generateMcpClaudeCodeRules(config) {
@@ -285,31 +285,31 @@ export function generateMcpClaudeCodeRules(config) {
285
285
  const langRules = mcpLanguage === 'python'
286
286
  ? `## Linguagem: Python
287
287
  - Use FastMCP com decoradores @mcp.tool, @mcp.resource, @mcp.prompt
288
- - Type hints obrigatórios FastMCP gera o JSON Schema automaticamente
289
- - Use docstrings como descrição das tools/resources/prompts
288
+ - Type hints obrigatórios — FastMCP gera o JSON Schema automaticamente
289
+ - Use docstrings como descrição das tools/resources/prompts
290
290
  - Ralph Loop: \`python -m py_compile main.py && pytest && ruff check .\`
291
291
  - Inspecione com: \`npx @modelcontextprotocol/inspector python main.py\``
292
292
  : `## Linguagem: TypeScript
293
293
  - Importe de \`@modelcontextprotocol/sdk/server/index.js\`
294
- - Defina \`inputSchema\` estrito para cada tool Claude depende dele para chamadas corretas
295
- - Use zod para validação em runtime quando necessário
294
+ - Defina \`inputSchema\` estrito para cada tool — Claude depende dele para chamadas corretas
295
+ - Use zod para validação em runtime quando necessário
296
296
  - Ralph Loop: \`npm run build && npm test\`
297
297
  - Inspecione com: \`npm run inspect\``;
298
298
  const transportNote = mcpTransport === 'stdio'
299
- ? `- Transport \`stdio\` comunicação via stdin/stdout, sem porta HTTP`
299
+ ? `- Transport \`stdio\` — comunicação via stdin/stdout, sem porta HTTP`
300
300
  : mcpTransport === 'sse'
301
- ? `- Transport \`SSE\` expõe GET /sse e POST /messages`
302
- : `- Transport \`HTTP Stream\` use StreamableHTTPServerTransport`;
303
- return `# DARE Framework MCP Server
301
+ ? `- Transport \`SSE\` — expõe GET /sse e POST /messages`
302
+ : `- Transport \`HTTP Stream\` — use StreamableHTTPServerTransport`;
303
+ return `# DARE Framework — MCP Server
304
304
 
305
305
  ## Metodologia
306
- Você é o Claude Code implementando um servidor MCP com o método DARE:
307
- - **D**esign: Quais tools/resources/prompts este servidor expõe?
308
- - **A**rchitect: Schemas das tools, estratégia de transport e auth
306
+ Você é o Claude Code implementando um servidor MCP com o método DARE:
307
+ - **D**esign: Quais tools/resources/prompts este servidor expõe?
308
+ - **A**rchitect: Schemas das tools, estratégia de transport e auth
309
309
  - **R**eview: Teste cada tool com MCP Inspector antes de marcar DONE
310
- - **E**xecute: Implementação task a task com Ralph Loop
310
+ - **E**xecute: Implementação task a task com Ralph Loop
311
311
 
312
- ## Configuração do MCP Server
312
+ ## Configuração do MCP Server
313
313
  - Transport: ${mcpTransport}
314
314
  - Features: ${featuresStr}
315
315
  ${transportNote}
@@ -323,21 +323,21 @@ ${transportNote}
323
323
 
324
324
  ${langRules}
325
325
 
326
- ## Boas Práticas MCP
326
+ ## Boas Práticas MCP
327
327
  - Nomes de tools em snake_case e descritivos
328
- - Retorne arrays de \`content\`, não strings puras
329
- - Trate nomes de tools/resources desconhecidos com erros explícitos
330
- - Nunca exponha secrets via outputs de tools ou conteúdo de resources
328
+ - Retorne arrays de \`content\`, não strings puras
329
+ - Trate nomes de tools/resources desconhecidos com erros explícitos
330
+ - Nunca exponha secrets via outputs de tools ou conteúdo de resources
331
331
  - Documente cada argumento no campo \`description\` do inputSchema
332
332
 
333
333
  ## Contexto (${graphrag})
334
334
  ${mcp ? `- Consulte o DARE MCP Server em http://localhost:3000 para contexto do projeto` : `- Use DARE/BLUEPRINT.md como fonte de verdade`}
335
335
 
336
- ## Ralph Loop (obrigatório antes de DONE)
336
+ ## Ralph Loop (obrigatório antes de DONE)
337
337
  1. Build (npm run build / python -m py_compile)
338
338
  2. Test (npm test / pytest)
339
- 3. Inspect teste as tools com MCP Inspector
340
- 4. marque DONE se os 3 passos passarem
339
+ 3. Inspect — teste as tools com MCP Inspector
340
+ 4. Só marque DONE se os 3 passos passarem
341
341
  `;
342
342
  }
343
343
  export function generateClaudeCommands(structure) {
@@ -345,20 +345,20 @@ export function generateClaudeCommands(structure) {
345
345
  return {
346
346
  'dare-design.md': `# /dare-design
347
347
 
348
- Gera ou atualiza o \`DARE/DESIGN.md\` a partir de uma descrição.
348
+ Gera ou atualiza o \`DARE/DESIGN.md\` a partir de uma descrição.
349
349
 
350
350
  ## Como usar
351
- \`/dare-design Quero uma API REST de autenticação com JWT e refresh token\`
351
+ \`/dare-design Quero uma API REST de autenticação com JWT e refresh token\`
352
352
 
353
353
  ## O que fazer
354
354
  1. Leia o contexto atual do projeto (package.json, estrutura de pastas)
355
- 2. Se \`DARE/DESIGN.md\` existir, leia-o antes de atualizar
355
+ 2. Se \`DARE/DESIGN.md\` já existir, leia-o antes de atualizar
356
356
  3. Crie ou atualize \`DARE/DESIGN.md\` com:
357
- - **Descrição** do que será construído
358
- - **Objetivos** (checkboxes mensuráveis)
359
- - **Restrições** técnicas e de negócio
360
- - **Critérios de sucesso** verificáveis
361
- 4. Confirme com o usuário antes de prosseguir para blueprint
357
+ - **Descrição** do que será construído
358
+ - **Objetivos** (checkboxes mensuráveis)
359
+ - **Restrições** técnicas e de negócio
360
+ - **Critérios de sucesso** verificáveis
361
+ 4. Confirme com o usuário antes de prosseguir para blueprint
362
362
 
363
363
  $ARGUMENTS
364
364
  `,
@@ -370,38 +370,38 @@ Gera o \`DARE/BLUEPRINT.md\`, \`DARE/dare-dag.yaml\` e \`DARE/TASKS.md\` a parti
370
370
  \`/dare-blueprint\`
371
371
 
372
372
  ## O que fazer
373
- 1. Leia \`DARE/DESIGN.md\` obrigatório
373
+ 1. Leia \`DARE/DESIGN.md\` — obrigatório
374
374
  2. Gere \`DARE/BLUEPRINT.md\` com:
375
- - Stack tecnológico detalhado
376
- - Módulos e responsabilidades
375
+ - Stack tecnológico detalhado
376
+ - Módulos e responsabilidades
377
377
  - Contratos de API (endpoints, schemas)
378
378
  - Modelo de dados
379
- - Decisões arquiteturais justificadas
380
- 3. Gere \`DARE/dare-dag.yaml\` com tasks em grafo de dependências
379
+ - Decisões arquiteturais justificadas
380
+ 3. Gere \`DARE/dare-dag.yaml\` com tasks em grafo de dependências
381
381
  4. Gere \`DARE/TASKS.md\` com tabela de status
382
- 5. **Aguarde aprovação humana antes de executar qualquer task**
382
+ 5. **Aguarde aprovação humana antes de executar qualquer task**
383
383
 
384
384
  $ARGUMENTS
385
385
  `,
386
386
  'dare-execute.md': `# /dare-execute
387
387
 
388
- Executa uma task específica do \`DARE/dare-dag.yaml\` seguindo o Ralph Loop.
388
+ Executa uma task específica do \`DARE/dare-dag.yaml\` seguindo o Ralph Loop.
389
389
 
390
390
  ## Como usar
391
391
  \`/dare-execute task-001\`
392
392
  \`/dare-execute task-003 --force\`
393
393
 
394
394
  ## O que fazer
395
- 1. Leia \`DARE/BLUEPRINT.md\` obrigatório antes de qualquer implementação
395
+ 1. Leia \`DARE/BLUEPRINT.md\` — obrigatório antes de qualquer implementação
396
396
  2. Leia a task especificada em \`DARE/dare-dag.yaml\`
397
- 3. Verifique se todas as dependências da task estão com status DONE
397
+ 3. Verifique se todas as dependências da task estão com status DONE
398
398
  4. Implemente a task
399
399
  5. Execute o Ralph Loop:
400
400
  - Build: compile sem erros
401
401
  - Test: todos os testes passando
402
402
  - Lint: sem warnings${isMcp ? '\n - Inspect: teste com MCP Inspector' : ''}
403
403
  6. Atualize o status da task em \`DARE/TASKS.md\` para DONE
404
- 7. Informe o usuário e sugira a próxima task disponível
404
+ 7. Informe o usuário e sugira a próxima task disponível
405
405
 
406
406
  $ARGUMENTS
407
407
  `,
@@ -415,14 +415,37 @@ Exibe o status atual de todas as tasks do projeto.
415
415
 
416
416
  ## O que fazer
417
417
  1. Leia \`DARE/TASKS.md\` e \`DARE/dare-dag.yaml\`
418
- 2. Exiba uma tabela com: ID, título, status, dependências
419
- 3. Destaque as tasks que estão prontas para execução (dependências satisfeitas)
420
- 4. Calcule e exiba o progresso geral (% concluído)
418
+ 2. Exiba uma tabela com: ID, título, status, dependências
419
+ 3. Destaque as tasks que estão prontas para execução (dependências satisfeitas)
420
+ 4. Calcule e exiba o progresso geral (% concluído)
421
421
 
422
422
  $ARGUMENTS
423
423
  `,
424
424
  };
425
425
  }
426
+ export function generateSharedConfig(projectName) {
427
+ return `# ${projectName} — DARE Framework
428
+
429
+ ## Design → Architect → Review → Execute
430
+
431
+ ### Estrutura
432
+ - \`DARE/\` — documentação de design e execução
433
+ - \`DARE/EXECUTION/\` — tasks executadas e telemetria
434
+ - \`templates/\` — templates de documentação DARE
435
+
436
+ ### Ralph Loop
437
+ Antes de marcar qualquer task como DONE:
438
+ 1. Build ✅
439
+ 2. Test ✅
440
+ 3. Lint ✅
441
+
442
+ ### Fluxo de Trabalho
443
+ 1. \`/generate-design\` — cria DESIGN.md
444
+ 2. \`/generate-blueprint\` — cria BLUEPRINT.md
445
+ 3. \`/generate-tasks\` — cria TASKS.md
446
+ 4. \`/execute-task\` — executa cada task com Ralph Loop
447
+ `;
448
+ }
426
449
  export function generateClaudeSettings(stack) {
427
450
  const buildCmd = stack.backend === 'rust-axum'
428
451
  ? 'cargo build'
@@ -459,7 +482,7 @@ export function generateClaudeSettings(stack) {
459
482
  hooks: [
460
483
  {
461
484
  type: 'command',
462
- command: `echo " File saved. Remember to run Ralph Loop: ${buildCmd} && ${testCmd} && ${lintCmd}"`,
485
+ command: `echo "✅ File saved. Remember to run Ralph Loop: ${buildCmd} && ${testCmd} && ${lintCmd}"`,
463
486
  },
464
487
  ],
465
488
  },
@@ -467,33 +490,4 @@ export function generateClaudeSettings(stack) {
467
490
  },
468
491
  }, null, 2);
469
492
  }
470
- export function generateSharedConfig(projectName) {
471
- return `# DARE - ${projectName}
472
-
473
- ## Methodology Files
474
- - **DESIGN.md** - Requirements and goals (Phase D)
475
- - **BLUEPRINT.md** - Technical architecture (Phase A)
476
- - **TASKS.md** - Task tracking (Phase E)
477
- - **dare-dag.yaml** - Task dependency graph (Phase E)
478
- - **EXECUTION/** - Task execution logs
479
-
480
- ## Quick Start
481
- \`\`\`bash
482
- # 1. Define requirements
483
- dare design "Describe your feature"
484
-
485
- # 2. Generate blueprint and task graph
486
- dare blueprint
487
-
488
- # 3. Execute tasks in parallel
489
- dare execute --parallel --runner cursor
490
- \`\`\`
491
-
492
- ## Ralph Loop
493
- Before marking any task as DONE:
494
- 1. Build ✅
495
- 2. Test ✅
496
- 3. Lint ✅
497
- `;
498
- }
499
493
  //# sourceMappingURL=templates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dewtech/dare-cli",
3
- "version": "0.3.5",
3
+ "version": "0.3.8",
4
4
  "description": "DARE Framework CLI - Interactive project setup and task execution",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -15,18 +15,19 @@
15
15
  }
16
16
  },
17
17
  "files": [
18
- "dist"
18
+ "dist",
19
+ "templates"
19
20
  ],
20
21
  "dependencies": {
21
- "@dewtech/dare-core": "^0.3.3",
22
+ "@dewtech/dare-core": "^0.3.5",
22
23
  "chalk": "^5.3.0",
23
24
  "commander": "^11.0.0",
24
25
  "fs-extra": "^11.1.1",
25
26
  "inquirer": "^9.2.0",
26
27
  "ora": "^7.0.1",
27
28
  "yaml": "^2.3.1",
28
- "@dewtech/dare-graphrag": "^0.3.3",
29
- "@dewtech/dare-mcp-server": "^0.3.3"
29
+ "@dewtech/dare-graphrag": "^0.3.5",
30
+ "@dewtech/dare-mcp-server": "^0.3.5"
30
31
  },
31
32
  "devDependencies": {
32
33
  "@types/fs-extra": "^11.0.1",
@@ -57,7 +58,8 @@
57
58
  "node": ">=18.0.0"
58
59
  },
59
60
  "scripts": {
60
- "build": "tsc",
61
+ "sync": "tsx scripts/sync-implementations.ts",
62
+ "build": "tsx scripts/sync-implementations.ts && tsc",
61
63
  "dev": "tsx watch src/bin/dare.ts",
62
64
  "test": "vitest run",
63
65
  "lint": "eslint src --ext .ts",
@@ -0,0 +1,9 @@
1
+ PORT=3000
2
+ NODE_ENV=development
3
+
4
+ # Database
5
+ DB_HOST=localhost
6
+ DB_PORT=5432
7
+ DB_USER=postgres
8
+ DB_PASS=postgres
9
+ DB_NAME={{PROJECT_NAME}}
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/nest-cli",
3
+ "collection": "@nestjs/schematics",
4
+ "sourceRoot": "src",
5
+ "compilerOptions": {
6
+ "deleteOutDir": true
7
+ }
8
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "{{PROJECT_NAME}}",
3
+ "version": "0.1.0",
4
+ "description": "",
5
+ "scripts": {
6
+ "build": "nest build",
7
+ "start": "nest start",
8
+ "start:dev": "nest start --watch",
9
+ "start:prod": "node dist/main",
10
+ "test": "jest",
11
+ "test:watch": "jest --watch",
12
+ "test:cov": "jest --coverage",
13
+ "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix"
14
+ },
15
+ "dependencies": {
16
+ "@nestjs/common": "^11.0.0",
17
+ "@nestjs/core": "^11.0.0",
18
+ "@nestjs/platform-express": "^11.0.0",
19
+ "@nestjs/config": "^3.0.0",
20
+ "@nestjs/typeorm": "^10.0.0",
21
+ "typeorm": "^0.3.0",
22
+ "pg": "^8.11.0",
23
+ "class-validator": "^0.14.0",
24
+ "class-transformer": "^0.5.0",
25
+ "reflect-metadata": "^0.1.13",
26
+ "rxjs": "^7.8.0"
27
+ },
28
+ "devDependencies": {
29
+ "@nestjs/cli": "^11.0.0",
30
+ "@nestjs/schematics": "^11.0.0",
31
+ "@nestjs/testing": "^11.0.0",
32
+ "@types/jest": "^29.0.0",
33
+ "@types/node": "^20.0.0",
34
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
35
+ "@typescript-eslint/parser": "^6.0.0",
36
+ "eslint": "^8.0.0",
37
+ "jest": "^29.0.0",
38
+ "ts-jest": "^29.0.0",
39
+ "typescript": "^5.0.0"
40
+ },
41
+ "jest": {
42
+ "moduleFileExtensions": ["js", "json", "ts"],
43
+ "rootDir": "src",
44
+ "testRegex": ".*\\.spec\\.ts$",
45
+ "transform": { "^.+\\.(t|j)s$": "ts-jest" },
46
+ "collectCoverageFrom": ["**/*.(t|j)s"],
47
+ "coverageDirectory": "../coverage",
48
+ "testEnvironment": "node"
49
+ }
50
+ }
@@ -0,0 +1,12 @@
1
+ import { Controller, Get } from '@nestjs/common';
2
+ import { AppService } from './app.service';
3
+
4
+ @Controller()
5
+ export class AppController {
6
+ constructor(private readonly appService: AppService) {}
7
+
8
+ @Get('health')
9
+ health(): { status: string } {
10
+ return this.appService.health();
11
+ }
12
+ }
@@ -0,0 +1,15 @@
1
+ import { Module } from '@nestjs/common';
2
+ import { ConfigModule } from '@nestjs/config';
3
+ import { AppController } from './app.controller';
4
+ import { AppService } from './app.service';
5
+
6
+ @Module({
7
+ imports: [
8
+ ConfigModule.forRoot({
9
+ isGlobal: true,
10
+ }),
11
+ ],
12
+ controllers: [AppController],
13
+ providers: [AppService],
14
+ })
15
+ export class AppModule {}
@@ -0,0 +1,8 @@
1
+ import { Injectable } from '@nestjs/common';
2
+
3
+ @Injectable()
4
+ export class AppService {
5
+ health(): { status: string } {
6
+ return { status: 'ok' };
7
+ }
8
+ }
@@ -0,0 +1,24 @@
1
+ import { NestFactory } from '@nestjs/core';
2
+ import { ValidationPipe } from '@nestjs/common';
3
+ import { AppModule } from './app.module';
4
+
5
+ async function bootstrap() {
6
+ const app = await NestFactory.create(AppModule);
7
+
8
+ app.useGlobalPipes(
9
+ new ValidationPipe({
10
+ whitelist: true,
11
+ forbidNonWhitelisted: true,
12
+ transform: true,
13
+ }),
14
+ );
15
+
16
+ app.enableCors();
17
+ app.setGlobalPrefix('api');
18
+
19
+ const port = process.env.PORT ?? 3000;
20
+ await app.listen(port);
21
+ console.log(`Application running on port ${port}`);
22
+ }
23
+
24
+ bootstrap();
@@ -0,0 +1,21 @@
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "declaration": true,
5
+ "removeComments": true,
6
+ "emitDecoratorMetadata": true,
7
+ "experimentalDecorators": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "target": "ES2021",
10
+ "sourceMap": true,
11
+ "outDir": "./dist",
12
+ "baseUrl": "./",
13
+ "incremental": true,
14
+ "skipLibCheck": true,
15
+ "strictNullChecks": false,
16
+ "noImplicitAny": false,
17
+ "strictBindCallApply": false,
18
+ "forceConsistentCasingInFileNames": false,
19
+ "noFallthroughCasesInSwitch": false
20
+ }
21
+ }
@@ -0,0 +1,22 @@
1
+ APP_NAME={{PROJECT_NAME}}
2
+ APP_ENV=local
3
+ APP_KEY=
4
+ APP_DEBUG=true
5
+ APP_URL=http://localhost
6
+
7
+ DB_CONNECTION=pgsql
8
+ DB_HOST=127.0.0.1
9
+ DB_PORT=5432
10
+ DB_DATABASE={{PROJECT_NAME}}
11
+ DB_USERNAME=postgres
12
+ DB_PASSWORD=postgres
13
+
14
+ CACHE_STORE=redis
15
+ QUEUE_CONNECTION=redis
16
+ SESSION_DRIVER=redis
17
+
18
+ REDIS_HOST=127.0.0.1
19
+ REDIS_PASSWORD=null
20
+ REDIS_PORT=6379
21
+
22
+ JWT_SECRET=
@@ -0,0 +1,15 @@
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace App\Http\Controllers;
6
+
7
+ use Illuminate\Http\JsonResponse;
8
+
9
+ class HealthController extends Controller
10
+ {
11
+ public function __invoke(): JsonResponse
12
+ {
13
+ return response()->json(['status' => 'ok']);
14
+ }
15
+ }