O Problema da Transição

CLAUDE.md: O Manual de Instruções do Seu Assistente de Código

TV
Thiago Victorino
12 min de leitura

Você contratou um desenvolvedor senior. Ele é brilhante, conhece dezenas de linguagens, aprende rápido e trabalha 24 horas. Mas ele não conhece seu projeto. Não sabe suas convenções. Não entende por que vocês fazem certas coisas de um jeito específico.

O CLAUDE.md e a carta de boas-vindas que você escreve para esse desenvolvedor.

O Que E o CLAUDE.md

O CLAUDE.md e um arquivo markdown que o Claude Code le automaticamente no inicio de cada sessão. Funciona como a memoria de longo prazo do agente — as instruções que ele sempre deve seguir, independente do que você pedir no momento.

Pense assim: o prompt que você digita e a tarefa do dia. O CLAUDE.md e o onboarding do funcionario.

Onde o Claude procura o arquivo:

  1. CLAUDE.md na raiz do projeto (mais comum)
  2. .claude/CLAUDE.md (organização alternativa)
  3. ~/.claude/CLAUDE.md (instruções globais para todos os projetos)
  4. CLAUDE.local.md (pessoal, deve estar no .gitignore)

A hierarquia e respeitada. Instruções globais são carregadas primeiro, depois as do projeto, depois as locais. O mais específico prevalece.

A Estrutura WHY-WHAT-HOW

Um CLAUDE.md eficiente responde três perguntas:

WHY — Por Que Este Projeto Existe

Claude trabalha melhor quando entende o propósito. Não precisa ser longo.

## Proposito

Sistema de gestão de crédito corporativo para o mercado brasileiro.
Foco: empresas de medio porte com faturamento entre R$10M e R$500M.
Diferencial: integração nativa com Receita Federal e Serasa.

O “por que” ajuda Claude a tomar decisões quando as instruções não cobrem um caso específico.

WHAT — O Que Existe Aqui

Mapa do territorio. Claude precisa saber onde encontrar as coisas.

## Estrutura do Projeto

src/ ├── domain/ # Logica de negocio (DDD) │ ├── credit/ # Análise de crédito │ └── customer/ # Gestão de clientes ├── infra/ # Implementacoes tecnicas │ ├── database/ # Repositories (Postgres) │ └── external/ # APIs externas (Serasa, RF) └── api/ # Controllers e rotas


**Tecnologias principais:**
- Node.js 20 + TypeScript 5.3
- PostgreSQL 15 com Prisma ORM
- Jest para testes, Vitest para unitarios rapidos

Dica: Use referência file:line ao inves de copiar código. Claude pode ler os arquivos diretamente.

Veja exemplo de repository em `src/infra/database/CustomerRepository.ts:15-45`

HOW — Como Fazer as Coisas

Comandos, convenções, fluxos. O que Claude precisa para executar.

## Comandos

```bash
npm run dev          # Servidor de desenvolvimento
npm run test         # Todos os testes
npm run test:watch   # Testes em modo watch
npm run lint         # ESLint + Prettier check
npm run db:migrate   # Aplicar migracoes pendentes

Convencoes

  • Commits: Conventional Commits em português
    • feat: adiciona validação de CNPJ
    • fix: corrige cálculo de score de crédito
  • Branches: feature/, fix/, refactor/
  • PRs: Sempre com descricao e checklist de testes

Verificacao

Antes de considerar qualquer tarefa completa:

  1. npm run lint passa sem erros
  2. npm run test passa
  3. Mudancas estão cobertas por testes

## Melhores Praticas

### 1. Seja Conciso

O limite recomendado e **300 linhas**. O ideal e **menos de 60**. LLMs seguem de forma confiavel entre 150-200 instruções. Apos isso, a aderencia cai.

**Ruim:**
```markdown
## Regras de Código

Sempre use const ao inves de let quando a variavel não for reatribuida.
Sempre use arrow functions para callbacks.
Sempre use template literals ao inves de concatenacao.
Sempre use destructuring quando possível.
Sempre use optional chaining quando acessar propriedades aninhadas.
... (mais 50 regras)

Bom:

## Estilo de Código

Seguimos o preset `@victorino/eslint-config`. Não repita regras do linter aqui.

2. Não Use Como Linter

