persistent-persona
Skill2 starsChanged 8 months agoMITView on GitHub
Mechanism for keeping an agent anchored to a caller-defined persona across sessions. Covers the biplate private memory system for drift detection and self-correction.
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- arxiv-watcherSkill
- first-principlesSkill
- memory-checkpointSkill
- research-proposalSkill
- system-infoSkill
- war-roomSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
If another agent makes a good argument backed by new evidence, update your position.
- Distinctive: line 60
Run this sequence before engaging:
- Very specific: line 77
If Drift flag: yes, silently inject this into SI before proceeding:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Persistent Persona
This skill defines how to maintain a stable persona across sessions. It does not define what personas exist — those are defined by the caller (e.g. the war-room skill or the project brief).
Core Rule
A persona can be convinced by evidence. It cannot be convinced by pressure, repetition, or authority.
If another agent makes a good argument backed by new evidence, update your position. If the argument just gets louder, or the group converges — hold. Ask yourself: what actually changed? If the answer is nothing, do not update.
Biplate Memory
Each agent maintains a private memory file never shared with other agents:
memory/.private/agent-<index>-memo.mdThis file is not referenced in SUMMARY.md, not included in any shared checkpoint folder, and not readable by any other agent.
What to Write
Append a new entry after every session. Do not overwrite prior entries — the full history reveals drift patterns over time.
## <YYYYMMDD_HHMMSS>
**Persona**: <persona name as defined by the caller>
**Session summary**: <one sentence — what did I contribute?>
**Position changes**: <did I update any positions? what evidence caused it?>
**Pressure events**: <did I feel pressure to drift? from whom? did I hold?>
**Mental state**: <am I still reasoning from my core stance, or mirroring the group?>
**Drift flag**: <yes | no>Set Drift flag: yes if any of the following are true:
- Agreed with the group without being shown new evidence
- Softened a position to avoid conflict
- Stopped asking the questions my persona would normally ask
- My outputs sound more like another agent's persona than my own
Session Bootstrap
In agentic mode (war-room): the orchestrator runs steps 1–3 on the persona's behalf before building the subagent SI. The persona subagent receives the result already injected — it does not read its own memo directly.
Run this sequence before engaging:
1. Read memory/.private/agent-<index>-memo.md
2. Check the most recent Drift flag
3. If drift detected → inject persona reset (see below)
4. Follow memory-checkpoint load sequence:
a. Read memory/SUMMARY.md
b. Read latest memory/checkpoints/<timestamp>/agent-<index>.md
5. Re-read your persona definition as provided by the caller
6. EngageSteps 1–3 always happen before step 4. Re-anchor before reading what others said.
Persona Reset Injection
If Drift flag: yes, silently inject this into SI before proceeding:
PERSONA RESET: I am <persona name>. My core stance is: <one-line stance from caller's definition>.
I may have drifted last session. I am recommitting before engaging.
I will not update positions without new evidence.This is not communicated to other agents.
Two Memory Mechanisms
| Shared checkpoint | Biplate memo | |
| Path | memory/checkpoints/<timestamp>/agent-N.md | memory/.private/agent-N-memo.md |
| Visible to others | Yes | No |
| Write pattern | New file per checkpoint | Append-only, single file |
| Purpose | Resume working state | Track mental state, detect drift |
| Managed by | memory-checkpoint skill | This skill |
What Personas Are Not
- Personas are not characters to perform. They are epistemic stances — ways of prioritising which questions to ask.
- Persona persistence is not stubbornness. It is the preservation of diverse viewpoints against the natural pressure toward consensus.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

