这一类 skill 的名字全叫 humanize,听上去像玄学。但打开任意一份 SKILL.md 你会发现,它干的是一件极其机械的事:拿着一张具名句式清单,逐条删。本期拆开四份能点开的实现,顺带回答那个所有人都想问的问题——它能让我过 AI 检测器吗。
先说一句本期的账:路线图给这期定的主角是 Agensi marketplace 上那个 humanize-writing,但本站这次没能打开 agensi.io 的页面,既然核不了,它的安装量、榜位数字本期一个都不引。链接照给,你自己去看。真正要记住的是:humanize / humanizer / humanize-writing 不是某个 skill 的专名,是一类东西的通名。所以下面四份主角全部按 GitHub 仓库目录点名——名字对不上,装的就不是同一个东西。
你自己改一遍 AI 初稿,八成时间花在「总觉得别扭但说不上来」。这类 skill 把那句「说不上来」拆成了具名条目——不是「让文字更自然」,是「第 8 条:破折号当万能连接符,删」。四份实现的清单粒度不同,但结构是同一个。
# ① blader/humanizer —— 最出名的一份,装完用 /humanizer 调
npx skills add blader/humanizer --global
# ② hardikpandya/stop-slop —— 上游在这儿(Skill 16 给的 boraoztunc 是转载)
git clone https://github.com/hardikpandya/stop-slop ~/.claude/skills/stop-slop
# ③ Aboudjem/humanizer-skill —— 唯一带可复算分数的
npx skills add Aboudjem/humanizer-skill
# Claude Code 插件版:claude plugin install humanizer@10x
# ④ gencharitaci/humanize-skills —— 冲着 zh.md 去的
npx skills add gencharitaci/humanize-skills
别急着让模型改稿。先跑 ③ 的本地 CLI——它是纯 Node、零依赖、不出网,是这一类里唯一不消耗模型就能出结果的东西:
# 给一篇稿子打分(0–100 的 AI-tell 分数,五档评语)
node cli/index.js score examples/blog-post/before.md
# 改写前后对比,并核对数字 / URL / 日期 / 版本号 / 缩写有没有被改掉
node cli/index.js compare --before draft.md --after final.md --check-facts
拿你上周发出去的一篇稿跑一遍分数。如果分数已经不难看,这一类你整个可以不装——省下的是每次触发都要交的那份描述预算。
blader/humanizer 的 25 条分五组:A 摆姿态而不说事(「不是 X,而是 Y」「装深刻的格言」「铺垫半天才进正题」)、B 按规则造节奏(三连排比、开头句式重复、破折号当万能连接符)、C 充气与借来的权威、D 按规则排版(粗体当装饰、装饰性小标题)、E 聊天残渣(「作为 AI 我…」、知识截止免责声明)。前五条强到「见一次就改」。模型不需要判断好不好,只需要找得到。blader/humanizer 在 README 里写死:名字、数字、日期、引文、出处必须来自原文或作者,缺了就问,不许编。Aboudjem 把这句话做成了可执行的 --check-facts。改写类最恶心的失败不是改烂了,是改好听了——「同比增长 23.4%」润色成「增速接近四分之一」,读感更好,数字已经不是那个数字。blader/humanizer 的 v3.0.0 版本说明写着「把 35 条合并成了 25 条」;而它的 fork jooray/humanizer(据 GitHub 仓库页,2026-09 为 49 星,上游 49.7k)明确拒绝跟进这次合并,理由是合过来「就会丢掉 #26–54」,于是手工挑着移植、保留全部 54 条,另加了斯洛伐克语和捷克语。同一份代码的作者与分叉者,对「清单该多长」给出了相反答案,而两边都拿不出证据。这一类的所有清单都是某一时刻的观察快照,不是语言学定律。hardikpandya/stop-slop(据 GitHub 仓库页,2026-09 为 17.3k 星,v2.0.0、SKILL.md 内标注更新于 2026-03-17)把内容拆成 SKILL.md + references/ 三份(phrases.md 词表、structures.md 句式、examples.md 前后对照)。它的八类是:清嗓式开头、强调拐杖、商业黑话、副词、元评论、表演式强调、告知而非展示、空泛断言。关键在 phrases.md 是一张两列替换表(navigate → handle / address),所以它不装也能用——把表抄进你的 prompt 就是了。它另给一套五维打分(直白、节奏、可信、真实、密度,各 1–10),低于 35/50 才动手,这是 blader 那份没有的停止线。
「删掉所有 -ly 副词」「少用破折号」搬到中文稿上是空转。gencharitaci/humanize-skills(CC BY 4.0,0 星)是本期唯一带中文清单的:references/languages/zh.md,同目录还有 ja / ko / ar 等 20 份,外加 modes/ 十种用途模式。它的中文条目具体到能直接当检查表用:
zh.md 的词表以繁体写成,简体写作者要么自己转一遍,要么接受它偶尔漏判。另外这仓 0 星、3 次提交——它值钱在那张表,不在它是个成熟项目。真正稳妥的用法是把 zh.md 读一遍、挑你真犯的十条抄走,而不是整份挂上触发链。「让它写得像我」和「让它别像 AI」是两件事。后者靠清单,前者靠样例,而放在哪一层决定了它什么时候生效:
~/.claude/output-styles/ 或项目 .claude/output-styles/,frontmatter 写 name / description / keep-coding-instructions,用 /output-style <name> 切换。它改的是 Claude Code 的默认指令本身、随每个请求发出。语气和格式的默认值该放这儿。humanizer 们全属于这一层,也该属于这一层:你不会希望每条回复都被去一遍 AI 味。判据一句话:「我每次都要重新说一遍」的放 output style,「偶尔要做一次」的放 skill,「这个仓库才成立」的放 CLAUDE.md。把语气默认值写成 skill,等于把它交给触发器决定生不生效——而文风每次不一样,比一直不对更糟。
stop-slop 的「删所有副词」删的正是精确性。--check-facts,或者干脆别让它碰。stop-slop 的 references/phrases.md 本来就是两列替换表,抄进 output style 或 CLAUDE.md,零触发成本、永远在、还不会和别的 skill 抢触发。这是本期性价比最高的一条。brand-guidelines 和 doc-coauthoring 的做法是给样例段而不是列禁令——三对「改前/改后」通常比十条规则管用,下一期 Skill 18 专讲这个配方。只装一个的话:npx skills add blader/humanizer --global(25 条清单 + 四步自批 + 明写不编造事实,英文散文的默认选择)。要一条能复算的停止线就换 Aboudjem/humanizer-skill,装完先跑 node cli/index.js score <你上周那篇>——分数不难看就别装了。
按场景加:写中文 → 只取 gencharitaci/humanize-skills 的 references/languages/zh.md(繁体,先转简体,挑十条抄走)· 想零触发成本 → 把 hardikpandya/stop-slop 的 references/phrases.md 两列表搬进 ~/.claude/output-styles/ · 要的是「像我」而不是「不像 AI」 → 走 output style + 三对样例(brand-guidelines 的路子)。
明确别装:blader/humanizer + stop-slop + Aboudjem/humanizer-skill 同时挂(抢同一触发面,文风每次都变)· 在技术文档仓库里常开(它删的副词正是你的精确性)· 为了过 AI 检测器而装(见第 04 节三份证据)· 搜到名字就装——jooray/humanizer 与 blader/humanizer 同名同描述,星数差一千倍,清单还不是同一份。
装完三件事:/skills 确认同类只剩一个 · 带数字的稿子跑 --check-facts 或不让它碰 · 给自己定停止线(Aboudjem 的分数,或 stop-slop 的 35/50),否则这一类可以无限改下去。
references/ 三份词表 + 五维 35/50 停止线(17.3k 星、1.3k fork,2026-09;SKILL.md 内标 v2.0.0 / 2026-03-17)--check-facts(245 星、38 fork、MIT,2026-09)keep-coding-instructions、与 CLAUDE.md / skill / subagent 的分工对照表(2026-09)