Change: Blake's Deep Read judge now rules one bounded candidate batch per AgentCore invocation and returns that batch's identity with its rulings.
run.completed.{
"pass_kind": "judge",
"batch_id": "judge-batch-7",
"candidates": ["candidate-41", "candidate-42"]
}
document.deep_read.rulings {
"batch_id": "judge-batch-7",
"rulings": ["ruling-for-41", "ruling-for-42"],
"summary": "Batch summary written after the batch rulings."
}
The output validator requires every supplied candidate exactly once and rejects unknown, missing, or duplicate candidate references. Stable ruling IDs include the batch identity, so independently resumed batches cannot collide.
The judge prompt names the trusted batch identity outside the hostile-data fence. Candidate text remains fenced data. The judge must not rule candidates absent from the supplied batch.
PYTHONPATH=agents/registrar .venv/bin/python -m pytest agents/registrar/tests/test_registrar_deep_read.py -q PRAMAAN_FUNCTIONS_ROOT=/path/to/pramaan-functions PYTHONPATH=agents/registrar \ .venv/bin/python -m evals.deep_read_functions_contract_eval
The offline contract fixture sends only a bounded subset to the judge and validates its batch-tagged effect through pramaan-functions' real dispatcher.