Como escrever código limpo com AI usando hooks no ClaudeCode
Limpeza de código, formatação automática, testes de qualidade e muito mais com inteligência artificial e ClaudeCode.
Por que isso é importante
Com a popularização de agentes de IA na programação, garantir que o código gerado atenda aos padrões de qualidade se tornou essencial para estabilidade e manutenção futuras.
O problema dos agentes AI gerarem código ruim
Muitas vezes, os agentes de IA, como o ClaudeCode, perdem o contexto do projeto ou esquecem partes da aplicação, gerando código frágil ou inconsistente. Mesmo humanos cometem erros, então por que esperar perfeição de uma IA?
Reforçando a qualidade com ferramentas clássicas
Antes mesmo da IA, era comum usar validadores, formatadores e linters para manter bons padrões. Agora, podemos automatizar isso com hooks específicos que atuam após a execução da IA.
ClaudeCode e a função de Hooks
Com os hooks do ClaudeCode, é possível rodar comandos específicos após a escrita de código, como formatação, linting e execução de testes, eliminando falhas e automatizando boas práticas.
Recebendo feedback automático com som e notificações
Podemos usar hooks sonoros para saber quando uma operação terminou. Isso auxilia no fluxo contínuo e verifica de forma audível se comandos do ClaudeCode ocorreram corretamente.
Formatadores como Prettier e SwiftFormat
Formatadores garantem que o código gerado siga padrões claros e homogêneos. Hooks executam esses formatadores automaticamente após modificações em arquivos selecionados.
Qualidade garantida com Linters
Linters como SwiftLint identificam violações de estilo e padrões. ClaudeCode pode ser configurado para corrigir automaticamente o código baseado nos resultados destes linters.
Hook de verificação de build
Um hook pode executar uma build após edições. Caso ocorra erro, ClaudeCode reconhece e corrige automaticamente. Isso garante código executável e funcional em tempo real.
Projeto SwiftUI com verificação automática
Em um projeto iOS de receitas com database local, foram aplicados hooks para cada modificação. Após cada edição, os três comandos (formatar, lintar e buildar) são ativados automaticamente.
Hooks definidos em arquivos JSON
Utilizamos arquivos como settings.json para listar comandos bash que serão ativados após edições em arquivos específicos. Isso inclui análise, formatação e testes automáticos.
Simplificando com SwiftFormat + SwiftLint
ClaudeCode executa SwiftFormat para deixar o código legível e usa SwiftLint com regras definidas para manter o padrão técnico da linguagem.
Evite alucinações da AI com código limpo
Um código limpo melhora a leitura e interpretação futura pelo próprio agente de IA, evitando que ele perca contexto ou introduza comportamentos errados.
Audit de acessibilidade no SwiftUI
Hooks também podem rodar verificações de acessibilidade automaticamente. Assim, garantimos que os elementos da UI seguem boas práticas de UX e acessibilidade.
Automatização com ClaudeCode Rule to Hook
Um repositório do GitHub converte regras de linguagem natural em hooks funcionais. Basta descrever o que deve acontecer, e o script cria automaticamente o comando necessário.
Escrevendo regras em linguagem natural
Quer formatar arquivos Python com Black? Basta escrever “formatar Python com Black após edição” e ver o Claude transformar isso em um hook funcional embutido.
Atualizando o formato settings.json
Hooks antigos usavam hooks.json. A atualização do Claude agora utiliza settings.json como único ponto de configuração dos comandos ativados.
tools.md: O arquivo essencial para contexto
Este arquivo define quais ferramentas ClaudeCode entende e onde elas podem ser aplicadas. Ele é base para gerar regras assertivas com ChatGPT ou Claude.
Gerando regras e aplicando com slash
Após descrever as regras, elas são transferidas para um arquivo rules.md. Executando o comando / com essas regras, ClaudeCode gera automaticamente os hooks dentro do settings.json.
Excluindo comandos desnecessários
Claude pode sugerir ações como commits git e triggers de CI. Caso não queira esses comportamentos, basta excluí-los antes da geração dos hooks finais.
Frameworks suportados e adaptabilidade
Python, JS, Swift, SwiftUI, qualquer linguagem pode adotar esse fluxo usando os templates tools.md e rules.md como base para comandos automatizados.