# The ablation record — what each deleted stage measured This is the evidence behind *A Forward Pass on the Graph*, collected in one file so the claim can be checked without reading the whole engine. Labels follow the piece: **[MEASURED]** is a number the engine's own audit produced, **[FACT]** is a file or command you can inspect. The ablation question was always the same: **remove this stage, hold the store and the query set fixed, and see whether hit@10 moves.** A stage that could not move the number went. ## The baselines | Configuration | known-entry hit@10 | Note | |---|---|---| | Live weighted walk (the Epoch-1 configuration) | **0.750** | every additive term, the cross-node multiplier and the synthesizer re-rank switched on | | Raw `querySim` ordering, no bonuses | **0.995–1.000** | all additive terms zeroed; the walk's own stages removed | [MEASURED — the receipts the engine cites are `data/audit/forward/` and the constraints ledger's forward-pass section; the same numbers are restated in `architecture.md` and in the header of `forward-pass.ts`.] Hit@10 is the share of queries whose known correct entry lands in the top ten. A lower score is better code doing worse work; the live configuration was 0.750 while doing strictly more computation. ## The removed stages From `architecture.md`, "Removed from this pipeline on 2026-09-06" — every row lowered known-entry hit@10 relative to the raw ordering: | Removed stage | What it did | Verdict as recorded | |---|---|---| | Contrast sharpening | `amp ^ CONTRAST_SHARPENING_POWER` | exponent was 1.0 — inert | | Ond/onde dual resonance | split-vector routing | removed earlier; full 768d throughout | | Phase path walk | followed `K_ij · cos Δθ` to choose "walked" nodes | fed the partition below | | Cascade weight | `0.4 + 0.6·(amp/maxAmp)` on walked nodes | 24–37% of top-10 membership; harmful | | Cross-node multiplier | **×0.3** on everything not walked | a hard partition; ×1.0 lifted hit@10 by +0.15 to +0.25 on every arm | | Additive bonuses | affinity, confidence, type, lanceBoost, length, age | tiebreakers over dead calibration; three were byte-identical dead | | Synth re-rank | `querySim × (1 + α·proximity)` | the live partition; α → 0 lifted hit@10 from **0.579 to 1.000**, moved blind-judge useful retrieval **30/43 → 37/43** (seven gains, no losses), and rescued **96 entries** with 0 losses | | Phase-displacement sim | 5-step forced Kuramoto → `phaseWinner` | computed every pass, never read | | Coherence composite | 0.3 amp + 0.3 queryFit + 0.3 phaseDiscrim + 0.1 ctx | no control reader; now returns 0 | | Density `capMap` | `dict.length / tierCap` | the caps are falsified | | Phase handoff | `gatedKuramotoStep` / `scoreModulatedStep` | the phase engine is gone | [FACT — `architecture.md` §"Phase Engine — REMOVED"; the same removals are stated in the header comment of `forward-pass.ts`.] ## The three probes that killed the phase engine The engine ran thirteen coupled oscillators and called the result learning. Three pre-registered probes falsified it [MEASURED, recorded in `architecture.md`]: 1. **Locking capacity.** Offline simulation: the coupling cannot lock *any* edge at any strength within 10–20× the configured maximum. There is no regime in which the mechanism does what it was named for. 2. **Persistence.** Phase state is erased within roughly five passes by the natural-frequency rotation. Nothing it wrote survived to be read. 3. **Ablation.** A frozen rotor, a static `K_ij`, resting phases and *random* phases all produced retrieval indistinguishable from the live engine — and the no-walk arm scored higher (hit@10 0.995–1.000 vs 0.750). ## The two rules the survivor obeys Stated in the piece and enforced in the code: 1. **A precision stage can only reorder what recall surfaced.** The cross-encoder re-ranker is bounded to the similarity band where the bi-encoder cannot discriminate (top similarity 0.72–0.80 on the hosted instance, top eight scored) and returns its input unchanged on timeout or failure. It never changes the candidate set. 2. **An admission stage may only add.** The second-key path (the embedding of an entry's opening 200 characters) can only put a candidate back into the list; the candidate is then scored on its own document vector exactly like any other. It is a union, not a max — taking the better of two scores would let a key evict a document match. [FACT — `forward-pass.ts`, `retrieve.ts`, `reranker.ts`; the rules are stated in the piece and in the comments around the admission path.] ## The measurements the piece publishes These are the numbers a reader should be able to re-find in the pack; they are not new claims: | Measurement | Value | Where | |---|---|---| | Raw no-bonus hit@10 | 0.995–1.000 | this file, `architecture.md` | | Live weighted hit@10 | 0.750 | this file, `architecture.md` | | Cross-node multiplier ×1.0 lift | +0.15 to +0.25 on every arm | `architecture.md` | | Synth re-rank α → 0 | 96 entries rescued, 0 losses | `architecture.md` | | Retrieval audit, 2026-10-04, in-corpus | hit@10 0.875, 80% grounded, 40+ probes | the engine's `retrieval-audit` run; method described in `architecture.md`; the raw output is not in this pack | | Out-of-corpus decline rate | 1.000, every audit since 2026-09-28, 50 out-of-corpus probes | the same read-only retrieval audit; re-run it to reproduce | | Pure retrieval time on the box | 75–160 ms | a production-box measurement; not in this pack | | HNSW recall at a million vectors | ~99.8% of the true top ten | the engine's HNSW benchmark (whitepaper); not in this pack | The retrieval-audit figures come from the engine auditing itself against its own store; the ablation figures come from the harness described above. They are different instruments and should not be averaged together. ## What this record does not prove - It does not prove the surviving pipeline is the best possible one; it proves the deleted stages were not paying rent. - It does not prove the numbers reproduce on your store. Your embedder, your chunking and your queries are different. Re-run the harness on your own data before trusting a delta. - The store changed while the audit ran. The decline rate held at 1.000 across a changing dictionary, which is the strongest claim here, but the ablation table is a snapshot of one tree at one commit. The code is the authority. This file is the index to it.