CtrlK
BlogDocsLog inGet started
Tessl Logo

content-humanizer

分析一段内容或一个文件的"人味"(即像不像人类自然写出来的,AI 生成痕迹有多重),给出 0-100 量化打分,并在低于目标线(默认 80 分,用户可指定其他数值如90分)时在不改变原意的前提下改写到目标分数以上。触发条件:用户提到"人味"、"AI味"、"AI感"、"降AI率"、"去AI化"、"人性化改写"、"像人写的"、"过人工检测"、"过AI检测"、"让文章更自然"、"这段话是不是AI写的"、"帮我把这篇文章改得不像AI写的",或者给出一段文字/文件并希望知道"读起来自然不自然"、"会不会被认出是AI写的"。即使用户只说"这段话感觉很机器,帮我改一下"或"帮我看看这篇稿子像不像真人写的",也应使用本 skill。输出为 Markdown 报告,保存到当前项目 markdown/ 目录。

72

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

High

Do not use without reviewing

SKILL.md
Quality
Evals
Security

内容人味分析与改写

这个 skill 在做什么,为什么这么设计

"人味"不是一个单一指标,而是好几种信号叠加的结果。如果只靠"读一遍感觉一下"打分, 分数会很不稳定、也没法跟用户解释清楚"为什么是 72 分而不是 85 分"。所以这个 skill 把人味拆成两层:

  1. 统计层(脚本算,客观、可复现):句子/段落长度的节奏起伏、AI 高频套话密度、 形式化过渡词密度、词汇重复度。这些是 AI 生成文本最容易暴露的"指纹"——句子长度 异常均匀、爱用"综上所述/不可否认/值得注意的是"这类套话、过渡词用得像论文模板、 措辞翻来覆去就那几种搭配。
  2. 判断层(Claude 通读后人工评分,主观但有据可依):具体细节与个性化程度、 情感/态度的真实感、结构是否机械对称、口语化与"不完美"痕迹。这几项没法靠规则 硬算——比如"有没有具体的人名/数字/场景",机器数不出"具体"这个概念,需要真正 读懂内容才能判断。

两层各占 50% 权重,合成最终人味分。这样做的好处是:用户能看到分数是怎么来的, 而不是一个黑箱数字;改写之后也能用同一套标准复测,确保真的有提升,而不是"看起来 顺了但分数其实没变"。

第一步:拿到要分析的内容

  • 如果用户直接在对话里粘贴了文本,直接用这段文本。
  • 如果用户给的是文件路径:
    • 纯文本/Markdown 文件直接读取。
    • docx/pdf/pptx 等格式,先用对应的文档技能(docx/pdf-reading/pptx)把正文提取 成纯文本,再继续下面的流程。不要把带格式标记的原始 XML 之类的东西直接拿去打分。
  • 内容太短(少于约 150 字)时,统计层的句长/段落变异系数样本量不够,分数会不太 稳定——继续分析,但在报告里提一句"样本较短,统计层指标参考价值有限,以判断层 评分为主"。

第二步:跑统计层打分脚本

python3 /mnt/skills/user/content-humanizer/scripts/human_score.py <文件路径>
# 或者直接传文本:
python3 /mnt/skills/user/content-humanizer/scripts/human_score.py - --text "要分析的文本"

脚本输出一个 JSON,包含 statistical_score(0-100)以及每个子指标的分数和命中 证据(命中了哪些套话、密度多少)。这个分数先记下来,后面要用。

脚本算的是:句子/段落节奏(30%)+ 强 AI 套话密度(30%)+ 软性 buzzword 密度(10%)

  • 过渡词密度(10%)+ 词汇多样性(20%)。具体方法见脚本内注释,不用解释给用户听, 除非用户问。

第三步:通读内容,给判断层四个维度打分

完整读一遍原文(不要只看脚本摘要),针对下面四个维度分别打 0-100 分。每个维度都 要引用原文里 1-2 处具体的句子或短语作为证据,而不是凭空给分——这样用户能看懂 分数依据,你自己也更不容易瞎打分。详细的打分锚点(0-39/40-59/60-79/80-100 各代表 什么程度)见 references/rubric.md,拿不准的时候去对一下。

维度在看什么
具体细节与个性化有没有具体的人名、数字、时间、场景、个人经历,还是全是"很多企业""不少专家"这种空泛说法
情感与态度自然度有没有真实的立场/情绪/吐槽/幽默,还是永远"一方面…另一方面…"四平八稳、不说一句得罪人的话
结构机械度段落是不是整整齐齐三段论、标题/列表是不是过度对称、是不是每段都差不多长——人写东西很少这么工整
口语化与不完美痕迹有没有口语词、插话、不那么"标准"的表达,还是每句话都像教科书例句一样完美

四项平均得到 qualitative_score

第四步:合成最终人味分

final_score = round(0.5 × statistical_score + 0.5 × qualitative_score)