CLAUDE.md e para o que não pode ser verificado automaticamente. Regras de formatacao devem estar no ESLint, Prettier, ou equivalente.

Use CLAUDE.md para:

  • Decisoes arquiteturais
  • Convencoes de negocio
  • Fluxos de trabalho
  • Contexto que máquinas não inferem

Não use para:

  • Regras de indentacao
  • Ordem de imports
  • Espacamento
  • Qualquer coisa que uma ferramenta deterministica valida

3. Progressive Disclosure

Nem tudo precisa estar no CLAUDE.md. Referencie documentacao externa.

## Documentacao

- Arquitetura: `/docs/architecture.md`
- API: `/docs/api.md`
- Deployment: `/docs/deploy.md`

Consulte esses arquivos quando precisar de detalhes específicos.

Claude le os arquivos sob demanda. Você mantem o CLAUDE.md enxuto.

4. Itere Constantemente

Trate o CLAUDE.md como código vivo. Toda vez que Claude erra de forma recorrente, pergunte: “Isso deveria estar no CLAUDE.md?”

Ciclo de melhoria:

  1. Claude comete erro
  2. Você corrige manualmente
  3. Você identifica se e erro recorrente
  4. Você adiciona instrução ao CLAUDE.md
  5. Repete

Algumas equipes pedem ao proprio Claude: “O que deveria estar no CLAUDE.md que teria evitado esse erro?“

5. Use Marcadores de Contexto

Organize com headings claros. Claude processa melhor informação estruturada.

## PROIBIDO

- Nunca commite arquivos `.env`
- Nunca faca push direto para `main`
- Nunca altere migracoes ja aplicadas em producao

## OBRIGATÓRIO

- Todo endpoint deve ter teste de integração
- Todo handler de erro deve logar contexto
- Toda feature deve ter feature flag

Comandos Essenciais

/init — Criação Automatica

No terminal, dentro do projeto:

claude

Depois digite:

/init

Claude analisa seu projeto e gera um CLAUDE.md inicial. Revise e ajuste — o gerado e ponto de partida, não destino final.

/permissions — Gerenciamento de Acesso

/permissions

Controla o que Claude pode fazer sem pedir permissao. Útil para:

  • Permitir execução automatica de testes
  • Permitir formatacao automatica
  • Restringir acesso a pastas sensíveis

/clear — Limpar Contexto

/clear

Quando a conversa fica longa ou confusa, limpa o historico. Claude rele o CLAUDE.md e comeca fresco.

# — Instruções Ad-Hoc

Durante a sessão, você pode adicionar instruções temporarias:

# Estou refatorando o modulo de pagamentos.
# Prefira composicao sobre heranca.
# Mantenha compatibilidade com a API v1.

Essas instruções duram ate o final da sessão ou ate você usar /clear.

Extended Thinking (Atualizado Janeiro 2026)

Importante: A partir de janeiro de 2026, ultrathink foi descontinuado. O budget de thinking agora é máximo por padrão.

O que mudou

Antes, você precisava usar palavras-chave para ativar níveis de raciocínio:

PalavraStatus
thinkAinda funciona, mas desnecessário
think hardAinda funciona, mas desnecessário
ultrathinkDescontinuado - não faz mais nada

Comportamento atual

O Claude Code agora usa automaticamente o budget máximo de thinking (31.999 tokens) para todas as solicitações. Você não precisa mais de palavras mágicas.

Dica avançada

Para tarefas extremamente complexas, você pode dobrar o budget de thinking com uma variável de ambiente:

MAX_THINKING_TOKENS=63999 claude

Isso desbloqueia 2x o budget padrão nos modelos Opus 4.5 e Sonnet 4.

No CLAUDE.md

Você não precisa mais configurar modos de raciocínio. Remova instruções antigas sobre ultrathink dos seus arquivos CLAUDE.md.

Workflows Recomendados

Explore, Plan, Code, Commit

O fluxo mais eficiente com Claude Code:

1. Explore

Análise a estrutura atual do modulo de autenticacao.
Quais dependencias existem? Quais padroes são usados?

2. Plan

Preciso adicionar autenticacao por SAML.
Crie um plano detalhado antes de implementar.
Não escreva código ainda.

3. Code

Implemente o plano. Comece pelo adapter de SAML.

4. Commit

