Write logo

Write

Community
yan-labs
write

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

Overview

Publisheryan-labs
Repositoryyan-skills
Skill namewrite
Stars
225
Forks
94
Bundled files
10
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 10 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by yan-labs on GitHub. Read the source before you install it.

Installation

Install the Write AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/yan-labs/yan-skills/tree/main/write
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/yan-labs/yan-skills.git /tmp/yan-skills
mkdir -p .claude/skills
cp -r /tmp/yan-skills/write .claude/skills/write
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Write in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Write on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Write is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

write · 中文写作总入口

这个入口只负责一件事,把中文写作的每一步做对,也别让人跳过该跳的步骤。所有环节都由你自己读 references 后执行,不需要用户敲任何别的命令。

第一步:先定位,别猜

问清楚用户手上有什么,再决定走哪条。四种状态对应四条路:

手上有什么走哪条
只有一个模糊想法,还没素材阶段一 · 挖素材
一堆零散笔记、转录、要点阶段二 · 定结构
一份写完的初稿,但读着不对阶段三 · 诊断(不要直接改句子)
一份准备发的稿子阶段四 · 中文体检

其他情形读哪个

情形读
公众号类长文、随笔、评论,要有真人的声音;或稿子太完美、读着像 AIreferences/longform-voice.md
要起标题、写小红书或口播稿、做传播设计;检查口播稿哪里会划走;诊断稿子有没有共鸣references/hooks-and-platforms.md
小红书等平台的标题公式,短视频开头钩子references/title-formulas.md
翻译、写摘要、只调格式、Markdown 转公众号 HTMLreferences/translate-and-format.md
官网首页、落地页、定价页等营销文案;带引用和来源的文章;写 blog、站内介绍页(内容整合型,先读第三节的标准流程)references/copy-and-research.md
阶段四查模式、改写前定位 AI 痕迹references/patterns-zh.md

用户说"读着别扭"或"AI 味重"时,默认进阶段三,不要进阶段四。 句子层面的毛病多半是结构问题的症状,直接修句子是在给骨折贴创可贴。

阶段一 · 挖素材

读 references/fragments.md,然后自己执行:用追问把素材逼出来,片段追加进同一个文件,不排结构。这一步最值钱的产出是 leading word,一个能撑起整篇的比喻或造词,它决定后面的结构、转场和标题。

阶段二 · 定结构

有素材堆之后,按读者怎么读来选。读者需要被带着走就读 references/beats.md,读者自己知道要找什么就读 references/shape.md,读完照着执行。

面向完全不懂的读者做科普,一律用 beats。用户没有明确偏好时由你按这个标准选,并用一句话交代理由。

阶段三 · 诊断已有初稿

先跑三项体检,出结论再动手。跑完之前不要改任何句子。

体检一 · grounding 顺序

每个概念必须先落地,后面才能借它发力。借还没落地的概念,读者当场掉线——这是"读完脑子是乱的"最常见的病根,而且它在句子层面看不出来,每句话都通顺。

做法:从头读,维护一张"已落地概念"清单。每遇到一处发力,检查它依赖的概念在不在清单里。

四种典型错误:

  • 借还没到账的钱 —— 前面某句的力量依赖后面才讲的概念
  • 拆得太远 —— 概念在第二章落地,第五章才用,中间隔太久读者已经忘了
  • 落地两次 —— 同一个概念前面提半句、后面完整讲一遍。半个介绍比不介绍更糟
  • 该设成前提的塞进正文 —— 早段被定义淹没

体检二 · beats 还是 blocks

数一下全篇的并列条目。三十个平行要点意味着这是知识点堆叠,不是行进。

征兆:每节都以"X 是这样的"结尾,停在死路上,读者每节都要重新起跑。

体检三 · leading word 用够了没

有没有一个贯穿全篇的比喻?立起来之后是不是只在第一节用过就丢了?后面每一节能不能挂回它身上?

顺手要砍的

  • 章末小结。它跟正文抢记忆,读者读完正文再读一遍浓缩版,两份记忆互相干扰。留一句收束就够。
  • 信息密度全程满负荷。允许某些段落只有一句话。

诊断出结论后按结论直接改,或者结构问题太大就回阶段二重排。改完进阶段四。

