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.

💡 Dica: O princípio central do CLAUDE.md é "explícito sobre implícito" — escreva as convenções que você considera óbvias, porque o Claude Code não vai adivinhar.

📋 Pré-requisitos: Capítulo 8 - Uso Básico

1. O Que Você Vai Aprender


2. Sintaxe e Estrutura do CLAUDE.md

(1) Estrutura Central

MARKDOWN
# 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

MARKDOWN
# 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

TEXT 📖 Somente leitura
~/.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

MARKDOWN
<!-- ~/.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

MARKDOWN
<!-- 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

TEXT 📖 Somente leitura
> 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


📝 Exercícios

  1. Básico (⭐): Escreva um CLAUDE.md de 50 linhas para seu projeto com visão geral, stack tecnológica e comandos.
  2. Intermediário (⭐⭐): Implemente configuração de CLAUDE.md em três camadas, teste prioridade de instruções.
  3. 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.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%