Agent skill
rewind
List and restore to a named checkpoint from the current session. Use when the agent has gone off track and you need to recover to a previous good state.
Install this agent skill to your Project
npx add-skill https://github.com/juanandresgs/claude-ctrl/tree/main/skills/rewind
SKILL.md
/rewind — Session Checkpoint Recovery
You help the user recover to a previous checkpoint in the current session.
Checkpoints are created automatically by hooks/checkpoint.sh during implementer sessions:
- Every 5 file writes (threshold-based)
- On the first modification of any new file in the session
Each checkpoint is a git ref at refs/checkpoints/<branch>/<N> pointing to a commit object that snapshots the working directory state at that moment, without affecting HEAD or the branch pointer.
Protocol
Step 1 — List checkpoints for the current branch
BRANCH=$(git branch --show-current)
git for-each-ref "refs/checkpoints/${BRANCH}/" \
--format='%(refname:short) %(subject)' \
--sort=version:refname
Step 2 — Present checkpoints to the user
Format each checkpoint as:
[N] <timestamp> — before modifying <filename>
ref: checkpoints/<branch>/<N>
SHA: <sha>
Extract from the subject line checkpoint:EPOCH:before:FILENAME:
EPOCH→ convert to human-readable time (date -r EPOCHordate -d @EPOCH)FILENAME→ the file that was about to be modified
If no checkpoints exist, inform the user:
No checkpoints found for branch
<branch>. Checkpoints are created automatically during implementer sessions — every 5 writes or on the first modification of a new file.
Step 3 — On user selection, restore the checkpoint
# Get the checkpoint SHA
SHA=$(git rev-parse "refs/checkpoints/${BRANCH}/<N>")
# Show what will change before restoring
git diff HEAD "$SHA" --stat
# Show untracked files that will be REMOVED by the restore
echo ""
echo "--- Untracked files that will be removed ---"
git clean -fdn
Warning: Rewind removes untracked files that did not exist at the checkpoint. Show both the diff stat and the untracked file list to the user, then ask for confirmation:
This will restore N files to checkpoint state and remove M untracked files. HEAD stays at its current commit. Proceed?
After user confirmation, restore with both git checkout (tracked files) and git clean (untracked files):
# Restore tracked files to checkpoint state (does NOT move HEAD)
git checkout "$SHA" -- .
# Remove untracked files created after the checkpoint,
# but preserve .claude/ session state files
git clean -fd -e .claude/
Step 4 — Log the rewind event
source ~/.claude/hooks/context-lib.sh
PROJECT_ROOT=$(detect_project_root)
append_session_event "rewind" \
"{\"ref\":\"refs/checkpoints/${BRANCH}/<N>\",\"target\":\"${SHA}\"}" \
"$PROJECT_ROOT"
Step 5 — Report what changed
git diff --stat HEAD
Show the user:
- Which files were restored
- What the diff looks like (
git diff HEADfor key files) - Next steps: "You're now at checkpoint N. The agent's recent changes have been reverted. You can continue from this state."
Important Notes
- Checkpoints are READ-ONLY snapshots. Restoring does NOT change HEAD or the branch pointer. Only working-tree files are affected via
git checkout SHA -- . - Only checkpoints for the CURRENT branch are shown. Refs are scoped to
refs/checkpoints/<branch>/. - Checkpoint refs survive garbage collection because they are named refs (not loose objects).
- After merge, checkpoint refs for the merged branch are cleaned up by Guardian as part of the merge process.
- Counter state: The checkpoint counter is stored in
.claude/.checkpoint-counterand is reset when a new implementer session starts.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
consume-content
Produce a faithful content-snapshot of any source material (article, report, PDF, advisory) with verbatim quotes, structural transparency, and labeled editorial.
deep-research
Multi-model deep research with comparative assessment (OpenAI + Perplexity + Gemini). Queries 3 deep research providers in parallel and produces a comparative synthesis.
context-preservation
Generate structured context summaries for session continuity across compaction
reckoning
Analyze a project's MASTER_PLAN.md to assess coherence, evolution trajectory, and intent alignment. Modes: default (full analysis), compare (delta between reckonings), operationalize (convert findings to actionable work via /decide), steer (strategic brainstorming grounded in findings).
decide
Generate an interactive decision configurator from research or plan analysis. Presents options as explorable cards with trade-offs, costs, and filtering. Integrates with Planner to collect DEC-ID decisions.
diagnose
Validate hook integrity, state file consistency, and system health for the ~/.claude configuration.
Didn't find tool you were looking for?