# Freeze

Scope or freeze which files Claude can edit during debugging, a refactor, or review.

- Repository: https://github.com/oliver-kriska/claude-elixir-phoenix (572 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add oliver-kriska/claude-elixir-phoenix --skill freeze -g -a claude-code -y`
Codex: `npx skills add oliver-kriska/claude-elixir-phoenix --skill freeze -g -a codex -y`
Cursor: `npx skills add oliver-kriska/claude-elixir-phoenix --skill freeze -g -a cursor -y`
Gemini CLI: `npx skills add oliver-kriska/claude-elixir-phoenix --skill freeze -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add oliver-kriska/claude-elixir-phoenix`

## 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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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

The rest: https://github.com/oliver-kriska/claude-elixir-phoenix/blob/HEAD/plugins/elixir-phoenix/skills/freeze/SKILL.md
