Tasks — Unshim Wave 2 (unshim-wave2-01KWMCAX)

Input: spec.md rev 2 (binding census + adjudicated decisions) + plan.md IC map (IC-01..IC-08) + occurrence_map.yaml (the BINDING site ledger: 195 patch-string sites, 417 plain imports/70 files for next) Topology: sequential DAG (paula post-spec verdict): A-chain WP01→(WP02∥WP03)→WP04; C-chain WP05→WP06→WP07; WP08 independent; WP09 last. Spine files (shim-registry.yaml + test_shim_registry_schema.py in WP04; _baselines.yaml + test_no_dead_symbols.py in WP07) are single-owner — no cross-WP races. Ledger protocol: patch-string interception proofs recorded in each WP's Activity Log table; the orchestrator syncs them into occurrence_map.yaml's interception_proof fields on the planning branch at approval (lane guard blocks kitty-specs edits on lanes).

Subtask Index

IDDescriptionWPParallel
T001Re-point 2 plain src importsWP01
T002Re-key injection seam + 2 injectors + consumption proofWP01
T003WP01 gatesWP01
T004tests/next plain re-points (243 refs)WP02[P] with WP03
T005tests/next 125 patch-site proofs + ledgerWP02[P]
T006WP02 gatesWP02[P]
T007Remaining 53-file plain re-points (173 refs)WP03[P] with WP02
T00836 next patch-proofs + 3 unledgered charter setattr/import refs (special-case file)WP03[P]
T009WP03 gatesWP03[P]
T010Delete next + glossary + shim self-test (pre-check first)WP04
T011Registry rows + schema-test asserts, same commitWP04
T012WP04 gates + ModuleNotFoundError + CLI smokeWP04
T013Charter src callers incl. runner.py:36+:41 defectWP05[P] with A-chain
T01420 charter test files + 32 patch-site proofsWP05[P]
T015CI-only shards locally + WP05 gatesWP05[P]
T016Delete 3 charter packages (pre-check first)WP06
T017Lock-gate retirement: 6-row disposition tableWP06
T018charter_activate documented-canonical + WP06 gatesWP06
T019Verify + delete update_field surface (3 pieces)WP07
T020Drain :235 row + honest category_b re-derive (≈215)WP07
T021WP07 gatesWP07
T022Derive WS1 allowed set + record decisionWP08[P] anytime
T023LayerRule + committed CI-selected negative testWP08[P]
T024WP08 gates + #2327 progressWP08[P]
T025Governance-doc scrubs + CHANGELOG (FR-011)WP09
T026Tracker closeout comments + issue-matrix terminalWP09
T027NFR-002 grep + closing sweepWP09

Work Packages

WP01 — A-seam: next src callers + injection seam

  • Goal: IC-01/FR-001 — the 3 src callers re-pointed; the monkeypatch seam + its 2 injector tests move together with a consumption proof.
  • Priority: P1 · Requirements: FR-001 · Prompt: tasks/WP01-a-seam.md
  • ✅ T001 Re-point 2 plain src imports (WP01)
  • ✅ T002 Re-key seam + injectors + consumption proof (WP01)
  • ✅ T003 Gates (WP01)

WP02 — A-repoint cluster 1: tests/next/ (depends: WP01)

  • Goal: IC-02 — 18 files / 243 refs / 125 patch-proofs (the proof-heavy block).
  • Priority: P1 · Requirements: FR-002 · Dependencies: WP01 · Prompt: tasks/WP02-a-repoint-tests-next.md
  • ✅ T004 Plain re-points (WP02)
  • ✅ T005 125 patch-proofs + ledger (WP02)
  • ✅ T006 Gates (WP02)

WP03 — A-repoint cluster 2: remaining next surface (depends: WP01)

  • Goal: IC-02 — the other 53 files / 173 refs / 36 ledgered proofs + 3 unledgered charter refs across 8 directories; owns the dual-namespace special case (test_next_no_implicit_success.py; its setattr strings are invisible to every gate — the in-file grep is the only check).
  • Priority: P1 · Requirements: FR-002 · Dependencies: WP01 · Prompt: tasks/WP03-a-repoint-remaining.md
  • ✅ T007 Plain re-points (WP03)
  • ✅ T008 Patch-proofs + ledger + cross-stream site (WP03)
  • ✅ T009 Gates (WP03)

