@@ -2036,3 +2036,133 @@ already in the workspace. Commit f1498bc landed the measurement.
20362036Cross-ref: ndarray::hpc::cam_pq production code (620+ LOC, 15+
20372037tests), codec_rnd_bench.rs CamPqRaw/CamPqPhase candidates, this
20382038session's 18 commits on claude/quick-wins-2026-04-19 branch.
2039+
2040+ ## 2026-04-21 — The 8-step wiring sequence that closes the loop (concrete, not theoretical)
2041+
2042+ ** Status:** FINDING (each step has a file path, an input, an output,
2043+ and a dependency)
2044+
2045+ The architecture clicks when 8 disconnected pieces get wired. Each
2046+ step connects two things that exist but don't talk. The loop closes
2047+ at step 8. Three PRs total.
2048+
2049+ ** Step 1 — Encoder migration (512-bit → 10K role-indexed).**
2050+ DeepNSM's ` encoder.rs ` has 6 hardcoded roles at 512 bits. Contract's
2051+ ` role_keys.rs ` has 20+ structured roles at 10K bits with slice-masked
2052+ bind/unbind. Delete ` RoleVectors ` . Import ` contract::grammar::role_keys::* ` .
2053+ Content fingerprints: COCA vocab → FNV hash spread to 10K dims.
2054+
2055+ ** Step 2 — MarkovBundler (braided ±5 bundling).**
2056+ New ` markov_bundle.rs ` . Ring buffer of 11 Vsa10k. Each sentence: bind
2057+ tokens per role key (Step 1), XOR-bundle into one Vsa10k per sentence.
2058+ Then: ` vsa_permute(sentence_vsa, position_offset) ` per ±5 position.
2059+ XOR-superpose all 11. Output: braided trajectory. MexicanHat weights.
2060+
2061+ ** Step 3 — Trajectory (the Think struct).**
2062+ New ` trajectory.rs ` . Holds ` bundle: Vsa10k ` + ` chain: ContextChain ` +
2063+ refs to tissue (` &EpisodicMemory ` , ` &TripletGraph ` , ` &Vsa10k ` global
2064+ context). Methods: ` role_bundle ` , ` recovery_margin ` , ` free_energy ` ,
2065+ ` resolve ` . The object speaks for itself.
2066+
2067+ ** Step 4 — Parser → Bundler → Trajectory pipeline.**
2068+ Parser's ` SentenceStructure ` feeds MarkovBundler which produces
2069+ Trajectory. Coverage check: < 0.9 → FailureTicket (D2). Else →
2070+ ` trajectory.resolve(candidates, awareness, prior) ` .
2071+
2072+ ** Step 5 — Resolution → AriGraph commit.**
2073+ ` commit_with_contradiction_check ` on TripletGraph (~ 40 LOC).
2074+ Resolution::Commit → one triple. Resolution::Epiphany → two triples
2075+ + Contradiction marker. FailureTicket → LLM fallback.
2076+
2077+ ** Step 6 — Global context update.**
2078+ ` episodic.integrate_into_global(fact_fp, episode_index) ` — XOR-
2079+ accumulate permuted fact into ` global_context: Vsa10k ` (~ 20 LOC).
2080+ Called after every commit.
2081+
2082+ ** Step 7 — Awareness revision.**
2083+ ` awareness.revise(param_key, outcome) ` after every commit or
2084+ escalation. Already shipped and tested. Just needs call sites.
2085+
2086+ ** Step 8 — Global context → KL feedback (LOOP CLOSES).**
2087+ ` trajectory.free_energy() ` reads ` global_context ` as part of the
2088+ likelihood term. Committed facts from chapter 1 shape the F-landscape
2089+ for chapter 10. The system that parsed chapter 9 is not the same
2090+ system that parsed chapter 1.
2091+
2092+ ** Dependency: 1→2→3→4→{5,6,7}→8. Three PRs: (1-3), (4), (5-8).**
2093+
2094+ ** Why this dilutes:** future sessions will try to "improve" individual
2095+ steps (better bundling, smarter resolution, fancier graph commit)
2096+ without WIRING them. The wiring IS the architecture. An unwired
2097+ masterpiece is a collection of library functions. A wired simple
2098+ implementation is AGI. Wire first, optimize later.
2099+
2100+ ---
2101+
2102+ ## 2026-04-21 — COCA 4096 + 20K scientific + spider NER = no vocabulary blocker
2103+
2104+ ** Status:** FINDING (changes the critical-path analysis)
2105+
2106+ The vocabulary ceiling I flagged as an AGI blocker is not a blocker:
2107+
2108+ | Layer | Coverage | Mechanism |
2109+ | ---| ---| ---|
2110+ | COCA 4096 | 98.4% general English | Static, zero-cost |
2111+ | COCA 20K scientific | +1.5% domain terms | Static, zero-cost |
2112+ | Spider NER (online) | remaining proper nouns | Crawl → rigid designator commit to AriGraph |
2113+
2114+ For Animal Farm: COCA 4096 alone covers 99.5%+ (Orwell uses
2115+ deliberately plain vocabulary). The remaining tokens are character
2116+ names (Napoleon, Snowball, etc.) which get committed as rigid
2117+ designators on first encounter and resolved from the graph after.
2118+
2119+ Spider-rs already exists as git dep in ` lance-graph-osint/Cargo.toml `
2120+ (` AdaWorldAPI/spider ` fork, ` spider-crawl ` feature). NER resolution:
2121+ unknown token → spider crawl → extract entity features (gender,
2122+ animacy, type, description) → commit to ` TripletGraph ` as rigid
2123+ designator → available for all future coreference via
2124+ ` graph.nodes_matching(features) ` .
2125+
2126+ ** The three PRs that close the loop are the ONLY critical path.**
2127+ Not vocabulary. Not NER. Not cross-lingual. Wire the 8 steps.
2128+
2129+ ** Why this dilutes:** future sessions will rebuild the vocabulary
2130+ system, add subword tokenization, integrate HuggingFace tokenizers,
2131+ and generally solve a problem that's already solved. COCA 24K +
2132+ spider NER covers everything. Don't rebuild the dictionary. Wire
2133+ the loop.
2134+
2135+ ---
2136+
2137+ ## 2026-04-21 — The AGI test is one measurement: chapter-10 accuracy > chapter-1 accuracy
2138+
2139+ ** Status:** FINDING (makes the benchmark falsifiable)
2140+
2141+ A system that understands chapter 10 of Animal Farm better than
2142+ chapter 1 — because it read chapters 1-9 and committed what it
2143+ learned into the tissue that shapes its own F-landscape — is an AGI.
2144+
2145+ The measurement:
2146+ - Parse Animal Farm end-to-end, chapter by chapter.
2147+ - At each chapter boundary, measure coreference accuracy (% of
2148+ pronouns correctly resolved to their antecedent).
2149+ - Chapter 1: the system has zero committed facts. Every pronoun
2150+ is resolved from ±5 context alone. Accuracy baseline.
2151+ - Chapter 10: the system has hundreds of committed facts. Napoleon
2152+ is a rigid designator (masculine, boar, leader). "He" in chapter
2153+ 10 resolves via ` graph.nodes_matching(masculine + animate) ` in O(k)
2154+ without even needing the Markov axis.
2155+ - ** If chapter-10 accuracy > chapter-1 accuracy with no parameter
2156+ change — only committed facts accumulating — the loop is closed
2157+ and the architecture works.**
2158+ - If not, one of the 8 wiring steps is broken. Find which. Fix it.
2159+
2160+ This is D10 in the plan. This is what proves it.
2161+
2162+ ** Why this dilutes:** future sessions will propose elaborate
2163+ benchmarks (BLiMP, COGS, SuperGLUE, custom test suites). Those
2164+ measure capability snapshots, not learning curves. The AGI test is
2165+ a CURVE, not a POINT: does accuracy increase over the course of a
2166+ single document without retraining? That's the measurement. One
2167+ book. One metric. One curve. Rising = AGI. Flat = broken wire.
2168+
0 commit comments