write
中文写作的唯一入口,写文章、写稿、改稿、写文案、写脚本、去 AI 味都从这里进。 一个流程走到底:判断手上有什么,读对应的 references 自己执行(挖素材、定结构、诊断初稿、文案、传播与标题), 最后强制过一遍内置中文体检(检测脚本 scripts/check.py)。 触发词:写文章、写稿、改稿、写作、写文案、写脚本、口播稿、公众号、小红书、标题、翻译、摘要、排版、去 AI 味、huma
SKILL.mdwrite/SKILL.md
GitHubwrite · 多语言写作总入口
这个入口只负责一件事,把各种语言写作的每一步做对,也别让人跳过该跳的步骤。所有环节都由你自己读 references 后执行,不需要用户敲任何别的命令。
第一步:先定位,别猜
先判断稿件语言,再按该语言的参考和检测规则走。中文读 references/patterns-zh.md,英文读 references/patterns-en.md;多语言页面按语言拆分,分别体检。其他语言按下方通则人工审阅,不套用不熟悉语言的具体词表。
根据已有上下文确定用户手上有什么,只问必需且缺失的信息,再决定走哪条。四种状态对应四条路:
| 手上有什么 | 走哪条 |
|---|---|
| 只有一个模糊想法,还没素材 | 阶段一 · 挖素材 |
| 一堆零散笔记、转录、要点 | 阶段二 · 定结构 |
| 一份写完的初稿,但读着不对 | 阶段三 · 诊断(不要直接改句子) |
| 一份准备发的稿子 | 阶段四 · 稿件体检 |
其他情形读哪个
| 情形 | 读 |
|---|---|
| 公众号类长文、随笔、评论,要有真人的声音;或稿子太完美、读着像 AI | references/longform-voice.md |
| 要起标题、写小红书或口播稿、做传播设计;检查口播稿哪里会划走;诊断稿子有没有共鸣 | references/hooks-and-platforms.md |
| 小红书等平台的标题公式,短视频开头钩子 | references/title-formulas.md |
| 翻译、写摘要、只调格式、Markdown 转公众号 HTML | references/translate-and-format.md |
| 官网首页、落地页、定价页等营销文案;带引用和来源的文章;写 blog、站内介绍页(内容整合型,先读第三节的标准流程) | references/copy-and-research.md |
| 阶段四查模式、改写前定位 AI 痕迹 | 中文:references/patterns-zh.md;英文:references/patterns-en.md;其他语言:下方通则 |
用户说"读着别扭"或"AI 味重"时,默认进阶段三,不要进阶段四。 句子层面的毛病多半是结构问题的症状,直接修句子是在给骨折贴创可贴。
阶段一 · 挖素材
读 references/fragments.md,然后自己执行:用追问把素材逼出来,片段追加进同一个文件,不排结构。这一步最值钱的产出是 leading word,一个能撑起整篇的比喻或造词,它决定后面的结构、转场和标题。
阶段二 · 定结构
有素材堆之后,按读者怎么读来选。读者需要被带着走就读 references/beats.md,读者自己知道要找什么就读 references/shape.md,读完照着执行。
面向完全不懂的读者做科普,一律用 beats。用户没有明确偏好时由你按这个标准选,并用一句话交代理由。
阶段三 · 诊断已有初稿
先跑三项体检,出结论再动手。跑完之前不要改任何句子。
体检一 · grounding 顺序
每个概念必须先落地,后面才能借它发力。借还没落地的概念,读者当场掉线——这是"读完脑子是乱的"最常见的病根,而且它在句子层面看不出来,每句话都通顺。
做法:从头读,维护一张"已落地概念"清单。每遇到一处发力,检查它依赖的概念在不在清单里。
四种典型错误:
- 借还没到账的钱 —— 前面某句的力量依赖后面才讲的概念
- 拆得太远 —— 概念在第二章落地,第五章才用,中间隔太久读者已经忘了
- 落地两次 —— 同一个概念前面提半句、后面完整讲一遍。半个介绍比不介绍更糟
- 该设成前提的塞进正文 —— 早段被定义淹没
体检二 · beats 还是 blocks
数一下全篇的并列条目。三十个平行要点意味着这是知识点堆叠,不是行进。
征兆:每节都以"X 是这样的"结尾,停在死路上,读者每节都要重新起跑。
体检三 · leading word 用够了没
有没有一个贯穿全篇的比喻?立起来之后是不是只在第一节用过就丢了?后面每一节能不能挂回它身上?
顺手要砍的
- 章末小结。它跟正文抢记忆,读者读完正文再读一遍浓缩版,两份记忆互相干扰。留一句收束就够。
- 信息密度全程满负荷。允许某些段落只有一句话。
诊断出结论后按结论直接改,或者结构问题太大就回阶段二重排。改完进阶段四。
阶段四 · 稿件体检(不可跳过)
这一阶段内置了去 AI 味的全部做法:检测脚本、分档、保事实规则、文体判断、清字符。模式清单按第一步的语言分流。参考里的中文平台和措辞示例只用于相应语言与场景,不直接套到其他语言。
四步走
- 分档。 运行检测脚本:
python3 ~/.claude/skills/write/scripts/check.py 稿件.md
脚本按屏蔽代码、网址与 front matter 后的字符占比判断:汉字占汉字与拉丁字母总数至少 50% 时走中文,否则走英文规则。英文和其他拉丁字母文本走英文规则;非英文的词表命中仅作线索,非拉丁文字仍需按通则人工检查,不能把无命中当作通过。中英夹杂或识别不准时用 --lang zh / --lang en 手动指定;多语言页面分段运行。
脚本输出硬禁项、提示项、句长与段长变异和档位。按档位决定动多大的手:
| 档位 | 做法 |
|---|---|
| clean(≤20) | 只清字符和被标出的几处,不重写。人写的初稿自带的声音别抹掉 |
| 轻度(21-40) | 针对命中处改,顺手修节奏 |
| 混合及以上 | 整段重写,按下面的文体目标重建 |
硬禁项(翻案腔、破折号、提示性冒号、口头路标)退出码为 1,必须清零。提示项回到上下文判断,不当黑名单。脚本只抓表层,跑完仍要通读一遍,找意思层面的同类写法:「它没有突然变强。它突然变得谁都能用了」没有一个关键词,翻案腔原样。
判文体,定声音。 别往没有声音的文字里硬塞声音:
文体 做法 事实、科普、技术文档、商务、学术 保守。只删套话,保留术语、归因、限定,不加第一人称、观点和旁白,不强行口语化 随笔、评论、第一人称叙事 可以放开。保留作者已有的态度和犹豫,用表达方式增强个人风格,不替作者编经历 拿不准 按保守处理 用户给了写作样本,就从样本取句长、用词、标点习惯,不把样本里的经历和数据搬进目标文本。
改写,守住事实。 下面几类错误能躲过人名数字的核对,在真实改稿里都出现过,逐条防:
- 不把「测得」改成「据称」,也不把「据称」改成断言
- 不删掉最后一个限定:「有过度诊断的风险」删掉「风险」就成了断言
- 不把批评读成夸奖
- 不把数字挪到另一个名词上:「续航 30 小时」不能变成「降噪 30 小时」
- 不丢关系:排名、先后、同时、否定、每个独立论断自己的条件
- 不碰占位符:
[姓名]、{{first_name}}原样保留 - 不加料。 按同一语言、同一字数或词数口径计,成稿长度超过原稿的 1.25 倍,多出来的就是编的,分数再好也不留;允许删,不允许长
- 不编日期、数据、引语、来源。没有细节就保持概括,不用虚构的数据显得具体
- 保留原文主张不等于核实了主张,疑似事实错误另行说明,不用猜测替换
防改平,再清字符。 改完再跑一遍脚本。句长变异低于 0.35、段落齐刷刷一样长、全篇一个节拍,读着和模板稿一样快被认出来,这叫改平,要回头把几处改回有长有短。然后清字符:
python3 ~/.claude/skills/write/scripts/check.py --clean 稿件.md > 稿件.clean.md
--clean 去掉不可见字符、异常空格和行尾空白;仅中文模式把中文后面的半角 , ; : ? ! 转成全角。英文和其他语言只清字符与空白,不改标点;可用 --lang en --clean 强制此行为。代码块、行内代码、网址、front matter 原样保留。只写入新文件,确认无误再替换,别直接覆盖原稿。
红线
最高优先级:禁止「先否定后肯定」。 任何语言中的翻案式表达及意思层面的同类写法,例如中文「不是A,而是B」、英文 “not X, but Y”“it’s not just X, it’s Y”“more than just”。改法是删掉否定的那半句,不是换个说法。真实的否定事实必须保留;正常的递进关系直接说明新增内容,不能借它偷渡翻案腔。各语言具体例子见对应参考。
矫饰文风是红线级的 AI 味。 用比喻和花腔代替直说:「一个值得调的参数」写成「一个值得拧的旋钮」。判据是这个比喻删掉之后意思有没有损失,没有损失的一律删。阶段一的 leading word 是例外,它是全篇骨架,一篇只允许一个,且每节都要挂回去;挂不回去的比喻就是矫饰。
密度。 每句一个意思,句长按语言与文体判断,不跨语言套字数阈值;一段只推进一步;允许某些段落只有一句话。
格式。 列表和加粗只在内容确实多面时用;叙事、抒情、对话一律平铺散文。列表不是结构,常常是没想清楚顺序的遮羞布。读者要极简格式,就一个项目符号、一个标题、一处加粗都不留。
引文要标出来。 总结别人的材料,先按「几家说法在哪里一致、在哪里不同」组织,每家用自己的话转述,整篇最多留一处带引号的短语并注明出自谁。
其余同样要查:正文里充当修辞支架的破折号(中文 ——、英文 — 和 --;列表分隔符里的可留);数量漂移,改过内容后配图说明里的「四个红框」、小结条数、「前面五章」一律重新核。
其他语言通则
所有语言都查翻案式表达、套话开头和收尾、堆砌词、空泛赞美与过度格式。先找句子的实际主张,删掉人为设置的否定半句,直接写动作、事实或结果;正常否定、条件、归因和限定不可删。三项并列和句段长度过匀只提示回看,不为改变节奏硬拆事实。按目标语言的自然语序与标点审阅,不为不熟悉的语言编词表,也不把英文检测结果当作完整语言校对。
交付
- 用户贴来文字:只交最终稿。用户要看才附简短说明,不默认附草稿、命中清单和分数。
- 用户给了文件:用户要求改才写回,只审阅就给建议。
- 作为其他任务的一步:只交所需的最终文本,不提这一遍体检。
- 只有两种情况开口:有一个事实保不住,或有一个不确定是否对得上领域的词,各用一行说明再给稿;用户明确要报告或要对比。
分数描述的是眼前这段文字,不能用来判断作者是谁,更不能用来指控任何人。它也不保证通过任何检测器。
三条铁律
减法产生不了好文章。 把 AI 痕迹清到零,只是把标记擦掉了,不等于写得好。清单管"别写什么",笔法管"该怎么写",两件事都得做。
结构问题不要在句子层面修。 用户抱怨句子的时候,先怀疑结构。
改完必重核计数。 每一轮修改都会让配图数量、小结条数、章节引用对不上。这是最容易漏、也最显得业余的一类错误。
固定回归测试:PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s write/tests -v(在仓库根目录运行)。