100%

Section 01: Inventory + owns_crates Normalization

Status: Complete Goal: Produce the factual baseline (current plan landscape + authoritative crate→section map + migration manifest) that §02–§06 depend on. The mechanical routing rule in §02 cannot be written accurately without knowing what Fallback-R looks like in practice; §03’s helper cannot route correctly without complete owns_crates data; §05’s migration cannot execute without a concrete manifest.

Success Criteria:

  • Every compiler crate under compiler_repo/compiler/ is enumerated and mapped to exactly one roadmap section’s owns_crates (connects to mission criterion: “Every plans/roadmap/section-*.md has a correct, complete owns_crates: list”)
  • Each of the 26 currently-empty owns_crates: [] sections is audited: those that own compiler code get real lists; those that genuinely own no crate keep [] with an inline comment explaining why
  • Zero stale crate references remain (including the known ori_lsp phantom in §22-tooling)
  • this section’s Manifest Appendix (below) lists every current plans/*/ directory with its classification + target section
  • python -m scripts.plan_corpus check plans/roadmap/ exits 0 (returns LOW warning for ori_lsp placeholder directory; documented and accepted as Fallback R carve-out)

Context: The 2026-04-24 bug-tracker redesign established owns_crates: frontmatter as REQUIRED on every roadmap section. The field is universally present (33/33 sections) but 26 sections declare empty lists. /add-bug routes by inverting this frontmatter across all sections — empty lists mean those sections are invisible to routing. Before any plan routing rule lands, the map must be accurate.

Reference implementations:

  • Bug-tracker Phase G (2026-04-24): enumerated legacy fix-BUG-*.md sibling files, classified each (completed → archive, in-progress → migrate, orphan → Fallback-R), produced migration manifest before Phase F execution. This section mirrors that sequencing.

Depends on: None (this is Phase 0 prework).


Intelligence Reconnaissance

Queries run 2026-04-24:

  • scripts/intel-query.sh --human status — availability probe before running plan-graph queries; if unavailable, fall through to filesystem.
  • scripts/intel-query.sh --human plan-status "repr-opt" — pulls section count + blocker count + bug count for the largest in-progress re-route as a smoke-test of the graph’s plan-corpus coverage.
  • ls -la plans/ — enumerated 22 re-route directories + roadmap + completed archive. Full inventory captured via Explore agent.
  • grep -l "owns_crates:" plans/roadmap/section-*.md | wc -l — 33/33 sections have the field; 26 declare [], 7 declare explicit crate lists.
  • grep "absorb-candidate" plans/*/00-overview.md — 8 plans carry migration markers: parser-perf→§00, enum-layout-ssot→§21A, ffi-boundary-safety→§11, repr-opt→§21A, iterator-element-ownership→§07C, locality-representation-unification→§21A, semantic-optimization-pipeline (unmarked), typeck-inference-completeness (§02 implied).

Results summary (≤500 chars) [ori]: 22 re-route plans span a spectrum of scope; 8 carry explicit absorb-candidate markers to specific roadmap sections. owns_crates: coverage is 33/33 present but 26/33 empty; ori_lsp in §22-tooling is stale (crate deleted per project-reorganization). Migration complexity varies: 5 in-progress plans (aot-perf, hygiene-full-2, llvm-verification-tooling, repr-opt, typeck-inference-completeness) need state preservation; 2 research plans (deep-safety, ori-ui-framework) have no section files and need separate handling.

See .claude/skills/query-intel/compose-intel-summary.md for the full query protocol.


