Skip to content
Education
Skill

/content-humanizer

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

BOOST
From plugin
blog
8.6k85 skills
Install
$ npx -y skills add digoal/blog --skill content-humanizer --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/content-humanizer

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

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

内容人味分析与改写

这个 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 等)的逆向适配, 分数高低和具体某个工具的判定结果不保证完全对应。

Read more
Ships withblog

AI,Opensource,Database,Business,Finance,Minds. git clone --depth 1 https://github.com/digoal/blog

Get the whole plugin

Other skills on blog.

a-stock-prediction
Skill

a-stock-prediction

A股个股次日(T+1)走势预测 skill。当用户输入A股股票代码(如 600519、000858、300750、688981、430090)或公司名称(如"贵州茅台"、"宁德时代"、"比亚迪"),并要求预测次日走势、给出交易计划、评估盈亏概率时,触发本…

@digoal@digoalInstall Skill
andres-freund-perspective
Skill

andres-freund-perspect…

PostgreSQL 核心 committer Andres Freund 的思维框架与表达方式。基于 6 个调研维度(著作、对话、表达 DNA、他者视角、决策、时间线) 共 2957 行 / 200 KB 一手资料的深度调研,提炼 6 个核心心智模型、10…

@digoal@digoalInstall Skill
article-fact-checker
Skill

article-fact-checker

三层审查模型,逐段逐句验证文章真伪、证据链与逻辑结构。Use when the user asks to fact-check, verify, audit, or evaluate the credibility of an article, essay,…

@digoal@digoalInstall Skill
axiom-explainer
Skill

axiom-explainer

Write Chinese Markdown articles for university students and adults with social experience that explain one viewpoint, axiom,…

@digoal@digoalInstall Skill
blog-cover-poster
Skill

blog-cover-poster

Turn a blog post, article, notes, or any source material into a set of vertical poster images — one cover plus several coherent…

@digoal@digoalInstall Skill