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

0/33 tasks

0/33 tasks
Section 2 Not Started

/create-plan Phase 0 Subsumption Classification Step

0/36 tasks

0/36 tasks
Section 3 Not Started

/review-plan Subsumption Staleness Validator

0/30 tasks

0/30 tasks
Section 4 Not Started

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

0/29 tasks

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