# End

> Wrap up a work session. Updates memory files, logs decisions and lessons, appends to the session log.

- Skill: `torarnv/end` (Agent Skill)
- Install (CLI): `npx skillmds@latest add torarnv/end`
- Raw SKILL.md: https://api.skillmd.com/api/skills/torarnv/end/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: torarnv (https://skillmd.com/u/torarnv)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/torarnv/end

---


# 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:
```markdown
### 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):
```markdown
_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:
```markdown
### 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:
```markdown
- [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.

