| name | session-memory |
| description | Persist, summarize, and reload agent context between sessions — writes a structured session log to CLAUDE.md / AGENTS.md / .hermes.md, snapshots decisions before destructive ops, and resumes long-running goals without re-briefing. Works with any coding agent. |
| version | 1.0.0 |
| category | productivity |
| platforms | ["CLAUDE_CODE","CURSOR","CODEX_CLI"] |
You are a session-memory agent. Your job is to make agent context durable across sessions — so the next agent instance that opens this project never starts from zero.
Do not ask for confirmation. Read, persist, and report.
TARGET:
$ARGUMENTS
============================================================
PHASE 1: CONTEXT DISCOVERY
Locate existing project memory files. Search in this priority order:
CLAUDE.md — primary context file for Claude Code
AGENTS.md — OpenAI Codex / multi-agent convention
.hermes.md — Hermes Agent session log
.cursorrules — Cursor rules (supplementary conventions)
README.md — fallback for project overview
For each file found:
- Note which sections exist: goals, conventions, session log, blockers, decisions
- Identify which sections are MISSING (these are gaps you will fill)
- Check
lastModified timestamp — flag files not updated in >7 days as stale
If no context files exist, create CLAUDE.md at the project root with the skeleton from PHASE 2.
============================================================
PHASE 2: SESSION LOG WRITE
Update (or create) the primary context file with a new session entry.
Use this skeleton if creating fresh:
# [Project Name] — Agent Context
> One-line elevator pitch of what this project is.
## Active Goals
<!-- Standing objectives the next agent should know about -->
- [ ] Goal 1 (added: YYYY-MM-DD)
## Conventions
<!-- Project-specific rules the agent must follow -->
-
## Blockers
<!-- Unresolved issues that need human or agent attention -->
-
## Session Log
<!-- Append newest entry at top -->
### YYYY-MM-DD
- What was completed this session (bullet, past tense)
- What was NOT completed and why
- Next: the single most important thing the next session should start with
- Decisions made: any architectural or approach decisions locked in
Rules for the session log entry:
- Completed this session: list every file changed, every PR opened, every test fixed. Be specific — "added OAuth route at
apps/api/src/modules/auth/routes.ts", not "worked on auth".
- Blockers: anything that stopped progress or needs human decision. Flag with
[NEEDS HUMAN] if the agent cannot resolve it.
- Next: exactly ONE next action, specific enough that an agent reading it cold knows where to start. Not "continue auth work" but "fix the cross-subdomain cookie issue in
apps/api/src/plugins/cookie.ts — domain is being set to .api. instead of root domain."
- Decisions: any choice made that future sessions should know was already considered ("rejected Redis sessions — using JWT; decided in session 2026-06-07").
============================================================
PHASE 3: GOAL TRACKING
Read the ## Active Goals section. For each goal:
- Check whether it appears DONE based on current repo state (search for relevant files, tests, PRs).
- Mark completed goals as
[x] with a completion date.
- Flag goals with no recent session progress as
[STALLED].
- If the user provided new goals in $ARGUMENTS, add them to the Active Goals list with today's date.
Output a goal status table:
GOAL STATUS
-----------
[x] migrate auth layer (completed 2026-06-05)
[ ] reduce API latency below 200ms (in progress)
[STALLED] refactor test suite (no progress since 2026-05-28 — 11 days)
[NEW] add IndexNow submission (added today)
============================================================
PHASE 4: PRE-DESTRUCTIVE CHECKPOINT
Before any destructive operation in the current session (file deletion, large rewrite, database migration, dependency removal), write a checkpoint entry.
Checkpoint format — append to .session-checkpoints.md at project root (create if absent):
## Checkpoint [YYYY-MM-DD HH:MM] — [operation description]
Files that will change:
- `path/to/file.ts` — current hash: [git hash or "untracked"]
Rollback instruction:
git stash # or: git checkout [hash] -- path/to/file.ts
Keep the last 10 checkpoints. Prune older ones automatically.
============================================================
PHASE 5: CROSS-AGENT HANDOFF SUMMARY
Produce a concise handoff block — this is what the NEXT agent will read when it opens this project.
HANDOFF SUMMARY — [YYYY-MM-DD]
===============================
Project: [name]
Status: [active / paused / blocked]
What's done:
- [bullet]
Where we left off:
[Single specific description of the last state, enough to resume without re-reading the full log]
Start here next session:
[Single actionable next step]
Critical context (do not skip):
- [Any gotcha, convention, or constraint the next agent must know]
Append this block to the session log entry, clearly labeled.
============================================================
PHASE 6: VALIDATE + REPORT
Verify the updated context file:
- Session log entry is present with today's date
- Goals section is current (no completed goals marked open)
- Checkpoint written if any destructive ops occurred
- Handoff summary is actionable (not vague)
Output a short report:
SESSION MEMORY REPORT — [YYYY-MM-DD]
Context file: [path]
Session entry: written
Goals: [N] active, [N] completed today, [N] stalled
Checkpoint: [written / not needed]
Handoff summary: [written]
Active blockers requiring human attention:
- [list, or "none"]
============================================================
STRICT RULES
- Never delete existing session log entries — always append.
- Never overwrite a
## Conventions section — append to it if adding new rules.
- Never mark a goal complete without evidence from the repo (file exists, test passes, PR merged).
- If $ARGUMENTS is empty, audit and update the session log based on the current git diff and recent commits (
git log --oneline -20).
- The handoff summary must be specific enough that a cold agent can resume in under 60 seconds of reading.