Skip to content

ADR 059 — A submitted verdict names the task it judged

Status

Accepted. Extends 045. Fixes #951.

Context

A pre-execute judge passed a proposal while explaining a decision record for another project's interface. Nothing in its answer identified the subject. Confident prose is not evidence that a verdict applies to the current task.

Decision

Every judge answering through submit_verdict receives the task identifier and must return it in the required string argument task_id, alongside severity and justification. The live tool boundary compares it exactly with context.task.id, in both pre-execute and post-execute evaluation, including acceptance judges and plugin-tool judges. No trimming, case folding, identifier coercion, or prose relevance scoring is performed.

An omitted or different identifier is an unusable verdict. Return the existing error=True, severity="blocker" result, naming the judge and the expected and received subject (or its omission) in the justification. The existing run payload and validation audit records carry that reason, and policy halts as validator_error. It is not a warning, a criterion finding, a tool-access refusal, or input for coder recovery or spec-authoring retries. Do not apply tool_access_missing from an answer rejected for its subject: one shortfall must not be handled twice.

The check terminates the judge call rather than soliciting a replacement verdict. An exact match preserves the previous severity, justification and tool-access handling. Criteria, phases, tool grants, caps and quorum policy are unchanged. Single-completion JSON judges are outside this tool contract. Cache keys and stored records remain unchanged; cache provenance is separate work and this decision applies to newly submitted verdicts, not cache hits.

Consequences

A favourable answer about an unnamed or different task cannot approve coder dispatch. Operators see the reason on the same error surfaces as other unusable verdicts. Existing deterministic judge fixtures must echo the task identifier just as a real judge must.

Alternatives

Prose similarity scoring was rejected: it is nondeterministic and changes the meaning of judgement. A new severity or retry stage was rejected: the existing validator-error contract already fails closed without charging unrelated work.