0%

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:

SignalTestDetection
Eliminates or replaces architectural surfacePlan’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-reproductionAfter the plan completes, the bug’s failing test (or its replacement covering the same behavior) would passPlan’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-architectureBug exists BECAUSE of the architecture the plan is replacing/removing, not BECAUSE of a defect that would survive the replacementBug’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 Category definition: (a) one-paragraph framing distinguishing subsumption from blocked-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 — STRUCTURE for STRUCTURE:routing-violation:subsumption-misroute (Critical), SUBSUMES_AND_BLOCKED_BY_CONFLICT (Critical), SUBSUMES_DEAD_REF / SUBSUMED_BY_DEAD_REF (High). Note: these category names land in impl-hygiene.md via 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 Contract skill-consumption matrix: add §2.X to 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.md HISTORY noting “Forked plan-subsumes-bug routing to plans/plan-bug-subsumption/ per /tpr-review placement-design verdict; ecosystem §02 (routing.md SSOT) remains the host of routing.md §2.X content authored by the fork plan.” This entry is the scatter-risk mitigation per 00-overview.md §Risks Top Risk 1.
  • Run python3 scripts/prose-lint.py .claude/rules/routing.md — verify clean.
  • Verify routing.md reads coherently end-to-end (no orphan references; §2.X follows §2 Exception: /add-bug --inline in 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 lintprose-lint.py clean on routing.md after edit.
  • Cross-reference integrity — grep verification that every §2.X mention from §02-§08 of this plan resolves to a real subsection in routing.md.
  • Skill-consumption matrix completenessrouting.md §7 table has rows for each of the 8 routing-involved skills with §2.X correctly listed where consulted.
  • Reviewer-vocabulary semantic pin/tpr-review round 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 a STRUCTURE:operational-rule-leak finding.

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 to routing.md happen 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 --inline sibling-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 a SUBSUMED_BY_DEAD_REF / SUBSUMES_DEAD_REF finding.
  • 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 Principles of plans/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.X matching the format of the existing §2 Exception: /add-bug --inline 3-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_evidence YAML 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-253 and the subsumption_evidence payload 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_CONFLICT Critical) — same bug appearing in plan-A’s subsumes: AND plan-A’s blocked-by: is contradictory.
  • (b) Subsumption claim without bidirectional pointer (SUBSUMED_BY_DEAD_REF / SUBSUMES_DEAD_REF High) — subsumes: on plan but no subsumed_by: on bug, or vice versa.
  • (c) Subsumption inferred mechanically by a skill (STRUCTURE:routing-violation:subsumption-misroute Critical) — claim asserted by a script/skill rather than the plan author + reviewer.
  • (d) “Subsumed for now, will verify later” (STRUCTURE:routing-violation:subsumption-deferred-verification Major) — every claim verifies at §07 completion gate or un-subsumes.
  • (e) Subsumption claim missing verification_test field (SUBSUMES_TEST_REF_MISSING Major) — cannot verify at §07 without a test reference.
  • (f) Subsumed bug as target of another bug’s blocked_by: chain without rehoming (SUBSUMED_BLOCKER_ORPHAN Major) — covered by §05 validate_subsumes_corpus() Pass 4 (bug-bug blocker chain integrity).

Reviewer-enforcement category names cross-reference:

  • Add a comment block at end of §2.X citing impl-hygiene.md §Finding Categories — STRUCTURE as the SSOT host of the category definitions; do NOT inline definitions in routing.md. Host is owned by plans/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.X to 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-leak Major.

01.5 Cross-write skill-ecosystem-coherence/00-overview.md HISTORY entry

  • Append HISTORY entry to plans/skill-ecosystem-coherence/00-overview.md in this section’s same commit: “2026-05-09 — routing.md §2.X Subsumption Category forked to plans/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 of routing.md itself; §2.X content authored by the fork plan’s §01. Bidirectional cross-reference: plans/plan-bug-subsumption/00-overview.md cites 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.X authored under §01 of this plan; ecosystem 00-overview.md HISTORY 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.md exit 0.
  • python -m scripts.plan_corpus check exit 0 across the corpus (no regressions from the routing.md edit).
  • grep -nE '\(placeholder' plans/plan-bug-subsumption/section-01-subsumption-routing-rule.md returns 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.X reads 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: flipped not-startedcomplete; 00-overview.md Mission Success Criteria checkbox for §01 flipped [x]; index.md section-01 row Status: column updated to complete.
  • Commit message cites plans/skill-ecosystem-coherence/section-02-routing-md-ssot.md as SSOT host (per Top Risk 1 mitigation).
  • (NOT-APPLICABLE for this plan-type per audit.json Step 5 notes:) compiler_repo/test-all.sh regression 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.