🔄 O fluxo invertido
Todo mundo já passou por isso: você encara um bug de CSS — uma navbar vazando por cima do conteúdo, um iframe de vídeo cortado na borda, um modal que funciona no desktop e desmonta no mobile. Você descreve o problema para o agente e ele mergulha direto no código, edita três arquivos, roda o build... e a correção sai errada. Você descreve de novo, ele edita de novo, builda de novo — e agora quebrou outra coisa.
O fluxo tradicional de IA é de trás para frente: ele chuta mudanças de código primeiro e torce para o resultado ficar certo. Não é assim que um dev trabalha. Um dev abre o navegador, inspeciona o elemento, ajusta o CSS ao vivo, vê o resultado na hora — e só então escreve o código permanente. O Vibe Coding faz o seu agente trabalhar exatamente assim.
Toda correção é validada na tela antes de tocar no código.
Acaba o ciclo "editar → buildar → reverter → repetir".
Como um dev com o DevTools aberto ao lado do seu.
Foco em layout e bugs visuais — não em schema de banco.
📂 Confirmar o workspace
Antes de fazer qualquer trabalho, a skill obriga o agente a confirmar o repositório ativo. Ele detecta o diretório de trabalho atual e te pergunta, em alto e bom som, se é o projeto certo para a sessão. Nada de git, nada de browser, nada de edição até você confirmar. É um passo barato que previne um dano caro: mexer no projeto errado.
📂 O check de repositório
O agente detecta o caminho do workspace e te apresenta a confirmação como um hard stop. Algo assim:
Se você disser que o workspace está errado, ele para imediatamente e te instrui a reabrir o projeto correto antes de re-disparar o fluxo.
🔌 Nota de portabilidade
A skill foi originalmente desenhada para um ambiente com um tool de "hard stop" nativo (que bloqueia esperando o usuário). Em outros agentes esse tool pode não existir.
A lição vale igual: substitua a chamada por uma pergunta direta e pare de verdade — só prossiga após a resposta. O comportamento ("pare e espere") importa mais que o nome do tool.
Descobrir o diretório ativo automaticamente.
Exibir o caminho e travar até a confirmação.
Repo errado encerra o fluxo na hora.
Nenhuma ação destrutiva antes deste passo.
🌿 Branch-first & git safety
Confirmado o workspace, a próxima jogada é criar a sandbox antes de qualquer
análise. O agente verifica o git status; se houver
trabalho não commitado, ele pausa e oferece um backup local. Com a árvore limpa, pede uma descrição curta da
tarefa e imediatamente cria e troca para uma branch local. Você
experimenta sem medo: a main nunca é tocada.
# 1. Verifica se há trabalho não commitado git status # 2. (se sujo) oferece backup local antes de começar git add . && git commit -m "wip: backup antes do vibe" # 3. cria a sandbox ANTES de abrir o navegador git checkout -b vibe/fix-navbar-bleed
✓ O que FAZER
- ✓Criar a branch antes de inspecionar ou abrir o browser.
- ✓Oferecer backup do trabalho não commitado.
- ✓Nomear a branch pela tarefa:
vibe/fix-modal-ratio. - ✓Uma branch dedicada por correção.
✗ O que NÃO fazer
- ✗Editar na
mainoumasterdireto. - ✗Começar a mexer sem checar o
git status. - ✗Reverter arquivos em pânico se o linter reclamar.
- ✗Reaproveitar a mesma branch para várias correções.
Estado da árvore antes de qualquer coisa.
Trabalho não commitado vira commit local.
Sandbox isolada, criada imediatamente.
Experimentar à vontade sem afetar a main.
🌐 Navegador visível & injeção ao vivo
Agora vem a parte que dá nome à skill. O agente identifica a URL alvo — pode ser um dev server local
(http://localhost:3000) ou uma URL hospedada de staging/produção.
Se for local, ele sobe o servidor em background; se for hospedada, pula esse passo. Então dispara um navegador
automatizado visível, NÃO headless, na sua tela — você assiste a
automação acontecer ao vivo.
Com a página aberta, o agente inspeciona o DOM (te poupando de copiar/colar HTML) e injeta CSS/JS ao vivo para testar correções — sem editar nenhum arquivo do projeto. Ele tira screenshots dos ajustes e mostra para você. Alternativamente, gera um snippet de JavaScript puro para você colar no console do seu próprio navegador.
document.querySelector('.navbar')
.style.position = 'relative';
💡 Dica prática: recuperação de sessão
Se o navegador for recarregado (de propósito ou por acidente) e as injeções ao vivo se perderem, é simples: re-inspecione o DOM e re-aplique o CSS/JS. Nada de scratch files ou logs de injeção complexos — o caminho é manter o processo leve.
localhost com dev server, ou URL de staging.
Você assiste a automação na sua tela.
CSS/JS na página em execução, zero arquivo.
Prova visual do ajuste, mostrada a você.
⛔ Os hard stops
Esta é a alma da skill. São quatro portões de aprovação obrigatórios. O agente literalmente não consegue pular etapas: ele pausa e espera o seu "pode ir" em cada momento crítico. Seu código, suas regras. Cada portão tem uma fronteira clara e nenhum permite que o próximo aconteça sozinho.
Aprovação visual
No loop de troubleshooting
Depois de injetar a correção, o agente para e pergunta: "Como ficou? Quer iterar mais no design, ou estamos prontos para pensar a estratégia de código?". Aprovação aqui só libera ir para a estratégia — não aplica código.
Aprovação da estratégia
Antes de mexer no código
O agente busca no repositório onde os elementos são definidos e propõe a abordagem mais robusta (um _overrides.scss global? um componente React aninhado? uma utility do Tailwind?). Ele explica por quê e pede aprovação explícita.
Revisão do código
Depois de salvar os arquivos
Aplicadas as mudanças na branch local, o agente para e pede: "Revise o diff no painel de Source Control e confira no navegador antes do push". Quem decide se o código está bom é você, conferindo localmente — não ele.
Aprovação do push
Antes de qualquer comando git de envio
Só agora ele pergunta o remote de destino e confirma "pronto para commitar e dar push?". Cada push vai numa branch nova e dedicada — nunca direto na main.
🚫 Regra anti-steamroll
É estritamente proibido combinar passos numa só resposta. Frases como "vou esboçar a estratégia e aplicar de uma vez" ou "como você aprovou, já vou aplicando" são uma violação do fluxo.
Apresentar a estratégia e aplicar o código na mesma resposta quebra a regra. Cada passo exige sua própria aprovação explícita. Se o agente se pegar prestes a juntar os dois — ele para.
Visual · estratégia · código · push.
Aprovar um passo não libera o próximo.
Estratégia e aplicação, nunca juntas.
O usuário aprova cada momento crítico.
✏️ Persistir, revisar & encerrar
Com a estratégia aprovada, o agente traduz a injeção temporária do navegador em código-fonte limpo e permanente. Ele remove utility classes temporárias, console logs e gambiarras usadas no teste ao vivo. Repare na mudança de vocabulário: é "persistir na fonte", não "hardcodar". Só a correção final e perfeita vira código — o histórico do git fica limpo, sem uma dúzia de tentativas falhas.
⛔ Durante o "persistir": sem terminal, sem reverter
Neste passo o agente é proibido de rodar qualquer comando de terminal — nada de npm, npx, e nenhum comando git (nem git diff, nem git add). Ele apenas edita os arquivos e salva.
E se um compilador em background reclamar: não entre em pânico nem reverta (git checkout -- file). Deixe os arquivos como estão — o usuário cuida da compilação.
# Em PowerShell (Windows) NÃO encadeie com &&. # Rode um comando por vez: git add . git commit -m "Fix: navbar bleed-through on staging" git push origin vibe/fix-navbar-bleed
✅ Encerramento de sessão (obrigatório)
Depois do push bem-sucedido, a sessão de vibe coding está completa. O agente avisa que terminou e pede que você abra um chat novo para a próxima correção.
Por quê? Para evitar context bleed entre tarefas: um chat limpo previne conflitos de branch e confusão de contexto da correção anterior.
Limite de escopo: se você pedir nova arquitetura (ex.: um schema de banco) no meio de uma sessão de vibe, ele lembra gentilmente que Vibe Coding é para layout e bugs visuais, e recomenda um plano/tarefa padrão.
Código limpo, não "hardcode".
Linter reclamou? Deixa que o user resolve.
Compatível com PowerShell, sem &&.
Próxima correção começa do zero.
Exemplo de saída — uma sessão completa
Veja como o agente conduz a correção de um iframe de vídeo cortado dentro de um modal — do check de repo ao push, parando em cada portão.
git checkout -b vibe/fix-video-modallocalhost:3000/curso visível, inspeciona o .modal iframe, vê o corte na borda inferiormax-width: 680px no container com padding-bottom → screenshotVideoModal.jsx → propõe ajustar o max-width do wrapper lávibe/fix-video-modal🛠️ Exercícios práticos
Exercício 1 — Mapeie os portões
Pegue um bug visual real do seu projeto (navbar, modal, iframe). Escreva, em uma linha cada, o que o agente diria em cada um dos 4 hard stops. Isso treina seu olho para reconhecer quando ele está prestes a atropelar.
Exercício 2 — Prompt de disparo
Use este prompt copiável para abrir uma sessão de vibe coding no seu próprio agente:
Exercício 3 — Crie um SKILL.md rodável
Escreva sua própria versão enxuta da skill. Salve como vibe-coding/SKILL.md na pasta de skills do seu projeto e dispare-a pedindo uma correção visual. Adapte os tools de "hard stop" e "navegador" aos equivalentes nativos do seu agente.
🎯 Resumo do Módulo
vibe/ criada imediatamente; a main fica intocada.Próximo Módulo:
3.2 — Funnel Builder: um prompt, funil inteiro