Herdar Estilo Legado
Previne o desvio de estilo de código gerado por IA em projetos legados, escaneando a base de código em busca de convenções implícitas em quatro dimensões meta-arquiteturais, resolvendo conflitos com o usuário um de cada vez e cristalizando o consenso em um arquivo .ai-style-rules.md aplicável. Totalmente agnóstico a linguagem e framework.
Quando Ativar
- O usuário digita
/inherit-legacy-style - O usuário menciona a integração de IA a um projeto legado escrito à mão
- O usuário está preocupado com o "desvio" do código gerado por IA em relação às convenções existentes do projeto
- O usuário deseja extrair e codificar as regras de codificação implícitas do projeto
Quando Usar
Use esta habilidade quando precisar preservar o estilo de um projeto legado e evitar o desvio de estilo gerado por IA. Veja Quando Ativar acima para as condições de gatilho.
Pré-requisitos
- Git (recomendado; projetos sem Git usam carimbos de data/hora de arquivos para o modo incremental)
- Acesso de leitura/escrita à raiz do projeto (gera
.ai-style-rules.mde opcionalmenteCLAUDE.md)
Fluxo de Trabalho
Passo 0 — Modo de Detecção Automática
Verifique silenciosamente a existência de .ai-style-rules.md na raiz do projeto:
| O arquivo existe? | Modo |
|---|---|
| Não | Branch A — Varredura Completa Inicial |
| Sim | Branch B — Checagem Incremental |
Anuncie o modo em uma linha e prossiga — nunca peça ao usuário para escolher.
Branch A — Varredura Completa Inicial
1. Meça a escala, escolha um nível de varredura
git ls-files | grep -cE '\.(js|ts|jsx|tsx|vue|py|go|rs|java|kt|rb|php|cs|swift|c|cpp|h)$'
| Nível | Arquivos fonte | Estratégia |
|---|---|---|
| Pequeno | ≲ 50 | Leitura completa de cada fonte |
| Médio | 50–500 | Camada de infra = leitura completa; camada de negócio = amostra de 2–3 por dimensão |
| Grande | ≳ 500 | Amostragem estrita + limite de orçamento; resumo --stat primeiro, depois leituras direcionadas |
2. Escaneie ao longo de 4 dimensões
- Anatomia do Arquivo — ordem de declaração no arquivo (imports → tipos → lógica principal → helpers → export)
- Fluxo de Estado e Controle — convenções de nomenclatura para estado assíncrono, paginação, flags
- Infraestrutura — onde vivem os utilitários transversais (interceptadores, formatadores, middlewares)
- Tratamento de Erros — try/catch vs interceptador global vs retorno Result; hábitos de verificação de nulo
3. Aplique redução de ruído por limite de sinal
Antes de interromper o usuário, avalie a força do sinal:
- Sinal fraco → suprimir automaticamente: minoria <5% E contagem <10 → maioria vence, minoria vai para os NÃO FAÇA
- Sinal forte → questionar: divisão quase igual, ou bifurcação semântica em uma dimensão central
- Exceção de projeto pequeno: fontes ≲50, "3 vs 2" NÃO é maioria → questione
4. Resolva conflitos um de cada vez (Protocolo de Questionamento)
Para cada conflito de sinal forte, apresente EXATAMENTE uma pergunta com 4 opções:
Evidência:
caminhoAusa estilo X,caminhoBusa estilo Y AVISO: Risco: misturar ambos fratura o estilo do projeto Escolha:1seguir X2seguir Y3isso é evolução, atualize as regras4Eu tenho uma nova regra
Pause até o usuário responder, então prossiga para o próximo conflito. Nunca acumule perguntas.
5. Gere .ai-style-rules.md com três seções obrigatórias:
- [Arquivos Dourados] — caminhos de exemplares reais anotados com o que demonstram
- [Regras de Nomenclatura e Estado-Controle] — convenções concretas e verificáveis
- [NÃO FAÇA] — anti-padrões que não devem se propagar
6. Instale o hook persistente
Pergunte ao usuário sobre a força de aplicação (use AskUserQuestion):
| Opção | Mecanismo |
|---|---|
| 1 Hook suave (recomendado) | Escreva referência @.ai-style-rules.md no CLAUDE.md do projeto |
| 2 Hook forte | Hook suave + Hook `PreToolUse[Write |
| 3 Sem hook | Mantenha o arquivo de regras; o usuário consulta manualmente |
Branch B — Checagem Incremental
- Leia o
.ai-style-rules.mdexistente; se tiver uma impressão digital de commit,git diff <último_hash> HEAD --statpara identificar o delta - Leia as alterações recentes do Git (
git log -3 --stat→ inspecione arquivos suspeitos sob demanda) - Para diffs muito grandes (>centenas de arquivos): apenas resumo
--stat+ amostra das maiores alterações - Compare o novo código com as regras registradas → conflitos passam pelo Protocolo de Questionamento
- Anexe o log de evolução ao final do
.ai-style-rules.md(nunca sobrescreva regras antigas)
Aplicação por Turno
Quando .ai-style-rules.md estiver em contexto (carregado via CLAUDE.md), toda tarefa de escrita de código deve começar com uma declaração de conformidade na cadeia de raciocínio, nomeando o exemplar sendo seguido e os NÃO FAÇA sendo evitados.
Como Funciona
Esta habilidade detecta automaticamente se é uma execução inicial ou incremental pela presença de .ai-style-rules.md:
- Inicial (Branch A) — Mede a escala do projeto, escaneia a base de código em 4 dimensões meta-arquiteturais (Anatomia de Arquivos, Fluxo de Estado e Controle, Infraestrutura, Tratamento de Erros), aplica redução de ruído por limite de sinal para suprimir conflitos fracos, resolve conflitos de sinal forte um de cada vez com o usuário, gera
.ai-style-rules.mdcom Arquivos Dourados / Regras de Nomenclatura / NÃO FAÇA, e oferece hooks de aplicação opcionais. - Incremental (Branch B) — Lê regras existentes, verifica diffs recentes do Git em busca de padrões novos ou conflitantes, executa o mesmo protocolo de questionamento um de cada vez para quaisquer conflitos encontrados, e anexa logs de evolução sem sobrescrever regras existentes.
- Aplicação por Turno — Quando conectado via
CLAUDE.md, toda tarefa de escrita de código começa com uma declaração de conformidade nomeando o exemplar seguido e os NÃO FAÇA evitados.
Especificação de Saída
.ai-style-rules.mdna raiz do projeto (com impressão digital de commit + nível de escala no cabeçalho)- Opcionalmente
CLAUDE.mdcom referência@.ai-style-rules.md - Logs de evolução anexados como entradas
### [AAAA-MM-DD] Log de Evolução de Estilo
Anti-Padrões
- FALHA: NÃO pule a etapa de medição de escala — amostrar um projeto de 30 arquivos o "mata de fome"; escanear completamente um repositório de 5.000 arquivos explode
- FALHA: NÃO acumule várias perguntas de conflito de uma vez — o questionamento é estritamente um de cada vez
- FALHA: NÃO sobrescreva regras antigas no modo incremental — sempre anexe logs de evolução
- FALHA: NÃO use o "hook forte" como padrão sem perguntar — a força de aplicação é uma decisão do usuário
- FALHA: NÃO julgue sintaxe ou qualidade da pilha tecnológica — esta habilidade alinha apenas meta-arquitetura
- FALHA: NÃO copie bugs de arquivos exemplares — reutilize a estrutura, sinalize defeitos
Melhores Práticas
- Anuncie o modo detectado (inicial vs incremental) e o nível de escala em uma linha antes de escanear
- Para projetos grandes, leia resumos
--statprimeiro, depoisReaddirecionado em arquivos suspeitos - Deixe o limite de sinal lidar com ruído — uma divisão de nomenclatura 843-vs-8 deve resolver automaticamente sem interromper o usuário
- Em caso de dúvida sobre a força do sinal, incline-se a perguntar
- O hook suave do CLAUDE.md (
@.ai-style-rules.md) geralmente é suficiente; hook forte apenas se o usuário quiser aplicação mecânica
Habilidades Relacionadas
init— inicializar um novo CLAUDE.md com documentação da base de códigocode-review— revisar diffs quanto a correção e problemas de estilosimplify— revisar código quanto a oportunidades de reuso e simplificação
Exemplos
-
Integração inicial
- Usuário: "Ajude-me a integrar IA a esta base de código antiga sem alterar seu estilo."
- Ação: Executar Branch A varredura completa → medir escala → escanear 4 dimensões → questionar conflitos → gerar
.ai-style-rules.md→ oferecer força de hook (suave/forte/nenhum).
-
Atualização incremental após mudanças na equipe
- Usuário: "Adicionamos um novo módulo; mantenha as regras de estilo existentes intactas."
- Ação: Executar Branch B checagem incremental → comparar deltas do Git com regras registradas → questionar quaisquer novos conflitos → anexar log de evolução sem sobrescrever.
-
Aplicando NÃO FAÇA via CLAUDE.md
- Usuário: "Garanta que todo novo código permaneça consistente com as regras do projeto."
- Ação: Hook suave instalado →
.ai-style-rules.mdcarregado automaticamente a cada sessão → toda tarefa de escrita de código começa com declaração de conformidade, reutilizando padrões exemplares e evitando NÃO FAÇA.