mk:freeze
Session-scoped edit restriction blocking Edit and Write outside one allowed path. NOT for mk:careful.
- License 许可
- MIT
- 最近更新
- 2026-11-11
- Stars
- ★ 16
- Forks
- 3
01 前言 Front Matter
- name
- mk:freeze
- hooks
- { "PreToolUse": [ { "hooks": [ { "args": [ "${CLAUDE_PROJECT_DIR}/.claude/skills/freeze/bin/check-freeze.cjs" ], "type": "command", "command": "node", "statusMessage": "Checking freeze boundary..." } ], "matcher": "Edit" }, { "hooks": [ { "args": [ "${CLAUDE_PROJECT_DIR}/.claude/skills/freeze/bin/check-freeze.cjs" ], "type": "command", "command": "node", "statusMessage": "Checking freeze boundary..." } ], "matcher": "Write" } ] }
- owner
- lifecycle
- source
- gstack
- status
- active
- runtime
- claude-code
- version
- 0.1.0
- keywords
- [ "freeze", "scope-edits", "directory-restriction", "session-scope", "edit-lockdown" ]
- criticality
- medium
- description
- Session-scoped edit restriction blocking Edit and Write outside one allowed path. NOT for mk:careful.
- when_to_use
- Keeping a debugging session from touching code outside one folder.
- allowed-tools
- [ "Bash", "Read", "AskUserQuestion" ]
- user-invocable
- true
02 资源文件 2
- 脚本bin/check-freeze.cjs2.3 KB
- 参考文档references/freeze-mechanics.md2.3 KB
03 SKILL.md 正文
/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 .meowkit/telemetry
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")'"}' >> .meowkit/telemetry/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:
- Resolve it to an absolute path:
FREEZE_DIR=$(cd "<user-provided-path>" 2>/dev/null && pwd)
echo "$FREEZE_DIR"
- Ensure trailing slash and save to the freeze state file:
FREEZE_DIR="${FREEZE_DIR%/}/"
STATE_DIR="${CLAUDE_PLUGIN_DATA:-.meowkit/state}"
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 /mk:freeze
again. Freeze persists for the session — end the session or start a new one to clear it."
How it works
See references/freeze-mechanics.md for technical details on path resolution, symlink handling, state file persistence, and tool scope.
Hooks
- PreToolUse on Edit/Write: Blocks writes outside the frozen directory path
- Activated by
/mk:freeze <path>. Deactivated when session ends. - Bash commands are NOT restricted — freeze only guards Edit and Write tools
Gotchas
- Symlinked files bypass freeze check: Edit tool resolves symlinks, writing outside frozen directory → Check resolved path, not just the stated path
- Test files in frozen directory can't update fixtures: Freeze prevents fixture updates needed for new test cases → Use --exclude pattern for test fixtures within frozen scope
04 同仓库更多 Skills
mk-sequential-thinking
Structured step-by-step reasoning before acting, to avoid guessing. For complex debugging, multi-step analysis, hypothesis checks. NOT for being stuck on approach (mk:problem-solving).
mk:fixture-valid
A valid fixture used to verify the skill structure validator.
invalid
暂无简介
mk:sample-skill
Sample skill for fixture purposes — small enough to land below noise floor.
mk-worktree
Manages git worktrees for parallel agent isolation: creates parallel/{name}-{timestamp} branches, merges with conflict detection. NOT for user feature branches (use git worktree directly).
mk-workflow-orchestrator
Auto-invoked 7-phase workflow for complex-feature intent; fasttrack mode for pre-approved specs. NOT for explicit single tasks (mk:cook), green-field builds (mk:autobuild), or simple fixes (mk:fix).