99 pontos por spilist2 2025-06-23 | 22 comentários | Compartilhar no WhatsApp

Com base em 23/6, reuni isso a partir da minha experiência + Reddit do Cursor + comunidade do Cursor + SNS + vários posts de blog. Contestação, crítica e debate são bem-vindos.


Dica 1. Escolha o modelo de forma estratégica

  • Como cada modelo tem capacidade de programação, velocidade e custo diferentes, é importante escolher de acordo com a situação.
  • Modelos Thinking (Claude 4, Gemini 2.5 Pro etc.) são mais autônomos, mas mais lentos.
  • Modelos Non-Thinking (GPT 4.1 etc.) seguem bem instruções claras e são rápidos.
  • O modelo recomendado varia conforme o tipo de tarefa (ex.: mudanças simples com Sonnet, planejamento complexo com Opus).
  • Como o recurso Auto-select não é tão confiável, é melhor testar vários modelos e encontrar seu próprio estilo.

Dica 2. Ao modificar um app complexo, faça primeiro um plano no modo Ask

  • Como o modo Agent altera o código diretamente, em apps complexos ele pode acabar quebrando funcionalidades existentes.
  • O modo Ask é um modo somente leitura que não altera arquivos, sendo muito útil para montar um plano.
  • O mais seguro é discutir primeiro o plano com a IA no modo Ask e depois executar no modo Agent.
  • Se você deixar o prompt claro, como em não faça alterações agora, dá para reduzir ações desnecessárias no modo Ask.
  • O modo Manual tende a ser menos útil porque exige indicar manualmente os arquivos de referência.

Dica 3. Ao depurar, não deixe a IA alterar arquivos de cara; identifique a causa com testes

  • Se você pedir para a IA corrigir o bug imediatamente, é fácil cair em falhas repetitivas.
  • Etapa 1 (Agent): faça primeiro a IA escrever um teste que reproduza a falha (um teste que deve falhar), no estilo TDD.
    • Na página X, quando eu clico em Y, deveria funcionar como A, mas está funcionando como B. Quero corrigir isso com TDD, então escreva e execute um teste que reproduza esse comportamento. Lembre-se de que, neste momento, o teste deve falhar. Eu posso estar enganado, então, se não der para reproduzir, me avise. Não comece a corrigir o problema sem meu comando.
  • Etapa 2 (Ask): peça para explicar causas possíveis e formas de verificar cada uma, a fim de descobrir a causa raiz.
    • Quero identificar a causa raiz desse bug. Apresente as possibilidades para explicar por que e em que condições esse fenômeno acontece. E, junto com isso, explique como verificar qual dessas opções está correta. Diga também que informações adicionais seriam necessárias e o que valeria a pena registrar em log. Não precisa executar os métodos; apenas explique. Se a causa já tiver ficado clara ao escrever o teste, explique isso.
  • Etapa 3 (Agent): depois de travar o teste com .cursorignore, peça a alteração do código até o teste passar.
    • Adicione o teste criado antes ao .cursorignore. Depois, começando pelas hipóteses mais prováveis que você apresentou, identifique a causa raiz e organize o fluxo ideal de funcionamento em um fluxograma. Em seguida, use esse fluxo ideal para modificar o código até o teste passar. Se houver algo que eu precise verificar ou em que eu precise intervir, me avise.
  • Também é uma boa ideia criar regras para escrita de testes.

Dica 4. Deixe o Cursor gerenciar suas próprias regras para ficar cada vez mais inteligente

  • Se houve uma conversa relevante em uma sessão de chat, você pode usar o recurso /Generate Cursor Rules.
  • Basta pedir algo como crie ou ajuste uma Rule com base nesta conversa.
  • Isso é especialmente útil após depuração: se a causa do bug foi identificada, dá para pedir que ele adicione/ajuste uma Rule para não repetir o mesmo erro.
  • Assim, você faz o Cursor aprender, se manter e ficar cada vez mais inteligente por conta própria.

Dica 5. Use múltiplas abas e opções Auto para aumentar a produtividade

  • No Cursor, é possível usar várias abas de chat ao mesmo tempo. Enquanto o Agent altera código em uma aba, você pode fazer outra tarefa no modo Ask em outra.
  • Se você ativar a opção Auto-run, execuções no terminal e gravações de arquivos podem prosseguir automaticamente, sem precisar aprovar uma por uma.
  • Se você ativar Auto-Fix Lints, ele corrige automaticamente erros de tipo e afins, o que é bem prático.

