Agent skill

Content Humanizer

by digoal in digoal/blog

分析一段内容或一个文件的"人味"(即像不像人类自然写出来的,AI 生成痕迹有多重),给出 0-100 量化打分,并在低于目标线(默认 80 分,用户可指定其他数值如90分)时在不改变原意的前提下改写到目标分数以上。触发条件:用户提到"人味"、"AI味"、"AI感"、"降AI率"、"去AI化"、"人性化改写"、"像人写的"、"过人工检测"、"过AI检测"、"让文章更自然"、"这段话是不是AI写的"…

GPL-2.0Auto-check passedWriting & Content

Install Content Humanizer

skills CLI
$ npx skills add digoal/blog --skill content-humanizer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install digoal/blog content-humanizer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/digoal/blog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/skills_for_claude_web/content-humanizer .claude/skills/content-humanizer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
content-humanizer
GitHub stars
8.6k
Token cost
~1.2k tokens
SKILL.md length
166 words
Files
3 (incl. scripts, references)
Skills in repo
98
Repo updated
First seen
Licence
GPL-2.0

At a glance

分析一段内容或一个文件的"人味"(即像不像人类自然写出来的,AI 生成痕迹有多重),给出 0-100 量化打分,并在低于目标线(默认 80 分,用户可指定其他数值如90分)时在不改变原意的前提下改写到目标分数以上。触发条件:用户提到"人味"、"AI味"、"AI感"、"降AI率"、"去AI化"、"人性化改写"、"像人写的"、"过人工检测"、"过AI检测"、"让文章更自然"、"这段话是不是AI写的"…

  • Works in 2 steps: 统计层(脚本算,客观、可复现):句子/段落长度的节奏起伏、AI 高频套话密度、 → 判断层(Claude 通读后人工评分,主观但有据可依):具体细节与个性化程度、
  • Tasks that involve Humanizing AI text
  • SKILL.md covers 这个 skill 在做什么,为什么这么设计, 第一步:拿到要分析的内容, 第二步:跑统计层打分脚本 and 第三步:通读内容,给判断层四个维度打分, plus 4 more sections
  • Runs Python scripts from its folder; calls python3

What it does

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

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts and reference files (for example `references/rubric.md` and `scripts/human_score.py`).

It sits in Writing & Content, covering Humanizing AI text and Markdown. The repository describes itself as: AI,Opensource,Database,Business,Finance,Minds. git clone --depth 1 https://github.com/digoal/blog. The licence is GPL-2.0.

When your agent uses it

  • Tasks that involve Humanizing AI text
  • Tasks that involve Markdown

Example prompts

  • “让文章更自然”
  • “这段话是不是AI写的”
  • “帮我把这篇文章改得不像AI写的”
  • “/content-humanizer”

Requirements

  • Python 3

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. 统计层(脚本算,客观、可复现):句子/段落长度的节奏起伏、AI 高频套话密度、
  2. 判断层(Claude 通读后人工评分,主观但有据可依):具体细节与个性化程度、

What it can do on your machine

Read from SKILL.md and the folder at commit 69fb793. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Content Humanizer loads about 1.2k tokens when it runs, and up to ~2.3k if it reads all its reference files. Until then it costs about 92 tokens; SKILL.md has 166 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~92
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from digoal/blog at commit 69fb793, republished under its GPL-2.0 licence (© digoal). 166 words, ~1,153 tokens.

Download SKILL.mdSave it as .claude/skills/content-humanizer/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
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 | "……" |

## 原文

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

---

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

© digoal, GPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts, references) in skills/skills_for_claude_web/content-humanizer of digoal/blog.

  • SKILL.md
  • references/rubric.md
  • scripts/human_score.py

Open the folder on GitHubat commit 69fb793

Compare with similar skills

Content Humanizer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Content Humanizer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Content Humanizer this skilldigoal/blog8.6k—~1.2kAutomated safety check: PassGPL-2.0
Audit AI Writingjxnl/personal-monorepo-template562—~887Automated safety check: PassNone
Notion To Blogwasp-lang/wasp19k—~922Automated safety check: PassMIT
AI Daily Newsgeekjourneyx/ai-daily-skill235—~2.3kAutomated safety check: PassNone
Sci PolishShZhao27208/Aut_Sci_Write208—~2.1kAutomated safety check: PassMIT
Customer Story Setuplangfuse/langfuse-docs246—~2.4kAutomated safety check: PassMIT

