| name | shuorenhua-skill |
| description | 说人话.skill — 把难懂、别扭、不通顺的中文改成一读就懂的人话,意思一个字不变。双外脑改写:GPT-4o 和 Gemini(走 OpenRouter)各改一版,本地 agent 对照原文逐句查「意思有没有跑」,合成终稿;原文永远保留。两个固定时机:备料(写作素材先洗一遍)、出稿(交付前最后捋一遍);也可以单独对任何一段文字用。首次使用需要用户配一个 OpenRouter key。
触发词:「说人话」「这段话看不懂」「帮我捋顺这段」「太绕了」「翻译成人话」「大白话讲一下」「备料清洗」「出稿前过一遍」「读不通」「翻译腔太重」。
|
| allowed-tools | Read, Write, Edit, Bash, Grep, Glob |
说人话 · 双外脑中文改写
看不懂的话,让两个模型各说一遍人话,再对着原文裁判。意思不变是底线,流畅是目标。
核心理念
三条,全部来自实践:
- 改写交给外脑,裁判留在本地。 让 GPT-4o 和 Gemini 各改一版——两个模型的坏习惯不一样,一个改绕了另一个往往是直的。本地 agent 不动笔,只对照原文逐句检查意思、挑句子、合终稿。自己改自己查,查不出问题。
- 原文永远不动、永远保留。 改写附在原文后面,不覆盖。改砸了随时能退回去;两版都失败就明说失败,绝不输出改了一半的东西。(这条抄自 gvzdv/claudish-to-english:它给 Claude 的回复附一段大白话翻译,原文照旧。)
- 意思不变优先于一切。 数字、人名、术语、引文、结论,一个都不能变。改得再顺,意思跑了就是废稿。拿不准的地方保留原词,宁可难懂,不能编。
跟 MrGeDiao/shuorenhua(1.2k★ 的规则库路线)的区别:那个是给本地模型一套「AI 痕迹清单」照着自查,主攻去 AI 味;这个是把活儿外包给两个模型交叉改写,主攻「看不懂的话变成看得懂的」。两个可以叠着用。
三个入口
| 入口 | 什么时候 | 目标 | --scene |
|---|
| 单独用 | 用户扔来一段看不懂的文字 | 读一遍就懂 | 不加 |
| 备料 | 写作前,素材本身难啃(采访转写、翻译腔文档、论文摘要、会议纪要) | 素材能直接用;信息一条不能丢 | beiliao |
| 出稿 | 成稿交付前 | 句子通顺;作者的观点、语气、结构不动 | chugao |
在任何写作流程里挂两刀:素材进来时过一遍备料,稿子出去前过一遍出稿。中间的创作不管。
执行流程
第 0 步 · key
引擎需要 OpenRouter key(一个 key 就能同时调 GPT-4o 和 Gemini)。先直接跑第 1 步,脚本自己会按顺序找:--key-env 指定的环境变量 → OPENROUTER_API_KEY → ~/.config/shuorenhua/key。
退出码 2 = 没 key。这时停下来向用户要,话术照这个说:
需要一个 OpenRouter key(openrouter.ai/keys 免费注册就能领,按量付费)。别把 key 贴进对话——聊天记录会留底。请在终端里自己执行 python3 tools/shuorenhua.py --save-key(输入不回显,存到本机、权限 600),或者 export OPENROUTER_API_KEY=…,配好回我一声。
用户有凭据管理器(比如 secret CLI)的话优先走它:secret exec 你的KEY名 -- python3 tools/shuorenhua.py 文件 --key-env 你的KEY名。key 永远不进命令行参数、不进对话、不进日志。
第 1 步 · 双模型改写
python3 tools/shuorenhua.py 输入文件.md
python3 tools/shuorenhua.py 素材.md --scene beiliao
python3 tools/shuorenhua.py 稿子.md --scene chugao
echo "一段话" | python3 tools/shuorenhua.py -
输出三段:原文、人话版 A(GPT-4o)、人话版 B(Gemini)。key 没余额(HTTP 402)时,--models 换成带 :free 后缀的免费档模型也能跑通全流程(名单在 https://openrouter.ai/api/v1/models 里搜 :free,中文改写推荐 minimax 系)。一个模型挂了就用剩下那版继续(终稿说明里提一句);两个都挂,退出码 3,向用户如实报告,把原文原样还给用户,不要自己顺手代写一版当作引擎结果——本地也可以改,但要明说是本地改的。
档位(默认不加;用户明确要求时才用):
| 档位 | 效果 |
|---|
--style tldr | 太长不看:压成三五句话,只留主干 |
--style 5y | 五岁版:日常词 + 生活比喻,省细节不改事实 |
--style caveman | 原始人版:最短最钝的句子(彩蛋,致敬 claudish-to-english) |
第 2 步 · 裁判合稿(本地,不联网)
- 先立事实清单,再读改写:只看原文,列出每个数字和它描述的对象、人名/机构/产品、谁做了什么谁负责、时间与跨度、不确定语气与条件(可能/初步/若…)。先立账后对账,免得被顺畅的改写带着走。分类细则见
references/protected-spans.md。
- 机械初筛:
python3 tools/check_drift.py 原文 改写版,两版各跑一次。数字丢失会直接非零退出,那版不能当底稿;标识符、引号内容、字数留存率只报警,逐段核对后放行或退回(tldr/5y 这类压缩档忽略留存率报警)。
- 语义对账:拿事实清单逐段核对两版。实测最常见的两种漂移机械筛不出来,全靠这步:谨慎语气被硬化(「这提示」变「这表明」)、术语被同义替换(「异质性」变「个体差异」)。
- 合终稿:选整体更顺的那版当底,把另一版更好的句子换进来;漂移点一律改回原文的意思。两版都不顺的句子才允许自己动笔重捋。
- 丢了整句要报:改写比原文少了整句或信息点、而你打算接受的,写进改动说明的「已删内容」清单交用户拍板,不许默认吞掉。
- 过雷区:终稿对照
references/ai-qiang-checklist.md 扫一遍,别把人话改成机器腔。改完自问一句:这段话念出来,像不像一个人在正常说话?
用户说「只标问题、别改」时,做完 1–3 就停:交事实清单、两版漂移记录和原文难读点列表,不出终稿。
第 3 步 · 交稿
输出顺序固定:
- 终稿
- 改动说明:三五条,说清楚改了哪类问题(长定语拆了几处、被动改主动几处、哪个漂移点改回去了)
- 两个模型的原始版本 + 原文:正文太长就写进文件附上,别省略——原文和两版是用户核对的依据
备料场景多做一步:把终稿存成新文件(如 素材.renhua.md),原文件不动。
边界
- 只处理中文(输出一定是中文;夹杂的英文句子会被译成中文,术语保留)。
- 改写不是核查:原文事实错的,改完还是错的,发现明显硬伤可以在改动说明里提一句,但不改正文。
- 诗歌、法律条文、合同原文别用——这些文体「别扭」本身有含义,改顺了就变味或失效。
- 超过两三千字建议分段跑,一次塞两万字质量会掉(脚本会提醒)。
项目文件
prompts/rewrite.md — 发给两个模型的完整提示词(脚本直接读它,改提示词只改这一个文件)
tools/shuorenhua.py — 引擎,零依赖 Python
tools/check_drift.py — 机械保真粗核(数字硬判,其余报警)
references/protected-spans.md — 裁判立事实清单时的分类(学 MrGeDiao/shuorenhua)
references/ai-qiang-checklist.md — 裁判用的中文机器腔雷区清单
references/design.md — 为什么这么设计(含出处)
examples/ — 真实跑出来的前后对照
dist/shuorenhua-prompt.md — 单文件版,没装 agent 时直接贴给 GPT-4o / Gemini 网页版用