WP04 — A+B delete + registry drain (depends: WP02, WP03)

  • Goal: IC-03/FR-003+FR-004 — delete both shims; registry rows + schema-test presence-asserts in one atomic commit (C-005).
  • Priority: P1 · Requirements: FR-003, FR-004 · Dependencies: WP02, WP03 · Prompt: tasks/WP04-ab-delete-registry.md
  • ✅ T010 Deletions after empty-grep pre-check (WP04)
  • ✅ T011 Spine drain same commit (WP04)
  • ✅ T012 Gates + smoke (WP04)

WP05 — C-repoint: charter callers + tests

  • Goal: IC-04/FR-005+FR-006p1 — 4-5 src caller lines (incl. the runner.py defect) + 20 test files + 32 charter patch-proofs; CI-only shards run locally.
  • Priority: P2 · Requirements: FR-005, FR-006 · Prompt: tasks/WP05-c-repoint.md
  • ✅ T013 Src callers + defect fix (WP05)
  • ✅ T014 Test re-points + proofs (WP05)
  • ✅ T015 CI-only shards + gates (WP05)

WP06 — C-delete + lock-gate retirement (depends: WP05)

  • Goal: IC-05/FR-006p2+FR-007 — 3 packages deleted; 6-row per-test disposition table; charter_activate documented-canonical; :517-518 rows NO-TOUCH.
  • Priority: P2 · Requirements: FR-006, FR-007 · Dependencies: WP05 · Prompt: tasks/WP06-c-delete-lockgate.md
  • ✅ T016 Deletions after pre-check (WP06)
  • ✅ T017 Disposition table + retirement (WP06)
  • ✅ T018 charter_activate record + gates (WP06)

WP07 — D: #2326 wrapper prune + honest baseline (depends: WP06)

  • Goal: IC-06/FR-008 — the 3 dead update_field pieces deleted; :235 row drained; category_b re-derived honest (≈215).
  • Priority: P3 · Requirements: FR-008 · Dependencies: WP06 · Prompt: tasks/WP07-d-wrapper-prune.md
  • ✅ T019 Verify + delete (WP07)
  • ✅ T020 Drain + honest re-derive (WP07)
  • ✅ T021 Gates (WP07)

WP08 — E: WS1 LayerRule bind (independent)

  • Goal: IC-07/FR-009 (#2327) — the missing mission_runtime outbound rule with named allowed-exception set + committed CI-selected negative test.
  • Priority: P3 · Requirements: FR-009 · Prompt: tasks/WP08-e-ws1-layerrule.md
  • ✅ T022 Allowed set + decision record (WP08)
  • ✅ T023 Rule + negative test (WP08)
  • ✅ T024 Gates + #2327 progress (WP08)

WP09 — Closeout (depends: WP04, WP06, WP07, WP08)

  • Goal: IC-08/FR-010+FR-011 — governance-doc scrubs, CHANGELOG breaking-removal entry, tracker closeout, NFR-002 proof, closing sweep.
  • Priority: P2 · Requirements: FR-010, FR-011 · Dependencies: WP04, WP06, WP07, WP08 · Prompt: tasks/WP09-closeout.md
  • □ T025 Doc scrubs + CHANGELOG (WP09)
  • □ T026 Tracker closeout (WP09)
  • □ T027 Closing sweep (WP09)

Dependency notes

A-chain: WP01 → (WP02 ∥ WP03, disjoint file sets) → WP04 (C-001: delete only after every reference is gone). C-chain: WP05 → WP06 → WP07 (baseline honest re-derive last). WP08 independent (spine-free, zero next/glossary edges). WP09 terminal. Spine files are single-owner (WP04: registry+schema-test; WP07: baselines+dead-symbols) — no standalone gate-drain WP exists (C-005).