Resonance Lattice · Docs

The claim system

A claim is one earned piece of knowledge — a short, trusted statement the assistant can act on. Claims come from two places: the assistant's own past sessions, and the documents you point it at. Both kinds are the same kind of thing, carry the same confidence, and earn that confidence the same way — from how tasks actually turn out.

01 — The model

One closed loop

The assistant works, the work produces an outcome, the outcome updates what the assistant trusts, and the next session starts from there. That loop is the whole system. Everything below is a part of it: where claims come from, how they earn trust, how they surface, and how the weak ones are dropped.

Two design rules hold throughout. Nothing is trusted because it was written down — a claim is trusted because the sessions that used it went well. And nothing asks for your labour — capture and recall run on session hooks, and the housekeeping pass is one mechanical command; you are never asked to rate, tag, or file anything.

02 — The unit

One claim, two sources

Earlier versions kept two separate systems: a memory of the assistant's own lessons, and a corpus insight layer summarising your documents. They are now one record — a claim — distinguished only by where it came from.

Experience

From the assistant's sessions

A fix that worked, a dead end to avoid, a preference you stated. Distilled out of the assistant's own work over time.

Corpus

From your documents

A grounded answer synthesised from the files in a knowledge model — every word of it cited back to a source passage. When your documents genuinely lack a fact, a corpus claim can instead be grounded in verified external sources it fetched and cross-checked, cited by URL.

Both are claims. Both carry a confidence on the same four-rung ladder. Both earn that confidence from real task outcomes, move through the same lifecycle, and are ranked by the same relevance-and-trust formula when they surface. The rest of this page is told once and applies to both, with the source-specific details called out where they differ.

03 — Where claims come from

Earning a claim

A claim is never simply asserted. The experience side captures one from the session that produced it; the corpus side synthesises one from a knowledge model. Both paths end with a provisional claim that then has to earn its trust.

Experience — capture from the session

At the end of a session the harness records what happened. The capture pipeline scrubs the transcript for secrets, deduplicates against the same-text claim if one already exists (bumping its recurrence instead of writing a new row), and lands the surviving event in the store under the working directory's polarity scope. You are never asked to rate, tag, or file anything; the one command you might reach for is rlat memory add, to write a claim by hand.

An opt-in mode breaks each session into its specific facts and decisions instead of saving it as one block of text. Set RLAT_ATOMIC_CAPTURE=1 and the capture step uses an LLM to extract the durable points (one claim per fact) so the same fact arriving in a future session recognises itself and lifts its trust. The single-block path is the safe default and resumes automatically when the LLM is unavailable, so a network blip never costs you the session. Cost: one LLM round-trip per capture (timeout-bounded at 15 s).

Corpus — the faithfulness gate

A corpus claim is born from rlat deep-search: a multi-hop research loop that answers a question against a knowledge model. The answer is not kept because it sounds right. It is kept only if it is faithful — every statement in it traces to a cited source passage.

DEEP-SEARCH an answer FAITHFULNESS gate PROVISIONAL claim OUTCOMES update confidence not faithful → discarded corroborated → hardens falsified → confidence drops, surfaced for you to retire the corpus is now ahead — the next answer starts from here
A deep-search answer must pass the faithfulness gate to become a provisional claim. From there, real task outcomes raise or lower its confidence — a falsified claim is flagged for you, never silently removed. Each pass leaves the corpus a little further ahead.

Because a provisional corpus claim is grounded, it is safe to serve right away — carrying a visible provisional confidence. No up-front verdict from you is needed at any step.

04 — Your world

Three kinds of world fact

Some of the most useful claims are not lessons or document summaries. They are plain facts about your world that no document states — the capacity you run, the rule your team never breaks, the approach you already tried and watched fail. rlat captures these as world facts inside the knowledge model, in three classes:

ClassWhat it isHow it serves
attributeA stable fact about your environment — a capacity, a version, a region policy. Retrieved by relevance, like any claim; the newest value per subject is the one that serves.
constraintA standing hard rule of your world — "the tenant is EU-only", "no preview features in production".Served always, never retrieved by relevance — a rule that only applies when it happens to look relevant is not a rule.
falsified findingAn approach that was tried here and failed, kept with its evidence.Served always, under the verdict framing "Tried and falsified in this environment:".

Each serving rule was measured before it shipped:

Capture — a passive miner with four gates

