Skip to main content

freeze

Restrict file edits to a specific directory for the session. (gstack)

Source facts

Repository
GTMify/claude-skills-starter
Last source activity
July 13, 2026 at 10:57
Detected SKILL.md language
English
Stars
2
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.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
freeze
version
0.1.0
description
Restrict file edits to a specific directory for the session. (gstack)
triggers
["freeze edits to directory","lock editing scope","restrict file changes"]
allowed-tools
["Bash","Read","AskUserQuestion"]
hooks
{"PreToolUse":[{"matcher":"Edit","hooks":"[Truncated]"},{"matcher":"Write","hooks":"[Truncated]"}]}
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- Regenerate: bun run gen:skill-docs --> ## When to invoke this skill Blocks Edit and Write outside the allowed path. Use when debugging to prevent accidentally "fixing" unrelated code, or when you want to scope changes to one module. Use when asked to "freeze", "restrict edits", "only edit this folder", or "lock down edits". # /freeze — Restrict Edits to a Directory Lock file edits to a specific directory. Any Edit or Write operation targeting a file outside the allowed path will be **blocked** (not just warned). ```bash mkdir -p ~/.gstack/analytics echo '{"skill":"freeze","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true ``` ## Setup Ask the user which directory to restrict edits to. Use AskUserQuestion: - Question: "Which directory should I restrict edits to? Files outside this path will be blocked from editing." - Text input (not multiple choice) — the user types a path. Once the user provides a directory path: 1. Resolve it to an absolute path: ```bash FREEZE_DIR=$(cd "<user-provided-path>" 2>/dev/null && pwd) echo "$FREEZE_DIR" ``` 2. Ensure trailing slash and save to the freeze state file: ```bash FREEZE_DIR="${FREEZE_DIR%/}/" eval "$(~/.claude/skills/gstack/bin/gstack-paths)" STATE_DIR="$GSTACK_STATE_ROOT" mkdir -p "$STATE_DIR" echo "$FREEZE_DIR" > "$STATE_DIR/freeze-dir.txt" echo "Freeze boundary set: $FREEZE_DIR" ``` Tell the user: "Edits are now restricted to `<path>/`. Any Edit or Write outside this directory will be blocked. To change the boundary, run `/freeze` again. To remove it, run `/unfreeze` or end the session." ## How it works The hook reads `file_path` from the Edit/Write tool input JSON, then checks whether the path starts with the freeze directory. If not, it returns `permissionDecision: "deny"` to block the operation. The freeze boundary persists for the session via the state file. The hook script reads it on every Edit/Write invocation. ## Notes - The trailing `/` on the freeze directory prevents `/src` from matching `/src-old` - Freeze applies to Edit and Write tools only — Read, Bash, Glob, Grep are unaffected - This prevents accidental edits, not a security boundary — Bash commands like `sed` can still modify files outside the boundary - To deactivate, run `/unfreeze` or end the conversation
View on GitHub