Skip to content
Agentmart
Submit a tool

checkpoint

Save current session state mid-session — faster than /whats-next, designed for crash recovery

Skill by hhellbusch

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/hhellbusch-checkpoint

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Save current session state mid-session — faster than /whats-next, designed for crash recovery

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/checkpoint

Tools it pre-approves 3

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Read
  • Write
  • Shell

What's inside

Skill name
checkpoint
Description
Save current session state mid-session — faster than /whats-next, designed for crash recovery
License
MIT
Allowed tools
Read, Write, Shell
Instructions
118 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Checkpoint — Mid-Session State Save

<objective>
Write a minimal but accurate snapshot to `whats-next.md (project-scoped)` that would let a new session recover context within 60 seconds. Faster and lighter than `/whats-next` — no lengthy sections, no full retrospective. The goal is: if the session ended right now, what would the next session need to know?

Same continuation contract as `/whats-next` (`kit/WORKING-STYLE.md` → Progressive bookkeeping → Continuation contract). Resume readers use the **latest** entry; older appends load only when needed.

Run this:
- Before any risky operation (git mv, large multi-file refactor, anything that could fail mid-way)
- After completing a significant unit of work
- When more than 3–5 commits have happened since the last checkpoint
- Anytime you want to save state before a context-heavy task
</objective>

<context>
- Last commits: `git log --oneline -5`
- Git state: `git status --short`
- Branch + hash: `git branch --show-current` and `git rev-parse --short HEAD`
- Existing handoff (if any): `whats-next.md (project-scoped)`
- Session identity: consult `kit/HARNESS-DETECTION.md` to self-identify harness and version; note the active model from session context (e.g., `<model_information>` tag in Copilot CLI)
</context>

<process>

### Step 1: Assess current state

From the context above, identify:
1. **What is actively in progress** — what task is mid-flight right now?
2. **What was just completed** — last 1-3 units of work (from commits)
3. **What is the next intended step** — what would happen next if the session continued?
4. **Any key decision made since last checkpoint** — anything that would be re-litigated by a new session without knowing

If there is no in-progress work and nothing was just completed, the checkpoint is trivial — report verbally ("No active work — clean state") and **do not write** unless the user explicitly asked to stamp the file.

### Step 2: Choose the project, then append

Same rule as `/shoshin`. `/checkpoint <project>` writes `.planning/<project>/whats-next.md` even when another `BRIEF.md` is newer. One brief: use it. Several briefs and no project argument: ask, and do not write. Do not pick the newest brief.

Append to that file with a datestamp — do not overwrite existing entries.

Use this compact format:

```markdown
# Checkpoint — [YYYY-MM-DD HH:MM]

**Session:** [harness / model — from kit/HARNESS-DETECTION.md; omit if undetectable]

**In progress:** [One sentence: what we're working on right now — or "Nothing in flight, clean state"]

**Just completed:** [1-3 bullet points: what finished since the last checkpoint]

**Next step:** [One sentence: what would happen next if this session continued]

**Key decision (if any):** [One sentence, or "None" — captures anything that would be re-litigated without knowing it was settled]

**Git state:** `[branch @ short-hash] · recorded [YYYY-MM-DDTHH:MM:SSZ]` — [last commit message, truncated to ~60 chars]

**Uncommitted work:** [None / Yes — brief description of what's staged or modified]

**Open threads (stack):** *(optional — omit if only one active thread)*
- `[bottom]` Parent topic — status
  - `[open]` Subtopic — what's waiting

---

*Checkpoint — not a full session summary. See git log for full history.*
```

Keep it short. Five minutes to write, thirty seconds to read. Link durable detail; do not dump the session.

Record **branch, hash, and time** so a later session can compare before mutating. This skill **saves** state — it does not revalidate on resume. Resume check: `/shoshin` (step “Resume revalidation”); rationale in `kit/WORKING-STYLE.md` → On resume. Readers: latest entry first.

---

### Step 2.5: Spar trigger evaluation

Before logging the checkpoint, ask: **would a spar be beneficial right now?**

Score the current session output against these triggers. If **two or more** fire, surface a recommendation before saving the checkpoint:

| Trigger | Signal |
|---|---|
| **Argumentative output** | An essay, proposal, brief, or plan was drafted or significantly revised |
| **Decision with trade-offs** | A non-trivial technical or design choice was made (architecture, tool, scope) |
| **External-facing output** | Work is being prepared to share, publish, or submit |
| **Unchallenged direction** | The session has produced only agreeable outputs — no pushback, no alternatives explored |
| **Load-bearing claim** | A claim is being made that the rest of the work depends on, but wasn't verified |
| **Scope expansion** | The work broadened mid-session beyond the original request |

**If two or more triggers fire:**
> "Spar conditions detected: [list which triggers fired]. Want me to run `/spar` on [specific target — the document, claim, or decision] before closing?"

Do not run the spar automatically. Always ask first — the user may be in a "getting things done" mode where interruption costs more than the value.

**If zero or one trigger fires:** skip this step entirely.

---

### Step 3: Confirm

After writing, report:
```
Checkpoint saved to whats-next.md (project-scoped)
In progress: [brief]
Next step: [brief]
Git state: [branch @ short-hash] · recorded [YYYY-MM-DDTHH:MM:SSZ]
```

Do NOT commit the checkpoint file automatically. The user can commit it alongside their next commit, or leave it uncommitted so it stays current.

</process>

<success_criteria>
- When there is real in-flight or just-completed work: `whats-next.md (project-scoped)` appended with current timestamp, in progress / next step / git state (branch, short hash, UTC ISO time)
- When clean and trivial: no file write unless the user asked to stamp; verbal confirmation instead
- Written in under 30 seconds of agent time
- New session could read the **latest** entry and orient in under 60 seconds
</success_criteria>

From hhellbusch/zanshin-pi-extension, MIT.

More from hhellbusch/zanshin-pi-extension

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 5, 2026 (24 days ago)
Last release
Oct 5, 2026 (24 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from hhellbusch

Cite this page

checkpoint skill. Agent Mart. https://agentmart.dev/skills/hhellbusch-checkpoint (last updated 2026-10-24)