OpenRuna
Sign in
SKILL.md

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:
      • type: command command: "bash $HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh" statusMessage: "Checking freeze boundary..."
    • matcher: "Write" hooks:
      • type: command command: "bash $HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh" statusMessage: "Checking freeze boundary..."

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

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:
FREEZE_DIR=$(cd "<user-provided-path>" 2>/dev/null && pwd)
echo "$FREEZE_DIR"
  1. Ensure trailing slash and save to the freeze state file:
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

Overview

freeze is a free skill on OpenRuna. Restrict file edits to a specific directory for the session. (gstack)

What this skill does

"freeze" is a skill you can copy, adapt, and run with any modern AI assistant. Restrict file edits to a specific directory for the session. (gstack) It is catalogued next to similar resources on OpenRuna, so the rest of the toolkit you need is close by. Open a new conversation and paste it in, wire it into an agent, or keep it in your team's prompt library.

Use cases

  • Keep it in a shared library as the canonical version of this skill for your organisation.
  • Fork it as a baseline and layer in your own project context, constraints, and examples.
  • Hand "freeze" to a new teammate so their skill output matches your team's quality bar from day one.
  • Use "freeze" when you need a repeatable skill for professional work without rewriting instructions every time.

Example output

Running this skill produces output shaped like the source material below:

<!-- 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).

```ba…

Results vary by model and temperature; treat the first response as a draft and refine it with follow-up prompts.

Tips by platform

Claude

Claude works best when you paste this skill up front and ask it to outline its plan before writing. Use the artifact panel to refine structured output turn by turn.

ChatGPT

For ChatGPT, save this skill as a Custom Instruction or a saved prompt so it is one click away. Add your specifics in a follow-up rather than editing the original.

Cursor

Add this skill to your Cursor rules and invoke it from Agent mode for repeatable results. Link back to its OpenRuna page in the rule so the source stays discoverable.

Frequently asked questions

What is "freeze"?
It is a skill listed on OpenRuna — Restrict file edits to a specific directory for the session. (gstack) You can copy and adapt it for ChatGPT, Claude, Cursor, or any other AI assistant.
Is "freeze" free to use?
Most OpenRuna resources are open or CC0-licensed. Check the license shown on this page before commercial use; premium collections are clearly marked as such.
How do I get the best results from this skill?
Replace any placeholders, add your project context, and ask the model to confirm its assumptions first. Iterate over 2–3 follow-up turns rather than expecting a perfect first response.
Does "freeze" work with both Claude and ChatGPT?
Yes — it is model-agnostic text, so it runs on Claude, ChatGPT, Gemini, and Cursor. The tips on this page cover each of those assistants specifically.
Where can I find resources related to "freeze"?
Scroll to the Related resources section on this page, or open the matching category hub on OpenRuna to find connected prompts, tools, agents, and datasets in the same topic area.

Related resources