checkpoints
Skill14 starsChanged 8 months agoMITView on GitHub
Checkpoint protocol for resuming multi-phase commands after session interruptions
2 other projects use a version of this.
Adopted by
Most recently taken up by
- nadavnaveh/skillstheir own version, first seen Oct 25, 2026
- whitecircle/halotheir own version, first seen Oct 9, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- whitecircle/halo★ 851same name
- nadavnaveh/skills★ 2same name
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 repository50 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- adr-conventionSkill
- architecture-vocabularySkill
- backlog-externalSkill
- backlog-localSkill
- backlogSkill
- design-principlesSkill
- domain-glossarySkill
- git-practicesSkill
- grounded-claimsSkill
- knowledge-checkSkill
- policy-riskSkill
- positive-framingSkill
- receiving-code-reviewSkill
- skill-authoringSkill
- skill-awarenessSkill
- subagent-driven-developmentSkill
- test-driven-developmentSkill
- token-efficientSkill
- triageSkill
- verification-before-completionSkill
- workflow-bugSkill
- workflow-checkSkill
- workflow-commitSkill
- workflow-contractsSkill
- workflow-debugSkill
- workflow-decisionsSkill
- workflow-docsSkill
- workflow-doctorSkill
- workflow-epicSkill
- workflow-featureSkill
- workflow-flow-fix-pipelineSkill
- workflow-flowSkill
- workflow-grillSkill
- workflow-handoffSkill
- workflow-ideaSkill
- workflow-implementSkill
- workflow-planSkill
- workflow-proposalSkill
- workflow-prSkill
- workflow-refineSkill
- workflow-researchSkill
- workflow-reviewSkill
- workflow-startSkill
- workflow-statusSkill
- workflow-tech-reviewSkill
- workflow-update-workflowSkill
- workflow-validateSkill
- workflow-worktreeSkill
- workflow-yoloSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
26 rules. About 0 are common, 11 are distinctive, and 15 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
15
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
Before starting a multi-phase command, check context usage:
- Very specific: line 41
If the item has no formal ID (e.g., a debug session started from a symptom description), derive a short slug from the context (e.g., …
- Distinctive: line 125
When writing a checkpoint, copy the phase names from the command's definition.
- Distinctive: line 131
Every checkpointed command runs this before anything else:
- Very specific: line 134
Delete docs/checkpoints/<command>-*.md matching the current item
- Distinctive: line 139
If found, read it and show a resume summary:
- Distinctive: line 154
Update the checkpoint file:
- Very specific: line 157
Update the updated timestamp in frontmatter
- Very specific: line 158
Update Current State with a brief summary
- Very specific: line 159
Add any decisions to Key Decisions
- Very specific: line 160
Add any created files to Artifacts Produced
- Distinctive: line 163
Write the file using the Write tool — always overwrite the full file (not Edit), since multiple sections change each time.
- Distinctive: line 173
When all phases are done:
- Very specific: line 175
Delete the checkpoint file: rm docs/checkpoints/<command>-<ID>.md
- Very specific: line 177
If the command doesn't produce a final commit, use: git rm + git commit -m "checkpoint: <command> <ID> — complete, removing checkpoint"
- Distinctive: line 181
If a phase fails (verification doesn't pass, blocker found):
- Very specific: line 183
Update the checkpoint with the failure state in Current State
- Very specific: line 184
Leave the phase as in_progress (not done)
- Distinctive: line 185
Commit the failure state:
- Distinctive: line 192
If the session is interrupted (context limit, user closes terminal):
- Very specific: line 199
Create docs/checkpoints/ if it doesn't exist (with .gitkeep)
- Very specific: line 201
Never add docs/checkpoints/ to .gitignore — checkpoint reliability depends on git persistence.
- Distinctive: line 209
Checkpoints are committed: Every checkpoint write is followed by a git commit.
- Very specific: line 210
Don't checkpoint trivial commands: Only the five multi-phase commands use checkpoints.
- Very specific: line 212
Completed phases are trusted: When resuming, do NOT re-verify or re-implement completed phases.
- Very specific: line 213
One checkpoint per command+ID pair: If /virtual-team:implement FEAT-007 is run, there's one checkpoint file.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Checkpoints Skill
Checkpoints let multi-phase commands survive session interruptions. When a phase completes, the command writes a checkpoint file. When the command is re-invoked, it reads the checkpoint and resumes from the first incomplete phase.
Context Pre-flight
Before starting a multi-phase command, check context usage:
- At 60% context: Warn the user. Suggest running
/compactto free space, or finishing the current phase, committing the checkpoint, and starting a fresh session. - At 80% context: Warn the user. Suggest running
/virtual-team:handoffto generate a handoff document before context runs out, so the next session can resume cleanly.
Checkpoints exist precisely for this scenario — running out of context mid-work is expected, not exceptional. The command proceeds either way, but the user knows checkpoints will protect their progress.
File Location and Naming
Checkpoint files live in docs/checkpoints/:
docs/checkpoints/<command>-<ID>.mdWhere:
<command>is the command name:debug,epic,feature,implement,plan<ID>is the item identifier the command is working on (e.g.,FEAT-003,EPIC-001,BUG-012, the plan filename slug)
Examples:
docs/checkpoints/feature-FEAT-003.md
docs/checkpoints/implement-2026-02-12-notifications.md
docs/checkpoints/debug-BUG-012.md
docs/checkpoints/epic-EPIC-001.md
docs/checkpoints/plan-FEAT-007.mdIf the item has no formal ID (e.g., a debug session started from a symptom description), derive a short slug from the context (e.g., debug-login-timeout).
Checkpoint File Format
---
command: <command>
item: <ID or description>
branch: <git branch name>
started: <ISO 8601 timestamp>
updated: <ISO 8601 timestamp>
status: in_progress
current_phase: 2
total_phases: 5
---
# Checkpoint: <command> — <item>
## Phases
| # | Phase | Status | Completed |
|---|---|---|---|
| 0 | Decision Sync | done | 2026-02-27T10:15:00Z |
| 1 | Capture | done | 2026-02-27T10:32:00Z |
| 2 | Product Analysis | in_progress | — |
| 3 | Technical Routing | pending | — |
| 4 | Agreements | pending | — |
| 5 | Document | pending | — |
## Current Phase Detail
<!-- Granular sub-tasks within the active phase only.
Cleared when the phase completes. -->
- [x] Gathered user interview notes from docs/research/
- [x] Identified three competitor approaches
- [ ] Draft market positioning summary
- [ ] Validate assumptions with user persona matrix
## Current State
<!-- Brief description of where things stand — what was the last thing completed,
what's next, any decisions made or blockers encountered. Keep this short
but specific enough to resume without re-reading everything. -->
## Key Decisions
<!-- Capture decisions made during completed phases that affect later phases.
This prevents re-asking the user questions they already answered. -->
- [Phase 0] Synced with hub decisions ADR-NNN and ADR-NNN
- [Phase 1] Scope confirmed: notifications for orders only, not marketing
## Artifacts Produced
<!-- List files created or modified by completed phases. This tells the
resuming session what already exists and doesn't need to be recreated. -->
- `docs/epics/EPIC-001-notifications.md` (draft, through Phase 1)
- `docs/decisions/2026-02-27-notification-transport.md`
## Key Context
<!-- References to documents and context the resuming session should re-read.
Populated on creation, stays fixed throughout. -->
- Feature: `docs/features/FEAT-003-notifications.md`
- Plan: `docs/plans/2026-02-12-notifications.md`
- Branch: `feat/CTR-12`
- Stack: Node.js + React (from stack.md)Phase Definitions by Command
Each command defines its own phases in its command file. The checkpoint tracks progress through those phases — it does not redefine them.
| Command | Phases | Source of truth |
/virtual-team:debug | 4 phases (Reproduce → Document) | commands/debug.md |
/virtual-team:epic | 6 phases (Decision Sync → Document) | commands/epic.md |
/virtual-team:feature | 6 phases (Understand → Stories) | commands/feature.md |
/virtual-team:plan | 5 phases (Arch Gate → Update Backlog) | commands/plan.md |
/virtual-team:implement | Dynamic (from plan document) | The plan file being implemented |
When writing a checkpoint, copy the phase names from the command's definition. Do not invent or rename phases here.
Protocol
On Command Start (Step 0)
Every checkpointed command runs this before anything else:
- If
--freshwas passed:- Delete
docs/checkpoints/<command>-*.mdmatching the current item - Proceed as if no checkpoint exists
- Delete
- Check for existing checkpoint:
- Look for
docs/checkpoints/<command>-<ID>.md - If found, read it and show a resume summary:
Resuming from checkpoint: docs/checkpoints/<command>-<ID>.md Last updated: <timestamp> Completed: Phase 0 (Decision Sync), Phase 1 (Capture) Resuming at: Phase 2 (Product Analysis) - Skip to the first phase with status
pendingorin_progress - Re-read any artifacts listed in the checkpoint to restore context
- Look for
- If no checkpoint exists:
- Proceed normally from the beginning
After Each Phase Completes
- Update the checkpoint file:
- Set the completed phase status to
donewith a timestamp - Set the next phase status to
in_progress(if there is one) - Update the
updatedtimestamp in frontmatter - Update
Current Statewith a brief summary - Add any decisions to
Key Decisions - Add any created files to
Artifacts Produced - Clear
Current Phase Detailsub-tasks (the next phase starts with a fresh list)
- Set the completed phase status to
- Write the file using the Write tool — always overwrite the full file (not Edit), since multiple sections change each time.
- Commit the checkpoint:
git add docs/checkpoints/<command>-<ID>.md git commit -m "checkpoint: <command> <ID> — phase <N> complete"
On Successful Completion
When all phases are done:
- Delete the checkpoint file:
rm docs/checkpoints/<command>-<ID>.md - Bundle the deletion into the final commit (e.g., the backlog update commit in
/virtual-team:implement) - If the command doesn't produce a final commit, use:
git rm+git commit -m "checkpoint: <command> <ID> — complete, removing checkpoint"
On Failure or Interruption
If a phase fails (verification doesn't pass, blocker found):
- Update the checkpoint with the failure state in
Current State - Leave the phase as
in_progress(notdone) - Commit the failure state:
git add docs/checkpoints/<command>-<ID>.md git commit -m "checkpoint: <command> <ID> — phase <N> failed" - The next session will resume at the failed phase with context about what went wrong
If the session is interrupted (context limit, user closes terminal):
- The last committed checkpoint is the recovery point
- This is why checkpoints are committed after each phase, not at the end — partial progress is preserved
Directory Management
- Create
docs/checkpoints/if it doesn't exist (with.gitkeep) - Checkpoints are committed. They live in git so they survive across sessions, worktrees, and machines.
- Never add
docs/checkpoints/to.gitignore— checkpoint reliability depends on git persistence.
Guidelines
- Write checkpoints after phases, not during. A phase is either done or not — no partial phase checkpoints.
- Keep
Current Stateconcise. Two to three sentences max. The resuming session will re-read artifacts for detail. - Capture decisions, not discussion.
Key Decisionsrecords what was decided, not the deliberation. - Always delete on success. Stale checkpoints cause confusion. Clean up.
- Checkpoints are committed. Every checkpoint write is followed by a
git commit. This is the reliability guarantee — without it, checkpoints don't survive session boundaries. - Don't checkpoint trivial commands. Only the five multi-phase commands use checkpoints. Single-step commands like
/virtual-team:commitor/virtual-team:reviewdon't need them. - Sub-tasks are ephemeral.
Current Phase Detailtracks granular items within the active phase only. When the phase completes, sub-tasks are cleared — they've served their purpose. - Completed phases are trusted. When resuming, do NOT re-verify or re-implement completed phases. Trust the checkpoint. If something is wrong, the user can
--freshto start over. - One checkpoint per command+ID pair. If
/virtual-team:implement FEAT-007is run, there's one checkpoint file. Running it again resumes. Running/virtual-team:implement FEAT-008creates a separate checkpoint.
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.

