write

中文写作的唯一入口,写文章、写稿、改稿、写文案、写脚本、去 AI 味都从这里进。 一个流程走到底:判断手上有什么,读对应的 references 自己执行(挖素材、定结构、诊断初稿、文案、传播与标题), 最后强制过一遍内置中文体检(检测脚本 scripts/check.py)。 触发词:写文章、写稿、改稿、写作、写文案、写脚本、口播稿、公众号、小红书、标题、翻译、摘要、排版、去 AI 味、huma

SKILL.md

GitHub

write · 多语言写作总入口

这个入口只负责一件事,把各种语言写作的每一步做对,也别让人跳过该跳的步骤。所有环节都由你自己读 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 味的全部做法:检测脚本、分档、保事实规则、文体判断、清字符。模式清单按第一步的语言分流。参考里的中文平台和措辞示例只用于相应语言与场景,不直接套到其他语言。

四步走

  1. 分档。 运行检测脚本:
python3 ~/.claude/skills/write/scripts/check.py 稿件.md

脚本按屏蔽代码、网址与 front matter 后的字符占比判断:汉字占汉字与拉丁字母总数至少 50% 时走中文,否则走英文规则。英文和其他拉丁字母文本走英文规则;非英文的词表命中仅作线索,非拉丁文字仍需按通则人工检查,不能把无命中当作通过。中英夹杂或识别不准时用 --lang zh / --lang en 手动指定;多语言页面分段运行。

脚本输出硬禁项、提示项、句长与段长变异和档位。按档位决定动多大的手:

档位 做法
clean(≤20) 只清字符和被标出的几处,不重写。人写的初稿自带的声音别抹掉
轻度(21-40) 针对命中处改,顺手修节奏
混合及以上 整段重写,按下面的文体目标重建

硬禁项(翻案腔、破折号、提示性冒号、口头路标)退出码为 1,必须清零。提示项回到上下文判断,不当黑名单。脚本只抓表层,跑完仍要通读一遍,找意思层面的同类写法:「它没有突然变强。它突然变得谁都能用了」没有一个关键词,翻案腔原样。

  1. 判文体,定声音。 别往没有声音的文字里硬塞声音:

    文体 做法
    事实、科普、技术文档、商务、学术 保守。只删套话,保留术语、归因、限定,不加第一人称、观点和旁白,不强行口语化
    随笔、评论、第一人称叙事 可以放开。保留作者已有的态度和犹豫,用表达方式增强个人风格,不替作者编经历
    拿不准 按保守处理

    用户给了写作样本,就从样本取句长、用词、标点习惯,不把样本里的经历和数据搬进目标文本。

  2. 改写,守住事实。 下面几类错误能躲过人名数字的核对,在真实改稿里都出现过,逐条防:

    • 不把「测得」改成「据称」,也不把「据称」改成断言
    • 不删掉最后一个限定:「有过度诊断的风险」删掉「风险」就成了断言
    • 不把批评读成夸奖
    • 不把数字挪到另一个名词上:「续航 30 小时」不能变成「降噪 30 小时」
    • 不丢关系:排名、先后、同时、否定、每个独立论断自己的条件
    • 不碰占位符:[姓名]、{{first_name}} 原样保留
    • 不加料。 按同一语言、同一字数或词数口径计,成稿长度超过原稿的 1.25 倍,多出来的就是编的,分数再好也不留;允许删,不允许长
    • 不编日期、数据、引语、来源。没有细节就保持概括,不用虚构的数据显得具体
    • 保留原文主张不等于核实了主张,疑似事实错误另行说明,不用猜测替换
  3. 防改平,再清字符。 改完再跑一遍脚本。句长变异低于 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(在仓库根目录运行)。