▮token-guard GitHub ↗
entregável v3 · após R1–R6 implementadas

Uma sessão longa, seis camadas de economia — cada uma no momento exato em que o desperdício acontece.

Hoje (v2.2) o kit bloqueia a entrada e trunca a saída. Com as seis fases implementadas, ele passa a cobrir o ciclo inteiro da sessão: releitura redundante, garimpo que merece índice, reescrita por falta de instrução de reuso, resposta verbosa sob demanda, medição com dado real e o contrato que sobrevive à compactação.

assinatura · ciclo de vida de uma sessão real

Role a sessão. Veja onde cada fase entra.

contexto legítimo economia aplicada alerta / decisão
sessão agêntica · 2h · repo de 215 mil arquivos cada marcador é um evento real típico
COMEÇE Clique num marcador acima para ver o evento e qual camada atua.

Sequência baseada nos eventos mais comuns do replay real (65 sessões Claude Code + corpus Copilot). Vereditos = comportamento do decide()/postProcess conforme spec aprovada.

as seis fases

O que cada uma trava no produto.

R1 dedupe de leitura spec ✓

Leitura idêntica repetida na mesma sessão vira stub: "conteúdo idêntico ao anterior — N chars não relidos". Zero falso positivo: só age quando o conteúdo é literalmente igual.

camada A pós-execução ON · camada B advisory opt-in
economia: bytes integrais da releitura

R2 sensor de garimpo → memória

3+ buscas amplas na sessão? O status recomenda indexação persistente (mercado: ~120× na exploração estrutural). Indexer já configurado? A dica se cala.

superfícies: token_guard_status (plugin/MCP/cli)
economia: indireta, multiplica com o uso do índice

R3 anti-boilerplate no contrato

Duas regras densas na quando:codigo: extração vai ao lugar canônico e registra o caminho; decisão de arquitetura ganha registro datado — a próxima sessão lê o mapa em vez de refazê-lo.

custo: +71 tok/sessão (medido ≤ +80)
economia: saída — não reescrever o já escrito

R4 response_format nas tools MCP

Padrão Anthropic: enum concise/detailed nas 3 tools. Agente econômico pede concise e paga ~⅓. JSON/texto explícitos vencem a dica.

alvos medidos: audit −45% · check −60% · status −30%
custo fixo: ~90 tok de schema, amortizado na 1ª chamada

R5 replay com bytes reais

Fim da estimativa: pareamento tool_use↔tool_result por id mede os BYTES que entraram de verdade. P50/P90/P99/max, sidechain separado, TOKEN_GUARD e config warn/off falham loud.

corpus atual: 65 sessões · 8.197 chamadas
dado: baseline honesto para toda release futura

R6 contrato à prova de compaction

PreCompact zera o estado; o próximo prompt re-injeta sempre + gatilhos de evidência. Sessões longas mantêm as regras — antes, elas morriam na 1ª compactação.

custo consciente: ~180 tok por compaction
ganho: contexto curado nas sessões que mais duram
o quadro consolidado

Antes × depois, por frente.

~437k tokjá medidos no replay real (v2.2): economia líquida que os guards atuais fazem sozinhos
+R1/R4dedupe + concise atacam a maior fatia restante: releituras e respostas verbosas recorrentes
120×o mercado mede nisso a exploração via índice vs garimpo — R2 conecta o usuário a essa classe
0 estimativasR5 troca o teto de 25k pelos bytes reais do transcript — e vira termômetro permanente
94% FPponto de equilíbrio: os guards só deixam de valer se quase tudo for falso positivo (auditoria do replay diz que não é)
236 testes10 suítes verdes hoje; cada fase nova entra failing-first, como todas as anteriores
fila de implementação

Ordem planejada, specs aprovadas.

Fase Entregável Spec
R1Dedupe de leitura (2 camadas)aprovada · rev.4+fixes
R2Sensor de garimpo + recomendação de memóriaaprovada LIMPA
R3Anti-boilerplate no contrato (+71 tok medidos)aprovada LIMPA
R4response_format nas 3 tools MCPaprovada LIMPA
R6Contrato sobrevive à compactionaprovada LIMPA
R5Replay bytes reais (bench — fecha o ciclo de medição)aprovada LIMPA

Cada fase entra failing-first com gate próprio, como todas as anteriores. Specs completas em docs/plans/ do repositório.