Skip to content
Back to skills

Freeze

ASecurity

Scope or freeze which files Claude can edit during debugging, a refactor, or review. Use when edits should stay in specific dirs, or for a read-only investigate lock. Backed by a sentinel + PreToolUse hook.

  • 559 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
ai-agentsbashawsdebuggingsecurity

Security analysis

A100/100

Scanned September 5, 2026

npx -y skills add oliver-kriska/claude-elixir-phoenix --skill freeze --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Freeze?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Freeze
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/oliver-kriska-freeze/badge)](https://www.skillsdirectory.com/skills/oliver-kriska-freeze)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: freeze
description: Scope or freeze which files Claude can edit during debugging, a refactor, or review. Use when edits should stay in specific dirs, or for a read-only investigate lock. Backed by a sentinel + PreToolUse hook.
effort: low
---

# Freeze — scoped edit lock

Toggle a project-local edit lock so Claude can only modify the files you intend
during a focused task (debugging, a tight refactor, a review pass). Enforced by
the `freeze-gate.sh` PreToolUse hook, which denies `Edit`/`Write`/`NotebookEdit`
outside the allow-list. No sentinel = no lock; the hook stays dormant.

The lock lives in `.claude/.freeze` — one allowed path prefix per line,
project-relative. Empty file = freeze everything.

## Usage

`/phx:freeze [args]` — resolve `$ARGUMENTS` and run the matching Bash branch.

| Invocation | Effect |
|------------|--------|
| `/phx:freeze` | Freeze ALL edits — read-only investigation mode |
| `/phx:freeze lib/app_web priv/repo` | Allow edits only under these dirs |
| `/phx:freeze status` | Show current lock state |
| `/phx:freeze off` | Lift the lock (delete the sentinel) |

### Freeze all edits (investigation mode)

```bash
mkdir -p .claude && : > .claude/.freeze
echo "Freeze ON — all edits blocked. Lift with /phx:freeze off"
```

### Scope edits to specific directories

```bash
mkdir -p .claude
printf '%s\n' lib/app_web priv/repo > .claude/.freeze
echo "Freeze ON — edits limited to: lib/app_web priv/repo"
```

Map `$ARGUMENTS` to the dirs the user named. Include any directory you still need
to write to — e.g. add `.claude` if progress/scratchpad logging must continue.

### Show status

```bash
if [ -f .claude/.freeze ]; then
  if [ -s .claude/.freeze ]; then echo "Freeze ON — limited to:"; cat .claude/.freeze
  else echo "Freeze ON — ALL edits blocked"; fi
else echo "Freeze OFF — no edit lock"; fi
```

### Lift the lock

```bash
rm -f .claude/.freeze && echo "Freeze OFF — edits unlocked"
```

## Iron Laws

1. **MANAGE the sentinel via Bash only** (`:>`, `printf`, `rm`) — NEVER via
   Edit/Write. The freeze hook gates Edit/Write and would block you from
   re-scoping or clearing the lock.
2. **NEVER leave a freeze active across unrelated tasks** — it persists until
   `/phx:freeze off`, including into later sessions. Clear it when the task ends.
3. **PATHS ARE PROJECT-RELATIVE PREFIXES, one per line** — `lib/foo` allows
   `lib/foo` and everything under it; it does NOT allow `lib/foobar`.

## Notes

- The hook denies with a reason and tells Claude not to retry, so a frozen edit
  surfaces clearly instead of failing silently.
- Pairs with `/phx:investigate` (freeze all while root-causing) and `/phx:work`
  (scope to the plan's dirs). The lock is advisory tooling, not a security
  boundary — anyone can run `/phx:freeze off`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.