Kaique Mitsuo Silva Yamamoto
IaDesenvolvimento com ia

Cursor: Extraindo 100% — Guia Definitivo para Full Stack Developers

Guia completo do Cursor IDE: Composer 2, cloud agents, rules (.cursorrules e .cursor/rules/), MCP, @-mentions, background agents, keyboard shortcuts e integração no workflow full stack.

Cursor não é "VS Code com autocomplete". É uma IDE agêntica onde o Composer pode planejar, executar e abrir PRs autonomamente. Mas a maioria usa 15% da capacidade. Este guia cobre os outros 85%.


1. Os 4 modos de uso

ModoAtalhoO que faz
TabTabAutocomplete contextual (inline)
Cmd+KCmd+KEdição inline com prompt
ChatPainel lateralConversa com contexto do código
ComposerCmd+I ou painelMulti-file editing com planejamento

Quando usar cada um

  • Tab: dia a dia, completar código que você já começou
  • Cmd+K: transformar trecho selecionado, gerar função, refatorar inline
  • Chat: perguntar sobre código, debug, explicar arquitetura
  • Composer: implementar features inteiras, refatoração multi-arquivo, criar specs

2. Composer 2 — O agente

Fluxo Plan → Build

1. Escreva o PRD (feature-prd.md)
2. Abra Composer (Cmd+I)
3. Referencie arquivos com @
4. Peça o plano → Composer gera task list
5. Revise o plano (edite, reordene, remova)
6. Execute → Composer implementa autonomamente
7. Revise diffs (aceite/rejeite cada alteração)

Prompt efetivo no Composer

@file specs/billing.md @file src/api/users.ts @file src/db/schema.ts

Implement the billing module from @file specs/billing.md.

Requirements:
- Follow patterns from @file src/api/users.ts
- Use schema from @file src/db/schema.ts
- Write Vitest tests BEFORE implementing each endpoint
- After implementing, run: pnpm lint:fix && pnpm vitest run
- If any test fails, fix until all pass

Create a plan first, then execute one task at a time.

Cloud Agents

Cloud agents rodam em máquinas da Cursor — você pode fechar o laptop e voltar depois.

1. Abra Composer com tarefa grande
2. Clique "Run in Cloud"
3. Cursor cria branch, abre máquina, executa
4. Você recebe notificação quando terminar
5. Review do PR no GitHub ou dentro do Cursor

Quando usar cloud:

  • Implementação de módulo inteiro (30+ min)
  • Refatoração de 20+ arquivos
  • Geração de testes para módulo grande
  • Migração de dependências

3. @-mentions — contexto cirúrgico

SintaxO que inclui
@fileConteúdo de um arquivo
@folderTodos os arquivos de uma pasta
@codeTrecho selecionado
@git diffDiff atual
@git branchBranch atual
@git logHistórico de commits
@webBusca na web
@docsDocumentação de bibliotecas
@terminalOutput do terminal
@problemsErros do VS Code

Exemplos práticos

@file specs/auth.md @git diff

Review the changes in @git diff against the spec.
Does the implementation match? List deviations.
@folder src/api/ @file src/db/schema.ts

Analyze all API routes in @folder src/api/.
Check if they follow the schema in @file src/db/schema.ts.
Find N+1 queries, missing validations, and exposed internals.
@problems @file src/components/Dashboard.tsx

Fix all TypeScript errors shown in @problems for Dashboard.tsx.

4. Rules — sistema de regras

Migração: .cursorrules → .cursor/rules/

# Antigo (deprecated)
.cursorrules

# Novo (recomendado)
.cursor/rules/global.md
.cursor/rules/backend.md
.cursor/rules/frontend.md
.cursor/rules/tests.md

Formato de uma rule

---
description: "TypeScript and React conventions"
globs: ["**/*.ts", "**/*.tsx"]
alwaysApply: true
---

## Stack
TypeScript strict, React 19, Next.js 16, Tailwind CSS v4

## Conventions
- 2-space indent, single quotes, trailing commas
- Components in PascalCase, files in kebab-case
- Always use <Link> for internal navigation
- Vitest only (never Jest)
- No `any` types — use `unknown`

## After every change
1. pnpm lint:fix
2. pnpm format
3. pnpm vitest run

