@dewtech/dare-cli 3.1.0 → 3.2.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.
Files changed (80) hide show
  1. package/README.md +3 -1
  2. package/dist/__tests__/ensure-skills.test.d.ts +2 -0
  3. package/dist/__tests__/ensure-skills.test.d.ts.map +1 -0
  4. package/dist/__tests__/ensure-skills.test.js +67 -0
  5. package/dist/__tests__/ensure-skills.test.js.map +1 -0
  6. package/dist/__tests__/ide-command-parity.test.d.ts +2 -0
  7. package/dist/__tests__/ide-command-parity.test.d.ts.map +1 -0
  8. package/dist/__tests__/ide-command-parity.test.js +58 -0
  9. package/dist/__tests__/ide-command-parity.test.js.map +1 -0
  10. package/dist/__tests__/reverse-collection.test.d.ts +2 -0
  11. package/dist/__tests__/reverse-collection.test.d.ts.map +1 -0
  12. package/dist/__tests__/reverse-collection.test.js +87 -0
  13. package/dist/__tests__/reverse-collection.test.js.map +1 -0
  14. package/dist/commands/dna.d.ts.map +1 -1
  15. package/dist/commands/dna.js +4 -0
  16. package/dist/commands/dna.js.map +1 -1
  17. package/dist/commands/migrate.d.ts.map +1 -1
  18. package/dist/commands/migrate.js +4 -0
  19. package/dist/commands/migrate.js.map +1 -1
  20. package/dist/commands/reverse.d.ts.map +1 -1
  21. package/dist/commands/reverse.js +27 -8
  22. package/dist/commands/reverse.js.map +1 -1
  23. package/dist/utils/datamodel.d.ts.map +1 -1
  24. package/dist/utils/datamodel.js +97 -20
  25. package/dist/utils/datamodel.js.map +1 -1
  26. package/dist/utils/project-generator.d.ts +21 -0
  27. package/dist/utils/project-generator.d.ts.map +1 -1
  28. package/dist/utils/project-generator.js +69 -0
  29. package/dist/utils/project-generator.js.map +1 -1
  30. package/dist/utils/reverse-facts.d.ts +3 -2
  31. package/dist/utils/reverse-facts.d.ts.map +1 -1
  32. package/dist/utils/reverse-facts.js +89 -8
  33. package/dist/utils/reverse-facts.js.map +1 -1
  34. package/package.json +1 -1
  35. package/templates/ide/antigravity/.agents/skills/dare-bootstrap/SKILL.md +32 -0
  36. package/templates/ide/antigravity/.agents/skills/dare-dag/SKILL.md +32 -0
  37. package/templates/ide/antigravity/.agents/skills/dare-discover/SKILL.md +33 -0
  38. package/templates/ide/antigravity/.agents/skills/dare-graph/SKILL.md +35 -0
  39. package/templates/ide/antigravity/.agents/skills/dare-info/SKILL.md +31 -0
  40. package/templates/ide/antigravity/.agents/skills/dare-init/SKILL.md +35 -0
  41. package/templates/ide/antigravity/.agents/skills/dare-skill/SKILL.md +35 -0
  42. package/templates/ide/antigravity/.agents/skills/dare-update/SKILL.md +33 -0
  43. package/templates/ide/antigravity/.agents/skills/dare-validate/SKILL.md +33 -0
  44. package/templates/ide/antigravity/.agents/skills/dare-welcome/SKILL.md +30 -0
  45. package/templates/ide/claude/.claude/commands/dare-bootstrap.md +27 -0
  46. package/templates/ide/claude/.claude/commands/dare-dag.md +27 -0
  47. package/templates/ide/claude/.claude/commands/dare-discover.md +28 -0
  48. package/templates/ide/claude/.claude/commands/dare-graph.md +30 -0
  49. package/templates/ide/claude/.claude/commands/dare-info.md +26 -0
  50. package/templates/ide/claude/.claude/commands/dare-init.md +30 -0
  51. package/templates/ide/claude/.claude/commands/dare-skill.md +30 -0
  52. package/templates/ide/claude/.claude/commands/dare-update.md +28 -0
  53. package/templates/ide/claude/.claude/commands/dare-validate.md +28 -0
  54. package/templates/ide/claude/.claude/commands/dare-welcome.md +25 -0
  55. package/templates/ide/cursor/.cursor/commands/{generate-blueprint.md → dare-blueprint.md} +1 -1
  56. package/templates/ide/cursor/.cursor/commands/dare-bootstrap.md +27 -0
  57. package/templates/ide/cursor/.cursor/commands/{run-dag.md → dare-dag-run.md} +1 -1
  58. package/templates/ide/cursor/.cursor/commands/{dag-viz.md → dare-dag-viz.md} +1 -1
  59. package/templates/ide/cursor/.cursor/commands/dare-dag.md +27 -0
  60. package/templates/ide/cursor/.cursor/commands/{generate-design.md → dare-design.md} +1 -1
  61. package/templates/ide/cursor/.cursor/commands/dare-discover.md +28 -0
  62. package/templates/ide/cursor/.cursor/commands/dare-dna.md +75 -0
  63. package/templates/ide/cursor/.cursor/commands/{generate-docker-compose.md → dare-docker-compose.md} +1 -1
  64. package/templates/ide/cursor/.cursor/commands/{generate-dockerfile.md → dare-dockerfile.md} +1 -1
  65. package/templates/ide/cursor/.cursor/commands/{execute-task.md → dare-execute.md} +1 -1
  66. package/templates/ide/cursor/.cursor/commands/dare-graph.md +30 -0
  67. package/templates/ide/cursor/.cursor/commands/dare-info.md +26 -0
  68. package/templates/ide/cursor/.cursor/commands/dare-init.md +30 -0
  69. package/templates/ide/cursor/.cursor/commands/dare-migrate.md +72 -0
  70. package/templates/ide/cursor/.cursor/commands/{refine-task.md → dare-refine.md} +1 -1
  71. package/templates/ide/cursor/.cursor/commands/dare-reverse.md +139 -0
  72. package/templates/ide/cursor/.cursor/commands/{review-task.md → dare-review.md} +1 -1
  73. package/templates/ide/cursor/.cursor/commands/dare-skill.md +30 -0
  74. package/templates/ide/cursor/.cursor/commands/{generate-tasks.md → dare-tasks.md} +1 -1
  75. package/templates/ide/cursor/.cursor/commands/{telemetry-report.md → dare-telemetry.md} +1 -1
  76. package/templates/ide/cursor/.cursor/commands/dare-update.md +28 -0
  77. package/templates/ide/cursor/.cursor/commands/dare-validate.md +28 -0
  78. package/templates/ide/cursor/.cursor/commands/dare-welcome.md +25 -0
  79. /package/templates/ide/cursor/.cursor/commands/{generate-bugfix-design.md → dare-bugfix-design.md} +0 -0
  80. /package/templates/ide/cursor/.cursor/commands/{generate-feature-design.md → dare-feature-design.md} +0 -0
