Skip to content
Back to skills

Checkpoint

ASecurity

Save a compact continuation checkpoint so current work survives context compaction or a later session. Use when the active context is becoming long or work must pause without changing client or machine ownership. For an explicit cross-session/client transfer, use $handoff.

  • 144 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentsbashgit

Works with

  • cli

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add flonat/flonat-research --skill checkpoint --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Checkpoint?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Checkpoint
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/flonat-checkpoint/badge)](https://www.skillsdirectory.com/skills/flonat-checkpoint)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: checkpoint
description: "Save a compact continuation checkpoint so current work survives context compaction or a later session. Use when the active context is becoming long or work must pause without changing client or machine ownership. For an explicit cross-session/client transfer, use $handoff."
allowed-tools: Read, Write, Edit, Bash(git*), Bash(date*), Bash(wc*), Glob
---

# Checkpoint — Save Session State

Snapshot the current session's progress to a YAML file so it can be restored after context compaction or in a new session. This is NOT a session log (narrative) or context save (profile/focus) — it's a machine-readable state dump for continuity.

## When to Use

- Before a session is likely to hit context compression (many tool calls, long outputs)
- At phase boundaries in multi-phase work
- When the user says "save state", "checkpoint", "save progress"
- Proactively when you sense context is getting large — don't wait to be asked

## When This Skill Is Invoked

### Step 1: Gather State

Collect the following from the current conversation context:

1. **Project** — which project directory are we working in?
2. **Task** — what was the user's original request this session?
3. **Files modified** — list every file you've created or edited this session (use `git diff --name-only` if in a git repo, plus any new untracked files)
4. **Decisions made** — key choices and their rationale (e.g., "chose LaTeX over Markdown because...", "used sonnet for cron jobs to reduce cost")
5. **Current step** — where in the plan are we? What just completed? What's next?
6. **Blocked items** — anything that couldn't be completed and why
7. **Open questions** — unresolved ambiguities that need user input

### Step 2: Write Checkpoint

Write to `.planning/checkpoint.yaml` in the active project directory. If no project directory is obvious, write to the Task Management root.

```yaml
# Auto-generated by checkpoint — do not edit manually
created: "YYYY-MM-DDTHH:MM:SS"
session_id: "<from $CLAUDE_SESSION_ID if available>"
project: "<project directory basename>"

task: |
  <one-paragraph description of what the user asked for>

files_modified:
  - path: "relative/path/to/file.md"
    action: "created|edited|deleted"
    summary: "what was changed and why"

decisions:
  - decision: "what was decided"
    rationale: "why"

progress:
  completed:
    - "step 1 description"
    - "step 2 description"
  current: "what step we're on now"
  next:
    - "next step 1"
    - "next step 2"

blocked:
  - item: "what's blocked"
    reason: "why"

open_questions:
  - "question that needs user input"

context_files:
  - "list of files that should be re-read on restore"
```

### Step 3: Confirm

Report to the user:
```
Checkpoint saved to .planning/checkpoint.yaml
- N files modified
- N decisions recorded
- Current step: [description]
- Next: [first next step]
```

## Schema Rules

- **`files_modified`**: Only files touched THIS session, not all project files
- **`decisions`**: Only non-obvious choices. Skip mechanical decisions ("used latexmk" is obvious; "chose TWFE over CS estimator" is not)
- **`context_files`**: List files that `restore` should re-read to reconstruct working context. Include CLAUDE.md, the plan file, and any files being actively edited
- **`progress.current`**: Must be specific enough that `restore` can pick up exactly where we left off
- **Timestamps**: Always ISO format, always local timezone

## Multiple Checkpoints

Each `checkpoint` invocation overwrites the previous checkpoint. There is only one active checkpoint per project. If you need history, the git log preserves it.

## Anti-Patterns

- Do NOT write narrative prose — this is structured data for machine consumption
- Do NOT include file contents — only paths and summaries
- Do NOT checkpoint trivially (single-file edits with no decisions) — it's overhead without value
- Do NOT use this instead of `session-log` — session logs are for humans, checkpoints are for restore

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.