Sabe em que tela você está
A ponte publica a aplicação, a URL, a rota e o framework a cada navegação — sem recriar a conversa. Você para de escrever "estou na tela de cadastro, na aba de endereço, com o formulário já preenchido": o agente já sabe.
Copiloto na aplicação
Você está na aplicação, olhando o bug. O agente está noutra janela, cego — e o trabalho vira descrever em prosa o que está bem na sua frente. A ponte do Spaccy roda dentro da sua aplicação em desenvolvimento: o copiloto passa a ver a tela, o erro e o elemento que você apontou, sem você sair de lá.
Só em desenvolvimento, por construção — nenhum símbolo da ponte sobrevive ao build de produção, e isso é verificado por teste no artefato gerado.
O que o agente passa a enxergar
Metade de uma conversa com um agente é reconstruir, em texto, o que já está na tela. Esse pedaço desaparece.
A ponte publica a aplicação, a URL, a rota e o framework a cada navegação — sem recriar a conversa. Você para de escrever "estou na tela de cadastro, na aba de endereço, com o formulário já preenchido": o agente já sabe.
Erros de console e requisições que voltaram 400 ou 500 na janela corrente chegam junto com a sua pergunta, com o stack preservado. O ciclo de copiar o erro do DevTools, colar no chat e torcer para não ter cortado a linha que importava simplesmente some.
Recarregar a aplicação — ou o hot reload disparar sozinho — reanexa a mesma sessão pelo id, com as mensagens e as aprovações pendentes intactas. Nenhuma sessão órfã, nenhum contexto reconstruído do zero porque você salvou um arquivo.
Do pixel ao arquivo
A pergunta que consome mais tempo em base grande não é como consertar — é onde isto é gerado. A ponte responde do lado da tela.
Um overlay de seleção deixa você clicar no elemento — e as setas ↑ ↓ sobem e descem na hierarquia quando o que você quer é o contêiner, não o botão. Até dez elementos podem ir juntos no mesmo turno, identificados um a um.
Quando o projeto tem o plugin de build, a origem vem com arquivo, linha e coluna. Sem ele, a busca desce para outras duas camadas de pistas e devolve candidatos ranqueados — cada um com o seu grau de confiança e a evidência que o sustenta.
O painel diz literalmente que são hipóteses ranqueadas e que o agente confirma lendo o arquivo. Nenhum candidato é apresentado como verdade — o que evita a pior falha desse tipo de ferramenta: apontar o arquivo errado com convicção e mandar o agente reescrevê-lo.
Da tela para o resto do harness
A partir do elemento apontado, a ponte percorre o caminho inverso — do arquivo de volta para os artefatos que o citam — e traz a proposta, a especificação ou a decisão de arquitetura que produziram aquela tela. E se nenhum artefato citar o arquivo, ela diz que não encontrou, em vez de inventar um plausível.
Achou um bug enquanto navegava? O relatório sai dali mesmo, já com rota, elemento, erro de console e captura anexados — e entra no registro de pendências como item rastreado, com severidade e dono. O defeito deixa de depender de alguém lembrar de abrir o ticket depois.
Antes de enviar, o painel mostra exatamente o que vai para o agente, com senha, token e cabeçalho de autorização já substituídos por [redacted]. Se algo ali não deveria sair, você remove o elemento antes de mandar. A revisão é sua, e acontece antes — não depois.
Quando o agente age
Um agente que clica e digita na sua aplicação é útil e é perigoso, nessa ordem. Por isso a atuação nasceu fechada: cada trava abaixo é código, não recomendação.
O agente pode clicar num elemento, preencher um campo e navegar para uma rota. Mais nada. O vocabulário é fechado no protocolo e verificado por teste dos dois lados — comando fora da lista é recusado por desenho, não por esquecimento de tratar o caso.
click · fill · navigate-route
Toda ação abre um pedido no painel com a ação, o alvo, o valor e a rota, e expira sozinha se você não decidir. O botão de "sempre permitir" não existe deliberadamente: o aviso na tela é que a ação não é desfeita por git, e é justamente por isso que ela não pode ser autorizada em lote.
Permitir 1x · Recusar
Se a origem da aplicação não for loopback, o comando é recusado — e essa recusa não tem override, nem por configuração, nem por permissão de administrador. O agente não age numa aplicação publicada porque não existe caminho de código que o permita.
Interromper o canal é ação sua, do lado da aplicação. Cortado o canal, todo comando que chegar depois é recusado automaticamente. E campo que pareça senha, token ou segredo é recusado como alvo antes mesmo de o pedido aparecer.


Como entra na sua aplicação
Um comando instala, verifica e desinstala. A desinstalação devolve o arquivo ao byte exato de antes, provado por checksum — não é "deve ter voltado ao normal".
Num projeto Vite, a ponte entra como plugin — e é esse vetor que habilita a ancoragem mais precisa, com arquivo, linha e coluna. A instalação é verificada de verdade: o motor carrega a configuração resultante e prova que o plugin está lá.
Quando não dá para tocar o projeto — outro framework, repositório de terceiros, política de não alterar arquivos — a ponte entra por um proxy à frente do dev server, injetando o carregador nas respostas HTML e repassando o hot reload intacto. Zero arquivos tocados no seu repositório.
Rodar duas vezes não duplica nada, e o motor recusa instalar quando não consegue provar mecanicamente o resultado — nesse caso ele indica o proxy, em vez de deixar uma instalação pela metade que só aparece quando você for usar.
# dentro do seu agente de IA:
> /bridge install --app web --vector vite
> /bridge status --app webPeça acesso antecipado e leve o copiloto para dentro da aplicação que você já está construindo.