--- 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 字)时,统计层的句长/段落变异系数样本量不够,分数会不太 稳定——继续分析,但在报告里提一句"样本较短,统计层指标参考价值有限,以判断层 评分为主"。 ## 第二步:跑统计层打分脚本 ```bash 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` 报告结构固定如下: ```markdown # 人味分析报告:<标题/文件名> ## 总览 | 项目 | 分数 | |---|---| | 统计层得分 | 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 | "……" | ## 原文 > (原文全文或合理摘录) --- ## 改写说明 本次改写共 N 轮,主要调整: - ... - ... ## 改写后内容 (改写后全文) ## 改写后复测 | 项目 | 改写前 | 改写后 | |---|---|---| | 统计层得分 | xx.x | xx.x | | 判断层得分 | xx.x | xx.x | | **最终人味分** | xx.x | **xx.x** | ``` 如果 final_score ≥ 目标线(不需要改写),就省略"改写说明"之后的所有部分,报告到 "原文"那一节结束即可。 存完文件后用 present_files 把报告呈现给用户,简短说一句最终分数和是否达标, 不用把报告内容在对话里重复一遍。 ## 边界情况 - **多篇/多文件批量分析**:对每篇分别走完整流程,最后可以汇总一张总分对比表, 但每篇的详细报告仍按上面的结构分别呈现(或合并进同一个 md 文件的不同章节里, 视用户偏好)。 - **诗歌、歌词、对话剧本等特殊文体**:节奏类指标天然就会偏"不均匀",套话类指标 天然就会偏低——这类文体基本不需要担心人味问题,可以提前跟用户确认是否真的需要 走完整分析流程,还是只是想看看效果。 - **用户要求"过某个具体的 AI 检测工具"**:明确告诉用户这个 skill 给的是通用人味 量化分析,不是针对某个具体检测器(如 GPTZero、Originality.ai 等)的逆向适配, 分数高低和具体某个工具的判定结果不保证完全对应。