Documentação desatualizada: dá para o Claude Code arrumar a partir do código?

Dá pra usar o Claude Code na documentação do projeto, com um limite bem claro: ele reescreve o que está escrito no repositório (comandos de shell, setup, estrutura de pastas, o que cada módulo faz, convenções visíveis no código) e não tem como saber o porquê das decisões, o que foi tentado e descartado nem os acordos do time. O caminho é rodar /init na raiz, que gera ou revisa o CLAUDE.md a partir da varredura do próprio repo, trabalhar em modo de planejamento e revisar frase por frase antes de commitar: a própria Anthropic posiciona a saída do /init como ponto de partida, não produto acabado
Fala aí, beleza? Todo projeto com mais de um ano tem aquele README que descreve um software que não existe mais
O comando de setup mudou de nome, o módulo auth virou identity, tem um passo de configuração que ninguém roda desde sabe-se lá quando
E aí bate a pergunta: o agente lê o código inteiro, então ele consegue arrumar o texto sozinho, né?
A resposta honesta é: sim pra uma parte, não pra outra
Ele é MUITO bom em descrever o que está escrito no repositório
E é péssimo (ou pior: convincente e errado) naquilo que só vive na cabeça de quem tomou a decisão
Bora separar as duas coisas…
O que você precisa antes de pedir a atualização
Antes de sair mandando o agente reescrever arquivo, umas checagens rápidas que evitam dor de cabeça depois
- Abrir o Claude Code na pasta certa: os arquivos CLAUDE.md do diretório atual e dos diretórios acima dele são lidos no início da sessão e entregues logo depois do system prompt. Já o CLAUDE.md de subpasta carrega sob demanda, só quando o Claude lê arquivos daquela subpasta
- Decidir onde o arquivo vai morar: a raiz do repositório (compartilhado com o time), um diretório pai (o caso clássico de monorepo) ou a pasta home do usuário (vale pra todos os seus projetos)
- Windows nativo: a recomendação é instalar o Git for Windows pra que o Claude Code use a ferramenta Bash. Sem ele, o shell usado é o PowerShell, e aí todo comando de setup que ele sugerir vai sair com a sintaxe de outro mundo
- Git funcionando: o Claude Code trabalha direto com git, prepara mudanças no stage, escreve mensagem de commit, cria branch e abre pull request. É isso que te dá o diff pra revisar antes de aceitar qualquer texto
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
Um aviso que pega gente desprevenida: se o arquivo de memória do projeto tiver um import apontando pra fora do diretório de trabalho (tipo @~/.claude/minhas-instrucoes.md), isso é tratado como import externo
Na primeira vez o Claude Code abre um diálogo de aprovação listando os arquivos
Não é bug, é o comportamento esperado, só aprova e segue 🙂
O que o Claude Code consegue reescrever a partir do código e o que ele não tem como saber
Essa é a parte que decide se o post vira produtivo ou vira retrabalho
A régua é simples: o que está escrito no repositório ele descreve bem, o que não está ele PREENCHE, e preencher lacuna é exatamente onde nasce documentação bonita e falsa
| O agente consegue reescrever | O agente não tem como saber |
|---|---|
| Comandos de shell que realmente existem nos scripts | Por que aquela decisão de arquitetura foi tomada |
| Instruções de setup do ambiente | O que já foi tentado antes e descartado |
| Estrutura de pastas e o que cada módulo faz | Contexto de negócio e prioridade do produto |
| Convenções visíveis no estilo do código | Acordos informais do time |
| Avisos de configuração que aparecem nos arquivos | Histórico: quem mudou o quê e por quê |
Repara que a coluna da direita tem uma coisa em comum: nada ali está no código
Se o motivo de uma escolha só existe na conversa de um PR fechado há dois anos, e ninguém trouxe aquilo pra dentro de um arquivo do repositório, não tem de onde esse texto sair numa seção de "Decisões de arquitetura"
E o agente não deixa o espaço em branco, ele preenche com o que soa plausível
Quando o que você precisa é justamente digerir material que está FORA do código (documentação de terceiro, artigo, transcrição), aí o jogo é outro e vale usar o NotebookLM para ler documentação em vez de forçar o agente a adivinhar
Na parte das convenções tem uma sutileza: ele descreve o padrão que consegue enxergar lendo os arquivos, e isso é bem diferente de ele seguir esse padrão na hora de escrever código novo. Se o teu caso é fazer o agente respeitar o padrão daquele projeto, o CLAUDE.md é meio caminho, mas o assunto é maior que documentação
Passo a passo para atualizar a documentação com o Claude Code
Fluxo que vai do zero até o commit, com o erro comum de cada passo
- Rode
/initna raiz do projeto
/init
O /init analisa o projeto (arquivos de pacote, documentação existente, arquivos de configuração e estrutura de código) e gera um CLAUDE.md sob medida pra aquele repositório

