by lennney
Stop 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.
# Add to your Claude Code skills
git clone https://github.com/lennney/stop-that-shitGuides for using ai agents skills like stop-that-shit.
Last scanned: 8/15/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-15T04:30:00.359Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}stop-that-shit is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by lennney. Stop 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. It has 1,647 GitHub stars.
Yes. stop-that-shit passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/lennney/stop-that-shit" and add it to your Claude Code skills directory (see the Installation section above).
stop-that-shit is primarily written in JavaScript. It is open-source under lennney on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh stop-that-shit against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
这份校验和生成了,任务却没有少做一步,后面的流程也完全一样。换个任务,多出来的可能是 guard、兼容层、全量测试或额外流程。Codex、Claude Code、OpenCode、Hermes Agent CLI 和 Pi 都可能这么做:每一步单看都有理由,但用户没要求,当前任务也用不上。
我也试过不断往 AGENTS.md 里补「不要乱改」「别过度设计」「没让我做的先别做」。规则越补越长,AGENTS.md 自己也开始造史。Stop That Shit 把其中能明确判断的边界做成 Skill 和可执行 Guard。
你用 review、change 等模式写明授权,再按需限制文件、依赖、hash 和 subagent
预算。Stop That Shit 在受覆盖的 Hook 路径上检查这些明确边界。Agent 仍然可以读
仓库,也必须处理真正受影响的调用方。Guard 确认某个动作越界时,会返回一枚红章:
STOP / INTENT
Guard 返回 permission deny。
Reason: MODE_FORBIDS_MUTATION
State: ARMED / review
Event: evt_...
0.2.1 是 0.2.0 的修复版,收紧受限 files= 合同在不同宿主路径表示下的判断。
cwd 报告的相对路径现在统一比较,并保留路径原始大小写。files= 边界下会请求批准;显式
files=** 仍表示宽边界。files= 空值不再退化成无限范围;.、..、重复分隔符和 Windows 路径大小写
按平台语义处理。0.1.x 先处理 SHIT 的动作面:没人读取的 .sha256、为想象中未来准备的兼容层、Review 时顺手开始改代码。
0.2.0 把同一套判断带到表达里。Agent 写提案时也会替不存在的批评者辩护:这不是完整研究,没有覆盖所有情况,也不保证适用于每个人。这些话消耗 Token,却不改变任何决定。
多做一步,是用动作自保;多说一句,是用文字自保。一个没人读取的 checksum,和一句不改变任何决定的免责声明,都没有消费者。
Stop Ladder 继续判断一个动作该不该做。新增的 Stop That Shit Slop(别再废话) 用 Sentence Consumer Test 判断一句防御性表达该删、该收紧,还是必须保留。
为什么 Agent 总在替不存在的批评者辩护?
“这不是完整研究。”“没有覆盖所有情况。”“不保证适用于每个人。”
我没有问这些。
写给想象中批评者的防御性废话,就别再浪费我的 Token 了。
Stop That Shit 0.2.0 新增 Stop That Shit Slop:判断一句话该删、该收紧,还是必须留下。
0.2.0 保留原有 Stop Ladder、Guard、五套 Adapter 和成对案例,并新增可独立使用的 Stop That Shit Slop。
| 从哪里开始 | 提供什么 | 使用成本 |
|---|---|---|
| Skill + Guard | 同一份 Skill,加上机器可执行边界 | 默认;检查宿主 Hook 配置后启用 |
| 只装 Skill | Stop Ladder 和任务模式引导 | 可选;没有执行拦截 |
项目从 Codex 起步:公开记录保留了 Codex CLI 0.145.0 + gpt-5.6-sol 的探索运行,以及 Codex CLI 0.147.0 + gpt-5.6-luna 的定向 pilot。现在五个 Adapter 共用同一套任务边界核心;Codex 安装方式、GPT-5.6 记录和 paired eval 见 EVIDENCE.md 与 Codex 对照测试。
一般宿主需要 Node.js 18+;Pi 0.84.4 自身要求 Node.js 22.19+。完整安装说明见 INSTALL.md。
解压后,在仓库根目录执行:
claude plugin validate .
claude plugin marketplace add ./
claude plugin install stop-that-shit@stop-that-shit
重启 Claude Code 或执行 /reload-plugins,然后使用:
/stop-that-shit:stop-that-shit review -- Review 这个 diff,只报告问题,不要修改。
codex plugin marketplace add lennney/stop-that-shit --ref 0.2.1
codex plugin add stop-that-shit@stop-that-shit
--ref 0.2.1 把安装固定到版本 tag,不跟随可变的 main。重启 Codex。在新的 CLI TUI 中输入 /hooks,检查命令后信任 UserPromptSubmit 和 PreToolUse。也可以把 INSTALL_FOR_AGENTS.md 交给 Codex,让它完成非交互步骤。
OpenCode 1.18.18 或更高版本可以全局安装这个仓库,无需 clone:
opencode plugin github:lennney/stop-that-shit -g
重启 OpenCode 后用 $stop-that-shit review -- ... 设置契约。该命令安装 Guard;内置 Skill 和可选 /sts 别名不会自动注册。详见 INSTALL.md。
需要 Node.js 18+。
hermes plugins install lennney/stop-that-shit/.hermes-plugin --no-enable
hermes plugins enable stop-that-shit
hermes plugins list
启用后,CLI 用户需要启动新的 Hermes CLI 进程或会话;Gateway 用户需要执行:
hermes gateway restart
这些操作不需要每次使用插件时重复。只有启用、禁用、更新、回滚或重装插件后, 才需要重启对应的 Hermes 进程。
当前适配固定验证 @earendil-works/pi-coding-agent 0.84.4。从包含该
Adapter 的本地 checkout 安装:
pi install /absolute/path/to/stop-that-shit
启动新的 Pi 进程,或修改资源后在 TUI 执行 /reload。然后使用:
/skill:stop-that-shit review -- Review 这个 diff,只报告问题,不要修改。
从 0.2.1 tag 安装即可获得 Pi Adapter 和两个 Skill。详见 INSTALL.md。
BAD CASE
用户 Review 这个 diff,不要修改。
Codex 调用 apply_patch。
STS STOP / INTENT:Review 不等于允许修改。
GOOD CASE
用户 只修 P1 问题。
Codex 提交一个窄补丁,运行受影响的检查。
STS ALLOWED:完成请求确实需要这个动作。
Good Case 和拦截同样重要。已经发布的数据可能需要迁移;发布流程可能真的消费校验和;共享合同变化后可能必须跑跨组件测试。只要用户明确要求,或仓库中的代码、数据和发布流程能证明它确实必要,这些工作就该保留。
一个有边界的任务,常从这四个方向跑掉:
| 问题 | 常见样子 | |
|---|---|---|
| S | Scope creep,范围膨胀 | 修一个点,顺手重构半个项目。 |
| H | Hashing 与 hypothetical hardening | 加了摘要、防御或免责声明,却没有当前用途。 |
| I | Intent violation,意图越界 | 让它 Review 或回答问题,它直接动手改。 |
| T | Task thrashing,任务打转 | 已经查过、测过、审过,它又从头来一遍。 |
Stop That Shit 不数代码行数,也不把 diff 越小当成越好。它只问:这一步是用户要求的,还是当前代码、数据和验收条件确实需要的?
常见的样子包括:没有消费者的 checksum 和 guard;当前没有用户决策,却把内部风险写成一排界面免责声明;该做工程判断时改成评分表和反复审计;为没人要求的将来加 feature flag、迁移框架和包装层。
Hook 在受支持的工具调用中可以较高置信度地识别 hash 动作。判断沿用 HERO 的判据:摘要必须替代一个更贵的操作,而且结果必须控制下一步。
STOP
给每一行算 hash,算完还是逐行比较。
ALLOW
用 digest 跳过一个未变化大文件的重复读取。
当前版本默认拒绝可识别的新 hash 操作。用户明确要求,或仓库中的代码与发布流程证明它确实必要时,就用 hash=allow 放行。Hook 不会根据自己没读过的代码猜测这个用途。
Claude Code 插件直接用 namespaced Skill:
/stop-that-shit:stop-that-shit change -- 修复失败的配置测试。
/stop-that-shit:stop-that-shit review -- Review 这个 diff,只报告问题,不要修改。
Codex 或普通 prompt 里的宿主无关指令仍然使用:
$stop-that-shit change -- 修复失败的配置测试。
$stop-that-shit review -- Review 这个 diff,只报告问题,不要修改。
边界已经很清楚时,再加限制:
$stop-that-shit lock change files=src/config.cjs|test/config.test.cjs -- 修复这个行为。
$stop-that-shit change deps=allow -- 添加我要求的解析器依赖。
$stop-that-shit change hash=allow -- 生成我要求的发布校验和。
$stop-that-shit change agents=1 -- 使用一个独立测试 subagent。
不知道全部受影响文件时,不要硬写 files=。让 agent 沿真实调用链检查,把完成任务必需的 caller、fixture 和测试一起改完。
安装后默认是 OBSERVING / unconfirmed:Guard 会检查并记录 covered action,但不会猜测任务授权,也不会返回 permission deny。显式使用 review、answer、monitor 或 change 后才进入 ARMED;watch 始终只观察。
下面这些只读命令不会修改当前任务合同:
$stop-that-shit status
$stop-that-shit runtime
$stop-that-shit explain evt_...
$stop-that-shit label evt_... correct|incorrect|inconclusive
permission_deny_returned(OpenCode 中为 execution_denial_returned)只表示 Guard 返回了拒绝响应,不证明宿主最终没有执行动作。Stop That Shit 始终把 host effect 标为 unobserved。
| covered path 上的动作 | 默认处理 | 怎么放行 |
|---|---|---|
在 review、answer 或 monitor 中写文件 |
停止 | 切换到 change |
| 添加依赖 | 询问 | deps=allow |
| 启动 subagent | 超出预算时停止 | agents=N |
| 添加可识别的 hash 操作 | 停止 | hash=allow |
| 写入文件锁之外的路径 | 停止 | 扩大 files= |
Hook 必须收到受支持的事件和足够的输入才能判断。它不会看到 cache、retry、migration 或新文件这些词,就猜它们一定多余。Skill 用四个问题处理这种语义判断:
证据撑不住时,agent 应该报告或暂缓,不要顺手实现。
Stop That Shit Skill 负责 Stop Ladder 的语义判断,Hook 在工具运行前检查明确边界,Adapter 把 Codex、Claude Code、OpenCode、Hermes Agent CLI 和 Pi 的事件翻译成同一套决策接口。其他 harness 需要提供等价的 before-action 事件;接口见 HOST-ADAPTER-CONTRACT.md。
STSS 使用 Sentence Consumer Test,不需要 before-action Hook,因此可以独立分发。
Stop That Shit 负责 supported Hook 路径上的任务授权,安全隔离由宿主 sandbox 负责。EVIDENCE.md 记录测试、GPT-5.6 运行、无差异结果和未覆盖路径。
维护者启用后没有再遇到“没有实际消费者却先生成 SHA-256”的动作;文档将这条个人观察与 paired eval 分开记录。本地 Runtime 只存元数据,并区分 checked action、context response、permission deny 和 hostEffect: unobserved。
STSS 的十二个固定离线响应用于规则和回归验收,六组完整案例见 STSS examples。
| Skill | 让 Agent 停在哪里 | 常用入口 |
|---|---|---|
| Stop That Shit(别再造史) | 停止范围膨胀、意图越界、防御性工程和重复审计 | $stop-that-shit review -- ... |
| Stop That Shit Slop(别再废话) | 减少没有决策用途的免责声明、过度 hedging 和自我辩护 | $stss rewrite -- ... |
两个 Skill 可以一起安装,也可以单独使用。
Stop That Shit 用 Stop Ladder 判断动作:
STSS 把同一个判断带到句子上:
它先记录 Claim Ledger 中的事实、数字、来源、责任主体和证据强度,再选择 DROP、CALIBRATE、RELOCATE 或 KEEP。最后用 Claim Diff 检查事实和数字有没有丢、证据有没有被编造、相关性有没有被写成因果。
stss。$stop-that-shit 调用和 Guard 合同保持不变;STSS 是新增的可选 Skill。rewrite 直接改写,audit 只报告问题和最小修改。sts doctor --check-update。在当前仓库根目录执行:
npx skills add ./skills/stss --global
这条路径只安装“别再废话”,不会安装 Hook。
不写模式时,STSS 对用户贴出的文本默认执行 rewrite。audit 只报告问题和最小修改,不重写全文。
| 宿主 | 改写 | 审核 |
|---|---|---|
| Codex | $stss rewrite -- 把这个提案写直接。 |
$stss audit -- 找出防御性废话。 |
| Claude Code 插件 | /stop-that-shit:stss rewrite -- ... |
/stop-that-shit:stss audit -- ... |
| Claude Code 单独 Skill | /stss rewrite -- ... |
/stss audit -- ... |
| Pi | /skill:stss rewrite -- ... |
`/skill:sts |