checkpoint — Claude Code skill: commit and handoff mid-session
Creates a descriptive git commit and a short handoff note without ending the session. Useful right before a risky refactor.
npx skills add codewithmukesh/dotnet-claude-kit --skill checkpoint -a claude-codeWhat checkpoint does
The skill banks your current working state in two moves. First it reads git status and git diff, stages the relevant files and makes a new commit with a message that matches the repo's style (feat:, fix:, refactor:). Then it writes .claude/handoff.md — an abbreviated version of the /wrap-up format: what's done, what's pending with concrete next steps, anything non-obvious that surfaced, and which branch you're on. The file is always overwritten, so you keep a single note.
The safety rules are strict. It never pushes, never touches remote branches and never amends — a checkpoint is a new commit you can return to. Secrets and generated files stay out, and git add -A is off the table. With nothing to commit, only the handoff gets updated.
This is a mid-session save, not the closing ritual. The full handoff plus learning extraction into MEMORY.md lives in /wrap-up. And if the build is broken, /build-fix comes first.
What it helps with
- bank a known-good state before a risky refactor
- switch tasks mid-session without losing context
- commit a finished logical unit of work
- leave a note you can resume from after a botched change
- save progress without ending the session
Example prompts for the agent
- /checkpoint — about to try the split-query refactor
- checkpoint, save progress before I touch the validation code
- commit and handoff, I'm switching to another task
How to install checkpoint
1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill checkpoint -a claude-code2Manually: put the files in place
~/.claude/skills/checkpoint/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/checkpoint/
1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill checkpoint -a codex2Manually: put the files in place
.agents/skills/checkpoint/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill checkpoint -a cursor2Manually: put the files in place
.cursor/skills/checkpoint/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install codewithmukesh/dotnet-claude-kit checkpoint2Manually: put the files in place
.github/skills/checkpoint/SKILL.md1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill checkpoint -a gemini-cli2Platform CLI
gemini skills install https://github.com/codewithmukesh/dotnet-claude-kit --path skills/checkpointManually: put the files in place
.devin/skills/checkpoint/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill checkpoint -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about checkpoint
How do I install checkpoint in Claude?
Run npx skills add codewithmukesh/dotnet-claude-kit --skill checkpoint -a claude-code. The skill lands at ~/.claude/skills/checkpoint/SKILL.md.
What does checkpoint do?
It makes a git commit with a descriptive message and writes .claude/handoff.md describing where the work stands. Then you keep working.
How is checkpoint different from /wrap-up?
checkpoint is a mid-session save: one commit and a brief note. /wrap-up ends the session with the full handoff format and extracts learnings into MEMORY.md.
Source text
SKILL.md · MIT
--- name: checkpoint description: > Mid-session save point: create a descriptive git commit and a brief handoff note, then keep working. Use before a risky change or refactor, when switching tasks, or to bank progress without ending the session. Triggers on: /checkpoint, "checkpoint", "save progress", "commit and handoff", "save state", "pause here", "before a risky change". For the full end-of-session ritual with learning extraction, use /wrap-up instead. disable-model-invocation: true --- # /checkpoint ## What A quick mid-session save that banks the known-good state in two moves: 1. **Descriptive git commit** — stage relevant changes and commit with a message that summarizes the work. 2. **Brief handoff note** — write `.claude/handoff.md` so a resumed session (or you, after a botched refactor) knows exactly where things stand. Checkpoint is the mid-session save; `/wrap-up` is the end-of-session ritual. Checkpoint commits and jots a note, then keeps working. Wrap-up does the full handoff plus learning extraction into `MEMORY.md`. ## When - Before a risky refactor or destructive change — checkpoint the known-good state - When switching to a different task or feature mid-session - After completing a logical unit of work — bank it - User says "checkpoint", "save progress", "save state", "pause here" - If the session is actually ending, use `/wrap-up` for the full ritual ## How 1. **Assess state** — `git status` and `git diff` to see staged and unstaged changes. 2. **Stage changes** — Stage specific files; never `git add -A`. Exclude generated files, build artifacts, and secrets (`.env`, credentials). 3. **Commit** — Descriptive message following the repo's commit style (conventional prefixes: `feat:`, `fix:`, `refactor:`). New commit, never amend. If there is nothing to commit, skip to the handoff. 4. **Write handoff note** — `.claude/handoff.md`, same format as `/wrap-up` but abbreviated: Completed, Pending (with specific next steps), Learned (only if something non-obvious surfaced), and Context (branch + commit hash). One file, always overwritten. 5. **Confirm** — Report the commit hash and the handoff summary, then resume work. ### Safety Rules - Never push, force-push, or touch remote branches - Never commit secrets - Never amend — a checkpoint is a new commit you can return to - No changes to commit? Update the handoff only ## Example ``` User: /checkpoint — about to try the EF Core split-query refactor Claude: 3 files modified, 1 new. Commit a1b2c3d: "feat: add CreateOrder validation with FluentValidation" - src/Orders/Features/CreateOrder.cs - src/Orders/Features/CreateOrderValidator.cs (new) - tests/Orders.Tests/Features/CreateOrderTests.cs Handoff updated (.claude/handoff.md): ## Completed - [x] CreateOrder validation + 3 test scenarios ## Pending - [ ] Split-query refactor in GetOrderDetails (about to attempt) ## Context - Branch: feature/order-validation | Checkpoint: a1b2c3d Checkpoint saved — safe to proceed with the risky refactor. ``` ## Related - `/wrap-up` — End-of-session ritual: full handoff format definition plus learning extraction into MEMORY.md - `/build-fix` — Get the build green before checkpointing
© codewithmukesh · MIT · codewithmukesh/dotnet-claude-kit