World facts arrive the way everything else here does: without asking for your labour. An opt-in miner reads what you said during a session and extracts the durable world facts stated in passing. A candidate fact must pass all four gates, and when in doubt it is dropped — a wrong fact in the model hurts more than a missing one:

The gates are validated, not assumed: on trap-heavy test sessions across three domains, the miner measured 0.86 precision, 1.00 recall (every planted world fact recovered), and zero person-fact leaks across all seven privacy traps (E2c).

Mining is off until you opt in — rlat memory install-hooks --mine turns it on (it sets RLAT_MINE_ATTRIBUTES=1; needs an API key). Prefer no key? The rlat-learn skill does the same job on your Claude subscription — same four gates, and you approve every fact before it lands (Skills). When a session yields facts, the session receipt says so:

[rlat] Learned 2 world fact(s) into km.rlat (review: rlat lens / rlat profile)

You can also capture a fact deliberately, choosing its class — for a falsified finding, keep the evidence in the text:

rlat capture-attribute km.rlat "The tenant is EU-only for data residency." --kind constraint
rlat capture-attribute km.rlat "Tried MS MARCO fine-tuning; regressed 4 of 5 corpora." --kind falsified
rlat capture-attribute km.rlat "The workspace runs an F64 capacity." --kind attribute --attribute-key "workspace capacity"

Review and delete what landed with rlat lens and rlat profile. When a keyed fact gets a new value — the capacity changes, the version moves — the newest value per subject wins at serve time; the old values stay on disk, superseded but never silently deleted.

Serve — framed where the work happens

Constraints and falsified findings are injected with their proven framings — "Standing constraints for this environment:" and "Tried and falsified in this environment:" — in two places: the context injected into an agent session, and rlat search --format context. Attributes serve by relevance alongside other claims. In plain rlat search output, every world or experience claim is labelled [INSIGHT], so an earned fact is never mistaken for a source passage.

05 — How a claim earns trust

Confidence

Every claim carries a confidence on a four-step ladder — low → medium → high → verified. A claim is not declared confident; it earns its rung. Confidence rises as evidence accumulates:

A claim's starting rung also reflects where it came from. A fact you hand-provided outranks one fetched from several agreeing web sources, which outranks a single source or a synthesis of your own documents — so a fact carries the trust of its origin from the first moment, then earns or loses from there. The order is you ≥ verified-external ≥ single-external ≥ corpus — a starting prior, never a permanent verdict.

low medium high VERIFIED corroboration moves a claim up → stale + fails re-verify → retires
Confidence climbs as evidence accumulates and falls when a claim is contradicted. The rung you see is a plain reading of the running tally of corroborations against falsifications — you never tune it. A claim leaves the ladder only when its drifted source fails re-verification, or when you retire it — outcome signals alone never silently drop one.

Confidence is also what orders retrieval: when several claims are equally relevant to a query, the more confident one surfaces first. Every retrieved claim shows its confidence, so a low-confidence guess is never mistaken for a verified one.

06 — The lifecycle

Four states, and forgetting

A claim moves through four lifecycle states. They are distinct from confidence — confidence is how much it is trusted; state is whether it is in play.

StateMeaning
candidateNewly synthesised, not yet cleared for retrieval. Corpus claims start here.
activeIn play — surfaces in retrieval. Experience claims start here.
staleA source it cited has drifted; held out of retrieval until re-verified.
retiredDropped for good — falsified, superseded, or long unused.

Forgetting is deliberate. A claim is retired when it has stayed at low confidence, when its cited source has drifted away, or when it has simply gone stale and unused. Several protections hold back claims that are new, recently useful, or user-written — so forgetting prunes noise, not signal.

EARN capture / synthesise CALIBRATE set confidence RETRIEVE serve into work FORGET retire the weak CLAIM STORE — surviving claims, each with a confidence OUTCOMES → NEXT SESSION the loop
Claims are earned, calibrated for confidence, retrieved into the work, and pruned. The outcomes of that work feed the next session — which earns the next claims.

Capture and recall run by themselves on session hooks; drift checks run when sources change. The consolidation pass — confidence raise, then forget — is one mechanical command, rlat memory consolidate, safe to run any time.

After six months you have a tighter claim store, not a bigger one.
07 — Putting claims to work

Retrieval — one ranking

Claims are reached by three commands, depending on which source you want:

