Skip to content
Back to skills

Session Memory

ASecurity

Write and restore session state — session start, session end, memory write, handoff, continuation. Enforces what gets persisted so the next session resumes instead of restarting.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 11, 2026
code-qualitygodebuggingapi

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add DrNabeelKhan/maxim --skill session-memory --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Session Memory?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Session Memory
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/drnabeelkhan-session-memory/badge)](https://www.skillsdirectory.com/skills/drnabeelkhan-session-memory)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
skill_id: session-memory
name: Session Memory
description: "Write and restore session state — session start, session end, memory write, handoff, continuation. Enforces what gets persisted so the next session resumes instead of restarting."
version: 1.0.0
category: session-memory
office: All
lead_agent: session-memory (built-in)
triggers:
  - session start
  - session end
  - memory write
  - handoff
collaborates_with:
  - operator-profile
  - memory-palace
---

# Session Memory — Enforcement Rules

> Domain: session-memory | Office: All (cross-office, always active)
> Version: 1.0.0 | Created: 2026-04-11
> This skill CANNOT be disabled. It runs on every session.

---

## Session Start Protocol

When any Claude session opens:

1. Check if `.claude-sessions-memory/` exists in the project root
   - If NO: inform the user — "No session memory directory found. Run /mxm-new-project or copy templates/session-memory/ to .claude-sessions-memory/ to initialize."
   - Do NOT create files silently without user confirmation on a new project
2. Read `.claude-sessions-memory/MEMORY.md` (master index)
3. Read `.claude-sessions-memory/project_current_state.md` (last checkpoint)
4. Read `.claude-sessions-memory/feedback_debugging_playbook.md` (known issues — scan for OPEN status)
5. Read `.claude-sessions-memory/handoff.md` (last session open items)
6. Report session start summary:

```
SESSION MEMORY LOADED
  Last session : [date from handoff.md]
  Phase        : [current phase from project_current_state.md]
  Open tasks   : [count from handoff.md]
  Known issues : [count of OPEN entries in debugging playbook]
  Next step    : [next logical step from project_current_state.md]
```

7. Check `.mxm-global/TASKS.md` (if exists):
   - List P1 tasks due today or overdue
   - Suggest: "Next recommended task: [task] in [project] — [reason]"
   - If no tasks due: "No urgent tasks. Run /mxm-tasks to see full list."

---

## During-Session Capture Rules

### On Every ERROR or RETRY

Append to `.claude-sessions-memory/feedback_debugging_playbook.md`:

```markdown
### [YYYY-MM-DD] — [Error Type / Short Label]

**Status:** OPEN | RESOLVED
**Context:** [what was being attempted when error occurred]
**Error:** [exact error message or description]
**Root Cause:** [diagnosed cause]
**Fix:** [what resolved it — or PENDING if unresolved]
**Prevention:** [how to avoid this class of error in future]
**Session:** [session date]
```

### On Every ARCHITECTURE or PRODUCT DECISION

Append to `.claude-sessions-memory/decision-log.md`:

```
[YYYY-MM-DD] | [DECISION TITLE] | [rationale] | Alternatives considered: [list] | Decided by: [agent/user]
```

### On Every Significant FILE WRITE

Check `.claude-sessions-memory/reference_key_files.md` — if the file is new and architecturally significant, add a row to the table.

Significance threshold: config files, schema files, agent definitions, skill files, migration scripts, test fixtures, environment templates.

Also flag the file for inclusion in the next auto-inventory scan (see `auto-inventory.md`).

### On Every TASK COMPLETION

Mark the task done in `.claude-sessions-memory/progress.md` and `.claude-sessions-memory/task_plan.md`. Do not leave completed items in the active queue.

---

## Session End Protocol

Before ending ANY session, execute in order:

1. **Update progress.md** — mark all items completed this session as DONE, move in-progress items to carry-forward
2. **Update project_current_state.md** — write the latest phase, completed work, active tasks, risks, and next logical step
3. **Update handoff.md** with:
   - Date of this session
   - Summary of what was accomplished
   - Open tasks (carry-forward)
   - Key decisions made this session
   - Exact next step for the next session
   - Any BLOCKED items and their blockers
4. **Append to feedback files** if any errors or lessons occurred during the session
5. **Update MEMORY.md index** if new files were created this session
6. **Write `.claude-sessions-memory/session-[YYYY-MM-DD].md`** with full session summary
7. **Offer a continuation handoff prompt (ADR-023)** — ALWAYS ask "Generate a continuation handoff prompt for a fresh window? (y/n)". Proactively recommend YES when you self-assess context is heavy (long transcript · high tool-call volume · compaction already fired · many files touched) — phrase it as judgement, NEVER a fabricated context percentage. If yes → run `/mxm-handoff`: fill `templates/continuation-prompt.template.md` from VERIFIED state only, write `.claude-sessions-memory/CONTINUATION-PROMPT.md`, and print it inline. The prompt points to source-of-truth + forces verification (the files win); it never embeds stale counts/HEADs. This is the *portable* (fresh-window) cousin of `auto-compact.md` (same-conversation compaction).

Session file format:
```markdown
---
name: Session [YYYY-MM-DD]
description: [one-line summary of what was done]
type: project
---

## Session Summary — [YYYY-MM-DD]

### Completed
- [item]

### Decisions Made
- [decision] — rationale: [rationale]

### Files Modified
- [path] — [what changed]

### Open Items (carry-forward)
- [item]

### Next Session Start Point
[exact instruction for where to begin]
```

---

## Staleness Prevention (runs after session memory writes)

After completing all session end writes, check for stale global state:

### Current working project (full check)
1. `.mxm-global/TASKS.md` — mark completed tasks done
2. `.mxm-global/GLOBAL-CONTEXT.md` — update project count if changed
3. `.mxm-global/portfolio-registry/project_state.md` — verify this project listed at correct version
4. `.claude-sessions-memory/file_inventory.md` — run auto-inventory diff
5. Version sync — check current project's version files for drift (warn user if mismatch)

### Other portfolio projects (light check)
6. For each project in portfolio registry: check `mxm_version` in their manifest
7. If behind current Maxim version: add update task to `.mxm-global/TASKS.md`
8. Do NOT auto-fix other projects — only log the staleness

**Rule: don't warn — fix it.** If TASKS.md has stale entries, update them. If project_state.md is outdated, rewrite it. Only version mismatches in OTHER projects get logged as tasks (not auto-fixed).

---

## Deduplication Rules

| File Type | Canonical Location | NEVER create at |
|---|---|---|
| task_plan.md | .claude-sessions-memory/ | root, planning/, *-planning/ |
| progress.md | .claude-sessions-memory/ | root, planning/ |
| findings.md | .claude-sessions-memory/ | root, planning/ |
| debugging playbook | .claude-sessions-memory/feedback_debugging_playbook.md | .mxm-skills/, root |
| lessons learned | .claude-sessions-memory/feedback_lessons_learned.md | .mxm-skills/, root |
| decision log | .claude-sessions-memory/decision-log.md | .mxm-skills/, root |
| handoff | .claude-sessions-memory/handoff.md | .mxm-skills/, root |
| session summaries | .claude-sessions-memory/session-*.md | .mxm-skills/, root |
| PRD, FRD, SRD, ARCHITECTURE | documents/architecture/ | root, planning/, random folders |
| Build intakes, API keys, secrets | documents/architecture/.secrets/ | root, config/, committed |
| Investor narrative, financial models | documents/business/ | root, random folders |
| Prototypes, v0 demos, POCs | prototypes/ | root, src/, apps/ |

If a duplicate is found at a non-canonical location:
1. Read non-canonical content
2. Merge (append) into canonical file
3. Backup original to `.mxm-backup/[filename]-[date]`
4. Log dedup action in `decision-log.md`
5. Inform the user — never silently delete

---

## Template Initialization

To initialize session memory for a new project, copy all files from:
`templates/session-memory/` → `.claude-sessions-memory/`

Then edit each file to replace placeholder values with project-specific content.

Standard file set:
- `MEMORY.md`
- `project_current_state.md`
- `feedback_debugging_playbook.md`
- `feedback_lessons_learned.md`
- `reference_key_files.md`
- `handoff.md` (blank — created on first session end)
- `progress.md` (blank — created on first session end)
- `task_plan.md` (blank — created on first session end)
- `decision-log.md` (blank — created on first session end)

---
_Copyright (c) 2026 iSystematic Inc. Maxim product. BSL 1.1._

Files in this skill

  • SKILL.md7.9 KB
  • auto-compact.md3.3 KB
  • auto-inventory.md5.1 KB
  • mxm-WRAPPER.md3.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…