From junjak-ai-harness
Save and restore work state across sessions, branches, and compactions. Use when saving progress before stopping, switching branches, or when the /checkpoint command is invoked.
How this skill is triggered — by the user, by Claude, or both
Slash command
/junjak-ai-harness:checkpointThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Persist work state for cross-session recovery. Checkpoints capture everything needed to resume work without re-reading the entire codebase.
Persist work state for cross-session recovery. Checkpoints capture everything needed to resume work without re-reading the entire codebase.
# Checkpoint: {title}
**Branch**: {git branch name}
**Timestamp**: {YYYY-MM-DD HH:MM}
**Plan**: {_docs/ plan file path, or "none"}
## Current Progress
- [x] Completed step 1
- [x] Completed step 2
- [ ] Remaining step 3
- [ ] Remaining step 4
## Modified Files
{output of git status --short, staged + unstaged}
## Key Decisions
- {Decision}: {Rationale}
## Verified Approaches
- {Approach}: {Evidence it works — test pass, build success, etc.}
## Failed Approaches
- {Approach}: {Why it failed — error message, wrong assumption, etc.}
## Blockers / Gotchas
- {Anything the next session needs to watch out for}
## Next Steps
1. {Concrete, actionable next task}
2. {Second task}
3. {Third task}
.claude/session-state/checkpoints/
├── latest.md # Always the most recent (overwritten)
├── checkpoint-20260416-1430.md # Timestamped archive
├── checkpoint-20260416-1100.md # Older checkpoint
└── ...
latest.md is always overwritten with the newest checkpointphase1-baseline.md, phase3-worktree-auth.mdWhen user runs /checkpoint save [title] or when explicitly asked:
git branch --show-current
git status --short
latest.md and timestamped fileHooks trigger checkpoint saves at these events:
session-stop.sh promotes current.md content to checkpointpre-compact.sh saves current state before compressionAuto-save uses current.md as source — the session state file maintained during work.
git checkout {branch}git status:
If checkpoint was on a different branch:
⚠ Checkpoint was on branch: feat/auth
Current branch: main
Options:
1. Switch to feat/auth and continue
2. Stay on main and use checkpoint as reference only
ls -1t checkpoints/checkpoint-*.md | tail -n +11 | xargs rm -f
latest.md is never auto-cleaned (always available)| Workflow Event | Checkpoint Name | Content |
|---|---|---|
| Plan finalized (Phase 1) | phase1-baseline.md | Plan summary + file assignments |
| Designer completes (Phase 3) | phase3-worktree-{name}.md | Implementation report + test results |
| All worktrees merged | phase3-integration.md | Merged state + any conflicts resolved |
| Verification pass (Phase 4) | phase4-verified.md | Full verification results |
| Before PR (Phase 5) | phase5-final-gate.md | Security review + ship decision |
Save: /checkpoint save "title" or auto (hooks)
Load: /checkpoint or /checkpoint load [id]
List: /checkpoint list
Storage: .claude/session-state/checkpoints/
Format: Branch + Progress + Decisions + Verified + Failed + Next Steps
Max: 10 timestamped + 1 latest
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub junjak/ai-harness --plugin junjak-ai-harness