VPS Hostinger para seu sistema
10% OFF extraVPS com SSD NVMe e backups semanais. O cupom MATHEUSHORADECODAR é aplicado automaticamente pelo link.
Ver planos com 10% OFF →E ele não serve só pra repo virgem: rodando em projeto que JÁ tem CLAUDE.md, o Claude revisa o arquivo atual e sugere melhorias com base no que descobre explorando o código
O erro comum deste passo: achar que o /init vai reescrever o teu README.md. A documentação oficial descreve o /init gerando CLAUDE.md, não README. Se você quer o README atualizado, isso é um pedido de edição normal que você faz depois, com escopo explícito
- Entre no modo de planejamento ANTES de deixar ele escrever
Shift+Tab ou prefixando o prompt com /plan
No modo de planejamento as edições ficam bloqueadas até você aprovar o plano, e é exatamente isso que você quer quando o assunto é texto que outras pessoas vão ler como verdade
Ctrl+G abre o plano proposto no teu editor de texto padrão, dá pra editar direto ali
E Shift+Tab de novo sai do modo de planejamento, caso você tenha entrado sem querer
O erro comum deste passo: mandar "atualiza a documentação" no modo normal e voltar do café com dez arquivos alterados e nenhuma ideia de qual frase saiu de onde
- Escolha como aprovar
Com o plano pronto, o Claude Code pergunta como prosseguir e oferece aprovar usando o modo automático, aprovar revisando cada edição manualmente ou continuar planejando
Pra documentação, revisar cada edição manualmente é o caminho chato e certo
O erro comum deste passo: escolher automático "porque é só texto". É só texto até alguém do time seguir uma instrução de setup inventada
- Delimite o escopo do arquivo
Não existe formato obrigatório pro CLAUDE.md, a recomendação é mantê-lo conciso e legível por humanos
O conteúdo sugerido é: comandos de shell comuns, estilo de código, instruções de teste, convenções do repositório, setup do ambiente e avisos específicos do projeto
E a recomendação de tamanho é ficar abaixo de 200 linhas por CLAUDE.md, porque arquivo mais longo consome mais contexto e reduz a aderência às instruções
O erro comum deste passo: deixar o pedido aberto ("documenta o projeto") e receber um calhamaço que ninguém lê e que o próprio agente segue mal
- Jogue a varredura longa pra um subagente
Subagentes customizados são arquivos markdown com frontmatter YAML em .claude/agents/ (do projeto, compartilhado com o time) ou ~/.claude/agents/ (do usuário)
O ponto forte aqui: o subagente roda em uma janela de contexto própria e só a mensagem final dele volta pra sessão principal, junto com metadados
Ou seja, ele pode ler meio repositório atrás de comandos reais e te devolver só o resumo, sem entupir a tua sessão
O erro comum deste passo: esperar que a sessão principal "lembre" do que o subagente leu no meio do caminho. Não lembra, só a mensagem final volta
- Se o pedido é recorrente, vira skill
Skills ficam em ~/.claude/skills/ (pessoais, valem em todos os projetos) ou em .claude/skills/<nome>/SKILL.md (do projeto)
Todo SKILL.md precisa de frontmatter YAML entre marcadores --- com os campos obrigatórios name e description
---
name: revisar-docs
description: Revisa a documentação do projeto usando só o que está escrito no repositório
---
E aqui o detalhe que confunde bastante gente: .claude/commands/ é o formato legado. O recomendado hoje é .claude/skills/<nome>/SKILL.md, que suporta a mesma invocação por barra e ainda pode ser acionado pelo próprio Claude
Os arquivos que você já tem em .claude/commands/ continuam funcionando, ninguém precisa sair migrando às pressas
O erro comum deste passo: esquecer o frontmatter e ficar procurando por que a skill não aparece
- Revise, commite e abra o pull request
Esse é o passo que fecha o fluxo, e ele é do Claude Code também: a integração nativa com git prepara as mudanças no stage, escreve a mensagem de commit, cria branch e abre pull request

