AUR-523: corpus multilinguagem mede o recall do gate real
Card: .board/cards/backlog/AUR-523.md. Estende o benchmark do AUR-511
(docs/benchmark.md).
Contrato
- AC-001: o harness compila e executa o binário real; veredito e achados vêm
do registro de auditoria e do SARIF que ele escreve. O controle de
proveniência (
CheckOutputProvenance) entrega ao binário uma fixture que acusa um achado em arquivo fora do diff; o binário o descarta. Um leitor fiel ao binário vê 0 achados; um leitor de fixture vê 1 e a checagem falha. MUT-001 troca o leitor porReadFixturee exige essa falha. - AC-002: corpus em
tests/benchmark/testdata/multilangcom 8 linguagens, defeitos rotulados (arquivo, linha, regra) e casos limpos;manifest.jsoncom sha256 por caso e do conjunto;VerifyMLCorpusrecusa divergência. - AC-003: relatório por linguagem (JSON e Markdown) em
tests/benchmark/outcom recall, precisão, Wilson 95% e "aprovado com defeito presente". - AC-004: o relatório não contém data, caminho nem duração e grava
corpus_sha256epolicy_sha256; duas rodadas e o arquivo versionado são idênticos byte a byte.
Decisões
- Provider fake: fixture derivada do rótulo;
simulated_model(hit, miss, silent, false_alarm) é dado do caso. É prova do harness, não nota de modelo. - Aprovado = saída 0 e
gate.decision == "pass"no registro de auditoria. - Detecção = achado no arquivo do defeito, até 2 linhas, com a mesma classe de
regra (id depois de
#ou/). Outra classe no mesmo lugar é ruído. Achados de mesma classe e linha vindos de duas origens contam uma vez. - O repositório de cada caso é construído em objetos git soltos (base com só o
README, head com o arquivo), sem precisar do binário
git. - A política vem de diretório fora do repositório do caso (regra do AUR-518).
Fora de escopo
Comparação com produtos hospedados; modelo pago no CI; rodada com modelo real.
Observação sobre o gate
A análise estática embutida (analysis/*) acha SQL injection em Java e Python
mesmo quando o modelo falso se cala, mas o gate de política só reprova achados
de seção de skill da política; o caso fica "aprovado com defeito presente".