一键导入
session-update
Use when the user says "update session", "log progress", "checkpoint session", or invokes /session-update — especially before /clear or handoff
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when the user says "update session", "log progress", "checkpoint session", or invokes /session-update — especially before /clear or handoff
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when Claude completes a spec or code implementation and needs independent review, or when the user invokes /peer-review. Triggers automatically after spec writing or code completion for production projects. Only bypass when user explicitly opts out.
Use when setting up a new project with the full opinionated workflow — session memory, commit hooks, copyright headers, ROADMAP, and CLAUDE.md. Invoke with "bootstrap project", "setup project", "new project setup", or /bootstrap-project
Use when the user says "init memory", "set up memory", "scaffold memory", "init project memory", or invokes /init-project-memory — creates the .claude/ session memory system in a new project
Use when the user says "end session", "wrap up", "let's stop here", or invokes /session-end
Use when the user says "start session", "new session", "begin session", or invokes /session-start
| name | session-update |
| description | Use when the user says "update session", "log progress", "checkpoint session", or invokes /session-update — especially before /clear or handoff |
| allowed-tools | ["Bash","Read","Edit","Grep","Glob"] |
You are capturing work-in-progress into today's SESSION_LOG.md entry before context is cleared or handed off. The goal: preserve what THIS Claude instance knows — decisions, reasoning, blockers, dead-end approaches — before it's lost. Git alone can't recover any of that.
Primary use case: run this right before /clear. Secondary: mid-session checkpoint after a chunk of work.
Read .claude/SESSION_LOG.md. Find the top entry.
If top entry's date == today (MM-DD-YYYY format; legacy YYYY-MM-DD is equivalent): continue to Step 2.
If no today entry: tell the user:
"No session-start stub exists for today. Run
/session-startfirst to create today's entry, then re-run session-update."
Stop. Do not create the entry here — that's session-start's job.
Look inside today's entry for a tracking marker of the form:
<!-- last-update: <git-hash> -->
<git-hash> + current uncommitted changes + this conversation's work not yet in the entry.Collect inputs:
# Current HEAD (for the new marker)
git rev-parse --short HEAD
# Commits since last marker (if marker exists):
git log --oneline --all <marker-hash>..HEAD
# Or commits since today's start (if no marker):
git log --oneline --all --since="6am"
# Uncommitted state
git status --short
git diff --stat
Also mine this conversation's context for things git won't show:
Draft bullets/rows for these four sections (merge into whatever already exists in the entry — don't replace):
### What Was Accomplished### Key Decisions### Files Modifiedgit diff --name-only <marker>..HEAD + uncommitted)### Notes for Next SessionIf git diff --stat shows changes, summarize them to the user:
"Uncommitted changes:
path/to/file.py(+12 / -3)- ...
Capture as WIP in Notes for Next Session?"
Never commit the changes from this skill — WIP captures are descriptive only.
Show the user the drafted additions, grouped by section. Ask:
"Apply these updates to Session NNN? You can edit, add anything I missed, or accept as-is."
Wait for confirmation or edits. If they edit, incorporate and re-confirm.
Read today's entry. Apply the confirmed additions using these rules:
DO NOT touch:
## MM-DD-YYYY - Session NNN: [In Progress] title line**Focus:** _In progress — finalize at session end_ lineThose are session-end's job to finalize.
DO:
**Focus:** _In progress — finalize at session end_
<!-- last-update: <new-HEAD-hash> -->
--- separator before the next session entry.Example — entry after first update:
## 04-13-2026 - Session 115: [In Progress]
**Focus:** _In progress — finalize at session end_
<!-- last-update: a1b2c3d -->
### What Was Accomplished
1. **Thing one** — one-line description
### Key Decisions
- Decision — rationale
### Files Modified
| File | Changes |
|------|---------|
| `api/app/foo.py` | Added bar handler |
### Notes for Next Session
- **WIP:** About to refactor `baz()` — paused here.
---
Tell the user:
"Session NNN updated through commit
<hash>. Captured N accomplishments / M decisions / K files / [WIP: yes|no]. Safe to/clear."
| Situation | Action |
|---|---|
| No today entry in SESSION_LOG.md | Tell user to run /session-start first |
<!-- last-update: hash --> present | Scope new work to commits after that hash |
| No marker | Scope new work to today's commits + conversation |
| Uncommitted changes exist | Offer to capture as WIP |
Called right before /clear | Primary use case — prioritize decisions + WIP + dead ends |
| Multi-agent day | Each Claude instance updates → marker advances → no double-counting |