Tipos de rule

TipoComportamento
alwaysApply: trueSempre carregada no contexto
globs: ["**/*.go"]Carregada quando arquivo .go é editado
description: "..."Agente decide se carrega (agent-requested)

Rules compatíveis com Claude Code e OpenCode

Se você usa múltiplas ferramentas, mantenha rules em formato que todas entendem:

---
# Compatível com Cursor, Claude Code e OpenCode
paths:         # Claude Code e OpenCode
  - "backend/**/*.go"
globs:         # Cursor
  - "backend/**/*.go"
alwaysApply: false
---
## Go Conventions
- Go 1.23, Gin framework
- Table-driven tests
- Error handling: fmt.Errorf("contexto: %w", err)

5. Models e configuração

Models disponíveis

Cursor suporta múltiplos provedores:

  • Claude (Sonnet 4, Opus 4.7)
  • OpenAI (GPT-4o, GPT-4o-mini, o1, o3)
  • Gemini (2.5 Pro, 2.5 Flash)
  • Custom (sua própria API key)

Configuração por contexto

# Composer para implementação complexa → Claude Opus 4.7
# Tab autocomplete → Claude Sonnet 4 (rápido, barato)
# Chat para debug → GPT-4o (bom em explicar)
# Cloud agent → Claude Opus 4.7 (melhor qualidade)

Custom API Key

Cursor Settings → Models → API Key → Add
Use sua chave Anthropic/OpenAI/Google diretamente.

6. Keyboard shortcuts essenciais

AtalhoAção
TabAceitar autocomplete
EscRejeitar autocomplete
Cmd+KEdição inline
Cmd+IAbrir Composer
Cmd+LAbrir Chat
Cmd+Shift+IComposer em modo agente
Cmd+Shift+LAdicionar ao Chat com contexto
Cmd+EnterAceitar todas as mudanças do Composer
Cmd+Shift+EnterRejeitar todas as mudanças
Cmd+Shift+PCommand Palette
Tab (em diff)Aceitar diff individual
Cmd+Shift+TabRejeitar diff individual

7. Debugging com Cursor

Padrão: erro → contexto → correção

@problems @file src/api/users.ts @terminal

The test is failing with:
@terminal output from: pnpm vitest run src/__tests__/users.test.ts

Read the error, find the root cause in @file src/api/users.ts,
and fix it. Don't weaken the test.

Padrão: log → análise

@terminal @file src/workers/processor.ts

The worker crashed with this log:
[paste log here]

Find the root cause in @file src/workers/processor.ts
and fix it. Write a test that reproduces the crash.

8. Integração com git

Review de PR no Composer

@git diff main

Review this diff against our conventions in .cursor/rules/global.md.
Check for:
1. Security issues
2. Missing tests
3. Type safety violations
4. Performance concerns

For each issue: FILE:LINE — description — severity

Gerar commit message

@git diff --cached

Analyze these staged changes and generate a Conventional Commit message.
Subject ≤ 50 chars. Body only when "why" isn't obvious.

9. Erros comuns

ErroSintomaCorreção
Composer sem @-mentionsContexto errado, código genéricoSempre referenciar arquivos
Aceitar diffs sem revisarBugs em produçãoRevisar CADA diff
Cloud agent sem specResultado vagoPRD antes de cloud
.cursorrules antigoRules não carregamMigrar para .cursor/rules/
Tab autocomplete confusoCódigo errado inseridoEsc para rejeitar
Não atualizar rulesRegras obsoletasVersionar e revisar mensalmente

10. Checklist: setup completo

# 1. Instalar Cursor
# Download de https://cursor.com

# 2. Configurar models
# Cursor Settings → Models → adicionar API keys

# 3. Criar rules
mkdir -p .cursor/rules
cat > .cursor/rules/global.md << 'EOF'
---
alwaysApply: true
---
2-space indent, single quotes.
Vitest only. Conventional Commits.
EOF

# 4. Rules por stack
# (criar backend.md, frontend.md, tests.md)

# 5. MCP (opcional)
# Cursor Settings → MCP → Add Server

# 6. Testar
# Cmd+I → "Read .cursor/rules/global.md and summarize the project"

On this page