Section 09: Final Verification
Status: Not Started
Goal: This is the terminal gate. Every prior section has run; every file has been moved, deleted, or rewritten; every reference has been swept. §09 proves the end state is correct, complete, and ready for merge. Unlike the per-section completion checklists which verify local correctness, §09 verifies cumulative correctness — does the repo as a whole work as intended after all 8 sections land? The verification sweep runs the full test harness, runs lefthook, runs CI on a throwaway branch, runs /tpr-review and /impl-hygiene-review to get independent confirmation, and reconciles the final state against the §01 baseline to produce a complete before/after diff.
Success Criteria: (see frontmatter above — extensive; summarized here)
- Every mission criterion in overview checked off
- Full local verification sweep green (8+ commands)
- Global grep proves zero stale references
- CI dry-run green on throwaway branch
-
/tpr-reviewclean -
/impl-hygiene-reviewclean - Baseline reconciliation complete
- Plan status →
completein overview frontmatter
Context: Per CLAUDE.md §Fix Completeness, a plan is not done until:
- Matrix tests cover every relevant dimension
- At least one semantic pin exists (for this plan: the hot-path wrapper forwarding IS the semantic pin — if the wrapper is reverted,
./test-all.shfails to find its implementation) - Debug AND release builds pass
./test-all.shgreen/tpr-reviewpassed/impl-hygiene-reviewpassed AFTER TPR clean
§09 enforces all of the above as explicit checklist items.
Reference implementations:
- rustc: post-refactor gates include
./x.py test,./x.py check,./x.py fmt, full CI green on try build - Swift: post-SIL-refactor gates include
utils/build-script --test --verifier-test, stress-test and idempotency checks - Gleam: post-refactor gates include
cargo test, format, and a throwaway-branch CI run
Depends on: §01-§08 (this section is the terminal gate, so it depends on everything).
09.1 Full Local Verification Sweep
File(s): No edits — verification only
Run every verification command that exercises the reorganized state. Each must exit 0.
-
Test suite (via wrapper):
cd /home/eric/projects/ori_lang timeout 150 ./test-all.sh 2>&1 | tee plans/project-reorganization/baseline/test-all-after.log echo "Exit: $?"- Exit 0
- Output saved as post-plan baseline for comparison with
baseline/test-all-before.log
-
Test suite (direct, no wrapper):
timeout 150 ./scripts/dev/test-all.sh 2>&1 | tail -15 # Expected: identical to wrapper output- Exit 0
-
Full check (wrapper → internal chain):
timeout 150 ./full-check.sh 2>&1 | tail -15 # Expected: runs clippy-all then test-all, both pass- Exit 0
-
Fmt check:
timeout 60 ./fmt-all.sh 2>&1 | tail -10- Exit 0
-
Build:
timeout 150 ./build-all.sh 2>&1 | tail -10- Exit 0
-
Clippy (cleanly-moved):
timeout 150 ./scripts/dev/clippy-all.sh 2>&1 | tail -10- Exit 0
-
LLVM test (cleanly-moved):
timeout 150 ./scripts/dev/llvm-test.sh 2>&1 | tail -10- Exit 0
-
Cargo workspace commands:
cargo check --workspace 2>&1 | tail -5 && echo OK || echo FAIL cargo clippy --workspace --all-targets -- -D warnings 2>&1 | tail -5 && echo OK || echo FAIL cargo build --workspace 2>&1 | tail -5 && echo OK || echo FAIL timeout 150 cargo t 2>&1 | tail -15 && echo OK || echo FAIL timeout 150 cargo st 2>&1 | tail -15 && echo OK || echo FAIL- All 5 commands OK
-
Version sync check:
./scripts/sync-version.sh --check 2>&1 | tail -5- “All versions in sync”
-
lefthook pre-commit simulation:
lefthook run pre-commit 2>&1 | tail -15 # Expected: fmt-all runs (via wrapper), full-check runs (via wrapper), version-sync runs- Exit 0, all hooks pass
-
Global grep sweep — zero stale references:
rg '\./(clippy-all|llvm-build|llvm-clippy|llvm-test)\.sh' 2>&1 \ | grep -v '^scripts/dev/' \ | grep -v '^plans/project-reorganization/' \ | grep -v '^plans/completed/' # Expected: empty (plans/completed/ may still have historical references — those are archival and acceptable)- Zero active references
- Note:
plans/completed/is explicitly excluded from the sweep because it’s archival history — if someone ran/review-planon a completed plan and found stale references, that would be a separate cleanup, not §08’s responsibility
-
Global grep for
website/(ori_lang-internal):rg 'website/' . --type sh --type md --type toml --type yaml 2>&1 \ | grep -v '^plans/project-reorganization/' \ | grep -v 'ori-lang-website' \ | grep -v 'playground-wasm' # Expected: only legitimate sibling-repo references -
Subsection close-out (09.1) — MANDATORY before starting 09.2:
- All 13+ verification commands green
- Zero stale references
- test-all-after.log captured for baseline comparison
- Update this subsection’s
statusin section frontmatter tocomplete - Run
/improve-toolingretrospectively on THIS subsection — 13 verification commands is exactly the case where ascripts/dev/verify-reorg.shor more generally ascripts/dev/full-verify.shhelper would pay off. If theverify-everything.shhelper from §06.6’s retrospective was built, it may subsume this. Verify and commit any extension viabuild(scripts): extend verify-everything.sh with version-sync and lefthook — surfaced by project-reorganization/section-09.1 retrospective. - Run
/sync-claudeon THIS subsection — check whether code changes invalidated any CLAUDE.md,.claude/rules/*.md, orcanon.mdclaims. If no API/command/phase changes, document briefly. Fix any drift NOW.
09.2 Baseline Reconciliation
File(s): No edits — verification only
Compare the post-plan state against the §01 baseline to produce a complete before/after diff.
-
Find the §01 baseline commit:
cd /home/eric/projects/ori_lang BASELINE_COMMIT=$(git log --oneline --all | grep "docs(plan): freeze project-reorganization baseline" | head -1 | awk '{print $1}') echo "Baseline commit: $BASELINE_COMMIT"- Commit hash captured
-
Full diff stat:
git diff "$BASELINE_COMMIT"..HEAD --stat | tee plans/project-reorganization/baseline/diff-baseline-to-end.txt- Output saved
- Review the scope: does the change set match what §02-§08 collectively described? (~240+ file changes in §08 alone, plus §02, §03, §04, §05, §06, §07 contributions)
-
Per-category diff summary:
{ echo "=== Files added ===" git diff "$BASELINE_COMMIT"..HEAD --stat --diff-filter=A | head -30 echo "" echo "=== Files deleted ===" git diff "$BASELINE_COMMIT"..HEAD --stat --diff-filter=D | head -30 echo "" echo "=== Files renamed ===" git diff "$BASELINE_COMMIT"..HEAD --stat --diff-filter=R | head -30 echo "" echo "=== Files modified ===" git diff "$BASELINE_COMMIT"..HEAD --stat --diff-filter=M | head -30 } > plans/project-reorganization/baseline/diff-breakdown.txt- Every category’s result matches expectations from the plan sections
-
Expected category counts relative to
BASELINE_COMMIT..HEAD(i.e., files that appear in the diff stat — NOT filesystem-only cleanup or pre-baseline artifacts) — reconciled with the 30/12/18 scratchpad math finalized in iteration 2, §03 gitignore correction from iteration 3, and recomputed against baseline in iteration 4 per TPR-XX-002-codex:- Added (git-diff visible): 4 hot-path wrappers at root + 12 scratchpad migrations (11 with Astro
docsSchema+ 1 with body-format proposal schema) + 1 new diagnostic helper (scripts/diagnostics/_repo-root.sh) = ~17 new files. NOTE: §01 baseline artifacts, §01-§09 section files themselves, and the plan index/overview are committed AT the baseline commit and therefore DO NOT appear inBASELINE_COMMIT..HEADas new files — they are pre-baseline state. - Deleted (git-diff visible): Git-tracked deletions only — ~20 LSP files (from
tools/ori-lsp/) + 3 blog files (cross-repo migration) + 2build/debug/*tracked leaks + 1compiler/ori_lsp/.gitkeep+ 1rebuild-playground.sh= ~27 deletions. NOTE:scratchpad/contents (gitignored, not tracked) andsamples/(gitignored) do NOT appear in git diff — they are filesystem-only cleanup. The 18 scratchpad deletions and 1 samples/ deletion are reported via the §01 baselinefind scratchpadsnapshot comparison, NOT git diff. - Renamed (git rename-tracked): 8 scripts moved to
scripts/dev/+ 16+ diagnostic scripts moved toscripts/diagnostics/= ~24 renames - Modified (git-diff visible):
Cargo.toml+scripts/sync-version.sh+.github/workflows/auto-release.yml+ CLAUDE.md + CONTRIBUTING.md + ~200plans/**/*.md(Pattern A sweep) +.claude/rules/*.md+.claude/skills/*+ LSP docs + formatter docs +plans/roadmap/section-22-tooling.md+ 7 edited diagnostic scripts (repo-root resolution fix) +compiler/oric/src/llvm_dump/mod.rscomment +compiler/ori_llvm/tests/aot/util/aot.rs:168string = ~240+ modifications..gitignoreis NOT modified (iteration 3 correction: the/build/edit was withdrawn as unnecessary; the existing**/build/rule already works). - Actual counts approximately match the reconciled estimates
- Verification gate:
git diff BASELINE_COMMIT..HEAD --stat --diff-filter=M -- .gitignorereturns empty (proves.gitignoreis unchanged per iteration 3 correction)
- Added (git-diff visible): 4 hot-path wrappers at root + 12 scratchpad migrations (11 with Astro
-
Subsection close-out (09.2) — MANDATORY before starting 09.3:
- Baseline commit hash captured
- Full diff stat saved
- Per-category breakdown saved
- Expected counts match actual counts within reason
- Update this subsection’s
statusin section frontmatter tocomplete - Run
/improve-toolingretrospectively on THIS subsection — the “compare HEAD to a baseline commit” pattern is useful. Is there ascripts/dev/plan-diff-summary.sh <plan-name>helper that looks up the baseline commit for a given plan (from plans//baseline/ artifacts) and produces the per-category summary? Likely valuable for any plan that uses §01-style baselines. If yes, build and commit via build(scripts): add plan-diff-summary.sh — surfaced by project-reorganization/section-09.2 retrospective. - Run
/sync-claudeon THIS subsection — check whether code changes invalidated any CLAUDE.md,.claude/rules/*.md, orcanon.mdclaims. If no API/command/phase changes, document briefly. Fix any drift NOW.
09.3 CI Dry-Run (Test PR)
File(s): No edits — verification only
Push the post-plan state to a throwaway branch and verify CI workflows pass. This catches any CI breakage that the local sweep missed.
-
Decide on a throwaway branch name:
project-reorg-ci-test-YYYY-MM-DD -
Push the current HEAD to the throwaway branch:
cd /home/eric/projects/ori_lang BRANCH="project-reorg-ci-test-$(date +%Y-%m-%d)" git push origin HEAD:"$BRANCH" -
Open a draft PR against
master(ormain):gh pr create --base master --head "$BRANCH" --title "DRAFT: project-reorganization plan CI verification" --body "This is a draft PR created for CI verification only. Do not merge.
See plans/project-reorganization/section-09-verification.md §09.3.
This PR tests that:
- .github/workflows/ci.yml passes with the reorganized scripts
- .github/workflows/auto-release.yml still parses (doesn’t run on PRs)
- Version sync works (./scripts/sync-version.sh —check)
If all checks pass, this PR is closed without merging and the branch is deleted.” —draft
- [ ] Monitor CI:
```bash
gh pr checks # shows status of each workflow
# Wait for all to complete (may take ~15-25 minutes for the full Ori CI)
-
All workflows green
-
If any workflow red: investigate — CI breakage is a blocker for plan completion
-
Close the draft PR and delete the branch:
gh pr close "$BRANCH" --comment "CI verification complete — closing draft PR per §09.3 completion. See plans/project-reorganization/section-09-verification.md for the verification record." git push origin --delete "$BRANCH" -
Subsection close-out (09.3) — MANDATORY before starting 09.4:
- Throwaway branch pushed
- Draft PR opened
- All CI workflows green
- Draft PR closed and branch deleted
- Update this subsection’s
statusin section frontmatter tocomplete - Run
/improve-toolingretrospectively on THIS subsection — CI dry-runs are a standard pattern. Is there ascripts/dev/ci-dry-run.sh <plan-name>helper that pushes a throwaway branch, opens a draft PR, waits for checks, and cleans up? Broadly useful beyond this plan. If yes, build and commit viabuild(scripts): add ci-dry-run.sh — surfaced by project-reorganization/section-09.3 retrospective. - Run
/sync-claudeon THIS subsection — check whether code changes invalidated any CLAUDE.md,.claude/rules/*.md, orcanon.mdclaims. If no API/command/phase changes, document briefly. Fix any drift NOW.
09.4 /tpr-review Full Plan Execution
File(s): No edits — independent dual-source review
Run /tpr-review on the full plan directory. This is the mandatory independent review per CLAUDE.md §Fix Completeness. If findings come back, they must all be triaged before §09 completes.
-
Invoke
/tpr-review:Skill: tpr-review Args: plans/project-reorganization/ -
Wait for the dual-source review to complete (expect ~20-45 min wall time per the dual-tpr polling protocol — this is the legitimate review timeout window, NOT a test command)
-
Review findings:
- Zero findings:
/tpr-reviewclean, proceed to 09.5 - Findings: record in §09.R, triage each per CLAUDE.md §NEVER reason out of TPR findings:
- Accepted findings → fix them, re-run
/tpr-reviewuntil clean - Rejected findings → document rejection rationale with explicit architectural reason
- NEVER use “pre-existing”, “out of scope”, “future improvement”, or any deferral language
- Accepted findings → fix them, re-run
- Zero findings:
-
Subsection close-out (09.4) — MANDATORY before starting 09.5:
-
/tpr-reviewexecuted - Findings triaged (all fixed or rejected with rationale)
- Re-runs until clean (if findings existed)
- Update this subsection’s
statusin section frontmatter tocomplete -
third_party_review.statusin section-09 frontmatter →resolvedif findings existed,noneif clean - Run
/improve-toolingretrospectively on THIS subsection — the /tpr-review flow is already well-instrumented via the dual-tpr-gemini plan. No likely tooling gap at the per-subsection level. Document: “Retrospective 09.4: /tpr-review tooling is mature; no gaps.” - Run
/sync-claudeon THIS subsection — check whether code changes invalidated any CLAUDE.md,.claude/rules/*.md, orcanon.mdclaims. If no API/command/phase changes, document briefly. Fix any drift NOW.
-
09.5 /impl-hygiene-review Full Plan
File(s): No edits — hygiene review
Run /impl-hygiene-review on the plan’s scope. Per CLAUDE.md §Fix Completeness, this MUST run AFTER /tpr-review is clean — hygiene review assumes TPR-level correctness.
-
Invoke
/impl-hygiene-review:Skill: impl-hygiene-review(The skill autoscopes to the active work arc per its skill description.)
-
Wait for hygiene review completion (similar 20-45 min timeout window)
-
Review findings in impl-hygiene vocabulary (LEAK, DRIFT, GAP, WASTE, EXPOSURE, BLOAT, NOTE):
- Zero critical/major findings: proceed
- Findings: triage each:
LEAKfindings → fix (the reorganization introduced a leak, which is a blocker)DRIFTfindings → fix (the reorganization failed to sync a reference)WASTEfindings → fix (unnecessary artifacts introduced by the reorganization)BLOATfindings → reconsider scope (did we migrate too much scratchpad content?)NOTEfindings → document and move on (may be optional improvements)
-
Subsection close-out (09.5) — MANDATORY before starting 09.6:
-
/impl-hygiene-reviewexecuted - All findings triaged
- Update this subsection’s
statusin section frontmatter tocomplete - Run
/improve-toolingretrospectively on THIS subsection — similar to 09.4, the impl-hygiene-review flow is mature. Document: “Retrospective 09.5: /impl-hygiene-review tooling is mature; no gaps.” - Run
/sync-claudeon THIS subsection — check whether code changes invalidated any CLAUDE.md,.claude/rules/*.md, orcanon.mdclaims. If no API/command/phase changes, document briefly. Fix any drift NOW.
-
09.6 Mission Success Criteria Checklist & Plan Close
File(s): plans/project-reorganization/00-overview.md (frontmatter update + success criteria checkboxes), plans/project-reorganization/index.md (status updates)
The final step — mark the plan complete by updating the overview’s mission success criteria checkboxes to [x], transitioning the overview’s status: not-started to status: complete, and updating the index.
-
Open
00-overview.mdand check off each mission success criterion:- Criterion: “Root entry inventory” → checked (delivered by §02, §03, §04, §05, §06, §07, §08)
- Criterion: “Zero stale root references” → checked (delivered by §08)
- Criterion: “Lefthook pre-commit passes” → checked (delivered by §08, verified 09.1)
- Criterion: “CI green” → checked (delivered by §08, verified 09.3)
- Criterion: ”./test-all.sh green” → checked (delivered by §08, verified 09.1)
- Criterion: “Blog is served from website” → checked (delivered by §04)
- Criterion: “LSP deletion is atomic” → checked (delivered by §06)
- Criterion: “Scratchpad is empty or absent” → checked (delivered by §07)
- Criterion: “Gitignore drift bug fixed” → checked (delivered by §03)
- Criterion: “Stale website/ paths repaired” → checked (delivered by §02, §05)
- Criterion: “Hot-path muscle memory preserved” → checked (delivered by §08)
- Criterion: “/tpr-review clean” → checked (delivered by §09.4)
- Criterion: “/impl-hygiene-review clean” → checked (delivered by §09.5)
- Criterion: ”./test-all.sh green after all sections complete” → checked (delivered by §09.1)
-
Update overview frontmatter:
status: not-started→status: complete -
Update
index.mdQuick Reference table: all sections status →Complete -
Update every section’s frontmatter
statusfield tocomplete. Handles bothnot-started → completeandin-progress → completetransitions (TPR-XX-002-codex iteration 5 fix) — the plan-audit linter auto-flips top-level section status toin-progresswhen TPR findings land as[x]resolved in the .R blocks, even before implementation starts. §09.6 must therefore transition BOTH states tocomplete:cd /home/eric/projects/ori_lang for f in plans/project-reorganization/section-*.md; do sed -i 's/^status: not-started$/status: complete/' "$f" sed -i 's/^status: in-progress$/status: complete/' "$f" done # Verify both states are cleared grep -lE '^status: (not-started|in-progress)' plans/project-reorganization/ \ || echo "all sections complete (both not-started and in-progress transitions handled)"Also update the body-level
**Status:**headers (if any section has a**Status:** In Progress (pre-execution)note from iteration 5’s linter-drift fix, update to**Status:** Complete):for f in plans/project-reorganization/section-*.md; do sed -i 's|^\*\*Status:\*\* Not Started$|**Status:** Complete|' "$f" sed -i 's|^\*\*Status:\*\* In Progress (pre-execution).*|**Status:** Complete|' "$f" done -
Commit the final plan-sync update:
git add plans/project-reorganization/ git commit -m "docs(plan): mark project-reorganization plan complete
All 14 mission success criteria in 00-overview.md satisfied. All 9 sections (§01-§09) complete. /tpr-review clean, /impl-hygiene-review clean. CI dry-run passed, ./test-all.sh green, lefthook green.
Final state (vs §01 baseline):
- 46 → ~38 visible root entries
- 37 → ~32 tracked root entries
- 11 → 6 root .sh files (install, setup + 4 hot-path wrappers)
- 747 → 747 total references (sweep preserved hot-path, updated cleanly-moved)
- 8 internal dev scripts consolidated to scripts/dev/
- 16 diagnostics consolidated to scripts/diagnostics/
- tools/ori-lsp deleted
- scratchpad/ triaged (12 migrated, 18 deleted, directory removed; 30 files processed matching §01 baseline)
- blog/ migrated cross-repo to ori-lang-website
- 2 build/debug leak files removed via
git rm --cached(no.gitignoreedit — iteration 3 correction: the existing**/build/rule already covers root-levelbuild/, verified viagit check-ignore --no-index) - 2 stale website/ paths repaired
- profile.json.gz preserved (intentional)
- install.sh + setup.sh preserved (public API)
Refs: plans/project-reorganization/00-overview.md”
- [ ] Verify final commit:
```bash
git log --oneline -1
# Expected: docs(plan): mark project-reorganization plan complete
- Subsection close-out (09.6) — MANDATORY before 09.R:
- All mission criteria checked
- Overview status → complete
- Index updated
- Final commit landed
- Update this subsection’s
statusin section frontmatter tocomplete - Run
/improve-toolingretrospectively on THIS subsection — the sed-update-all-sections-status pattern is a reusable one. Is there ascripts/dev/plan-mark-complete.sh <plan-dir>helper that updates overview status + section statuses + index status in one command? Likely useful for every future plan. If yes, build and commit viabuild(scripts): add plan-mark-complete.sh — surfaced by project-reorganization/section-09.6 retrospective. - Run
/sync-claudeon THIS subsection — check whether code changes invalidated any CLAUDE.md,.claude/rules/*.md, orcanon.mdclaims. If no API/command/phase changes, document briefly. Fix any drift NOW.
09.R Third Party Review Findings
-
[TPR-XX-005-codex][low](iteration 3)plans/project-reorganization/section-09-verification.md:252— DRIFT: Finish the 12/18 scratchpad math update in §09. Evidence: §09.2 still expected “14 scratchpad migrations” at line 252 and “17-18 scratchpad deletions” at line 253, even though §07 and the overview were reconciled in iteration 2 to 12 migrations and 18 deletions. The final commit template at line 457 was fixed in iteration 2, but the baseline-reconciliation bullets at §09.2 were not. Impact: The final verification math still disagreed with the canonical §07 inventory, so the end-state diff review could look “wrong” even when the implementation matched the corrected 30-file scratchpad contract. Required plan update: Update §09.2’s expected added/deleted counts to the reconciled scratchpad numbers. Basis: fresh_verification. Confidence: low. Resolved: Fixed on 2026-04-11 iteration 3. Updated §09.2 “Expected category counts” bullets with the reconciled 12/18 math and the per-destination schema breakdown. Added the_repo-root.shnew helper to the Added count. Called out in the Modified bullet that.gitignoreis UNCHANGED per the TPR-XX-002-codex iteration 3 correction (iteration 1’s false-premise/build/edit was withdrawn). -
None at plan start. Populated during §09.4 execution. (Updated 2026-04-11 iteration 3 with 1 resolved finding above.)
09.N Completion Checklist
- Full local verification sweep green (09.1)
- Baseline reconciliation documented (09.2)
- CI dry-run green (09.3)
-
/tpr-reviewclean (09.4) -
/impl-hygiene-reviewclean after TPR (09.5) - All mission success criteria checked (09.6)
- Overview
status: complete(09.6) - Final plan-close commit landed (09.6)
- Plan annotation cleanup: N/A (plan did not add temporary annotations to
.rsfiles) - Plan sync — final synchronization:
- This section’s frontmatter
status→complete -
00-overview.mdQuick Reference table for §09 →Complete -
00-overview.mdall mission success criteria checkboxes →[x] -
00-overview.mdfrontmatterstatus: not-started→status: complete -
index.mdQuick Reference table all sections →Complete - No cross-plan blocker resolutions needed (this plan did not resolve any other plan’s blockers — it’s self-contained)
- This section’s frontmatter
-
/tpr-reviewpassed (already executed in 09.4 — this is a self-reference for the completion checklist; the review IS the work of 09.4) -
/impl-hygiene-reviewpassed (already executed in 09.5) -
/improve-toolingsection-close sweep — per-subsection retrospectives (09.1-09.6) should already be committed. Cross-subsection pattern check: the biggest reusable helpers surfaced by §09 areplan-diff-summary.sh(09.2),ci-dry-run.sh(09.3), andplan-mark-complete.sh(09.6). Verify each was built (or the decision to not build was documented). ALSO: given this is the final section of the entire plan, do a plan-wide tooling audit — look across ALL 9 sections’ retrospectives and identify the most valuable helpers to formalize. Commit any missed helpers viabuild(scripts): finalize project-reorganization plan tooling — plan-wide close sweep. The plan-wide audit is what makes/improve-toolingdiscipline compound across many plans. -
/sync-claudesection-close doc sync — verify Claude artifacts across all section commits. Map changed crates to rules files, check CLAUDE.md, canon.md. Fix drift NOW.
Exit Criteria: The reorganization is complete. 00-overview.md status is complete. Every mission success criterion is checked. ./test-all.sh green, ./full-check.sh green, lefthook run pre-commit green, cargo c/cl/b/t/st all green, ./scripts/sync-version.sh --check green. CI dry-run PR was green and closed. /tpr-review and /impl-hygiene-review both came back clean (or all findings were triaged and resolved). Global grep sweep returns zero stale references (outside archival plans/completed/). The baseline reconciliation shows a coherent before/after diff matching the expected scope from the overview. The plan is ready for merge and §00 overview’s Quick Reference table shows all 9 sections Complete. The project-reorganization plan directory can be moved to plans/completed/project-reorganization/ in a follow-up maintenance commit (not part of this plan’s scope, per the convention that plans self-archive to completed/ only after their merge).