Dica 6. Não prolongue demais uma única sessão de chat

  • Quando a conversa fica longa, a IA pode esquecer informações importantes anteriores por causa do limite de contexto. (O Cursor acaba resumindo automaticamente.)
  • Quando uma tarefa terminar, é melhor começar uma nova sessão de chat.
  • Em um novo chat, você pode usar @Past Chats para injetar o resumo da conversa anterior como contexto.
  • Se algo importante virar regra (Dica 4), a necessidade de manter chats longos diminui.

Dica 7. Sempre faça commit quando uma mudança relevante for concluída

  • Quando uma tarefa termina, é importante criar o hábito de fazer commit no Git sem falta.
  • O commit funciona como uma trava mínima de segurança para voltar atrás quando a IA altera o código de forma errada.
  • Pelo chat do Cursor, você pode receber ajuda desde a configuração inicial do Git até a escrita da mensagem de commit.
    • Quero enviar este codebase para o GitHub. O problema é que eu não sei absolutamente nada sobre Git e GitHub, e nem tenho conta. Também não sei se o Git está instalado. Me ajude passo a passo.
  • Com o recurso AI Commit Message, também dá para gerar automaticamente a mensagem de commit.

Dica 8. Explique a estrutura do código ao Cursor e ajuste o tamanho e o nome dos arquivos

  • Vale a pena entender as características das Tools internas do Cursor.
    • List Directory lê apenas nomes de diretórios e arquivos, sem ler o conteúdo dos arquivos.
    • Read File lê no máximo 250 linhas por vez de um arquivo (750 linhas no modo Max).
    • Se o arquivo ou diretório referenciado for grande demais, em vez de entrar tudo, o conteúdo é comprimido e ficam só partes importantes, como chamadas de função.
    • Em uma única sessão de chat, só é possível fazer até 25 chamadas de Tool; para passar disso, é preciso clicar manualmente em Continue. (Isso vale mesmo com Auto apply edit ativado. No modo Max, é possível ir até 200 vezes sem Continue.)
  • Por isso, é melhor dar nomes claros a arquivos e diretórios e manter os arquivos com menos de 500 linhas.
  • Se você adicionar a estrutura central de diretórios e informações dos componentes em uma regra Always Applied, a IA não precisará explorar isso toda vez.
  • Você também pode pedir que a IA crie documentação da estrutura do código e a adicione como regra.
    • Crie um documento para que você consiga entender rapidamente a estrutura deste codebase e os arquivos importantes. Pode usar mermaid diagram também. Depois, adicione isso como uma project rule adequada. Defina AlwaysApply: true.

Dica 9. Quando o arquivo ficar grande, peça para o Cursor modularizar

  • Se o arquivo estiver grande demais, é melhor pedir à IA para modularizar.
  • Etapa 1 (Ask): Se você fosse modularizar este projeto, sob que perspectivas ou estratégias isso seria melhor? Por exemplo: 1) perspectiva de Layered Architecture 2) perspectiva de AOP 3) perspectiva de FSD 4) perspectiva de Clean Architecture
  • Etapa 2 (Ask): Com base nas estratégias que você apresentou, monte um plano de modularização adequado.
  • Etapa 3 (Agent): Documente esse plano e depois execute-o.

Dica 10. Use @ para injetar contexto ativamente

  • Ao usar o símbolo @ para injetar diretamente vários tipos de contexto, além de arquivos e pastas, a IA trabalha melhor.
  • @Code: permite referenciar apenas partes específicas do código, como uma função ou variável.
  • @Docs: faz a IA consultar a documentação oficial de uma biblioteca para escrever código com mais precisão. O Cursor já traz algumas docs e também permite adicionar via URL.
  • @Git: permite referenciar uma branch ou commit específico para comparar ou pedir explicações.
  • @Web, @Link: permitem fazer busca na web ou ler o conteúdo de um link específico.
  • @Recent Change: permite referenciar mudanças recentes no codebase. Não encontrei exatamente como funciona, mas parece se basear em unstaged changes e commits recentes. Pode ser útil para quem não é desenvolvedor e não faz uma gestão rígida de commits.