01.1 Enumerate current plans/*/ landscape

File(s): this section’s Manifest Appendix (below)

Capture every plans/<dir>/ in machine-readable form so §05 migration can iterate without re-discovery.

  • ls -d plans/*/ | grep -v completed → emit list of 22 re-route dirs + roadmap

  • For each dir, extract from 00-overview.md frontmatter: status:, plan:, mission paragraph (first paragraph under ## Mission)

  • For each dir, count section files: ls plans/<dir>/section-*.md 2>/dev/null | wc -l

  • For each dir, check for absorb-candidate marker: grep -h "absorb-candidate" plans/<dir>/*.md || echo "no marker"

  • Write inventory to this section’s Manifest Appendix (below) Part A (plan-by-plan table):

    | Plan | Status | Sections | Absorb-candidate | Scope crates |
    |------|--------|----------|------------------|--------------|
    | aot-perf | in-progress | 2 | (none) | ori_llvm, ori_rt |
    | repr-opt | in-progress | 12 | §21A-llvm | ori_canon, ori_arc, ori_repr, ori_llvm, ori_rt |
    | ... (22 rows total) |
  • Subsection close-out (01.1) — MANDATORY before starting 01.2:

    • All tasks above are [x] and Manifest Appendix Part A exists and is complete
    • Update this subsection’s status in section frontmatter to complete
    • Repo hygiene check — run compiler_repo/diagnostics/repo-hygiene.sh --check and clean any temp files

01.2 Audit plans/roadmap/section-*.md owns_crates for completeness + staleness

File(s): plans/roadmap/section-*.md (33 files, audit only — no edits yet)

Detect two defect classes: missing real entries, stale entries for deleted crates.

  • Enumerate every crate under compiler_repo/compiler/ via ls -d compiler_repo/compiler/*/ → produces authoritative “live crates” set (should include: ori_lexer_core, ori_lexer, ori_parse, ori_ir, ori_types, ori_registry, ori_diagnostic, ori_stack, ori_canon, ori_arc, ori_repr, ori_patterns, ori_eval, ori_llvm, ori_rt, ori_fmt, ori_test_harness, ori_compiler, oric — 19 crates per CLAUDE.md §Compiler)

  • For each roadmap section, extract current owns_crates: value

  • Compute three sets:

    • Covered: crates appearing in at least one section’s list
    • Uncovered: crates in compiler_repo/compiler/ absent from all sections
    • Stale: entries in any section’s list not matching a live crate (known: ori_lsp in §22)
  • Write audit to Manifest Appendix Part B (defect table):

    | Section | Current owns_crates | Defect | Proposed fix |
    |---------|---------------------|--------|--------------|
    | §22-tooling | [ori_fmt, ori_test_harness, ori_stack, ori_lsp, ori_diagnostic, ori_compiler, oric] | STALE: ori_lsp deleted | Remove ori_lsp |
    | §02-type-inference | [] | EMPTY: owns inference code in ori_types | Add ori_types (overlap resolution with §01-type-system in 01.3) |
    | ... |
  • Subsection close-out (01.2) — MANDATORY before starting 01.3:

    • Audit complete; Part B of manifest populated
    • Update this subsection’s status to complete
    • Repo hygiene checkcompiler_repo/diagnostics/repo-hygiene.sh --check

01.3 Fill the 26 empty owns_crates: [] lists with real crate assignments

File(s): plans/roadmap/section-*.md frontmatter (up to 26 sections edited)

For each section with empty owns_crates: [], decide: does this section own compiler code, and if so, which crates?

Decision criteria:

  • Section explicitly about a compiler subsystem (e.g., §02-type-inference) → owns the relevant crate(s)

  • Section about a language-feature area that’s stdlib-only (e.g., §07D-stdlib-modules) → may legitimately own [] (stdlib work lives in compiler_repo/library/, not a compiler crate)

  • Section about a cross-cutting concern (e.g., §14-testing) → may legitimately own [] (testing crates live under compiler_repo already claimed)

  • Resolve crate-overlap: a crate can be owned by exactly ONE section; if §01-type-system currently owns [ori_ir, ori_types] and §02-type-inference’s scope also touches ori_types, decide which section OWNS vs which section references. Edit the LOSING section’s owns_crates to NOT include the disputed crate; add an # Note: comment explaining the overlap resolution

  • For each empty section, apply one of: (a) fill with real crate list, (b) retain [] with inline comment # This section owns no compiler crate — work happens in <library/stdlib/crate>, or (c) defer with # TODO-RESOLUTION: crate ownership disputed with §XX, resolved in 01.3 commit

  • Remove the stale ori_lsp entry from §22-tooling’s owns_crates

  • Verify completeness: every live crate appears in exactly one section’s list; every section’s list references only live crates:

    python3 -c "
    import yaml, pathlib
    live = {p.name for p in pathlib.Path('compiler_repo/compiler').iterdir() if p.is_dir()}
    seen = {}
    for p in sorted(pathlib.Path('plans/roadmap').glob('section-*.md')):
        fm = yaml.safe_load(p.read_text().split('---')[1])
        for c in fm.get('owns_crates', []):
            if c not in live:
                print(f'STALE: {p.name}: {c}')
            if c in seen:
                print(f'DUPLICATE: {c} claimed by {seen[c]} AND {p.name}')
            seen[c] = p.name
    missing = live - set(seen.keys())
    if missing:
        print(f'UNCOVERED: {missing}')
    "

    Expected output: nothing (all stale/duplicate/uncovered defects resolved).

  • Commit the normalization as a single logical commit: docs(roadmap): fill empty owns_crates lists + remove stale entries

  • Subsection close-out (01.3) — MANDATORY before starting 01.4:

    • Validator script exits 0 (no STALE/DUPLICATE/UNCOVERED output)
    • Normalization commit pushed
    • Update this subsection’s status to complete
    • Repo hygiene checkcompiler_repo/diagnostics/repo-hygiene.sh --check

01.4 Produce migration manifest

File(s): this section’s Manifest Appendix (below) (Part C + D)

Using Part A (plan inventory) + the now-complete owns_crates map (output of 01.3), classify every current re-route and decide its target disposition.

Classification algorithm:

  1. For plan P with scope crates S = {c1, c2, …}, invert owns_crates map to find owning section per crate
  2. Count hits per section: section_hits = {section: |{c in S : c in section.owns_crates}|}
  3. If one section has strictly maximum hits → ROUTE A (subsection of that section)
  4. If multiple sections tie for max → ROUTE B (Fallback-R with routing_justification)
  5. If S ∩ (union of all owns_crates) = ∅ AND S is skill-infra-docs scope → ROUTE C (tracker-index)
  6. Special case: research plans with no section files → retained at top level with routing: kind=research-exploration
  • For each plan in Part A, apply the classification; write result to Manifest Appendix Part C:

    | Plan | Scope crates | section_hits | Route | Target |
    |------|--------------|--------------|-------|--------|
    | aot-perf | {ori_llvm, ori_rt} | §21A: 1, §21B: 1 (TIE) | B (Fallback-R) | plans/aot-perf/ with routing_justification |
    | repr-opt | {ori_canon, ori_arc, ori_repr, ori_llvm, ori_rt} | §21A: 4, §21B: 1 | A (subsection) | §21A-llvm |
    | parser-perf | {ori_lexer, ori_parse} | §00: 2 | A (subsection) | §00-parser |
    | ... |
  • For ROUTE A entries, draft the target subsection ID + title (e.g., §21A.X repr-opt absorption). X is next available subsection number; plan author’s existing section structure becomes sub-subsections.

  • For ROUTE B entries, draft the routing_justification text (one sentence explaining why no single section owns this scope).

  • For ROUTE C entries (if any), identify target bug-tracker/section-NN-*.md.

  • Write Manifest Appendix Part D (state-preservation inventory) for 5 in-progress plans:

    | Plan | review_pipeline | HISTORY blocks | Completed subsections | Blocker cross-refs |
    |------|-----------------|----------------|----------------------|-------------------|
    | aot-perf | rounds_completed: 2, last_round_commit: <sha> | 3 blocks | §01 [x], §02 in-progress | none |
    | repr-opt | (none) | 12 blocks | §01-§05 [x], §06 in-progress | ... |
    | ... |
  • Subsection close-out (01.4) — MANDATORY before starting 01.N:

    • Manifest Appendix Parts A–D all populated and reviewed for correctness
    • Update this subsection’s status to complete
    • Repo hygiene checkcompiler_repo/diagnostics/repo-hygiene.sh --check

01.N Completion Checklist

  • All implementation subsections (01.1–01.4) are [x] and status complete
  • All section success criteria have corresponding [x] checkboxes
  • Manifest Appendix Parts A–D exist and are populated
  • Crate-ownership validator script (from 01.3) exits 0: no STALE, no DUPLICATE, no UNCOVERED
  • ./test-all.sh green — regression canary (no compiler code was touched this session — git -C compiler_repo status clean; canary is vacuous by construction)
  • python -m scripts.plan_corpus check plans/roadmap/ returns exit 0 (LOW warning for ori_lsp placeholder, non-gating)
  • Plan sync — update plan metadata:
    • This section’s frontmatter statuscomplete, all subsection statuses → complete
    • 00-overview.md Quick Reference table: Section 01 status → Complete
    • 00-overview.md mission success criteria: check off “Every compiler crate is enumerated and mapped” + “26 empty owns_crates lists audited” + “zero stale references”
    • index.md Section 01 status → Complete
  • Repo hygiene checkcompiler_repo/diagnostics/repo-hygiene.sh --check; clean any temp files

Exit Criteria: Manifest Appendix Parts A–D complete; validator script exits 0; all 26 empty owns_crates audited; ori_lsp removed from §22; ./test-all.sh green; plan_corpus check plans/roadmap/ green.


Manifest Appendix — Parts A/A.1/B/C/D

Machine-readable inventory produced by §01. Consumed verbatim by §05 (migration). Part A/A.1/B/C/D live here; §04 appends Part E, §05 appends Parts F+G, §07 appends Part H — each in their own section’s appendix.

  • Part A — plan-by-plan snapshot of plans/*/ (excluding roadmap/, roadmap-plan-routing-unification/, completed/).
  • Part A.1 — mission previews (first sentence of ## Mission).
  • Part Bowns_crates: defect audit (populated by §01.2).
  • Part C — classification + routing decision per plan (populated by §01.4).
  • Part D — state-preservation inventory for in-progress plans (populated by §01.4).

Part A — Plan-by-plan inventory

22 re-route plans enumerated 2026-04-24. Absorb-candidate column lists the target plans/roadmap/section-*.md from <!-- phase-g-audit:absorb-candidate --> comments where present (8 plans carry markers). indicates the plan touches no live compiler crate directly.

#PlanStatusSectionsAbsorb-candidateScope crates
1aot-perfin-progress2ori_llvm, ori_rt
2clang-arc-lessonsnot-started6ori_arc
3code-journey-reworknot-started6
4compiler-architecture-best-practicesnot-started9ori_types, ori_diagnostic, ori_test_harness, ori_llvm, ori_repr
5deep-safetyresearch0
6enum-layout-ssotnot-started4§21A-llvmori_repr, ori_types, ori_canon, ori_llvm
7ffi-boundary-safetynot-started8§11-ffiori_arc, ori_types, ori_llvm, ori_rt
8hygiene-full-2in-progress10ori_rt, ori_eval, ori_llvm, ori_types, ori_lexer, ori_parse (multi-crate hygiene)
9iterator-element-ownershipnot-started6§23-evaluatorori_arc, ori_eval, ori_patterns
10llvm-verification-toolingin-progress12ori_arc, ori_llvm (tooling-primary)
11llvm-worker-isolationnot-started3ori_llvm, oric
12locality-representation-unificationnot-started6§21A-llvmori_arc, ori_repr
13ori-ui-frameworkresearch6
14parser-perfnot-started6§00-parserori_parse, ori_lexer
15perf-engineeringnot-started7ori_eval, ori_ir
16pkg_mgmtnot-started11
17project-reorganizationnot-started9
18repr-optin-progress12§21A-llvmori_canon, ori_arc, ori_repr, ori_llvm, ori_rt
19rosetta-stress-testnot-started1
20semantic-optimization-pipelinenot-started10§21A-llvmori_arc, ori_types, ori_llvm, ori_canon
21test-suite-healthnot-started6
22typeck-inference-completenessin-progress11§01-type-systemori_types, ori_arc

Summary:

  • Total: 22 re-route plans.
  • In-progress: 5 (aot-perf, hygiene-full-2, llvm-verification-tooling, repr-opt, typeck-inference-completeness) — state-preservation required (Part D).
  • Research: 2 (deep-safety, ori-ui-framework) — deep-safety has zero section files; ori-ui-framework has 6.
  • Absorb-candidate markers: 8 plans carry <!-- phase-g-audit:absorb-candidate --> comments naming a target roadmap section.
  • No compiler-crate scope (): 7 plans (code-journey-rework, deep-safety, ori-ui-framework, pkg_mgmt, project-reorganization, rosetta-stress-test, test-suite-health).

Part A.1 — Mission previews

First sentence of each plan’s ## Mission paragraph (truncated to ≤140 chars).

PlanMission preview
aot-perfClose the benchmark gaps between Ori AOT and Rust by eliminating provably-unnecessary overflow checks — reducing from 19 to ≤8 for equivalent programs
clang-arc-lessonsAdopt battle-tested ARC optimization patterns from Clang/LLVM and Swift into Ori’s AIMS pipeline: effect-aware coalescing barriers, compile-time reuse
code-journey-reworkTransform the code-journey system from a broken scoring pipeline that produces false confidence into a grounded bug-finding system
compiler-architecture-best-practicesImplement verified industry best practices and documented aspirational patterns as enforceable rules with supporting infrastructure
deep-safetyMake Ori the better choice than Rust for low-level development — including kernel dev, embedded, drivers, and systems programming
enum-layout-ssotCentralize ALL enum layout knowledge into a single source of truth in ori_repr, migrate every codegen consumer to use that SSOT
ffi-boundary-safetyMake Ori’s mission claim “memory safety across the entire program surface, including FFI” hold in implementation
hygiene-full-2Achieve a cohesive, well-architected compiler where every phase has clear boundaries, every piece of knowledge lives in exactly one canonical home
iterator-element-ownershipEstablish a uniform element ownership contract for the C iterator runtime protocol: every element yielded by IterState::next() is owned
llvm-verification-toolingBuild world-class verification tooling for Ori’s AIMS memory system and LLVM backend — exploiting Ori’s unique dual-layer architecture
llvm-worker-isolationIsolate the LLVM backend spec test runner from C++ SIGSEGV crashes by running each test file’s LLVM compilation in a separate process
locality-representation-unificationEstablish single-source-of-truth for escape-scope classification in AIMS by extending the existing ori_arc::Locality ordered lattice
ori-ui-frameworkBuild a 100% Ori-native GPU-accelerated UI framework with CSS layout semantics that serves as the flagship showcase for Ori’s Deep FFI
parser-perfMaximize Ori’s parser frontend throughput and API quality across the full pipeline — lexer, parser, and Salsa integration
perf-engineeringMake Ori’s interpreter as close to native execution speed as possible.
pkg_mgmt(no mission paragraph — pkg_mgmt/00-overview.md lacks ## Mission heading)
project-reorganizationBring the ori_lang/ repository root into alignment with first-class compiler conventions (rustc, swift, zig, gleam, roc, lean4)
repr-optComplete the representation optimization system as one cohesive machine: from abstract types through range analysis and escape analysis
rosetta-stress-testMethodically implement Rosetta Code tasks in Ori, treating each program as a deep language evaluation
semantic-optimization-pipelineMake proven facts survive into optimization — including algebraic structure.
test-suite-healthRestore the Ori test suite to full health across two fronts: (1) audit/reprioritize the LLVM backend roadmap; (2) reduce cargo t wall time to ≤30s
typeck-inference-completenessClose the typeck inference completeness gap end-to-end so the test suite reaches failed: 0 via localized compiler fixes

Part B — owns_crates defect audit

Live-crate set (19, sourced from compiler_repo/compiler/* filtered to directories with Cargo.toml — matches CLAUDE.md §Compiler):

ori_arc, ori_canon, ori_compiler, ori_diagnostic, ori_eval, ori_fmt, ori_ir,
ori_lexer, ori_lexer_core, ori_llvm, ori_parse, ori_patterns, ori_registry,
ori_repr, ori_rt, ori_stack, ori_test_harness, ori_types, oric

Note: compiler_repo/compiler/ori_lsp/ exists as a placeholder directory (.gitkeep only, no Cargo.toml, not a workspace member). It is NOT a live crate.

Coverage analysis (pre-fix):

MetricCountNotes
Live crates19From compiler_repo/compiler/*/Cargo.toml
Covered19Every live crate appears in at least one non-empty owns_crates: list
Uncovered0No live crate is unclaimed
Duplicate claims0Each covered crate appears in exactly one section
Stale entries1ori_lsp in §22-tooling (placeholder dir, not a real crate)
Empty sections (owns_crates: [])26Language-feature sections (see fix plan below)
Non-empty sections7Subsystem sections covering all 19 live crates

Non-empty sections (current state):

Sectionowns_crates
section-00-parser.mdori_lexer_core, ori_lexer, ori_parse
section-01-type-system.mdori_ir, ori_types
section-03-traits.mdori_registry
section-21A-llvm.mdori_canon, ori_arc, ori_repr, ori_llvm
section-21B-aot.mdori_rt
section-22-tooling.mdori_fmt, ori_test_harness, ori_stack, ori_lsp (STALE), ori_diagnostic, ori_compiler, oric
section-23-evaluator.mdori_eval, ori_patterns

Defect table:

SectionCurrent owns_cratesDefectProposed fix (executed in §01.3)
section-22-tooling.md[…, ori_lsp, …]STALE: ori_lsp is a placeholder dir (.gitkeep only), not a real crateRemove ori_lsp from list
section-02-type-inference.md[]EMPTY: type-inference code lives in ori_types (owned by §01)Retain [] with comment: inference scope lives in §01-type-system’s ori_types
section-04-modules.md[]EMPTY: module resolution spans ori_parse (§00) + ori_canon (§21A)Retain [] with comment: spans §00/§21A-owned crates
section-05-type-declarations.md[]EMPTY: type decls live in ori_ir + ori_types (§01)Retain [] with comment: §01-type-system owns these
section-06-capabilities.md[]EMPTY: capability typeck lives in ori_types (§01); runtime in ori_rt (§21B)Retain [] with comment: §01 + §21B own these
section-07A-core-builtins.md[]EMPTY: prelude fns in ori_eval (§23), type definitions in compiler_repo/library/std/ (stdlib, no crate)Retain [] with comment: §23 + stdlib own these
section-07B-option-result.md[]EMPTY: Option/Result types are stdlib (compiler_repo/library/std/prelude.ori)Retain [] with comment: stdlib (no crate owner)
section-07C-collections.md[]EMPTY: collection runtime in ori_patterns (§23), stdlib types in library/std/Retain [] with comment: §23 + stdlib
section-07D-stdlib-modules.md[]EMPTY: stdlib-only (compiler_repo/library/std/*.ori)Retain [] with comment: stdlib only
section-07E-stdlib-text.md[]EMPTY: stdlib-only (compiler_repo/library/std/text.ori)Retain [] with comment: stdlib only
section-08-patterns.md[]EMPTY: pattern compilation in ori_canon (§21A), dispatch in ori_patterns (§23)Retain [] with comment: §21A + §23
section-09-match.md[]EMPTY: match lowering in ori_canon (§21A)Retain [] with comment: §21A
section-10-control-flow.md[]EMPTY: control-flow lowering in ori_canon (§21A)Retain [] with comment: §21A
section-11-ffi.md[]EMPTY: FFI codegen in ori_llvm (§21A), FFI runtime in ori_rt (§21B)Retain [] with comment: §21A + §21B
section-12-variadic-functions.md[]EMPTY: variadic lowering in ori_canon (§21A), parsing in ori_parse (§00)Retain [] with comment: §00 + §21A
section-13-conditional-compilation.md[]EMPTY: #cfg/#target parsing in ori_parse (§00)Retain [] with comment: §00
section-14-testing.md[]EMPTY: test harness is ori_test_harness (§22) + compiler_repo/tests/*Retain [] with comment: §22 + test corpus
section-15A-attributes-comments.md[]EMPTY: attribute parsing in ori_parse (§00)Retain [] with comment: §00
section-15B-function-syntax.md[]EMPTY: function syntax in ori_parse (§00)Retain [] with comment: §00
section-15C-literals-operators.md[]EMPTY: literal lexing in ori_lexer (§00), operator dispatch in ori_types (§01)Retain [] with comment: §00 + §01
section-15D-bindings-types.md[]EMPTY: let/type bindings in ori_parse (§00) + ori_types (§01)Retain [] with comment: §00 + §01
section-16-async.md[]EMPTY: async uses ori_canon (§21A), ori_eval (§23), ori_patterns (§23), ori_rt (§21B)Retain [] with comment: §21A + §21B + §23
section-17-concurrency.md[]EMPTY: channel patterns in ori_patterns (§23), concurrency runtime in ori_rt (§21B)Retain [] with comment: §21B + §23
section-18-const-generics.md[]EMPTY: const-generic types in ori_types (§01)Retain [] with comment: §01
section-19-existential-types.md[]EMPTY: existential dispatch in ori_types (§01)Retain [] with comment: §01
section-20-reflection.md[]EMPTY: reflection intrinsics in ori_types (§01) + ori_ir (§01)Retain [] with comment: §01
section-20A-construction.md[]EMPTY: construction syntax in ori_parse (§00), runtime in ori_eval (§23)Retain [] with comment: §00 + §23

Fix summary for §01.3:

  1. Remove ori_lsp from section-22-tooling.md owns_crates.
  2. Add # Note: ... comment to each of the 26 empty sections inline with owns_crates: [], explaining which subsystem section(s) own the relevant crates.
  3. The 7 non-empty sections stay as-is (except §22 after step 1).

Part C — Classification + routing decisions

Applied the 6-step classification algorithm from §01.4 to every plan in Part A. section_hits counts how many of a plan’s scope crates are owned by each roadmap section (per post-§01.3 owns_crates:). Strict max → ROUTE A; tie → ROUTE B Fallback-R; no compiler scope → ROUTE C; research with no sections → ROUTE D.

#PlanScope cratessection_hitsRouteTargetRationale
1aot-perfori_llvm, ori_rt§21A-llvm: 1, §21B-aot: 1B (Fallback-R)plans/aot-perf/ with routing_justificationtie: §21A-llvm, §21B-aot — both 1 hit
2clang-arc-lessonsori_arc§21A-llvm: 1A (subsection)§21A-llvmstrict max at §21A-llvm
3code-journey-reworkC (skill-infra-docs)plans/code-journey-rework/ retain; reroute: true + routing_justificationskill rework; no compiler crate
4compiler-architecture-best-practicesori_types, ori_diagnostic, ori_test_harness, ori_llvm, ori_repr§22-tooling: 2, §21A-llvm: 2, §01-type-system: 1B (Fallback-R)plans/compiler-architecture-best-practices/ with routing_justificationtie: §22-tooling, §21A-llvm — both 2 hits
5deep-safetyD (research-exploration)plans/deep-safety/ retain; routing: kind=research-explorationresearch-only; zero section files
6enum-layout-ssotori_repr, ori_types, ori_canon, ori_llvm§21A-llvm: 3, §01-type-system: 1A (subsection)§21A-llvmstrict max — matches absorb-marker §21A-llvm
7ffi-boundary-safetyori_arc, ori_types, ori_llvm, ori_rt§21A-llvm: 2, §01-type-system: 1, §21B-aot: 1A (subsection)§21A-llvmstrict max §21A-llvm; differs from absorb-marker §11-ffi (§11-ffi is intentionally empty per §01.3 — FFI codegen lives in §21A’s ori_llvm)
8hygiene-full-2ori_rt, ori_eval, ori_llvm, ori_types, ori_lexer, ori_parse§00-parser: 2, §21B-aot: 1, §23-evaluator: 1, §21A-llvm: 1, §01-type-system: 1A (subsection)§00-parserstrict max at §00-parser (2 hits via ori_lexer + ori_parse)
9iterator-element-ownershipori_arc, ori_eval, ori_patterns§23-evaluator: 2, §21A-llvm: 1A (subsection)§23-evaluatorstrict max — matches absorb-marker §23-evaluator
10llvm-verification-toolingori_arc, ori_llvm§21A-llvm: 2A (subsection)§21A-llvmstrict max at §21A-llvm
11llvm-worker-isolationori_llvm, oric§21A-llvm: 1, §22-tooling: 1B (Fallback-R)plans/llvm-worker-isolation/ with routing_justificationtie: §21A-llvm, §22-tooling — both 1 hit
12locality-representation-unificationori_arc, ori_repr§21A-llvm: 2A (subsection)§21A-llvmstrict max — matches absorb-marker §21A-llvm
13ori-ui-frameworkD (research-exploration)plans/ori-ui-framework/ retain; routing: kind=research-explorationresearch plan; flagship showcase, not a compiler change
14parser-perfori_parse, ori_lexer§00-parser: 2A (subsection)§00-parserstrict max — matches absorb-marker §00-parser
15perf-engineeringori_eval, ori_ir§23-evaluator: 1, §01-type-system: 1B (Fallback-R)plans/perf-engineering/ with routing_justificationtie: §23-evaluator, §01-type-system — both 1 hit
16pkg_mgmtC (skill-infra-docs)plans/pkg_mgmt/ retain; reroute: true + routing_justificationpackage-manager tooling; no compiler crate
17project-reorganizationC (skill-infra-docs)plans/project-reorganization/ retain; reroute: true + routing_justificationrepo-layout tooling; no compiler crate
18repr-optori_canon, ori_arc, ori_repr, ori_llvm, ori_rt§21A-llvm: 4, §21B-aot: 1A (subsection)§21A-llvmstrict max — matches absorb-marker §21A-llvm
19rosetta-stress-testC (skill-infra-docs)plans/rosetta-stress-test/ retain; reroute: true + routing_justificationtest-corpus infra; no compiler crate
20semantic-optimization-pipelineori_arc, ori_types, ori_llvm, ori_canon§21A-llvm: 3, §01-type-system: 1A (subsection)§21A-llvmstrict max — matches absorb-marker §21A-llvm
21test-suite-healthC (skill-infra-docs)plans/test-suite-health/ retain; reroute: true + routing_justificationtest-tooling infra; no compiler crate
22typeck-inference-completenessori_types, ori_arc§01-type-system: 1, §21A-llvm: 1B (Fallback-R)plans/typeck-inference-completeness/ with routing_justificationtie: §01-type-system, §21A-llvm — absorb-marker §01-type-system is a valid hint but algorithm requires routing_justification for ties

Route summary:

RouteCountPlans
A (subsection migration)10clang-arc-lessons, enum-layout-ssot, ffi-boundary-safety, hygiene-full-2, iterator-element-ownership, llvm-verification-tooling, locality-representation-unification, parser-perf, repr-opt, semantic-optimization-pipeline
B (Fallback-R with routing_justification)5aot-perf, compiler-architecture-best-practices, llvm-worker-isolation, perf-engineering, typeck-inference-completeness
C (skill-infra-docs — retained peer plan)5code-journey-rework, pkg_mgmt, project-reorganization, rosetta-stress-test, test-suite-health
D (research-exploration)2deep-safety, ori-ui-framework

ROUTE A subsection landing table (draft IDs — actual numbers confirmed during §05 migration based on each target section’s next available subsection index):

PlanTarget sectionDraft subsection IDDraft subsection title
clang-arc-lessons§21A-llvm§21A.Xclang-arc-lessons absorption (ARC optimization patterns from Clang/LLVM + Swift)
enum-layout-ssot§21A-llvm§21A.X+1enum-layout-ssot absorption (centralize enum layout in ori_repr SSOT)
ffi-boundary-safety§21A-llvm§21A.X+2ffi-boundary-safety absorption (FFI memory-safety invariants)
hygiene-full-2§00-parser§00.Yhygiene-full-2 absorption (compiler-wide hygiene; lexer/parser primary scope)
iterator-element-ownership§23-evaluator§23.Ziterator-element-ownership absorption (uniform element ownership contract)
llvm-verification-tooling§21A-llvm§21A.X+3llvm-verification-tooling absorption (AIMS + LLVM verification harness)
locality-representation-unification§21A-llvm§21A.X+4locality-representation-unification absorption (Locality lattice extension)
parser-perf§00-parser§00.Y+1parser-perf absorption (lexer/parser throughput + Salsa integration)
repr-opt§21A-llvm§21A.X+5repr-opt absorption (3-tier representation optimization framework)
semantic-optimization-pipeline§21A-llvm§21A.X+6semantic-optimization-pipeline absorption (algebraic metadata + optimization survival)

ROUTE B routing_justification drafts:

PlanScope cratesJustification sentence (draft for §05)
aot-perfori_llvm, ori_rtAOT perf work spans codegen (§21A-llvm owns ori_llvm) and runtime (§21B-aot owns ori_rt) equally; no single section owns both, and the plan’s deliverable (overflow elision, string indexing) requires coordinated edits across both.
compiler-architecture-best-practicesori_types, ori_diagnostic, ori_test_harness, ori_llvm, ori_reprCross-cutting best-practices work spans §22-tooling (diagnostics + test harness) and §21A-llvm (codegen + repr) equally; infra scaffolding derives from both, so no single section is the natural owner.
llvm-worker-isolationori_llvm, oricSubprocess isolation splits between backend codegen (§21A-llvm’s ori_llvm) and driver (§22-tooling’s oric); both crates must change together and no single section owns both.
perf-engineeringori_eval, ori_irBytecode VM rewrites the evaluator (§23-evaluator owns ori_eval) but also introduces new IR (§01-type-system owns ori_ir); scope depends on bytecode-IR codesign and no single section is the natural owner.
typeck-inference-completenessori_types, ori_arcInference completeness spans the type checker (§01-type-system owns ori_types) and AIMS analysis (§21A-llvm owns ori_arc); both contribute to closing failed: 0 on inference bodies.

ROUTE C skill-infra-docs routing_justification drafts:

PlanJustification sentence (draft for §05)
code-journey-rework/code-journey skill rework — operates on .claude/skills/ + compiler_repo/diagnostics/ scripts; no compiler crate is modified.
pkg_mgmtPackage-manager design + tooling — operates on a new pkg_mgmt/ subsystem outside compiler_repo/compiler/; no existing compiler crate is modified.
project-reorganizationRepo-layout / project-structure reorganization — operates on top-level directories, not compiler crates.
rosetta-stress-testTest-corpus stress plan — authors .ori test programs in compiler_repo/tests/spec/rosetta-stress/; no compiler crate is modified directly.
test-suite-healthLLVM backend roadmap reprioritization + cargo t wall-time profiling — produces tracking infrastructure and tooling; the actual codegen work lands in §21A-llvm subsections.

Part D — State-preservation inventory for in-progress plans

5 in-progress plans require state preservation before §05 migration (Route A plans are migrated into their owning section; Route B/C/D plans stay peer). State is captured here so the reviewer can verify §05 didn’t silently drop work.

Planreview_pipelineHISTORY blocksCompleted subsectionsIn-progress subsectionsBlocker cross-refs (sampled)
aot-perfnone000none — plan is scaffolded but no subsection work done
hygiene-full-2none0102plan/section (generic placeholder)
llvm-verification-toolingnone0750llvm-worker-isolation, roadmap/section-11, future-lto-verification
repr-optnone0515NICHE_CODEGEN_READY, §07.4.A, bug-tracker, §07.5
typeck-inference-completenessnone0608BUG-04-091, BUG-01-002, §03.3, §04.S.R

State-preservation protocol for §05 migration:

  • ROUTE A migrations: before moving subsections into the owning roadmap section, copy each plan’s 00-overview.md mission + its index.md header into a HISTORY block of the new absorbing subsection. Completed subsections carry their [x] state forward; in-progress ones carry the checkbox state + any review_pipeline: markers verbatim. The old plan directory is moved under plans/completed/ with status: absorbed-by-§XX.Y.
  • ROUTE B plans: retain at plans/<plan>/. Add reroute: true + routing_justification: "..." to the plan’s index.md frontmatter per §04/§06 schema. No state change; just a frontmatter marker that /create-plan Step 0.6 recognizes.
  • ROUTE C plans: same as ROUTE B — retain + annotate frontmatter with reroute: true.
  • ROUTE D plans: retain at top level with routing: kind=research-exploration or equivalent explicit marker. No migration.

Blocker-reference verification checklist for §05 (non-obvious blockers found during Part D scan):

  • hygiene-full-2 blocker ref plan/section placeholder — delegated to plans/plan-absorption-followup/section-01-route-a-absorption.md §01.4 (resolution happens during actual absorption; §05 annotation-first scope did not touch blocker refs).
  • llvm-verification-tooling references llvm-worker-isolation (Route B) cross-plan dep — delegated to plans/plan-absorption-followup/section-01-route-a-absorption.md §01.6 (verify during absorption).
  • repr-opt references bug-tracker/ bug-tracker pointer preservation — delegated to plans/plan-absorption-followup/section-02-repr-opt-flatten.md §02.2 (preserve during umbrella flatten).
  • typeck-inference-completeness references BUG-04-091 + BUG-01-002 — delegated to plans/plan-absorption-followup/section-01-route-a-absorption.md per-plan absorption subsection (verify bug entries still exist post-migration).