checkpoint
Skill3 starsChanged 30 days agoMITView on GitHub
Save and resume working state across sessions, with subcommands save, resume, and list. Captures git state, decisions made, remaining work, and modified files so a new session can pick up where the last one left off. Use when user says "checkpoint", "save progress", "save state", "resume", "pick up where I left off", or wants to preserve session context. For git commits, use /ship commit; for retrospectives, use /retro; for planning, use /plan.
91 other projects use a version of this.
Adopted by
Most recently taken up by
- TheLunchTrae/claude-code-configstheir own version, first seen Nov 8, 2026
- codewithmukesh/dotnet-claude-kittheir own version, first seen Nov 8, 2026
- pedrohcgs/claude-code-my-workflowtheir own version, first seen Nov 7, 2026
- flonat/flonat-researchtheir own version, first seen Nov 3, 2026
- jboczek/skillstheir own version, first seen Nov 1, 2026
- AhmedMerza/claude-skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use spinoff, instinct-export and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
AhmedMerzaSkillspinoff
After a branch is finished, harvest the work it made CHEAP — the helper you wrote that four other sites now hand-roll, the plumbing that turned a deferred feature small, the pattern that just split the codebase in two. Produces a follow-up backlog (0–3 candidates, feeding /issue), NEVER commits on the current branch. Invoke with /spinoff at the tail of the chain — after /fix-review has settled the review findings, before the MR merges — or when the user asks \"what else should we do while we're here / what did this unlock / anything to follow up on\". This is ship-check's optional twin — that finds what's MISSING and blocks the merge; this finds what's now CHEAP and blocks nothing. Restraint-gated: \"nothing spun off\" is the common and correct answer, and a finding that would have been equally valid before this branch is not a finding.
Also in 3 projects that use this
TheKREATORSSkillinstinct-export
Export instincts from project/global scope to a file
Also in 3 projects that use this
TheKREATORSSkillinstinct-import
Import instincts from file or URL into project/global scope
Also in 3 projects that use this
seek888Skillopen-gstack-browser
Launch GStack Browser — AI-controlled Chromium with the sidebar extension baked in. Opens a visible browser window where you can watch every action in real time. The sidebar shows a live activity feed and chat. Anti-bot stealth built in. Use when asked to "open gstack browser", "launch browser", "connect chrome", "open chrome", "real browser", "launch chrome", "side panel", or "control my browser". Voice triggers (speech-to-text aliases): "show me the browser".
Also in 5 projects that use this
diego-tobalinaSkillbuild-fix
Fix build and compilation errors systematically. Run when build fails.
Also in 5 projects that use this
seek888Skilldesign-html
Design finalization: generates production-quality Pretext-native HTML/CSS. Works with approved mockups from /design-shotgun, CEO plans from /plan-ceo-review, design review context from /plan-design-review, or from scratch with a user description. Text actually reflows, heights are computed, layouts are dynamic. 30KB overhead, zero deps. Smart API routing: picks the right Pretext patterns for each design type. Use when: "finalize this design", "turn this into HTML", "build me a page", "implement this design", or after any planning skill. Proactively suggest when user has approved a design or has a plan ready. (gstack) Voice triggers (speech-to-text aliases): "build the design", "code the mockup", "make it real".
Also in 5 projects that use this
- +2 more from seek888
- +1 more from TheKREATORS
Other versions91 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 91
- pedrohcgs/claude-code-my-workflow★ 1.7ksame name
- codewithmukesh/dotnet-claude-kit★ 808same name
- leonvanzyl/agentic-coding-starter-kit★ 447same name
- myICOR/myPKA★ 319same name
- hsantanna88/clo-author★ 262same name
- hugosantanna/clo-author★ 262same name
- sterlingcrispin/claude_slash_commands★ 200same name
- flonat/flonat-research★ 150same name
- josipjelic/orchestrated-project-template★ 96same name
- panayiotism/claude-harness★ 79same name
81 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository42 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- asideSkill
- assessmentSkill
- auditSkill
- benchmarkSkill
- brainSkill
- cleanupSkill
- concise-modeSkill
- cross-modelSkill
- deploySkill
- designSkill
- explainSkill
- fix-issueSkill
- ganSkill
- guardSkill
- hotfixSkill
- incidentSkill
- infraSkill
- interview-meSkill
- investigateSkill
- migrateSkill
- module-auditSkill
- morningSkill
- onboardSkill
- planSkill
- profileSkill
- pr-summarySkill
- readmeSkill
- refactorSkill
- researchSkill
- resolveSkill
- respondSkill
- retroSkill
- reviewSkill
- session-logSkill
- setupSkill
- shipSkill
- skill-newSkill
- spikeSkill
- tddSkill
- testSkill
- zoom-outSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 8 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 85 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 33
Every option except continuing turns the session into a summary of itself, which is lossy.
- Distinctive: line 49
Gather git state: Run these in parallel:
- Distinctive: line 55
Gather session context: When a purpose argument was given, it names what the next session will do.
- Very specific: line 112
Redact sensitive content: Before writing the file, scan every section for sensitive material and replace with a [REDACTED:<reason>] token.
- Very specific: line 125
Find the checkpoint: If no ID is given and the workspace holds PROMPT.md, read it.
- Distinctive: line 129
Verify the environment: Run these in parallel:
- Distinctive: line 132
Verify the project directory matches.
- Distinctive: line 141
Proceed: Ask the user which next step to start with, or continue from the first remaining step if the instruction is clear.
- Distinctive: line 160
Keep every checkpoint file.
- Very specific: line 161
Create the ~/.claude/checkpoints/ directory if it does not exist.
- Very specific: line 162
Never stage or commit PROMPT.md.
- Very specific: line 174
Stop and redact when any section matches a pattern from step 4 of Save, such as ghp_, -----BEGIN, or an email address.
- Distinctive: line 175
Stop and warn the user when git branch --show-current on resume differs from the checkpoint's branch.
- Very specific: line 176
Stop and resolve the workspace root with the helper script when about to write PROMPT.md to a guessed path.
- Very specific: line 177
Stop and unstage when git status shows PROMPT.md staged.
“Common” is measured: kept by at least 6 in 10 of the 85 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Overview
Persist working state to disk so a future session can restore full context without the user re-explaining everything.
Subcommand Routing
| Invocation | Action |
/checkpoint save | Capture current state to a checkpoint file |
/checkpoint save <purpose> | Capture state tailored to what the next session will be used for |
/checkpoint resume | Restore context from the most recent checkpoint |
/checkpoint resume <id> | Restore context from a specific checkpoint |
/checkpoint list | Show all available checkpoints |
/checkpoint | Default to save |
When to Use
Decide at a phase boundary, the point where one chunk of work such as an interview, an implementation, or a QA pass is done. Mid-phase there is nothing to decide: continue, or hand the remaining work to subagents. Work the questions in order; the first yes wins.
- Continue? Yes when the next phase needs this session as a primary source, as implementation needs the interview that preceded it, or when enough context is left for the next phase to fit. Continuing loses nothing, so rule it out first.
/clear? Yes when everything in the session, the exploration, the decisions, and the dead ends, is irrelevant to what comes next. Clearing a relevant session loses the reasoning behind the work, and reading the diff back does not recover it./checkpoint save? Yes when the state has to travel: a fresh session will pick it up, the work moves to another directory, repository, or harness, a colleague takes it over, or a side task found mid-phase is forked off without derailing the current one.- Subagent? Yes when the task is scoped tightly enough to run unattended, such as a review of a finished diff. Spawn it with the Agent tool and keep this session untouched.
/compact. The default, reached last: relevant context, same place, and the user stays in the loop. Pass an instruction naming the next phase, such as/compact we are about to QA the importer, so the summary keeps what that phase needs.
Every option except continuing turns the session into a summary of itself, which is lossy. Pay that loss only when staying costs more than it saves.
Storage
Inside a git repository, the checkpoint is the project workspace's PROMPT.md, per rules/project-workspace.md. Resolve the workspace root with hooks/_lib/project_workspace.py, never by guessing:
python3 -c 'import sys,pathlib; sys.path.insert(0, str(pathlib.Path.home()/".claude/hooks")); from _lib import project_workspace as pw; top = pw.toplevel(pathlib.Path.cwd()); print(top / pw.resolve_root(top))'The file is overwritten in place on every save. Outside a git repository, checkpoints go to ~/.claude/checkpoints/<YYYYMMDD-HHmmss>.md. Files already in ~/.claude/checkpoints/ stay readable by resume and list.
Process
Save
- Gather git state. Run these in parallel:
git branch --show-currentto capture the active branch.git log --oneline -5to capture recent commits.git status --shortto capture uncommitted changes.git diff --statto capture the scope of modifications.
- Gather session context. When a purpose argument was given, it names what the next session will do; keep what that work needs and drop the rest. From the current conversation, extract:
- The current task description.
- Decisions made during the session, with rationale.
- Files modified or created.
- Files read that are relevant to the task.
- Any blockers or open questions.
- Next steps remaining.
Write the checkpoint file. Inside a repository, write
<root>/PROMPT.mdwith the required sections and template fromstandards/project-workspace.md: identity with a README pointer, read first, hard constraints, dated state, numbered next steps, decided against. Carry the decisions, modified files, blockers, and suggested skills gathered above into those sections. When a purpose was given, state it at the top and order the next steps around it. Outside a repository, create~/.claude/checkpoints/<YYYYMMDD-HHmmss>.md, named by the GMT save time so a filename sort is a time sort, with this structure:# Checkpoint: <YYYYMMDD-HHmmss> **Saved:** <GMT timestamp> **Branch:** <branch name> **Project:** <repo root path> **Purpose:** <what the next session will be used for, when given> ## Task <current task description> ## Decisions - <decision 1>: <rationale> - <decision 2>: <rationale> ## Modified Files - <file path 1> - <file path 2> ## Recent Commits <output of git log --oneline -5> ## Uncommitted Changes <output of git status --short> ## Next Steps 1. <remaining step 1> 2. <remaining step 2> ## Blockers - <blocker or open question, if any> ## Suggested skills - <skill 1> -- <why the resuming agent should consider it> - <skill 2> -- <why>Reference other artifacts instead of copying them: a commit by SHA, a spec, plan, or ADR by path, a pull request or issue by URL. The checkpoint carries what no artifact holds, meaning the reasoning, the open questions, and the next step.
- Redact sensitive content. Before writing the file, scan every section for sensitive material and replace with a
[REDACTED:<reason>]token. Patterns to redact:- API keys, tokens, bearer credentials. Heuristics: high-entropy strings 32 chars or more, strings prefixed with
sk_,pk_,ghp_,Bearer,AKIA. - Passwords, private keys, certificates. Patterns:
-----BEGIN,password=,pwd=,secret=. - PII: email addresses, phone numbers, national identifiers, full names tied to non-public records.
- Internal hostnames, internal URLs such as
*.internal,*.corp, or*.lan, and IP addresses in RFC 1918 ranges when paired with a service name. The token must name the reason so a human reading the checkpoint can decide whether to fetch the real value:[REDACTED:api-key],[REDACTED:email].
- API keys, tokens, bearer credentials. Heuristics: high-entropy strings 32 chars or more, strings prefixed with
- Pick suggested skills. Choose 2 to 5 skills the resuming agent should consider, ranked by likely value. Examples:
/planif there is an open spec,/testif there are unrun tests,/ship prif the work is ready to land,/investigateif a blocker is a bug. - Confirm. State the checkpoint ID and file path to the user.
Resume
- Find the checkpoint. If no ID is given and the workspace holds
PROMPT.md, read it. Otherwise use the most recent file in~/.claude/checkpoints/sorted by filename. If an ID is given, read that specific file. - Read the checkpoint file. Parse all sections.
- Verify the environment. Run these in parallel:
git branch --show-currentto confirm the branch matches.git status --shortto see if files have changed since the checkpoint.- Verify the project directory matches.
- Output the context. Present the full checkpoint contents to re-ground the session:
- State the task.
- List decisions already made.
- List modified files.
- State remaining next steps.
- Flag any discrepancies between the checkpoint and the current git state.
- Proceed. Ask the user which next step to start with, or continue from the first remaining step if the instruction is clear.
List
- Read the checkpoints. List the workspace
PROMPT.mdfirst when it exists, then all.mdfiles in~/.claude/checkpoints/, sorted by name descending. Display a summary table:
ID Saved Branch Task Extract the branch and task from each file's header section.
Rules
- Checkpoints are informational snapshots, not git operations. They never commit, stash, or modify the working tree.
- Timestamps use GMT, never local timezone.
- The checkpoint file must be self-contained for orientation. A reader with no prior context must understand the full state from the file alone, following SHAs, paths, and URLs for the detail those artifacts already hold.
- On resume, if the branch has diverged significantly from the checkpoint, warn the user before proceeding.
- Keep every checkpoint file. Only the user deletes one, by hand.
- Create the
~/.claude/checkpoints/directory if it does not exist. - Never stage or commit
PROMPT.md. The workspace is excluded through.git/info/exclude, andhooks/project-workspace.pyblocks a forced add.
Common Rationalizations
- "The diff shows what I did, so the checkpoint can be short": the diff holds no rationale, no rejected options, and no next step. Write the decisions and the numbered next steps.
- "Pasting the spec into the checkpoint keeps it self-contained": a pasted copy drifts from the source. Reference it by path, SHA, or URL.
- "The token is needed to resume, so leave it in": the checkpoint is plain text on disk. Write
[REDACTED:<reason>]and name where the real value lives. - "Saving is always the safe choice": every save turns the session into a lossy summary. Work the When to Use questions first; continuing loses nothing.
- "The branch on resume is close enough": a mismatch means the next steps may target code that moved. Flag the discrepancy before proceeding.
Red Flags
- Stop and redact when any section matches a pattern from step 4 of Save, such as
ghp_,-----BEGIN, or an email address. - Stop and warn the user when
git branch --show-currenton resume differs from the checkpoint's branch. - Stop and resolve the workspace root with the helper script when about to write
PROMPT.mdto a guessed path. - Stop and unstage when
git statusshowsPROMPT.mdstaged.
Verification
- The file exists at the confirmed path:
<root>/PROMPT.mdinside a repository,~/.claude/checkpoints/<YYYYMMDD-HHmmss>.mdoutside one. - The file carries a GMT timestamp, the branch, numbered next steps, and 2 to 5 suggested skills.
- A scan of the file for
sk_,ghp_,AKIA,Bearer, and-----BEGINfinds nothing outside[REDACTED:...]tokens. git status --shortlists the same files before and after the save, andPROMPT.mdis absent from it.- On resume, every discrepancy between the checkpoint and the current git state is stated in the output.
Related Skills
/ship commit-- Commit changes after resuming and completing work./retro-- Run a retrospective after a multi-session task./plan-- Create a plan before starting work that checkpoints can reference.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

