Prompts para features e tasks: Cursor, Claude Code e Copilot

TL;DR - Prompt com objetivo, escopo e contexto; modo certo (Ask/Edit/Agent/Plan). Trecho local: Copilot; feature multi-arquivo: Agent. No final: rodar testes e revisar diff sempre.


Pedir “faz um endpoint de login” para a IA costuma gerar código genérico ou fora do padrão do projeto. Quando eu passo objetivo, escopo e um pouco de contexto, a resposta encaixa de primeira. Neste post: o que colocar no prompt, o que é contexto/token/modelos, os modos do Cursor (Ask, Edit, Agent, Plan) e quando usar cada ferramenta.

O que colocar no prompt

Três coisas fazem a diferença: objetivo (o que deve acontecer), escopo (arquivo, módulo ou repo) e uma ou duas restrições (“sem novas deps”, “manter testes”). Quanto mais vago o pedido, mais a IA inventa. Algo como “implementar X em Y, seguindo o padrão de Z” corta retrabalho.

Exemplo que evito: “faz um endpoint de login”. Exemplo que uso: “criar POST /auth/login em auth-controller, validar body com o DTO existente, retornar 401 se credenciais inválidas, sem lib nova”.

O que é contexto

Contexto é tudo o que a IA “vê” para responder: arquivos abertos, trechos colados no chat, pastas e arquivos referenciados com @ (por exemplo @src/auth). Sem contexto suficiente ela chuta. Com o arquivo certo em @ ou no escopo da conversa, a resposta encaixa no seu código.

Eu costumo colar o trecho relevante ou referenciar o módulo com @ antes de pedir a mudança.

O que é token

Token é a unidade que o modelo usa para processar texto: palavras, pedaços de palavras ou símbolos. O limite de contexto da ferramenta (por exemplo 200k tokens) é quanto texto + resposta cabem numa conversa. Prompt gigante ou muitos arquivos @ consomem tokens e podem deixar menos espaço para a resposta ou encarecer o uso. Por isso faz sentido ser objetivo no prompt e referenciar só o necessário.

O que são modelos

Modelos são as “versões” da IA (Claude, GPT, etc.) treinadas para entender e gerar código/texto. Cursor, Claude Code e Copilot usam modelos diferentes por baixo dos panos; cada um tem tamanho de contexto e estilo de resposta próprios. Escolher Ask/Edit/Agent/Plan (no Cursor) é escolher como o modelo age (só ler, editar, explorar, planejar), não qual modelo roda.

Ask, Edit, Agent e Plan (Cursor)

São os tipos de interação no Cursor:

  • Ask: só leitura. A IA responde, explica, busca no código e não altera nada. Uso quando quero entender antes de mexer.
  • Edit (Composer sem Agent): a IA propõe alterações (diffs) em um ou vários arquivos; você aplica ou rejeita. Não roda terminal nem explora o repo sozinha.
  • Agent: explora o codebase, edita vários arquivos e pode rodar comandos. Uso quando a task cruza muitos arquivos ou precisa de testes/scripts.
  • Plan: a IA pesquisa o projeto e monta um plano de implementação para você revisar (e ajustar) antes de mandar executar. Bom para tarefa grande ou ambígua.

Resumo prático: Ask para dúvida; Edit para mudança delimitada; Agent para feature multi-arquivo; Plan quando o escopo é grande ou você quer controle fino antes de codar.

flowchart LR
  subgraph Tipos Cursor
    Ask[Ask: só leitura]
    Edit[Edit: diffs]
    Agent[Agent: edita + terminal]
    Plan[Plan: plano antes]
  end

Cursor vs Claude Code vs Copilot

Cursor: chat + Composer (Edit/Agent/Plan) e Agent com terminal. Claude Code: agente que navega no projeto e roda comandos; bom para raciocínio longo. Copilot: inline (completar linha, bloco ou trecho a partir de comentário); não é agente.

Para mudança em um arquivo ou “complete isso aqui”, Copilot ou chat com Edit bastam. Para “endpoint X no backend + botão no front que chama”, Cursor Agent ou Claude Code.

Plan antes, Agent depois?

Só quando a task é grande ou ambígua. Eu peço o plano (ou os passos no chat), reviso e aí mando implementar. Para tarefa pequena e clara (“renomear método e atualizar 3 chamadas”), Agent direto é mais rápido.

flowchart TB
  Task[Task ou feature] --> Tamanho{Escopo claro e pequeno?}
  Tamanho -- Sim -->  Agent[Agent / Composer direto]
  Tamanho -- Não -->  Plan[Pedir plano antes]
  Plan --> Revisar[Revisar e ajustar]
  Revisar --> Agent
  Agent --> Testar[Rodar testes / revisar diff]

Depois do código: rodar testes e revisar diff sempre. Sem exceção.