Dica 11. Se segurança for importante, ative o modo Privacy

  • Se o modo Privacy não estiver ativado, dados como código e prompts podem ser coletados e usados no treinamento do modelo.
  • Com o modo Privacy ativado, partes do código ainda podem ser criptografadas e armazenadas temporariamente, mas não ficam armazenadas permanentemente nem são usadas em treinamento.
  • Porém, no modo Privacy, alguns recursos mais recentes, como background agent, não podem ser usados.
  • Para mais detalhes, consulte a documentação em que o Cursor explica o modo de privacidade.

Dica 12. Use MCP e ferramentas que tornam o desenvolvimento mais confortável e preciso

  • Na parte de gestão de tarefas, recomendo memory bank, TaskMaster e Vooster.
  • Os MCPs da documentação oficial do Cursor podem ser instalados de uma vez via deep link.
    • Browserbase para abrir o navegador, clicar, ler console, tirar screenshots etc.
    • PlayWright para adicionar testes E2E
    • Sentry para monitorar e corrigir erros
    • Stripe e Paypal para pagamentos
    • Netlify e Heroku para deploy
    • Snyk e Semgrep para verificações de segurança
    • Supabase para ler e gravar tabelas do banco de dados → não aparece na documentação oficial do Cursor, mas, na minha opinião, é instalação obrigatória para quem faz vibe coding
  • Se você trabalha dentro de uma empresa e precisa fornecer bastante contexto sobre a situação da empresa ou vários produtos, também pode valer a pena desenvolver seu próprio MCP. (Referência: Working with Documentation)
  • Também é possível usar ferramentas externas como StageWise para apontar uma parte específica da UI e pedir correções de bug e afins.

Outras dicas menores

  • Modo Max: a cobrança é baseada em tokens, não em solicitação, e ele permite contexto maior e mais uso de Tools.
  • Adicionar modelos: nas configurações, você pode ativar modelos ocultos por padrão, como Claude 4 Opus.
  • Custom API Key: recurso para integrar sua própria chave de API de LLM. A utilidade tende a ser baixa. Vale lembrar que, mesmo assim, o tráfego sempre passa pelos servidores do Cursor.
  • Sincronização de configurações: a sincronização entre vários PCs ainda não é bem suportada oficialmente. Há relatos de que o Profile Export/Import não funciona bem e, embora tenha surgido uma extensão há algumas semanas, em 23/6 ela ainda apresentava alguns problemas.
    • Ela aparece no VSCode Marketplace, mas não é encontrada na lista de extensões do Cursor.
    • Dá para instalar no VSCode e depois importar usando o recurso Import VSCode Settings and Extensions do Cursor. Porém, na prática, a extensão não inicializa corretamente (issue relacionada).
    • Parece promissora, então espero que o desenvolvedor corrija isso logo

22 comentários

 
elddytbt 2025-06-25

As dicas 4 e 6 são boas~~

Tenho uma dúvida: para mim, 500 por mês é absurdamente pouco; como vocês resolvem esse problema?

 
spilist2 2025-06-25

Recentemente o limite não foi removido?

Também uso o Claude Code junto e, talvez porque eu geralmente tento fazer solicitações mais refinadas depois de discutir bastante no AI Studio + definir regras + implementar diretamente com autocomplete de aba quando necessário, quase nunca senti que isso fosse insuficiente.

 
fanotify 2025-06-24

Basicamente, é preciso ter uma assinatura paga para usar esses recursos? Ou, se o uso for baixo, até um membro básico gratuito consegue acompanhar?

 
spilist2 2025-06-24

Pela minha experiência, o Cursor oferece recursos e uma cota bem limitados no plano gratuito, então acho que não é muito fácil usá-lo de graça.

Existem modelos que podem ser usados sem pagar, mas, em compensação, eles também não são muito bons para programar.

 
eususu 2025-06-24

As dicas são muito boas.
Obrigado!

 
dnltmdwhd 2025-06-24

Também há muito conteúdo útil que eu não conhecia~ Obrigado!

 
jk34011 2025-06-24

Obrigado pelas ótimas dicas~ aprendi bastante.

 
dkmin 2025-06-24

Obrigado por compartilhar um conteúdo tão útil. =b

