Skip to content

ADR 0156: require delegated page-review coverage

Date: 2026-09-02 Status: Accepted

The page-review pack separated browser capture from model critique, but its final review contract still told the coordinating agent to open every primary tile. findings.json recorded one free-form reviewer string, and resolvePackVerdict could return pass after machine findings were dispositioned without evidence that an independent review subagent had opened any tile.

This made the intended separation unenforceable. A coordinating agent could perform the image reads itself, describe them as manual inspection, and still produce the same verdict as a fully delegated review.

Change the skill and documentation only. Rejected because the missing review is machine-detectable. A prose-only rule would allow the same invalid pass whenever an agent skipped or misunderstood the delegation step.

Treat the judge’s tile calls as delegated review. Rejected because the judge is the first-pass critique source. It cannot independently confirm its own claims, and its anonymous calls do not provide named assignment or completion evidence.

Let the coordinating agent inspect uncovered tiles as a fallback. Rejected because that recreates the ownership problem. When a review subagent is unavailable or misses an assignment, the honest outcome is incomplete.

Every primary_tiles entry in evidence/inspection-plan.json must be opened at native pixels by at least one completed review subagent. The coordinating agent assigns the tiles, serializes reports, records dispositions and findings, and makes the final judgment without opening tile images itself.

harnery-page-review-findings/v2 adds delegated_reviews. Version 3 requires each record to name the review subagent’s model as well as its assigned_tiles, completed_tiles, and complete or incomplete status. Tile review uses the first model available from GPT-5.6 Luna, Composer 2.5, then Haiku 4.5. No other model satisfies the contract. harn review-pack reviews add validates and writes those records.

resolvePackVerdict now reads the inspection plan, compares required primary tiles with completed review records, and returns incomplete while any tile is uncovered. harnery-page-review-verdict/v2 records the total, reviewed count, and uncovered tile ids. A confirmed defect still takes precedence and returns fail.

The focused review-pack library and CLI suites contain regression coverage for the new schema, coverage command, uncovered-tile outcome, and completed-review pass path. The generated review.md, public CLI documentation, and host Page QA instructions all distinguish first-pass judge calls from the independent review subagents.