| name | checkpointing-an-iteration |
| description | Use when saving current iteration progress mid-conversation, before context compaction, or at interim pause points |
Checkpointing an Iteration
Overview
Save current iteration progress by updating the journal entry with work performed so far, preserving state before potential context loss.
Core principle: Protect important context from compaction. Update journal incrementally during long conversations.
When to Use
Use this skill when:
- User runs
/checkpoint-iterationcommand - Conversation is getting long, compaction may be imminent
- Reached natural pause point mid-iteration
- Discovered important context that must be preserved
- Want to save progress before taking risky action
DO NOT use for:
- Ending the iteration (use ending-an-iteration instead)
- Starting iteration (use starting-an-iteration instead)
Quick Reference
| Step | Action | Tool |
|---|---|---|
| 1. Find journal file | Locate current iteration journal | Glob |
| 2. Review conversation | Extract work performed so far | Manual review |
| 3. Read current journal | Get existing content | Read |
| 4. Update Work Performed | Append new findings | Edit |
| 5. Announce checkpoint | Confirm save | Direct output |
Process
Step 1: Find Journal File
Locate the current iteration's journal:
# Use Glob to find journal files
pattern: "autonomy/*/iteration-*.md"
Sort by filename (iteration number) and identify the most recent one. This should be today's date or recent.
If no journal file found:
"No active iteration journal found.
This usually means `/start-iteration` wasn't run yet. Start an iteration first before checkpointing."
Stop here.
If journal file found: Extract the full path and proceed.
Step 2: Review Conversation
Review the conversation since iteration started to extract:
Skills & Workflows Used (so far):
- Scan for
<invoke name="Skill">tool calls - Note which skills used and for what purpose
Key Decisions Made (so far):
- Identify major choices and rationale
- Note alternatives considered
Artifacts Created/Modified (so far):
- Files created or changed
- Git commits made
- Pull requests opened
External Context Gathered (so far):
- Web research findings
- User feedback
- Documentation consulted
Reasoning & Strategy Changes (so far):
- Why certain approaches chosen
- Where strategy pivoted
Blockers Encountered (so far):
- What's preventing progress
- Dependencies identified
Open Questions (so far):
- What needs resolution
- Decisions deferred
Step 3: Read Current Journal
Read the existing journal file to see what's already documented:
# Use Read tool
file: "autonomy/[goal-name]/iteration-NNNN-YYYY-MM-DD.md"
The journal will have:
- Metadata header (# Iteration NNNN - YYYY-MM-DD)
- Beginning State section (from starting-an-iteration)
- Iteration Intention section (from starting-an-iteration)
- Work Performed section (may be partially filled from previous checkpoint, or empty)
- Ending State section (will be empty - that's for ending-an-iteration)
- Iteration Metadata section (will be empty - that's for ending-an-iteration)
Step 4: Update Work Performed Section
Update the "Work Performed" section with current findings from Step 2.
If Work Performed section is empty: Replace the empty section with full content:
## Work Performed
### Skills & Workflows Used
[From Step 2 review]
### Key Decisions Made
[From Step 2 review]
### Artifacts Created/Modified
[From Step 2 review]
### External Context Gathered
[From Step 2 review]
### Reasoning & Strategy Changes
[From Step 2 review]
### Blockers Encountered
[From Step 2 review]
### Open Questions
[From Step 2 review]
If Work Performed section already has content: Merge new findings with existing:
- Add new skills to "Skills & Workflows Used" list
- Add new decisions to "Key Decisions Made"
- Add new artifacts to "Artifacts Created/Modified"
- Append new findings to other sections
- Preserve all existing content
Use Edit tool to update the file.
Step 5: Announce Checkpoint
Report to user:
**Checkpoint saved for iteration [N]**
Journal updated: `autonomy/[goal-name]/iteration-NNNN-YYYY-MM-DD.md`
## Checkpoint Summary
- **Skills used:** [Count] skills/workflows
- **Decisions made:** [Count] key decisions
- **Artifacts created:** [Count] files/commits
- **Blockers:** [Count] blockers identified
- **Open questions:** [Count] questions pending
Context preserved. Safe to continue or compact conversation.
---
To finalize this iteration, use `/end-iteration` when ready.
Important Notes
Checkpoint vs. End Iteration
Checkpoint:
- Updates journal mid-iteration
- Iteration continues after checkpoint
- Can checkpoint multiple times per iteration
- Doesn't update summary.md
- Doesn't finalize "Ending State"
End Iteration:
- Finalizes journal entry
- Iteration concludes
- Writes final "Ending State"
- Updates summary.md if needed (every 5 iterations)
- Conversation ends or new iteration starts
Multiple Checkpoints
It's fine to checkpoint multiple times:
- Each checkpoint merges with previous content
- Later checkpoints add to earlier ones
- All information accumulated in journal
What Gets Preserved
Checkpointing preserves:
- Work done so far
- Decisions and reasoning
- Blockers discovered
- Context gathered
Checkpointing does NOT capture:
- Future plans (that's in "Ending State" at iteration end)
- Final assessment (that's for ending-an-iteration)
- Complete iteration story (still in progress)
Merging Strategy
When updating Work Performed with existing content:
- Append new items to lists (don't overwrite)
- Preserve all existing information
- Deduplicate if same item mentioned twice
- Maintain chronological order within sections
Common Mistakes
| Mistake | Reality |
|---|---|
| "I'll create new journal file for checkpoint" | NO. Update existing journal from starting-an-iteration. |
| "I'll overwrite existing Work Performed section" | NO. Merge new content with existing. |
| "I'll write Ending State during checkpoint" | NO. That's only for ending-an-iteration. |
| "Checkpoint means iteration is over" | NO. Iteration continues after checkpoint. |
| "I'll skip checkpoint if conversation isn't long" | NO. Checkpoint anytime user requests it. |
After Checkpointing
Once checkpoint is saved:
- Journal updated with current progress
- Context preserved against compaction
- Iteration continues normally
- Can checkpoint again later if needed
- When ready to conclude, use
/end-iteration