audit-verification
Um agente termina uma task e diz “pronto — os testes passam.” Ele nunca rodou.
Ou escreve código que chama uma função que ninguém definiu. audit-verification
é o sinal que pega exatamente isso: uma conclusão alegada sem o trabalho ter sido
verificado.
O que resolve
O Octopus já guarda dois dos três jeitos do “pronto” de um agente ser mentira:
- o bloqueio sintático (o bundle
guardrails) barra código sem formatar, sem tipo ou com segredo — mas só no commit, e um agente pode parar sem commitar; - o sinal semântico (
audit-grounding) sinaliza convenções inventadas e fatos de domínio sem suporte — mas julga significado, não se o trabalho rodou.
Sobra a terceira lacuna: alegou pronto sem rodar. O type checker pegaria uma
chamada a uma função inexistente — mas só se for de fato invocado.
audit-verification é o lado do tripé que pergunta “isto foi verificado?” e
relata quando a resposta é não.
Como resolve
O design mantém o custo recorrente em zero.
- Um Stop hook em bash puro (
verification-check) roda no fim de toda task — sem LLM, sem tokens. Num diff de código, varre o transcript da sessão por evidência de execução (umtest/build/typecheckrealmente rodou?), detecta referências a arquivo inexistente de forma determinística, e enfileira uma proposal em.octopus/proposals/só quando o trabalho parece não-verificado. - O julgamento fuzzy
unverified-completion-claim— comparar o que a sessão alegou contra o que de fato rodou — é esta skill, rodada sob demanda via/octopus:review-proposals, no tier de modelo mais barato. Confrontar uma alegação com evidência é mecânico, não raciocínio.
É signal-only — nunca bloqueia commit, task ou merge. O gate sintático já bloqueia; isto revela a lacuna e deixa a decisão com você.
Uso
O gatilho é automático — o Stop hook verification-check enfileira uma proposal
*-verification.md sempre que uma task termina com trabalho não-verificado. Você
chega na auditoria pela fila de proposals:
/octopus:review-proposalsNão há chamada de LLM por task: o hook é determinístico, e a skill só roda quando você revisa a fila.