公众号文章生成到草稿箱(v3 · 视频+文章双形态)
> 排版默认规范(重要):本技能默认采用 v2 爆款新媒体排版(references/layout-spec.md:系统无衬线字体、首行缩进 2 字符短段落、彩色小标题色块+emoji、金句高亮、文末转化卡片)。公文风排版(仅限仿宋/楷体/黑体等公文字体、28磅行距)严禁用于公众号文章,仅政府公文场景才使用。所有排版细节以 layout-spec.md 为准。
> v3 新策略(2026-08-30 起):纯图文流量易触顶。改为每天先搜最新资料 → 图文 + 一期竖版短视频(视频号)双形态互相导流。公众号未认证订阅号无法直接嵌视频,视频走视频号、文章文末引导回链。完整 SOP 见工作区 视频+文章双形态工作流模版.md,视频规格见 references/video_spec.md。
将「选题 → 写稿 → 配图 → 排版 → 配套视频 → 存入草稿箱」整条流水线封装为本技能。
只存草稿箱,不直接发表;发表由用户在公众号后台手动点击。
前置条件(工作区准备)
技能运行前,工作区根目录需具备:
wechat_credentials.env:含WECHAT_APPID与WECHAT_APPSECRET
(敏感,切勿提交仓库或明文粘贴;缺失则仅产出本地文件并提示手动发布)。wechat-articles/:文章与配图输出目录。
路径解析顺序:--workspace 参数 > 环境变量 WECHAT_WORKSPACE >
从当前目录向上查找含 wechat_credentials.env 的目录 > 当前目录。
因此在本工作区(或任意含上述文件的工作区)内运行即可,无需写死路径。
执行流程(视频+文章双形态)
1. 搜最新资料(飞轮第一环·爆款雷达,先于动笔)
- 先
WebSearch抓当天/本周时效热点:教育信息化、开学季、网络安全、数据安全、AI教育相关政策与新闻,提取可用事实、数据、案例与来源链接。 - 用「爆款雷达」看同赛道近期在追什么——高阅读高在看、评论区热议、同类账号扎堆三类信号;套用选题公式「高关注人群 + 强痛点/强新知 + 可讨论性」锁定流量洼地。
- ⚠️ 数据务必记来源链接,文末"来源说明"可直接挂官方链接增强可信、利于引流。
2. 确定主题与标题(四维量化 + 三候选 + 去重)
- 七方向轮换(教育信息化 / 网络安全 / 信息安全 / 人工智能 / 数字安全 / 数据安全 / AI教育,
参见references/layout-spec.md第一章),每天一个明确角度;结合步骤1热点锁定。 - 先出 至少 3 个候选,按四维评分择优——点击力、传播力、吸引力、合规性:
数字体(「3 个被忽视的校园数据漏洞」)、悬念体(「这份通报,校长看完沉默了」)、
身份体(「体制内老师必看的 5 条红线」)、反差体(「花 50 万防的,其实免费就能做」)。 - 红线:杜绝标题党,标题承诺必须文中有兑现;不夸大、不涉敏感。
- 去重硬规则:扫描
wechat-articles/*.html的<title>与各.md首行#,
确认最终标题与历史文字与语义均不重复;雷同则换角度或换表述,直到唯一。最终 18–28 字。
3. 撰写正文(融入最新资料)
- 800–1500 字;爆款结构 = 钩子开头(前3行定生死,直接抛冲突/结果/反常识)→
扎实主体(3–4 小标题板块,每板块一个信息点)→ 有力结尾(情绪共鸣/行动召唤)。 - 传播:制造「社交货币」:把专业结论翻成「普通人能用的防坑指南」,提升转发率。
- 段落首行缩进 2 字符(
text-indent:2em)、≤3–5 行,严禁顶格不缩进;每 3–5 行至少一处加粗/主色突出,服务「扫读」。 - 双引号一律中文全角"(发哥硬规则):标题与正文所有双引号必须用中文全角(" "),
禁止半角";HTML 标签属性(style="…"、src="…"、alt="…")内半角引号必须原样保留。
发布脚本wechat_publish.py已内置normalize_quotes兜底(仅转换正文文字节点、不动标签属性)。 - 文末必须含「来源说明(可挂官方链接)/ 免责声明 / 关注引导」卡片 + 视频号同步引导句。
来源说明固定文案见 layout-spec 第十一章。 - 引用他人内容必须列出来源(发哥硬规则,2026-08-31 起长期有效):凡正文引用、转述、摘编或取数据/案例自他人的文章、报道、官方通稿、研究报告,必须在文末卡片内单列「本文引用」清单,逐条给出文章标题 + 可点击链接(或明确出处)。该清单与「来源说明」固定文案互补(前者是具体来源、后者是免责声明),缺一不可。数据来源链接应在步骤1搜资料时就记为
来源链接,写稿时直接挂入。
4. 生成并裁剪配图
- 每个标题一张图:1 张封面 + 各小标题板块各 1 张(扁平插画 / 信息图风格)。
文件名:wx_<DATE>_cover.png、wx_<DATE>_sec1.png…,保存到wechat-articles/。 - 串行生成 ImageGen(防同名前缀碰撞,各 prompt 开头词互异),
output_dir直落wechat-articles/。 - 生成后裁水印:
python <skill>/scripts/wechat_crop_watermark.py wx_<DATE>_cover.png wx_<DATE>_sec1.png ...
得到wx_<DATE>_cover_clean.png等。图片只呈现图片本身,每张图下方加一句浅灰图注,不写占位提示文字。
5. 配套短视频(视频+文章双形态关键新增)
- 主题与文章一致,用 VideoGen 生成竖版 9:16、15 秒、720P 短视频(视频号推荐竖版;横版 16:9 不推荐)。
画面分段对应文章小标题,扁平插画风,与配图视觉一致。输出wx_<DATE>_video.mp4。 - 配音:写旁白文案(匹配画面、约 15 秒口语化口播),用技能脚本一键加配音:
bash python <skill>/scripts/gen_video_voice.py wx_<DATE>_video.mp4 "旁白文本或txt路径" wx_<DATE>_video_vo.mp4
脚本内部:edge-tts 生成 mp3(venv 的 edge-tts)→ ffmpeg 画面 copy + aac 混流。产出wx_<DATE>_video_vo.mp4(带配音成品)。 - ⚠️ 视频号发布规范、配音音色、旁白写法见
references/video_spec.md。
6. 组装 HTML(微信兼容、内联 style)
- 读取
references/layout-spec.md第三章起的品牌色板、字体、字号与「可直接套用 HTML 组件库」。 - 拼装:首屏引导 → 主标题 → 封面图+图注 → 小标题色块+正文+高亮块+金句块(每板块一图+图注)→ 文末卡片(含视频号引导)。
- 所有
<img src>必须写wx_<DATE>_xxx_clean.png(发布脚本按文件名上传替换)。全文内联 style,不依赖 class。
7. 落盘
写入:
- wechat-articles/<DATE>.html(含完整内联样式)。
- wechat-articles/<DATE>.md(同内容纯文本版,便于复制)。
- 视频:wechat-articles/wx_<DATE>_video_vo.mp4(带配音成品,发视频号用)。
8. 推送草稿箱(+ 视频号发布)
- 文章:运行发布脚本
python <skill>/scripts/wechat_publish.py [YYYY-MM-DD] [--workspace PATH] [--dry-run]
脚本会:读凭据 → 获取 access_token → 上传本地_clean.png取回 url/media_id →
将 HTML 中本地 src 替换为微信图片 url → 调用draft/add存入草稿箱(封面图 media_id 作 thumb_media_id)。
--dry-run只做上传与替换检查,不真正建草稿。 - 视频:微信草稿箱无法直接嵌视频(需视频号 / 腾讯视频 URL)。由发哥把
wx_<DATE>_video_vo.mp4发到视频号;文章文末已写"同名视频号同步讲解版"引导,发视频号后回填链接或作为阅读原文。 - ⚠️ IP 白名单(高频坑):推送若报
40164 invalid ip X.X.X.X not in whitelist,
说明出口 IP 漂出白名单。路径:公众号后台「设置与开发 → 基本配置 → IP白名单」加入报错中的确切 IP
(建议加段如116.248.71.0/24);根治需固定出口 IP。加好后重跑本步即可。
9. 汇报
向用户简要汇报:今日主题、标题(含四维评分与候选说明)、最新资料来源、图片 + 视频 + 配音完成情况、
草稿箱是否创建成功(返回 media_id)、以及任何失败原因(含 IP 白名单提示)。若凭据缺失则提示「未配置公众号凭据,需手动发布」。
- 复盘建议(飞轮第六环):提醒发哥发后盯三数——打开率(标题/封面)、读完率(结构)、转发率(传播),
哪环掉链子下次就调哪环,数据回流选题飞轮。⚠️ 本号为未认证订阅号,datacube 接口返回 48001 无权调用,精确数据需发哥提供后台图文分析截图/数字。
配套文件
scripts/wechat_publish.py:上传图片 + 替换 src + 存草稿箱(支持 --workspace / --dry-run)。scripts/wechat_crop_watermark.py:裁 ImageGen 图右下角水印。scripts/normalize_quotes.py:发布前正文半角引号归一为全角(兜底)。scripts/gen_video_voice.py:edge-tts 生成旁白 + ffmpeg 混流,给无声视频加配音。references/layout-spec.md:完整排版与发布规范(品牌色、字体、组件库、标点、流程)。references/video_spec.md:视频生成 + 配音 + 视频号发布规范。
注意
- 只存草稿箱,不自动发表。
- 凭据为敏感信息,绝不外泄或明文出现在对话/仓库中。
- PIL 缺失时先
pip install pillow再跑裁剪脚本;edge-tts 缺失时pip install edge-tts。 - ImageGen 并行易撞名,务必串行 + 各 prompt 开头词互异;
output_dir直落wechat-articles/防丢失。