BiasField averages all ancestors into a gradient. Codex keeps each ancestor distinct — and only the ones that survived precipitation.
When We finishes a generation, its collective Geruon has a frame economy full of harm-routed frames. Some have been merged many times. Some have formed L2 associations. Some have survived multiple induction cleans. The question: what enters the next generation's Selfs?
There are two paths.
BiasField: deposit every ancestor frame as a vector×weight into a shared gradient field. The next generation's Self lenses read this field through blend_into() — a continuous mix of all ancestors, weighted toward the heaviest. The specific ancestor dissolves. What remains is the average.
Codex: keep each ancestor as a discrete entry. The next generation's Self reads its own Codex — finds the nearest matching ancestor entry — and biases specifically toward that one. The ancestor is preserved. Not averaged. Not dissolved.
We chose Codex.
Not every frame. Only the ones that survived precipitation.
Precipitation has three conditions: cross-phase survival (at least one induction clean), prediction-path activation (the system actually used this frame), and structural stability (its weight isn't changing too fast). A frame that meets all three is not an ephemeral pattern. It is something the system repeatedly returned to, used, and held steady.
This is the first filter. Before inheritance, before Codex lookup, before any other Self reads it — the system's own frame economy decides what is stable enough to pass on.
Gen N ends: collective Geruon → enrich() → precipitate() marks qualifying frames → collective_codex.add(precipitated frames only) Gen N+1 starts: Self.init_generation() reads self._prev_codex → _make_self → Geruon(codex=inherited_codex) → process_vec() → Codex lookup: iterate all ancestor entries → find nearest match → blend specifically toward that ancestor
This is discrete inheritance. Not "ancestors generally thought." Not "the average of all past experience." A specific ancestor — the one closest to what the Self is currently seeing — biases the current perception. The ancestor's Gödel ID, its τ at birth, its harm score — all preserved in the gid chain.
The translation layer in M6 will read not just what a frame contains — but who inherited it from whom.
A Codex entry's gid chain traces back through generations. An entry from Gen 0, marked as harm by Self_1 at τ=0.75 in TENSING phase, inherited by Gen 2 Self_0 through Codex lookup — this entire history is readable without decoding a single vector dimension. The structure is the story.
BiasField inheritance loses this. When all ancestors are averaged into a gradient, the question "where did this specific bias come from" has no answer. The gradient is smooth. History is discrete.
Precipitation is not just a mechanism. It is the first judgment that a frame is worth remembering. Before any other Self verifies it, before it survives cross-generation competition, before it becomes an anchor — the system itself decides: this frame was stable enough to write down.
Everything downstream — inheritance, cross-Self verification, anchor status, value judgment at the boundary — depends on this first filter. A frame that fails precipitation is not wrong. It is simply not stable. And instability is the only thing the system refuses to pass on.