Revise as mudancas e crie commits semanticos.

TDD com Claude

Claude e excelente para TDD:

Quero implementar validação de CPF.
Primeiro, escreva os testes. Não implemente ainda.

Revise os testes. Depois:

Agora implemente para passar os testes.

Verificacao Cruzada

Apos implementacao complexa:

Revise criticamente sua propria implementacao.
Liste potenciais problemas, edge cases não cobertos,
e melhorias de performance.

Claude frequentemente encontra problemas que ele mesmo criou.

Multi-Claude Workflows

Para projetos grandes, considere múltiplas instancias:

Git Worktrees

# Cria worktree paralelo
git worktree add ../projeto-feature-auth feature/auth

# Em um terminal
cd ../projeto-feature-auth && claude

# Em outro terminal (projeto principal)
claude

Dois Claudes trabalhando em paralelo, isolados por branches.

Verificacao por Pares

Apos Claude A terminar uma feature:

# No Claude B
Revise o PR #123. Identifique problemas de:
- Segurança
- Performance
- Manutencao
- Cobertura de testes

Dois agentes, perspectivas diferentes.

Exemplos de CLAUDE.md

Projeto Node.js/TypeScript

# Projeto CreditFlow

Sistema de análise de crédito para PMEs brasileiras.

## Stack

- Node.js 20, TypeScript 5.3
- PostgreSQL 15, Prisma ORM
- Express.js, Jest

## Estrutura

src/domain/ # Logica de negocio src/infra/ # Implementacoes src/api/ # HTTP layer


## Comandos

```bash
npm run dev     # Dev server (porta 3000)
npm run test    # Testes
npm run lint    # Verificacao

Convencoes

  • Commits: Conventional Commits em PT-BR
  • Testes: Todo código em domain/ precisa de teste
  • Erros: Use classes de erro customizadas em src/domain/errors/

Verificacao

Antes de finalizar qualquer tarefa:

  1. npm run lint passa
  2. npm run test passa
  3. Mudancas tem cobertura de teste

### Projeto Python/FastAPI

```markdown
# API de Processamento de NFe

Serviço de extração e validação de Notas Fiscais Eletrônicas.

## Stack

- Python 3.11, FastAPI
- PostgreSQL, SQLAlchemy
- Pytest, Ruff

## Ambiente

```bash
source .venv/bin/activate
uvicorn app.main:app --reload

Estrutura

app/
├── domain/     # Entidades e regras
├── services/   # Casos de uso
├── api/        # Rotas FastAPI
└── infra/      # DB, External APIs

Convencoes

  • Type hints obrigatorios
  • Docstrings em português para funções publicas
  • Pydantic para validação de entrada

PROIBIDO

  • Não use print() para debug (use logging)
  • Não commite .env
  • Não faca queries SQL diretas (use SQLAlchemy)

## Erros Comuns

### 1. CLAUDE.md Muito Longo

Se passou de 300 linhas, está errado. Mova detalhes para documentacao separada.

### 2. Repetir Regras do Linter

Se o ESLint ja valida, não precisa estar no CLAUDE.md.

### 3. Instruções Vagas

**Ruim:** "Escreva código limpo"
**Bom:** "Funções com mais de 20 linhas devem ser divididas"

### 4. Não Atualizar

CLAUDE.md desatualizado e é pior que nenhum. Mantenha sincronizado com o projeto.

### 5. Ignorar o .local

Use `CLAUDE.local.md` para preferencias pessoais:

```markdown
# CLAUDE.local.md (no .gitignore)

Sou o Thiago. Prefiro:
- Explicacoes detalhadas
- Commits em português
- Foco em performance

Conclusao

O CLAUDE.md é a ponte entre a inteligência genérica do modelo e o conhecimento específico do seu projeto. Bem escrito, transforma Claude de um assistente genérico em um membro da equipe que conhece suas convenções.

Comece simples. Itere sempre. O CLAUDE.md perfeito não existe — existe o CLAUDE.md que evolui com seu projeto.


No Victorino Group, usamos Claude Code extensivamente para acelerar entregas sem sacrificar qualidade. Se você quer implementar agentes de IA com governanca no seu time, vamos conversar.

Se isso faz sentido, vamos conversar

Ajudamos empresas a implementar IA sem perder o controle.

Agendar uma Conversa