思维链泄漏检测:零依赖 CLI 扫描 AI 留在文档与注释里的会话残留(死设计引用、PR 视角、变更叙述、评审编排),内置 cot-trim 语义修复技能包。
安装
# npm 包(预构建)
dsh plugin --profile web add cot-lint
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:YuanyuanMa03/cot-lint
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
扫描仓库中的"思维链泄漏"——AI 助手留在文档、注释、JSDoc 里的会话残留。
你的 coding agent 代码写得很好,但会把"思考过程"漏得到处都是:
- // This PR adds a retry loop (decision 7) so the diff stays reviewable.
- // The manager used to serialize writes itself; it no longer does after v1.
- // The cast is safe — it simply narrows the union. Probably fine for now.
+ // Retries transient provider failures up to 3 times with jittered backoff.
+ // The shared coordinator serializes writes per session.
+ // The cast narrows a union already validated at the loader boundary.
左边一列对代码的描述并没有错,错的是读者设定:它在和一个早已离开的评审者争论,引用一个谁都打不开的设计会话,叙述一次变更而不是陈述行为。
唯一测试
站在 HEAD 上的读者——没有任何会话记录、PR 讨论或未提交草稿——能否解析其中每一个引用、验证每一个断言?
不能,就是思维链泄漏。cot-lint 负责把它找出来。
快速开始
DeepSeek Harness —— 以插件形式装入 cot-trim 修复技能:
dsh plugin add cot-lint
任何仓库 / CI —— 零依赖,Node ≥ 20:
npx cot-lint # 扫描整个仓库(Markdown 等文本文件)
npx cot-lint --json # 输出 JSON,供 CI 或 agent 消费
npx cot-lint --ext ts,py # 同时逐行扫描源码文件
npx cot-lint --hidden # 进入 .agents/ 等点开头目录
退出码:0 干净 · 1 有发现 · 2 用法错误——可直接接入 CI。
检测什么
| 类别 | 示例 |
|---|---|
| 死掉的设计会话引用 | (decision 7)、design §4.7、阶段代号 W3/T4、设计稿 |
| PR/堆叠视角 | "this PR adds…"、"a later PR in this stack" |
| 变更叙述 / 版本印记 | "used to"、"no longer"、"the old X"、"the v1 refactor"、"today"、旧版/不再 |
| 评审编排 | "Rejected in review:"、"the reviewer confirmed"、上一轮评审 |
| 对评审者的辩解 | "the cast is safe — it simply…" |
| 控制流复述 | "first we X, then we Y"、"as you can see" |
| 含糊保留 | "probably fine for now"、"should be enough" |
| 母语滑移 | 另一种语言的行文里混入未翻译的工作语言碎片 |
中英两套检测电池内置。
刻意不标记什么
保留规则是这台工具的另一半。一个无差别处理的 linter 如果删掉 RFC 9110 §10.1.5、删掉承重的 TODO(alice):、或者删掉 "the old connection drains before the new one accepts"(运行时生命周期,不是变更历史),破坏比泄漏本身更大。所以 cot-lint 机械豁免:
- issue 引用和带标记的
TODO/FIXME/XXX递延; - 同一行引用了 RFC 等外部标准的
§引用; - 带
cot-lint-ignore抑制标记的行——请把理由写在标记旁边。
电池默认过度匹配。 每条 finding 是候选而非判决;保留规则与改写方法决定什么能活下来。
不止发现,还要修复
仓库内置 cot-trim agent skill,与 CLI 配合使用:它运行 cot-lint --json,用"唯一测试"逐条判断,删除前先枚举段落里的全部命题,并按属主优先修复(生成文件改源头、模型可见字符串走所属快照)。
- DeepSeek Harness:
dsh plugin add cot-lint(或github:YuanyuanMa03/cot-lint)——cot-trimskill 通过插件的 skill provider 加载。 - Claude Code / 通用 agent:把
skills/cot-trim/复制进你的 agent skills 目录(~/.claude/skills/、.agents/skills/或你的 agent 约定的位置)。
与"AI 文风检测器"的区别
文风检测器标记的是听起来像 AI 的散文(用词习惯、破折号癖好)。cot-lint 标记的是视角属于作者会话的散文——只有身临其境才说得通的引用和叙述。人写的文档也会泄漏(复制粘贴 PR 描述就会);AI 写的文档也可以很干净。失败类别不同,工具不同。
来源
分类法、保留规则和电池方法提炼自 DeepSeek Harness(MIT)的工程规范——具体说是它针对 agent 写作仓库的散文卫生实践——在此泛化为任何仓库、任何 coding agent 可用。其社区生态立场见官方 CONTRIBUTING。
许可
链接
同类插件
GanyuanRan/Aegis★ 1013
面向编码 Agent 的软件工程方法包,提供基线优先规划、系统化调试、提示词卫生、完成前验证,以及修复/退役双轨跟踪技能。
superdesigndev/superdesign-skill★ 411
在 Superdesign 画布上做 UI 与营销图的设计技能:先读代码库拿上下文、抽取现有设计系统,再通过 Superdesign CLI 生成并迭代可分支的设计稿、流程页与可复用组件。
dhicoc/dsh-reverse-skill★ 10
完整 reverse-skill(85 个 SKILL.md)的 DeepSeek Harness 插件:逆向工程、授权渗透测试与安全研究的技能路由包。
creght-dev/skills★ 8
Creght 平台建站技能包:CLI 拉取/推送同步、页面与组件规范、CMS、表单、Auth、SEO、发布与版本回滚。
zhaiyateng/dsh-design-skills★ 7
设计美学技能包:10 种风格(深色 SaaS、极简白、新拟态、粗野主义、毛玻璃、日式极简、便当盒、赛博朋克、蒸汽波、装饰艺术),每种含 token、组件规则、禁用清单与验收清单,附可运行落地页 demo。
YTxue/dsh-skill-manager-ytxue★ 4
设置侧边栏的 Skill 管理器:池与启用目录启停、文件夹批量导入(重名询问)、状态驱动一键规范检查与自动修复、系统级/项目级来源标识。