默认达标线是 80 分。如果用户在请求里明确说了别的目标(比如"要到90分以上" "严格一点,95分"),按用户给的数字作为达标线;用户没说就用 80。这个阈值不是说 低于它就一定能被某个 AI 检测工具揪出来——没有哪个分数能 100% 对应任何具体检测器 的判定——而是一条相对宽松、留有余地的经验线:到了 80 分,统计层和判断层的大部分 信号都已经回到人类写作的常见区间。目标线设得越高(比如 95),改写的难度和迭代轮数 通常也会上升,必要时可以提前跟用户说一句"目标定这么高,可能要改好几轮,某些维度 (比如非常正式的文体很难做到很口语化)也未必能完全达到"。

第五步:判断要不要改写

  • final_score ≥ 目标线:不用改写,直接出报告,告诉用户哪些地方已经做得不错。

  • final_score < 目标线:在不改变原意、不增删事实信息的前提下改写,目标是把 final_score 拉到目标线以上。改写时优先解决分数最低的那几项,常用手法:

    • 把套话替换成具体说法:"综上所述,这是一个值得关注的趋势" → 直接给结论, 不用"综上所述"这种总结腔起手。
    • 打散过度工整的结构:不是每段都要"首先/其次/最后",该合并的合并,该用一句话 带过的不用单独列一段。
    • 拉开句子长度的差距:长句之后接一个短句,或者反过来,别让每句话都差不多长。
    • 去掉"一方面…另一方面…"式的永远中立腔,如果原文本来就有明确立场,让立场 更直接地表达出来(但不要替用户编造原文没有的观点或事实)。
    • 加一点口语化的连接,比如用"但"代替"然而"、用"说白了"代替"换言之"—— 根据原文语域判断合适的口语化程度,正式文档别改得太随便。
    • 绝对不能做的事:编造原文没有的具体数字/人名/案例来"凑细节";改变原文的 论点、立场或事实结论;删掉原文关键信息只为了让结构看起来不对称。改写是换 "怎么说",不是换"说什么"。

    改写完之后,重新跑一遍第二步的脚本 + 第三步的人工评分,算出新的 final_score。如果还没到目标线,再改一轮,最多改 3 轮。如果 3 轮之后还没到 目标线,在报告里诚实说明卡在哪一项、原因可能是什么(比如原文本身就是高度 结构化的规范文档,比如合同条款,这种文体本来就不太可能很"口语化"),不要 硬编数据把分数做上去。

第六步:输出 Markdown 报告

保存到当前项目的 markdown/ 目录(没有就创建),文件名格式: markdown/人味分析-<内容简短标识或时间戳>.md

报告结构固定如下:

# 人味分析报告:<标题/文件名>

## 总览

| 项目 | 分数 |
|---|---|
| 统计层得分 | xx.x |
| 判断层得分 | xx.x |
| **最终人味分** | **xx.x / 100** |
| 达标线 | 80(或用户指定的目标分数) |
| 是否达标 | 是 / 否 |

## 统计层细分(脚本计算)

| 子指标 | 分数 | 说明 |
|---|---|---|
| 句式/段落节奏 | xx | ... |
| 强AI套话密度 | xx | 命中 N 处:xxx、xxx |
| 软性buzzword密度 | xx | 命中 N 处:xxx |
| 过渡词密度 | xx | 命中 N 处 |
| 词汇多样性 | xx | ... |

## 判断层细分(人工评分)

| 维度 | 分数 | 依据(原文引用) |
|---|---|---|
| 具体细节与个性化 | xx | "……" |
| 情感与态度自然度 | xx | "……" |
| 结构机械度 | xx | "……" |
| 口语化与不完美痕迹 | xx | "……" |

## 原文

> (原文全文或合理摘录)

---

<!-- 以下部分仅当 final_score < 目标线时出现 -->

## 改写说明

本次改写共 N 轮,主要调整:
- ...
- ...

## 改写后内容

(改写后全文)

## 改写后复测

| 项目 | 改写前 | 改写后 |
|---|---|---|
| 统计层得分 | xx.x | xx.x |
| 判断层得分 | xx.x | xx.x |
| **最终人味分** | xx.x | **xx.x** |

如果 final_score ≥ 目标线(不需要改写),就省略"改写说明"之后的所有部分,报告到 "原文"那一节结束即可。

存完文件后用 present_files 把报告呈现给用户,简短说一句最终分数和是否达标, 不用把报告内容在对话里重复一遍。

边界情况

  • 多篇/多文件批量分析:对每篇分别走完整流程,最后可以汇总一张总分对比表, 但每篇的详细报告仍按上面的结构分别呈现(或合并进同一个 md 文件的不同章节里, 视用户偏好)。
  • 诗歌、歌词、对话剧本等特殊文体:节奏类指标天然就会偏"不均匀",套话类指标 天然就会偏低——这类文体基本不需要担心人味问题,可以提前跟用户确认是否真的需要 走完整分析流程,还是只是想看看效果。
  • 用户要求"过某个具体的 AI 检测工具":明确告诉用户这个 skill 给的是通用人味 量化分析,不是针对某个具体检测器(如 GPTZero、Originality.ai 等)的逆向适配, 分数高低和具体某个工具的判定结果不保证完全对应。
Repository
digoal/blog
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.