关于 slop-check
Slop Check 是用于调用 Slop or Not Pro 文本与图像分析的技能,可检测 AI 内容、评估可读性或清理文本。它提供单次操作流程,并区分检测、评分与 Pro 状态验证。
主要功能
- 01检测文本或图像中的 AI 内容
- 02评估文本可读性
- 03清理不可见字符和仿形字符
- 04通过 MCP 或应用内 CLI 执行
- 05验证 Pro 功能是否已启用
适用场景
- 01检查文本是否可能由 AI 生成
- 02判断图像是否为 AI 生成
- 03评估文本阅读难度
- 04清除文本中的隐形字符和异常符号
MCP 相关
通过 SlopOrNot MCP 服务执行文本、可读性、清理和状态操作;图像操作在支持本地 shell 时优先使用应用内 CLI,必要时回退到 MCP。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ numen-tech/ slopornot --skill slop-check安装后在 Claude Code 中输入/slop-check确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/slop-setup.mdslop-tools.md详细介绍
Slop Check
一次性访问 Slop or Not Pro 的设备端分析功能。检测文本或图像是否由 AI 生成、清理 AI 痕迹,或评估可读性,然后给出明确结论。无需访谈,也无需反复交互。
斜杠命令: /slop-check [paste text | file path | image path]
关键规则
- 对于
image-detect和明确要求的image-score,如果当前客户端能够运行本地 Shell 命令,MUST 优先使用应用包内 CLI。仅当不支持 CLI 执行或执行失败时,才使用 MCP 进行图像操作。对于文本、可读性、清理和状态检查,先尝试 MCP,再尝试 CLI。 - MUST 通过实际调用受 Pro 限制的功能来验证 Pro。绝 NEVER 根据
slop_status或slop status推断用户拥有 Pro;非 Pro 用户也能成功调用这两项。 - 绝 NEVER 因结构化提问工具而停滞。按照第 1 步的优先级规则消除歧义并说明假设,或发出唯一的纯文本输入请求。所有执行环境都能渲染纯文本。
- 绝 NEVER 创建符号链接、编辑 Shell rc 文件或以其他方式修改 PATH。使用 CLI 时,优先使用应用包内二进制文件的绝对路径
/Applications/Slop Or Not.app/Contents/MacOS/slop。检测、可读性、清理、评分和状态检查都是只输出操作:立即运行,无需许可。 - 检测分数为 0-1 的小数;显示时 MUST 乘以 100。可读性数值是年级或易读度分数,MUST NOT 转换为百分比。绝 NEVER 猜测标志或 JSON 字段路径;请在
references/slop-tools.md中查找。 - 图像检查 MUST 默认使用
detect_image。仅当用户明确要求原始或绝对 OmniAID 分数时,才使用score_image。用户要求“为这张图评分”但未提及 OmniAID 时,仍应映射为image-detect。
第 1 步:识别操作和输入
根据请求选择一种操作。不要提问以消除歧义。
| 操作 | 触发用语 |
|---|---|
text-detect | “这是 AI 生成的吗”、“这是机器人写的吗”、“AI 写的” |
image-detect | “这张图是 AI 生成的吗”、“AI 生成的图片”、“真实照片” |
image-score | “原始 OmniAID 分数”、“绝对 OmniAID 模型分数” |
readability | “阅读水平”、“几年级”、“Flesch”、“可读性如何”,或原生公式名称(“LIX”、“Wiener Sachtextformel”、“Gulpease”、“Flesch-Szigriszt”、“Reading Ease”) |
cleanup | “清理一下”、“去除不可见字符/零宽字符”、“移除同形异义字符” |
status | “Slop 配置好了吗”、“Slop or Not 能正常运行吗”、“检查 Pro” |
按优先级确定输入(匹配到的第一项优先):
- 以
.png、.jpg、.jpeg、.heic或.webp结尾的路径,或明确指向图像的引用:对该文件执行图像操作。 - 其他明确的文件路径:将该文件作为文本读取。
- 请求中直接粘贴的文本:使用该文本。
- 用户要求使用剪贴板:
pbpaste。
歧义规则(绝 NEVER 通过工具提问):如果没有指定操作动词,文本输入默认执行 text-detect,图像输入默认执行 image-detect,并在输出中说明假设,例如:“假设你要检测 AI 生成内容。若要改为可读性分析或清理,请提出要求。”
只有在完全没有可用输入时,才原样输出以下这一行,然后停止并等待:
Paste the text, or give a file or image path, and say detect / clean / readability.
步骤 2:解析可用的后端
按以下顺序选择后端。遇到首个可用的后端后即停止。
-
支持 Shell 的图像操作:优先使用 CLI。 对于
image-detect和image-score,先检查应用包二进制文件:ls "/Applications/Slop Or Not.app/Contents/MacOS/slop"如果该文件存在,且客户端可以运行 Shell 命令,请使用带引号的 二进制文件路径。这样就不必将本地图像文件转换为 base64。如果 客户端不支持 Shell 或 CLI 执行,例如 Claude Desktop 或 ChatGPT 连接器等仅支持 MCP 的客户端,则跳过此项,改用 MCP。
-
非图像操作使用 MCP,或作为图像操作的备用方案。 调用相应操作的 SlopOrNot MCP 工具(Claude Code 会将其显示为
mcp__SlopOrNot__<tool>;其他运行环境会公开相同的SlopOrNot服务工具)。如果调用返回结果,且不是 Pro 要求错误(isError: true或提示需要 Pro 的消息),则使用该结果。对于status,slop_status只是健康状态/版本调用:报告 Pro 已激活之前,还要运行references/slop-tools.md第 5 节中的 Pro 验证探测。完成。 -
非图像操作的 CLI 备用方案。 如果 MCP 不可用或出错,请检查应用包二进制文件是否存在:
ls "/Applications/Slop Or Not.app/Contents/MacOS/slop"- 如果存在:通过其带引号的绝对路径调用二进制文件,完成本轮操作。不要修改 PATH。
- 如果不存在:则确实未安装。转到步骤 5 的“未安装”备用方案。
对于
status,运行绝对路径二进制文件的status --json,并执行 Pro 验证 探测,然后再报告 Pro 已激活。
-
需要 Pro 的调用失败。 如果 CLI 可以运行,但需要 Pro 的调用以非零状态退出 或返回需要 Pro 的消息,则表示应用已安装,但 Pro 未激活:转到步骤 5 的“已安装但 Pro 未激活”备用方案。对于
status,按步骤 4 报告 Pro 未激活。
工具名称、标志、参数和 JSON 字段路径请参阅
references/slop-tools.md。设置和注册详情请参阅 references/slop-setup.md。请查阅这些文件;不要猜测。
步骤 3:运行操作
使用 references/slop-tools.md 第 5 节中的操作到工具映射表。
要点:
text-detect:请求同时返回可读性结果 (MCP 中设置include_readability: true;slop text --json会返回两者)。当 可以检测输入语言时,传入规范化的language_code(挪威语书面语 Bokmål 为nb;切勿传入宏语言代码no,应将其映射为nb);如果语言不明确,则省略该参数,让应用自动检测。传入nn(Nynorsk)也无妨,但它会返回kind: "not_english"和 null 分数,与其他非英语语言相同。对于非英语输入,detect_text会返回kind: "not_english"和 null 分数;请参阅步骤 4。readability:如果语言可检测,传入相同的规范化language_code。 挪威语书面语 Bokmål 为nb;传入前始终将检测到的no映射为nb(切勿传入no;即使是 Bokmål 文本,也会返回unsupported_language:no)。 返回的scores[]中的kind取决于语言,不一定是 Flesch-Kincaid;请读取实际返回的类型(参阅步骤 4 和references/slop-tools.md第 2 节)。- 图像:默认使用
image-detect。当可运行 Shell 命令时,使用绝对 CLI 路径,并通过 Shell 重定向读取图像路径:"/Applications/Slop Or Not.app/Contents/MacOS/slop" image --json < "<path>"。 仅在 CLI 不受支持或运行失败时,MCP 才使用 base64 调用detect_image(base64 -i <path>)。仅当用户明确要求原始或绝对 OmniAID 分数时,才对image-score使用score-image/score_image。如果用户要求的是通用图像评分,并未提及 OmniAID,则继续使用image-detect,并以检测概率作为结果。 cleanup:除非用户要求限制移除内容,否则保留默认移除项。格式化前,统一 MCP 和 CLI 的清理字段:MCP 返回cleaned_text和整数计数;CLI 返回cleanedText和计数数组。status:运行健康状态调用,然后执行 Pro 验证探测。只有需要 Pro 的探测成功时,才报告 Pro 已激活。
第 4 步:呈现结果
先阅读 references/slop-tools.md 第 2 节中的分数归一化说明
(检测分数是 0-1 的小数,乘以 100;MCP verdict 是纯字符串,CLI verdict 是
位于 detection.result._1 的单键对象)。
渲染匹配的区块。
检测(文本或图像):
**Likely AI** (most_likely_ai_slop) · 87% AI probability
Language: en · Sentences: 6
按规则映射 verdict(verdict 有不同程度,例如 probably_ai_slop):
real ->“可能为人工撰写”;包含 ai_slop ->“可能由 AI 生成”;否则
使用标题式大小写。显示标签、括号中的原始 verdict,以及百分比。
当 MCP detect_text 返回 kind: "not_english"(非英文输入)时,
score 和 verdict 为 null。对于 CLI slop text --json,在读取
detection.result 前,也要对同一情况进行归一化:如果存在
detection.notEnglish、detection.not_english 或归一化后的
kind: "not_english",或者响应包含非英文的 detectedLanguage /
readability.language,且没有 detection.result 或
detection.resultFewSentences,则将 AI 分数和 verdict 视为 null。不要显示
AI 百分比。请改为打印:“AI 文本检测仅支持英文; 无可用分数。”(从
language、detectedLanguage 或 readability.language 字段读取语言),然后
在响应包含可读性区块时显示该区块。绝不要为非英文输入臆造分数。
可读性:
读取 scores[] 返回的任何 kind;不要假定为
fleschKincaidGradeLevel。当语言返回两种 kind(英语:
fleschKincaidGradeLevel 加 fleschReadingEase)时,以 Flesch-Kincaid 年级
确定等级并作为主要结果,同时将 Reading Ease 作为补充值显示在括号中;绝不要
根据 Reading Ease 确定等级,因为其 0 到 100 的刻度方向相反。请在
references/slop-tools.md 第 2 节中查找公式显示名称、刻度方向和等级范围。
显示公式名称、数值、检测到的语言和等级。
**Flesch-Kincaid grade: 9.7** (Reading Ease 62.4)
Language: en · Band: High school · Words: 210 · Sentences: 14
对于非英文内容,根据返回的 kind 标注,例如:
**Wiener Sachtextformel: 11.2**
Language: de · Band: High school · Words: 180 · Sentences: 12
如果 scores[] 为空,请读取 warnings。根据后端不同,警告会以两种形式返回:
MCP 返回带冒号标签的字符串(unsupported_language:<code>、
insufficient_text:NN、approximate_syllable_counts:<lang>);CLI 在
readability.warnings[] 下返回 camelCase 对象(unsupportedLanguage、
insufficientText,可选的 wordCount)。请将这两种形式视为等价:
unsupported_language / unsupportedLanguage 表示无可用分数(报告
“此应用版本不支持 的可读性分析”);insufficient_text /
insufficientText 是软警告(仍可能存在分数;仅作提示),报告为“文本量不足,
无法可靠评分(insufficient_text:28)。”;approximate_syllable_counts /
approximateSyllableCounts 不影响结果。不要臆造数值。
**清理:**打印计数行,然后将清理后的文本放在单独的 text 围栏代码块中,
以便用户原样复制。对于 CLI 输出,将 cleanedText 用作清理后的文本,将
invisibleCounts[].count、punctuationCounts[].count 和
homoglyphCounts[].count 相加,并计算 britishMappings.length。
**已清理。** 不可见字符:3 · 标点:5 · 同形异义字符:1 · 英式拼写:0,
后跟一个只包含 cleaned_text 的 text 围栏代码块。
图像分数(仅适用于明确提出的 OmniAID 请求):
**Raw image score: 0.80** (OmniAID)
状态:
**Slop or Not Pro: active** (version 1.0.9)
当健康检查调用成功,但 Pro proof 探测返回 Pro-required 错误时,使用
inactive。
当触发歧义规则时,在最前面添加一行假设说明。
第 5 步:Slop or Not 不可用时的备用方案
有两种不同情况。请根据实际状态选择相符的消息。切勿告知已安装应用的用户去安装应用。
未安装(MCP 已停止运行,且应用包不存在)。结尾必须使用以下段落:
未安装 Slop or Not。请安装适用于 Mac 的 Slop or Not,然后在应用内解锁 Pro:https://slopornot.ai/download
已安装但 Pro 未激活(slop 二进制文件或应用包存在,但需要 Pro 的调用返回了需要 Pro 的提示或以非零状态码退出)。
结尾必须使用以下段落:
已安装 Slop or Not,但 Pro 未激活。请在应用内通过“设置”中的“订阅”解锁 Pro:https://slopornot.ai/download
对于这两种情况,接着说明:安装、Pro 解锁以及 MCP/CLI 注册,请参阅 references/slop-setup.md。仅 PATH 缺失时,应使用第 2 步中的应用包备用方案处理,而不是在此转交。对于 status
操作,请按第 4 步报告
Slop or Not Pro: inactive,而不要使用上述段落。
示例
示例 A,文本检测(没有动词,触发歧义规则):
用户:/slop-check In today's fast-paced digital landscape, leveraging synergies is paramount.
操作:没有动词,输入为文本,默认执行 text-detect。通过 MCP 调用
detect_text,并设置 include_readability: true。
输出:
Assumed AI-detection. Ask for readability or cleanup to switch.
**Likely AI** (most_likely_ai_slop) · 91% AI probability
Language: en · Sentences: 1
示例 B,从路径检测图像:
用户:is this AI? ~/Desktop/art.png
操作:路径以 .png 结尾,因此执行 image-detect。可使用 Shell 命令,
因此使用应用包 CLI:
"/Applications/Slop Or Not.app/Contents/MacOS/slop" image --json < "$HOME/Desktop/art.png"。
输出:
**Likely AI** (most_likely_ai_slop) · 80% AI probability
示例 C,分析文件的可读性:
用户:what grade level is draft.md
操作:明确指定了文件路径,执行 readability。通过 MCP 调用 analyze_readability,
传入文件内容,并在可检测时传入规范化的 language_code。读取
scores[] 返回的 kind(此处为英语的 fleschKincaidGradeLevel)。
输出:
**Flesch-Kincaid grade: 7.2** (Reading Ease 71.8)
Language: en · Band: Middle school · Words: 148 · Sentences: 11
对于德语文件,同一操作会读取 wienerSachtextformel4,并将其标注为“Wiener Sachtextformel”,
同时使用德语等级区间。
示例 D,清理包含零宽字符的文本:
用户:clean the invisible characters out of this: Helloworld
操作:cleanup。MCP clean_text(默认启用)。
输出:计数行 **已清理。** 不可见字符:1 · 标点:0 · 易混淆字符:0 · 英式拼写:0,随后是一个围栏 text 代码块,其唯一内容
为 Helloworld(已移除零宽字符)。
示例 E,明确要求 OmniAID 分数:
用户:give me the raw OmniAID score for ~/Desktop/art.png
操作:明确要求 OmniAID 分数,因此执行 image-score。可使用 Shell 命令,
因此使用应用包 CLI:
"/Applications/Slop Or Not.app/Contents/MacOS/slop" score-image --json < "$HOME/Desktop/art.png"。
如果不支持 CLI 执行,则使用 MCP score_image,并传入 base64 图像
输入。
输出:
**Raw image score: 0.80** (OmniAID)
参考文件
references/slop-tools.md:完整的 CLI 和 MCP 接口、参数、标志、 JSON 字段路径、分数归一化、Pro 限制、操作映射。references/slop-setup.md:安装、Pro 解锁、应用包备用方案、 MCP/CLI 注册、故障排除。