Crie sistemas com IA para vender
Prompts, modelos e checklists para criar e publicar seu sistema com IA e preparar a oferta para o primeiro cliente.
Quero o e-book gratuito Receba o livro e os bônus no seu e-mail.Na prática: pede pra ele criar uma branch só de documentação, lê o diff linha por linha, e só então manda commitar e abrir o PR pro time revisar
Use isso a teu favor, branch separada deixa o diff limpo e a revisão honesta
O erro comum deste passo: misturar a atualização de docs com mudança de código no mesmo commit e perder a chance de ler o texto com calma
Erros que aparecem quando o agente escreve a documentação sozinho
Apareceu um parágrafo explicando "o porquê" de uma escolha:
Sintoma: o texto gerado tem uma seção elegante explicando a motivação por trás de uma decisão técnica, e ninguém do time reconhece aquilo
Causa: o motivo não está no código. O agente encontrou o resultado da decisão e preencheu a lacuna com uma explicação plausível
Solução: corta o parágrafo, ou vai atrás de quem sabe e traz o motivo por escrito pro repositório
Como prevenir: peça explicitamente que ele descreva o QUE existe e marque o que não conseguiu confirmar no código, em vez de completar
O agente parou de seguir o CLAUDE.md:
Sintoma: as instruções estão lá, escritas, e ele ignora metade
Causa: arquivo inchado. A recomendação é ficar abaixo de 200 linhas justamente porque arquivo mais longo consome mais contexto e reduz a aderência
Solução: enxugar de verdade, cortando o que é óbvio ou duplicado
Como prevenir: e aqui vai o detalhe importante, dividir a memória em imports @caminho ajuda na ORGANIZAÇÃO mas não reduz o consumo de contexto, porque os arquivos importados também são carregados na abertura da sessão. Quebrar em cinco arquivos não emagrece nada, só arruma a gaveta
A instrução da subpasta parece que não existe:
Sintoma: você escreveu uma regra no CLAUDE.md de packages/api/ e o agente age como se nunca tivesse visto
Causa: CLAUDE.md de subpasta é carregado sob demanda, quando o Claude lê arquivos daquela subpasta. Se a conversa nem encostou naqueles arquivos, a instrução não entrou
Solução: ou você toca em arquivos da pasta, ou a regra sobe pra um nível que carrega no início da sessão
Como prevenir: regra que vale pro projeto inteiro fica na raiz, regra local fica na subpasta, e você aceita que ela só aparece quando for relevante
Sessão longa, contexto perdido:
Sintoma: depois de horas de trabalho, o agente parece ter esquecido as convenções do projeto
Causa: sessão comprimida
Solução: nesse ponto tem uma boa notícia, o CLAUDE.md da raiz do projeto sobrevive à compactação. Depois do /compact, o Claude Code relê o arquivo do disco e reinjeta o conteúdo na sessão
Como prevenir: o que é regra dura mora no CLAUDE.md da raiz, não numa mensagem que você mandou no início da conversa e sumiu no meio do caminho
Conclusão: o critério de revisão antes de aceitar qualquer texto gerado
A régua que eu usaria é curta e cabe em três linhas
Toda frase da documentação precisa ter fonte no repositório: um comando, um arquivo, uma pasta, uma configuração que você consegue apontar com o dedo
O que não é verificável no código sai do texto, ou vira pergunta pra uma pessoa que estava lá quando aquilo foi decidido
E o texto gerado é rascunho, não versão final. Isso não é implicância minha, é o posicionamento da própria documentação da Anthropic: a saída do /init é ponto de partida, captura os padrões óbvios mas pode perder nuances do fluxo de trabalho, então precisa ser revisada e refinada
Próximo passo prático? Escolhe um repositório pequeno, roda o /init no modo de planejamento e compara o rascunho com o que está no README hoje, linha por linha, antes de commitar
É o teste mais barato que existe pra descobrir o quanto o teu projeto documenta a si mesmo e o quanto ele depende da memória de alguém
Até o próximo post! 😀
Perguntas frequentes
O /init do Claude Code reescreve o README ou só o CLAUDE.md?
Só o CLAUDE.md. O /init analisa arquivos de pacote, documentação existente, configuração e estrutura de código pra gerar esse arquivo sob medida pro repositório, mas a documentação oficial fala em CLAUDE.md, não em README. Se você quer o README atualizado, isso vira um pedido de edição normal, com escopo explícito, feito depois.
Dá pra rodar /init num projeto que já tem CLAUDE.md?
Dá sim. Nesse caso o Claude revisa o arquivo atual e sugere melhorias com base no que descobre explorando o código, em vez de simplesmente sobrescrever o que já existe.
Onde colocar o CLAUDE.md quando o projeto é um monorepo?
Os locais válidos são a raiz do repositório (compartilhado com o time), um diretório pai, que é o caso clássico de monorepo, ou a pasta home do usuário, que vale pra todos os projetos. CLAUDE.md do diretório atual e dos diretórios acima dele carrega no início da sessão; já o de uma subpasta só carrega sob demanda, quando o Claude lê arquivos daquela subpasta.
Por que aparece um diálogo de aprovação pra um import no CLAUDE.md?
Isso acontece quando o import usa @caminho apontando pra fora do diretório de trabalho, tipo @~/.claude/minhas-instrucoes.md. O Claude Code trata isso como import externo e, na primeira vez, abre um diálogo listando os arquivos pra você aprovar. Não é erro, é o comportamento esperado.
O CLAUDE.md some depois de um /compact?
Não. O CLAUDE.md da raiz do projeto sobrevive à compactação: depois do /compact, o Claude Code relê o arquivo do disco e reinjeta o conteúdo na sessão.
Qual o tamanho máximo recomendado pro CLAUDE.md?
A documentação recomenda manter cada CLAUDE.md abaixo de 200 linhas, porque arquivos mais longos consomem mais contexto e reduzem a aderência às instruções. Vale lembrar também que dividir o conteúdo em imports @caminho ajuda na organização, mas não reduz esse consumo, já que os arquivos importados carregam junto na abertura da sessão.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 30min
Blog | Mais populares
Bateu o limite de uso do Claude Code? Como retomar a tarefa sem refazer tudo
Bateu o limite de uso do Claude Code? Veja como retomar a tarefa de onde parou com /usage, CLAUDE.md e --continue, sem refazer nada.
Como pagar o Claude Code no Brasil: cartão, dólar, IOF e quanto fica em reais
Claude Code preço Brasil na prática: câmbio, IOF de 3,5% e quanto fica na fatura. Planos Pro e Max convertidos em reais e como pagar com cartão.

O que é o JEV e para que ele serve no Claude Code?
O que é JEV no Claude Code? Entenda o modelo da TypeSafe AI, como instalar a skill e quanto custa por milhão de tokens.
