微信公众号写作系统 (WeChat Writer v3.5.2)
单一 Skill 驱动的自动化写作流水线。支持 "先聊后写" (Interview-First)、"素材转化" (Source-First),以及用于补充外部视角的 Seed 发芽流程。
📍 核心理念
- 三种入口 + 一层前置能力:
- 访谈模式 (
/interview): 解决冷启动,通过对话挖掘隐性知识和真实情绪。 - 素材模式 (
/write): 解决转化率,将已有笔记/链接快速转化为文章。 - 发芽模式 (
/sprout): 将外部人物、事件、故事加工成结构化 Seed,用来补足你的素材盲区。 - 批量发芽 (
/harvest): 批量处理素材库或 Inbox 中的候选素材。
- 访谈模式 (
- Seed 只扩素材,不改文风: 外部 Seed 负责提供案例、反方视角和第一性问题;正文依然服从 David 的第一人称真实感与风格约束。
- 5 角色协同: 首席记者 (Lyra) + 呼延雷锋(大脑) + 冰清(手) + 罗永浩(眼) + 马可婷(包装)
- 4 文件交付: 01_Plan -> 02_Draft -> 03_Production -> Published
- Vibe Writing: 坚持 "Think Aloud + 真实素材 + 外部发散 + 选题质检 + 三遍审校"
- 角色定义:见
references/core_personas.md
🏗️ 目录结构规范
所有工作在 To-be-used/Project_[Title]/ 下进行:
To-be-used/Project_[Title]/
├── _source/ # 用户提供的原始素材(Stage 1 初始化时移入)
│ ├── Raw_[Title].md # (访谈模式) Stage 0 生成的访谈录
│ └── Seeds/ # (项目级) 本次写作专用发芽素材
│ └── Seed_[Topic].md
├── 01_Plan.md # 阶段一:清洗素材 + 结构大纲 + 调研事实
├── 02_Draft.md # 阶段二:正文初稿 (含批注)
├── 03_Production.md # 阶段三:标题方案 + 营销摘要 (无视觉)
├── Cleaned_[Name].md # (中间产物) Stage 1 清洗结果
├── Research_Report.md # (中间产物) Stage 1 调研报告
├── SEO_Report.md # (中间产物) Stage 1 SEO 关键词报告
├── [Critique_Report]*.md # (中间产物) Stage 2 审校报告
├── Directive_*.md # (中间产物) Stage 2 综改指令
└── _temp_*.json # (临时文件) 脚本输入文件 (可选)
💡 Resume / Restart: 任何时候重启任务,可使用
/write "Title" --from-stage N从指定阶段继续。
💡 Long-Term Knowledge: 可复用的 Seed 沉淀到
knowledge/seeds/;一次性 Seed 留在当前项目目录。
🚀 工作流总览
Pre-Stage: 发芽 (Sprout) —— 入口:/sprout / /harvest
角色: 主编 (呼延雷锋) —— 分类、补料、搭桥。
目标: 把外部世界的人物、事件、故事加工成可被 David 风格吸收的结构化 Seed。
何时必须执行:
- 用户素材只有感想,没有具体人物、事件或故事抓手。
- 用户素材过于站在自己视角里,缺乏外部案例和反方视角。
- 文章需要补事实、案例、社会参照系,但现有素材库中没有现成条目。
操作流程:
- 绑定项目 (Project Binding):
- 若当前已处于某个
Project_[Title]上下文,直接继承该项目。 - 若是独立触发
/sprout或/harvest,优先读取project参数;若未提供,则回退读取title参数作为目标项目标题。 - 若目标项目不存在,先创建
To-be-used/Project_[Title]/与_source/Seeds/。 - 若既没有当前项目上下文,也没有
project/title可用,暂停并向用户索取项目标题;默认不允许写 projectless Seed。
- 若当前已处于某个
- 分类: 按
person / event / story / concept / trend分类,规则见references/routine_sprout.md。 - 拦截: 若输入是
concept或trend,禁止直接进入正文写作,必须先追问具体人物、事件或案例。 - 发芽: 参考
references/template_seed.md生成Seed_[Topic].md,默认落到To-be-used/Project_[Title]/_source/Seeds/。 - 沉淀: 若 Seed 有长期复用价值,再晋升到
knowledge/seeds/。 - 衔接: 发芽完成后进入 Stage 1,由主编把 Seed 吸收进
01_Plan.md。
Stage 0: 访谈 (The Interview) —— 入口:/interview
角色: 首席记者 (Lyra) —— 挖掘、追问、倾听。
目标: 无论你有多少模糊的想法,通过 5-10 轮对话,生成一份丰满的素材文件。
操作流程:
- 启动: 用户输入
/interview [话题/想法]。 - 交互: Lyra 进行苏格拉底式追问(挖掘事实细节、情绪波动、反直觉观点)。
- 结案: 当用户表示"聊够了"或信息充足时,Lyra 自动整理访谈录。
- 产出:
- 创建项目目录
To-be-used/Project_[Title]/ - 将整理好的内容写入
_source/Raw_[Title].md
- ⚠️ 记录原则 (High Fidelity): 高保真。禁止对用户的回答做摘要或书面化润色。必须保留第一人称、口语语气词、情绪表达和断句。我们在这个阶段需要的是"生肉",不是"熟食"。
- 创建项目目录
- 衔接:
- 自动进入 Stage 1,读取刚才生成的
_source/Raw_[Title].md开始策划。
- 自动进入 Stage 1,读取刚才生成的
Stage 1: 策划 (Plan) —— 角色:主编 (呼延雷锋) —— 策划、结构、决策。
目标: 无论输入多乱,输出一个坚实、经过验证的大纲。
初始化 (Init):
- 创建
To-be-used/Project_[Title]/文件夹 - [素材模式] 将用户提供的原始素材文件移动到
_source/子目录(确保归档时一并迁移) - [访谈模式] 将 Stage 0 生成的
Raw_*.md保留在_source/子目录 - [Seed 模式] 若本次存在项目级 Seed,统一保存在
_source/Seeds/
- 创建
清洗 (Clean):
- 调用
scripts/cleaner.py保存 Agent 清洗后的中间文件 (Cleaned_*.md)。 - 主编 必须阅读
Cleaned_*.md,将其核心信息 吸收并写入01_Plan.md的 "素材摘要" 部分。
- 调用
选题质检与人机边界 (Topic Gate):
- David-HKR 质检(必做): 用 David 的语气判断本篇是否值得写,而不是为了完成流程硬写:
- 好奇感: 有没有一个具体场景、反常识细节或真实问题,让读者想继续看下去?
- 信息增量: 读者看完能不能多知道一点事实、方法、经验或判断?
- 共鸣感: 这件事是否能连接到读者自己的处境,而不只是作者自说自话?
及格线:至少满足两项。若只满足一项或完全不满足,先回到
/interview或/sprout补素材,或请用户确认是否调整角度。
- 写入
01_Plan.md固定区块选题质检卡,至少包含:- 好奇感:强 / 中 / 弱,以及具体钩子
- 信息增量:强 / 中 / 弱,以及新增价值
- 共鸣感:强 / 中 / 弱,以及对应读者处境
- 结论:继续 / 补素材 / 调整角度
- 人机边界卡(必做): 明确哪些内容来自 David,哪些可以由 AI 辅助,哪些禁止虚构:
- David 原话与亲历:只能来自访谈、原始素材、旧文或用户明确补充
- AI 可辅助:事实核查、背景知识、类比候选、结构建议、表达润色
- 禁止虚构:第一手经历、关键情绪、人物关系、未验证数据、David 未说过的观点
- David-HKR 质检(必做): 用 David 的语气判断本篇是否值得写,而不是为了完成流程硬写:
SEO 关键词调研 (SEO Research) ⚡:
- ⚠️ 必读:
knowledge/wechat_index_keywords.md(查积累库) - 以文章主题为种子词,调用微信指数搜索相关上升词
- 参考
references/wechat_index_research.md的 SOP 进行调研 - 💡 SEO 辅助: 若需要查微信指数,可安装
wechat-index-querySkill(仅支持 macOS,需手动打开微信指数小程序) - 产出:
SEO_Report.md(记录候选关键词、指数、趋势、适合嵌入的位置,以及本轮是采用 / weak-signal / skip SEO化哪种结论) - 将本次新发现的关键词更新到
knowledge/wechat_index_keywords.md - 过期检查: 如积累库中相关词条"上次查时间" > 14 天,优先重新查证
- 强制沉淀: 主编必须把最终 SEO 结论写入
01_Plan.md的固定区块SEO 决策卡,至少包含:- 最终状态:
采用 / weak-signal / skip SEO化 - 最终选用词:标题主词、摘要/正文辅助词、Tags 候选
- 放置计划:标题 / 摘要 / 开头段 / Tags
- 禁用或降级词:不建议硬塞的词及原因
- 备注:查无结果、仅下降词或不适合 SEO 化时的降级理由
- 最终状态:
- ⚠️ 必读:
结构 (Structure):
- ⚠️ 文章类型判断(必做): 先确定本次写作属于哪种类型,据此决定大纲重心:
- 现象解读型:观察→好奇→研究→升维
- 方法论分享型:每节必须有可执行动作 + 坦诚说明学习成本
- 产品体验型:场景演示 + 真实感受
- 调查实验型:过程叙事 + 层层递进发现
- 工具分享型:个人故事铺垫→工具展示→效果惊艳
若素材明显属于某类型,大纲重心应向该类型的写法重心倾斜;若类型重叠,以主要类型为准。
- ⚠️ 必读 (Prevention):
knowledge/team_memory.md(避坑指南) - ⚠️ 必读 (Discovery):
knowledge/published_article_index.md(寻找旧文关联) - ⚠️ 必读 (Inspiration):
knowledge/素材库.md(寻找金句或相关素材) - ⚠️ 必读 (External Seeds):
To-be-used/Project_[Title]/_source/Seeds/与knowledge/seeds/(补外部案例与发散) - 推荐参考:
references/template_01_plan.md(半空白示例样本;用于把握常见章节顺序,不要求逐段照抄) - 主编 制定大纲,确定核心论点、钩子和结尾。
- 主线回扣(必做): 每个中段都要写清楚:
- 本节承担什么推进任务
- 本节结束时用哪一句自然回到核心论点
- 开头埋下的具体细节,结尾是否能以变体形式呼应
目标不是写得更花,而是避免文章变成一堆信息的堆砌。
- 按需补充项(仅在使用 Seed 或素材明显单薄时启用):
- 建议吸收
2个外部案例或参照物 - 建议加入
1个反方视角 - 建议提出
1个第一性问题
- 建议吸收
- Seed Gate: 进入正文前,主编应先判断本篇是否需要
/sprout;若未启用,也建议在01_Plan.md中简要说明"为什么当前素材已足够"。 - 例外: 纯个人经历、访谈回忆、生活体感类文章,如果外部材料会稀释第一人称叙事,可以不补足以上三项。
- 吸收原则: 外部材料只能增强判断和对照,不能覆盖用户自己的真实体验。
- ⚠️ 文章类型判断(必做): 先确定本次写作属于哪种类型,据此决定大纲重心:
调研 (Research):
- 顾问 (罗永浩) 介入,(Agent进行搜索) 调用
scripts/research.py格式化调研报告 (Research_Report.md)。 - 主编 将验证过的事实 (含来源链接) 填入
01_Plan.md的 "事实核查表" 中。 - 最终产出:
01_Plan.md(包含素材摘要、选题质检卡、人机边界卡、Seed 吸收结果、大纲、主线回扣设计、反方视角、第一性问题、验证事实,以及作为下游唯一输入源的SEO 决策卡)。
- 顾问 (罗永浩) 介入,(Agent进行搜索) 调用
🏁 Checkpoint 1(STOP): 暂停并请求用户审核: 01_Plan.md (大纲+事实+SEO关键词)。
Stage 2: 撰写 (Draft) —— 角色:主笔 (冰清) —— 撰写、叙事、心流。
目标: 输出一篇逻辑严密、无 AI 味的初稿。
初稿 (First Draft):
- 主笔 (冰清) 参考
01_Plan.md和knowledge/style_guide_david.md。 - ⚠️ SEO 消费规则: 主笔只从
01_Plan.md的SEO 决策卡读取关键词约束;若状态为skip SEO化,禁止为了完成流程硬塞关键词;若为weak-signal,仅允许自然使用,不强求标题或首段承载。 - 专注于 "David" 的语气和心流,撰写正文。
- ⚠️ 引用旧文: 正文中引用已发布文章时,使用纯粹的
[[标题]]格式(Obsidian 会自动解析)。 - 🖼️ 视觉重命名: 若引用素材中有图片,必须将所有类似
的乱码/默认文件名重命名为切题的。即:必须保留原有的尺寸参数(如 |400),仅修改前面的文件名部分。 - 产出:
02_Draft.md(v1)。
- 主笔 (冰清) 参考
审校 (Critique):
- 顾问 (罗永浩) 调用
scripts/review_toolkit.py(Critique模式) 生成体检报告 ([Critique_Report]*.md)。 - ⚠️ 强制参考:
knowledge/ai_smell_guide.md(Anti-AI Checklist)。 - ⚠️ 四层审校: 必须覆盖 L1 硬规则、L2 风格一致性、L3 内容成立度、L4 老友感终审;其中 L3/L4 不通过时,即使 L1/L2 全绿,也不得判定为
Pass。 - ⚠️ 方法论文章的额外检查项: 当文章类型为「方法论分享型」时(如「怎么创建 Skill」「写作工作流拆解」),L3 内容成立度审查必须包含:
- 数字与时间线核查:所有数字(十几个、几十轮、v0.1→v3.5.1 等)和时间锚点(一年前、半年前)必须对照
Raw_*.md原始素材或用户明确补充核实。禁止让 AI 直接编造数字。 - 破折号扫描:全篇破折号
——数量应为 0(全改成逗号或分句)。这是最常见的 AI 味暴露点。 - 「不是X是Y」句式扫描:检测并替换所有「不是...是...」「不是说...是...」反转句式,改为更自然的「是...不...」或口语化表达。
- 数字与时间线核查:所有数字(十几个、几十轮、v0.1→v3.5.1 等)和时间锚点(一年前、半年前)必须对照
- ⚠️ 中间产物落盘: 必须先写入文件,再在对话中汇报摘要。禁止跳过文件直接输出。
- ⛔ 审校完成后,不要直接修改文章,必须进入步骤 3 综改。
- 顾问 (罗永浩) 调用
综改 (Refine) ⚠️ 不可跳过:
- 主编 (呼延雷锋) 调用
scripts/review_toolkit.py(Directive模式) 生成综改指令 (Directive_*.md)。 - ⚠️ 中间产物落盘: 必须先写入文件,再在对话中汇报摘要。禁止跳过文件直接输出。
- 主笔 (冰清) 根据指令执行修改。
- 产出:
02_Draft.md(v2)。
- 主编 (呼延雷锋) 调用
🏁 Checkpoint 2 (STOP): 暂停并请求用户审核 02_Draft.md (正文内容)。如需配图,文本定稿后转 /draw。
L4 活人感终审(请在审核时同步完成): 读完全文,感觉是一个真实的人在认真聊一件打动他的事,还是一个 AI 在输出信息?
- 如果任何段落让你觉得"这段 AI 味太重了",指出具体段落。
- 重点关注:情绪表达是否像体感记忆("我当时就愣住了")而非知识性描述;有没有理中客的中立感;有没有只有 AI 才能编出来的案例细节。
Stage 3: 制作 (Production) —— 角色:制作人 (马可婷) —— 包装、传播、归档。
目标: 赋予文章传播力(标题、包装)。
定题 (Title):
- 主编 (呼延雷锋) 生成 4 个标题方案:
- SEO 关键词型(优先从
01_Plan.md的SEO 决策卡中选择已批准的词嵌入) - 情绪共鸣型(不卖焦虑)
- 问题共鸣型
- 反常识型
- SEO 关键词型(优先从
- 同时生成
slug(英文短链,用于 URL)
- 主编 (呼延雷锋) 生成 4 个标题方案:
包装 (Marketing):
- 制作人 (马可婷) 撰写摘要 (Excerpt)、转发语、Tags。
- ⚠️ SEO 消费规则: Excerpt 与 Tags 必须先读取
01_Plan.md的SEO 决策卡;若状态为skip SEO化,以自然表达优先;若为weak-signal,最多轻量吸收相关词,不得堆砌。 - 摘要规范: Excerpt 建议
<=45字(列表页更易读);硬上限<=120字(微信摘要字段限制)。在 Stage 3 产出时完成控制,禁止依赖 Stage 4 脚本截断。
视觉 (Visual):
- Handoff: 文本定稿后,请提示用户运行
/draw进行配图。
- Handoff: 文本定稿后,请提示用户运行
🏁 Checkpoint 3: 审核 03_Production.md (标题/摘要)。
Stage 4: 归档 (Archive) —— 角色:制作人 (马可婷) —— 包装、传播、归档。
目标: 发布准备完成,并沉淀团队记忆。
发布 (Publish):
- 调用
scripts/archive.py - 生成
published/[Title].md(Frontmatter 后直接接正文,无空行、无一级标题) - 移动整个
Project_[Title]/目录到conductor/archive/YYYYMMDD_[Title]/(非复制,To-be-used 下不保留) - 自动更新:
knowledge/published_article_index.md
- 调用
记忆 (Memorize):
- 主编 (呼延雷锋) 提议本次写作的新经验(Prompt 用户写入
knowledge/team_memory.md)。
- 主编 (呼延雷锋) 提议本次写作的新经验(Prompt 用户写入
🏁 Checkpoint 4: 确认归档完成。
🛠️ 脚本工具箱 (Scripts)
| 脚本 | 功能 | I/O 规范 |
|---|---|---|
scripts/cleaner.py |
保存清洗后内容 | 见 references/io_schema.md |
scripts/research.py |
格式化调研报告 (Input: JSON) | 见 references/io_schema.md |
scripts/review_toolkit.py |
批评、审读、指令生成 | 见 references/io_schema.md |
scripts/archive.py |
归档、索引更新 | 见 references/io_schema.md |
详细 JSON Schema 请参考
references/io_schema.md
📖 参考文档 (References)
references/core_personas.md: 5大核心角色人设详情(含首席记者)references/routine_sprout.md: 外部素材发芽规则references/routine_harvest.md: 批量收获规则references/template_seed.md: Seed 模板样例references/template_01_plan.md:01_Plan.md半空白示例样本references/wechat_index_research.md: 微信指数 SEO 调研 SOPknowledge/style_guide_david.md: 大卫个人写作风格knowledge/ai_smell_guide.md: 去AI味审校清单knowledge/wechat_index_keywords.md: 微信指数关键词积累库references/io_schema.md: 交付文件规范