Skip to content

challenge-resolve Handoff Supplement

Current challenge-resolve results set metadata.challenge_table_contract_version=2, use schema-2 loop evidence with one checked parent triage entry per raw reviewer finding, and declare metadata.challenge_scope as single or chunked under both candidate and canonical filenames; the chunked declaration binds literal chunks/chunks.json and chunks/results.json artifacts for a fresh coverage check. Each validated challenge row lists six severity cells and the weighted-score cell as literal old + new, including zero cells. Old means a currently open signature seen in any earlier completed round, even if it closed and reopened; new means a currently open signature first seen in this round. open and fixed-pending-verification count. State the legend beside the table. The shared validator binds every split, decision, and report path to the loop ledger. Use layout: challenge-history. Validated rows declare admission: validated and reconcile exactly with the canonical ledger. Completed unadmitted rows declare admission: advisory, a nonempty admission_reason, and Advisory N or Checkpoint N; checkpoint reports identify constituent reviewers. Advisory old/new counts and weighted arithmetic are descriptive only and never enter canonical completion, finding counts, or gate decisions. When no round validates but advisory history exists, show that history with the generated certification notice. Only an absence of completed history uses admission: unavailable, not-run and N/A cells. Store nonempty retained run-relative report paths in machine Evidence; render every current table without file paths in cells and list the paths below as - <item>: <file-path>, including paths that were mixed with other evidence prose. Render resource IDs in cells and linked resources below the table. Version 1 retains its strict existing reconciliation and byte-stable legacy rendering; obsolete totals-only layouts remain rejected. Historical JSON with earlier table formats remains readable as archive data but cannot validate current completion under either filename.

Challenger review starts in a fresh isolated process with frozen source and review criteria. Resolver reports stay with the parent. Candidate and canonical results must pass the same current challenge artifact checks; a filename cannot select archived completion rules.

Current candidate and canonical chunked coordinator validation requires a schema-1 manifest; A current chunked coordinator with a schema-1 chunk manifest copies its declared first-run or continuation origin into metadata.challenge_origin under both result filenames; a declared continuation requires prior ledger and coverage. It uses metadata.chunked_review equal to the current validated chunk_diff.py check --summary JSON for complete clean coverage or check-stopped --summary for partial coverage. Copy its runs array into final-handoff.json as child_runs; the validator binds exact order, result paths, score series, decisions, and stopped reasons to the live checker output. Complete clean coverage permits passing result and review gate with zero findings; stopped coverage requires failed result and review gate plus a remaining item and next step. The renderer lists every child and interaction path with its own score series beneath Results, without an aggregate score or coordinator reviewer receipt. Historical version-2 handoffs retain their saved rendering and do not require child_runs. In both states, the history layout row declares admission: unavailable; no advisory rows belong to a coordinator. The Results row is not-run | N/A in every numeric cell, decision chunk-only, evidence chunks/results.json; the coordinator has no own loop ledger or metadata.adversarial_loop. Caller completion and undeclared interaction judgment remain separate gates.