Você instalou as ferramentas e entendeu como escolher entre elas. O que passa a pesar em seguida é "como pedir à IA". Mesmo com o mesmo Claude Code, a qualidade do resultado muda muitas vezes conforme o jeito de dar a instrução. Neste capítulo, apoiados nos dois grandes estilos com a IA — o vibe coding, de criar conversando com leveza, e o desenvolvimento orientado a especificação, de fixar a spec antes para mandar criar com precisão —, você adquire a técnica de "pedir bem". Aqui está o principal segredo do coding com IA.

O que você vai adquirir neste capítulo

O lema é "explorar pequeno, vibe; acertar grande, spec"

Entender os 2 estilos
Captar as vantagens e as armadilhas do vibe coding e do desenvolvimento orientado a especificação.
Escolher por situação
Julgar com qual pedir a partir da escala e do objetivo do que você cria.
Escrever boas instruções
Concretude, contexto, exemplo de saída e mais: dominar o formato de um prompt que comunica.

A qualidade da instrução define o resultado

O primeiro tropeço no coding com IA quase nunca é "operar a ferramenta", e sim "o jeito de pedir". A IA não lê a sua cabeça. Se você entrega uma frase vaga, a IA preenche por conta própria, por adivinhação, as partes que faltam e devolve um código que parece funcionar, mas está desalinhado da intenção. Ao contrário, se você consegue transmitir com precisão o quê, por quê e como quer que seja feito, ela conclui com uma exatidão surpreendente. A "qualidade da instrução" vira, tal e qual, a "qualidade do resultado" — esta é a mensagem central que atravessa o capítulo. E, para esse jeito de pedir, há dois grandes estilos.

Vibe coding — criar conversando

O vibe coding é um estilo de criar por tentativa e erro conversando com a IA, sem fixar de antemão o desenho fino. Você transmite de forma solta "quero uma coisa mais ou menos assim", olha o que sai, empilha o diálogo com "um pouco mais assim", "corrija aqui", e vai dando forma entregue à vibe. Prático e exploratório, o maior charme é materializar uma ideia de uma vez.

🎨 Imagem: a sensação de buscar a forma moldando barro, sem traçar uma planta. Como você "pensa enquanto cria", dá para pôr a mão na massa e testar mesmo com uma ideia ainda não amadurecida na cabeça.

Vamos alinhar as situações ideais e as armadilhas para ficar de olho.

✅ Situações ideais
  • Coisas pequenas: script avulso, ferramenta simples, app de uma tela.
  • Protótipo: quando você quer julgar vendo a forma. Experimento que se pode descartar.
  • Aprendizado / treino: quando você mexe numa tecnologia nova para pegar o jeito.
⚠ Armadilhas
  • O desenho geral oscila: a direção balança a cada conversa e a consistência se perde.
  • Colapsa ao crescer: quanto mais arquivos, mais IA e humano deixam de abarcar o todo.
  • O interior vira caixa-preta: acumula-se código que funciona, mas cujo porquê você não sabe explicar.

💡 Em uma frase: o vibe coding é imbatível para "testar rápido", mas não serve para "crescer grande / manter por muito tempo". Pequeno, descartável, exploração — tomar essas 3 palavras como referência reduz o risco de erro.

Desenvolvimento orientado a especificação — decidir antes e criar com precisão

O desenvolvimento orientado a especificação (spec-driven development) é um estilo contrastante com o vibe coding. Antes de começar a escrever código, você reúne em um documento "o quê e como criar" como especificação e entrega essa spec à IA para que ela implemente com precisão. Em vez de conversar ao sabor do momento, é o jeito de rodar a IA seguindo uma planta acordada.

O procedimento é simples. Primeiro você cria o documento de especificação junto com a IA, o coloca no projeto (na maioria dos casos, como arquivo) e avança a implementação fazendo-a consultar essa spec.

PASSO 1
Escrever a spec

Coloque em texto o objetivo, as funções, entrada/saída e restrições. Fazer a IA gerar um rascunho e depois corrigir é rápido.

PASSO 2
Acordar

Antes de implementar, leia você mesmo a spec e elimine lacunas e contradições. Aqui está o divisor de águas da qualidade.

PASSO 3
Mandar criar conforme a spec

Instrua "implemente conforme esta spec". Se desviar, volte à spec e corrija.

✅ Situações ideais
  • Coisas um pouco maiores: desenvolvimento que atravessa várias funções e arquivos.
  • Foco em qualidade: algo que dá problema se quebrar depois, que se mantém por muito tempo.
  • Que a equipe ou terceiros leem: a spec vira o ponto de apoio comum.
🧭 Dicas
  • Não mire perfeição do início; comece com uma spec também pequena e faça-a crescer.
  • A spec você sempre lê. Uma spec deixada a cargo da IA tende a ficar cheia de furos.
  • Se a implementação desviar, não faça correção improvisada na conversa; conserte a spec e refaça.

📐 Por que funciona: a IA só enxerga "esta conversa de agora". Ao colocar antes um documento de especificação, um critério ao qual sempre se pode voltar, a direção não oscila mesmo que a conversa se estenda, e diminuem as lacunas e o retrabalho na implementação. No fundo é apenas "entregar a planta à IA antes de mandar criar", mas o efeito é enorme.

Como escolher — explorar pequeno ou acertar grande

Não é uma questão de qual é superior. O certo é escolher pela "escala" e pelo "objetivo" do que se cria. Vamos contrapor os 2 estilos por eixos.