阶段四 · 中文体检(不可跳过)

这一阶段内置了去 AI 味的全部做法:检测脚本、分档、保事实规则、文体判断、清字符。模式清单见 references/patterns-zh.md。

四步走

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

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

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

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

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

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

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

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

    • 不把「测得」改成「据称」,也不把「据称」改成断言
    • 不删掉最后一个限定:「有过度诊断的风险」删掉「风险」就成了断言
    • 不把批评读成夸奖
    • 不把数字挪到另一个名词上:「续航 30 小时」不能变成「降噪 30 小时」
    • 不丢关系:排名、先后、同时、否定、每个独立论断自己的条件
    • 不碰占位符:[姓名]、{{first_name}} 原样保留
    • 不加料。 成稿字数超过原稿的 1.25 倍,多出来的就是编的,分数再好也不留;允许删,不允许长
    • 不编日期、数据、引语、来源。没有细节就保持概括,不用虚构的数据显得具体
    • 保留原文主张不等于核实了主张,疑似事实错误另行说明,不用猜测替换
  3. 防改平,再清字符。 改完再跑一遍脚本。句长变异低于 0.35、段落齐刷刷一样长、全篇一个节拍,读着和模板稿一样快被认出来,这叫改平,要回头把几处改回有长有短。然后清字符:

bash
python3 ~/.claude/skills/write/scripts/check.py --clean 稿件.md > 稿件.clean.md

--clean 去掉不可见字符、全角空格等异常空格、行尾空白,把中文后面的半角 , ; : ? ! 转成全角;代码块、行内代码、网址、front matter 原样保留。只写入新文件,确认无误再替换,别直接覆盖原稿。

红线

最高优先级:禁止「先否定后肯定」。 「不是A,而是B」及全部变体,包括意思层面的同类写法。改法是删掉否定的那半句,不是换个说法。「不只……还……」是正常递进,不在翻案位置就可以用。

矫饰文风是红线级的 AI 味。 用比喻和花腔代替直说:「一个值得调的参数」写成「一个值得拧的旋钮」。判据是这个比喻删掉之后意思有没有损失,没有损失的一律删。阶段一的 leading word 是例外,它是全篇骨架,一篇只允许一个,且每节都要挂回去;挂不回去的比喻就是矫饰。

密度。 每句一个意思,二十字上下;一段只推进一步;允许某些段落只有一句话。

格式。 列表和加粗只在内容确实多面时用;叙事、抒情、对话一律平铺散文。列表不是结构,常常是没想清楚顺序的遮羞布。读者要极简格式,就一个项目符号、一个标题、一处加粗都不留。

引文要标出来。 总结别人的材料,先按「几家说法在哪里一致、在哪里不同」组织,每家用自己的话转述,整篇最多留一处带引号的短语并注明出自谁。

其余同样要查:正文里的 ——(列表分隔符里的可留);数量漂移,改过内容后配图说明里的「四个红框」、小结条数、「前面五章」一律重新核。

交付

  • 用户贴来文字:只交最终稿。用户要看才附简短说明,不默认附草稿、命中清单和分数。
  • 用户给了文件:用户要求改才写回,只审阅就给建议。
  • 作为其他任务的一步:只交所需的最终文本,不提这一遍体检。
  • 只有两种情况开口:有一个事实保不住,或有一个不确定是否对得上领域的词,各用一行说明再给稿;用户明确要报告或要对比。

分数描述的是眼前这段文字,不能用来判断作者是谁,更不能用来指控任何人。它也不保证通过任何检测器。

三条铁律

减法产生不了好文章。 把 AI 痕迹清到零,只是把标记擦掉了,不等于写得好。清单管"别写什么",笔法管"该怎么写",两件事都得做。

结构问题不要在句子层面修。 用户抱怨句子的时候,先怀疑结构。

改完必重核计数。 每一轮修改都会让配图数量、小结条数、章节引用对不上。这是最容易漏、也最显得业余的一类错误。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Write AI skill do?

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

Why use Write on TypingMind?

Because you install it once and use it with any model. Write is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Write in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/yan-labs/yan-skills/tree/main/write. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Write?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Write?

As many as you like. As long as a model supports skills, you can use Write with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Write AI skill free?

Yes. It is published on GitHub by yan-labs under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