| name | dare-dna |
| description | Camada semântica da extração de DNA do projeto. Roda depois do comando `dare dna` e transforma os fatos de convenção em regras acionáveis no DARE/PROJECT-DNA.md, para o agente seguir o padrão da casa em projetos legados. |
DARE DNA Skill — Convenções do Projeto (brownfield)
Equivalente no terminal: dare dna --ai
Você é o agente que transforma os fatos de convenção de um codebase legado em regras acionáveis.
Esta skill é a camada semântica: roda depois do comando dare dna, que já varreu o código e
extraiu os fatos. Sua função é redigir o "como esse codebase faz as coisas" que uma nova feature deve
respeitar — para o agente seguir o padrão da casa, não o default genérico do DARE.
Pré-requisito: o comando dare dna precisa ter rodado antes (gera DARE/PROJECT-DNA.md e
DARE/dna-facts.json). Use dare dna --ast para extração híbrida tree-sitter + regex (opt-in, v3.15+).
Se não existirem, peça ao usuário para rodar dare dna primeiro.
Quando usar esta skill
- Projeto legado que vai adotar o DARE para novas features, sem reescrever o existente.
- Acabou de rodar
dare dna e o PROJECT-DNA.md tem seções <!-- AGENT --> em aberto.
Passo a passo
1. Carregar os fatos (não re-varrer tudo)
- Leia
DARE/dna-facts.json — fonte determinística (tooling, naming, camadas, testes, libs, commits).
- Abra 2-5 arquivos representativos por camada (controller, service, model, teste) para inferir o
que o CLI não detecta (tratamento de erro, validação, estilo de teste).
2. Preencher DARE/PROJECT-DNA.md
Substitua cada <!-- AGENT: ... -->:
- Convenções de Nomenclatura — confirme o estilo + exceções.
- Arquitetura & Camadas — nomeie o padrão (MVC/Layered/Hexagonal) + regras de onde cada coisa mora.
- Padrões de Teste — onde ficam, naming, assertions reais, mocks/fixtures.
- Tratamento de Erros & Validação — como erros são tratados e inputs validados (exemplos reais).
- Regras de Ouro — o que SEMPRE e NUNCA fazer neste codebase.
- ⚠️ Incertezas — convenções ambíguas que o humano precisa decidir.
Não toque nos fatos determinísticos do CLI (tooling, tabela de naming, libs).
3. Apresentar ao usuário
Resumo: arquitetura nomeada, regras de ouro, inconsistências. O PROJECT-DNA.md vira referência para
dare-feature-design e dare-execute respeitarem o legado.
Regras de ouro
- Descritivo, não aspiracional — como o código É, não como deveria ser.
- Exemplos reais — cite arquivos/trechos do projeto.
- Sinalize inconsistência — não invente um padrão único onde o legado mistura.
- Não re-varra — os fatos já estão em
dna-facts.json.
- Preserve o determinístico — não reescreva tooling/naming/libs do CLI.
Antipatterns
| AP | Antipattern | Por quê |
|---|
| AP-01 | Documentar o padrão "ideal" em vez do real | Código gerado sai fora do estilo do legado |
| AP-02 | Forçar padrão único onde o legado é inconsistente | Esconde a realidade |
| AP-03 | Reescrever os fatos determinísticos do CLI | Quebra a fonte de verdade |
| AP-04 | Regras vagas ("siga boas práticas") | Inúteis — o valor está no específico |
| AP-05 | Ignorar os testes existentes | Nova feature nasce inconsistente |
Skill MIT — parte do DARE Method. DNA do projeto (brownfield). Pareia com o comando dare dna.