公众号文章全流程管线 (Wechat Article Pipeline)
概述
本 Skill 是一个流程编排器,不包含具体的写作方法论或配图规则。它的职责是:
- 按正确的顺序串联各个阶段
- 在每个阶段加载对应的子技能来完成具体工作
- 在需要用户决策的节点暂停等待
- 全程追踪进度,确保不跳步、不遗漏
子技能依赖
| 阶段 | 子技能 | 用途 |
|---|---|---|
| 选题 & 标题 | wechat-writing-system |
选题库管理、标题公式、热点借势策略 |
| 骨架搭建 | writing-mastery |
十步深度认知框架(受众画像→场景代入→痛点→概念→证据→验证→极限→实操→对比→迁移→成长) |
| 正文写作 | writing-mastery |
段落规则、句子节奏、金句密度、IP植入原则 |
| 三轮审查 | wechat-writing-system |
结构/表达/传播三维审查,9.0分准出 |
| 配图分析 | article-illustrator |
分析文章结构,确定配图类型、数量、位置 |
| 封面图 | cover-image |
5维度封面图生成(类型×色板×渲染×文字×情绪),2.35:1 宽屏 |
| 正文配图 | image-gen |
AI 图片生成,支持 Seedream/即梦等多后端 |
| 图片压缩 | compress-image |
压缩到 WebP/PNG,确保 <500KB 微信上传稳定 |
| 人性化处理 | humanizer-zh |
24种AI写作模式检测,去AI味,提升真实感 |
| 推送发布 | wechat-publisher |
API 推送到公众号草稿箱(失败自动切浏览器备用) |
执行流程(6 个阶段)
Phase 1:选题与标题
> 加载子技能:wechat-writing-system
按 wechat-writing-system 的 Phase 1(选题)和 Phase 2(标题)执行:
- 向用户确认:选题方向、目标读者、核心角度
- 根据选题自动匹配建议字数:
- 超长文 8000-12000 字(完整方法论/大型复盘)
- 长文 3000-5000 字(方法论/系统性讲解)
- 中文 1500-2500 字(经历复盘/工具教程/案例分析)
- 短文 500-800 字(观点/问答/热点评论) - 生成 3 个标题备选,标注公式和推荐理由
- ⚠️ 暂停,等待用户选择标题
Phase 2:骨架搭建
> 加载子技能:writing-mastery
按 writing-mastery 的十步深度认知框架搭建骨架。每步用 1-2 句关键词记录,不写正文:
第0步 受众画像:写给谁?最抗拒什么?读完该做什么?
第1步 场景代入:具体场景,3句话内拉读者进来
第2步 痛点暴露:1个最痛的错误理解 + 1个致命反例
第3步 概念定义:一句话定义 + 三层次(是什么/不是什么/易混淆)
第4步 证据链:数据 + 案例 + 反面教材
第5步 场景验证:2-4个场景,至少1个让读者"啊哈"
第6步 极限测试:什么时候不该用?常见误用?
第7步 实操框架:3步以内的可执行清单 + 最小行动
第8步 对比冲击:有vs没有 / 新手vs高手,必须有数据
第9步 思维迁移:元认知 + 能迁移到哪些领域
第10步 成长路径:入门/进阶/硬核书单
确认骨架逻辑通顺后,进入正文写作。
Phase 3:正文写作
> 继续使用子技能:writing-mastery
基于 Phase 2 的骨架,逐节展开正文。遵守 writing-mastery 的写作规范:
- 每段不超过 3 行(手机屏幕友好)
- 每段第一句话有"拉力"
- 每 3-4 句插入 1 个技巧句(短句/问句/转折句)
- 全文至少 5-8 个可截图金句
- 第一人称叙述贯穿全文
- 工具/热点词自然融入,说具体名字
Phase 3.5:人性化处理
> 加载子技能:humanizer-zh
正文完成后、三轮审查前,对全文执行去 AI 味处理:
- 模式扫描:按 humanizer-zh 的 24 种 AI 写作模式逐项扫描,标记所有疑似痕迹及其位置
- 分级处理:
- 高频模式(否定式排比、三段式法则、AI 高频词汇)→ 逐处改写
- 结构模式(破折号过度、谄媚语气、通用积极结论)→ 重点清理
- 段落模式(开头套话、结尾概括、过渡僵硬)→ 逐段优化 - 改写原则:删填充、破公式、变节奏、信读者、删金句(参考 humanizer-zh 五大核心原则)
- 质量评分:按 humanizer-zh 的 5 维度评分体系(自然度/个性度/节奏感/精简度/说服力,各 10 分,满分 50),自评打分
- ⚠️ 综合分 ≥ 35/50 才允许进入 Phase 4。 不达标则返回修改,最多迭代 3 轮。第 3 轮仍不达标则标注「当前最佳」并继续进入审查
Phase 4:三轮审查
> 加载子技能:wechat-writing-system(Phase 6)
按 wechat-writing-system 的三轮审查流程执行:
第一轮:结构审查 — 十步框架完整性、逻辑连贯性、论证力度
第二轮:表达审查 — 段落拉力、句子节奏、金句密度、段落拆分
第三轮:传播审查 — STEPPS六要素、热点/IP植入、结尾引导力
综合评分计算公式:Σ(各项得分 × 权重)
⚠️ 综合分 ≥ 9.0 才允许进入配图阶段。 不达标则返回修改,最多迭代 5 轮。
Phase 5:配图生成
> 依次加载子技能:article-illustrator → cover-image → image-gen → compress-image
5.1 配图分析 → article-illustrator
分析文章结构,确定:
- 配图类型(infographic/scene/flowchart/comparison/framework/timeline)
- 配图数量(根据文章类型和字数,一般 2-4 张)
- 配图位置(标记在正文的哪些段落之后)
- 视觉风格和色板
5.2 封面图 → cover-image
- 尺寸:2.35:1 宽屏(推荐 3072×1308)
- 必须包含:主标题 + 副标题 + 视觉元素
- 风格与正文配图协调
5.3 正文配图 → image-gen
- 后端优先级:Seedream(doubao-seedream-5-0-260128)→ 即梦 → 其他可用后端
- 关键参数:
size使用 WIDTH×HEIGHT 格式,像素数 ≥ 3,686,400 - 正文配图推荐 2560×1440(16:9)
5.4 图片压缩 → compress-image
- 宽度 > 2000px 时缩放至 2000px 宽
- 转换为 JPG,quality=85
- 目标单张 < 500KB,确保浏览器方法粘贴稳定
- 更新 Markdown 中的图片引用为
.jpg
Phase 6:推送发布
> 加载子技能:wechat-publisher
推送策略(两种方法,自动降级):
方法 A — API 推送(优先):
- 使用 wechat-publisher 的 API 模式
- 指定主题色和封面图
- 如果返回 40001 / IP not in whitelist / invalid ip → 自动切方法 B
方法 B — 浏览器推送(备用):
- 使用 wechat-publisher 的浏览器模式
- ⚠️ 浏览器方法可能不支持封面图参数,推送完成后提醒手动设置封面
推送完成后,如果发布的是新文章(非更新),询问是否需要同时推送到微博/X/小红书。
错误处理
| 问题 | 处理方式 |
|---|---|
| 标题用户不满意 | 重新生成 3 个,直到用户选中 |
| 三轮审查 < 9.0 | 返回修改,最多迭代 5 轮;第 5 轮仍不达标则标注"当前最佳"并建议发布 |
| 图片生成失败 | 换提示词重试;换后端重试;仍失败则降低质量要求 |
| API 推送 IP 白名单 | 自动切浏览器方法,并提醒用户添加 IP 到白名单 |
| 浏览器推送图片异常 | 检查图片是否压缩到 < 500KB,重试 |
| 子技能不可用 | 提示用户安装缺失的子技能,给出名称和安装方式 |
边缘场景处理
> 评测反馈:常见问题有预案,但文档没写到的情况不知怎么处理。
> 本节覆盖所有「不在常见问题列表里、但实际会遇到」的场景。
通用兜底原则
当遇到文档没有明确覆盖的情况时,遵循四步兜底:
- 识别 → 明确告诉用户遇到了什么问题,不要含糊跳过
- 降级 → 自动尝试最保守的替代方案(降低精度/换方法/跳过非核心步骤)
- 透明 → 告诉用户做了什么降级、为什么降级、可能的影响
- 确认 → 降级影响较大时,暂停等用户确认再继续
Phase 1 边缘场景
| 场景 | 检测条件 | 处理策略 | 用户提示语 |
|---|---|---|---|
| 选题太模糊 | 用户只说「写篇关于AI的」或「随便写一篇」,无法锁定角度 | 按「热点借势→痛点切入→IP观点」3个方向各给1个具体选题建议,让用户选 | 「你的选题方向比较大,我帮你缩小范围。以下3个角度你觉得哪个最想写?」 |
| 选题含敏感内容 | 话题涉及政治敏感、领导人、重大灾难等 | 礼貌建议换个角度,提供3个安全替代选题 | 「这个话题在公众号平台可能有限制,换个安全角度效果更好。试试这些?」 |
| 用户中途改选题 | 骨架搭完/正文写到一半时,用户说「我想换个话题」 | 记录已完成内容到记忆,询问:是推翻重来还是基于原骨架换切入点 | 「你已经走到Phase X了。是要完全重写,还是在现有骨架上换个切入角度?」 |
| 标题全部不满意 | 连续2轮生成的6个标题都不选 | 询问用户心中的标题方向或关键词,基于用户线索定向生成 | 「6个标题都没中意?告诉我你想要的标题关键词或风格,我精准生成。」 |
| 用户已有一篇草稿 | 用户说「我写了半篇,帮我继续」或贴入已有文本 | 判断草稿质量:若结构完整→直接进审查;若只有素材→提炼骨架后继续 | 「你已有XX字草稿。看起来骨架XX(完整/不完整),建议从Phase X继续。」 |
Phase 2 边缘场景
| 场景 | 检测条件 | 处理策略 | 用户提示语 |
|---|---|---|---|
| 话题不适合十步框架 | 情感叙事、纯操作清单、纯观点表态——十步框架会让这类文章变得刻板 | 判断文章类型,切换对应变体:叙事→9步复盘型;操作→清单型;观点→破立练收型 | 「这个话题更适合XX框架,十步框架会让它变刻板。我用XX框架搭骨架。」 |
| 骨架逻辑不通 | 步骤之间断裂、概念→证据跳跃太大、第8步对比没有数据 | 标出断裂点编号,建议补充或删除,让用户选择 | 「骨架第X→Y步之间逻辑断裂,建议[补充过渡/删掉Y步]。你怎么看?」 |
| 用户想修改骨架 | 用户对骨架某步说「这步不对/换个说法」 | 只改该步,不动其他步骤,改完后重新检查逻辑连贯性 | 「改好了第X步。我检查了前后逻辑,[连贯/需要微调Y步]。确认后继续。」 |
Phase 3 边缘场景
| 场景 | 检测条件 | 处理策略 | 用户提示语 |
|---|---|---|---|
| 文章被截断 | 输出突然中断、最后一段只有半句话、总字数远低于目标 | 立即告知截断位置,从截断点续写,合并为完整版 | 「文章在XX处被截断了,我从那里续写补完。」 |
| 字数严重偏离 | 实际字数偏离目标±50%(目标3000字只写了800字,或写了7000字) | 偏少→展开薄弱段落、增加案例;偏多→删重复论证、压缩过渡段 | 「当前XX字,目标XX字。[偏少→我会展开薄弱段落;偏多→我会压缩冗余部分。]」 |
| 写作风格漂移 | 前半口语后半学术、金句密度忽高忽低、IP视角突然消失 | 重新执行Phase 3.5的人性化处理,重点修正漂移段 | 「文章后半段风格变了,我重新做人味检测,修正风格漂移。」 |
| 用户要注入特定内容 | 用户说「加上这段数据/引语/案例」 | 确认注入位置(哪个步骤/段落),融入后检查该段逻辑是否仍然连贯 | 「你提供的内容我加在第X段。检查了前后逻辑,[连贯/需要微调]。确认?」 |
Phase 3.5 边缘场景
| 场景 | 检测条件 | 处理策略 | 用户提示语 |
|---|---|---|---|
| 3轮人味化仍<35分 | 迭代3轮后综合分仍低于35/50 | 标注「当前最佳」,列出剩余问题点,让用户决定是否手动修改 | 「3轮人味化后最高XX分。剩余问题:[列表]。你可以手动修改这些点,或按当前版本继续。」 |
| 原文已很自然 | humanizer扫描发现AI痕迹<3处 | 轻度处理即可,不过度改写。评分通常直接≥40 | 「你的文章已经很自然,只做了2处微调。人味分XX/50,直接进入审查。」 |
| 技术术语被误改 | humanizer把行业术语当作AI高频词删掉(如「降维」「范式」「闭环」) | 人味化后回检术语是否被误删,恢复行业必要术语 | 「人味化时XX术语被误删了,我已恢复。行业术语不算AI味。」 |
Phase 4 边缘场景
| 场景 | 检测条件 | 处理策略 | 用户提示语 |
|---|---|---|---|
| 分数卡在8.5-9.0 | 连续3轮审查分数在8.5-9.0区间,始终差0.x | 定位扣分最多的维度,针对性修改该维度,不再全面改 | 「分数卡在XX分。扣分最多的是[维度],我只改这部分,不全面重写。」 |
| 用户要自定义审查标准 | 用户说「我不关心传播力,重点看逻辑」 | 按用户要求调整权重:降低不关心维度权重至0.1,提高重点维度权重至0.4 | 「按你的要求调整了审查权重:[逻辑]权重提高到XX,[传播]降低到XX。」 |
| 审查发现敏感表述 | 文章中出现可能触发平台审核的表述(如涉及政策批评、领导人等) | 标出具体位置和风险等级,建议替换表述或删除段落 | 「第X段有敏感表述风险:[具体内容]。建议[替换表述/删除],避免平台审核问题。」 |
Phase 5 边缘场景
| 场景 | 检测条件 | 处理策略 | 用户提示语 |
|---|---|---|---|
| 首次使用未配置EXTEND.md | image-gen/article-illustrator找不到EXTEND.md | 自动触发first-time-setup流程,用AskUserQuestion收集配置,保存后继续 | 「首次配图需要设置一下。我会引导你完成配置,2分钟搞定。」 |
| API配额耗尽 | 后端返回quota exceeded / 429 / rate limit | 告知配额状态,换备选后端,若无备选→建议稍后再试或检查API key余额 | 「当前后端配额已满,切换到[备选后端]。如无可用后端,建议X小时后再试。」 |
| 图片触发内容审核 | 后端返回content policy violation / blocked | 告知被拦截的prompt关键词,建议替换敏感描述后重试 | 「图片生成被内容审核拦截了。疑似触发词:[关键词]。换个描述重试?」 |
| 所有后端同时不可用 | Seedream、即梦、其他后端全失败 | 降级为纯文字版(无配图),告知用户稍后可单独补配图 | 「所有图片后端当前不可用。我先发布纯文字版,配图可以后续单独补。」 |
| 封面图文字渲染模糊 | 封面图上的标题文字不清晰 | 降低文字层级复杂度(减少副标题/装饰文字),或改为纯视觉封面+手动添加标题 | 「封面图文字渲染不清晰,我改用纯视觉封面,标题在发布时手动添加。」 |
| 图片风格与文章不搭 | 配图风格偏科技但文章是情感叙事 | 检测文章类型自动匹配风格预设:叙事→scene/warm;技术→infographic/blueprint | 「配图风格和文章类型不匹配,我调整为[XX风格]重新生成。」 |
| 输出目录不存在 | 目标保存路径不存在 | 自动创建目录后继续 | 「配图目录不存在,我已自动创建。」 |
| bun/npx 未安装 | 运行图片脚本时报 bun not found | 尝试 npx -y bun 作为备选,若也不可用→提示安装bun并给出安装命令 | 「图片生成需要bun运行环境。请运行:npm install -g bun 或我帮你用npx备选模式。」 |
Phase 6 边缘场景
| 场景 | 检测条件 | 处理策略 | 用户提示语 |
|---|---|---|---|
| 首次使用未配置凭据 | EXTEND.md中没有app_id/app_secret,.env也没有 | 自动触发wechat-publisher的first-time-setup,引导用户配置凭据 | 「首次发布需要配置公众号凭据。我会引导你设置app_id和app_secret,3分钟搞定。」 |
| Chrome未安装 | 浏览器方法报Chrome not found | 建议安装Chrome或改用API方法,给出Chrome下载链接 | 「浏览器方法需要Chrome。你可以安装Chrome,或配置API凭据用API发布。」 |
| 微信平台驳回文章 | 返回40001/内容违规/标题重复 | 按错误码处理:IP白名单→切浏览器;内容违规→标出问题段落让用户修改;标题重复→建议修改标题 | 「微信平台返回:[错误码]。原因:[具体原因]。建议:[处理方案]。」 |
| 同标题草稿已存在 | 发布时发现草稿箱已有同名文章 | 询问用户:覆盖旧草稿还是改标题新建 | 「草稿箱已有同名文章。你要覆盖旧版还是改标题新建一篇?」 |
| Markdown格式在微信异常 | 发布后文章格式乱(表格不显示、代码块消失、图片链接失效) | md-to-wechat脚本自动处理常见格式问题;仍有异常→手动调整 | 「微信端有XX格式问题。我会用wechat-publisher的格式转换脚本重新推送。」 |
| 用户想定时发布 | 用户说「明早8点发」「定时发布」 | 微信API不支持定时发布,推送为草稿后告知用户手动定时 | 「已推到草稿箱。微信平台定时发布需手动操作:草稿箱→选择文章→定时发布→设时间。」 |
| 浏览器方法登录态失效 | Chrome CDP报登录过期/cookie失效 | 提醒用户重新扫码登录公众号后台,然后重试浏览器方法 | 「公众号登录状态过期了。请扫码重新登录,登录后我再推送。」 |
跨阶段边缘场景
| 场景 | 检测条件 | 处理策略 | 用户提示语 |
|---|---|---|---|
| 会话中断恢复 | 用户说「继续昨天的文章」「上次写到哪了」 | 读取工作记忆,恢复到中断的Phase,从断点继续 | 「上次你走到了Phase X(XX阶段)。我从那里继续,还是你想从头开始?」 |
| 用户要跳过某阶段 | 用户说「不用搭骨架」「直接配图」「跳过审查」 | 评估跳过风险,给出警告,如果用户坚持→执行跳过但在最终输出标注 | 「跳过[阶段]可能导致[风险]。你确认要跳过吗?最终输出会标注此步骤被跳过。」 |
| 用户要回退某阶段 | 用户说「标题不满意想重新选」「骨架要改」 | 回退到指定Phase重新执行,后续Phase标记为「待重新执行」 | 「回退到Phase X重新[操作]。Phase X+1到X+N需要重新执行。」 |
| 网络超时 | API调用超过60秒无响应 | 重试1次,仍超时→告知用户当前网络不稳定,建议稍后再试 | 「网络响应超时,重试1次。如仍超时,建议检查网络后稍后再试。」 |
| Windows环境差异 | 脚本路径用反斜杠、PowerShell语法不同 | 所有脚本路径统一用正斜杠,EXTEND.md检查用PowerShell版本 | 「检测到Windows环境,已自动调整脚本路径格式。」 |
输出规范
完成后向用户输出:
- 文章标题(最终选用版本)
- 文章评分(三轮审查综合分)
- 金句列表(加粗过的 ≥ 5 处)
- 配图说明(封面 + 正文配图的数量、类型、内容描述)
- 发布状态(草稿箱 appmsgid 或浏览器方法状态)
- 待办提醒(如:需手动设置封面、IP 白名单配置等)
关于记忆
每次执行完管线后,在工作记忆中记录:
- 文章标题和评分
- 推送状态(appmsgid 或浏览器方法)
- 遇到的问题及解决方案
方便后续调用时参考迭代。
参考文档
- 常见问题(FAQ): 遇到报错或不确定怎么用?参考专家包文档中的 FAQ.md
- 完整文档: 各子技能详情见
skills/目录下各子技能的 SKILL.md