PR #2081 — A Conformance Suite That Names Adapter Drift Instead of Discovering It Live
PR #2081 — A Conformance Suite That Names Adapter Drift Instead of Discovering It Live
The Broader Goal at the End of the Previous PR
v0.24.0 still needs dispatch to be trustworthy across every registered
harness. The GOVERNS preflight now names a missing --issue/--pr/--story
before #1990 can hard-fail. The remaining gap called out in the three-lens
review was adapter quality: receipt markers, cost attribution, and failure
classification were only checked live, after a regression had already
shipped.
Strategic Shifts in This PR (if any)
No strategy change. #2062 still owns the incomplete strangler retirement. This PR only ships the narrowed Task D from the 2026-10-06 three-lens follow-ups plan: a parametrized conformance suite over the five registered adapters. Adapter implementation drift is tracked, not patched here.
What This PR Shipped
tests/test_adapter_conformance.pyparametrizesclaude,codex,agy,grok, andlocalfor Protocol method presence,translate_permissionssignature match againstHarnessAdapter, receipt-marker parsing throughjobs._check_task_receipt,classify_failurereturningFailureKindorNone, and oneextract_tokensfixture per harness.- Claude/Codex/Agy
translate_permissionsis missing the Protocol'sskip_permissionsparameter. Those three cases arexfailagainst #2078. LocalAdapter.parse_outputleavescompatibility_evidenceunset. Those two receipt cases arexfailagainst #2079.- No adapter source files were changed.
Plan: docs/superpowers/plans/2026-10-06-three-lens-followups-plan.md Task D.
Design: docs/superpowers/specs/2026-10-06-three-lens-followups-design.md.
Brainstorm Visuals Used
None. This follows the committed design and plan.
What This Achieved on the Path to Autonomy
A new adapter, or a signature change on an existing one, now fails in pytest instead of in a live dispatch. The suite is green because the known drift is named and ticketed, not because it was papered over.
Strategic Note: The Goal at the End of This PR
#2078 and #2079 are the next adapter-side fixes. The strangler-path retirement still listed on #2062 stays a separate implementation task.