Our memory system’s retriever had a second stage waiting to prove itself. Alongside a semantic seeder stood the graph: 21,379 relations between memories, built across three blocks of careful engineering. The plan was seed, then walk — find the nearest memories by meaning, then follow edges outward to the ones meaning alone cannot reach. And the plan came with a safety argument everyone believed: the walk only ever adds candidates; it never removes one; so it cannot hide an answer. Every clause of that argument is true. The conclusion drawn from it was wrong.

The first crack appeared before any measurement ran, in the ranker. It had been written the obvious way: score every candidate by similarity to the query, serve the top 25. But the walk’s entire purpose is to reach memories that do not resemble the query. Ask what was done about the pneumonia, and the diagnosis resembles the question — while the translation of page seven of the medical report resembles it not at all, even though the two happened minutes apart and an edge joins them. A similarity ranker receives that hard-won memory from the walk and ranks it last. Found, and thrown away. And the system reports success, because every component did its job: the seeder seeded, the walk expanded, the ranker ranked. The answer was in the candidate set and got cut at the final step.

So the hazard model had to be rebuilt, and the rebuilt version is simple. Go through the retriever step by step and ask one question of each: does this step ever decide what not to show? Embedding the query does not. The walk does not — it only adds. But the seeder keeps 25 of thousands. The ranker discards the tail. An abstention threshold discards everything. Any step that removes a candidate can remove the right one, and none of them can tell when it has. The silent-failure hazard we had blamed on routing was never a property of routing. It is a property of narrowing. Expansion cannot lie. Only subtraction can.

Then the graph itself was measured, with the control that earlier enthusiasm had never run: seed alone versus seed-plus-walk, same probes, same cutoff. The walk’s contribution to finding answers was zero. At every cutoff, at every setting. For three times the candidates and a third more latency. At the most generous setting it went negative — the extra candidates pushed a true answer out of the top 25. The subtraction law, observed live, in the component built to be safe from it.

The arithmetic said the walk never had a chance. The seeder alone already found 96.6% of what it was permitted to find. Of the few it missed, the number reachable one hop from any seed was zero out of 208. No ranking function fixes a headroom of zero.

One defense remained: perhaps the graph’s memories were useful as companions — context that makes the answer intelligible even if recall doesn’t count it. So a blind judge was calibrated: shown only a question and a memory, never told how the memory was reached, and explicitly instructed to credit situational companionship. True answers: judged useful 73.3% of the time. Random memories: 0.0%. The graph’s output: 3.3%. Given every chance to be credited for companionship, the graph served memories statistically indistinguishable from random.

The diagnosis produced the law. The program had exactly two edge proposers, and they failed for opposite reasons. The similarity edges were computed from the embedding — and the seeder is an embedding search, so those edges pointed at memories the seeder had already found. A relation computable from geometry is already in the geometry. The sequence edges came from position in a conversation, and they genuinely reached new memories 90% of the time — and the new memories were useless, because being in the same conversation as the answer does not make a memory useful for the question. The translation really does sit beside the diagnosis in the transcript of a life. Adjacency is not relevance.

So the cheap edges are exactly the worthless ones, and not by accident. The edge vocabulary already named the relations that would matter — caused by, contradicts, supersedes, answers. No proposer produced any of them, because every one requires actually understanding what the two memories say. We had built the two edge types a script can produce and skipped the six that require a mind. Which means the graph thesis is not dead. It is untested. What died is the claim that mechanically proposed edges enrich retrieval.

The consequences were enforced, not just recorded. The walk does not ship; a tripwire test fails if anyone turns it back on, and the test names the bar to clear first: an edge type carrying a relation neither geometry nor message order can produce, measured seeder-alone against seeder-plus-graph. The 21,379 edges were kept — a negative result is not a license to destroy data. And the narrowing law started paying rent immediately, in ordinary decisions that would have gone the other way: the keyword fallback now announces itself to the consuming model (a silent 53%-recall fallback presented as confidently as a 97% answer is the old hazard in a new costume), and the index rebuilds when the corpus grows, because a memory that exists and cannot be found is the same failure with extra steps.

For fairness, the record also preserves what the discipline caught on the way here: a measurement that understated the retriever because its probes included forbidden targets; an inferred claim about the graph rescuing memories that a missing control overturned; and an experiment that appeared to vindicate the graph until someone checked the ruler and found the edges had been built from the same conversations the ground truth was defined by. Even a wiring test was caught passing for a reason it never named — the code was mutated to break the exact protection it claimed to prove, and it still passed. It was rewritten. An instrument must be caught lying before it can be believed.