davidlam-oss/wechat-writing-team/wechat-writer
Claude Code and agent skill by davidlam-oss/wechat-writing-team
- community
Checking that the SKILL.md file is still in the repository.
微信公众号写作全流程 Skill (v3.7.0),整合从选题定位到剪藏找料、素材发芽、再到归档的完整工作流。以「账号定位卡」(knowledge/account_positioning.md:4 条内容支柱 + 「个人与思考」标签组)作为选题与素材分拣的判据来源;Stage 1 内置「剪藏找料」从剪藏库(knowledge/_inbox/)按内容支柱为当前选题取外部素材;/sprout 的 trend 通道由「一律拦截」改为「归属检查 + 热点嫁接四问」有条件放行。归档脚本完全采用 Python 标准库操作,支持 SEO 关键词调研嵌入、博客与公众号 Frontmatter 规范(包含 50-100 字摘要、36 个官方白名单 Tags 挑选 2-4 个、Obsidian 专题页 frontmatter 归类及 obsidianSection 归档透传)、归档前图片 SEO 巡检,并包含 David 版选题质检、人机边界卡、主线回扣与 L3/L4 审校。支持 /interview(访谈挖掘)、/write(素材转化)、/sprout(外部素材发芽)和 /harvest(批量发芽)。当用户素材视角单一、只有感想没有人物/事件/案例支撑时,必须先绑定或创建目标项目,再使用 Seed 流程补素材,然后进入正文写作。
Install
npx vskill@latest install davidlam-oss/wechat-writing-team/wechat-writerSKILL.md
微信公众号写作系统 (WeChat Writer v3.7.0)
单一 Skill 驱动的自动化写作流水线。支持 "先聊后写" (Interview-First)、"素材转化" (Source-First)、用于补充外部视角的 Seed 发芽流程,以及每次开工自动从剪藏库取料的 剪藏找料 (Clip Scan)。
运行环境:脚本需要 Python 3.10+,纯标准库实现(writer 不依赖 Pillow,生图与图片规格验收由 wechat-director 完成)。所有脚本输入路径均相对当前调用目录,技能自身资源以技能根目录为基准解析;不依赖机器绝对路径,macOS / Windows / Linux 通用。
📍 核心理念
- 三种入口 + 一层前置能力 + 一个内置步骤:
- 访谈模式 (`/interview`): 解决冷启动,通过对话挖掘隐性知识和真实情绪。
- 素材模式 (`/write`): 解决转化率,将已有笔记/链接快速转化为文章。
- 发芽模式 (`/sprout`): 将外部人物、事件、故事加工成结构化 Seed,用来补足你的素材盲区。
- 批量发芽 (`/harvest`): 批量处理素材库中的候选素材。
- 剪藏找料 (Clip Scan): 不是入口,而是 Stage 1 的内置步骤——每次开始写作都从剪藏库按内容支柱为本次选题取外部素材。详见 Stage 1 步骤 0。
- Seed 只扩素材,不改文风: 外部 Seed 负责提供案例、反方视角和第一性问题;正文依然服从作者的第一人称真实感与风格约束。
- 5 角色协同: 首席记者 (Lyra) + 呼延雷锋(大脑) + 冰清(手) + 罗永浩(眼) + 马可婷(包装)
- 4 文件交付: 01_Plan -> 02_Draft -> 03_Production -> Published
- Vibe Writing: 坚持 "Think Aloud + 真实素材 + 外部发散 + 选题质检 + 三遍审校"
- 角色定义:见
references/core_personas.md
🏗️ 目录结构规范
工作区根
工作区根同时含 articles/ 与 published/(或位于 Obsidian vault 内、含 .obsidian/)。 解析顺序:`--workspace` 显式 > `WECHAT_WORKSPACE` 环境变量 > 当前目录结构标记 > source_file 向上结构标记 > 报错。 技能被安装到任何托管目录(~/.claude/skills、~/.codex/skills 等)都能正确定位,不再从脚本自身位置推算。
项目目录
所有工作在 articles/Project_[Title]/ 下进行:
发布产物统一位于工作区根: published/[Title].md + published/zpicture.assets/;运行数据位于 conductor/。
💡 Resume / Restart:任何时候重启任务,可使用/write "Title" --from-stage N从指定阶段继续。
💡 Long-Term Knowledge:可复用的 Seed 沉淀到工作区knowledge/seeds/;一次性 Seed 留在当前项目目录。
🚀 工作流总览
Pre-Stage: 发芽 (Sprout) —— 入口:/sprout / /harvest
角色: 主编 (呼延雷锋) —— 分类、补料、搭桥。
目标: 把外部世界的人物、事件、故事加工成可被作者风格吸收的结构化 Seed。
何时必须执行:
- 用户素材只有感想,没有具体人物、事件或故事抓手。
- 用户素材过于站在自己视角里,缺乏外部案例和反方视角。
- 文章需要补事实、案例、社会参照系,但现有素材库中没有现成条目。
操作流程:
- 绑定项目 (Project Binding):
- 若当前已处于某个
Project_[Title]上下文,直接继承该项目。 - 若是独立触发
/sprout或/harvest,优先读取project参数;若未提供,则回退读取title参数作为目标项目标题。 - 若目标项目不存在,先创建
articles/Project_[Title]/与_source/Seeds/。 - 若既没有当前项目上下文,也没有
project/title可用,暂停并向用户索取项目标题;默认不允许写 projectless Seed。
- 分类: 按
person / event / story / concept / trend分类,规则见references/routine_sprout.md。 - 拦截: 若输入是
concept,禁止直接进入正文写作,必须先追问具体人物、事件或案例。若输入是trend,走routine_sprout.md的 `trend` 嫁接通道(依据knowledge/account_positioning.md§7 四问):四问全过 → 降级为event/story放行;否则仍拦截。 - 发芽: 参考
references/template_seed.md生成Seed_[Topic].md,默认落到articles/Project_[Title]/_source/Seeds/。 - 沉淀: 若 Seed 有长期复用价值,再晋升到工作区
knowledge/seeds/。 - 衔接: 发芽完成后进入 Stage 1,由主编把 Seed 吸收进
01_Plan.md。
Stage 0: 访谈 (The Interview) —— 入口:/interview
角色: 首席记者 (Lyra) —— 挖掘、追问、倾听。
目标: 无论你有多少模糊的想法,通过 5-10 轮对话,生成一份丰满的素材文件。
操作流程:
- 启动: 用户输入
/interview [话题/想法]。 - 交互: Lyra 进行苏格拉底式追问(挖掘事实细节、情绪波动、反直觉观点)。
- 结案: 当用户表示"聊够了"或信息充足时,Lyra 自动整理访谈录。
- 产出:
- 创建项目目录
articles/Project_[Title]/ - 将整理好的内容写入
_source/Raw_[Title].md - ⚠️ 记录原则 (High Fidelity): 高保真。禁止对用户的回答做摘要或书面化润色。必须保留第一人称、口语语气词、情绪表达和断句。我们在这个阶段需要的是"生肉",不是"熟食"。
- 衔接:
- 自动进入 Stage 1,读取刚才生成的
_source/Raw_[Title].md开始策划。
Stage 1: 策划 (Plan) —— 角色:主编 (呼延雷锋) —— 策划、结构、决策。
目标: 无论输入多乱,输出一个坚实、经过验证的大纲。
- 初始化 (Init):
- 创建
articles/Project_[Title]/文件夹 - [素材模式] 将用户提供的原始素材文件移动到
_source/子目录(确保归档时一并迁移) - [访谈模式] 将 Stage 0 生成的
Raw_*.md保留在_source/子目录 - [Seed 模式] 若本次存在项目级 Seed,统一保存在
_source/Seeds/ - [剪藏找料 (Clip Scan)] —— 每次开始写作都跑一次,为本次选题从剪藏库捞相关素材:
- 位置: 工作区
knowledge/_inbox/(外部剪藏工具的落地区,可为软链接;不存在则跳过本步) - 先扫索引: 只读每篇的 frontmatter(
title/date/tags),不要先读正文。 - 再筛: 按
knowledge/account_positioning.md的内容支柱 + 本次主题匹配标题与 tags。 - 后读: 只对筛出的候选(建议 0–5 条)读全文。
- 落盘: 摘录到
_source/Clips_[主题].md,并在01_Plan.md的素材摘要中引用。 - 允许 0 条: 找不到相关素材时,明确写下「剪藏库无相关素材」后继续,禁止为凑数硬塞。
- 降级: 若
_inbox/不存在或为空,跳过本步并继续正常流程。
- 清洗 (Clean):
- 调用
scripts/cleaner.py保存 Agent 清洗后的中间文件 (Cleaned_*.md)。 - 主编 必须阅读
Cleaned_*.md,将其核心信息 吸收并写入01_Plan.md的 "素材摘要" 部分。
- 选题质检与人机边界 (Topic Gate):
- David-HKR 质检(必做): 用作者的语气判断本篇是否值得写,而不是为了完成流程硬写:
- 好奇感: 有没有一个具体场景、反常识细节或真实问题,让读者想继续看下去?
- 信息增量: 读者看完能不能多知道一点事实、方法、经验或判断?
- 共鸣感: 这件事是否能连接到读者自己的处境,而不只是作者自说自话?
> 及格线:至少满足两项。若只满足一项或完全不满足,先回到 /interview 或 /sprout 补素材,或请用户确认是否调整角度。
- 写入 `01_Plan.md` 固定区块 `选题质检卡`,至少包含:
- 好奇感:强 / 中 / 弱,以及具体钩子
- 信息增量:强 / 中 / 弱,以及新增价值
- 共鸣感:强 / 中 / 弱,以及对应读者处境
- 结论:继续 / 补素材 / 调整角度
- 人机边界卡(必做): 明确哪些内容来自作者,哪些可以由 AI 辅助,哪些禁止虚构:
- 作者原话与亲历:只能来自访谈、原始素材、旧文或用户明确补充
- AI 可辅助:事实核查、背景知识、类比候选、结构建议、表达润色
- 禁止虚构:第一手经历、关键情绪、人物关系、未验证数据、作者未说过的观点
- SEO 关键词调研 (SEO Research) ⚡:
- ⚠️ 必读:
knowledge/wechat_index_keywords.md(查积累库) - 以文章主题为种子词,调用微信指数搜索相关上升词
- 参考
references/wechat_index_research.md的 SOP 进行调研 - 产出:
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):
conductor/published_article_index.md(寻找旧文关联) - ⚠️ 必读 (Positioning):
knowledge/account_positioning.md(账号定位卡:四块内容支柱 + 「个人与思考」标签组、边界、热点嫁接四问。既是「剪藏找料」的筛选判据,也是选题质检卡的「共鸣感」参照——判断这篇是否落在本号支柱上) - ⚠️ 必读 (Inspiration):
knowledge/素材库.md(只放作者自己的观察、金句、体感;外部链接摘要一律不在这里) - ⚠️ 按需 (Clips):
articles/Project_[Title]/_source/Clips_[主题].md(「剪藏找料」摘出的外部素材) - ⚠️ 必读 (External Seeds):
articles/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 决策卡)。
🏁 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,仅允许自然使用,不强求标题或首段承载。 - 专注于作者的语气和心流,撰写正文。
- ⚠️ 引用旧文: 正文中引用已发布文章时,使用纯粹的
[[标题]]格式(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」句式扫描:检测并替换所有「不是...是...」「不是说...是...」反转句式,改为更自然的「是...不...」或口语化表达。
- ⚠️ 中间产物落盘: 必须先写入文件,再在对话中汇报摘要。禁止跳过文件直接输出。
- ⛔ 审校完成后,不要直接修改文章,必须进入步骤 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 决策卡中选择已批准的词嵌入) - 情绪共鸣型(不卖焦虑)
- 问题共鸣型
- 反常识型
- 同时生成 `slug`(英文短链,用于 URL)
- 包装与 Frontmatter (Marketing & Frontmatter):
- 制作人 (马可婷) 撰写摘要 (Excerpt)、转发语、挑选 Tags 并生成标准 Frontmatter。
- Frontmatter 生成规则:
- 包含
title,date(YYYY-MM-DD),slug,excerpt(50-100字),tags,cover,status: published。 - Tags 官方白名单规则:
tags必须从以下 36 个官方白名单中挑选 2-4 个,严禁自行创造标签:
- 知识管理类:
Obsidian,Obsidian入门,知识管理,Obsidian插件,笔记同步,Web剪藏 - AI与智能体:
AI Agent,AI模型,Claude Code,Codex,WorkBuddy,OpenClaw,提示词工程,MCP - 效率与工具:
效率工具,自动化,苹果生态,终端命令行,Raycast,Typeless,任务管理 - 编程与开源:
编程开发,AI编程,开源 - 创作与发布:
内容创作,微信公众号,WeChat Converter,多平台分发,排版与导出 - 运维与建站:
服务器运维,SEO与数据分析 - 个人与思考:
生活随笔,个人成长,职场思考,复盘与踩坑,副业与出海
- 摘要规范: Excerpt 控制在 50-100 字(兼顾个人主页列表页展示与微信后台限制,微信硬上限 120 字)。在 Stage 3 产出时完成控制,禁止依赖 Stage 4 脚本截断。
- ⚠️ SEO 消费规则: Excerpt 与 Tags 必须先读取
01_Plan.md的SEO 决策卡;若状态为skip SEO化,以自然表达优先;若为weak-signal,仅轻量吸收相关词,且所选 Tag 必须落在 36 个白名单内,不得堆砌。 - Obsidian 专题页规则:
- 如果文章主题和 Obsidian 明确相关,Frontmatter 的
tags必须包含Obsidian。 - 若文章适合按学习路径收录到 Obsidian 专题教程中,请额外添加
obsidianSection字段,取值范围必须为以下 8 个之一:
first-steps | basics | plugins-automation | advanced-organization | ai-workflow | collecting | sync-backup | publishing(阶段含义见 references/io_schema.md)。
- 如果文章属于系统教程系列,最终标题必须使用
Obsidian 入门70:文章标题这种格式,入门和数字中间不要空格。随笔或独立工具评测等非编号文章不得强行编号。
- 视觉 (Visual):
- Handoff: 文本定稿后,请提示用户运行
/draw进行配图。
🏁 Checkpoint 3: 审核 03_Production.md (标题/摘要)。
Stage 4: 归档 (Archive) —— 角色:制作人 (马可婷) —— 包装、传播、归档。
目标: 发布准备完成,并沉淀团队记忆。
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/wechat-writer/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/davidlam-oss/wechat-writing-team/wechat-writer)