@@ -0,0 +1,30 @@
1
+ # /dare-init
2
+
3
+ Cria um projeto DARE do zero (greenfield) com setup interativo: escolhe stack backend/frontend, knowledge graph, IDE e gera o scaffolder completo + DNA DARE.
4
+
5
+ > Este comando expõe o CLI `dare init` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - O usuário quer começar um projeto **novo** do zero.
10
+ - Não existe código ainda — é greenfield. Para projeto legado, use `/dare-discover`.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare init # fluxo interativo completo
16
+ dare init minha-api --stack node-nestjs
17
+ dare init meu-mcp --mcp node-ts --transport http
18
+ dare init api --stack go-gin --toolchain docker --non-interactive
19
+ ```
20
+
21
+ ## O que fazer
22
+
23
+ 1. Rode `dare init` (ou com `--stack`/`--mcp` se o usuário já decidiu a stack).
24
+ 2. Responda aos prompts: nome, stack backend, frontend opcional, knowledge graph (json/sqlite/neo4j), IDE(s).
25
+ 3. Ao final, o projeto tem scaffolder + os 7 artefatos de DNA + comandos/skills de IDE instalados.
26
+ 4. Próximo passo: descreva a ideia com `/dare-design`.
27
+
28
+ ## Comandos relacionados
29
+
30
+ `/dare-design` · `/dare-discover` · `/dare-bootstrap`
@@ -0,0 +1,30 @@
1
+ # /dare-skill
2
+
3
+ Adiciona, remove, lista, inspeciona, atualiza ou publica skills DARE neste projeto.
4
+
5
+ > Este comando expõe o CLI `dare skill` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - Você quer instalar uma skill extra (ex.: uma skill de stack) no projeto.
10
+ - Quer listar/inspecionar as skills disponíveis ou publicar uma própria.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare skill list
16
+ dare skill info <nome>
17
+ dare skill add <nome>
18
+ dare skill remove <nome>
19
+ dare skill update
20
+ ```
21
+
22
+ ## O que fazer
23
+
24
+ 1. Use `dare skill list` para ver o que está instalado/disponível.
25
+ 2. Rode o subcomando desejado (`add`/`remove`/`info`/`update`/`publish`).
26
+ 3. Confirme o resultado e, se mudou comandos de IDE, recarregue a IDE.
27
+
28
+ ## Comandos relacionados
29
+
30
+ `/dare-update` · `/dare-info`
@@ -0,0 +1,28 @@
1
+ # /dare-update
2
+
3
+ Sincroniza os artefatos do projeto (comandos de IDE, skills, templates) com a versão instalada do DARE CLI, preservando customizações.
4
+
5
+ > Este comando expõe o CLI `dare update` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - Depois de atualizar o `@dewtech/dare-cli` para uma versão nova.
10
+ - Quando `dare info` apontar artefatos desatualizados.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare update --dry-run # mostra o que mudaria, sem escrever
16
+ dare update -y # aplica tudo, mantém customizações
17
+ dare update --target 3.2.0
18
+ ```
19
+
20
+ ## O que fazer
21
+
22
+ 1. Rode `dare update --dry-run` e revise o diff proposto.
23
+ 2. Se estiver ok, rode `dare update -y`.
24
+ 3. Evite `--force` salvo se o usuário aceitar sobrescrever arquivos customizados.
25
+
26
+ ## Comandos relacionados
27
+
28
+ `/dare-info` · `/dare-welcome`
@@ -0,0 +1,28 @@
1
+ # /dare-validate
2
+
3
+ Valida `DARE/dare-dag.yaml` (ciclos, referências quebradas, campos obrigatórios). Adequado para pre-commit hooks e CI.
4
+
5
+ > Este comando expõe o CLI `dare validate` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - Antes de commitar mudanças no DAG.
10
+ - Em CI, como gate de integridade do plano de execução.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare validate
16
+ dare validate --strict # trata warnings como erros (CI-friendly)
17
+ dare validate --dag DARE/dare-dag.yaml
18
+ ```
19
+
20
+ ## O que fazer
21
+
22
+ 1. Rode `dare validate` (use `--strict` em CI).
23
+ 2. Se houver erros, corrija o `dare-dag.yaml` apontado e rode de novo até passar.
24
+ 3. Saída limpa = DAG íntegro e pronto para `/dare-execute`.
25
+
26
+ ## Comandos relacionados
27
+
28
+ `/dare-dag` · `/dare-execute`
@@ -0,0 +1,25 @@
1
+ # /dare-welcome
2
+
3
+ Mostra o banner do DARE e um guia de início rápido com o fluxo Design → Architecture → Review → Execute.
4
+
5
+ > Este comando expõe o CLI `dare welcome` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - Primeiro contato com o DARE neste projeto.
10
+ - O usuário quer relembrar o fluxo canônico de comandos.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare welcome
16
+ ```
17
+
18
+ ## O que fazer
19
+
20
+ 1. Rode `dare welcome`.
21
+ 2. Apresente o fluxo: `/dare-design` → `/dare-blueprint` → `/dare-tasks` → `/dare-execute`.
22
+
23
+ ## Comandos relacionados
24
+
25
+ `/dare-design` · `/dare-info`
@@ -1,4 +1,4 @@
1
- # Comando: /generate-blueprint
1
+ # Comando: /dare-blueprint
2
2
 
3
3
  ## Descrição
4
4
  Avança o DARE para a fase Architect: lê `DARE/DESIGN.md` aprovado e gera **somente** `DARE/BLUEPRINT.md`.
@@ -0,0 +1,27 @@
1
+ # Comando: /dare-bootstrap
2
+
3
+ Executa o scaffolder oficial da stack registrada em `dare.config.json` para materializar o esqueleto do framework no projeto atual.
4
+
5
+ > Este comando expõe o CLI `dare bootstrap` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - Logo após `dare init`, para gerar o esqueleto real do framework.
10
+ - Quando `dare.config.json` existe mas os artefatos do framework ainda não foram gerados.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare bootstrap
16
+ dare bootstrap --force # roda mesmo se já houver artefatos (pode sobrescrever)
17
+ ```
18
+
19
+ ## O que fazer
20
+
21
+ 1. Confirme que existe `dare.config.json` com a stack definida.
22
+ 2. Rode `dare bootstrap` (use `--force` apenas se o usuário aceitar sobrescrever arquivos existentes).
23
+ 3. Verifique a saída: arquivos gerados e próximos passos sugeridos pelo CLI.
24
+
25
+ ## Comandos relacionados
26
+
27
+ `/dare-init` · `/dare-design`
@@ -1,4 +1,4 @@
1
- # Comando: /run-dag
1
+ # Comando: /dare-dag-run
2
2
 
