Skip to main content

safety-net

Use when the user wants to undo or roll back changes Claude made to files, recover a previous state, or turn on an automatic edit checkpoint net. Triggers - "undo", "desfazer", "voltar atras", "reverter as mudancas do Claude", "rollback", "restaurar", "safety net", "rede de seguranca", "checkpoint", "/safety-net". Restores tracked files to the snapshot taken right before the last edit, without deleting anything.

Source facts

Repository
Zavelinski/claude-code-safety-net
Last source activity
June 26, 2026 at 22:12
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
safety-net
description
Use when the user wants to undo or roll back changes Claude made to files, recover a previous state, or turn on an automatic edit checkpoint net. Triggers - "undo", "desfazer", "voltar atras", "reverter as mudancas do Claude", "rollback", "restaurar", "safety net", "rede de seguranca", "checkpoint", "/safety-net". Restores tracked files to the snapshot taken right before the last edit, without deleting anything.
# safety-net Automatic, reversible checkpoints around Claude's edits. Recovery-first: every multi-file session becomes rollback-able by default, with no discipline required from the user. ## How it works (mechanism) A `PreToolUse` hook (matches `Edit|Write|MultiEdit|NotebookEdit`) runs BEFORE each edit and: 1. Captures the current git working tree as a stash commit via `git stash create` (does NOT touch the working tree or index). 2. Anchors it under `refs/safety-net/<timestamp>` so git gc never collects it. 3. Appends a line to a ledger at `<gitdir>/safety-net/ledger.jsonl`. Duplicate snapshots (same tree as the previous checkpoint) are skipped. The hook NEVER blocks an edit: any error exits 0 silently. `undo` restores tracked files to a checkpoint. It first re-checkpoints the current state, so undo is itself reversible. It never deletes files Claude newly created (safe by design). ## Commands Run the CLI from inside the project (git repo): ``` node <skill-dir>/bin/safety-net.js status # how many checkpoints, latest node <skill-dir>/bin/safety-net.js list # list all checkpoints (#1 = oldest) node <skill-dir>/bin/safety-net.js undo # restore the latest checkpoint node <skill-dir>/bin/safety-net.js undo <n> # restore checkpoint #n from list node <skill-dir>/bin/safety-net.js keep # clear checkpoints (turn the net off) ``` `<skill-dir>` after install is `~/.claude/skills/safety-net` (Windows: `%USERPROFILE%\.claude\skills\safety-net`). ## What to do when the user asks - User says "undo" / "desfazer" / "voltar atras" / "reverter o que voce fez": run `undo`. Report the restored checkpoint SHA + timestamp, and the pre-undo SHA (so they know undo is reversible). - User asks "what checkpoints exist" / "what can I roll back to": run `list`. - User says "I'm done, drop the net" / "limpar checkpoints": run `keep`. - User asks for status: run `status`. Always show the user the SHA and timestamp you acted on. If a restore conflicts, do not force it: report the SHA and tell the user the manual command `git checkout <sha> -- <file>`. ## Limitations (v1, be honest about these) - Requires a git repository with at least one commit. In a non-git dir, the hook is a silent no-op (document: run `git init` + first commit to enable checkpoints). - `undo` restores modified and deleted tracked files. It does NOT delete files Claude newly created (safe, never destructive). Remove unwanted new files manually. - Untracked files are not part of a checkpoint (git stash create limitation).
View on GitHub