You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[P3][detection][seed] Faixa de revisão como conceito de primeira classe: handoff opt-in para decisor externo, sem persistir valor e sem LLM no caminho crítico #2023
U: U3 — sem pressão de prazo. G: G2 — o desenho errado (persistir ou fazer hash do excerto) vira vazamento de PII; por isso o entregável é o contrato, não código. Depende de:#1504 (schema do envelope), #1451 (achado 4: identidade da pilha no recibo), #1452 (calibração: a faixa vem de dado, não de palpite).
Contexto
O Boar já tem uma zona "não sei", espalhada por vários detectores (verificado por gh api no origin em 30/set):
medium_confidence_threshold (padrão 40 em core/detector.py);
fuzzy de nome de coluna entre fuzzy_min_confidence (25) e fuzzy_max_confidence (45), só se pedido em config e com o rapidfuzz instalado;
hint de protótipo de embedding, que o próprio módulo descreve como "só na faixa borderline abaixo de MEDIUM" (core/embedding_prototype_hint.py);
ML-only HIGH limitado a MEDIUM em contexto de entretenimento, legenda e OCR (docs/SENSITIVITY_DETECTION.md, limite 70).
Cada hint marca "confirme manualmente". Falta: (a) um conceito nomeado de faixa de revisão; (b) um contrato para que um decisor externo e opt-in ajude nessa faixa; (c) prova de que, sem ele, nada muda.
Handoff em duas classes, ambas opt-in e default OFF:
Classe M (só metadados): nome de coluna normalizado, tipo, contagens, scores e padrões disparados. Serve a consumidores cegos a valor bruto. A v1 é só esta.
Classe R (excerto real): exige grant assinado e escopo por coluna; o excerto amostrado fica só em memória, vai por pipe local a um processo efêmero, sem persistência e sem rede. Fora da v1 (recomendação); exige decisão explícita do operador e revisão de segurança.
Retorno é hint, nunca veredito: mesmo padrão dos hints existentes. Só pode elevar a confiança ou anotar, dentro da faixa, com o rótulo "confirme manualmente". Nunca rebaixa um achado (FN-first). Registra a identidade do consumidor e a versão do contrato.
Privacidade do registro:não gravar hash do excerto. Identificadores como CPF têm pouca entropia, e o hash é reversível por força bruta. Gravar só ids de amostra, contagens e o hash do envelope de decisão.
O Boar não embute nenhum modelo. Implementações do decisor (regra determinística, NER, modelo pequeno) ficam fora e são escolha do operador.
Fora de escopo
Implementar o decisor; escolher modelo; mudar limiares.
Critérios de aceite
Criar docs/plans/PLAN_REVIEW_BAND_HANDOFF.md com <!-- plans-hub-summary: ... -->.
🤖 Registrado por Claude (Opus 4.8, T14, auditor RO), a pedido do operador em 30/set/2026. Verificado por gh api no origin; nada executado. Implementação: Cursor. Tom recomendatório.
U: U3 — sem pressão de prazo.
G: G2 — o desenho errado (persistir ou fazer hash do excerto) vira vazamento de PII; por isso o entregável é o contrato, não código.
Depende de: #1504 (schema do envelope), #1451 (achado 4: identidade da pilha no recibo), #1452 (calibração: a faixa vem de dado, não de palpite).
Contexto
O Boar já tem uma zona "não sei", espalhada por vários detectores (verificado por
gh apino origin em 30/set):medium_confidence_threshold(padrão 40 emcore/detector.py);fuzzy_min_confidence(25) efuzzy_max_confidence(45), só se pedido em config e com orapidfuzzinstalado;core/embedding_prototype_hint.py);docs/SENSITIVITY_DETECTION.md, limite 70).Cada hint marca "confirme manualmente". Falta: (a) um conceito nomeado de faixa de revisão; (b) um contrato para que um decisor externo e opt-in ajude nessa faixa; (c) prova de que, sem ele, nada muda.
Doutrina que o contrato não pode quebrar
docs/SENSITIVITY_DETECTION.md; TECH_GUIDE, seção "Detection stack vs generative LLMs").docs/SENSITIVITY_DETECTION.md).Proposta (síntese do Claude, a confirmar)
git grep -n), derivada da calibração da audit(detection-validity): ground-truth corpus, per-engine ablation, calibration & provenance (promote deferred plan) #1452 (taxa real de positivos por banda de score), não de números fixos.review_bandmais o motivo (quais detectores estão na faixa, com os scores por motor nomeados na audit(detection-validity): ground-truth corpus, per-engine ablation, calibration & provenance (promote deferred plan) #1452), sem o valor.degradation_modenomeado (mesma linha da audit(reproducibility): close the DL reproducibility contract & record pipeline identity in evidence #1451 e da audit(detection-validity): ground-truth corpus, per-engine ablation, calibration & provenance (promote deferred plan) #1452), nunca silencioso.Fora de escopo
Implementar o decisor; escolher modelo; mudar limiares.
Critérios de aceite
docs/plans/PLAN_REVIEW_BAND_HANDOFF.mdcom<!-- plans-hub-summary: ... -->.python scripts/plans_hub_sync.py --write.docs/plans/PLANS_TODO.md.git grep -n 'medium_confidence_threshold', ligada à calibração da audit(detection-validity): ground-truth corpus, per-engine ablation, calibration & provenance (promote deferred plan) #1452.degradation_modefica registrado.docs/CLAIMS.ymlatualizado se houver claim novo; README e TECH_GUIDE sem afirmar LLM.Fila e PR
Uma issue; no máximo 1 PR (plano, schema e testes); nunca uma PR por item. Prioridade e milestone são sugestão; o sequenciamento é do operador.
Relacionado: #1504, #1451, #1452, #1169, #1104.
🤖 Registrado por Claude (Opus 4.8, T14, auditor RO), a pedido do operador em 30/set/2026. Verificado por
gh apino origin; nada executado. Implementação: Cursor. Tom recomendatório.