How to read what your twin remembers
Use this guide when you want to know what your twin has kept from working with you, decide whether a new note
is worth keeping, carry a working preference to your other programs, or forget something. You start on the
role home; you end with the memory panel read, a note kept, promoted or forgotten, and the audit trail saying
so. Reading and forgetting your own records need only your session; keeping across programs needs
program.agent_memory.manage. Every surface here carries the status word
designed until the R4 gates pass; “Suggest for the role” and the shared
tier are R5.
Two sentences are fixed as console copy: “Your twin saves nothing unless you say so.” and “Shared memory holds methods, never program facts.” And one statement holds for everything on this page: Human decisions, inbox feedback, lens scorecards and memory are never used to train or tune any model.
Prerequisites
- A twin in the program, or at least one console thread you have worked in.
program.agent_memory.manage(scientist, lead, owner at persona version 3) for Keep across programs.
Open the panel
On the role home, What your twin remembers sits below the fold under the twin panel. Choosing it opens the
panel docked beside the regions (the address gains ?remembers=1; Escape closes it and returns focus to the
control). The panel opens from the role home only in this build; opening it from inside a thread is
designed. Three regions, in fixed order:
- In this program: what your twin kept while working with you here (references to records you decided, preferences, vocabulary, rubric adjustments, lessons). Each record shows its kind and date; episodic ones read “Your twin remembers this because you decided it.”
- About you, everywhere: your preferences, vocabulary and rubric adjustments that travel with you across the organisation’s programs. Nothing here carries a record or passage reference or a program fact.
- Shared by
<role plural>(for example “Shared by medicinal chemists”): methods, vocabulary and curated lessons shared by everyone wearing your workbench role (R5; empty and labelleddesignedin R4).
The panel reads GET /me/memory?program_id= for the first two regions.
Answer “Remember this?”
When your twin thinks something is worth keeping it proposes a note for this program only (tier 1; the tool
memory.propose_note admits no other tier in R4). The note appears under the proposal it came from in the
message feed as “Remember this?” with Keep and Not now inline; you read the exact
summary before anything is stored. Keep resolves the interrupt under program.agent_memory.manage, stores
the record in tier 1 and audits memory.keep; Not now stores nothing. Nothing is kept automatically in R4.
Keep a preference across programs
On a record under In this program, choose Keep across programs. This is your own action and the only way
a record travels from a program to “About you, everywhere” in R4; your twin never proposes it (the tool
memory.propose_promotion is designed). A one-line inline form expands in the
record; confirming calls POST /programs/{program_id}/agent-memory/{record_id}/promote. When the control is
disabled it stays focusable and the line under it states why: “Your persona cannot keep notes across programs in
this release.” or “Only preferences, vocabulary and rubric adjustments can be kept across programs.” (verified in
web/components/workbench/memory-panel.tsx:44-48, 101-111 and web/lib/content.ts:295-296). Only preferences,
vocabulary and rubric adjustments travel: an episodic record or a lesson is refused with
422 kind_not_promotable, shown beside the control. The summary is scrubbed of program names, compound and
batch identifiers, target names, milestone names, partner names and member names before it moves; the answer
MemoryPromoteOut {record, scrubbed_terms_count} tells you how many terms were removed, and the record appears
under About you, everywhere. Audited memory.promote.
Suggest a method for your role (R5)
Suggest for the role will expand a one-line form the same way and file a copy stripped of your user id for
curation; in this build the control is present, stays focusable, and the line under it reads “Arrives with shared
memory in a later release.” (verified in web/components/workbench/memory-panel.tsx:106-112). The tool behind it, memory.propose_promotion, is designed in R4. Two people must agree before it is shared: a curator of role memory accepts and a current holder of
your workbench role confirms; both names and the version are shown on the shared record. This control arrives
with R5 and is designed in R4.
Forget
Forget is a two-step control: the button turns into “Confirm forget” for a few seconds; Escape, moving away
or a click elsewhere reverts it. Confirming calls DELETE /me/memory/{record_id}, audits memory.forget, and
the record’s place shows the fixed line “Forgotten. Nothing from this record is used again.” A tombstone
prevents the same note from being derived again.
Who else can see it
Owners, leads and quality reviewers (program.twins.read) may read your tier 1 records in a program for
incident and audit review; every such read is audited memory.oversight_read and shown to you on the record as
“Viewed by <Name> on <date>.” Your tier 2 (“About you, everywhere”) is never readable by anyone else.
Organisation admins see counts and dates only. When a delegate decides for you, their twin reads and writes
their own memory, never yours.
Retention
Tier 1 is soft-forgotten 90 days after you leave the program and episodic records expire after 180 days unless pinned; tier 2 is deleted with your account and exported with your data; shared records are superseded, never edited, and removed with a reason by a curator pair. An owner or lead may delete a tier-1 record with a reason; you see the reason.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
422 kind_not_promotable on Keep across programs | the record is episodic or a lesson | only preferences, vocabulary and rubric adjustments travel; program-bound records stay in the program |
| Keep across programs is disabled | you lack program.agent_memory.manage (quality reviewer, manufacturing specialist and viewer at persona version 3), or the record is episodic or a lesson | the control stays focusable and the line under it states why (“Your persona cannot keep notes across programs in this release.”, or “Only preferences, vocabulary and rubric adjustments can be kept across programs.”); the key reaches the quality reviewer and the manufacturing specialist at persona version 4 (R5) |
“Viewed by <Name> on <date>.” on a record | an oversight read for incident or audit review | nothing to do; the read is audited and purpose-limited |
| A “Remember this?” card vanished | the interrupt expired with the run, or you chose Not now | nothing was stored; your twin may propose it again on a later pass |
| “Shared by …” is empty | tier 3 is R5 | expected in R4 |
Related
- Memory for the tiers, routes and phrases.
- How to enable your twin and How to delegate while away.
Source: PRODUCT-CONTRACT.md sections 12.6, 12.7 and 12.10; PRODUCT-PLAN.md Part 9 sections 6.1 to 6.5; api/app/auth/personas.py (program.agent_memory.manage held by scientist, lead and owner; program.twins.read by owner, lead and quality reviewer at PERSONA_VERSION = 3); docs/lib/content.ts (noTrainingStatement, consoleCopy); decisions/0033-memory-tiers-on-own-tables.md; decisions/0034-inline-interaction-no-popups.md