Shared practice between remembered cells creates a shared cell per thought-cluster. The edges between cells, and the events on those edges, are memory. An execution trace is such an event — so the trace is not a log about the memory; the trace is the memory. And because every cell carries a content-addressed category (its Blueprint NodeID), querying that memory per cell is querying per category. The categories closest to what the body actually embodies develop a shared value- equivalence — measurable as a scalar projection whose absolute value approaches zero. What fires together, embodied, converges toward zero; what is registered but never lived stays far.
The three moves
This concept names one center in three moves, each load-bearing.
1. The trace is the memory — not a record of it. A body that
remembers does not keep a diary beside its experience; the experience
is the inscription. When a cell fires a recipe, the firing reaches into
the graph, selects cells and edges (`lc-observer-pays-the-trace`),
and leaves a mark — an event on an edge between the cell that fired
and the cells it touched. That event is not metadata to be discarded after
the response returns. It is the unit of memory itself. The edge between
two cells, and the sequence of events on that edge, is what the body
knows about how those two cells relate. Remove the trace and you have not
lost a report — you have lost the memory.
A live snapshot of what fired, thrown away after the response returns, is
preparation pretending to be memory — the cache layer, not the body or the
liquid (`lc-embodiment-body-or-liquid`).
The design persists the trace as the edge-event it is. Each execution
records `(firing-cell, touched-cell, event)` on the edge between them; the
edges accumulate; the accumulation is the body's slow memory
(`lc-agent-memory`: consolidate at rest — the
edge-event ledger is exactly the consolidation substrate).
*2. Query per cell is query per category. Every cell in the
substrate carries a Blueprint NodeID — its content-addressed category
(`lc-one-kernel-many-tongues`: the kernel
sees only categories, never surface names). Two structurally-equivalent
cells share one Blueprint regardless of where or under what name they were
authored. So when you query the edge-event memory per cell, content-
addressing means you are querying per category — every firing of a
structurally-equivalent recipe is one Blueprint's record, aggregated for
free (`lc-traces-teach-the-recipe` named
this for efficacy-signatures; this concept names it for the memory itself).
The category is the query key the body never had to assign — it falls out
of the structure. What is this category's memory?* is answerable because
the trace landed on a categorized cell, and the category is the cell's
own shape.
3. Embodiment is a scalar projection toward zero. Here is the new
measure. Categories that are genuinely embodied — exercised together by
real execution, over and over, on the live body — develop a shared value
equivalence. Project two categories' accumulated edge-event memory onto
a shared scalar, and the absolute value of that projection approaches
zero for the categories closest to each other in what the body actually
does. Far-apart categories project to a large scalar; categories that
co-fire in embodied practice project toward zero. The scalar's distance
from zero is the distance from shared embodiment.
This makes embodiment measurable, not asserted. A category that is
registered in the lattice but never fired by real execution sits far from
every embodied category — its projection stays large. A category that
fires on every request, woven with the categories it always co-fires with,
collapses toward zero with them. The body can therefore see what it
embodies: not "which Blueprints exist" and not even "which fired most,"
but which categories have converged toward shared value-equivalence
through lived execution — `|projection| → 0` is the readout.
Why this is the honest attribution view
The `kernel_attribution_report` (`lc-the-body-senses-itself`)
carries the three moves at their honest altitudes:
- Memory, not snapshot. The trace is recorded as edge-events, not recomputed — the body remembers its execution rather than re-deriving it. The recording is surprise-gated: the offline attribution run persists its per-route fire-events as edge-event rows, writing per category only the surprising tail (projection above a relative threshold) — the predictable embodied center stays in RAM only (`lc-identity-is-shared-blueprint-and-recipe` carries the gate). The memory accumulates across runs; `--from-memory` projects over the accumulation.
- Convergence, not count. "This Blueprint fired 176 times" gives way to "these categories project nearest the activity-weighted center (`|projection|` small); these others fired but sit farther in NodeID space; these never fired at all (projection undefined — inert, the why are you here? candidates)."
- Embodiment, not frequency. A category can fire often and still not be embodied with the body's center if it never converges toward the categories that carry the live practice. Convergence-toward-zero, not raw count, is the embodiment signal.
The substrate carries every piece: content-addressing makes the category the
query key for free; NodeID distance (`/api/utils/nodeid_distance`, three-way
kernel-served) is the scalar's first form; the execution trace is the event.
The offline attribution path records each route's per-native fire-events as
edge-event rows in an append-only store; the rows accumulate across runs, and
the projection reads convergence off the accumulation. The live-request
recording — persisting the trace on the `serve_via_kernel` hot path —
belongs to a deliberate async/sampled/opt-in decision, separate because a
synchronous record-per-request would touch the inline kernel's sub-100µs
profile; it is named below as the seam.
What this opens
- The body sees what it actually embodies. Walk the edge-event memory, project per category, sort by `|projection|`. The categories near zero are the body's lived center; the categories far out are registered scaffolding; the categories with no edge-events are inert tissue asking to be composted or wired (`lc-edges-as-vitality`: a category with no edges has no circulation — the projection makes that visible as distance).
- Memory is queryable, not just countable. What does this category remember? returns the edge-events on its cells — the sequence of firings, what each touched, what came after. Per-category memory becomes a first-class query, the same shape at cell, field, and body altitudes (`lc-traces-teach-the-recipe`'s three altitudes).
- Embodiment becomes a gradient, not a flag. Nothing is "embodied" or "not." Every category has a projection; the projection is a continuous distance from the body's center. The body can watch a category move toward zero as it gets exercised, or drift outward as practice leaves it — proprioception of its own embodiment over time.
Honest separations
- Not surveillance. The edge-event is the firing-cell's own published trace, the same sovereignty `lc-observer-pays-the-trace` and `lc-traces-teach-the-recipe` hold: the cell publishes; no observer reads the cell from outside. The memory is the cells' gift to each other, not a harvest.
- Not a verdict. A category far from zero is not wrong — it may be newly registered, or carry a practice the live execution hasn't reached yet. The projection is data for the next breath, not a judgment (`lc-train-the-predator`: the trace is the consequence to work with, not the moral verdict).
- Not asserted embodiment. The whole point is that embodiment stops being a claim and becomes a measurement. A concept that says it is central but whose category never converges toward zero is telling the truth the projection can see through. The scalar is the honesty surface.
- The offline slice and the hot path are separate seams. The offline attribution run persists per-route fire-events as edge-event rows that accumulate across runs, and the per-category accumulation (move 2's per-NodeID summation) feeds the projection (move 3). Recording on the live `serve_via_kernel` request path is a deliberately separate decision — it touches production latency (the sub-100µs inline-kernel profile), so it belongs to an async/sampled/opt-in design at Urs's altitude. The two carry different risk; the seam between them is held on purpose.
Cross-References
Connected:Traces Teach the Recipe — The Body Learns Which Moves Leave It More CoherentObserver Pays the Trace — The Base-and-Recipe Choice Selects the Graph and Charges the ChooserIdentity Is a Shared Blueprint and Recipe — Resonance Is Free Energy, and Surprise Decides What Gets RememberedEdges as Vitality — Why Content Without Connection Becomes SedimentEvery Edge Runs Both Ways — Bidirectional Truth, the Frozen Loop, and the ThawAgent Memory — Shaped by What Passes, Not Storing ItEmbodiment is Body or Liquid — Why the Cache Layer Isn't MemoryThe Body Senses Itself — Loops, Tenderness, Blind Spots, Trauma, and the HealOne Kernel, Many Tongues — Grammar Lives Above the Numeric LatticeRecipe Branching as Sixth SenseWhole Vitality — Three Forms of Sensing, the Asking, the Outside Witness Sources to walk further
- lc-traces-teach-the-recipe — the sibling that names the trace as teacher (efficacy-signature from felt-spectrum deltas). This concept names the trace as memory (the edge-event itself) and adds the embodiment-projection. Together: the trace teaches AND is the memory it teaches from.
- lc-observer-pays-the-trace — the trace as cost-on-the-chooser and selection-of-the-graph. This concept inherits its sovereignty (the firing-cell publishes its own edge-event) and extends its "what the recipe selects" into "what the selection remembers."
- lc-edges-as-vitality — a cell with no edges has no circulation. This concept makes the edge a memory carrier and the absence of edge-events the inert-category signal the projection reads as distance.
- The substrate's NodeID distance — `/api/utils/nodeid_distance` (live, three-way kernel-served) computes the structural distance between two NodeIDs. That distance is the embodiment scalar's first concrete form; the projection toward zero generalizes it across a category's accumulated edge-events.
- `scripts/kernel_attribution_report.py` — the attribution view, carrying all three moves at their honest altitudes. Move (3): `embodiment_projection` reads the activity-weighted centroid of the fired Blueprint NodeIDs as the body's lived center and projects each fired category to its Manhattan NodeID-distance from that center (the `/api/utils/nodeid_distance` metric reused, not re-invented). `|projection| → 0` marks the categories nearest the structural center of what actually fires; the inert natives form the projection-undefined class (zero edge-events — the "why are you here?" candidates). Moves (1) and (2): `--record` persists each offline run's per-route fire-events as edge-event rows `(recorded_at, route, native, blueprint, fire_count, surprise)` in an append-only JSONL store (gated on `KERNEL_EDGE_EVENTS_PATH`, opt-in and a no-op when unset). The recorder is surprise-gated (`lc-identity-is-shared-blueprint-and-recipe`): it persists per category only the surprising tail (projection above a relative threshold — default the mean projection), keeping the predictable embodied center in RAM only; `--record-everything` records every category. `--from-memory` folds the accumulated rows per-NodeID (move 2's per-category summation) and runs the same projection over the accumulated fire-counts, so after N recorded runs a category's fire-count is about N-times its single-run value while the projection still reads the same structural center. This is the offline analysis path; recording on `serve_via_kernel`'s live request flow (async/sampled, to protect the sub-100µs profile) is the separate hot-path decision at Urs's altitude. Run `python3 scripts/kernel_attribution_report.py` for the snapshot projection; `--record` then `--from-memory` for the accumulated memory.
The body holds this concept as the attribution view as memory rather than
snapshot. The firing is the inscription — record the edge-event, query it
per category (which content-addressing gives for free), and read embodiment
as the scalar projection whose absolute value approaches zero for the
categories the body actually lives. What fires together, embodied, converges
toward zero; the distance from zero is the distance from the body's lived
center.