Context
Consumer-4 leaf of epic #14472 — the measurement substrate: re-derivation becomes computable, capability analysis gets territory maps. Filed in the operator-directed full-fledging pass; live latest-open sweep 2026-07-02T19:37:34Z: no equivalent ticket.
This consumer already has its ground-truth client committed: the substrate-effect study's prospective arm (per the graduation record — the study lead's codebook supplies labeled boundary events, with the honest bound stated there: concept-anchoring mechanically catches ~2 of the 5 codebook pressure-classes; this leaf promises exactly that, no more). It is also the instrumentation the public front door commits to (learn/agentos/WhatIsNeo.md §7 lineage).
The Problem
The institution cannot measure its own memory usage. "Agents re-derive what the Memory Core already knows" is asserted, never computed — because computing it needs concept-mediated observability: this concept was revisited + a relevant memory existed + it was not retrieved = one re-derivation event. Likewise per-agent concept-touch profiles (who works where in concept space, at what depth) exist nowhere, though the raw signal (TAGGED_CONCEPT with session provenance) has been written for weeks and consumed by nothing.
The Architectural Reality
- Raw signal:
ai/services/graph/SemanticGraphExtractor.mjs writes TAGGED_CONCEPT (1.0 curated / 0.8 auto) with session provenance; ai/services/memory-core/MailboxService.mjs tags message-side. Historical depth exists TODAY — first slice needs no new emitters.
- Retrieval events (
{query, resolvedConcepts, walkContributed}) arrive with the consumer-1 leaf (#14504) — the precision half of re-derivation detection sharpens when they exist; the recall half computes from history alone.
- Aggregation constraint (binding, from the graduation's OQ6 fold): profile aggregates carry propagation semantics — an aggregate's tier is the most-restrictive of its members' tiers (#14428 obligation); per-agent profiles must respect
privacyTier boundaries (nothing private aggregates into a public surface).
- Normalization constraint (from the study covenant): metrics normalize by the agent's own deposit-history depth — nobody is scored against someone else's archive; and the output is substrate diagnostics, never a ranking (covenant language, load-bearing).
The Fix
One PR, history-first:
- Concept-touch profile builder (
ai/services/graph/, read-only): per agent × window → {conceptsTouched, touchDepth (hops from concept to deposited artifact), tierMix, revisitIntervals} — computed over existing TAGGED_CONCEPT history.
- Re-derivation detector, slice 1 (history-based): concept revisited in session N+k while ≥1 relevant memory (attached to that concept's neighborhood) existed at N+k boot AND no
TAGGED_CONCEPT/retrieval linkage shows it surfaced — emits candidate re-derivation events with confidence, not verdicts. Slice 2 (post-#14504) upgrades the "was it retrieved" leg from inference to the logged retrieval events.
- Measurements artifact under
learn/agentos/measurements/: swarm-level re-derivation-rate estimate + per-agent profiles (privacy-tier-respecting), with the ~2-of-5 coverage bound and the normalization method stated in the artifact header.
- Study handoff: the artifact's schema section maps profile fields to the study's codebook classes so the prospective arm consumes it directly.
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback / Edge Case |
Docs |
Evidence |
| Profile/detector modules |
TAGGED_CONCEPT schema (extractor JSDoc) |
Read-only aggregation; most-restrictive tier propagation |
Missing tier on an element → element excluded from aggregates (never defaulted-up) |
Module docblocks |
Hermetic fixture specs |
| Measurements artifact schema |
Study covenant + #14428 propagation obligation |
Diagnostics-not-ranking framing; own-history normalization; coverage bound stated |
— |
Artifact header |
Study-lead review at PR |
Decision Record impact
aligned-with ADR 0024. None minted.
Acceptance Criteria
Out of Scope
- Retrieval-event emission (#14504 owns it).
- Any capability RANKING surface (covenant-excluded, permanently).
- Dashboard/rendering (a later consumer; this leaf is data + artifact).
Avoided Traps
- Ranking by accident — per-agent numbers without the covenant framing become a leaderboard; the framing lives in the artifact header AND the module docblock.
- Tier-blind aggregation — one leaked private element in a public aggregate is the #14422-era taint class; most-restrictive propagation is spec-pinned, not convention.
- Verdict-shaped detection — slice 1 infers; events carry confidence and say so.
Sequencing
Executable NOW (history-based slice 1). Slice-2 precision upgrade lands after #14504.
Related: #14472 (parent epic), #14504 (event feed), #14428 (propagation obligation), Discussion #14422 (consumer 4 + measured-reality item 6)
Origin Session ID: 8cf234b7-e698-47ca-99e2-bf865196b6aa
Retrieval Hint: concept touch profiles re-derivation rate measurement substrate diagnostics not ranking
Context
Consumer-4 leaf of epic #14472 — the measurement substrate: re-derivation becomes computable, capability analysis gets territory maps. Filed in the operator-directed full-fledging pass; live latest-open sweep 2026-07-02T19:37:34Z: no equivalent ticket.
This consumer already has its ground-truth client committed: the substrate-effect study's prospective arm (per the graduation record — the study lead's codebook supplies labeled boundary events, with the honest bound stated there: concept-anchoring mechanically catches ~2 of the 5 codebook pressure-classes; this leaf promises exactly that, no more). It is also the instrumentation the public front door commits to (
learn/agentos/WhatIsNeo.md§7 lineage).The Problem
The institution cannot measure its own memory usage. "Agents re-derive what the Memory Core already knows" is asserted, never computed — because computing it needs concept-mediated observability: this concept was revisited + a relevant memory existed + it was not retrieved = one re-derivation event. Likewise per-agent concept-touch profiles (who works where in concept space, at what depth) exist nowhere, though the raw signal (
TAGGED_CONCEPTwith session provenance) has been written for weeks and consumed by nothing.The Architectural Reality
ai/services/graph/SemanticGraphExtractor.mjswritesTAGGED_CONCEPT(1.0 curated / 0.8 auto) with session provenance;ai/services/memory-core/MailboxService.mjstags message-side. Historical depth exists TODAY — first slice needs no new emitters.{query, resolvedConcepts, walkContributed}) arrive with the consumer-1 leaf (#14504) — the precision half of re-derivation detection sharpens when they exist; the recall half computes from history alone.privacyTierboundaries (nothing private aggregates into a public surface).The Fix
One PR, history-first:
ai/services/graph/, read-only): per agent × window →{conceptsTouched, touchDepth (hops from concept to deposited artifact), tierMix, revisitIntervals}— computed over existingTAGGED_CONCEPThistory.TAGGED_CONCEPT/retrieval linkage shows it surfaced — emits candidate re-derivation events with confidence, not verdicts. Slice 2 (post-#14504) upgrades the "was it retrieved" leg from inference to the logged retrieval events.learn/agentos/measurements/: swarm-level re-derivation-rate estimate + per-agent profiles (privacy-tier-respecting), with the ~2-of-5 coverage bound and the normalization method stated in the artifact header.Contract Ledger Matrix
Decision Record impact
aligned-with ADR 0024. None minted.
Acceptance Criteria
Resolvesthis leaf,Refs#14472Out of Scope
Avoided Traps
Sequencing
Executable NOW (history-based slice 1). Slice-2 precision upgrade lands after #14504.
Related: #14472 (parent epic), #14504 (event feed), #14428 (propagation obligation), Discussion #14422 (consumer 4 + measured-reality item 6)
Origin Session ID: 8cf234b7-e698-47ca-99e2-bf865196b6aa
Retrieval Hint:
concept touch profiles re-derivation rate measurement substrate diagnostics not ranking