"No entanto, no modo Privacy, alguns recursos mais recentes, como o agente em segundo plano, não podem ser usados."
=> Gostaria de saber os detalhes específicos. Poderia informar a fonte...

ref.
https://docs.cursor.com/background-agent

Background Agents estão disponíveis no modo Privacy. Nunca treinaremos com seu código, e só reteremos o código para fins de execução do agente. Saiba mais sobre o modo Privacy

 
spilist2 2025-06-24

Nossa, até pouco tempo atrás não dava para usar, mas isso mudou!! Obrigado.

 
baeba 2025-06-23

No meu caso,
eu faço um backup local do código-fonte inteiro antes de a IA alterar o código-fonte ou antes de fazer uma pergunta no prompt.
Em ./history/,
eu crio diretórios com uma estrutura como
./hisrory/r0001/
./hisrory/r0002/ ...
e executo um script para fazer backup dos códigos de desenvolvimento.

Como meu ambiente de desenvolvimento é Windows, é um arquivo ps1.

# backup.ps1  
$base = "./src"  
$history = "./history"  
  
# Encontrar a pasta rXXXX mais recente  
$latest = Get-ChildItem -Path $history -Directory | Where-Object { $_.Name -match '^r\d{4}$' } | Sort-Object Name -Descending | Select-Object -First 1  
if ($latest) {  
    $num = [int]($latest.Name.Substring(1)) + 1  
} else {  
    $num = 1  
}  
$next = "r{0:D4}" -f $num  
$dest = "$history/$next"  
  
# Criar pastas de backup  
New-Item -ItemType Directory -Path "$dest" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/css" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/js" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/html" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/images" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/doc" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/server" -Force | Out-Null  
  
# Copiar arquivos/pastas  
Copy-Item "$base/SPA_index.html" "$dest/SPA_index.html"  
Copy-Item "$base/css/*" "$dest/css/" -Recurse  
Copy-Item "$base/js/*" "$dest/js/" -Recurse  
Copy-Item "$base/images/*" "$dest/images/" -Recurse  
Copy-Item "$base/doc/*" "$dest/doc/" -Recurse  
  
# Copiar arquivos do servidor: excluir node_modules  
Copy-Item "$base/server/*" "$dest/server/" -Recurse -Exclude "node_modules"  
  
Write-Host "Backup concluído: $dest"  
 
spilist2 2025-06-23

Quais seriam as vantagens e desvantagens desse método em comparação com usar Git?

 
baeba 2025-06-24

Usem Git também ao mesmo tempo.. Na prática, como a IA pode alterar bastante o código-fonte durante o desenvolvimento.. Mesmo que você revise tudo com cuidado, ao fazer o build ainda podem surgir erros ou bugs por isso..

Fica prático na hora de fazer rollback para o código anterior.

Dá para fazer rollback do código com Git também, mas.. como todo o código fica com backup completo, foi útil para encontrar rápido e implementar olhando o que mudou no código.

 
turastory 2025-06-25

Acho que usar git subtree seria uma boa.

 
lux1024 2025-06-25

git worktree?

 
turastory 2025-06-26

Ah, confundi o nome haha, o certo é worktree.

 
spilist2 2025-06-24

Obrigado pela resposta!

 
joyoo 2025-06-24

Não há vantagem nenhuma nisso.. os sistemas de controle de versão existem justamente para evitar esse tipo de prática.
Na minha opinião, parece melhor você estudar mais git.

 
nakyup 2025-06-23

O MCP chamado context7 é útil, então eu o uso com frequência quando quero perguntar como usar uma biblioteca.

 
spilist2 2025-06-23

Ah, lembrei que acabei esquecendo de apresentar isso; atualizei o material da aula, mas não tinha atualizado o blog. Graças a isso, adicionei agora. Obrigado.

 
aqqnucs 2025-06-23

Dica 2: Pergunta. Mesmo no modo ask, se você não disser para não modificar, ele tenta fazer alterações?

 
spilist2 2025-06-23

Às vezes, ao tentar fazer uma modificação, o tempo limite passa e o edit_files acaba não funcionando, então você acaba indo fazer outra coisa.

 
kissdesty 2025-06-23

Parece significar que, mesmo sem fazer edições de fato, até no modo Ask ele reduz ações preparatórias desnecessárias que normalmente aconteceriam logo antes da edição.