unfreeze

其他 已审计 @garrytan v0.1.0
信任分
92/100
兼容 Agent
1
速查档案 只列事实:领域、Agent、信任分、作者、原文章节。装与不装请看下方作者解读。
领域
通用
兼容 Agent
Claude Code
信任分
92 / 100 · 已通过审计
作者 / 版本 / 许可
@garrytan · v0.1.0 · 未声明 license
安装命令数
1 条

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

想读作者英文原文? ↓ 滚到正文区切换 · 在 GitHub 查看 ↗

解读由编辑根据原文凝练而成,命令、链接、术语均与作者原文一致;想看完整论述请切到右侧

unfreeze 是 /freeze 的对偶:把上一次 /freeze 设置的「只允许编辑某目录」边界清掉,让 edit 在所有目录恢复自由。

设计思路

作者把「冻结 / 解冻」当成一对临时锁,用来在执行某个高风险任务时约束 agent 的写范围。/freeze 把允许的目录写到 $STATE_DIR/freeze-dir.txt/unfreeze 删掉这个文件即解锁——hook 仍注册在 session 里,但因为没 state 文件,hook 默认放行一切。要再次冻结,再跑一次 /freeze

工作流

① 跑 eval "$(~/.claude/skills/gstack/bin/gstack-paths)"GSTACK_STATE_ROOT;② 检查 $STATE_DIR/freeze-dir.txt 是否存在;存在就读出 PREV,删除文件,告诉用户 "Freeze boundary cleared (was: $PREV). Edits are now allowed everywhere.";不存在则告知 "No freeze boundary was set.";③ 全程顺手 append 一条 telemetry 到 ~/.gstack/analytics/skill-usage.jsonl

与 freeze 的关系

  • /freeze <dir> 写 state 文件,把允许写的范围限定在 <dir>
  • /unfreeze 删 state 文件解锁
  • hook 在 session 里始终注册,所以无须重新挂 hook,只是当 state 不存在时变成 no-op

适合的场景

  • /freeze 任务跑完,把边界主动撤掉
  • agent 误操作了 /freeze 想立即解锁
  • 切到新任务前先 reset 写权限

何时不要用

  • 你压根没跑过 /freeze:跑了也只是 echo "No freeze boundary was set."
  • 想精细收紧边界而非解锁:直接 /freeze 设新目录覆盖即可

配套

freeze(建立写边界)、continuous-checkpoint(冻结期间常配套自动 commit)、ship(合并前先 unfreeze 让 /ship 可改各处)、autoplan(在计划模式下也常配套使用 freeze / unfreeze)。