A IA propõe; regras e humanos decidem
O lab 11 compilou, testou, escaneou, assinou e liberou o BoxOffice por trás de um canary. O lab 12 colocou um modelo no produto. Onde um modelo pode ajudar no pipeline — e onde ele nunca deve decidir?
pull_request
ai-tests
mvn verify
v*
llm.py
complete_json(system, user, schema)
dict
qwen2.5-coder
output_config.format
O system estável (instruções + CONVENTIONS.md + ADRs) vai para o cache; o user volátil (diff, log) é dado não confiável.
CONVENTIONS.md
L21 + ...
file, line, severity, category, confidence, title, explanation, suggestion
minor
low
event: COMMENT
Execução do golden set feita ao escrever o lab: 5 reviews com claude-opus-5-5 ≈ US$ 0,06 no total.
claude-opus-5-5
>
>=
return 0
Problema do oráculo: um teste gerado verifica o que o código faz. Se a reserva expira em 8 min em vez de 10, o teste agora protege o bug.
fix
contents: read
actions: read
open-pr
contents: write
pull-requests: write
git apply
--bare -p
--allowedTools "Read,Edit,Write,Bash(mvn -B *)"
--permission-mode dontAsk
--max-turns
--max-budget-usd
src/
@Test
ai-fix/<sha8>
concurrency
!startsWith(head_branch, 'ai-fix/')
workflow_run
GITHUB_TOKEN
A transcrição do agente é enviada sempre — você a lê mais quando o agente falhou.
git log previous..tag
#PR
Que erro a verificação de ancoragem não consegue pegar?
pull_request_target
Pwn request: pull_request_target + checkout do head do PR + executá-lo = o fork fica com os seus segredos.
run: ... "${{ github.event.pull_request.title }}"
env:
<untrusted>
.github/ai/**
Fixe actions de terceiros num SHA (tj-actions/changed-files, março de 2025). Faça lint com actionlint e zizmor.
40 comentários: 12 , 18 . Vira portão?
Roteiro: cliente compartilhado; (1) review de PR; (2) testes avaliados por testes de mutação; (3) agente de correção; (4) release notes; (5) canary explicado; (6) segurança; (7) meça.