3
3
  ## Descrição
4
4
 
@@ -1,4 +1,4 @@
1
- # Comando: /dag-viz
1
+ # Comando: /dare-dag-viz
2
2
 
3
3
  ## Descrição
4
4
 
@@ -0,0 +1,27 @@
1
+ # Comando: /dare-dag
2
+
3
+ Mostra o DAG estático de tasks (`DARE/dare-dag.yaml`): ranks, dependências e caminho crítico. Use `dare dag viz` para exportar o diagrama.
4
+
5
+ > Este comando expõe o CLI `dare dag` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - Você quer ver a ordem de execução, os ranks e o caminho crítico das tasks.
10
+ - Antes de começar a execução, para conferir a topologia do plano.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare dag viz
16
+ dare dag viz --dag DARE/dare-dag.yaml
17
+ ```
18
+
19
+ ## O que fazer
20
+
21
+ 1. Rode `dare dag viz` para renderizar o grafo de tasks.
22
+ 2. Confira ranks e dependências; tasks de mesmo rank podem rodar em paralelo.
23
+ 3. Para validar a integridade do arquivo, use `/dare-validate`. Para executar, `/dare-execute`.
24
+
25
+ ## Comandos relacionados
26
+
27
+ `/dare-validate` · `/dare-execute` · `/dare-graph`
@@ -1,4 +1,4 @@
1
- # Comando: /generate-design
1
+ # Comando: /dare-design
2
2
 
3
3
  ## Descrição
4
4
  Inicia o Método DARE (fase Design) gerando `DARE/DESIGN.md` a partir de uma ideia inicial.
@@ -0,0 +1,28 @@
1
+ # Comando: /dare-discover
2
+
3
+ Detecta a stack de um projeto já existente (brownfield) e instala os arquivos da metodologia DARE — incluindo os comandos/skills de IDE — sem tocar no código.
4
+
5
+ > Este comando expõe o CLI `dare discover` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - O usuário quer adotar o DARE em um repositório que **já existe**.
10
+ - Para entender/documentar o legado em profundidade depois, encadeie com `/dare-reverse` e `/dare-dna`.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare discover
16
+ dare discover --dir ./caminho/do/projeto
17
+ dare discover --check # só mostra a detecção, sem instalar nada
18
+ ```
19
+
20
+ ## O que fazer
21
+
22
+ 1. Rode `dare discover --check` primeiro para revisar a stack detectada.
23
+ 2. Se a detecção estiver correta, rode `dare discover` para instalar os artefatos DARE + comandos de IDE.
24
+ 3. Próximo passo: `/dare-reverse` (Fase 0 — coleta) e `/dare-dna` (convenções).
25
+
26
+ ## Comandos relacionados
27
+
28
+ `/dare-reverse` · `/dare-dna` · `/dare-migrate`
@@ -0,0 +1,75 @@
1
+ # Comando: /dare-dna
2
+
3
+ Camada semântica da extração de DNA do projeto. Roda **depois** do comando `dare dna`, que já varreu
4
+ o código e extraiu os fatos de convenção. Sua função é **transformar fatos em regras acionáveis** —
5
+ o "como esse codebase faz as coisas" que uma nova feature deve respeitar.
6
+
7
+ ## Como usar
8
+
9
+ ```
10
+ /dare-dna # preenche o PROJECT-DNA.md gerado por `dare dna`
11
+ ```
12
+
13
+ > Pré-requisito: rodar `dare dna` antes (gera `DARE/PROJECT-DNA.md` e `DARE/dna-facts.json`).
14
+ > Se não existirem, instrua o usuário a rodar `dare dna` primeiro.
15
+
16
+ ## Quando usar
17
+
18
+ - Projeto **legado** que vai adotar o DARE para novas features, sem reescrever o existente.
19
+ - Acabou de rodar `dare dna` e o `PROJECT-DNA.md` tem seções `<!-- AGENT -->` em aberto.
20
+ - O objetivo é um **ruleset** que faça o agente seguir o padrão da casa, não o default genérico.
21
+
22
+ ## O que fazer
23
+
24
+ ### 1. Carregar os fatos (não re-varrer tudo)
25
+
26
+ - Leia `DARE/dna-facts.json` — fonte determinística (tooling, naming, camadas, testes, libs, commits).
27
+ - Abra **2-5 arquivos representativos por camada** (um controller, um service, um model, um teste) para
28
+ inferir os padrões que o CLI não detecta (tratamento de erro, validação, estilo de teste).
29
+
30
+ ### 2. Preencher `DARE/PROJECT-DNA.md`
31
+
32
+ Substitua cada bloco `<!-- AGENT: ... -->`:
33
+
34
+ - **Convenções de Nomenclatura** — confirme o estilo detectado e documente exceções (ex.: componentes
35
+ em PascalCase, utilitários em kebab).
36
+ - **Arquitetura & Camadas** — nomeie o padrão com confiança (MVC / Layered / Hexagonal) e escreva as
37
+ **regras de onde cada coisa mora** (ex.: "controllers só orquestram; regra de negócio vai em services;
38
+ acesso a dados só em repositories").
39
+ - **Padrões de Teste** — onde os testes ficam, naming, assertions reais (não `expect(true)`), uso de
40
+ mocks/fixtures.
41
+ - **Tratamento de Erros & Validação** — como o projeto trata erros (exceptions, Result/Either, try/catch)
42
+ e valida inputs. Dê **exemplos concretos** do código real.
43
+ - **Regras de Ouro do Projeto** — liste o que **SEMPRE** e o que **NUNCA** fazer neste codebase.
44
+ - **⚠️ Incertezas / Inconsistências** — convenções ambíguas/misturadas que o humano precisa decidir.
45
+
46
+ **Não toque** nos fatos determinísticos já preenchidos pelo CLI (tooling, tabela de naming, libs).
47
+
48
+ ### 3. Apresentar ao usuário
49
+
50
+ Resumo: arquitetura nomeada, principais regras de ouro, inconsistências encontradas. Reforce que o
51
+ `PROJECT-DNA.md` vira referência para `/dare-feature-design` e `/dare-execute` respeitarem o legado.
52
+
53
+ ## Regras de ouro
54
+
55
+ 1. **Descritivo, não aspiracional** — documente como o código É, não como deveria ser.
56
+ 2. **Exemplos reais** — cite arquivos/trechos do próprio projeto nas regras.
57
+ 3. **Sinalize inconsistência** — se o legado mistura padrões, diga isso em "⚠️ Incertezas", não invente um padrão único.
58
+ 4. **Não re-varra** — os fatos já estão em `dna-facts.json`.
59
+ 5. **Preserve o determinístico** — não reescreva tooling/naming/libs gerados pelo CLI.
60
+
61
+ ## Antipatterns
62
+
63
+ | AP | Antipattern | Por quê |
64
+ |---|---|---|
65
+ | AP-01 | Documentar o padrão "ideal" em vez do real | O agente vai gerar código fora do estilo do legado |
66
+ | AP-02 | Forçar um padrão único onde o legado é inconsistente | Esconde a realidade; melhor sinalizar a incerteza |
67
+ | AP-03 | Reescrever os fatos determinísticos do CLI | Quebra a fonte de verdade |
68
+ | AP-04 | Regras vagas ("siga boas práticas") | Inúteis — o valor está na regra específica do projeto |
69
+ | AP-05 | Ignorar os testes existentes ao descrever o estilo de teste | Nova feature nasce inconsistente |
70
+
71
+ $ARGUMENTS
72
+
73
+ ---
74
+
75
+ Skill MIT — parte do DARE Method. DNA do projeto (brownfield). Pareia com o comando `dare dna`.
@@ -1,4 +1,4 @@
1
- # Comando: /generate-docker-compose
1
+ # Comando: /dare-docker-compose
2
2
 
3
3
  ## Descrição
4
4
  Este comando analisa a arquitetura definida no BLUEPRINT.md e gera um `docker-compose.yml` completo com todos os serviços necessários (App, DB, Cache, etc).
@@ -1,4 +1,4 @@
1
- # Comando: /generate-dockerfile
1
+ # Comando: /dare-dockerfile
2
2
 
3
3
  ## Descrição
4
4
  Este comando analisa a stack do projeto (definida no DESIGN.md ou .cursorrules) e gera um `Dockerfile` otimizado para produção e desenvolvimento.
@@ -1,4 +1,4 @@
1
- # Comando: /execute-task
1
+ # Comando: /dare-execute
2
2
 
3
3
  ## Descrição
4
4
  Este comando finaliza o Método DARE (Execute) implementando o código e validando os testes de uma tarefa específica isolada.
@@ -0,0 +1,30 @@
1
+ # Comando: /dare-graph
2
+
3
+ Consulta e visualiza o grafo de conhecimento do projeto (tasks, arquivos, schemas, endpoints, componentes, entidades e suas relações).
4
+
5
+ > Este comando expõe o CLI `dare graph` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - Você quer entender dependências entre tasks/arquivos/entidades.
10
+ - Precisa achar nós relacionados a um termo, ou exportar um diagrama do grafo.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare graph stats # contagem de nós/arestas por tipo
16
+ dare graph query <termo> --limit 10 # busca nós por label/descrição
17
+ dare graph query auth --type endpoint
18
+ dare graph viz --format mermaid -o graph.mmd
19
+ dare graph ingest # re-sincroniza o grafo do dare-dag.yaml
20
+ ```
21
+
22
+ ## O que fazer
23
+
24
+ 1. Escolha o subcomando conforme a intenção: `stats`, `query <termo>`, `viz`, `ingest`.
25
+ 2. Rode o comando e interprete a saída (para `viz`, abra/renderize o diagrama gerado).
26
+ 3. Se o grafo parecer desatualizado, rode `dare graph ingest` para re-sincronizar.
27
+
28
+ ## Comandos relacionados
29
+
30
+ `/dare-dag` · `/dare-execute`
@@ -0,0 +1,26 @@
1
+ # Comando: /dare-info
2
+
3
+ Mostra versão do CLI, caminhos relevantes e a integridade da instalação DARE no projeto atual.
4
+
5
+ > Este comando expõe o CLI `dare info` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - Algo parece errado no setup e você quer um diagnóstico rápido.
10
+ - Para confirmar a versão do CLI e os artefatos DARE presentes.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare info
16
+ ```
17
+
18
+ ## O que fazer
19
+
20
+ 1. Rode `dare info`.
21
+ 2. Revise versão, caminhos e a checagem de integridade.
22
+ 3. Se houver artefatos faltando/desatualizados, rode `/dare-update`.
23
+
24
+ ## Comandos relacionados
25
+
26
+ `/dare-update` · `/dare-welcome`
@@ -0,0 +1,30 @@
1
+ # Comando: /dare-init
2
+
3
+ Cria um projeto DARE do zero (greenfield) com setup interativo: escolhe stack backend/frontend, knowledge graph, IDE e gera o scaffolder completo + DNA DARE.
4
+
5
+ > Este comando expõe o CLI `dare init` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - O usuário quer começar um projeto **novo** do zero.
10
+ - Não existe código ainda — é greenfield. Para projeto legado, use `/dare-discover`.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare init # fluxo interativo completo
16
+ dare init minha-api --stack node-nestjs
17
+ dare init meu-mcp --mcp node-ts --transport http
18
+ dare init api --stack go-gin --toolchain docker --non-interactive
19
+ ```
20
+
21
+ ## O que fazer
22
+
23
+ 1. Rode `dare init` (ou com `--stack`/`--mcp` se o usuário já decidiu a stack).
24
+ 2. Responda aos prompts: nome, stack backend, frontend opcional, knowledge graph (json/sqlite/neo4j), IDE(s).
25
+ 3. Ao final, o projeto tem scaffolder + os 7 artefatos de DNA + comandos/skills de IDE instalados.
26
+ 4. Próximo passo: descreva a ideia com `/dare-design`.
27
+
28
+ ## Comandos relacionados
29
+
30
+ `/dare-design` · `/dare-discover` · `/dare-bootstrap`
@@ -0,0 +1,72 @@
1
+ # Comando: /dare-migrate
2
+
3
+ Camada semântica da migração (Fase 2 brownfield). Roda **depois** de `dare migrate`, que já leu os
4
+ artefatos do `reverse`/`dna` e gerou os esqueletos. Sua função é **escrever a estratégia de migração
5
+ e os cenários Gherkin de paridade reais** — o contrato comportamental que garante uma reimplementação
6
+ fiel ao legado.
7
+
8
+ ## Como usar
9
+
10
+ ```
11
+ /dare-migrate
12
+ ```
13
+
14
+ > Pré-requisito: rodar `dare migrate --to <stack>` antes (gera `DARE/MIGRATION/MIGRATION.md`,
15
+ > `migration-facts.json` e `parity/*.feature`). Isso por sua vez exige `dare reverse` já executado.
16
+
17
+ ## Quando usar
18
+
19
+ - Projeto legado entendido (`reverse` + `dna` feitos) que será **reimplementado** em outra stack.
20
+ - Acabou de rodar `dare migrate` e o `MIGRATION.md`/`.feature` têm seções `<!-- AGENT -->`/`# AGENT`.
21
+
22
+ ## O que fazer
23
+
24
+ ### 1. Carregar contexto (não re-varrer)
25
+ - Leia `DARE/MIGRATION/migration-facts.json` (origem, alvo, módulos, blocking gaps).
26
+ - Leia `DARE/IDEIA.md` + `DARE/REVERSE/module-*.md` (o que cada módulo faz) e `DARE/PROJECT-DNA.md`
27
+ (convenções). Abra arquivos-chave do legado só o necessário para inferir comportamento.
28
+
29
+ ### 2. Preencher `DARE/MIGRATION/MIGRATION.md`
30
+ - **Decisão de Paradigma** — origem e alvo mudam de paradigma (procedural→OO, monólito→serviços)?
31
+ Registre decisão + justificativa; se preservado, diga.
32
+ - **Estratégia de Migração** — big-bang vs. **strangler/parallel-run**; ordem dos módulos; feature flags.
33
+ - **Registro de Risco** — para cada **blocking gap** (🔴) pré-listado, escreva o tratamento; some os
34
+ riscos de regressão/dados/performance + mitigações.
35
+ - **Arquitetura-alvo** — desenhe na stack-alvo, **alinhada ao DNA** (camadas/convenções) quando o
36
+ paradigma for preservado; senão justifique a nova organização.
37
+ - **Plano de Cutover & Rollback** — passos de corte, validação de paridade (rodar os `.feature`),
38
+ critério de go/no-go e rollback.
39
+
40
+ ### 3. Escrever os Gherkin de paridade (`parity/<módulo>.feature`)
41
+ - Um `Scenario` por **fluxo observável** do módulo, derivado do **comportamento legado real**
42
+ (não invente). `Given` estado inicial → `When` ação → `Then` resultado **idêntico ao legado**.
43
+ - Inclua casos de borda e formatação que o legado garante (ex.: arredondamento monetário, máscaras).
44
+ - Esses `.feature` são o **contrato de aceite** da reimplementação na stack-alvo.
45
+
46
+ ### 4. Apresentar ao usuário
47
+ Resumo: decisão de paradigma, estratégia, nº de cenários de paridade, blocking gaps a resolver.
48
+ Reforce que cenários de paridade só valem se vierem do comportamento legado observado.
49
+
50
+ ## Regras de ouro
51
+
52
+ 1. **Paridade primeiro** — o objetivo é não quebrar comportamento; todo fluxo crítico vira `Scenario`.
53
+ 2. **Blocking gaps são bloqueantes** — um 🔴 não resolvido é risco de reimplementação; trate ou registre.
54
+ 3. **Respeite o DNA** — a arquitetura-alvo segue as convenções da casa quando faz sentido.
55
+ 4. **Não invente comportamento** — cenário sem base no legado é fonte de regressão silenciosa.
56
+ 5. **Strangler quando possível** — migração incremental com parallel-run reduz risco vs. big-bang.
57
+
58
+ ## Antipatterns
59
+
60
+ | AP | Antipattern | Por quê |
61
+ |---|---|---|
62
+ | AP-01 | Gherkin genérico sem base no legado | Não garante paridade — vira regressão |
63
+ | AP-02 | Ignorar blocking gaps (🔴) | Reimplementa em cima de incerteza |
64
+ | AP-03 | Big-bang sem necessidade | Maximiza risco e dificulta rollback |
65
+ | AP-04 | Arquitetura-alvo desalinhada do DNA | Código novo vira ilha inconsistente |
66
+ | AP-05 | Reescrever os fatos determinísticos do CLI | Quebra a fonte de verdade |
67
+
68
+ $ARGUMENTS
69
+
70
+ ---
71
+
72
+ Skill MIT — parte do DARE Method. Fase 2 (brownfield). Pareia com o comando `dare migrate`.
@@ -1,4 +1,4 @@
1
- # Comando: /refine-task
1
+ # Comando: /dare-refine
2
2
 
3
3
  ## Descrição
4
4
 
@@ -0,0 +1,139 @@
1
+ # Comando: /dare-reverse
2
+
3
+ Camada semântica da engenharia reversa (Fase 0 / brownfield). Roda **depois** do comando
4
+ `dare reverse`, que já varreu o código e gerou os esqueletos. Sua função é **preencher as
5
+ inferências** que o CLI determinístico não faz: propósito, domínio, responsabilidades e os
6
+ **diagramas de fluxo** ("como a coisa funciona").
7
+
8
+ ## Como usar
9
+
10
+ ```
11
+ /dare-reverse # preenche os artefatos gerados por `dare reverse`
12
+ ```
13
+
14
+ > Pré-requisito: rodar `dare reverse` antes (gera `DARE/IDEIA.md`, `DARE/REVERSE/module-*.md`
15
+ > e `DARE/REVERSE/reverse-facts.json`). Se não existirem, instrua o usuário a rodar `dare reverse` primeiro.
16
+
17
+ ## Quando usar
18
+
19
+ - O usuário quer entender / documentar um projeto **legado** antes de adotar o DARE.
20
+ - Acabou de rodar `dare reverse` e os artefatos têm seções `<!-- AGENT: ... -->` em aberto.
21
+ - O objetivo é gerar uma **pré-arquitetura** (`IDEIA.md`) que depois vira `DESIGN.md`.
22
+
23
+ ## Marcação de confiança (obrigatória)
24
+
25
+ Ao preencher cada `<!-- AGENT -->`, marque **cada afirmação** com seu nível de confiança + evidência:
26
+
27
+ - `- 🟢 <claim>. ` + `` `arquivo:linha` `` — **CONFIRMED**: evidência direta no código.
28
+ - `- 🟡 <claim>. ` + `` `arquivo:linha` `` — **INFERRED**: padrão/dedução; pode estar errado.
29
+ - `- 🔴 <claim>. → ver gaps.md` — **GAP**: não determinável pelo código.
30
+
31
+ Regra: só 🟢 com evidência direta; na dúvida, 🟡; sem base, 🔴 (e registre em `gaps.md`). Os fatos
32
+ estruturais (caminho, LOC, deps) já vêm pré-marcados 🟢 pelo CLI — **não os altere**.
33
+
34
+ ## O que fazer
35
+
36
+ ### 1. Carregar os fatos (não re-varrer tudo)
37
+
38
+ - Leia `DARE/REVERSE/reverse-facts.json` — é a fonte de fatos determinística (stack, módulos,
39
+ LOC, grafo de dependências). **Confie nela** para o inventário; não reconte arquivos.
40
+ - Para cada módulo, abra **2-5 arquivos representativos** (entrypoints, controllers, services,
41
+ models) — o suficiente para inferir responsabilidade e fluxo. Não leia o módulo inteiro.
42
+
43
+ ### 2. Preencher `DARE/IDEIA.md`
44
+
45
+ Substitua cada bloco `<!-- AGENT: ... -->` por conteúdo real:
46
+
47
+ - **Propósito Inferido** — 2-4 frases: o que o software faz e por quê.
48
+ - **Domínio & Conceitos** — entidades de negócio + glossário (inferidos de models/migrations/nomes).
49
+ - **Modelo de Dados (reconstruído)** — entidades, campos-chave, relacionamentos (de migrations/ORM).
50
+ - **Superfície de API** — endpoints inferidos de rotas/controllers (método, rota, propósito).
51
+ - **Fluxo do Sistema** — um `flowchart TD` Mermaid do caminho principal de request/dados
52
+ atravessando os módulos. Ex.:
53
+ ```mermaid
54
+ flowchart TD
55
+ Client[Cliente] --> API[API/Rotas]
56
+ API --> Auth[auth: valida token]
57
+ Auth --> Domain[users: regra de negócio]
58
+ Domain --> DB[(Persistência)]
59
+ ```
60
+ - **⚠️ Incertezas / Gaps** — seja honesto: o que NÃO deu pra inferir com segurança, e perguntas
61
+ objetivas para o humano confirmar. Esta seção é o que protege o checkpoint human-in-the-loop.
62
+
63
+ **Não toque** no Mapa de Módulos nem na tabela (são determinísticos, gerados pelo CLI).
64
+
65
+ ### 3. Preencher cada `DARE/REVERSE/module-*.md`
66
+
67
+ Para cada módulo, substitua os `<!-- AGENT -->`:
68
+
69
+ - **Responsabilidade** — 1-3 frases sobre o papel do módulo no sistema.
70
+ - **Superfície Pública** — o que ele expõe (funções/classes/endpoints/tipos exportados).
71
+ - **Como Funciona (fluxo)** — um `sequenceDiagram` Mermaid do fluxo de execução típico. Ex.:
72
+ ```mermaid
73
+ sequenceDiagram
74
+ participant C as Caller
75
+ participant S as Service
76
+ participant R as Repository
77
+ participant DB as Database
78
+ C->>S: chamada(args)
79
+ S->>R: busca/persiste
80
+ R->>DB: query
81
+ DB-->>R: linhas
82
+ R-->>S: entidade
83
+ S-->>C: resultado
84
+ ```
85
+ - **Dependências & Acoplamento** — comente as dependências listadas em "Depende de" e riscos
86
+ de acoplamento (ex.: dependência circular, módulo-hotspot HIGH com muitos dependentes).
87
+
88
+ ### 4. Apresentar ao usuário
89
+
90
+ Mostre um resumo: propósito inferido, nº de módulos, principais incertezas. Reforce que o
91
+ `IDEIA.md` é um **rascunho a ser validado** — peça para o humano revisar antes de promover a DESIGN.
92
+
93
+ ## Passo final — Gaps, Questions e Reviewer
94
+
95
+ 1. **`gaps.md`** — consolide todos os 🔴 em `DARE/REVERSE/gaps.md`, classificados por severidade
96
+ (crítico / moderado / cosmético / fora-escopo) e com o tratamento sugerido.
97
+ 2. **`questions.md`** — perguntas objetivas ao humano em `DARE/REVERSE/questions.md`.
98
+ 3. **Reviewer (releia e reclassifique)** — reabra os arquivos-chave e revise os claims; rebaixe os
99
+ que não têm evidência suficiente (🟢→🟡 ou 🟡→🔴). Um spec honesto sobre suas incertezas vale mais
100
+ que um spec fluente que apresenta suposição como fato.
101
+ 4. **Rode `dare reverse --report`** — o CLI conta os marcadores e gera `confidence-report.md` +
102
+ `traceability/code-spec-matrix.md` com o índice determinístico. Mostre o índice ao usuário.
103
+
104
+ ## Modo `--deep` (Fase 3)
105
+
106
+ Se `dare reverse --deep` foi usado, há artefatos extras em `DARE/REVERSE/` a completar:
107
+
108
+ - **`erd.md`** — o CLI extraiu entidades de migrations/Prisma/ORM (🟢, com evidência). Complete
109
+ relações/entidades **não-explícitas** no schema (🟡) e corrija o que estiver errado.
110
+ - **`domain-rules.md`** — regras de negócio (validações, invariantes, cálculos, políticas), 🟢/🟡/🔴.
111
+ - **`state-machines.md`** — um `stateDiagram-v2` por entidade/fluxo com estados e transições reais.
112
+ - **`permissions.md`** — papéis, recursos e regras de autorização (quem pode o quê).
113
+ - **`c4/c4-context.md`** e **`c4/c4-container.md`** — atores/sistemas externos e containers de deploy.
114
+ (O nível *component* já é o mapa de módulos em `c4/c4-component.md`, gerado pelo CLI.)
115
+
116
+ ## Regras de ouro
117
+
118
+ 1. **Não invente.** Se um fluxo não está claro no código, marque 🔴 (gap) em vez de chutar.
119
+ 2. **Fidelidade ao código real** — descreva o que o código faz, não o que deveria fazer.
120
+ 3. **Diagramas enxutos** — um fluxo legível vale mais que um diagrama exaustivo e ilegível.
121
+ 4. **Não re-varra** — os fatos já estão em `reverse-facts.json`; foque na inferência semântica.
122
+ 5. **Preserve o determinístico** — nunca edite o Mapa de Módulos/tabela/grafo gerados pelo CLI.
123
+
124
+ ## Antipatterns
125
+
126
+ | AP | Antipattern | Por quê |
127
+ |---|---|---|
128
+ | AP-01 | Inventar endpoints/entidades não presentes no código | Polui a pré-arquitetura com ficção |
129
+ | AP-02 | Reescrever a tabela de módulos do CLI | Quebra a fonte determinística |
130
+ | AP-03 | `sequenceDiagram` gigante e ilegível | Anula o propósito do diagrama |
131
+ | AP-04 | Pular a seção de Incertezas | Remove o ponto de validação humana |
132
+ | AP-05 | Ler o projeto inteiro arquivo a arquivo | Desperdiça contexto; os fatos já estão no JSON |
133
+ | AP-06 | Marcar tudo 🟢 sem evidência `file:line` | Infla a confiança e engana o humano — o valor está em separar 🟢/🟡/🔴 |
134
+
135
+ $ARGUMENTS
136
+
137
+ ---
138
+
139
+ Skill MIT — parte do DARE Method. Fase 0 (brownfield). Pareia com o comando `dare reverse`.