用途:确定性衡量一段文字依赖 AI 写作痕迹的程度,包括负向并列、意义膨胀、节奏一致、格式反射、时代标签词汇、泄漏的聊天机器人残留等,报告跨段落的发现和 0-100 聚类评分。脚本为纯 Python 标准库,无网络、无 LLM,相同输入产生相同输出。
适用:需要“为文本打分 / 扫描 / 检查 AI 痕迹”或想要一个数字与报告的场合;在 CI 中为文档或营销文案做发布前门禁;产出改写环节要针对的发现清单。
不适用:改写或去 AI 味请用 deslop(它会先运行本 lint);核对编辑是否改动事实或引语请用 deslop-verify;不用于判断某个人或学生是否使用 AI——这是风格检查,不是作者身份检测,应拒绝指控性问法;也不检查代码、语法或拼写。
使用方式:选择文体配置 general(默认)、academic、technical、casual;运行脚本:python3 "${CLAUDE_SKILL_DIR}/scripts/slop_lint.py" FILE... --genre technical;JSON 模式:python3 "${CLAUDE_SKILL_DIR}/scripts/slop_lint.py" --json < draft.md。向用户报告分数与区间、活跃家族、以及带行号的高亮行,并说明分数反映的是共现痕迹的聚类,不能仅凭一个家族下结论,也不得当作 AI 作者身份的证据。文本少于 150 词或 8 句时应说明样本过短、只报值不下结论。
CI 门禁使用退出码约定:python3 "${CLAUDE_SKILL_DIR}/scripts/slop_lint.py" docs/*.md --genre technical --fail-above slop-cluster。退出 0 通过,1 用法或输入错误,2 表示某个被确信评分的文件达到 --fail-above 区间;建议先以 --fail-above heavy-slop 警告式上线,再收紧到 slop-cluster。修改脚本后运行 --self-test,需全部 PASS。
输出:每个文件一份报告,含分数、区间(clean/mild/slop-cluster/heavy-slop)、置信度、活跃家族及其取值、区间和带行号的命中;JSON 模式输出相同 schema。区间:<25 clean,25-49 mild,50-74 slop-cluster,75+ heavy-slop。单个活跃家族把分数上限压到 24,两个压到 49;但泄漏的聊天机器人残留(oaicite、“As an AI”、utm_source=chatgpt 等)因误报率近乎为零会强制 ≥50。
限制与注意:破折号是弱证据,人类基线约每千词 3.23 且范围极大,破折号家族权重很低,不能作为结论;对冲只有在叠加时才计分,学术写作本身对冲密集;底层信号与 ESL、正式文体、神经多样性写作风格重叠,聚类门禁和文体配置是为保护这些写作者,不应绕过,也不得把分数报告为关于作者的证据;阈值会衰减,过时词汇会被厂商修补,阈值和时代词表是有日期的工程先验,长期使用前请参考 references/thresholds.md 的 6-12 个月重校准协议;评分前会剥离代码块,以代码为主的文件会返回低置信度;启发式针对英语文本调优,其他语言或重口音文本的分数不可靠,应如实说明。参考文件:scripts/slop_lint.py(评分器,支持 --help、--self-test)、references/thresholds.md(各家族证据、阈值来源、词表来源、公平性理由与重校准协议)。