freeze
作者 garrytanfreeze 是一个护栏型 skill,可在会话内将文件编辑限制在单个目录中。它会阻止在允许路径之外执行 Edit 和 Write,因此很适合工作流自动化、调试,以及需要让 agent 只在某个模块或文件夹内活动的局部重构。
该 skill 得分为 78/100,属于比较扎实的上架候选:目录用户能快速理解它的作用,也能通过明确短语触发,并获得真实的强制执行流程,而不是只靠通用提示词。对于需要将编辑范围限制在单个目录、避免误改其他位置的 agent 来说很实用;不过,如果能补充更多设置细节和示例,安装决策会更有说服力。
- 触发方式清晰:前言说明里列出了 "freeze edits to directory" 和 "restrict file changes" 之类的明确短语,便于 agent 正确调用。
- 运行层面有实际约束力:该 skill 通过 PreToolUse hook 和 Bash 检查脚本阻止在允许路径之外执行 Edit/Write,因此是在强制行为,而不只是建议。
- 使用场景具体:描述明确说明了它适用于调试或将改动范围收窄到单个模块,这有助于用户快速判断是否匹配需求。
- 示例中的设置与使用说明只覆盖了部分内容;skill 在 Setup 中会询问目录,但可见文档是截断的,因此实际接入可能需要一些试错。
- 没有附带支持文档或参考文件,用户在边界情况、配置方式,以及 freeze 边界如何持久化和变更方面,能获得的指导有限。
freeze 技能概览
freeze 是做什么的
freeze 是一个护栏型 skill,用来限制会话中的文件编辑只能发生在一个目录内。它会阻止在允许路径之外执行 Edit 和 Write,所以当你希望 workflow automation agent 只待在某个模块、功能目录或调试沙箱里时,它特别有用。如果你需要 freeze skill 来防止误改到大范围文件,这就是合适的选择。
适合谁安装
如果你经常让 agent 在很窄的范围内调试、重构或修补代码,并且不希望它“热心地”顺手碰到无关文件,就应该安装 freeze。它对维护者、审阅者,以及任何在混合型或高风险 codebase 中工作、而编辑边界比更大自治权更重要的人,价值最大。
它的不同之处
它的核心差异在于“强制执行”,而不是“建议”。freeze 通过 pre-tool hook 拒绝边界之外的编辑,这比只在 prompt 里要求模型保持专注要强得多。也正因为如此,freeze guide 在真正的隔离控制上更实用,尤其适合那些一旦跑偏就会付出高成本的会话。
如何使用 freeze skill
安装并初始化边界
进行 freeze install 时,先用 repository 自带的 skill manager 把 skill 加到你的环境里,然后选择要锁定的目录。这个 skill 的 setup 流程是交互式的,因为允许路径是按 session 单独设定的。实际使用中,你最好能明确回答:“要冻结哪个目录?”——而不是说“后端那一块”这种模糊范围。
先阅读这些文件
先看 SKILL.md,了解控制流程;再检查 bin/check-freeze.sh,看看边界是如何被强制执行的。如果你要改造这个 skill,还应该顺手读一下 SKILL.md.tmpl,理解生成后的结构。这些文件会告诉你 freeze usage 具体允许什么、会拦截什么,以及路径解析在哪些情况下可能失败或变得宽松。
给 skill 一个足够精确的 prompt
最好的输入方式,是一个聚焦的任务加上清晰的边界。例如:“把编辑范围冻结在 apps/payments,并修复这里失败的 unit tests,不要改 shared libraries。”这比“帮我 debug 这个 app”要好,因为 freeze 需要明确的目录目标,以及一个能装进这个边界内的任务。范围越精确,agent 越不容易反过来申请例外。
实用的工作流建议
当第一轮处理应该是“外科手术式”的时候,用 freeze:先定位 bug,只在一个文件夹里修补,然后验证结果,不把范围越扩越大。如果任务本来就需要跨目录改动,就不要硬塞进 freeze;要么放宽允许路径,要么换一种工作流。这个 skill 最适合那种改动集天然有边界、而且 repository 结构清晰的场景。
freeze skill 常见问题
freeze 只适合调试吗?
不是。调试当然很常见,但 freeze skill 也适用于受限重构、功能隔离,以及适合审阅的安全编辑。关键问题始终是:你是否希望 agent 在工作时始终待在一个目录里。
它和普通 prompt 有什么区别?
普通 prompt 依赖模型自觉遵守指令。freeze 通过 hooks 增加了强制约束,所以即使模型尝试越界,边界之外的编辑也会被拦下。这让它在那些强调护栏的 Workflow Automation 任务里更可靠。
freeze 对新手友好吗?
如果用户能比较确定地说出一个目录,那就友好。新手最常犯的错误,是把边界选得太宽或太窄。要是目录本身就很模糊,会话可能会因为你反复澄清范围而卡住。
什么时候不该用 freeze?
当任务预期会跨多个模块、共享配置,或需要全仓库范围的格式化时,不要用它。在这些情况下,限制可能会拖慢工作,或者导致不必要的拦截。freeze 最适合那种边界本身就是一个真实决策,而不只是个人偏好的场景。
如何改进 freeze skill
把边界说清楚
提升效果最大的办法,是把精确目录和目标结果一起说出来。好的输入像这样:“把编辑范围冻结在 services/auth,并更新 token refresh flow,不要碰 shared/。”像“修 auth”这种弱输入会让 agent 只能猜,进而更容易触发拦截或产生不完整修改。
提供文件、症状和限制
想更好地使用 freeze,就把出问题的文件、观察到的行为,以及哪些文件不能动,一起写清楚。比如:“只改 apps/admin;问题在 src/table.ts;不要改 API contracts。”这样既能让 agent 留在冻结区域内,又能真正解决问题。
注意边界不匹配
最常见的失败模式,是任务实际上需要比冻结目录更大的范围,但你没有把它说出来。如果 agent 反复遇到 denied writes,通常说明要么扩大边界,要么把任务拆成几个阶段。这不是 bug,而是 freeze 在提醒你:你的计划和范围没有对齐。
第一轮之后再迭代
拿到第一版结果后,检查方案是否依赖了冻结路径之外的假设。如果有,就通过增加一两个具体约束来收紧 prompt:目标目录、允许的文件类型、以及哪些内容必须保持不动。想获得最好的 freeze skill 结果,迭代的重点应该是澄清范围,而不是要求更多创造力。
