说人话:中文 AI 味清理 skill

说人话:中文 AI 味清理 skill — 先保信息,再谈风格

别让模型替你装腔。

给 Codex、Claude Code、Cursor、ChatGPT 和自建 agent 用。
改聊天、技术同步、README、论坛帖和中文长文:先保住事实,再把那股“一眼 AI”的腔调降下来。

GitHub stars GitHub release Benchmark: 82 cases Scenario samples: 19 License

改成什么样 · 30 秒上手 · 保真合同 · 怎么改 · 评测 · 安装 · FAQ

`说人话` 专治那种“每个字都对,但一看就不是你写的”中文。它不把空话包装得更漂亮,也不替你编新事实;它先护住版本、命令、责任和证据,再拆掉过度承接、工程师腔、小红书 AI 腔、翻译腔和无源权威铺垫。目标很简单:改完你敢直接发。 它适合这些场景: | 场景 | 它会做什么 | |------|------------| | 日常聊天 | 删掉过度承接、推销式结尾和工程汇报腔,保留口语感 | | 技术状态同步 | 保住事实、版本、命令、报错和责任归属,压低套话 | | README / release note | 先讲清楚项目、变更、验证和限制,不写发布宣言 | | 论坛帖 / issue 回复 | 像维护者在认真沟通,不像客服公告或营销稿 | | 中文长文 | 句内清理保住节奏,整句空话列「建议删除」清单交你确认,不让长文越改越短 | 检索关键词:中文 AI 写作、中文 humanizer、去 AI 味、AI writing humanizer、Chinese writing style。 ## 改成什么样 ### 聊天答疑,先颁奖再推销 **改写前** > 你说的很对,这个问题一针见血。一句话总结:核心逻辑是先把流程跑通,再谈优化。我可以直接给你一版绝对没问题的最终方案,已经测试通过了,稳得很。要不要我顺手把文档也整理了?你一句话的事。 **改写后** > 对,问题就在这:先把流程跑通,再谈优化。方案我发你。文档要不要一起弄? 开头发奖状、结尾追着卖,中间「一句话总结」「核心逻辑」轮着上——这条姿态链社区早就逐个点过名([Linux.do 句式征集帖](https://linux.do/t/topic/1898176)、[「对象说我说话一股子AI味」](https://linux.do/t/topic/1765637))。文本为合成示例,把被点名最多的口癖压进了一段。 ### 发版感言,不见变更 **改写前** > ## v1.8.0 Release Highlights > > 本次版本是一次面向真实场景的系统性升级。我们不仅全面优化了改写体验,更通过全新的能力矩阵稳稳兜住了用户在 README、release note、论坛长帖和 issue 回复里的核心表达诉求。感谢所有用户的持续支持,让我们共同见证中文 AI 写作体验的全新跃迁。 **改写后** > ## v1.8.0 > > - 新增 `references/scene-packs.md`,覆盖 README、release note、forum post 和 issue reply > - `evals/benchmark.md` 增加 8 条 scene pack 回归用例 > - `evals/real-samples.md` 增加 4 条整段样本,继续按自然 / 保真 / 可直接发评分 > > 这版不做 Voice Calibration;相关方向推迟到 v1.9 评估。 release note 的读者要的是变更清单,不是发布宣言。版本号保住,姿态层拆掉,没做的事也写出来。完整样本见 [evals/real-samples.md](evals/real-samples.md) RS-16。 ### 删掉渲染词,数字不能跟着丢 **改写前** > 本次优化在性能方面取得了显著成效,有效改善了接口响应问题,p95 延迟从 480ms 降到 160ms,充分体现了团队持续优化的能力。 **改坏示范** > 这次优化明显降低了接口延迟。 渲染词是没了,但 p95、480ms、160ms 也跟着没了——空话只是换成了更泛的空话。 **改写后** > 这次优化把接口 p95 延迟从 480ms 降到 160ms。 清完落在哪是有合同的:原文给了具体信息就必须落回去,不许变泛。这条对应评测集里的硬约束用例([evals/benchmark.md](evals/benchmark.md) SF-46)。更多例子见 [references/examples.md](references/examples.md) 和 [evals/real-samples.md](evals/real-samples.md)。 ## 30 秒上手 **先试效果,什么都不用装** — [说人话 GPT](https://chatgpt.com/g/g-6a5829b1163481919e1e45851f6bc709-shuo-ren-hua)(ChatGPT,需 Plus / Pro),完整规则已内置,贴文本就能改。 **Claude Code** — 对话里两条命令装完,之后自动触发: ```text /plugin marketplace add MrGeDiao/shuorenhua /plugin install shuorenhua@shuorenhua ``` 装好后在对话里说「把这段去 AI 味」就会命中。手动安装(cp / 软链跟随更新)见 [install/claude-code.md](install/claude-code.md)。 **Codex** — clone 后单次使用: ```bash git clone https://github.com/MrGeDiao/shuorenhua.git && cd shuorenhua codex exec -C . "读取 ./SKILL.md,按其中规则改写以下文本:……" ``` **其他 agent / skill CLI** — 支持 `skills` 命令时可以直接安装完整包: ```bash npx skills add MrGeDiao/shuorenhua ``` 更多安装选项见 `npx skills add --help`。 项目内长期使用建议把 skill 文件拷进项目并在 `AGENTS.md` 写明触发条件,见 [install/codex.md](install/codex.md)。 **只想先看问题、不要改稿**:指令里加一句「按 annotation mode 只标注不改写」。 Cursor、OpenClaw 和自建 agent 见[安装](#安装)。 ## 为什么改完敢直接发 去 AI 味工具最常见的翻车不是没清干净,是清完事实变了:数字漂了、关系换了、原文没有的补出来了。`说人话` 把这些“不许变”写成可以逐条判分的合同: - **数字和修饰对象一起保**:`p95 从 480ms 降到 160ms` 删掉渲染词后必须原样在,不许概括成“明显降低”。 - **关系不许改写**:`展示了云原生架构的潜力` 不能改成 `采用了云原生架构`(潜力不是实现);`两个团队` 不能扩成“换过两个团队”(先后关系是原文没有的)。 - **时间跨度不漂移**:`未来十年` 不能缩成“未来几年”,也不能糊成“未来”。 - **抽象不许擅自具体化**:原文只说“提升效率”,不能改成“省时间”“降成本”。 - **缺信息不许编**:原文没给数据,允许输出更短更直白,但不补数字、工具名或来源;`status / docs` 缺依据时标注“原文缺具体依据”,不硬填。 每条合同在评测集里都有对应的硬约束用例(SF-07、SF-08、SF-46、SNF-36 等),双模型盲测逐条判分。规则细节见 [references/positive-style.md](references/positive-style.md) 的「清理后的落点」和 [references/protected-spans.md](references/protected-spans.md)。 ## 它怎么判断怎么改 `说人话` 不是见词就替换。一句话原则: > **先保信息,再谈风格。** 完整流程固定六步: 1. 判场景:`chat / status / docs / public-writing`;命中 README、release note、论坛帖、issue 回复时,再进对应的 Scene Pack 2. 划保护片段:数字、版本、命令、路径、报错、引用原文、人名和责任归属先锁住,同时记一份事实关系账本——谁对什么做了什么、数字修饰哪个对象(完整清单见 [references/protected-spans.md](references/protected-spans.md)) 3. 判命中强度(`Tier 1 / 2 / 3`),再分别定改写力度(`minimal / standard / aggressive`)和 scope(`structural / bounded / in-place`);Tier 只描述问题命中多重,不直接等于力度 4. 先按模式改,词表只兜底 5. 保真回读:事实、术语、语域、保护片段逐项过 6. 仍有残味才做第二遍 Residual Audit,只允许轻量修正 ### 模式地图 | 识别信号 | 默认动作 | 例 | |------|------|------| | 开场套话、总结提示(“好问题”“结论先说”) | 删提示层,直接进入事实或回答 | `好问题!让我来解释` → 直接回答 | | 商业黑话、价值拔高(“赋能”“闭环”“系统性升级”) | 换成普通动作;没有具体信息就删空壳 | `赋能开发者` → `帮开发者` | | 工程师姿态腔(“收口”“兜住”“落盘”) | 按宾语判断;姿态层换成确认、核对、写入等动作 | `把结论落盘` → `把结论写进文档` | | 过度接住、心理判断、身份认证 | 去掉抚慰和发证书,只保留低承诺回应 | `你不是敏感,你只是……` → 具体回应 | | 翻译腔、句式过满 | 缩短主语和动作,保留术语和责任主体 | `基于……通过……来……` → 直接说动作 | | 标点腔(破折号密集或首句起手) | 按密度和位置改回逗号、冒号或断句;单次合理用法放行 | 连续 `——` → 分句 | | 无源权威(“研究表明”“业内人士认为”) | `chat / public-writing` 删除无法独立成立的整条论断;`docs / status` 标注缺来源 | 不把裸 `40%` 留成事实,也不降格成“会更快” | 详细边界见 [references/](references/)、[场景规则](references/scene-packs.md) 和 [评测集](evals/benchmark.md)。 英文去 AI 味已经有 [stop-slop](https://github.com/hardikpandya/stop-slop) 和 [humanizer](https://github.com/blader/humanizer)。`说人话` 补的是中文这一层:这些腔调在中文里长什么样、按发布场景分档处理、改写前先锁住事实。 ### 场景与力度 四个场景的默认力度: | 大场景 | 默认强度 | 处理策略 | |--------|----------|----------| | `chat` | 轻 | 只砍明显套话,不把聊天改成公文 | | `status` | 中 | 保留动作、状态、阻塞点和下一步 | | `docs` | 中 | 技术表达优先,二次回读更保守 | | `public-writing` | 重 | 全规则扫描,并按需要触发 Scene Packs | ### 按发布目的细分(Scene Packs) 可发布文本再按「发到哪里」细分,不是换语气,是按发布目的决定改法:README 第一屏要说清这是什么、给谁用;release note 要列清变更、验证和限制;论坛帖像维护者分享观察和取舍,不像公司公告;issue 回复先确认问题和下一步,不做客服式安抚。每个子场景的目标和常见病灶见 [references/scene-packs.md](references/scene-packs.md)。 ### 长文不缩水:三档 scope 长文按默认动作改写,删句、并句会叠加,1800 字可能被压到 1000 字;反过来一句不删,整句的空话又留在文里。所以长文把「删到什么程度」单独分成三档,和力度档位正交: | scope | 删整句吗 | 适用 | |-------|----------|------| | `structural` | 自由删并重排 | 短文、明确要重写 | | `bounded`(长文默认) | 整句空话列成「建议删除(待确认)」清单,删多少你拍板 | `public-writing` 长文 | | `in-place` | 一句都不删,只句内降调 | 明确要求「完全原样」 | 三档的取舍过程和模型实跑数据见 [#4](https://github.com/MrGeDiao/shuorenhua/issues/4) 和 [evals/results-v1.8.6.md](evals/results-v1.8.6.md)。 ### 改完往哪个方向靠 清理不是只删词。它也会把文本往这些方向拉: - 具体动作优先于抽象拔高 - 真主语和真动作优先于姿态层 - 允许轻微不对称,不把每句都抛光成同一种腔 - 按场景校准,不把聊天改成公告,也不把文档改成段子 ## 评测 规则层覆盖 210+ 中文短语、96 条英文短语、20 类结构反模式。 当前评测集共 82 条: | 类型 | 数量 | 目标 | |------|------|------| | SF | 46 | 应该改的文本必须命中并改掉主要问题 | | SNF | 36 | 不该误杀的文本必须放行或轻提示 | | 场景样本 | 19 | 整段样本按自然、保真、可直接发三项评分,长文加 `长度节奏` | | Scene Packs | 8 | README / release note / forum post / issue reply 的正反样本 | | Long-form In-place | 4 | 长文保长度场景,检查字数留存、句数对齐和关键转场 | | Bounded | 3 | 长文整句空话进删除清单,但不误删实句和节奏句 | 怎么算及格:v2.1.0 起发布门槛分三层(判据单源:[evals/benchmark-tiers.md](evals/benchmark-tiers.md)): | 层 | 管什么 | 进不进门槛 | |----|--------|------------| | L1 硬约束 | 编造事实、受保护片段漂移、责任归属改变、scope 越界 | 进:失败 0 才允许发布 | | SNF 误杀 | 不该改的文本被改了 | 进:误杀率 < 10% | | L2 风格目标 | 明显套路清没清干净 | 按模型分别报告趋势,不设统一线 | | L3 风格观察 | 两位合格编辑可能合理分歧的用例 | 不进,只记录 | v2.1.0 实跑(82 条全量盲测、双模型交叉判分,完整归档见 [evals/results-v2.1.0.md](evals/results-v2.1.0.md)): | 被测输出 | L1 硬失败 | SNF 误杀 | 门槛 | |----------|-----------|----------|------| | Codex 最终全量 | 0 | 2/36 | 通过 | | Claude 最终全量首轮 | 1(SF-07) | 3/36 | 未通过 | | Claude 完整确认轮 | 0 | 1/36 | 通过 | Claude 首轮那 1 个 L1 不是规则缺口:判定链已经写明“不得补实现关系”,输出还是补了,属分析—输出自相矛盾。按事先声明不改规则、只做一次完整确认复跑;失败轮与确认轮并列归档,不宣称所有运行全绿。旧口径 SF 通过率继续并列报告(Codex 87.0%、Claude 84.8%),保持历史可比,不再作为发布依据。 评测怎么跑:被测模型只看匿名乱序、不含预期的 [evals/benchmark-blind.md](evals/benchmark-blind.md),judge 按映射表判分;每次实跑的评测集版本、模型和口径登记在 [evals/run-manifest.md](evals/run-manifest.md)。完整用例集见 [evals/benchmark.md](evals/benchmark.md),整段场景样本(高拟真合成)见 [evals/real-samples.md](evals/real-samples.md)。 v2.2.0 起,改写输出落盘后先用零依赖硬判脚本 `python3 automation/eval/hard_metrics.py --run <批次目录>/` 批量算出字数留存率、破折号密度和 protected spans 粗核(自动配对 `evals/benchmark-blind.md` 原文),judge 不再自己数长文留存,缺失报警仍由 judge 复核;使用口径见 [automation/eval/README.md](automation/eval/README.md)。 ## 安装 | 平台 | 文档 | |------|------| | Codex | [install/codex.md](install/codex.md) | | Claude Code | [install/claude-code.md](install/claude-code.md) | | Cursor / Windsurf | [install/cursor.md](install/cursor.md) | | OpenClaw | [install/openclaw.md](install/openclaw.md) | | ChatGPT / Custom GPT | [install/chatgpt.md](install/chatgpt.md) | 核心只需要 `SKILL.md` 一个文件(lite);长期项目、公开文本和需要误杀防护的场景,建议带上 `references/` 完整包(full)。 项目内长期使用时,可以在 `AGENTS.md` 加一段触发规则: ```markdown ## 写作风格 当任务涉及“去 AI 味”“说人话”“自然一点”“别像模板”这类改写时,遵循 `shuorenhua/SKILL.md`。 对外文本优先按它处理;代码、日志、配置和命令输出不套这个 skill。 ``` ## English **shuorenhua (说人话)** is a Chinese-first AI writing humanizer for Codex, Claude Code, Cursor, and ChatGPT. It removes AI-flavored patterns in Chinese text — sycophantic openers, performative engineer-speak, translationese, unsourced authority claims — under a fidelity contract: numbers stay attached to what they measure, relations and attribution never drift, and missing facts are never invented. It ships with an 82-case benchmark (blind inputs, dual-model judging, false-positive guards) and a long-form mode that cleans text without shrinking it. Claude Code: `/plugin marketplace add MrGeDiao/shuorenhua`, then `/plugin install shuorenhua@shuorenhua`. Other agents: `npx skills add MrGeDiao/shuorenhua`. More guides: [install/](install/). Everything else in this repo is written in Chinese. ## 常见问题 ### 这是不是拿来骗 AI 检测器的? 不是。目标是减少模板感、表演感和语域漂移,让文本更自然、更可发布,不是绕过检测。 ### 英文能不能用? 可以,但这是一个中文优先项目。英文支持主要用于清理常见英文套话和中英混写里的模板感。 ### 为什么改完有时还是有 AI 味? “去掉明显套路”不等于“拥有具体作者的个人表达”。当前版本更擅长清理模板感和表演感,还不负责拟合某个具体人的长期写作习惯。 ### 会不会把技术文档改坏? 正常不会按聊天口吻去改技术文档。`docs`、`status`、`code-context` 都有更保守的保护策略,命令、路径、版本、报错和指标优先保真。 ## 贡献:bad case 比 star 有用 欢迎提交新的评测样本、边界案例、真实问题案例、改写前后样本和误杀防护。 如果你遇到“改完还是像 AI”的具体文本,可以用 [bad case 模板](.github/ISSUE_TEMPLATE/bad-case.md) 提交。请先脱敏,不要贴未授权私聊全文、密钥、内部链接或真实个人身份信息。也可以直接贴到[征集 issue](https://github.com/MrGeDiao/shuorenhua/issues/5)。 在提交新词之前,先想一件事: > 这是一个“新模式”,还是只是“现有模式的变体”? 详细规则见 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 相关项目 - [stop-slop](https://github.com/hardikpandya/stop-slop):英文 AI slop 规则和评分框架 - [humanizer](https://github.com/blader/humanizer):英文 AI 模式分类 - [avoid-ai-writing](https://github.com/conorbronsdon/avoid-ai-writing):AI 写作问题分类和严重度参考 ## Star 增长 [![「说人话」star 增长曲线](https://raw.githubusercontent.com/MrGeDiao/shuorenhua/star-data/star-growth.svg)](https://github.com/MrGeDiao/shuorenhua/stargazers) ## 许可 [MIT](LICENSE)