Recapitulação e Prática
Principais conclusões
- Dê contexto antes da tarefa: declare a stack, as convenções e as peças existentes a reutilizar — ou cole a assinatura real com a qual o código precisa se encaixar.
- Defina os limites: entradas, saídas e casos de borda. O comportamento interessante do software vive nas bordas, então gaste suas palavras ali.
- Trabalhe em passos pequenos e verificáveis e peça um plano antes do código; é muito mais barato consertar um plano do que um .
- Itere em diffs direcionados, não em reescritas completas, e use exemplos concretos (idealmente como testes) para fixar qualquer coisa que as palavras deixem vaga.
- Gerencie a janela de contexto como um recurso, e diga o que não fazer — restrições negativas explícitas mantêm a saída enxuta.
Coloque em prática
Pegue um pedido vago de uma linha que você normalmente digitaria ("add search to the list") e o reescreva como um de engenheira antes de enviar qualquer coisa. Adicione o contexto (stack, o arquivo que ele afeta), as entradas/saídas, dois ou três casos de borda, um exemplo do resultado desejado, e uma restrição negativa (o que não tocar). Envie a versão reescrita e compare com o que a versão preguiçosa teria produzido. Faça isso para três pedidos reais e o upgrade se torna automático.
Prompt do capítulo
Context: <language + framework + version>, working in <file/module>.
We already <relevant existing pattern or library to reuse>.
Task: <one clear thing to build>.
Inputs / outputs: <types and shapes>.
Edge cases to handle: <list the ones that matter>.
Example: <one concrete input -> expected output>.
Constraints:
- No new dependencies — use <what we already have>.
- Touch only <this file>; don't refactor anything else.
- Keep existing names and signatures unchanged.
Before coding, give me a 3-4 line plan and wait for my "go".