Copiloto na aplicação

O copiloto entra na tela que você está construindo

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

O contexto deixa de ser digitado

Metade de uma conversa com um agente é reconstruir, em texto, o que já está na tela. Esse pedaço desaparece.

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.

Vê o que quebrou, com a pilha inteira

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.

A conversa sobrevive ao reload

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

Aponte o elemento; a ponte procura o código

A pergunta que consome mais tempo em base grande não é como consertar — é onde isto é gerado. A ponte responde do lado da tela.

  1. 01

    Aponte na 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.

  2. 02

    A ponte procura a origem em três camadas

    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.

  3. 03

    Você vê a confiança, não uma certeza inventada

    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 tela ligada à decisão que a produziu

Explique esta tela

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.

Reporte do lugar em que o defeito está

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.

Valores sensíveis não saem da página

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

Ele pode mexer na aplicação — sob quatro travas

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.

Três comandos, e só três

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

Cada comando pede autorização — e não existe "permitir sempre"

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

Só em ambiente local, sem exceção

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.

O botão de corte fica na página, não no painel

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.

Cartão de aprovação pedindo autorização para preencher um campo da aplicação, com um botão para recusar e outro para permitir uma única vez.Cartão de aprovação pedindo autorização para preencher um campo da aplicação, com um botão para recusar e outro para permitir uma única vez.
O cartão real — a mesma tela que aparece na sua aplicação quando o agente pede para agir.

Como entra na sua aplicação

Dois caminhos — um deles não toca o seu repositório

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".

Plugin de build

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á.

ganhoa ancoragem fica precisa

Proxy universal

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.

ganhozero arquivo tocado

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.

Peça acesso antecipado e leve o copiloto para dentro da aplicação que você já está construindo.