dby-write
Writes, reviews, and improves articles for your social media channel in your own voice and style.
Installation
Paste this into Claude Code, Cursor, or any agent that can run commands.
What this skill does
What it does:
- Writes a complete WeChat Official Accounts article in your own voice and style
- Reviews an article you already published and explains why it did or did not get views
- Revises a draft based on feedback comments
- Finds good topics to write about
- Creates headlines for your article
When to use it:
- You want help writing a full article for your WeChat account
- You published something and want to understand the numbers
- You got feedback on a draft and need to revise it
- You have notes or ideas but need help turning them into an article
- You need help choosing what to write about next
SKILL.mdShow the author's original SKILL.md (not in English)
--- name: dby-write description: >- 公众号文章写作主干(都爆鸭)——一包三件事:①**写一篇**:按用户的号章程与创作 DNA 写一篇像号主本人写的公众号文章; ②**复盘一篇**:拉用户已发文章的真实数据,按这个号自己的历史中位数分四象限,只指出该修的那一处; ③**按审稿意见改一版**:拉稿件面的审稿包,逐条回应评论与拒绝后提交新版。成稿一定先给用户过目,绝不自作主张发进用户的号。 触发词:帮我写篇公众号文章、写篇文章、写个初稿、按我的风格写、代笔、公众号写作、帮我起草、这篇怎么写、写作全流程、 用我记的东西写、把灵感库里记的整理成选题、 这篇为什么没人看、复盘、复盘一下、数据怎么样、上次那篇效果、阅读量为什么低、文章表现、发出去没人看、 按审稿意见改一版、按我的评论再改一遍、读一下稿件的意见、按拒绝重新改一版。 version: 1.14.0 changelog: 规格 dby-cli-coverage「装好即可达」:write.mjs 标弃用(stderr 提示,逻辑不动),SKILL.md 与 references 改指统一 CLI,删「两条路都对」与所有 `$W`/硬编码 skills 路径;新增 dby.mjs 引导壳 compatibility: >- 需要 Node ≥18(零依赖,不装 npm 包)、环境变量 DOUBAOYA_API_KEY(dyh_…,见 doubaoya.com 密钥中心) 及 https://doubaoya.com 的 HTTPS 访问。档案/选题/往期文章/复盘全免费; 违禁词检测按平台计费(dby-banned-words)。 --- # 公众号文章写作主干 · dby-write > 🔀 「写篇文章 / 写个初稿」= **写一篇**(模式 A);「为什么没人看 / 复盘」= **复盘一篇**(模式 B); > 「按审稿意见改一版 / 按我的评论再改一遍」= **模式 C**(`references/review-turn.md`)。 > ⚠️ **已写好的文案**要改平台风格 → `dby-rewrite`;**已写好的正文**只要排版 / 存草稿 → `dby-publish`。 --- ## 🔴 四条红线(任何终态下都不许跳过) ### 红线一:写进正文的每一样具体东西,都要能指出来源 **细节、案例、数字、品牌与产品事实、第一人称场景 —— 每一样都必须能指回素材单里的一条**(第 4 步收的)。 指不回的,留 `【待补:…—— 请给一个真值】` 式显式占位并告诉用户要补什么,绝不填一个看起来合理的值。 ⚠️ **不误伤**:细节都能指回素材单的场景不拦 —— 判的是能不能核对。成稿末尾附「素材出处」列表。 → 判据、占位样式与实证见 `references/materials.md`。 ### 红线二:标题没定,不往下走 出候选 → 用户选定 → 才继续。用户没选就停在这儿等,不许自己挑一个继续写。 ### 红线三:标题必须与正文匹配 标题承诺了什么,正文就得兑现什么。标题写「5 个方法」正文只有 3 个 → 自检不通过,改一侧再交付。 ### 红线四:成稿必须先给用户过目 **用户没看过正文之前,绝不进入写进他公众号后台的那一步**——哪怕他一开始就说了「写完直接推草稿箱」。 --- ## 模式 A:写一篇(九步主干) **九步一口气走完,别逐步征求同意。** 只停两处:第 3 步让用户选标题、第 9 步后问终态。 取数走 `dby write prep|topics|review|articles`(`$SKILL_DIR` = 本包目录)。绕开它自拼请求才读 `dby-gateway/references/protocol.md`。 ### 第 1 步 · 读档案 + 拉写作规范(必须早于任何生成动作) ```bash node "$SKILL_DIR/scripts/dby.mjs" write prep # 五样一次拉齐;--json 另带章程全文与 samples[].content ``` 五样:**号章程**、**创作 DNA**、**范文样本**、**写作规范**(平台硬约束)、**素材卡索引**。 脚本已做降级:401 直接红、**档案为空直接拦下**、规范拉不到照常走、范文少于 3 篇提醒。 🔴 规范里**硬约束那一节不是建议**,动笔前进上下文;第 5、6、9 步都照它走。 → 要**封面卡 / 导语**这类「家具」或五样没拉齐时读 `references/writing-spec.md`,不需要就别读。 ### 第 2 步 · 确定选题 🔴 **用户已经说了写什么 → 直接用,不要再问,也不要再调接口。** 没说时才取候选:`node "$SKILL_DIR/scripts/dby.mjs" write topics [赛道]`(不传赛道用档案里的)。 候选过两道筛(号章程 / 有用性);筛法、**每月一篇复利文**与常青回看读 `references/topic.md`。 ### 第 3 步 · 定目标,再定标题(🔴 唯一的中途停顿点) **先写一行「本篇:目标(涨粉 / 变现 / 常青)/ 素材形态 / 读者意识阶段 / 人称语气」**,阶段决定标题答哪个问题;五阶段、三目标差异与**变现文的 offer 表**读 `references/goals.md`。 **素材形态 = 手里已有什么**(不是"算哪一类"):带转折的真实经历 / 被访者原话 → **A 组**;可复现步骤 / 并列多项 / 可核实的具体事件 / 待解释的现象或机制 → B 组。判别读 `references/goals.md`。 出 **5 个候选**,各过五项自检,**停下来让用户选一个**(也可自己给)。群发后标题只能改 3 个字。 | 检查项 | 通过标准 | |---|---| | 完整陈述句 | 单独发给不知情的人能复述文章讲什么;15–28 字(**汉字计数,一个英文词算 1 字**,后台上限 64),核心信息放**前 20 字**(列表约 25–31 字后截断) | | 缺口 | **看本篇目标**:涨粉 / 变现 → 好奇缺口 / 颠覆认知 二选一,正文必须兑现;**常青 → 不强制**,平实陈述句照过 | | 具体 | 含具体数字优先;禁「让你哭 / 只有 X 才懂 / 测一测」式短语 | | 受众匹配 | 目标读者一眼认出「这是写给我的」(人群词进标题)——**常青也要过** | | 搜索适配 | 含读者真会去搜的关键词——**常青尤其要过**(它靠搜索吃长尾) | 🔴 **常青放宽的是「制造缺口」这个手段,不是「让人愿意点」这个目标**——老实标题仍要过「完整陈述句」与「受众匹配」。 → 写法清单、字数出处与常青范例见 `references/title.md`。 ### 第 4 步 · 收素材 按下表从上往下取,够写就停;每条素材进**素材单**(编号 / 原句或数字 / 出处),没进单的不许进正文。 **A 组必须收到第一人称真实经历细节**(时间 / 地点 / 数字),纯观点拼接不被推荐。**B 组不因缺经历被阻断**——它缺的是"内容不够",标注或缩范围即可。 | 层 | 来源 | 何时用 | |---|---|---| | 1 | 用户当轮给的(含留言 / 私信原话) | 有就先用 | | 2 | 用户记下的(灵感库;`insp list|add`) | 点名「用我记的」必取;否则默认扫近 30 天,无相关就过 | | 3 | 号档案 + 范文 | 总是(第 1 步已拉到,不再取) | | 4 | 自己往期文章 | 写过相近题 | | 5 | 素材库(`material list|get|add|rm`,prep 已带索引) | A 组缺锚点先查这里 | | 6 | 用户知识库(ima / `$DBY_WIKI_DIR`) | 配了才用,没配跳过不问(**A 组例外**) | | 7 | 平台取数 | 用户点名或前六层不够 —— 🔴 **这一层计费** | | 8 | 联网查证 | 只核实前面拿到的事实,不引入新数据 | → 各层取法与素材单格式读 `references/materials.md`。 第 2 层的条目带记录 id,建稿/提交新版(`draft create`/`draft submit`)时作 `sourceItemIds`(血缘);灵感库为空如实说、不虚构。 🔴 **A 组八层取完仍拿不到锚点 → 停下,不许开始写正文。** 处置阶梯读 `references/materials.md` 的「锚点收不到时」。 ### 第 5 步 · 列提纲 🔴 **先读 `references/genre/<你声明的素材形态>.md`(名字逐字照抄);没读不列提纲。** 收完素材发现与声明不符 → 改声明、换读那份。 **第一行写一句话中心**(读者带走的那一个想法),指不回它的块删掉。**每块标注用素材单里的哪几条**(编号)—— 指不上的回第 4 步补,或按红线一留占位。 → 结构与小标题读 `references/craft.md`(**选一种,别混着来**)。 ### 第 6 步 · 写正文 **按「块」写,一个一级小标题算一块。** 顺序:先导语 → 再正文 → 最后结尾。开头 150 字内兑现标题。 → 开头/结尾/句子级规则见 `references/craft.md`。**内容不够时不要扩写,去写细节**——细节只从素材单取(红线一)。 🔴 **硬约束边写边守**,以第 1 步规范为准,**别照记忆里的旧清单写**。 🔴 **口吻按这个号自己的声音写,不是默认 AI 腔**。`prep` 输出的 `voiceSystemPrompt`(当写作设定)与 `taboos`(**一条都不准违反**,写完逐条扫)动笔前就要用上;两样为空照常写,交付时说明是通用口吻(去 `dby-charter` 蒸),**别因此停下来问**。 **结尾的行动号召从档案里取**(`productsJson[].ctaScript`;没有就按红线一留占位,**绝不自己编一个背书**)——取法见 `references/craft.md`。 ### 第 7 步 · 重写 🔴 **初稿不直接交。** 四步减法(口述摘要重写 / 朗读标打结处 / 先大后小删 / 不确定为真的删掉重来)读 `references/craft.md`。 ### 第 8 步 · 写摘要与留言 **摘要**按「备用标题」写,别写成正文缩写。**留言**(作者给自己文章的第一条留言)**是可选的**——不写不影响交付,别记成未完成项。→ 写法见 `references/craft.md`。 ### 第 9 步 · 成稿自检 六件事,一件都不能少: 1. **违禁词与极限词** → 走 `dby-banned-words`,标题 + 摘要 + 正文一起查,只查公众号一个平台;**任何终态都要跑**。命令行见 `references/api-contract.md`。 2. **广告标识**:正文带购买方式(链接 / 二维码 / 店名)就必须文首标「广告」,没标不交付;诱导关注句删。→ 法条与适用范围读 `references/craft.md`「结尾的行动号召」。 3. **AI 声明**:这稿由 agent 起草,《标识办法》(2025-09-01 施行)要求发布者**主动声明**;交稿时告诉用户、由他决定,**不许替他省略**。→ 法条与各平台要求读 `dby-deai/references/平台标注.md`。 4. **标题与正文匹配**(红线三):对照第 5 步那句一句话中心。 5. **事实来源核对**(红线一):每个细节 / 案例 / 数字 / 品牌事实 / **第一人称场景**逐个指回素材单编号,指不回的改占位。 6. **平台硬约束逐条对**:按第 1 步规范的「硬约束」小节过一遍;没拉到时如实说「这次没按硬约束核」,**别假装核过了**。 自检过了 → 把成稿**交给用户看**(红线四),只问「哪里看不懂 / 哪里拖」,然后问终态。 A 组且用户这轮口述了新经历 → 展示拟存卡面提议存进素材库:**确认才写、一次即止、连拒两次不再提**。 --- ## 交棒:问终态 成稿之后**必须问**,不许推断: > 这篇你想要到哪一步? > ① 就要这份成稿,我自己发 ② 要排版好的公众号 HTML ③ 存进我自己的公众号草稿箱 ① 到此为止。②③ 走 `dby-publish` —— 命令行、绑号条件、先落盘 `.md`、回执四行 → `references/api-contract.md`。 --- ## 模式 B:复盘一篇 → 读 `references/review-mode.md`(`write review` 归四象限,**只给一处修复动作**)。 🔴 三条不许简化掉:**写明用的是哪一档指标**(代理档绝不能说成「打开率 × 分享率」)、**基准只能是这个号自己的历史中位数**、**样本少于 5 篇要把「仅供参考」带给用户**。 → 用户想练写作 / 问「怎么提高」读 `references/practice.md`。 模式 C(按审稿意见改一版)→ `references/review-turn.md`(`draft review-packet`→逐条回应→提交新版)。 --- ## 下一步 API 契约表见 `references/api-contract.md`;档案的**写入**不在本包,走 `dby-charter`。 成稿要 HTML / 进草稿箱 → `dby-publish`;要发别的平台 → `dby-rewrite`(七平台调性,免费);不确定 → `dby`(公众号飞轮总导航)。 用户说「读着像 AI」→ `dby-deai`(逐句指出哪里像,改不改由用户定)。**别自作主张替他跑**:第 6 步已按这个号的声音写过,再叠一层会把它磨平。
Ships with 23 supporting files:
- .version
- evals/cases.jsonl
- evals/triggers.jsonl
- references/api-contract.md
- references/craft.md
- references/genre/可复现步骤.md
- references/genre/可核实的具体事件.md
- references/genre/带转折的真实经历.md
- references/genre/并列多项.md
- references/genre/待解释的现象或机制.md
- references/genre/被访者原话.md
- references/goals.md
- references/hot-samples.md
- references/materials.md
- references/practice.md
- references/review-mode.md
- references/review-turn.md
- references/title.md
- references/topic.md
- references/writing-spec.md
- … and 3 more
Mirrored from the author's public source. Install counts from the open skills registry.