Whichever the source, ordering is the same: relevance to your query, multiplied by the claim's trust. Experience and corpus claims are scored by one shared engine, so a high-confidence claim and a barely-relevant one never trade places by accident. Source-specific gates decide eligibility first — an experience claim is workspace-scoped, a corpus claim must not be stale — and the ranking then orders the survivors.

08 — Closing the loop

Outcomes, not verdicts

No gate

An earlier design asked you to approve or reject each thing the assistant learned, up front. That gate is gone. A claim earns confidence from how tasks actually turn out — not from a verdict you give before the claim has been used.

Outcomes are recorded automatically. When an intent resolves, the harness writes one outcome record — which claims were retrieved, how the task went, and the share of credit each retrieved claim is due. A session-end assessment rolls these up. That record is what moves confidence.

You can still steer it directly, but only when you want to:

CommandWhat it does
/acceptConfirm a claim — a positive signal, raising its confidence.
/rejectMark a claim wrong — a negative signal that can retire it.
/correctReplace a claim with a fixed version; the original is retired and the new one records it as its parent.

These are corrections after the fact, never a prerequisite. Left alone, outcomes shift confidence, and the shifts surface — a claim that outcomes stopped supporting shows its lowered rung wherever it appears. The correction itself stays explicit: retiring a claim is your act, or the re-verification path's. We tested the obvious next step — letting outcomes suppress claims automatically — three ways, and it failed every test: the rule that cleared the most wrong claims also suppressed true ones. The full record is published — rlat ships what was proven and names what was not.

09 — Making it yours

Lenses and workspace scope

Two mechanisms keep claims yours — one per source.

Workspace scope — for experience claims

Every experience claim is tagged with the workspace it was learned in, so recall in one project does not surface another project's lessons. A claim that genuinely generalises can be marked cross-workspace, and then it travels everywhere.

Lenses — for corpus claims

A plain search tool starts from zero every query. A lens is the part that accumulates: a small, portable .lens file carrying your perspective on a knowledge model — which sources you lean on, which corpus claims have served you well, and an optional written stance describing how this lens reads the corpus.

Because a lens names patterns of trust rather than specific files, the same .lens can be applied to a different knowledge model — an engineering lens built against your codebase can be pointed at a library's documentation, and your perspective comes along. Several lenses also compose: rlat lens compose merges a senior engineer's, a reviewer's, and a new hire's lens into one team lens, without flattening where they disagree.

10 — The trust contract

Source stays sacred

Corpus claims and lenses sit on top of your source files — they never replace them. Three rules hold that line, always:

You can inspect any of this directly: rlat audit reports the trust state of a knowledge model, and rlat trace follows a single claim all the way down to the source it rests on.

11 — The commands you actually touch

Reference

Most of the claim system is autonomous. These are the commands a person reaches for directly.

Experience claims

CommandWhat it does
rlat memory add "…"Write a claim by hand. --polarity prefer|avoid|factual tags how to read it.
rlat memory listSee what is in the store, with confidence and recurrence.
rlat memory recall "…"Query experience claims directly — what does the assistant know about this?
rlat memory corroborate <id>Confirm a claim — raises its confidence one rung.
rlat memory verify <corpus.rlat>Check low-confidence claims against a knowledge model.
rlat memory feedback good|badVote on whether the last recalled claim helped.
rlat memory gcManually drop claims — a filtered escape hatch (--polarity, --min-recurrence, --max-age-days).

rlat memory consolidate runs the housekeeping pass — confidence raise, then forget. Fully mechanical, no key; the full table is on the Memory & sessions page.

Corpus claims and lenses

CommandWhat it does
rlat search corpus.rlat "…"Retrieve source passages and the corpus claims built on them.
rlat deep-search corpus.rlat "…"The multi-hop research loop; earns new corpus claims as it runs.
rlat search corpus.rlat "…" --source-onlyThe honest baseline — source passages, no claim, no lens.
rlat lens create --id … --name … -o my.lensStart a new lens. --scope user|role|team|project; --stance <file> attaches a declared stance.
rlat lens show my.lensInspect a lens — its trust weights, preferences, and stance.
rlat lens compose a.lens b.lens -o team.lensMerge two or more lenses into one.
rlat search corpus.rlat "…" --lens my.lensRun a query through a lens.
rlat audit corpus.rlat · rlat trace …Inspect trust state, and trace a claim down to its source.

Where to go next