来源:GitHub (★806)
URL: https://github.com/lennney/stop-that-shit
精读日期:2026-08-31
模型:DeepSeek V4 Flash(AI 生成,人工未审校)
正文获取:全文
一、核心论点/事实
- Stop That Shit 是一个面向 AI coding agent 的多平台 Hook + Skill Guard 插件,核心目标是拦截 agent 无需求生成的哈希、校验和与任务范围膨胀(task-scope creep)。
- 项目支持 5 个平台/Adapter:Codex、Claude Code、OpenCode、Hermes Agent CLI 和 Pi,四套 Adapter 共用同一套 Guard、Skill、成对案例与只存元数据的本地 Runtime。
- 运行时要求:一般宿主需要 Node.js 18+;Pi 0.84.4 自身要求 Node.js 22.19+;OpenCode 1.18.18 或更高版本可全局安装。
- 插件不数代码行数,也不把 diff 越小当成越好;它只问:这一步是用户要求的,还是当前代码、数据和验收条件确实需要的。
- 维护者启用后个人观察:没有再遇到"没有实际消费者却先生成 SHA-256"的动作;该观察与 paired eval 分开记录。
- 默认拒绝可识别的新 hash 操作;用户明确要求或仓库代码/发布流程证明必要时,可通过
change hash=allow等命令显式放行。 - 项目为首个多平台正式版本,并包含一个定向 pilot(Codex 安装方式、GPT-5.6 记录和 paired eval 见文档)。
二、方法/架构拆解
- 三层架构:
- Skill:负责语义判断,提供 advisory 模式(不拦截,只提示)。
- Hook:在工具运行前检查明确边界,可机器拦截越界动作。
- Adapter:把 Codex、Claude Code、OpenCode、Hermes Agent CLI 和 Pi 的事件翻译成同一套决策接口;其他 harness 需提供等价的 before-action 事件。
- Guard 行为:确认某个动作越界时返回拒绝响应(红章),但不会猜测任务授权,也不会返回 permission deny;始终把 host effect 标为不确定(拒绝响应不证明宿主最终未执行动作)。
- 命令接口:
review:Review diff,只报告问题,不修改。change:修复失败的配置测试 / 修复行为,支持files=、deps=allow、hash=allow、agents=1等参数。label evt_... correct|incorrect|inconclusive:显式标记事件结果。- 安装方式(各平台):
- Claude Code:
claude plugin install stop-that-shit@stop-that-shit - Codex:
codex plugin marketplace add lennney/stop-that-shit+codex plugin add stop-that-shit@stop-that-shit - OpenCode:
opencode plugin github:lennney/stop-that-shit -g - Hermes:
hermes plugins install lennney/stop-that-shit/.hermes-plugin(CLI 用户需新进程/会话,Gateway 用户需执行额外命令) - Pi:
pi install /absolute/path/to/stop-that-shit(tag 发布后改用固定 Git tag) - Skill-only 路径:
$skill-installer Install stop-that-shit from https://github.com/lennney/stop-that-shit/tree/0.1.0/skills/stop-that-shit;不需要 Hook 信任,但不能机器拦截越界动作。 - 评测方法:paired eval 使用成对案例,一组有效案例只改一个关键事实,其余条件不变;Bad Case 标出该停的位置,Good Case 保住必要工作;只有可复现、高置信度的部分才进入 Guard。paired 命令默认只打印 72 个 cell 的计划,不调用模型;真实运行必须使用只启用本插件的独立 Codex home。
- 典型拦截对象:没有消费者的 checksum 和 guard;无用户决策却写成一排界面免责声明的内部风险;该做工程判断时改成评分表和反复审计;为没人要求的将来加 feature flag、迁移框架和包装层。
三、值得注意的局限/争议
作者承认的局限:
- Guard 只检查 covered Hook 路径上的任务授权,安全隔离由宿主 sandbox 负责,不替代宿主安全机制。
- Guard 返回拒绝响应不证明宿主最终没有执行动作,host effect 始终标为不确定。
- 维护者的"未再遇到 SHA-256"观察是个人经验,与 paired eval 分开记录,不构成严格证据。
- Skill-only 路径不能机器拦截越界动作,也不会改变宿主原有的 sandbox 和 approval 设置。
AI 判断的局限/争议:
- "无需求"的判断标准依赖用户意图和仓库上下文,存在主观性;插件不数代码行数,但"当前代码、数据和验收条件确实需要"的判定仍可能误伤合理防御性工作(如发布流程确实消费校验和的情况)。
- 多平台 Adapter 共用同一套决策接口,但不同宿主的事件语义和权限模型差异可能未被完全覆盖,存在边界情况漏判风险。
- 项目强调"Good Case 和拦截同样重要",但成对案例的构建质量直接决定 Guard 精度,若案例覆盖不足,可能过度拦截或漏拦截。
- 插件只处理"能明确判断的边界",对模糊场景(如"该做工程判断时改成评分表")依赖 Skill 语义判断,实际效果可能因模型能力而异。
四、与 RRLab 研究的关联
- Harness 工程:本项目提供了多平台 Adapter 统一事件接口的参考实现,RRLab 在构建多模型 harness 时可借鉴其"同一套决策核心 + 平台适配层"的架构模式,降低多后端集成成本。
- 多模型协同:插件展示了如何约束 agent 行为边界(任务授权),RRLab 在多模型协同场景中可参考其"Skill 语义判断 + Hook 机器拦截"的分层机制,防止模型间互相产生无意义副作用。
- 模型评测:paired eval 方法论(成对案例、单变量控制、Bad/Good Case 区分)可直接迁移到 RRLab 的 agent 行为评测中,用于量化"任务范围控制"能力;72-cell 计划打印 + 独立 home 的隔离评测设计也值得借鉴。
- Agent 落地:插件解决的是 agent 实际落地中的"防御性工作膨胀"问题,RRLab 在 Agent 产品化时可参考其"默认拒绝 + 显式放行"(
change hash=allow)的交互设计,平衡安全与效率。 - AI 原生产品:作为开源插件,其"红章拒绝 + 用户可覆盖"的反馈机制、以及"只存元数据"的本地 Runtime 设计,对 RRLab 构建 AI 原生工具链的隐私与可控性有参考价值。
本笔记由 DeepSeek V4 Flash 自动生成,未经人工审校。原文链接:https://github.com/lennney/stop-that-shit