mcpField
S
slop-check

slop-check

github.com/numen-tech其他5858 次安装17 周前更新
代码仓库

关于 slop-check

Slop Check 是用于调用 Slop or Not Pro 文本与图像分析的技能,可检测 AI 内容、评估可读性或清理文本。它提供单次操作流程,并区分检测、评分与 Pro 状态验证。

主要功能

  1. 01检测文本或图像中的 AI 内容
  2. 02评估文本可读性
  3. 03清理不可见字符和仿形字符
  4. 04通过 MCP 或应用内 CLI 执行
  5. 05验证 Pro 功能是否已启用

适用场景

  1. 01检查文本是否可能由 AI 生成
  2. 02判断图像是否为 AI 生成
  3. 03评估文本阅读难度
  4. 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.md
references/
slop-setup.md
slop-tools.md

详细介绍

Slop Check

一次性访问 Slop or Not Pro 的设备端分析功能。检测文本或图像是否由 AI 生成、清理 AI 痕迹,或评估可读性,然后给出明确结论。无需访谈,也无需反复交互。

斜杠命令: /slop-check [paste text | file path | image path]

关键规则

  1. 对于 image-detect 和明确要求的 image-score,如果当前客户端能够运行本地 Shell 命令,MUST 优先使用应用包内 CLI。仅当不支持 CLI 执行或执行失败时,才使用 MCP 进行图像操作。对于文本、可读性、清理和状态检查,先尝试 MCP,再尝试 CLI。
  2. MUST 通过实际调用受 Pro 限制的功能来验证 Pro。绝 NEVER 根据 slop_status 或 slop status 推断用户拥有 Pro;非 Pro 用户也能成功调用这两项。
  3. 绝 NEVER 因结构化提问工具而停滞。按照第 1 步的优先级规则消除歧义并说明假设,或发出唯一的纯文本输入请求。所有执行环境都能渲染纯文本。
  4. 绝 NEVER 创建符号链接、编辑 Shell rc 文件或以其他方式修改 PATH。使用 CLI 时,优先使用应用包内二进制文件的绝对路径 /Applications/Slop Or Not.app/Contents/MacOS/slop。检测、可读性、清理、评分和状态检查都是只输出操作:立即运行,无需许可。
  5. 检测分数为 0-1 的小数;显示时 MUST 乘以 100。可读性数值是年级或易读度分数,MUST NOT 转换为百分比。绝 NEVER 猜测标志或 JSON 字段路径;请在 references/slop-tools.md 中查找。
  6. 图像检查 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”

按优先级确定输入(匹配到的第一项优先):

  1. 以 .png、.jpg、.jpeg、.heic 或 .webp 结尾的路径,或明确指向图像的引用:对该文件执行图像操作。
  2. 其他明确的文件路径:将该文件作为文本读取。
  3. 请求中直接粘贴的文本:使用该文本。
  4. 用户要求使用剪贴板:pbpaste。

歧义规则(绝 NEVER 通过工具提问):如果没有指定操作动词,文本输入默认执行 text-detect,图像输入默认执行 image-detect,并在输出中说明假设,例如:“假设你要检测 AI 生成内容。若要改为可读性分析或清理,请提出要求。”

只有在完全没有可用输入时,才原样输出以下这一行,然后停止并等待:

Paste the text, or give a file or image path, and say detect / clean / readability.

步骤 2:解析可用的后端

按以下顺序选择后端。遇到首个可用的后端后即停止。

  1. 支持 Shell 的图像操作:优先使用 CLI。 对于 image-detect 和 image-score,先检查应用包二进制文件:

    ls "/Applications/Slop Or Not.app/Contents/MacOS/slop"
    

    如果该文件存在,且客户端可以运行 Shell 命令,请使用带引号的 二进制文件路径。这样就不必将本地图像文件转换为 base64。如果 客户端不支持 Shell 或 CLI 执行,例如 Claude Desktop 或 ChatGPT 连接器等仅支持 MCP 的客户端,则跳过此项,改用 MCP。

  2. 非图像操作使用 MCP,或作为图像操作的备用方案。 调用相应操作的 SlopOrNot MCP 工具(Claude Code 会将其显示为 mcp__SlopOrNot__<tool>;其他运行环境会公开相同的 SlopOrNot 服务工具)。如果调用返回结果,且不是 Pro 要求错误(isError: true 或提示需要 Pro 的消息),则使用该结果。对于 status,slop_status 只是健康状态/版本调用:报告 Pro 已激活之前,还要运行 references/slop-tools.md 第 5 节中的 Pro 验证探测。完成。

  3. 非图像操作的 CLI 备用方案。 如果 MCP 不可用或出错,请检查应用包二进制文件是否存在:

    ls "/Applications/Slop Or Not.app/Contents/MacOS/slop"
    
    • 如果存在:通过其带引号的绝对路径调用二进制文件,完成本轮操作。不要修改 PATH。
    • 如果不存在:则确实未安装。转到步骤 5 的“未安装”备用方案。 对于 status,运行绝对路径二进制文件的 status --json,并执行 Pro 验证 探测,然后再报告 Pro 已激活。
  4. 需要 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: Hello​world

操作: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 注册、故障排除。

评论

支持 Markdown