Plan-Bug Subsumption — `subsumes:` relationship type

8 sections

0%
Overview

Add a third structural plan↔bug relationship type — subsumes: — distinct from existing blocked-by: (prerequisite) and /add-bug --inline (sibling subsection). Plans declare subsumes: ["BUG-XX-NNN", ...] for bugs whose fix is a CONSEQUENCE of plan completion (re-architecture eliminates the surface the bug lives on). Bugs declare subsumed_by: plans// and adopt status: subsumed. /continue-roadmap and /fix-next-bug filter subsumed bugs from critical-redirect logic; the owning plan's completion gate verifies the bug actually no longer reproduces; plan abandonment automatically un-subsumes claimed bugs. Architecture validated by /tpr-review placement-design round (2026-05-09, cold-context Opus adjudicator + opencode + codex stdout corroboration).

Planned

8 sections
Section 1 Not Started

Subsumption Routing Rule — routing.md §2.X + 3-signal test

Author the canonical SSOT for plan-subsumes-bug routing as a new subsection of .claude/rules/routing.md §2 (Bug-Creation Routing). Defines the subsumption category, the 3-signal subsumption test (re-architecture / non-reproduction / symptom-of-architecture), banned patterns, and reviewer-enforcement category names.

0/33 tasks
Section 2 Not Started

/create-plan Phase 0 Subsumption Classification Step

Add a subsumption-classification step to /create-plan's Phase 0 (or appropriate adjacent phase). For each affected subsystem the new plan touches, the step enumerates open bugs in that subsystem and classifies each as `subsumes` / `blocker` / `unrelated` per §01's 3-signal test. Subsumes-classified bugs land in plan frontmatter `subsumes:`; bug `00-overview.md` cross-writes `subsumed_by: plans/<name>/`; bug `status:` flips `open` → `subsumed`.

0/36 tasks
Section 3 Not Started

/review-plan Subsumption Staleness Validator

Add a staleness validator to /review-plan that re-validates a plan's `subsumes:` claims against current bug-tracker state on every review run. Two checks: (a) open bugs in plan's touched subsystems but missing from `subsumes:` are flagged for re-triage (drift in the other direction — bugs filed after plan creation that may also be subsumed); (b) `subsumes:` entries pointing at bugs that no longer exist or have re-classified are flagged `SUBSUMES_DEAD_REF` / drift.

0/30 tasks
Section 4 Not Started

/continue-roadmap + /fix-next-bug Queue Filter

Modify /continue-roadmap (Step 1.5 relevant-bugs gate) and /fix-next-bug (Step 2 queue selection) to filter bugs with `status: subsumed` from active queue logic. Subsumed bugs surface ONLY through their owning plan's quick-reference, NOT as critical-redirect targets in the standalone bug queue.

0/29 tasks
Section 5 Not Started

plan_corpus Schema v4 + Subsumption Validators

Bump plan_corpus schema v3 → v4 with: (a) `subsumes: list[SubsumptionClaim]` field on plan-overview where SubsumptionClaim = {bug, verification_test, subsumption_evidence}; (b) `subsumed_by: str | null` field on bug-overview; (c) `subsumed` added to OVERVIEW_STATUSES + FIX_STATUSES; (d) `abandoned` added to OVERVIEW_STATUSES (precondition for §07 abandonment handler). Author `validate_subsumes_corpus()` emitting SUBSUMED_BY_DEAD_REF, SUBSUMES_DEAD_REF, SUBSUMES_AND_BLOCKED_BY_CONFLICT, SUBSUMES_TEST_REF_DEAD, SUBSUMED_BLOCKER_ORPHAN findings. Ship migration `004_subsumption_fields.py` honoring forward-only invariant; coordinate with skill-ecosystem-coherence §27 MIGRATION_REQUIRED bulk-stamp to avoid double-migration race. v3 already taken (`scripts/plan_corpus/version.py:33` CURRENT_SCHEMA_VERSION = 3 + `migrations/003_in_review_status.py`).

0/0 tasks
Section 6 Not Started

intel-query.sh `:Plan SUBSUMES :Bug` Edge Synthesis

Extend intel_repo's plan-bug graph synthesis to emit `:Plan -[SUBSUMES]-> :Bug` edges parallel to existing `:Bug -[BLOCKED_BY]-> :Bug` edges (per CLAUDE.md §Bug-Bug Blocker Chains). Add a `subsumed-by <plan>` query subcommand to `scripts/intel-query.sh`; extend existing `bugs-for` and `blocks` to surface subsumption chains; document the new subcommand in `intelligence.md`.

0/0 tasks
Section 7 Not Started

Plan-Completion + Plan-Abandonment Lifecycle Gates

Author the symmetric pair of lifecycle handlers for the subsumption relationship: (a) Completion gate — before a plan flips `status: complete`, every `subsumes:` claim must be verified by running the original bug's failing test (or its replacement covering the same behavior); failed verifications un-subsume the bug back to `status: open` rather than blocking plan completion; (b) Abandonment handler — when a plan flips `status: abandoned` (or equivalent terminal-not-completed status), every claimed bug automatically un-subsumes (revert `status: subsumed` → `status: open`). Both modify `scripts/plan-complete.py` and/or `/review-plan` close-gate.

0/0 tasks
Section 8 Not Started

Migration Pass — Backfill subsumes: on Existing Candidate Plans

Apply the §01-§07 subsumption framework to existing plans whose architecture suggests subsumption claims that were never recorded. plans/aims-burden-tracking/ is the canonical first candidate (per /tpr-review verdict EPILOGUE — re-architecture plan that dissolves a class of bugs as a side effect). Identify other candidates via subsystem-overlap heuristic (bug's subsystem ∩ plan's `touches:` / `owns_crates:`); apply §01's 3-signal test; backfill `subsumes:` on plan + `subsumed_by:` on bugs; verify each claim against §07's completion gate.

0/0 tasks