Claude Code: Guia de Uso do CLAUDE.md
Última atualização: 2026-08-31
O CLAUDE.md é o "manual do projeto" do Claude Code — escreva bem, e o Claude Code funciona como um membro experiente da equipe; escreva mal, e é como um novato sem noção.
📋 Pré-requisitos: Capítulo 8 - Uso Básico
1. O Que Você Vai Aprender
- Sintaxe e estrutura completa do CLAUDE.md
- Estratégia de configuração em camadas (global/projeto/diretório)
- Melhores práticas de escrita
- Armadilhas comuns e como evitá-las
- Exemplos práticos comparativos
2. Sintaxe e Estrutura do CLAUDE.md
(1) Estrutura Central
# CLAUDE.md
## Project Overview
[Uma linha descrevendo o que o projeto é e faz]
## Tech Stack
[Linguagem, framework, banco de dados, toolchain]
## Common Commands
[Comandos de build, teste, deploy, dev]
## Code Conventions
[Padrões de nomenclatura, organização de arquivos, requisitos de estilo]
## Constraints and Limitations
[O que não fazer, o que deve ser feito]
## Known Issues
[Dívida técnica e armadilhas que requerem atenção especial]
(2) Tipos de Instruções
| Tipo | Exemplo | Prioridade |
|---|---|---|
| Deve fazer | "Todas as APIs devem ter tratamento de erros" | Alta |
| Não deve fazer | "Não modificar tabelas do banco diretamente" | Alta |
| Deveria fazer | "Preferir estilo funcional" | Média |
| Informação de referência | "Projeto usa estrutura Monorepo" | Baixa |
▶ Exemplo 1: CLAUDE.md de Alta Qualidade
# CLAUDE.md
## Project Overview
Backend de plataforma SaaS de faturamento, gerenciando assinaturas, geração de faturas e integração de pagamentos.
## Tech Stack
- Node.js 20 + TypeScript 5.3
- Express 4.18 + middleware chain
- Prisma 5.x (PostgreSQL)
- Redis (cache + queue)
- Jest + Supertest (testing)
## Common Commands
- `npm run dev` — Iniciar servidor dev (porta 3000)
- `npm test` — Executar todos os testes
- `npm run lint` — Verificação ESLint
- `npx prisma migrate dev` — Migração de banco
## Code Conventions
- Camada de serviço apenas lida com lógica de negócios, sem acesso direto a objetos HTTP
- Camada de controller lida com transformação de request/response
- Todas as operações de banco via padrão Repository
- Erros usam classe AppError com statusCode e code
- Formato de resposta da API: `{ success: boolean, data: T, error?: string }`
## Constraints
- ❌ Nunca usar pg client diretamente, deve usar Prisma
- ❌ Nunca acessar req/res na camada de Service
- ❌ Nunca hardcodar secrets e credenciais
- ✅ Todo endpoint de API deve ter testes de integração
- ✅ Todos os valores monetários usam centavos (inteiro), evitar erros de ponto flutuante
## Known Issues
- PaymentService.processRefund tem problema de concorrência (veja ISSUE-342)
- InvoiceService.generatePDF tem desempenho ruim com muitos itens (veja ISSUE-156)
3. Estratégia de Configuração em Camadas
(1) Sistema de Configuração em Três Camadas
~/.claude/CLAUDE.md # Global: Preferências pessoais
project-root/CLAUDE.md # Projeto: Convenções da equipe
project-root/src/api/CLAUDE.md # Diretório: Instruções locais
| Camada | Escopo | Conteúdo Típico | Prioridade |
|---|---|---|---|
| Global | Todos os projetos | Preferências pessoais de estilo de código | Mais baixa |
| Projeto | Projeto atual | Stack tecnológica, comandos, restrições | Média |
| Diretório | Subdiretório | Instruções específicas locais | Mais alta |
(2) CLAUDE.md Global
<!-- ~/.claude/CLAUDE.md -->
# Global Preferences
## Code Style
- Usar TypeScript strict mode
- Preferir const, evitar let
- Funções com no máximo 20 linhas
- Adicionar comentários JSDoc
## Testing Preferences
- Usar estilo describe/it
- Cada teste independente, sem dependência de ordem de execução
- Mock dependências externas, não módulos internos
(3) CLAUDE.md em Nível de Diretório
<!-- src/api/CLAUDE.md -->
# API Module Conventions
## Route Registration
- Todas as rotas registradas centralmente em index.ts
- Ordem de middleware: auth → rateLimit → validate → handler
## Response Format
- Success: { success: true, data: T }
- Failure: { success: false, error: { code, message } }
## Prohibited
- ❌ Não escrever lógica de negócios diretamente nos handlers
- ❌ Não pular validação de parâmetros
4. Melhores Práticas de Escrita
(1) Instruções Eficazes vs Ineficazes
| Ineficaz | Eficaz | Motivo |
|---|---|---|
| "Escreva bom código" | "Funções com menos de 20 linhas, complexidade ciclomática < 10" | Quantificável |
| "Preste atenção à segurança" | "Todo input do usuário deve ser sanitizado, sem concatenação SQL" | Específico e executável |
| "Siga melhores práticas" | "Use padrão Repository, Services não acessam BD diretamente" | Padrão claro |
| "Faça código rápido" | "Queries de BD devem ter índices, queries N+1 usam DataLoader" | Método específico |
(2) Checklist de Armadilhas
| Armadilha | Exemplo | Abordagem Correta |
|---|---|---|
| Muito vago | "Mantenha o código limpo" | Escrever padrões específicos |
| Muito verboso | CLAUDE.md de 500 linhas | Cortar para convenções centrais |
| Autocontraditório | "Use REST" e "Use GraphQL" | Manter consistência |
| Desatualizado | Ainda escrevendo "Use Express 3.x" | Atualizar com o projeto |
| Info irrelevante | Escrever organograma da equipe | Apenas escrever info que afeta código |
5. Atualização Dinâmica do CLAUDE.md
▶ Exemplo 2: Pedir ao Claude Code para Manter o CLAUDE.md
> Update CLAUDE.md based on recent code changes
Claude Code:
→ Reading recent commits
→ Changes detected: Express → Fastify, added Redis, Jest → Vitest
→ Updating CLAUDE.md with current tech stack and commands
CLAUDE.md updated ✓
❓ Perguntas Frequentes
P: Qual o tamanho ideal do CLAUDE.md? R: 50-150 linhas é ideal. Muito curto falta informação; muito longo e o Claude Code pode pular partes. Convenções centrais primeiro, informação de referência mínima.
P: O Claude Code sempre segue as instruções do CLAUDE.md? R: Na maioria das vezes sim, mas não 100%. Instruções de alta prioridade (❌ "nunca"/✅ "deve") têm maior conformidade. Instruções sugestivas podem ser negligenciadas.
P: Múltiplos CLAUDE.md podem conflitar? R: Sim. Nível de diretório sobrepõe nível de projeto, que sobrepõe global. O mais específico vence.
P: Posso colocar informação sensível no CLAUDE.md? R: Absolutamente não. O CLAUDE.md é commitado no git. Use variáveis de ambiente para API keys, senhas, etc.
P: O CLAUDE.md suporta lógica condicional? R: Não suporta lógica de programação. Apenas instruções de texto estático. Julgamento condicional é decisão do Claude Code.
P: Quando o CLAUDE.md deve ser atualizado? R: Quando a stack tecnológica muda, novas convenções adicionadas, ou quando o Claude Code comete erros repetidamente.
📖 Resumo
- CLAUDE.md é o manual do projeto para o Claude Code; "explícito sobre implícito" é o princípio central
- Config em três camadas: Global (pessoal) → Projeto (equipe) → Diretório (local)
- Instruções eficazes: Específicas, executáveis, quantificáveis; evitar vagueza e verbosidade
- Marcadores ❌/✅ melhoram a conformidade com instruções
- Atualizar continuamente conforme o projeto evolui
📝 Exercícios
- Básico (⭐): Escreva um CLAUDE.md de 50 linhas para seu projeto com visão geral, stack tecnológica e comandos.
- Intermediário (⭐⭐): Implemente configuração de CLAUDE.md em três camadas, teste prioridade de instruções.
- Avançado (⭐⭐⭐): Escreva instruções vagas e precisas, compare diferenças na execução do Claude Code, resuma regras de ouro para escrita de CLAUDE.md.