Section 01: Subsumption Routing Rule
Goal: Establish the canonical SSOT for plan-subsumes-bug routing in routing.md §2.X. This section is the foundation — every other section consumes the rule authored here.
Success Criteria: see frontmatter.
Implementation Sketch
routing.md §2 currently covers Bug-Creation Routing with a single-route invariant (every bug → bug-tracker/plans/BUG-XX-NNN/) plus the /add-bug --inline exception (3-signal relatedness test). §2.X adds a third row: subsumption, where the bug’s fix is a CONSEQUENCE of an existing plan’s completion rather than a prerequisite or a sibling work item.
The 3-signal subsumption test is the gate. All three signals must fire AND a subsumption_evidence payload must be authored for a subsumption claim to be valid:
| Signal | Test | Detection |
|---|---|---|
| Eliminates or replaces architectural surface | Plan’s deliverable removes, replaces, or substantially restructures the subsystem the bug lives in (not just touches it). Covers additive re-architecture AND massive-deletion (deprecated-feature removal) plans. | Plan’s touches: overlaps bug’s filed-in subsystem; plan’s mission/goal explicitly cites architectural rebuild OR removal of that subsystem |
| Non-reproduction | After the plan completes, the bug’s failing test (or its replacement covering the same behavior) would pass | Plan’s success criteria include the test’s behavioral outcome; verification_test field on the claim points at a real test path/id (verifiable by §07 completion gate) |
| Symptom-of-replaced-architecture | Bug exists BECAUSE of the architecture the plan is replacing/removing, not BECAUSE of a defect that would survive the replacement | Bug’s root-cause analysis (per /fix-bug Phase 1) cites the same architectural surface the plan replaces |
If only 1-2 signals fire: NOT subsumption. Route per existing rules (§2 single-route or §2 inline-related). Subsumption is a strong claim and demands all three.
subsumption_evidence payload (REQUIRED at classification time per §02; persisted in plan frontmatter per §05 schema):
subsumes:
- bug: "BUG-04-118"
verification_test: "compiler_repo/tests/aot/match_alias.rs::test_apply_alias_result_strmap"
subsumption_evidence:
replaced_subsystem: "compiler/ori_arc/src/aims/realize/walk_dec.rs (PIN-4 class-liveness primitive)"
root_cause_pointer: "bug-tracker/plans/BUG-04-118/00-overview.md:7 (subsystem field) + §02 root cause"
verification_test_pointer: "bug-tracker/plans/BUG-04-118/00-overview.md:40-42 (Mission Success Criteria 16-test list)"
The subsumption_evidence payload is what discriminates real subsumption from false-positive 3-signal hits in AIMS-style relocate-not-vanish failure modes (per aims-burden-tracking/00-overview.md:242-253 — emission-side dissolves but elimination-side persists). Without the payload, a bug that LOOKS like 3-signal-fire but actually relocates would be silently subsumed; with the payload, the claim is auditable at §07 verification time.
Implementation Items
- §01.1 Author
routing.md §2.X Subsumption Categorydefinition: (a) one-paragraph framing distinguishing subsumption fromblocked-by:and/add-bug --inline; (b) cite §07 lifecycle reversibility as load-bearing (subsumption is REVERSIBLE — both completion-gate-verification-fail and plan-abandonment un-subsume); (c) cite §05 schema as the bidirectional-pointer enforcement gate. - §01.2 Author the 3-signal test as a table (re-architecture / non-reproduction / symptom-of-replaced-architecture); each signal has a Test column and a Detection column. Mirror the format of the existing
§2 3-signal relatedness test. - §01.3 Banned patterns: (a) subsumption + blocker on the same bug (
SUBSUMES_AND_BLOCKED_BY_CONFLICT); (b) subsumption claim without bidirectional pointer (SUBSUMED_BY_DEAD_REF/SUBSUMES_DEAD_REF); (c) subsumption inferred mechanically by a skill rather than asserted by author + verified at §07 gate; (d) “subsumed for now, will verify later” — every claim verifies at completion-gate or un-subsumes. - §01.3 Reviewer-enforcement category names: cross-reference
impl-hygiene.md §Finding Categories — STRUCTUREforSTRUCTURE:routing-violation:subsumption-misroute(Critical),SUBSUMES_AND_BLOCKED_BY_CONFLICT(Critical),SUBSUMES_DEAD_REF/SUBSUMED_BY_DEAD_REF(High). Note: these category names land inimpl-hygiene.mdvia skill-ecosystem-coherence §22 (in-progress), NOT this section’s body — this section only DECLARES the names + cross-references their host. - §01.4 Update
routing.md §7 Skill Consumption Contractskill-consumption matrix: add§2.Xto the “Sections consulted” column for/create-plan,/add-bug,/fix-bug,/fix-next-bug,/continue-roadmap,/review-plan,/review-bugs,/tpr-review. - §01.5 Author the bidirectional cross-reference: add a 2026-05-09 entry to
plans/skill-ecosystem-coherence/00-overview.mdHISTORY noting “Forked plan-subsumes-bug routing toplans/plan-bug-subsumption/per/tpr-reviewplacement-design verdict; ecosystem §02 (routing.md SSOT) remains the host ofrouting.md §2.Xcontent authored by the fork plan.” This entry is the scatter-risk mitigation per00-overview.md §RisksTop Risk 1. - Run
python3 scripts/prose-lint.py .claude/rules/routing.md— verify clean. - Verify
routing.mdreads coherently end-to-end (no orphan references; §2.X follows§2 Exception: /add-bug --inlinein section ordering).
Test Strategy
This is a docs-only section (.md rule edit + plan HISTORY entry); no Rust code or matrix tests. Test strategy:
- Prose lint —
prose-lint.pyclean onrouting.mdafter edit. - Cross-reference integrity — grep verification that every
§2.Xmention from §02-§08 of this plan resolves to a real subsection inrouting.md. - Skill-consumption matrix completeness —
routing.md §7table has rows for each of the 8 routing-involved skills with§2.Xcorrectly listed where consulted. - Reviewer-vocabulary semantic pin —
/tpr-reviewround on this section verifies the rule prose as authored matches what the schema (§05) and lifecycle gates (§07) actually enforce. A drift between rule wording and schema enforcement is aSTRUCTURE:operational-rule-leakfinding.
Intelligence Reconnaissance
(2026-05-09) Section scope is process/governance authorship of .claude/rules/routing.md §2.X plus a HISTORY entry on plans/skill-ecosystem-coherence/00-overview.md. Intel graph (scripts/intel-query.sh) indexes compiler/library symbols and plan-bug graph; routing.md is governance prose, not a graph-indexed symbol surface, so callers/callees/file-symbols do not return meaningful results for the rule edit. Per compose-intel-summary.md graceful-degradation, recording graph unavailability as freeform prose. Cross-references in body resolved by direct Read of wrapper-root files: .claude/rules/routing.md (§1, §2, §3, §7 verified present), plans/skill-ecosystem-coherence/section-02-routing-md-ssot.md (status: complete verified via frontmatter grep), impl-hygiene.md §Finding Categories — STRUCTURE (vocab host verified). Adjacent plan-bug graph queries reserved for §06 of THIS plan (intel-query SUBSUMES edge synthesis) where they are load-bearing.
Cross-References
- SSOT host:
plans/skill-ecosystem-coherence/section-02-routing-md-ssot.md(status: complete, no-touch). This section’s edits torouting.mdhappen because §02 of ecosystem owns the file’s authorship; the bidirectional HISTORY entry (§01.5) records the fork. - Reviewer vocabulary host:
plans/skill-ecosystem-coherence/section-22-structure-category-impl-hygiene.md(status: in-progress). New STRUCTURE finding sub-types declared here register THERE. - Spec governance: Subsumption is a process/governance rule, NOT a language-spec rule. No
compiler_repo/docs/ori_lang/v2026/spec/change. No proposal workflow required (per.claude/rules/spec.md— spec-change proposals are for surface-language semantics).
01.1 Author §2.X definition + category framing
Insertion point in .claude/rules/routing.md: after §2 Plan-Blocker Bugs — Plan Directories, Always and before §3 Inline-Insertion Dispatch — 5-Case Decision Tree. New §2.X Subsumption Category carries:
- One-paragraph framing distinguishing the THREE plan↔bug relationships: (a)
blocked-by:(prerequisite — plan can’t proceed); (b)/add-bug --inlinesibling-section (related discovered work); (c)subsumes:(consequence — plan completion fixes by construction). Cite §02 (classifier), §05 (schema), §07 (lifecycle). - Bidirectional-pointer invariant statement:
subsumes:on plan ↔subsumed_by:on bug; one without the other is aSUBSUMED_BY_DEAD_REF/SUBSUMES_DEAD_REFfinding. - Reversibility statement: subsumption is REVERSIBLE — abandonment, supersede, rename-with-scope-hash-change, completion-gate-verification-fail all un-subsume per §07 lifecycle handler.
- Cross-reference to
00-overview.md §Design Principlesofplans/plan-bug-subsumption/.
01.2 Author 3-signal subsumption test (broadened) + subsumption_evidence payload
- Author the 3-signal test as a table in
routing.md §2.Xmatching the format of the existing§2 Exception: /add-bug --inline3-signal relatedness table. Columns: Signal | Test | Detection. Rows: Eliminates-or-replaces-architectural-surface, Non-reproduction (test-reference required), Symptom-of-replaced-architecture. - Author the
subsumption_evidenceYAML payload schema in §2.X using the example shape from this section’s Implementation Sketch above. Fields:replaced_subsystem(str),root_cause_pointer(str — commit SHA or file:line),verification_test_pointer(str — test path or test-id). - Add explicit AIMS-style relocate-not-vanish caveat: cite
aims-burden-tracking/00-overview.md:242-253and thesubsumption_evidencepayload requirement as the discrimination mechanism. - Add explicit massive-deletion-plan note: signal #1 covers BOTH additive re-architecture AND deletion of a subsystem (deprecated-feature removal); both eliminate the architectural surface the bug lives on.
01.3 Author banned patterns + reviewer-enforcement category names
Banned patterns in routing.md §2.X:
- (a) Subsumption + blocker on same bug (
SUBSUMES_AND_BLOCKED_BY_CONFLICTCritical) — same bug appearing in plan-A’ssubsumes:AND plan-A’sblocked-by:is contradictory. - (b) Subsumption claim without bidirectional pointer (
SUBSUMED_BY_DEAD_REF/SUBSUMES_DEAD_REFHigh) —subsumes:on plan but nosubsumed_by:on bug, or vice versa. - (c) Subsumption inferred mechanically by a skill (
STRUCTURE:routing-violation:subsumption-misrouteCritical) — claim asserted by a script/skill rather than the plan author + reviewer. - (d) “Subsumed for now, will verify later” (
STRUCTURE:routing-violation:subsumption-deferred-verificationMajor) — every claim verifies at §07 completion gate or un-subsumes. - (e) Subsumption claim missing
verification_testfield (SUBSUMES_TEST_REF_MISSINGMajor) — cannot verify at §07 without a test reference. - (f) Subsumed bug as target of another bug’s
blocked_by:chain without rehoming (SUBSUMED_BLOCKER_ORPHANMajor) — covered by §05validate_subsumes_corpus()Pass 4 (bug-bug blocker chain integrity).
Reviewer-enforcement category names cross-reference:
- Add a comment block at end of
§2.Xcitingimpl-hygiene.md §Finding Categories — STRUCTUREas the SSOT host of the category definitions; do NOT inline definitions inrouting.md. Host is owned byplans/skill-ecosystem-coherence/section-22-structure-category-impl-hygiene.md(in-progress); §05 of THIS plan coordinates the registration.
01.4 Update §7 Skill Consumption Contract matrix
routing.md §7 Skill Consumption Contract skill-consumption matrix update:
- Add
§2.Xto the “Sections consulted” column for/create-plan(consumes for §02 classifier),/review-plan(consumes for §03 staleness validator),/continue-roadmap(consumes for §04 queue filter),/fix-next-bug(consumes for §04 queue filter),/review-bugs(consumes for re-validation pass). - Skills that do NOT consult
§2.X(per Step 4 blind-spots — keep matrix accurate):/add-bug(subsumption is asserted at plan level, not bug level),/fix-bug(operates on existing bug-plan dir; subsumption is plan-side concern),/tpr-review(consumes routing.md as a whole; no per-section explicit consultation needed in the matrix). - Verify update lands in commit alongside §2.X authoring; matrix-out-of-sync is
STRUCTURE:operational-rule-leakMajor.
01.5 Cross-write skill-ecosystem-coherence/00-overview.md HISTORY entry
- Append HISTORY entry to
plans/skill-ecosystem-coherence/00-overview.mdin this section’s same commit: “2026-05-09 —routing.md §2.X Subsumption Categoryforked toplans/plan-bug-subsumption/. Net-new routing capability authored under fork plan per /tpr-review placement-design verdict; ecosystem §02 (section-02-routing-md-ssot.md) remains the SSOT host ofrouting.mditself;§2.Xcontent authored by the fork plan’s §01. Bidirectional cross-reference:plans/plan-bug-subsumption/00-overview.mdcites this entry as scatter-risk mitigation.” - Verify the HISTORY-entry write does NOT touch any other content in
plans/skill-ecosystem-coherence/00-overview.md(the rest is no-touch per fork hard constraint). - Add corresponding HISTORY entry to
plans/plan-bug-subsumption/00-overview.md(this plan’s overview) noting the cross-reference landed: “2026-05-09 —routing.md §2.Xauthored under §01 of this plan; ecosystem00-overview.mdHISTORY cross-references the fork.”
01.R Third Party Review Findings
(Populated by Step 6 /tpr-review round on this section. Each finding lands as - [ ] here per /review-plan Step 6 protocol; resolve before §01 close.)
- (no findings yet — populated post-TPR)
01.N Completion Checklist
- All §01.1–§01.5 implementation items checked.
-
python3 scripts/prose-lint.py .claude/rules/routing.mdexit 0. -
python -m scripts.plan_corpus checkexit 0 across the corpus (no regressions from the routing.md edit). -
grep -nE '\(placeholder' plans/plan-bug-subsumption/section-01-subsumption-routing-rule.mdreturns no hits. -
grep -nE '^- \[ \]' plans/plan-bug-subsumption/section-01-subsumption-routing-rule.md— every remaining unchecked item carries a concrete artifact pointer (file:line, commit SHA, or test path). -
routing.md §2.Xreads coherently end-to-end; cross-references to §05 / §02 / §07 of THIS plan resolve. - Skill-ecosystem-coherence HISTORY cross-reference landed (verified by
grep -n "2026-05-09 — \routing.md §2.X” plans/skill-ecosystem-coherence/00-overview.md`). - Section frontmatter
status:flippednot-started→complete;00-overview.mdMission Success Criteria checkbox for §01 flipped[x];index.mdsection-01 rowStatus:column updated tocomplete. - Commit message cites
plans/skill-ecosystem-coherence/section-02-routing-md-ssot.mdas SSOT host (per Top Risk 1 mitigation). - (NOT-APPLICABLE for this plan-type per
audit.jsonStep 5 notes:)compiler_repo/test-all.shregression check — skill-infra-docs plan touches no compiler crate; gate inapplicable per CLAUDE.md §HYGIENE / CODING RULES SCOPE carve-out. - (NOT-APPLICABLE:)
/impl-hygiene-review— skill-infra-docs plan; gate inapplicable per same carve-out.