bdd388e877
The plan was 38 lines (just header + protocol). Now 573 lines with
proper per-phase task structure:
- The Wrapper-Obliteration Pattern (concrete BEFORE/AFTER code;
legacy wrapper DELETED in same commit as caller migration)
- Phase 0: Setup + styleguide re-read (3 tasks)
- Phase 1: Fix the 7 failing tests (5 tasks; commit missing
PHASE1_AUDIT_BASELINE.json + split combined inventory doc)
- Phase 2: Final detailed audit (6 tasks; write audit_legacy_wrappers.py
script + per-wrapper inventory doc with callers + drain targets)
- Phases 3-7: Per-file wrapper removal (one task per wrapper per file;
the OBLITERATE pattern: find caller -> rewrite -> delete wrapper)
- Phase 8: Audit gate + end-of-track report + campaign close-out
(8 tasks; final state: 0 legacy wrappers + 0 audit violations
+ 47/47 tests + 11/11 tiers PASS)
Each phase has:
- Styleguide re-read + ack commit (mandatory)
- Concrete commands with expected output
- Per-file atomic commits (1 wrapper = 1 commit)
- Per-phase invariant test + checkpoint
The OBLITERATE principle is explicit: no pass-throughs; no backward
compat; in-site callers rewritten to use _x_result(...).ok directly.
The dead code dies.