Similar skills

  • Audit AI Writing

    jxnl/personal-monorepo-template

    Audit pasted chatbot output, AI-cleanup diffs, wiki drafts, Markdown/MDX/docs, and source-backed articles for generic AI fluff, LLM writing tells, weak audience model, lack of theory of mind…

    562 GitHub stars~887 tokensUpdated 3 mo ago
    Writing & ContentAuto-check passed
  • Notion To Blog

    wasp-lang/wasp

    Transfer a blog post from Notion to the Wasp blog. An agent skill from wasp-lang/wasp.

    19k GitHub stars~922 tokensUpdated today
    Writing & ContentAuto-check passed
  • AI Daily News

    geekjourneyx/ai-daily-skill

    Fetches AI news from smol.ai RSS and generates structured markdown with intelligent summarization and categorization.

    235 GitHub stars~2.3k tokensUpdated today
    Writing & ContentAuto-check passed
  • Sci Polish

    ShZhao27208/Aut_Sci_Write

    Two-stage academic paper polishing skill. An agent skill from ShZhao27208/Aut_Sci_Write.

    208 GitHub stars~2.1k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Customer Story Setup

    langfuse/langfuse-docs

    Converts draft customer-story Markdown into Langfuse website MDX (Fumadocs), collects missing metadata and assets, wires meta.json and authors.

    246 GitHub stars~2.4k tokensUpdated today
    Writing & ContentAuto-check passed
  • Insight Error Page

    vercel/next.js

    Official

    Write or audit an insight-kind error page for the Next.js dev overlay.

    143k GitHub stars~5.5k tokensUpdated today
    Writing & ContentAuto-check passed

More from digoal/blog

All 98 skills in this repo
  • 三层审查模型,逐段逐句验证文章真伪、证据链与逻辑结构。Use when the user asks to fact-check, verify, audit, or evaluate the credibility of an article, essay, report, opinion piece, social-media post, or any written claim —…

    8.6k GitHub stars~939 tokensUpdated 10 days ago
    Auto-check passed
  • Find latent bugs in a local PostgreSQL source tree (RELxxSTABLE branch or HEAD) the way a core hacker does: build a heavily-poisoned debug instance (cassert + cache-discard + -O0/-ggdb3 + core…

    8.6k GitHub stars~4k tokensUpdated 10 days ago
    Auto-check passed
  • Digoal

    digoal/blog

    Portable digital employee distilled from digoal's personal blog for PostgreSQL, PolarDB, DuckDB, AI+database, vector/RAG, database operations, source-code reading, technical content creation…

    8.6k GitHub stars~2.2k tokensUpdated 10 days ago
    Auto-check passed
  • 从论文 PDF 文件或论文 PDF URL 生成通俗易懂、图文并茂、带批判性评估的中文 Markdown 解读,并保存到当前项目的 markdown 目录。Use when the user asks to interpret,精读,解读,summarize,explain,analyze, or write an article from an academic paper PDF…

    8.6k GitHub stars~1.5k tokensUpdated 10 days ago
    Auto-check passed
  • Analyze a product from documentation, websites, PDFs, articles, release notes, pricing pages, app listings, reviews, filings, or related links; save separate intermediate analyses from seven roles…

    8.6k GitHub stars~1.8k tokensUpdated 10 days ago
    Auto-check passed
  • Turn a blog post, article, notes, or any source material into a set of vertical poster images — one cover plus several coherent content slides that explain the core points.

    8.6k GitHub stars~1.4k tokensUpdated 10 days ago
    Auto-check passed

Questions about Content Humanizer

What does Content Humanizer do?

分析一段内容或一个文件的"人味"(即像不像人类自然写出来的,AI 生成痕迹有多重),给出 0-100 量化打分,并在低于目标线(默认 80 分,用户可指定其他数值如90分)时在不改变原意的前提下改写到目标分数以上。触发条件:用户提到"人味"、"AI味"、"AI感"、"降AI率"、"去AI化"、"人性化改写"、"像人写的"、"过人工检测"、"过AI检测"、"让文章更自然"、"这段话是不是AI写的"…. Content Humanizer is an agent skill from digoal/blog.

When should I use Content Humanizer?

Content Humanizer fits situations like: tasks that involve Humanizing AI text; tasks that involve Markdown.

How do I install Content Humanizer in Claude Code?

Run `npx skills add digoal/blog --skill content-humanizer -a claude-code`. Or copy the skill folder (skills/skills_for_claude_web/content-humanizer in digoal/blog) into .claude/skills/content-humanizer in your project. Claude Code loads it when a task matches its description.

How do I install Content Humanizer in Codex?

Run `npx skills add digoal/blog --skill content-humanizer -a codex`. Or copy the skill folder (skills/skills_for_claude_web/content-humanizer in digoal/blog) into .agents/skills/content-humanizer in your project. Codex loads it when a task matches its description.

Can I use Content Humanizer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add digoal/blog --skill content-humanizer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/content-humanizer, .gemini/skills/content-humanizer, .github/skills/content-humanizer and .opencode/skills/content-humanizer in your project.

What does Content Humanizer need to run?

Going by SKILL.md and its folder, Content Humanizer needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Content Humanizer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Content Humanizer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Content Humanizer use?

Content Humanizer is published under the GPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Content Humanizer use?

About 1.2k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.2k tokens, read only when the agent opens those files.

What are the alternatives to Content Humanizer?

Skills that share tags, products or a category with Content Humanizer: Audit AI Writing (jxnl/personal-monorepo-template, 562 stars), Notion To Blog (wasp-lang/wasp, 19k stars), AI Daily News (geekjourneyx/ai-daily-skill, 235 stars) and Sci Polish (ShZhao27208/Aut_Sci_Write, 208 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Content Humanizer?

digoal (a GitHub user) maintains it in digoal/blog, which has 8,587 GitHub stars. The repository holds 98 skills in this directory. The repository was last updated on September 28, 2026.

Source: digoal/blog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.