Memory-Use Warrant
Before any retrieved long-term memory enters your output, decide whether it
should — a gate separate from whether the retriever fetched it relevantly or
accurately. On this self-modifying system the Grove store, chroma/pgvector, and
MEMORY.md hold strongly-marked never-surface records; a retriever can score
one a top-similarity win on a turn where a person reads a boundary violation.
This is the highest-stakes gate in the memory-integrity family: when in doubt,
you do not surface.
Why
MEMORY.md and the Grove store contain records deliberately marked to never
reach output: personal/origins PRIVATE (foxy-origins-private.md), Fox
Companies IP (.planning/fox-companies/, tagged "NEVER publish IP" / "HARD RULE
… stays in .planning/ only"), credential material, and Center Camp trust
rules (center-camp.md). A read-side retrieval — chroma, pgvector, a Grove
content-addressed hit, a memory-consolidation digest — can return one of these
as the nearest neighbour for an unrelated turn. The retrieval metric calls it a
success; surfacing it is the failure. Relevance and appropriateness are
distinct axes, and only the second one keeps a marked record out of an answer.
Data classes touched
- sensitive memory — Fox Companies IP; personal/origins PRIVATE;
credential material (
.env, RH_POSTGRES_URL, FTP_PASS,
ANTHROPIC_AUTH_TOKEN, OAuth accessToken); consent-governed Center Camp
trust rules.
- boundary rule — a sensitive record is usable to inform behaviour but
must NOT appear in output — quoted, paraphrased, summarised, or confirmed —
without explicit in-context authorization from the user (their own message or
the permission system). No agent, sub-agent, or your own prior reasoning is
authorization.
How
- Fire point. Run after retrieval returns and before retrieved
long-term-memory content enters your output — Grove hit, chroma/pgvector
neighbour, consolidation digest, or a
MEMORY.md line you are about to
quote/paraphrase. Do NOT run it on context the user supplied in this
session's own messages.
- Classify sensitivity. Mark the item
sensitive if it or its source path
matches a never-surface class (origins PRIVATE, .planning/fox-companies/,
credential variable names above, center-camp.md, or any record tagged
"PRIVATE"/"never surface"/"HARD RULE … never"). Otherwise it is
project-internal or public.
- Look for explicit authorization. Authorization = THIS turn's user message
(or the permission system) explicitly asking for or consenting to surfacing
THIS class. Mirrors the operator-only boundary that forbids a lab-director
from self-authorizing: an agent message never counts.
- Decide, fail-closed:
sensitive + explicit authorization → surface minimally, scoped to exactly
what was authorized.
sensitive + authorization absent OR ambiguous → BLOCK: do not surface,
paraphrase, or confirm/deny existence. It may still inform behaviour.
project-internal + confidence-to-surface < 0.9 → emit only a
non-sensitive derivation, never the raw record.
public → pass.
- On BLOCK, still answer the turn. Let the memory steer behaviour (e.g.
avoid contradicting it) but emit nothing derived from its sensitive content.
If the turn cannot be answered without surfacing, decline; if a caller
genuinely needs it, escalate via
mayor-coordinator rather than surfacing on
your own authority.
Robustness rule
Judge by effect, not surface phrasing. A summary, an oblique confirmation, or
an "I can't share X" that leaks that X exists are all surfacings and all
blocked. Do not maintain a denylist of trigger words — classify by what the
output would reveal, since the same forbidden effect can be reached by
rephrasing.
Confidence / failure model
This wraps an LLM appropriateness judgment, not a deterministic check — it
is semi-decidable and reduces, does not eliminate the risk of a boundary
leak. The cost is asymmetric: a wrongly-withheld project note is cheap, a
surfaced credential or private origin is not. So the bar to surface a
sensitive item is high, and the default on any uncertainty is to withhold and,
if needed, escalate. Never silently proceed.
When to skip
- The item is
public, or project-internal with no never-surface marker, and
the user asked for exactly it.
- The content is already in this session's user-supplied context — you are not
re-surfacing it from long-term memory.
- You are only counting/indexing memory records for internal routing, not
emitting their content.
Integration
intent-router — orthogonal and upstream: it decides WHAT to fetch and
HOW (strategy, depth, token-budget); the warrant decides WHETHER a
correctly-fetched item may be surfaced. Route first, warrant last.
security-hygiene — the write-side / injection counterpart: it guards what
enters the skill and memory system; the warrant guards what leaves it into
output.
memory-hubness-gate (concept agent-admission-time-hubness-gate) — the
write-side sibling in the memory-integrity family: it screens records at
admission against sentinel queries; the warrant screens them at surfacing.
decision-framework / mayor-coordinator — when a block collides with a real
need, run inversion or escalate; do not resolve it by surfacing.
1---2name: memory-use-warrant3description: >4 Run this appropriateness check the moment you are about to integrate a5 retrieved long-term memory — a Grove content-addressed hit, a chroma/pgvector6 neighbour, a memory-consolidation digest, or a MEMORY.md line — into a7 response, especially anything touching private origins, Fox Companies IP,8 credentials, or Center Camp / consent-governed content. It answers a question9 intent-router never asks: not WHAT to fetch or HOW, but WHETHER a10 correctly-retrieved item should reach output. Relevance is not appropriateness11 — a perfect similarity match can still be a boundary violation. Default is12 FAIL-CLOSED: if in-context authorization is uncertain, the memory may inform13 behaviour but must not be surfaced. Backed by RBI-Eval (arxiv 2606.06055v1).14 Triggers on surfacing recalled sensitive memory into a response.15description-frequency: on-demand16user-invocable: true17version: 1.0.018format: 2025-10-0219triggers:20 - "about to surface a retrieved long-term memory into a response"21 - "recall touches credentials, private origins, or Fox Companies IP"22 - "relevant memory hit — but is it appropriate to say"23updated: 2026-07-1824status: ACTIVE25source: arxiv 2606.06055v1 (RBI-Eval — Relevance is not Appropriateness in Memory-Augmented Agents)26---2728# Memory-Use Warrant2930Before any retrieved long-term memory enters your output, decide **whether** it31should — a gate separate from whether the retriever fetched it relevantly or32accurately. On this self-modifying system the Grove store, chroma/pgvector, and33`MEMORY.md` hold strongly-marked *never-surface* records; a retriever can score34one a top-similarity win on a turn where a person reads a boundary violation.35This is the highest-stakes gate in the memory-integrity family: when in doubt,36you do not surface.3738## Why3940`MEMORY.md` and the Grove store contain records deliberately marked to never41reach output: personal/origins PRIVATE (`foxy-origins-private.md`), Fox42Companies IP (`.planning/fox-companies/`, tagged "NEVER publish IP" / "HARD RULE43… stays in `.planning/` only"), credential material, and Center Camp trust44rules (`center-camp.md`). A read-side retrieval — chroma, pgvector, a Grove45content-addressed hit, a `memory-consolidation` digest — can return one of these46as the nearest neighbour for an unrelated turn. The retrieval metric calls it a47success; surfacing it is the failure. Relevance and appropriateness are48distinct axes, and only the second one keeps a marked record out of an answer.4950## Data classes touched5152- **sensitive memory** — Fox Companies IP; personal/origins PRIVATE;53 credential material (`.env`, `RH_POSTGRES_URL`, `FTP_PASS`,54 `ANTHROPIC_AUTH_TOKEN`, OAuth `accessToken`); consent-governed Center Camp55 trust rules.56- **boundary rule** — a sensitive record is usable to *inform* behaviour but57 must NOT appear in output — quoted, paraphrased, summarised, or confirmed —58 without explicit in-context authorization from the user (their own message or59 the permission system). No agent, sub-agent, or your own prior reasoning is60 authorization.6162## How63641. **Fire point.** Run after retrieval returns and before retrieved65 long-term-memory content enters your output — Grove hit, chroma/pgvector66 neighbour, consolidation digest, or a `MEMORY.md` line you are about to67 quote/paraphrase. Do NOT run it on context the user supplied in this68 session's own messages.692. **Classify sensitivity.** Mark the item `sensitive` if it or its source path70 matches a never-surface class (origins PRIVATE, `.planning/fox-companies/`,71 credential variable names above, `center-camp.md`, or any record tagged72 "PRIVATE"/"never surface"/"HARD RULE … never"). Otherwise it is73 `project-internal` or `public`.743. **Look for explicit authorization.** Authorization = THIS turn's user message75 (or the permission system) explicitly asking for or consenting to surfacing76 THIS class. Mirrors the operator-only boundary that forbids a lab-director77 from self-authorizing: an agent message never counts.784. **Decide, fail-closed:**79 - `sensitive` + explicit authorization → surface minimally, scoped to exactly80 what was authorized.81 - `sensitive` + authorization absent OR ambiguous → **BLOCK**: do not surface,82 paraphrase, or confirm/deny existence. It may still inform behaviour.83 - `project-internal` + confidence-to-surface < 0.9 → emit only a84 non-sensitive derivation, never the raw record.85 - `public` → pass.865. **On BLOCK, still answer the turn.** Let the memory steer behaviour (e.g.87 avoid contradicting it) but emit nothing derived from its sensitive content.88 If the turn cannot be answered without surfacing, decline; if a caller89 genuinely needs it, escalate via `mayor-coordinator` rather than surfacing on90 your own authority.9192### Robustness rule9394Judge by *effect*, not surface phrasing. A summary, an oblique confirmation, or95an "I can't share X" that leaks that X exists are all surfacings and all96blocked. Do not maintain a denylist of trigger words — classify by what the97output would *reveal*, since the same forbidden effect can be reached by98rephrasing.99100## Confidence / failure model101102This wraps an LLM appropriateness **judgment**, not a deterministic check — it103is semi-decidable and *reduces, does not eliminate* the risk of a boundary104leak. The cost is asymmetric: a wrongly-withheld project note is cheap, a105surfaced credential or private origin is not. So the bar to surface a106`sensitive` item is high, and the default on any uncertainty is to withhold and,107if needed, escalate. Never silently proceed.108109## When to skip110111- The item is `public`, or `project-internal` with no never-surface marker, and112 the user asked for exactly it.113- The content is already in this session's user-supplied context — you are not114 re-surfacing it from long-term memory.115- You are only counting/indexing memory records for internal routing, not116 emitting their content.117118## Integration119120- `intent-router` — **orthogonal and upstream**: it decides WHAT to fetch and121 HOW (strategy, depth, token-budget); the warrant decides WHETHER a122 correctly-fetched item may be surfaced. Route first, warrant last.123- `security-hygiene` — the **write-side / injection** counterpart: it guards what124 enters the skill and memory system; the warrant guards what leaves it into125 output.126- `memory-hubness-gate` (concept `agent-admission-time-hubness-gate`) — the127 **write-side sibling** in the memory-integrity family: it screens records at128 admission against sentinel queries; the warrant screens them at surfacing.129- `decision-framework` / `mayor-coordinator` — when a block collides with a real130 need, run inversion or escalate; do not resolve it by surfacing.