Skip to content

Stop That Shit

Stop That Shit(别再造史了)|面向 Codex/GPT 场景的多平台 Hook + Skill Guard:拦截 AI coding agent 无需求的哈希、校验和与任务范围膨胀。 A multi-platform Hook + Skill Guard for AI coding agents in Codex/GPT…

Install

$npx skills add ./skills/stss --global
Claude Code
claude mcp add stop-that-shit -- npx skills add ./skills/stss --global
Cursor / Claude Desktop (mcp.json)
{
  "mcpServers": {
    "stop-that-shit": {
      "command": "npx",
      "args": [
        "skills",
        "add",
        "./skills/stss",
        "--global"
      ]
    }
  }
}

Install command taken from the project's README or registry entry. Always review code before running it.

Stop That Shit(别再造史了)

把活干完。把多余的停下。

Skill + Guard,帮 AI coding agent 停止无用防御和任务越界。 Codex · Claude Code · OpenCode · Hermes Agent CLI · Pi SHIT 哲学 · 看个例子 · 安装 · 案例库 · English · 한국어


你只让 Agent 导出一个文件,它顺手算了份没人读取的 SHA-256,说是“以防万一”。

你让它 Review,它找到问题就开始改。你让它修一个点,它又想重构旁边的模块。检查已经回答了当前问题,它还想再拉一个 Agent,“最后确认一下”。

理由一个比一个严谨。东西还没交付,token 已经花了一截,你还得盯着它,别让任务继续跑偏。

活还没拿到,我先当上了 Agent 的监工。

我也试过往 AGENTS.md 里补规则:“不要乱改”“别过度设计”“没让我做的先别做”。每气一次就补一条,写着写着,AGENTS.md 自己也开始造史了。

Stop That Shit。别再造史了。 该干的干完整,没用的别往上堆。

SHIT 是哪四种

我们把这些行为叫作 SHIT:

  • S — Scope creep,范围膨胀。 修一个问题,顺手重构无关模块。必要的调用方、数据迁移和测试要一起处理;没有当前用途的扩展就停下。
  • H — Hashing & hypothetical hardening,无用防御。 没人读取的 checksum、为想象中的未来搭的兼容层。防御要能发现问题,并触发拒绝、恢复或诊断。有效的保留,无用的省掉,吞错报成功或制造重复副作用的修好。
  • I — Intent violation,意图越界。 说了只读 Review,文件还是被改了。审查就报告问题,修改需要授权。用户划的边界必须算数。
  • T — Task thrashing,任务打转。 没有新问题或变化,读过、测过、审过的又来一遍。能回答当前问题的证据就复用;代码或验收条件变了,再补相关验证。做完、验证充分,就结束。

把当前责任承担完整,让复杂度随真实需要增长。 需要多改几个文件、补齐迁移或跑跨组件测试,就做完整。

前后对比

下游只读取 report.csv,没有发布校验,摘要也没有其他用途。导出逻辑却写成了这样:

await writeFile("report.csv", csv);
await writeFile("report.csv.sha256", createHash("sha256").update(csv).digest("hex"));

按 STS 的判断,保留:

await writeFile("report.csv", csv);

这个简化示例省掉了无用校验和,文件照常交付。更多场景见案例库。

如果发布流程会读取 checksum,并在不一致时拒绝使用文件,就保留,用 hash=allow 放行。

必要的工作要做全。 修复配置迁移时,旧数据已经发布且仍需支持,就把迁移、读写双方和兼容性测试一起补齐。哪怕 diff 更大,也不能留下坏掉的调用方。

验证到了什么

公开的 18 个 Bad/Good 判定用例,检查规则能否停下多余动作、保留必要工作,覆盖只读审查、必要调用方、已发布数据迁移、发布校验和,以及文件、依赖和 subagent 边界。模型在真实任务中的表现另看对照运行。

完整证据记录测试、历史 Codex / GPT-5.6 运行和没有差异的结果;复现方法见对照测试说明。

它怎么判断

遇到这些 SHIT,先读相关代码、查清调用链,再按顺序判断:

1. 当前要交付什么?     → 明确结果、授权和已有支持承诺
2. 已有能力够用吗?     → 从直接可用的方案开始
3. 还有什么具体缺口?   → 补齐现在需要的行为和保障
4. 这层防御起什么作用? → 保留有效的,省掉无用的,修正有害的
5. 结果验证完成了吗?   → 没有范围内阻塞,就结束

先看已有代码、标准库、平台原生能力和已安装依赖。符合所需行为和状态生命周期的就用,有具体缺口再加机制。

新机制说不清用途,可以暂缓;已有保护用途不明,先查清再动。真实的信任边界和已有支持承诺,都足以说明保护的必要,不必等事故发生。

代码行数、文件数量和检查次数不能代替判断。完整规则。

快速安装

一般宿主需要 Node.js 18+;Pi 0.84.4 自身要求 Node.js 22.19+。完整安装说明见 INSTALL.md。

展开你使用的宿主。只想用规则、不需要执行拦截,可以只装 Skill。

Claude Code

下载并解压 0.2.5 源码,在仓库根目录执行:

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

codex plugin marketplace add lennney/stop-that-shit --ref 0.2.5
codex plugin add stop-that-shit@stop-that-shit

--ref 把安装固定到版本 tag,不跟随可变的 main。重启 Codex。在新的 CLI TUI 中输入 /hooks,对照该 tag 的 Hook 清单检查并信任命令。也可以把 INSTALL_FOR_AGENTS.md 交给 Codex,让它完成非交互步骤。

OpenCode 从 GitHub 安装

OpenCode 1.18.18 或更高版本可以全局安装这个仓库,无需 clone:

opencode plugin github:lennney/stop-that-shit -g

重启 OpenCode 后用 $stop-that-shit review -- ... 设置契约。该命令安装 Guard;内置 Skill 和可选 /sts 别名不会自动注册。详见 INSTALL.md。

Hermes Agent CLI

需要 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

Similar plugs

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local…

Why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.

The 1st Collaborative AI Design Agent Workspace. Local-first and open source. Create prototypes, websites, apps, dashboards, presentations, images, and videos with your team…