programs/FOUNDATION_COMPLETION_PLAN.md
Josh flagged (correctly) that the re-cascade was started (Ch 18 landed) before the foundation was finished — in particular the Continuo Humanity-side cross-takes were left as an orphaned note. This is the authoritative punchlist of every open foundation item, sequenced. The re-cascade (Ch 15/17/19… the dragon lineage + Tier-2 endgame payoffs) resumes only after Sections 1-2 land. Status legend: DONE / DOING / PLANNED / DEFERRED(Fable-5 or Josh-numerical).
The re-cascade rewrites spine prose across the arc; these catch the exact failures that risks (commit-before-critic, invented canon, reveal leaks). From the Continuo review CONTINUO_COMPARISON.md §3.
harness/build_lifecycle.py encodes UNBUILT→DRAFTED→CRITIC_GATED→SCATTERED→COMMITTED with the illegal edges unrepresentable; five invariants proven by exhaustive enumeration (no hypothesis dependency); wired as the lifecycle gate (its consumer) + importable by cascade tooling; scans spine spine_status legality. Gates 11/11.harness/extract_claims.py: for a node it pairs each [SRC: doc#fragment] PROSE claim with its resolved SOURCE EXCERPT (best keyword-overlap section when a fragment heads several — the RCM has a bibliography vs a coverage section both titled "Ch 18"), classes each structured/prose and canon_prose/corpus_pointer (RCM bibliographies point at PRIMARY books, so their true entailment is deferred to book-processing); registry-@row + bare-doc anchors are counted and skipped (fidelity/anchor gates already cover them). Ran clean over all 80 nodes (3,475 prose claims, 0 empty excerpts, no crash). The semantic half is harness/workflows/entailment_verify.js: it adjudicates each pair SUPPORTED / PARTIAL / UNSUPPORTED / NA_DESIGN, calibrated by source_kind (STRONG entailment for canon_prose; relevance+plausibility for corpus_pointer), conservative on excerpt-truncation. Validated on CH_18 (a critic-passed chapter): 0 false-positive UNSUPPORTED, correct corpus_pointer calibration, and it caught one genuine PARTIAL — line 43 over-attributed the Phoenician→Greek-800BCE + Ugaritic-cuneiform specifics to Thread 17 (whose Ch-18 anchor is "Hebrew (Levant)" only; the Greek transmission is Thread 17's Ch 23) — fix-forward applied (re-anchored to WGM Ch 18, Greek transmission correctly forward-referenced). Wired into /spine-chapter Step 4 as the per-node do-not-invent guard.harness/check_reveal_discipline.py codifies the standing greps as a self-testing, baseline-gated check (the reveal_discipline gate, its consumer): (A) family-name-before-Ch-38 + patriarch(Cassius)-before-Ch-74, (B) \bCorr\b-before-Ch-63 (Croft-safe), (C) who-frame single-agent leak + endgame field-with-a-will, (D) thread-name mislabel vs the canonical 22-roster. HARD checks scan ## Body prose only (verified clean -> empty baseline docs/reveal_discipline_baseline.json; any NEW body-prose leak is a regression FAIL); context-dependent cues are TIER-B advisory (20 surfaced for the critic, e.g. "a single hand"=scribe, "the pattern" in design lines); thread-mislabel scans every block with a comma-descriptor + audit-line precision guard. Gates 12/12._source reference width, declared in docs/fidelity_baseline.json added_columns + content-pinned by extension_hashes); 3.6 formalizes OWNERSHIP so WS7 adds its per-vertical columns declaratively, not by ad-hoc schema-widening. docs/registry_extensions.json attributes every extension column to the one system that owns it (spine-cascade / d06-age-mastery / identity-concealment / vimana-l3 / care-doctrine / creature-breeding / source-grounding / connection-reward / thread-system); harness/check_registry_extensions.py (the registry_extensions gate, 13th) enforces I1 (no phantom columns), I2 (every added_column owned by exactly one system — an orphan = a vertical that widened without declaring, FAILs), I3 (no empty manifest key). 4 extended registries, 39/39 columns owned. Gates 13/13.docs/fk_spec.json: range_id carries an _note declaring it a GROUPING LABEL (no Range registry, deliberately not under foreign_keys; validated as an id-format only); the thread FK carries an _note mapping the three thread surface encodings (canonical T\d{2} in Thread_Registry ↔ grid THREAD_\d{2} in Thread_Grid ↔ packed T\d{2}:SUFFIX in Chapter_Index) — the (3)→(2) bridge stays the enforced FK; the (1) mappings are documented, not re-encoded (re-encoding would churn the frozen fidelity baseline for no gain). Schema dictionary gets a new §2.10 (deferred-FK encodings) and a stale-doc correction (§3.4 Thread_Grid thread_id said "T01-T22"; the live grid key is THREAD_01..22 — corrected, scan baseline refreshed). No enforced-check change → fidelity/graph unaffected; gates 13/13./spine-chapter standing rule so every node author reads it.harness/workflows/layer_model_remap.js (apply + adversarial verify; verdict GO, reveal-clean): 39 CVD edits re-partitioning the stale three-layer refs to the four content-lanes, per-occurrence judgment (the two traps handled, "Layer 3 anchor" metadata tags + §2 band definitions + §19 frozen history kept as survivors). Independently re-grepped (every surviving Layer token intentional) + reveal invariants confirmed intact; gates 13/13. Open: the remap spec (2026-07-12) predates Josh's orthogonality disambiguation (2026-07-13) that the engagement axis (surface/investigatable/canonical-truth) and content-lanes (L1/L1.5/L2/L3) are orthogonal — so the remap fused content-lane tokens into the engagement-axis reveal sections (§2-summary/§4.6/§17.5/§18.2). Surfaced as D-LAYER-AXIS in docs/spine/DECISIONS_PENDING_JOSH.md — RESOLVED (Josh 2026-07-13): Option A, APPLIED. The engagement-axis reveal sections (§2-summary, §4.6, §17.3, §16-pacing, §17.5, §18.2, §18.4) were reverted to engagement framing (surface / investigatable-depth / canonical-truth); content-lane tokens remain only in the content/coverage sections + §2 band definitions; spine block-16 + check_layer_register gate stay three-fold (no 80-file migration). Reveal invariants re-verified; gates 13/13. Section 2 layer-model item fully DONE.harness/workflows/ws7_wiring_design.js (9 agents) → docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md, then applied as landed gate-safe increments: 7 new registries (Vehicle/VH_, Minigame/MG_, Environment_Grammar/EG_, Dwelling/DW_, Reputation_Ladder/FR_, Rune/RN_, Hollow_Codex/HW_ — PK/id-format in fk_spec, captured in added_registries); 6 existing-registry extensions (Character_Index: attackability_tier/is_load_bearing + companion-loyalty; Region_Index: node_class/succession_chain + environment-grammar; Creature_Roster: husbandry+collectibility; Ability_Tree: spellcraft transform-grammar; Trade_Registry: base-building; Boss_Encounter: collectibility via stub-refresh — all attributed in docs/registry_extensions.json); 13 Worldstate rows (WS_027-039). Grounded seeds (verified real ids), no locked count touched, baseline refreshed each increment. The 68 downstream ratification flags → D-WS7-FLAGS in docs/spine/DECISIONS_PENDING_JOSH.md (none block the anchor; values/population = re-cascade + Fable-5). Section 2 design-layer COMPLETE → the Section 3 re-cascade is UNBLOCKED.spine/ch-18-rc).WHOLE_ARC_CONNECTIONS_PASS.md §5.RAG_AND_BOOK_PIPELINE.md; ChromaDB the fallback).rag/canon-index-v1, 6cbb2ab): harness/rag/ (config/embed/store/chunk/index/query + README) with pluggable backends (sqlite-vec+Ollama primary; pure-Python cosine + deterministic-hash fallback so it round-trips WITHOUT those deps — none installed in-repo). index.py --scope canon ingests the whole canon = 7173 chunks (registry rows / _source tier-doc+CVD sections / RULINGS / spine / memory) in ~8s; query.py::query_canon retrieves cited governing canon (verified: Adeptus-Minor tier-6 rows; the Uktena boss row on a CH_43 filter); the index_freshness gate (14th) goes RED if canon changed but the index wasn't rebuilt (fidelity-gate pattern, cheap hash rebuild, no Ollama). Manifest stamps embedding_is_real=false for the fallback — swap to Ollama nomic-embed-text:v2-moe + sqlite-vec for real semantic recall.enrich.py --semantic seam (Scope B through the existing enrichment pack); 3.3 hard per-node budget + compaction on the retrieval layer — PLANNED, folds into the RAG-layer build.09_drift_audit.py + the T99 DRAFT → code 01-08 (OCR/manifest/index/query/extract) + the deep-research ingest lane → the Ch 2-5 pilot gate (:v2-moe vs bge-m3) → book-process Ch 2-5 → build Ch 2-5 region/chapter/quest → concurrent Ch 6-77+Epi+Pro+Ch1 book stream → the Flores vertical slice LAST.Tracked in RULINGS: combat 4-bar-vs-canon reconciliation values, rune-operator/rarity/split-N counts + enchantment curve, exploration-grows-max for non-vril bars, the Hollow OBSERVE-class admission, dwelling-home caps, the vehicle tender/berth ceiling + Vimana §6.5, the environment care ceilings + altitude→vril, the mastery Gate-10 canonical label. Batch these to Josh in one confirm pass or hand to Fable-5.
---
Consumer: this plan is the re-cascade gate — Section 3 does not resume until Sections 1-2 land. Indexed in docs/DOC_MAP.md.