Como fazer o Claude Code perguntar antes de começar a codar

Fazer o Claude Code perguntar antes de codar é o que separa a feature certa da feature bonita que resolve o problema errado. O caminho tem três níveis: entrar no modo de planejamento (Shift+Tab ou prefixo /plan), onde ele pesquisa e propõe sem editar arquivos do projeto, pedir explicitamente uma entrevista via ferramenta AskUserQuestion cobrindo implementação técnica, UI/UX, casos de borda, preocupações e trade-offs, e fechar tudo numa spec autocontida em SPEC.md pra rodar em sessão nova. Pra valer sempre, a regra vai no ./CLAUDE.md ou ./.claude/CLAUDE.md, e não no prompt do dia.
Código que roda perfeito e resolve o problema errado é o desperdício mais caro do vibe coding
Você pediu uma coisa, o Claude Code entendeu outra, e as duas versões parecem certas até alguém abrir o PR e perguntar "por que ele fez assim?"
O ponto de virada é bem simples: em vez de aceitar a primeira interpretação dele, você segura a edição e pede que ele levante dúvidas e confirme as premissas ANTES da primeira linha de código
E isso se monta em três camadas, do mais rápido ao mais permanente: o modo de planejamento, que tira dele o poder de editar enquanto ele pesquisa e propõe, o pedido explícito de entrevista pela ferramenta AskUserQuestion, que é o que realmente arranca as perguntas, e uma instrução fixa no CLAUDE.md pra valer em toda sessão
Bora ver na prática? 🙂
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 110 aulas
- 4 projetos
- 9h 2min
O que você precisa antes de começar
Nada de PC da Nasa aqui, o setup é o básico mesmo:
- Claude Code instalado e uma sessão aberta no diretório do projeto
- Noção dos modos de permissão, que são
default,acceptEdits,plan,auto,dontAskebypassPermissions - Um
./CLAUDE.md(ou./.claude/CLAUDE.md) se você quiser tornar o comportamento permanente, e não só do humor daquela conversa
Duas pegadinhas de nome que confundem muita gente, então se liga
O modo que revisa cada ação aparece como Manual na CLI, no claude --help, nas extensões de VS Code e JetBrains e no app desktop, mas o valor dele na configuração é default
E nos planos Pro, Max e Team o modo inicial em sessões interativas de terminal e VS Code é o auto, ou seja, se você não fizer nada, a sessão já nasce com ele autorizado a tocar o barco
A referência completa disso tudo está na documentação de modos de permissão
Passo a passo para o Claude Code perguntar antes de escrever código
A lógica geral: primeiro você tira dele o poder de editar, depois você dá pouca informação de propósito, e só então pede as perguntas
Parece contraintuitivo dar POUCA informação, né? É intencional, já explico
- Entre no modo de planejamento antes de qualquer coisa.
Shift+Tabcicla os modos de permissão, ou você prefixa um único prompt com/plan. No plan mode ele lê arquivos, roda comandos de exploração e escreve um plano, mas não edita o código-fonte do projeto. O erro comum deste passo é começar emautoe só perceber que estava fora do plan mode quando ele já editou meio repositório
/plan quero adicionar login por magic link no app
- Dê uma descrição mínima da funcionalidade, não o briefing completo. As boas práticas oficiais mandam começar com uma descrição mínima justamente pra sobrar espaço pras perguntas. O erro comum aqui é despejar uma spec de quarenta linhas no primeiro prompt: aí não sobra dúvida nenhuma pra ele levantar, e você só recebeu de volta a sua própria interpretação
- Peça a entrevista, explicitamente. Não adianta um "me faça perguntas" solto, isso rende três perguntas óbvias e olhe lá. O prompt sugerido nas boas práticas nomeia os eixos e proíbe o óbvio
Antes de propor qualquer implementação, me entreviste usando a ferramenta AskUserQuestion.
Cubra implementação técnica, UI/UX, casos de borda, preocupações e trade-offs.
Não faça perguntas óbvias, insista nas partes difíceis e continue até cobrir tudo.
- Responda as perguntas de múltipla escolha com calma. Os diálogos do AskUserQuestion deixaram de continuar sozinhos por padrão, então ele te espera. Se você PREFERE um tempo limite de inatividade, a configuração
askUserQuestionTimeoutaceita60s,5m,10mounever, e aparece no/configcomo "Question auto-continue timeout". Se alguma opção vier com jargão que você não domina, vale saber o que perguntar antes de aceitar em vez de escolher no chute
- Feche com a spec autocontida. A spec mais útil, segundo a documentação, nomeia os arquivos e interfaces envolvidos, declara o que está fora de escopo e termina com um passo de verificação ponta a ponta
Agora escreva a spec completa em SPEC.md: arquivos e interfaces envolvidos,
o que está fora de escopo e um passo de verificação ponta a ponta.
- Escolha como prosseguir quando o plano aparecer. Ele apresenta o plano e pergunta: aprovar e iniciar em modo
auto, aprovar e revisar cada edição manualmente, ou continuar planejando. Tome cuidado com a pressa aqui, porque a aprovação de plano nunca se resolve sozinha por inatividade, aquele tempo limite vale só pras perguntas de múltipla escolha. Se quiser sair sem aprovar,Shift+Tabde novo, e pra voltar a planejar depois é ciclar outra vez ou usar/planno próximo prompt
- Rode a spec em sessão nova. As boas práticas recomendam iniciar uma sessão limpa pra executar, com o contexto focado só na implementação. É a diferença entre um contexto cheio de "e se" descartado e um contexto que só sabe o que ficou decidido
Quando a rodada extra de perguntas compensa (e quando não)
Entrevista em tudo é receita pra você odiar o processo na terceira tarefa
O gatilho oficial da AskUserQuestion já entrega o critério: ela é chamada quando a tarefa tem mais de uma abordagem válida
| Tipo de tarefa | Vale a entrevista? | Por quê |
|---|---|---|
| Funcionalidade maior, do zero | Sim | É o cenário que as boas práticas citam pra pedir a entrevista e escrever a spec |
| Mais de uma abordagem válida | Sim | Justamente o gatilho da AskUserQuestion |
| Mudança que cruza vários arquivos | Sim | Separar pesquisa e planejamento da implementação evita resolver o problema errado |
| Decisão de UI/UX ou trade-off de arquitetura | Sim | São dois dos eixos que o prompt de entrevista cobre |
| Ajuste pontual, correção óbvia | Não | Caminho único, a conversa extra só adiciona latência |
O critério prático que eu usaria: se você consegue descrever a solução inteira em uma frase e só existe um jeito sensato de fazer, manda ver direto
Se você precisa de um "depende" pra explicar a tarefa pra um colega, esse "depende" é exatamente o que ele vai chutar sozinho
Ele continua codando sem perguntar: o que verificar
Antes de culpar o modelo, olhe o ambiente primeiro e o prompt depois, é a mesma ordem de investigação de quando o Claude Code não reconhece uma ferramenta instalada
Sintoma: ele começa a editar direto
Causa provável: a sessão não está no modo de planejamento. Nos planos Pro, Max e Team o modo inicial em terminal interativo e VS Code é o auto, então o padrão joga contra você
Solução: Shift+Tab até cair no plan mode, ou prefixo /plan no prompt
Como prevenir: confira o modo ANTES de escrever o pedido, não depois
Sintoma: a instrução de perguntar vale só naquela conversa
Causa: o pedido foi feito no prompt, e prompt morre com a sessão
Solução: registre a regra no ./CLAUDE.md ou no ./.claude/CLAUDE.md, que são lidos no início de cada sessão. Se o arquivo ainda não existe, /init gera um inicial, e quando já existe ele sugere melhorias em vez de sobrescrever
## Fluxo de trabalho
Em funcionalidades novas, me entreviste com AskUserQuestion antes de implementar:
implementação técnica, UI/UX, casos de borda, preocupações e trade-offs.
Como prevenir: rode /context na sessão e confira a lista em "Memory files". Se o arquivo não aparece lá, ele não foi carregado, e nenhuma regra de dentro dele está valendo
Sintoma: quero uma checagem toda vez que ele sai do modo de planejamento
Solução: ExitPlanMode pode ser usado como matcher em hooks PreToolUse. Quando o hook aprova, o Claude Code sai do modo de planejamento e restaura o modo de permissão que estava ativo antes
Como prevenir: pense nisso como o portão da saída, e não como substituto do plano bem feito
Sintoma: no Agent SDK ele nunca pergunta
Causa: o AskUserQuestion está disponível por padrão, MAS se você especificou um array tools restringindo as capacidades do Claude, ela precisa estar incluída nesse array
Solução: inclua o AskUserQuestion na lista
Como prevenir: toda vez que apertar as ferramentas do agente, confira se alguma capacidade de conversa foi junto no pacote
Conclusão
São três camadas, e elas se empilham bem
O modo de planejamento resolve o agora: Shift+Tab ou /plan, e ele pesquisa e propõe sem editar
A entrevista via AskUserQuestion, pedida no prompt, resolve a tarefa grande, cobrindo implementação técnica, UI/UX, casos de borda, preocupações e trade-offs até acabar a dúvida
E o CLAUDE.md resolve o amanhã, pra você não repetir o mesmo pedido toda santa sessão
O próximo passo concreto é escolher UMA tarefa de porte médio que está na fila, abrir ela em plan mode, pedir a entrevista, guardar a spec autocontida em SPEC.md e executar numa sessão nova
Depois compare com o que você teria recebido no chute da primeira interpretação, a diferença costuma aparecer logo no primeiro caso de borda 😀
até o próximo post!
Perguntas frequentes
Como sair do modo de planejamento do Claude Code sem aprovar o plano?
Basta apertar Shift+Tab de novo e ele sai sem aprovar nada. Pra voltar a planejar depois, é só ciclar outra vez com Shift+Tab ou prefixar o próximo prompt com /plan.
Qual modo de permissão o Claude Code usa por padrão em sessões interativas?
Nos planos Pro, Max e Team, o modo inicial padrão em sessões de terminal e VS Code é o auto. Ou seja, se você não mexer em nada, a sessão já começa autorizada a agir sozinha, sem passar pelo modo de planejamento.
Como fazer o Claude Code sempre perguntar antes de codar, em toda sessão nova?
O jeito permanente é uma instrução num CLAUDE.md, em ./CLAUDE.md ou ./.claude/CLAUDE.md, que ele lê no início de cada sessão. O comando /init gera esse arquivo do zero, e se ele já existir, sugere melhorias em vez de sobrescrever; pra confirmar que carregou, roda /context e confere a lista em Memory files.
O que acontece se eu não responder uma pergunta do AskUserQuestion no Claude Code?
Por padrão, o diálogo fica esperando sua resposta e não continua sozinho. Se você preferir um tempo limite de inatividade, a configuração askUserQuestionTimeout aceita 60s, 5m, 10m ou never, e aparece no /config como Question auto-continue timeout.
A aprovação do plano no Claude Code também expira sozinha se eu demorar?
Não. Esse tempo limite de inatividade vale só pras perguntas de múltipla escolha do AskUserQuestion, e prompts de permissão, incluindo a aprovação de plano, nunca se resolvem sozinhos.
Dá pra automatizar a saída do modo de planejamento com hooks no Claude Code?
Sim, o ExitPlanMode pode ser usado como matcher em hooks PreToolUse. Quando o hook aprova, o Claude Code sai do modo de planejamento e restaura automaticamente o modo de permissão que estava ativo antes.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
O que significa “ChatGPT network error” e como resolver
O “ChatGPT Network Error” é uma ocorrência frequente na rotina de muitos usuários do ChatGPT. Porém, poucos compreendem seu significado, quando esse erro surge, etc. […]
As diferenças de var, let e const
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]
