A maioria das melhores práticas é baseada em uma restrição: a janela de contexto do Claude se enche rapidamente e o desempenho se degrada conforme ela se enche. A janela de contexto do Claude contém toda a sua conversa, incluindo cada mensagem, cada arquivo que Claude lê e cada saída de comando. No entanto, isso pode se encher rapidamente. Uma única sessão de depuração ou exploração de codebase pode gerar e consumir dezenas de milhares de tokens. Isso importa porque o desempenho do LLM se degrada conforme o contexto se enche. Quando a janela de contexto está ficando cheia, Claude pode começar a “esquecer” instruções anteriores ou cometer mais erros. A janela de contexto é o recurso mais importante a gerenciar. Rastreie o uso de contexto continuamente com uma custom status line, e veja Reduce token usage para estratégias de redução do uso de tokens.
Dê ao Claude uma forma de verificar seu trabalho
Claude funciona dramaticamente melhor quando pode verificar seu próprio trabalho, como executar testes, comparar capturas de tela e validar saídas. Sem critérios de sucesso claros, ele pode produzir algo que parece certo mas na verdade não funciona. Você se torna o único loop de feedback, e cada erro requer sua atenção.| Estratégia | Antes | Depois |
|---|---|---|
| Forneça critérios de verificação | ”implemente uma função que valida endereços de email" | "escreva uma função validateEmail. exemplos de casos de teste: [email protected] é verdadeiro, inválido é falso, [email protected] é falso. execute os testes após implementar” |
| Verifique mudanças de UI visualmente | ”faça o dashboard parecer melhor" | "[cole captura de tela] implemente este design. tire uma captura de tela do resultado e compare com o original. liste as diferenças e corrija-as” |
| Aborde as causas raiz, não os sintomas | ”a compilação está falhando" | "a compilação falha com este erro: [cole erro]. corrija-o e verifique se a compilação é bem-sucedida. aborde a causa raiz, não suprima o erro” |
Explore primeiro, depois planeje, depois codifique
Deixar Claude pular direto para codificação pode produzir código que resolve o problema errado. Use Plan Mode para separar exploração de execução. O fluxo de trabalho recomendado tem quatro fases:Explore
Entre em Plan Mode. Claude lê arquivos e responde perguntas sem fazer alterações.
claude (Plan Mode)
Plan
Peça ao Claude para criar um plano de implementação detalhado.Pressione
claude (Plan Mode)
Ctrl+G para abrir o plano no seu editor de texto para edição direta antes de Claude prosseguir.Implement
Volte para Normal Mode e deixe Claude codificar, verificando contra seu plano.
claude (Normal Mode)
Plan Mode é útil, mas também adiciona sobrecarga.Para tarefas onde o escopo é claro e a correção é pequena (como corrigir um erro de digitação, adicionar uma linha de log ou renomear uma variável) peça ao Claude para fazer isso diretamente.O planejamento é mais útil quando você está incerto sobre a abordagem, quando a mudança modifica vários arquivos ou quando você não está familiarizado com o código sendo modificado. Se você pudesse descrever o diff em uma frase, pule o plano.
Forneça contexto específico em seus prompts
Claude pode inferir intenção, mas não pode ler sua mente. Referencie arquivos específicos, mencione restrições e aponte para padrões de exemplo.| Estratégia | Antes | Depois |
|---|---|---|
| Escopo a tarefa. Especifique qual arquivo, qual cenário e preferências de teste. | ”adicione testes para foo.py" | "escreva um teste para foo.py cobrindo o caso extremo onde o usuário está desconectado. evite mocks.” |
| Aponte para fontes. Dirija Claude para a fonte que pode responder uma pergunta. | ”por que ExecutionFactory tem uma API tão estranha?" | "procure no histórico git do ExecutionFactory e resuma como sua API chegou a ser assim” |
| Referencie padrões existentes. Aponte Claude para padrões em seu codebase. | ”adicione um widget de calendário" | "veja como os widgets existentes são implementados na página inicial para entender os padrões. HotDogWidget.php é um bom exemplo. siga o padrão para implementar um novo widget de calendário que permite ao usuário selecionar um mês e paginar para frente/trás para escolher um ano. construa do zero sem bibliotecas além das já usadas no codebase.” |
| Descreva o sintoma. Forneça o sintoma, a localização provável e como “corrigido” se parece. | ”corrija o bug de login" | "usuários relatam que o login falha após timeout de sessão. verifique o fluxo de autenticação em src/auth/, especialmente atualização de token. escreva um teste falhando que reproduz o problema, depois corrija-o” |
"o que você melhoraria neste arquivo?" pode revelar coisas que você não teria pensado em perguntar.
Forneça conteúdo rico
Você pode fornecer dados ricos ao Claude de várias maneiras:- Referencie arquivos com
@em vez de descrever onde o código vive. Claude lê o arquivo antes de responder. - Cole imagens diretamente. Copie/cole ou arraste e solte imagens no prompt.
- Forneça URLs para documentação e referências de API. Use
/permissionspara colocar na lista de permissões domínios frequentemente usados. - Canalize dados executando
cat error.log | claudepara enviar conteúdos de arquivo diretamente. - Deixe Claude buscar o que precisa. Diga ao Claude para puxar contexto ele mesmo usando comandos Bash, ferramentas MCP ou lendo arquivos.
Configure seu ambiente
Alguns passos de configuração tornam Claude Code significativamente mais eficaz em todas as suas sessões. Para uma visão geral completa dos recursos de extensão e quando usar cada um, consulte Extend Claude Code.Escreva um CLAUDE.md eficaz
CLAUDE.md é um arquivo especial que Claude lê no início de cada conversa. Inclua comandos Bash, estilo de código e regras de fluxo de trabalho. Isso dá ao Claude contexto persistente que ele não pode inferir apenas do código. O comando/init analisa seu codebase para detectar sistemas de compilação, frameworks de teste e padrões de código, dando a você uma base sólida para refinar.
Não há formato obrigatório para arquivos CLAUDE.md, mas mantenha-o curto e legível para humanos. Por exemplo:
CLAUDE.md
| ✅ Inclua | ❌ Exclua |
|---|---|
| Comandos Bash que Claude não pode adivinhar | Qualquer coisa que Claude possa descobrir lendo código |
| Regras de estilo de código que diferem dos padrões | Convenções de linguagem padrão que Claude já conhece |
| Instruções de teste e executores de teste preferidos | Documentação detalhada de API (link para docs em vez disso) |
| Etiqueta de repositório (nomenclatura de branch, convenções de PR) | Informações que mudam frequentemente |
| Decisões arquitetônicas específicas do seu projeto | Explicações longas ou tutoriais |
| Peculiaridades do ambiente de desenvolvedor (variáveis env obrigatórias) | Descrições arquivo por arquivo do codebase |
| Armadilhas comuns ou comportamentos não óbvios | Práticas auto-evidentes como “escreva código limpo” |
@path/to/import:
CLAUDE.md
- Pasta home (
~/.claude/CLAUDE.md): aplica-se a todas as sessões Claude - Raiz do projeto (
./CLAUDE.md): verifique no git para compartilhar com sua equipe - Diretórios pai: útil para monorepos onde tanto
root/CLAUDE.mdquantoroot/foo/CLAUDE.mdsão puxados automaticamente - Diretórios filhos: Claude puxa arquivos CLAUDE.md filhos sob demanda ao trabalhar com arquivos nesses diretórios
Configure permissões
Por padrão, Claude Code solicita permissão para ações que podem modificar seu sistema: gravações de arquivo, comandos Bash, ferramentas MCP, etc. Isso é seguro mas tedioso. Após a décima aprovação você realmente não está revisando mais, você está apenas clicando. Existem três maneiras de reduzir essas interrupções:- Auto mode: um modelo classificador separado revisa comandos e bloqueia apenas o que parece arriscado: escalação de escopo, infraestrutura desconhecida ou ações impulsionadas por conteúdo hostil. Melhor quando você confia na direção geral de uma tarefa mas não quer clicar em cada passo
- Listas de permissões: permita ferramentas específicas que você sabe que são seguras, como
npm run lintougit commit - Sandboxing: ative isolamento em nível de SO que restringe acesso ao sistema de arquivos e rede, permitindo Claude trabalhar mais livremente dentro de limites definidos
Use ferramentas CLI
Ferramentas CLI são a forma mais eficiente em contexto de interagir com serviços externos. Se você usa GitHub, instale o CLIgh. Claude sabe como usá-lo para criar issues, abrir pull requests e ler comentários. Sem gh, Claude ainda pode usar a API do GitHub, mas requisições não autenticadas frequentemente atingem limites de taxa.
Claude também é eficaz em aprender ferramentas CLI que não conhece. Tente prompts como Use 'foo-cli-tool --help' to learn about foo tool, then use it to solve A, B, C.
Conecte MCP servers
Com MCP servers, você pode pedir ao Claude para implementar recursos de rastreadores de issues, consultar bancos de dados, analisar dados de monitoramento, integrar designs do Figma e automatizar fluxos de trabalho.Configure hooks
Hooks executam scripts automaticamente em pontos específicos do fluxo de trabalho do Claude. Diferentemente de instruções CLAUDE.md que são consultivas, hooks são determinísticos e garantem que a ação aconteça. Claude pode escrever hooks para você. Tente prompts como “Write a hook that runs eslint after every file edit” ou “Write a hook that blocks writes to the migrations folder.” Edite.claude/settings.json diretamente para configurar hooks manualmente, e execute /hooks para navegar o que está configurado.
Crie skills
Skills estendem o conhecimento do Claude com informações específicas do seu projeto, equipe ou domínio. Claude as aplica automaticamente quando relevante, ou você pode invocá-las diretamente com/skill-name.
Crie uma skill adicionando um diretório com um SKILL.md para .claude/skills/:
.claude/skills/api-conventions/SKILL.md
.claude/skills/fix-issue/SKILL.md
/fix-issue 1234 para invocá-la. Use disable-model-invocation: true para fluxos de trabalho com efeitos colaterais que você quer disparar manualmente.
Crie subagents personalizados
Subagents executam em seu próprio contexto com seu próprio conjunto de ferramentas permitidas. Eles são úteis para tarefas que leem muitos arquivos ou precisam de foco especializado sem poluir sua conversa principal..claude/agents/security-reviewer.md
Instale plugins
Plugins agrupam skills, hooks, subagents e MCP servers em uma única unidade instalável da comunidade e Anthropic. Se você trabalha com uma linguagem tipada, instale um code intelligence plugin para dar ao Claude navegação de símbolo precisa e detecção automática de erros após edições. Para orientação sobre escolher entre skills, subagents, hooks e MCP, consulte Extend Claude Code.Comunique-se efetivamente
A forma como você se comunica com Claude Code impacta significativamente a qualidade dos resultados.Faça perguntas sobre o codebase
Ao se integrar a um novo codebase, use Claude Code para aprendizado e exploração. Você pode fazer ao Claude o mesmo tipo de perguntas que faria a outro engenheiro:- Como funciona o logging?
- Como faço um novo endpoint de API?
- O que
async move { ... }faz na linha 134 defoo.rs? - Quais casos extremos
CustomerOnboardingFlowImpltrata? - Por que este código chama
foo()em vez debar()na linha 333?
Deixe Claude entrevistá-lo
Claude pergunta sobre coisas que você pode não ter considerado ainda, incluindo implementação técnica, UI/UX, casos extremos e tradeoffs.Gerencie sua sessão
Conversas são persistentes e reversíveis. Use isso a seu favor!Corrija o curso cedo e frequentemente
Os melhores resultados vêm de loops de feedback apertados. Embora Claude ocasionalmente resolva problemas perfeitamente na primeira tentativa, corrigi-lo rapidamente geralmente produz melhores soluções mais rápido.Esc: pare Claude no meio da ação com a teclaEsc. O contexto é preservado, então você pode redirecionar.Esc + Escou/rewind: pressioneEscduas vezes ou execute/rewindpara abrir o menu de rewind e restaurar conversa e estado de código anterior, ou resumir a partir de uma mensagem selecionada."Undo that": peça ao Claude para reverter suas alterações./clear: redefina contexto entre tarefas não relacionadas. Sessões longas com contexto irrelevante podem reduzir desempenho.
/clear e comece de novo com um prompt mais específico que incorpore o que você aprendeu. Uma sessão limpa com um prompt melhor quase sempre supera uma sessão longa com correções acumuladas.
Gerencie contexto agressivamente
Claude Code compacta automaticamente o histórico de conversa quando você se aproxima dos limites de contexto, o que preserva código e decisões importantes enquanto libera espaço. Durante sessões longas, a janela de contexto do Claude pode se encher com conversa irrelevante, conteúdos de arquivo e comandos. Isso pode reduzir desempenho e às vezes distrair Claude.- Use
/clearfrequentemente entre tarefas para redefinir a janela de contexto inteiramente - Quando auto compaction dispara, Claude resume o que importa mais, incluindo padrões de código, estados de arquivo e decisões-chave
- Para mais controle, execute
/compact <instructions>, como/compact Focus on the API changes - Para compactar apenas parte da conversa, use
Esc + Escou/rewind, selecione um checkpoint de mensagem e escolha Summarize from here. Isso condensa mensagens daquele ponto em diante enquanto mantém contexto anterior intacto. - Customize comportamento de compaction em CLAUDE.md com instruções como
"When compacting, always preserve the full list of modified files and any test commands"para garantir que contexto crítico sobreviva à sumarização - Para perguntas rápidas que não precisam ficar em contexto, use
/btw. A resposta aparece em uma sobreposição dispensável e nunca entra no histórico de conversa, então você pode verificar um detalhe sem crescer contexto.
Use subagents para investigação
Como contexto é sua restrição fundamental, subagents são uma das ferramentas mais poderosas disponíveis. Quando Claude pesquisa um codebase ele lê muitos arquivos, todos os quais consomem seu contexto. Subagents executam em janelas de contexto separadas e relatam resumos:Rewind com checkpoints
Claude automaticamente faz checkpoint antes de mudanças. Pressione Escape duas vezes ou execute/rewind para abrir o menu de rewind. Você pode restaurar apenas conversa, restaurar apenas código, restaurar ambos ou resumir a partir de uma mensagem selecionada. Veja Checkpointing para detalhes.
Em vez de planejar cuidadosamente cada movimento, você pode dizer ao Claude para tentar algo arriscado. Se não funcionar, rewind e tente uma abordagem diferente. Checkpoints persistem entre sessões, então você pode fechar seu terminal e ainda fazer rewind depois.
Retome conversas
Claude Code salva conversas localmente. Quando uma tarefa abrange múltiplas sessões, você não tem que re-explicar o contexto:/rename para dar às sessões nomes descritivos como "oauth-migration" ou "debugging-memory-leak" para que você possa encontrá-las depois. Trate sessões como branches: diferentes fluxos de trabalho podem ter contextos separados e persistentes.
Automatize e dimensione
Uma vez que você é eficaz com um Claude, multiplique sua saída com sessões paralelas, modo não-interativo e padrões de fan-out. Tudo até agora assume um humano, um Claude e uma conversa. Mas Claude Code dimensiona horizontalmente. As técnicas nesta seção mostram como você pode fazer mais.Execute modo não-interativo
Comclaude -p "your prompt", você pode executar Claude não-interativamente, sem uma sessão. Modo não-interativo é como você integra Claude em pipelines CI, pre-commit hooks ou qualquer fluxo de trabalho automatizado. Os formatos de saída permitem você analisar resultados programaticamente: texto simples, JSON ou JSON em streaming.
Execute múltiplas sessões Claude
Existem três maneiras principais de executar sessões paralelas:- Claude Code desktop app: Gerencie múltiplas sessões locais visualmente. Cada sessão obtém seu próprio worktree isolado.
- Claude Code on the web: Execute na infraestrutura de nuvem segura da Anthropic em VMs isoladas.
- Agent teams: Coordenação automatizada de múltiplas sessões com tarefas compartilhadas, mensagens e um team lead.
| Session A (Writer) | Session B (Reviewer) |
|---|---|
Implement a rate limiter for our API endpoints | |
Review the rate limiter implementation in @src/middleware/rateLimiter.ts. Look for edge cases, race conditions, and consistency with our existing middleware patterns. | |
Here's the review feedback: [Session B output]. Address these issues. |
Fan out entre arquivos
Para grandes migrações ou análises, você pode distribuir trabalho entre muitas invocações Claude paralelas:Generate a task list
Tenha Claude listar todos os arquivos que precisam ser migrados (por exemplo,
list all 2,000 Python files that need migrating)--verbose para depuração durante desenvolvimento e desligue em produção.
Execute autonomamente com auto mode
Para execução ininterrupta com verificações de segurança em background, use auto mode. Um modelo classificador revisa comandos antes de serem executados, bloqueando escalação de escopo, infraestrutura desconhecida e ações impulsionadas por conteúdo hostil enquanto deixa trabalho rotineiro prosseguir sem prompts.-p, auto mode aborta se o classificador repetidamente bloqueia ações, já que não há usuário para recorrer. Veja when auto mode falls back para limites.
Evite padrões de falha comuns
Estes são erros comuns. Reconhecê-los cedo economiza tempo:- A sessão da pia da cozinha. Você começa com uma tarefa, depois pergunta ao Claude algo não relacionado, depois volta para a primeira tarefa. Contexto está cheio de informação irrelevante.
Correção:
/clearentre tarefas não relacionadas. - Corrigindo repetidamente. Claude faz algo errado, você corrige, ainda está errado, você corrige novamente. Contexto está poluído com abordagens falhadas.
Correção: Após duas correções falhadas,
/cleare escreva um prompt inicial melhor incorporando o que você aprendeu. - O CLAUDE.md sobre-especificado. Se seu CLAUDE.md é muito longo, Claude ignora metade dele porque regras importantes se perdem no ruído.
Correção: Poda impiedosamente. Se Claude já faz algo corretamente sem a instrução, delete-a ou converta-a para um hook.
- A lacuna confiança-depois-verificação. Claude produz uma implementação que parece plausível mas não trata casos extremos.
Correção: Sempre forneça verificação (testes, scripts, capturas de tela). Se você não pode verificar, não envie.
- A exploração infinita. Você pede ao Claude para “investigar” algo sem escopá-lo. Claude lê centenas de arquivos, enchendo o contexto.
Correção: Escopo investigações estreitamente ou use subagents para que a exploração não consuma seu contexto principal.
Desenvolva sua intuição
Os padrões neste guia não são gravados em pedra. Eles são pontos de partida que funcionam bem em geral, mas podem não ser ótimos para cada situação. Às vezes você deveria deixar contexto acumular porque você está profundo em um problema complexo e o histórico é valioso. Às vezes você deveria pular planejamento e deixar Claude descobrir porque a tarefa é exploratória. Às vezes um prompt vago é exatamente certo porque você quer ver como Claude interpreta o problema antes de constrangê-lo. Preste atenção ao que funciona. Quando Claude produz saída ótima, note o que você fez: a estrutura do prompt, o contexto que você forneceu, o modo que você estava. Quando Claude luta, pergunte por quê. O contexto era muito barulhento? O prompt muito vago? A tarefa muito grande para uma passagem? Ao longo do tempo, você desenvolverá intuição que nenhum guia pode capturar. Você saberá quando ser específico e quando ser aberto, quando planejar e quando explorar, quando limpar contexto e quando deixá-lo acumular.Recursos relacionados
- How Claude Code works: o loop agentic, ferramentas e gerenciamento de contexto
- Extend Claude Code: skills, hooks, MCP, subagents e plugins
- Common workflows: receitas passo a passo para depuração, teste, PRs e mais
- CLAUDE.md: armazene convenções de projeto e contexto persistente