Checkpoint
Capture session state at the end of a work session. Writes structured checkpoint file, updates memory, and comments on PM tasks with progress.From its SKILL.md
npx -y skills add sevenbelowllc/the-library --skill checkpointAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.6 KB, as published. Nobody here has run it
library:checkpoint — Session State Capture
Capture everything the next session needs to resume without context loss.
When to Use
- End of a work session
- Before switching to a different task or project
- When the user says "checkpoint", "save state", "wrap up"
- Before context window is likely to expire
Process
Step 1: Gather State
Review the conversation and recent tool calls to collect:
- Accomplished — concrete deliverables (files created, features implemented, bugs fixed)
- Changes — run
git statusandgit diff --statfor file-level changes - Next Actions — specific, actionable items (not "continue working on X")
- Open Decisions — unresolved questions with options and impact
- Key Context — non-obvious information (error messages, gotchas, constraints)
- Memory Updates — what was saved to Claude memory this session
Step 2: Write Checkpoint
Call library_checkpoint_write with gathered data:
- topic: kebab-case summary (e.g., "auth-middleware-refactor")
- status: current state in one line
- next_session: what to do first next time
- accomplished: semicolon-separated list
- next_actions: semicolon-separated list
- key_context: semicolon-separated list
Step 3: Update Memory
Save a project-type memory pointing to the checkpoint:
name: <Topic> Session Checkpoint
description: <one-line summary>
type: project
Content: path to checkpoint file, resume point, key decisions.
Step 4: Update PM Tasks (if PM configured)
For each PM task touched this session:
- Call
library_pm_updatewith a comment summarizing progress - If task is complete, transition status (but only if verified — evidence before claims)
Step 5: Check for Orphaned Work
Call library_pm_sync for active projects. Compare accomplished work against open tasks.
Flag any session work that doesn't match a PM task (orphaned work — should it be tracked?).
Step 6: Detect gaps + auto-file follow-up tickets
A session almost always discovers follow-ups that are NOT in PM yet — orphaned commits, side-fixes mid-merge, skipped tests with TODOs, drift between spec + code, manual workarounds, deferred validations. These die in operator memory if not filed.
Step 5's orphaned-work check compares accomplished vs open tickets. Step 6 goes further: it scans the session transcript + checkpoint for signals of untracked follow-ups that may not even be visible as "accomplished work" yet.
Procedure
-
Inventory candidate gaps by re-reading the session transcript + the checkpoint just written. Categories to look for:
Category Signal Test skipped with TODO describe.skip(.*TODO|skip.*FIXMEin committed diffMigration number collision two files with same NNN_ prefix in src/db/migrations/Hot-fix mid-merge commit titled fix(*): ...against own session's mergesSpec not updated for shipped code new migration / endpoint / schema change without matching B-spec edit Config corrected without audit account_id/project_id/regionvalue flipped without consumer auditDeferred validation "smoke test pending after X applies" / "blocked on operator click" Pre-existing bug papered over shipped fix with # pre-existing, not introduced herenoteManual cleanup left for operator <dir>.old-pre-cleanup/<file>.bakstyle preserved artifactsSecrets near-miss gitleaks fired on session content (worktree .env, etc.) Dep bump that violates pin policy edited HARD-pin requirement file -
Cross-check each candidate against open PM:
- Call
library_pm_querywithstatus=To Do+In Progressfor active project key - For each candidate, grep summaries + descriptions for keyword overlap (table name, file path, ticket-ID reference)
- If candidate maps to existing ticket → skip (tracked)
- If candidate has no match → it's a gap
- Call
-
Surface the gap list to operator BEFORE filing. Format:
## Gap detection — N untracked items | # | Gap | Suggested ticket title | Labels | |---|---|---|---| | 1 | <symptom> | <imperative title> | follow-up,<area> |Ask: "File these N tickets in
<PROJECT_KEY>? (yes / cherry-pick: 1,3,5 / no)" -
On operator yes / cherry-pick: call
library_pm_create_taskfor each accepted gap. Description must include:- Detected during:
<this checkpoint slug>YYYY-MM-DD - Source signal: the literal grep / commit / file that triggered detection
- Action: specific repair steps
- Labels: always include
follow-up+ 1-2 area tags (e.g.db-migration,tf-audit,test-cleanup,security-audit)
- Detected during:
-
Append filed ticket IDs to the checkpoint file under a new section
## Gap follow-ups filedso the next session sees them at the same level as accomplished/blockers.
Hard rules for gap detection
- Never silently skip surfacing a gap. If unsure, surface it + let operator decide.
- Never auto-file without operator approval (default
no-on-empty). - Cherry-pick mode allowed: operator types
1,3,5to file a subset. - One ticket per gap — do not stack multiple unrelated fixes in one ticket body.
- If the gap lacks a clear repair path, file it anyway with
## Open question:block — better tracked than forgotten.
Step 7: Confirm
Report to user:
"Checkpoint written to
<path>. Memory updated. [N PM tasks updated.] The next session should start by reading that file. Anything to add?"
Wait for user confirmation.
Resume from Checkpoint
When invoked with "resume" intent or when starting a new session:
Step R1: List Checkpoints
Call library_checkpoint_list to show recent checkpoints with dates and status.
Step R2: Select Checkpoint
Present the list and let user pick one to load. If only one recent checkpoint exists, offer to load it directly.
Step R3: Load Checkpoint
Call library_checkpoint_read(path) to display checkpoint content.
Step R4: Resume
Resume from the checkpoint's "What's Next" section. Read referenced files and re-establish context before proceeding with the next actions.
Quality Gates
- No vague actions. "Continue working on X" is not valid. Be specific.
- No assumed context. Write as if the next reader has zero memory.
- Fresh git state. Run
git statusnow, don't reuse earlier observations. - Absolute paths. No ambiguous references.
- Decisions include rationale. Not just "chose X" but "chose X because Y."
Token Budget
Weight: Medium Estimated context cost: ~1500 tokens Subagent delegation: No
Storage Location (Hard Rule)
Checkpoints always live under the Reading Room. By default the file is written to <reading_room.path>/checkpoints/. An explicit checkpoints.path in library-config.yaml is allowed but must resolve under reading_room.path — anything else is rejected with an error. There is no silent fallback to the MCP server's CWD.
MCP Tools Used
library_checkpoint_write— write structured checkpoint filelibrary_checkpoint_list— list recent checkpoints (for resume flow)library_checkpoint_read— read a specific checkpoint (for resume flow)library_pm_update— comment on PM tasks (if PM configured)library_pm_sync— check for orphaned work (if PM configured)library_pm_query— find existing tickets to cross-check candidate gaps (Step 6)library_pm_create_task— file new tickets for accepted gaps (Step 6)