为什么 AGENTS.md 里的规则拦不住 Codex 范围膨胀?Stop That Shit Skill+Guard 双层防线解析
为什么 AGENTS.md 里的规则拦不住 Codex 范围膨胀Stop That Shit SkillGuard 双层防线解析【免费下载链接】stop-that-shitStop That Shit别再造史了面向 Codex/GPT 场景的多平台 Hook Skill Guard拦截 AI coding agent 无需求的哈希、校验和与任务范围膨胀。 A multi-platform Hook Skill Guard for AI coding agents in Codex/GPT workflows: stop unrequested hashes, checksums, and task-scope creep.项目地址: https://gitcode.com/gh_mirrors/st/stop-that-shitStop That Shit别再造史了是一款面向 Codex/GPT 等 AI coding agent 的多平台Hook Skill GuardSkill 层负责工程判断Guard 层通过 Hook 强制执行你划定的任务边界拦截无需求的哈希、校验和与任务范围膨胀。本文带你从零看懂为什么在 AGENTS.md 里写不要乱改根本没用以及这套双层防线在 Codex 中如何落地。为什么往 AGENTS.md 里补规则会失效 你可能也干过这件事Agent 每次越界就往AGENTS.md里补一条不要过度设计没让我做的先别做。但这条路有四个结构性死穴问题说明没有执行点AGENTS.md只是给模型看的散文模型注意力有限上下文一长前面写的规则很容易被稀释、遗忘意图无法校验别乱改是主观描述不是可判定边界——哪些文件能写、能开几个 subagent、是否允许算哈希模型只能自己猜规则会滚雪球每气一次补一条补着补着AGENTS.md自己就开始造史了——这本身就是范围膨胀没有反馈回路事后无法观测哪条规则被违反了也就无从迭代项目的态度很直接把活干完把多余的停下见 README.md。与其往规则文件里堆一百条不要不如把边界变成机器可检查的契约。SHIT给四种行为起的名字Stop That Shit 把常见的 Agent 失控行为归纳为四类SHIT 定义字母名称典型症状SScope creep 范围膨胀修一个 bug顺手重构无关模块HHashing hypothetical hardening 无用防御没人读取的 SHA-256 也算一份以防万一IIntent violation 意图越界说了只读 Review文件还是被改了TTask thrashing 任务打转读过、测过、审过的内容又原样来一遍关键不是改动越少越好——必要的调用方修改、数据迁移和测试必须做完整。Stop That Shit 拦截的是没有当前用途的多余动作。第一层Skill —— 用停止阶梯做工程判断Skill 是纯建议式的规则集定义在 skills/stop-that-shit/SKILL.md不装 Hook 也能用。核心是一套五步的Stop Ladder停止阶梯理解当前责任明确交付物、授权范围和既有承诺先沿调用链查清影响面从直接方案开始优先看项目已有代码、标准库、平台原生能力只为具体缺口扩展以后也许用得上不算缺口为了完成受影响的流程diff 大一点也正当按效果评判防御保留有效的保护省掉无用途的添加修复有害的吞错验证并结束范围内没有阻塞就收工不为了显得严谨再加一轮审计Skill 的价值在于给模型一个统一的判断流程而不是零散的不要清单。但要坦诚Skill 不保证模型行为——模型今天听劝明天可能不听。所以需要第二层。第二层Guard —— Hook 拦截越权动作 Guard 在每个受支持的工具调用执行之前PreToolUse时机介入。它不猜这个动作有没有必要只检查动作是否有你给的明确授权。决策核心在 src/decision.cjsHook 注册见 hooks/codex-hooks.json。启用后的默认处理一览动作Guard 默认处理在review/answer/monitor模式下写文件停止添加依赖询问depsallow放行启动 subagent超出agentsN预算时停止添加可识别的 hash 操作停止hashallow放行写入files列表之外的路径停止边界用一行指令声明放在消息首行--后面是任务正文指令入口说明$stop-that-shit review -- Review 这个 diff只报告问题不要修改。 $stop-that-shit lock change filessrc/config.cjs|test/config.test.cjs -- 修复这个行为。 $stop-that-shit change hashallow -- 生成发布流程需要的校验和。 $stop-that-shit change agents1 -- 使用一个独立测试 subagent。 生命周期设计得比较克制刚装完默认是OBSERVING只观察、不拦截显式使用review/change等模式后才进入ARMED可拦截watch模式永远只观察。想查看当前合同和拦截记录用status/runtime查询。两层如何配合判断归 Skill授权归 Guard这是整套设计最精妙的地方——语义判断与机器执行严格分离见 ARCHITECTURE.mdSkill 管该不该这个调用方值得一起改吗这层迁移支持需要保留吗这些是工程判断只能靠流程引导Guard 管能不能允许写哪些文件、允许几个 agent、允许不允许哈希这些是明确授权机器可以校验更新 Skill 不会改变 Guard 策略反过来 Guard 看到cache、retry、migration这样的关键词也不会替你断定它们多余。一个直观的对比见 scope 对照用例 evals/codex-paired/cases/scope/case.jsonBad 侧锁死filessrc/value.cjs窄修复不得越界Good 侧把字段从name改名label真实的消费者和定向测试都包含在files清单里一起更新反而必须放行。同一个多改一个文件的动作因决定性事实不同而判决相反。仓库共收录 18 个 Bad/Good 判定用例索引在 cases/README_CN.md例如文件边界这对STS-S-003-B.json / STS-S-003-G.json。快速上手Codex 三步安装⚡ 需要 Node.js 18完整说明见 INSTALL.md。git clone https://gitcode.com/gh_mirrors/st/stop-that-shit cd stop-that-shit codex plugin marketplace add . codex plugin add stop-that-shitstop-that-shit重启 Codex 后在 CLI TUI 里输入/hooks对照 hooks/codex-hooks.json 审查并信任 Hook 命令Codex 会按定义哈希记录信任。装完做个冒烟测试烟测步骤$stop-that-shit review -- Review 这个仓库。报告问题不要修改。 $stop-that-shit change -- 创建 scratch/sts-smoke.txt内容为 pass。第一条命令下任何被覆盖的写操作都应被拒绝切换change后窄写入应正常通过——这验证了安装与合同切换都正常。证据与边界它验证到了什么22 个离线政策用例npm run eval检查给定输入下决策函数是否返回预期结果用例运行脚本144 会话对照矩阵16 个 Bad/Good 用例 × 3 组无插件基线 / 仅指令 / 完整插件× 3 次重复复现方法见 evals/codex-paired/README.md诚实的证据声明维护者明确记录——已有对照运行中基线也答对了结果是未观察到改善、Good Case 未退化而非效果提升EVIDENCE.md。同样要诚实的一点Guard 返回拒绝 ≠ 宿主一定没执行。Runtime 把宿主实际效果记为hostEffect: unobserved安全隔离仍由宿主 sandbox 负责隐私说明。常见问题 ❓Q是不是所有 checksum 都该删不是。发布完整性校验、去重、跳过重复处理都是实际用途需要时用hashallow放行。Guard 检查授权具体用途仍由 Skill 和任务判断。Q刚装上为什么还没拦默认是OBSERVING / unconfirmed观察模式显式声明review、change等模式后才进入可拦截的ARMED状态。只装 Skill 则没有任何执行拦截。Q红章拒绝是不是说明动作绝对没执行表示 Guard 返回了拒绝响应但宿主最终是否执行需要单独观测所以记录为未观测。想确认时看目标文件是否真的没变。小结AGENTS.md里越堆越多的不要本质是把可校验的边界写成了不可校验的散文Stop That Shit 的双层防线Skill用 Stop Ladder 给模型统一的判断流程Guard用 Hook 把files、agents、hash等明确授权变成硬拦截安装后先跑一次 review/change 冒烟测试用status/runtime观察拦截记录让边界真正长在你的工作流里。【免费下载链接】stop-that-shitStop That Shit别再造史了面向 Codex/GPT 场景的多平台 Hook Skill Guard拦截 AI coding agent 无需求的哈希、校验和与任务范围膨胀。 A multi-platform Hook Skill Guard for AI coding agents in Codex/GPT workflows: stop unrequested hashes, checksums, and task-scope creep.项目地址: https://gitcode.com/gh_mirrors/st/stop-that-shit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考