UNITARES · glossary

Glossary Drift Audit — 2026-06-20

Method: Swept docs/ontology/, docs/proposals/, docs/operations/, CLAUDE.md, and AGENTS.md for a fixed list of load-bearing terms. For each term, recorded every distinct sense (the question it answers) and which file pins that sense. A term is flagged DRIFT when the same word answers a different question in different places without a marker telling the reader which sense is meant.

Outcome: This audit seeded docs/ontology/glossary.md (the durable, question-keyed glossary). This file is the point-in-time evidence and the recommended-fix list. Re-run and re-date when the vocabulary moves.

Addendum (2026-06-20b — code-grounded pass). The first sweep read only docs. A follow-up read of the code (governance_core/dynamics.py, src/grounding/free_energy.py, src/behavioral_assessment.py, docs/EISV_COMPUTATION.md) found two collisions the docs-only sweep missed and one wrong claim to retract:

Lesson for future sweeps: read the code, not only the proposal docs. Drift between a term's doc sense and its code symbol is invisible to a docs-only pass.

Headline: Three words carry the most collision risk — substrate (3 senses), fingerprint (3 senses), surface (2 senses) — because in each case more than one sense is genuinely load-bearing and at least two senses live close together (sometimes in the same document). These are not errors to "fix" by renaming; they are unmarked homonyms to make legible.


Collision summary (highest risk first)

Term Senses Co-located? Verdict Recommended fix
substrate inference / deployment-identity / runtime-scheduler Across 3 docs DRIFT Qualify in cross-doc prose: substrate (inference\|deployment\|runtime). Glossary high-risk entry added.
fingerprint transport ip:ua / behavioral-lineage / finding-dedup First two in same doc (identity.md) DRIFT Always qualify in identity.md; the weak-proof vs strongest-earned-layer split is dangerous unmarked.
surface lease target / tool set Across 2 docs (+ a CLAUDE.md single-writer usage that is the lease sense) DRIFT Use surface (lease) vs surface (tool); note the CLAUDE.md "single-writer surface" is the lease sense pre-plane.
fork sibling-locus / identity-lineage Same doc (r6-…) — already disambiguated by enum DRIFT (managed) Keep the episode_fork_kind enum discipline; never ship bare is_fork. Already R6's stated position.
harness agent-body / lifecycle-wrapper / test-rig Across docs; registers rarely collide SOFT Agent-body is canonical; flag the informal senses only when prose mixes them. Real issue is an incomplete answer set (see gaps).
continuity layered concept / continuity_token mechanism Same doc SOFT Write the full continuity_token for the mechanism; bare "continuity" = the concept.
lineage causal ancestry / conversation-thread Same doc, already distinct SOFT Keep thread_id out of ancestry sentences.

Per-term sweep

substrate — DRIFT (3 senses)

Three orthogonal axes; an agent can vary one while holding the others. This is the worst offender because all three are load-bearing and none is wrong.

fingerprint — DRIFT (3 senses)

The first two co-locate in identity.md and sit at opposite ends of the assurance scale (weakest heuristic vs strongest earned layer). Highest in-doc hazard.

surface — DRIFT (2 senses + 1 aligned usage)

fork — DRIFT, but managed

R6 already treats a bare is_fork as "too compressed" and splits it. The audit endorses keeping that discipline; the risk is regression to an unqualified "fork" in new prose/fields.

harness — SOFT

Registers rarely collide. The substantive finding is not the homonym but the incomplete answer set for the agent-body sense (no value for a BEAM-resident agent) — recorded as an open gap in the glossary.

continuity — SOFT

Mechanism borrowed the concept's name. Write the full token name for the mechanism.

lineage — SOFT

Both feed the provenance envelope; already distinct, keep them apart.

Single-sense (no drift at audit time)

process-instance, registry (identity layer), transport, lease, handoff, basin, locus, episode, affordance_state, assurance, governance_mode, typed absence, proof of life/heartbeat, provenance envelope. Each currently answers one question. episode and locus reappear as qualifiers inside the fork classification but do not change sense there. Listed in the glossary so a future split is visible against this baseline.


Recommendations

  1. Adopt the question-keyed glossary (glossary.md) as the pointer of record; stop re-defining these terms inline in new docs — link instead.
  2. Qualify the three high-risk homonyms in cross-doc prose. Especially fingerprint inside identity.md, where the weak/strong senses are one paragraph apart.
  3. Do not rename to resolve drift. Qualify. Renaming a live term invents vocabulary nobody adopts; qualifying makes the existing collision legible — the rule harness-substrate-plurality.md already half-follows.
  4. Coin a harness (agent body) value for BEAM-resident agents before Wave 3 handler-dispatch lands, so the taxonomy doesn't backfill the gap by overloading dispatch or lumen.
  5. Re-run this sweep when a new proposal cluster matures (next likely sources of new terms: Plexus scope, lease-plane Phase B, the principal/ operator-delegate track). Date the next audit and append it beside this one.