- memory is file-first
- not all memory is the same
- private continuity, team coordination, team knowledge, and role memory should stay separate
- the team editor should help you see and manage the right layer without mixing them up
Why this exists
Without a clear memory system, teams end up dumping everything everywhere:- private context leaks into shared files
- ticket status gets mixed with durable knowledge
- role-specific learnings get lost
- nobody knows where to put anything
The four memory layers
ClawRecipes uses four memory layers:- assistant continuity memory
- team coordination docs
- team knowledge memory
- role memory
Layer 1: assistant continuity memory
What it is:- the assistant’s own continuity
- preferences
- personal working context
- long-running private context
SOUL.mdUSER.mdmemory/YYYY-MM-DD.mdMEMORY.md
- this does not belong in the team workspace
- assistant continuity
- private context
- user-specific preferences
- shared team knowledge
- team ticket history
- shared operational docs
Layer 2: team coordination docs
What it is:- the team’s operating surface
- plans, tickets, status, assignments, checklists
work/backlog/work/in-progress/work/testing/work/done/notes/plan.mdnotes/status.mdTICKETS.mdAGENTS.md
- what the team is doing right now
- blockers
- decisions attached to tickets
- ongoing work coordination
- curated long-term knowledge base entries
- private assistant memory
Layer 3: team knowledge memory
What it is:- shared durable knowledge for the whole team
- facts worth keeping
- canonical links
- runbooks
- known fixes
- decisions worth reusing later
- reusable knowledge
- facts the whole team should remember
- high-signal decisions worth pinning
Layer 4: role memory
What it is:- continuity for one role inside the team
- role-specific learnings and playbooks
- role-specific learnings
- role runbooks
- role continuity that should not become global team knowledge yet
- QA-specific release checks
- dev-specific implementation gotchas
- lead-specific prioritization habits
Team editor angle
From the team editor point of view, the memory system should feel like a set of clearly separated panels, not one giant dumping ground. A good team editor should help you understand:- what belongs in team memory vs role memory
- what is operational status vs durable knowledge
- what is pinned vs append-only
- what should stay private and never move into team memory
The most useful things the team editor can surface
Memory overview
- short explanation of the memory layers
- link to the canonical memory model doc
Team memory
shared-context/memory/team.jsonlshared-context/memory/pinned.jsonl- counts / recent entries / pinned items
Coordination docs
notes/status.mdnotes/plan.md- current ticket lanes
Role memory
- links into
roles/<role>/MEMORY.md - links into role daily memory files
Policy docs
notes/memory-policy.md- any team-specific memory conventions
- the editor should help you navigate the memory system
- the files remain the real source of truth
What goes where?
Put it in team coordination docs when…
- it is about current work
- it is ticket-specific
- it is a progress update
- it is a blocker or immediate plan
Put it in team knowledge memory when…
- it is reusable later
- the whole team should know it
- it is a known fix / canonical answer / stable reference
Put it in role memory when…
- it mainly belongs to one role
- it is useful continuity for that role
- it is not yet broad enough to become team-wide knowledge
Keep it in assistant continuity memory when…
- it is private context
- it is user/assistant specific
- it should not leak into the team workspace
Pinned vs append-only memory
Append-only memory
This is the stream of memory as things are learned. Examples:team.jsonl- daily memory files
- status logs
Pinned memory
This is the smaller curated set of high-signal items worth keeping easy to find. Example:pinned.jsonl
- append everything useful first
- pin only the things you expect to matter again later
Suggested habits
After finishing work
- update the ticket comments
- append to
notes/status.md - save artifacts to
shared-context/agent-outputs/ - if a reusable lesson emerged, write it to team memory
- if it is especially important, pin it
During triage or lead review
- move short-lived work chatter into tickets/status docs
- move durable lessons into team knowledge memory
- curate pinned memory so it stays high-signal
For role agents
- keep role-specific continuity in role memory
- escalate broadly useful knowledge into team memory
Common mistakes
1) Treating status logs like a knowledge base
notes/status.md is for operational history, not your long-term memory system.
2) Dumping private context into shared memory
Private assistant continuity should stay private.3) Pinning too much
If everything is pinned, nothing is pinned.4) Never promoting useful knowledge
If good lessons stay buried in tickets forever, the team never really learns.5) Skipping role memory
Role memory is useful because not every lesson belongs at the whole-team level.Simple example
Imagine a team learns these three things:- “Ticket 0042 is blocked waiting on API credentials.”
- “The fix for workflow-runner approval retries is to clear stale locks before requeue.”
- “QA should always capture screenshots for UI changes.”
- #1 → ticket comments /
notes/status.md - #2 → team knowledge memory (
team.jsonl, maybe pin it) - #3 → role memory for QA, and maybe team memory too if it is now a team-wide rule
