PR Diff Red-Team Gate
O fluxo completo que roda quando um pull request encosta em um artefato de prompt observado. A GitHub App recebe o webhook pull_request, parseia o .doesitdefend.yml do repo, deriva as categorias OWASP que o diff de fato toca, roda uma execução com escopo do diff, compara contra a baseline mais recente no mesmo alvo (dentro do TTL de 30 dias) e devolve check run + comentário idempotente no PR. O concept de CI Integration trata da ferramenta (CLI + Action); este concept trata do fluxo.
Pontos-chave
- Escopo do diff: só rodam as categorias OWASP cujos probes encostam nos arquivos mudados. PR só de README dispara zero minutos de scan.
- Consciente de baseline: regressões são computadas contra a execução anterior no mesmo alvo. Alvo novo recebe `no_baseline` (informativo, nunca bloqueia).
- Idempotente: amend / force-push reescreve o check run + comentário em vez de empilhar.
- Schema com padrão: `llm_config.scenarios` cai pras 10 categorias OWASP quando omitido, então o manifest fica enxuto.
01
Modos de veredicto
- regression (padrão): falha o build só quando o score de postura cai além de um limiar material (configurável; ±5 pontos por padrão).
- findings: falha o build sempre que qualquer descoberta nova aparece, independente da comparação de baseline.
- never: modo consultivo; check sempre passa, comentário carrega o veredicto pra revisão.
02
O que o PR vê
- Check Run do GitHub no head commit com título de uma linha e summary em markdown.
- Comentário no PR com as categorias OWASP selecionadas pelo diff, evidência por descoberta e link pro evidence pack completo.
- Se o gate dá erro (manifest inválido, alvo inacessível, timeout), o check run fica em `neutral` pra não emperrar o build.