🎨 Vibe coding
Pequeno, exploração
EscalaPequena
ObjetivoProtótipo, exploração, aprendizado
Como conduzirTentativa e erro na conversa
VelocidadeMuito rápida
FraquezaColapsa ao crescer
📐 Orientado a especificação
Grande, preciso
EscalaMédia a grande
ObjetivoQualidade, manutenção, produção
Como conduzirSpec → implementação
VelocidadeArranque lento
FraquezaPesado para coisas pequenas

✅ Na prática, você "vai e volta". Não é preciso travar numa escolha excludente. Primeiro prototipe rápido com vibe coding e, quando pegar a sensação de que vai dar certo, passe a spec e migre para a implementação de verdade — esse fluxo é o mais potente no dia a dia. Exploração pequena, vibe; fase de crescer, spec. Alterne o estilo dentro de um mesmo projeto.

As 5 dicas de uma boa instrução

Em qualquer um dos estilos, se a instrução (o prompt) que você entrega à IA for boa, o resultado melhora. Vamos fixar em cartões 5 dicas básicas para usar já hoje. Para aprofundar, vá ao guia prático de engenharia de prompt.

① Concretizar

Em vez de "deixe legal", diga concretamente o quê e como quer. Quanto mais você explicita valores, condições e alvos, mais a precisão sobe.

② Passar contexto

Transmita a linguagem, o framework, os arquivos relacionados e as restrições. Quanto mais a IA conhece o pano de fundo, mais precisa ela fica.

③ Uma tarefa por vez

Não peça isto e aquilo de uma vez. Se você divide em partes pequenas e pede uma a uma, conferir e corrigir fica mais fácil.

④ Mostrar a saída esperada

Mostre antes a forma desejada (nome da função, valor de retorno, exemplo de saída, formato). Compartilhar a meta reduz o desalinhamento.

⑤ Corrigir e repetir

Não mire o perfeito de primeira. É mais rápido olhar a saída e empilhar correções concretas do tipo "aqui, assim".

Só com palavras é difícil captar, então vamos colocar o mesmo pedido lado a lado como "instrução ruim" e "instrução boa".

❌ Instrução ruim

"Faça uma função de login."

Linguagem, onde armazenar e o comportamento em caso de sucesso/falha, tudo indefinido. A IA preenche tudo por adivinhação e devolve um código em desacordo com o que você imaginava. Causa de retrabalho.

✅ Instrução boa

"Adicione ao projeto Laravel uma função de login por e-mail e senha. Use a tabela users existente. Em caso de sucesso na autenticação, vá para /dashboard; em caso de falha, exiba uma mensagem de erro. A senha, ajuste ao esquema de hash já existente. Primeiro proponha só as routes e o Controller; a implementação, após a minha conferência."

Objetivo, contexto, condição de sucesso, escopo de saída e como conduzir, tudo explícito. As 5 dicas estão todas presentes.

🧩 Um passo além: a forma de pensar não só "o que transmitir" à IA, mas como projetar quais informações entregar e como no projeto inteiro, chama-se engenharia de contexto; a forma de pensar que organiza todo o ambiente em que a IA trabalha (ferramentas, permissões, arquivos de instrução) chama-se engenharia de harness. Quando quiser evoluir, dê uma espiada.

Quando a IA ignora as regras

O Claude Code tem um mecanismo para reunir as instruções de cada projeto em um arquivo como o CLAUDE.md e fazer a IA cumpri-las sempre. Só que, ao usar de verdade, você se depara com o momento em que "a IA ignora a regra que você certamente escreveu". As causas são algumas.

📄 Instruções longas / numerosas demais

Se as regras são vastas, as importantes ficam soterradas. Reduza o número e deixe a prioridade clara.

🌀 Vagas / contraditórias

Se há margem de interpretação, não são cumpridas. Escreva de forma concreta e verificável.

🗂 A conversa ficou longa

Quando a troca se estende, a instrução inicial se dilui. Relembrar nos pontos-chave é eficaz.

💡 O essencial da solução: escreva as regras "curtas, concretas e com prioridade". E, as regras importantes, reforce-as mais uma vez na conversa no momento necessário. O detalhamento das causas e as correções concretas estão em os motivos pelos quais a IA ignora as regras do CLAUDE.md e como resolver.

Resumo deste capítulo
  • A qualidade da instrução é a qualidade do resultado. Como a IA preenche por adivinhação o que falta, quanto mais preciso o pedido, mais preciso o retorno.
  • Vibe coding = tentativa e erro conversando. Forte em pequeno, descartável, exploração. Ao crescer, colapsa.
  • Desenvolvimento orientado a especificação = decidir a spec antes e implementar com precisão. Forte em médio a grande, com foco em qualidade.
  • A escolha é "explorar pequeno, vibe; acertar grande, spec". Na prática, você vai e volta.
  • As dicas de uma boa instrução são 5: concretizar, contexto, uma tarefa por vez, exemplo de saída, repetição.
  • A IA ignora as regras porque a instrução é longa, vaga ou a conversa é longa. Curto e concreto, com reforço.

Entendido o jeito de pedir, o coding com IA se estabiliza de uma vez. Ainda assim, ao pôr a mão na massa de verdade, você certamente vai esbarrar em erros e becos sem saída. No próximo Capítulo 5 "Sair dos travamentos", vamos fixar de forma sistemática as causas dos erros comuns e como escapar deles.