Sobre o projeto
dejavu-gates é uma camada de memória entre sessões para agentes de codificação de IA. Os agentes repetem os mesmos erros porque esquecem entre sessões, e regras em markdown não resolvem isso. Esta ferramenta detecta mecanicamente falhas recorrentes em chamadas de ferramentas (bash, read, edit, write, glob, grep) e as transforma em bloqueios: um lembrete na próxima tentativa, um bloqueio rígido em caso de reincidência na mesma sessão.
Um motor, vários hosts. Ele roda como plugin OpenCode e como CLI de hook-handler para Claude Code, Codex CLI, Gemini CLI, Cursor, Copilot CLI e Crush. Escrito em TypeScript e executado com Bun, distribuído como código-fonte sem etapa de build.
Como funciona: uma chamada de ferramenta que falha recebe uma assinatura normalizada (caminhos, números e hashes removidos), a chave do padrão é contada entre sessões e, após 3 falhas em 2 sessões distintas, um bloqueio é promovido. A próxima tentativa recebe um lembrete [dejavu] com a chamada abortada; uma nova tentativa que falha novamente dispara um bloqueio rígido. Comandos de diagnóstico permanecem apenas como lembrete, então a chamada é executada e o lembrete acompanha a saída com falha como uma NOTA uma vez por sessão.
As escolhas de design incluem: lembrar primeiro e bloquear apenas em repetição (bloqueio puro convida a contornos como trocar de gerenciador de pacotes); mensagens de bloqueio carregam uma CORREÇÃO e EVIDÊNCIA em vez de uma proibição simples; apenas chaves de padrão mecânicas, sem classificação por LLM no caminho crítico; dois escopos, bloqueios específicos do repositório no repositório e hábitos no nível do agente na configuração do usuário; bloqueios expiram após 60 dias sem recorrência; e uma métrica de recorrência pós-bloqueio para verificar se os bloqueios realmente reduzem repetições.
A aplicação tem feedback negativo. Um bloqueio que continua recorrendo ou sendo explicitamente contornado se rebaixa para observação e não se re-promove mecanicamente; um humano pode reaplicá-lo. Os bloqueios também se curam: três sucessos consecutivos correspondendo a um bloqueio aplicado o aposentam para observação, e um bloqueio lembrado muitas vezes sem reincidência se aposenta como ensinado.
Detalhes de segurança e robustez: apenas comandos bash não-diagnósticos podem se tornar bloqueios rígidos; sondagens de arquivo permanecem em observação; assinaturas sem identidade residual podem apenas observar; o CLI de hook falha aberto, retornando uma decisão vazia e saída 0 em payloads malformados ou erros internos. Segredos são removidos antes da persistência, caracteres de controle de terminal são eliminados, e os armazenamentos são reconciliados e reparados na inicialização com arquivos corrompidos colocados em quarentena. A concorrência usa lockfiles com escritas tmp+rename e retry em erros do Windows, e a cadeia de escalonamento de lembrete para bloqueio é persistida no bloqueio para que múltiplas janelas e harnesses a compartilhem.
A instalação está disponível via npx, canais de plugin nativos para vários harnesses, GitHub Packages, ou a partir de um clone com um script de instalador que mescla entradas de hook de forma idempotente na configuração de cada harness. A observabilidade inclui um script doctor, um script analyze, um comando /dejavu status e uma variável de ambiente de debug.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.