devto 2026-09-18 원문 보기 ↗
Toda semana alguém me pergunta: "qual IDE com IA você usa?". A resposta curta é "Cursor". A resposta real é que Cursor é só a interface. O que faz funcionar é um vault Logseq que serve de memória, skills compartilhadas entre IDEs, e um orquestrador que decide o que vai pra onde.
Esse orquestrador é o Grok Bot — uma feature do Cursor Pro+ que permite criar agentes especializados com instruções persistentes. Pense nele como um ChatGPT customizado que vive dentro do Cursor e pode chamar outros agentes ou te direcionar pra outra ferramenta.
Se você está pagando $20 aqui, $60 ali, e cada ferramenta vive numa ilha sem saber o que a outra fez ontem, esse post é pra você.
Índice
8h — daily do time. Peço: "PRs abertos do projeto". Sonnet 5 consulta o Azure DevOps via MCP, me mostra 4 PRs. Dois são do Iago (micro-PRs de feature, padrão dele), um do Tryelson (fluxo de cadastro), um da Miriam (reembolso). Escolho revisar o da Miriam porque tem regra de negócio.
O steering team-routing já carregou automaticamente. Ele tem uma matriz por dev: "Miriam: back, reembolso/my_purchases, commits às vezes sem escopo. Sugerir escopo no conventional commit quando faltar." O agent sabe que não vai cobrar teste unitário dela (é o padrão do time), mas vai sugerir feat(reembolso): no commit.
8h30 — code review. Carrego clean-code-review (skill). O agent lê o diff, aplica as lentes (KISS, YAGNI, SRP, segurança, LGPD), e sugere dois comentários. Um sobre nomenclatura de variável, outro sobre uma validação que podia ser extraída pra método.
A skill tem 15 versões. A v1 era "aplica KISS e YAGNI". A v15 atual sabe que "Iago faz micro-PRs sem testes (é o padrão dele, não cobrar)", que "Bernardon usa títulos só com código do card (pedir título rastreável)", e que "Tryelson responde bem a apontamento técnico preciso". Não é regra genérica, é contexto calibrado pro time.
10h — bug de produção. Chega card VADM-1234: seller não consegue sacar. Troco pra Opus 5 — correlacionar logs de 4 fontes precisa de raciocínio mais denso. Carrego incident-analysis (skill).
A skill define o fluxo: 1) busca no Jira (descrição, anexos, comentários do QA), 2) acha PR relacionado no Azure DevOps, 3) puxa logs do Grafana no horário do bug, 4) eventos do Sentry, 5) query no banco PRD. Obrigatório: criar pages/incidentes/VADM-1234.md no Logseq antes de codar. Em 3 minutos tenho a hipótese: campo withdrawal_status null em contas criadas antes de março.
14h — artigo DEV.to. Chamo o Grok Bot Vitrine com Opus 5 (thinking alto): "continua o draft do AI tools stack". Ele sabe onde parou porque o contexto tá no Logseq.
Carrega write-for-dev-community (steering). Essa steering define: voz Montanha (tech + empatia + clareza), gate editorial (G0: simplifica, G1: máximo 1 bloco defensivo, G2: título responde o hook, G3: CTA comentável), estrutura DEV.to (H2 numerados com tese, artefato no miolo, sem ## Introdução). Antes de entregar, o agent roda o checklist: "soa dev pra dev? admite limite? parece Montanha ou clone de Deschamps?". Se falhar, reescreve.
21h — side project. Abro o Quinto (app de gastos da família) ou o LotRace (jogo de tabuleiro PWA, 2–6 jogadores por código). Opus 5 no Composer.
O Quinto tem seu próprio steering: quinto-context (stack: React Native, SQLite local, sync opcional). O LotRace tem lotrace-context (stack: Vite React, boardgame.io, Railway + Vercel). Mesma arquitetura do trabalho, contexto diferente. Codar em casa com a mesma fluidez.
18h30 — mentoria. Uso GPT-6 Astra. Preparo o material da sessão com o mentorado. Crio uma planilha de acompanhamento. ChatGPT não tem MCP nem skills, mas Canvas funciona bem pra documentos colaborativos. O contexto de mentoria fica isolado do trabalho.
19h30 — faculdade. Ainda no ChatGPT, agora como Agentic IA. Estudo pra disciplina da semana, peço explicações, resolvo exercícios. O modelo pensa junto, não só responde. Se preciso de algo do vault, copio manualmente — é o preço da separação.
12h — almoço fora do escritório. Recebo notificação de alerta no Sentry pelo celular. Abro o Grok Bot no app do Cursor (iOS), peço "verifica o alerta X no Sentry e me dá o resumo". Ele acessa o Mac remotamente, roda os MCPs, e me manda a síntese: erro de timeout no serviço Y, 23 ocorrências, não é crítico. Decido esperar voltar.
16h — na fila do banco. Lembro que preciso revisar o draft do artigo. Pelo celular: "qual o status do draft AI tools stack?". Grok Bot consulta o Logseq via MCP, me diz que falta a seção de MCPs. Anoto mentalmente, não preciso abrir laptop.
22h — no Mac, fechando o dia. Abro o Grok Bot no Cursor: "o que ficou pendente hoje?". Ele carrega o steering daily-vadm (relatório diário, visão de TL) e lista: 1 PR aguardando CI, draft do artigo precisa de revisão, email do mentorado sem resposta. Priorizo o que vai pra amanhã.
O Grok Bot é o único que uso em dois contextos: no Mac (orquestração pesada, execução via Cloud Agents e shell) e no celular (consultas rápidas, acesso remoto aos MCPs). É o hub que conecta os outros harnesses.
O ponto: não copiei um link entre ferramentas o dia inteiro. O contexto fluiu. As skills e steerings fizeram o trabalho pesado: saber o estilo de cada dev, o tom do artigo, o fluxo de investigação, o contexto de cada projeto.
| Ferramenta | Plano | Custo/mês | Quem paga | Pra quê |
|---|---|---|---|---|
| Logseq | Free | $0 | — | RAG central (memória de todos os harnesses) |
| Kiro | Pro | ~$20 | Empresa | Trampo (Voomp, PRs, investigação) |
| Cursor | Pro+ | $60 | Eu | Grok Bots (orquestração) + modelos de ponta |
| ChatGPT | Plus | $20 | Eu | Pessoal (estudos, mentorias, agenda) |
Total pessoal: $80/mês. O Logseq é gratuito, mas é a peça mais crítica. Sem ele, as outras três são ilhas.
O Cursor Pro+ a $60 parece caro comparado com outras opções, mas é o único que me dá acesso aos Grok Bots — agentes especializados com instruções persistentes.
A maioria dos artigos de "Cursor vs Copilot vs Kiro" trata cada ferramenta como ilha. O meu setup funciona diferente:
O ponto: Kiro e Cursor consultam o mesmo cérebro e seguem as mesmas regras. ChatGPT fica isolado pro pessoal. Grok Bot decide o que vai pra onde.
A pergunta óbvia: "por que não usar só Cursor e pronto?".
O problema que eu tinha:
O que eu queria:
Por que bots especializados (não um bot genérico):
Um bot genérico tenta fazer tudo e acaba medíocre em tudo. Cada bot meu tem:
O pattern que emergiu:
Generalista (Chefe de gabinete)
└── decide qual especialista chamar
├── Código (PRs, CI)
├── Vitrine (artigos, GitHub)
├── Inbox (emails, agenda)
└── [domínio] (hobby, side project)
Não planejei assim. Comecei com 1 bot, vi que ficava sobrecarregado, fui separando por domínio. Depois de 6 meses: 8 bots, cada um com sua especialidade.
O custo de manter isso:
Compensa porque economizo isso toda semana em "deixa eu te explicar o contexto de novo".
Muita gente associa RAG com embeddings e pgvector. O meu é mais simples: um vault Logseq com convenção de hubs.
5 scopes, 5 hubs:
| Scope | Hub | O que vive ali |
|---|---|---|
pessoal |
pessoal/_hub.md |
Identidade, valores, mentoria, hobbies |
carreira |
carreira/_hub.md |
Portfolio, Staff track, artigos |
ops |
ops/_hub.md |
Incidentes, runbooks, squads |
meta |
meta/rag-contract.md |
Regras do vault, contratos |
legado |
legado/_hub.md |
Redirects (sem escrita nova) |
Regra hub-first: qualquer pergunta de domínio começa pelo hub do scope. O agent abre o _hub.md, segue os links canônicos, e só então faz grep se precisar.
Separação código vs memória:
Código/arquitetura → Graphify (code graph)
Memória/domínio → Logseq (hub-first)
Pergunta sobre como funciona o PaymentService? Graphify. Pergunta sobre o que decidi no incidente VSUS-755? Logseq.
Por que não embeddings?
Embeddings ficam no roadmap. Hub-first resolve 95% dos casos e custa zero infra.
Tenho ~30 skills em ~/.cursor/skills/. Kiro e Cursor apontam pro mesmo path — refino uma vez, vale nos dois.
| Skill | Gatilho | O que faz |
|---|---|---|
security-audit |
auditoria AppSec | OWASP ASVS 5.0, três portas de disclosure, hunt mode pra IDOR |
clean-code-review |
PRs | lentes KISS, YAGNI, DRY, SRP + perfil por dev do time |
incident-analysis |
VSUS/VADM-XXX | fluxo Jira→ADO→Grafana→Sentry→banco, incident graph obrigatório |
voomp-platform |
trabalho Voomp | contexto de squads, Jira, ADO, branches |
write-for-dev-community |
artigos | voz Montanha, gate editorial G0-G3 |
A security-audit é a skill que mais refinei. Ela audita código contra OWASP ASVS 5.0 com dois modos:
Não é só prompt. A skill consulta o KB (Logseq) e tem runbooks vinculados:
security-audit/
├── SKILL.md # prompt principal
├── PROMPT.md # procedimento de auditoria (o SKILL.md manda seguir)
├── docs/
│ ├── falso-positivo.md # triage: código existe? requisito existe? path alcançável?
│ └── uso-em-codigo-terceiros.md # regras de disclosure
├── bounty-exclusions.md # filtro pra bug bounty (Stripe HackerOne)
└── references/sources.md # fontes primárias (OWASP, Google Eng Practices)
O framework de disclosure tem três portas:
Hunt mode: uma invariante por vez, todos os paths que chegam no recurso protegido, denominador no resultado ("verificado 47 de 52 paths, 1 gap"). Uso pra IDOR cross-tenant, idempotência de operações de dinheiro, verificação de assinatura de webhook.
A clean-code-review também consulta KB e tem runbooks vinculados:
clean-code-review/
├── SKILL.md # prompt + lentes (KISS, YAGNI, DRY, SRP, segurança, LGPD)
├── team-profiles/ # perfil por dev (consultado via KB)
│ └── vadm.md # Iago: micro-PRs; Bernardon: título só com card; Miriam: commits sem escopo
├── domain-rules/ # regras por domínio
│ └── payment.md # idempotência, retry, validação de período
└── checklists/
└── pre-approve.md # checklist antes de aprovar (segurança, LGPD, regra de negócio)
O case: numa sexta-feira, a skill revisou um PR de reembolso. O código estava limpo, testes passando, CI verde. Mas a skill consultou domain-rules/payment.md e identificou que faltava uma validação: o período de carência de 7 dias pós-graduação não estava sendo checado.
O comentário foi direto: "Regra de negócio incompleta. O fluxo de reembolso pós-graduação exige validação de carência de 7 dias. Esse path não verifica." O dev confirmou, adicionou a validação, e o PR foi aprovado na segunda.
Se tivesse ido pra produção, sellers de pós-graduação teriam conseguido reembolso fora do período permitido. A skill pagou o investimento naquela semana.
Skill (prompt)
├── consulta KB (Logseq via MCP)
│ └── domínio, decisões passadas, contexto do time
├── runbooks vinculados
│ └── checklists, triage, disclosure, regras por domínio
└── evolução versionada
└── v1 → v15, calibrada pro contexto real
Skill sem KB é prompt genérico. Skill com KB conhece o projeto.
Skills eu ativo manualmente. Steerings disparam por contexto — quando leio um arquivo, quando o assunto casa com a descrição, ou estão sempre ligadas.
As que mais economizam tempo no Kiro:
| Steering | Tipo | O que faz |
|---|---|---|
jira-issue-naming |
always | convenção de título: [ Sentry - FRONT ] [ÁREA] Descrição, sistemas em CAPS, módulos padronizados |
grafana-dashboard-patterns |
fileMatch | 10 regras pra criar dashboard: upload JSON completo, labels Loki obrigatórios, cores por tipo de card |
confluence-page-location |
always | sabe que docs do VADM vão em parent_id=3136782350, força full-width + table_layout, linka Squad ADM |
Exemplo real: dashboard de monitoramento em 20 minutos.
Pedi pro Kiro criar um dashboard de acompanhamento de task VGAT-622. A steering grafana-dashboard-patterns disparou porque o assunto casou com o fileMatch. Ela trouxe:
overwrite: true."container + namespace. Só namespace não renderiza."O agent gerou o JSON seguindo as 10 regras. Eu validei, fiz upload, funcionou de primeira. Sem a steering, eu teria descoberto essas regras por tentativa e erro.
Exemplo real: card de bug do Sentry em 30 segundos.
Chegou alerta no Sentry: erro 500 no checkout. Mencionei no Kiro. A steering jira-issue-naming (always-on) já estava carregada. O agent consultou a convenção:
Origem Sentry → título: [ Sentry - FRONT ] [ÁREA] Descrição
Sistemas: ADM, CHECKOUT, KYC
Módulo inferido do domain tag: payment → [Checkout]
Criou o card: [ Sentry - FRONT ] [CHECKOUT] Erro 500 ao processar pagamento PIX. Com link pro issue Sentry na descrição, stacktrace formatado, labels Sentry + frontend + payment. Eu só revisei e confirmei.
A diferença skill vs steering:
| Skill | Steering | |
|---|---|---|
| Ativação | Manual (eu peço) | Automática (always, fileMatch, ou auto) |
| Escopo | Domínio amplo (AppSec, code review) | Tarefa específica (criar card, criar doc, criar dashboard) |
| Onde vive | ~/.cursor/skills/ |
.kiro/steering/ ou Logseq |
| Compartilha | Kiro + Cursor | Só Kiro (por enquanto) |
Tenho ~40 steerings. A maioria é always-on (regras gerais como language-pt-br, no-assumptions). Umas 10 são fileMatch ou auto (disparam por contexto).
O Grok Bot do Cursor Pro+ me dá acesso a criar bots especializados. Meu time:
| Bot | Papel |
|---|---|
| Chefe de gabinete | Orquestra, corta escopo, barra Staff |
| Código | PRs pequenos, CI verde, CloudAgent |
| Vitrine | GitHub profile, DEV.to |
| Inbox | Gmail + Calendar + Outlook em lote |
| AppSec | Dependabot, Sentry quente |
| Quinto | App de gastos da família |
| LotRace | Jogo de tabuleiro PWA |
| IronToy | Hobby: miniaturas diecast |
Limitação honesta: o Grok Bot não pilota as UIs. O que ele faz:
Não é mágica. É orquestração com humano no loop.
Model Context Protocol permite que Kiro e Cursor falem com sistemas externos.
Cursor (10 MCPs):
graphify, logseq-kb, mcp-atlassian, azure-devops, grafana, sentry, context7, git, browser-tools, teams
Kiro (14 MCPs, mais produção):
graphify, logseq-kb, mcp-atlassian, azure-devops, sentry, mysql-prd-readonly, dev-to, datadog, context7 + bancos DEV/HML, OneSignal, Playwright (disabled)
ChatGPT: sem MCP. Contexto manual. Forte em mentorias, planilhas, Canvas.
Exemplo real de investigação de bug: recebo o card no Slack. No Kiro:
jira_get_issue → pega descrição, anexos, comentários do QArepo_pull_request → acha o PR relacionado (se existir)grafana → logs do serviço no horário do bugsentry → stacktrace se teve exceptionmysql_query → query no banco pra confirmar hipóteselogseq_write_file → documenta hipótese no vaultTudo sem trocar de aba. O contexto fica no vault, não no meu cérebro.
Cap duro: ≤3 agents. Domínio fica em skills, não em mais agents.
| Agent | Modelo | Papel |
|---|---|---|
montanha-staff |
Opus 5 | Gate Staff: SHIP/REVISE/SPLIT |
back-specialist |
Sonnet 5 | Backend (PHP/Go) |
front-specialist |
Sonnet 5 | Frontend (Vue/Nuxt, React/Pixi) |
Por que só 3? Agent é caro (contexto, latência). Skill é barata (texto sob demanda). O pattern: agent orquestra, skill informa.
| Situação | Ferramenta | Por quê |
|---|---|---|
| PR no trabalho | Kiro | MCPs do ADO, agents |
| Investigar bug | Kiro | Grafana + Sentry + MySQL |
| Code review | Kiro ou Cursor | Mesmas skills |
| Artigo DEV.to | Cursor | Grok Bot Vitrine |
| Orquestrar tarefas | Cursor (Grok Bot) | Chefe de gabinete |
| Consulta rápida fora do PC | Grok Bot (celular) | Acesso remoto aos MCPs |
| Estudar pra faculdade | ChatGPT | S3 bot |
| Mentorias | ChatGPT | Planos, materiais |
| Planilhas | ChatGPT | Canvas, Sheets |
A regra: trampo → Kiro. Dev pessoal → Cursor. Vida → ChatGPT. Fora do PC → Grok Bot mobile.
Nem tudo virou padrão:
| Tentei | Por que não ficou |
|---|---|
| Embeddings | Overhead, drift, difícil debugar |
| Mais de 3 agents | Latência e custo. Passei de 6 pra 3 |
| Serena + Graphify juntos | Dois code-read tools = confusão |
| ChatGPT pra trabalho | Sem MCP, virou cópia/cola |
| Jarvis como harness principal | Em construção ainda |
| Grok Bot pilotando UIs | Não existe API |
O pattern: começo ambicioso, corto quando o custo supera o benefício.
Escolhe um vault: Logseq, Obsidian, pasta de markdown. Git-versioned é bônus.
Define scopes: ops, carreira, pessoal. Cada scope tem um hub.
Compartilha skills: aponta Cursor e Kiro pra mesma pasta.
Configura MCPs: começa com Jira ou GitHub.
Limita agents: 3 é suficiente.
Separa pessoal de trabalho: não mistura harnesses.
Documenta o que não funcionou: evita repetir erro.
Checklist mínimo pra semana 1:
[ ] Criar pasta `~/vault/` com 3 hubs: ops/_hub.md, carreira/_hub.md, pessoal/_hub.md
[ ] Instalar MCP do Jira ou GitHub no Cursor
[ ] Criar 1 skill em `~/.cursor/skills/` (pode ser só o contexto do projeto)
[ ] Definir regra: "trabalho = IDE X, pessoal = IDE Y"
[ ] Usar uma semana e anotar o que não funcionou
Gists relacionados:
A pergunta "qual IDE com IA você usa?" está errada. A pergunta certa é: "como suas ferramentas de IA conversam entre si?".
Se não conversam, você está pagando por ilhas.
Qual é o primeiro passo que faz sentido pra você — vault unificado, skills compartilhadas, ou MCPs?