Skill de agente InvariantEval
InvariantEval impõe os invariantes que você declarar. Ele não torna um agente "correto" e não reescreve a saída para você. A única afirmação honesta: seu agente executa suas regras de segurança declaradas em toda saída e se recusa a finalizar quando um campo bloqueado foi preenchido automaticamente sem confirmação humana.
Quando usar esta skill
Use antes de finalizar qualquer saída JSON estruturada (ou similar) quando:
- O domínio possui campos bloqueados declarados (aprovado/reprovado, status de conformidade, etc.)
- Você tem (ou precisa de) um
suite.yamlcomfield_policiese asserções de invariante - Um humano deve ser o dono de certos campos e o modelo não deve fornecê-los voluntariamente
Não use esta skill para adivinhar invariantes. Sua tarefa é tornar a declaração deles sem atrito, não inferi-los.
Fluxo de trabalho
1. Localize ou crie uma suite declarada
- Encontre um
suite.yamlexistente no projeto, ou - Copie
suite.template.yamlpara o projeto e peça ao usuário para preencherfield_policies,equivalence_classeseassertions.
Nunca invente campos bloqueados sem declaração do usuário na suite.
2. Execute a verificação de invariante antes de finalizar
Você tem a saída parseada bruta do modelo e a saída final pretendida. Execute:
python agent-skill/invarianteval/check.py \
--suite caminho/para/suite.yaml \
--case-id agent-check \
--model-parsed /tmp/model_parsed.json \
--final-output /tmp/final_output.json \
--human-confirmed /tmp/human_confirmed.json
Escreva os arquivos JSON a partir do turno atual. --human-confirmed é opcional (use {} quando nada foi explicitamente confirmado).
A suite deve conter um caso com o --case-id fornecido (padrão: agent-check) e as asserções que você deseja impor.
3. Se a verificação falhar: PARE
- Não finalize, faça commit ou apresente a saída como concluída.
- Exiba a falha exata do invariante na saída do CLI (ex.:
never_auto_filled[pass_fail_result]). - Exija uma das seguintes ações:
- O usuário edita a saída final para remover ou corrigir a violação, ou
- O usuário confirma explicitamente o campo (
human_confirmedno fixture), ou - O usuário atualiza a suite declarada se a regra estava errada (raro).
4. Se a verificação passar: prossiga
Finalize somente após código de saída 0.
Alternativa MCP
Se o ambiente tiver o extra [mcp] instalado, prefira a ferramenta MCP check_invariants para as mesmas entradas. Veja docs/mcp.md.
Enquadramento honesto (obrigatório)
- Diga: "invariantes declarados", "se recusa a finalizar", "campo bloqueado preenchido automaticamente"
- Nunca diga: "autocorreção", "torna o agente correto", "inferir invariantes automaticamente"