Session End Skill
Persist the current session's state so the next session can resume cleanly.
Workflow
Step 1: Review what was done
Look at what happened during this session:
- What tasks were completed?
- What's still in progress?
- Were any architectural decisions made?
- Any workflow friction, tool gotchas, or things worth remembering?
Step 2: Update status.md
Rewrite .claude/memory/status.md to reflect current state:
- Keep it under 50 lines — it loads every session
- It's a snapshot, not a log — replace old content, don't append
- Update "Last updated" date
- Update "Phase" and "Focus"
- Move completed items to "Recent Completions" (keep only last ~5)
- Update "In Progress", "Blocked", and "Next Up"
Step 3: Update plan (project mode)
If this is a project with plan.md, update task checkboxes:
- Mark completed:
- [x] Task - Mark in-progress:
- [-] Task - Add newly identified tasks or open questions under the appropriate phase
Step 4: Log decisions
Review the session and identify any architectural or design decisions that were made.
Write these to decisions.md directly — do NOT ask the user unless the session was
ambiguous and you genuinely cannot determine what was decided or why.
Create decisions.md with frontmatter if it doesn't exist yet.
Workspace mode: check whether the decision is task-specific or cross-task. Task-specific decisions belong in the task file or task directory, not at root.
ADR format:
### YYYY-MM-DD — Decision Title
**Context**: What situation prompted this decision?
**Decision**: What did we decide?
**Alternatives considered**: What else was on the table?
**Trade-offs**: What are we giving up?
Step 5: Log lessons and tool knowledge
Review the session for workflow friction, things that worked well, tool quirks, or command syntax worth noting. Write these directly — do NOT ask the user unless nothing meaningful can be inferred from the session.
Workflow lessons → lessons.md
Tool knowledge → tools.md (CLI syntax, missing tools and what was used instead,
flag traps, argument quirks)
Note at the top of lessons.md (add if creating for the first time):
_For tool-specific knowledge (CLI syntax, missing tools, flag traps), see [tools.md](tools.md)._
Create each file with frontmatter if it doesn't exist.
Workspace mode: root-level lessons.md and tools.md are for cross-task knowledge
only. Task-specific learnings go into the task file or task directory.
Step 6: Append to log
Append a brief entry to .claude/memory/diary.md. Create it if it doesn't exist.
Do NOT add diary.md to the MEMORY.md index — it is never auto-loaded.
Format:
### YYYY-MM-DD HH:MM — {{short title summarizing the session}}
**Session**: {{session ID}}
{{prose summary of the session — what was worked on, what changed, and what comes next.
Write it like a journal entry: clear and human-readable, not a bullet dump.
Up to 5 paragraphs. No need to go deep on technical details.}}
Step 7: Sync MEMORY.md index
If any new topic files were created this session (e.g., decisions.md, lessons.md,
tools.md), add them to .claude/memory/MEMORY.md with a one-line entry:
- [Title](file.md) — one-liner description
Step 8: Confirm
Tell the user what was saved — files updated, key state changes, what the next session should pick up. Keep it to 3-4 lines.