下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/reexin--wechat-hotpoint-articles.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @reexin/wechat-hotpoint-articles。公众号热点评论爆款文章生产线(wechat-hotpoint-articles):输入一个热点事件 / 人物 / 关键词,自动跑通「爆款检测 → 选题判断 → 标题生成 → 起承转合框架 → 多源检索 → 写正文 → 价值观升华 → 多风格排版推送」完整链路,最终产出可直接推公众号草稿箱的兼容 HTML + Markdown 源文。
内置无印良品 / 连线杂志 / 纽约客 / 瑞士国际四套排版风格。适合公众号运营、内容团队、写作博主做热点追评与爆款生产。
阅读全文 (展开查看完整说明)
概述
把「热点检测 → 热点评论生产 → 多风格排版推送」完整链路折叠进一个 skill,对外只暴露一个入口。本文件上半段是「创作链路」(第 1–7 步:搜热点、选题、标题、框架、检索、写正文、升华),下半段是「排版推送能力」(第 8 步,内联四套风格规范全文 + 复用 push_draft.py)。
与 mparticle-mulstyle-pline 的关系:两者是不同产品。mparticle-mulstyle-pline 是独立上架的免费排版工具;本 skill 在其基础上内置了同款四套排版风格(无印良品 / 连线杂志 / 纽约客 / 瑞士国际),规范全文写在本文件下半段,不依赖外部 skill 文件。
推送账号通用:push_draft.py 从本目录 config.json 读 WX_APPID / WX_SECRET,推到用户自己配置的公众号,不写死任何账号名或作者名。
设计原则
- 热点由 AI 自动搜,用户只选不搜:触发即弹来源/领域问卡 → 方式A(默认)AI 搜热点:先 WebFetch 抓百度热搜榜
https://top.baidu.com/board?tab=realtime(方法1优先,榜单天然是热点,按热度值排序,不需额外判断);若热搜榜抓取失败则自动降级 WebSearch 交叉验证(方法2兜底:同一事件在 2 个以上搜索关键词结果里都出现才确认热点,只出现一次不选)→ 按领域过滤取前 5–8 个弹问卡让用户选(默认第一个)→ AI 用 WebFetch 抓选定事件正文 → 汇总成结构化素材。方式B:用户自带关键词时 WebSearch 搜该词相关新闻 → 弹问卡让用户选/直用 → WebFetch 抓正文。不要求用户自己找素材、不擅自定方向。 - 严禁编造事实:正文所有数字、人物、事件、法条必须来自多源检索交叉验证(见第五章),不能凭印象编。
- 四套排版规范的唯一来源 = 本文件下半段「四套风格规范」。排版时严格按所选风格章节执行,不引用外部 skill 文件。
- 升级某套精美度:只改本文件下半段对应风格章节,上半段创作链路不动。
- 付费门已启用:本技能为收费版,走自建
credits_server(pay.reexin.cn 点数制),每次生成文章扣 65 点。触发后先自检 API Key → 扣点确认 → 跑第 1–8 步 → 失败退点。交互话术(启动自检 / 扣点确认 / 进度反馈 / 失败返点 / 首次声明 / 退出码)见下方「付费门」章节。 - 弹问卡两轮制(硬约束):
AskUserQuestion一张卡最多 4 个问题,且"还没看到素材就让用户定风格"容易选错。因此分两轮收参数,严禁一张卡塞 5 项:- 第 1 轮(第 1 步开头,搜素材前):3 问 —— 来源 + 领域(仅方式A)+ 是否推草稿箱
- 第 2 轮(第 2 步结尾,素材与角度都出来后):3 问 —— 角度 + 风格 + 标题方式(与"选角度"合并成一张卡,少打断一次)
- 第 3 次弹卡(第 8 步,仅推送时需要):2 问 —— 封面 + 插图
风格与标题放在看到素材之后问,用户决策更准(避免"热点是娱乐八卦却开头选了连线科技风");推送意图放第一轮,是因为它决定第 8 步要不要再问封面。
付费门(已启用 · 产品已验证通过)
⚠️ 状态:产品 8 步链路已端到端验证通过(新用户测试跑通),
credits_server(https://pay.reexin.cn)已上线。本技能为收费版,每次生成文章扣 65 点,触发即走付费门:自检 API Key → 扣点确认 → 第 1–8 步 → 失败退点。
本技能走自建 credits_server(pay.reexin.cn 点数制),非 SkillHub X402。标准架构(落在本技能目录):
config.json:API_KEY(必填,去 https://pay.reexin.cn/recharge 获取——PC 浏览器直接打开即可游客扫码充值,支付成功后自动生成账号与 API Key;微信内打开走 JSAPI 支付体验更佳)+SERVER_URL(默认 https://pay.reexin.cn)scripts/credits_sdk.py:点数平台客户端(consume / refund / balance),from_config()自动向上找 3 层父目录读 config.json,仅用标准库、零依赖。内部提供ConsumeSession(一次创作任务 = 一个会话,固定client_request_id,重试复用防二次扣点)scripts/check_payment.py:技能执行前扣点。内部用ConsumeSession(skill="wechat-hotpoint-articles"),成功往 stdout 打印{"invocation_id":..., "client_request_id":..., "balance_after":...}后退出 0;不传 points(服务端按 skill 配置定,安全约定)。Key 无效sys.exit(3)、点数不足sys.exit(4)、其他异常sys.exit(1)scripts/refund_payment.py <invocation_id>:生成失败时退点,成功退出 0;自身失败退出 5- 当前定价(2026-09-05 调整):wechat-hotpoint-articles = 65 点/次(固定,服务端 skills 表配置;原 60 点/次)。三档套餐:体验包 200 点 ¥1.9(原价¥3.9)/ 标准包 1000 点 ¥9.9(原价¥19.9)/ 超值包 4000 点 ¥19.9(原价¥39.9)。
执行顺序(agent 必须照做):
- 启动自检(见下方「一、启动自检」):读 config.json 的 API_KEY。无 Key / Key 失效 → 停下引导获取,绝不继续。
- 扣点确认(见下方「二、执行前扣点确认」):先告知本次扣 65 点 + 当前余额 + 扣后余额,等用户确认(说"继续/可以")才跑
python scripts/check_payment.py。 - 退出码非 0(3/4/1)→ 立刻停下,按下方退出码话术表告知用户,引导去 https://pay.reexin.cn/recharge 拿 Key / 充值(PC 浏览器直接扫码即可,无需微信内打开)。绝不绕过、绝不免费跑后续步骤。
- 扣点成功(退出 0),才跑第 1–8 步创作链路。
- 第 1–8 步任何环节生成失败(无可用成稿 / 报错 / 用户中止重来)→ 按下方「四、失败返点明确告知」跑
python scripts/refund_payment.py <invocation_id>退点,并明确告知用户。
一、启动自检(技能触发第一动作)
读 config.json 的 API_KEY:
| 情况 | agent 动作 | 话术 |
|---|---|---|
| 有 Key | 静默通过,进扣点确认 | (不说话) |
| 无 Key | 停下引导获取 | "检测到尚未配置 API Key。打开 https://pay.reexin.cn/recharge 充值(PC 浏览器直接扫码,无需登录),支付成功后页面会显示你的 API Key。复制后告诉我,我帮你写入配置。" |
| Key 失效 | 停下引导重取 | "你的 API Key 已失效。请前往 https://pay.reexin.cn/recharge 重新获取,或登录后到个人中心查看。" |
余额不足由扣点时的退出码 4 体现,无需提前查;收到 4 后说:"当前点数不足,余额 XX 点,需要 65 点。前往充值:https://pay.reexin.cn/recharge"。不要报 HTTP 状态码等技术细节。
二、执行前扣点确认(扣点前必须做)
扣点前先告知,确认后再扣:
"本次任务预计扣 65 点。当前余额 XX 点,扣完后剩余 XX 点。确认后我开始执行。"
- 用户说"继续 / 对 / 可以" → 跑
check_payment.py - 用户说"等一下 / 先不要" → 停下,等用户决定
扣点成功:"✅ 扣点成功,余额 XX 点。开始为你生产文章。"扣点失败:按下方退出码话术表处理。退出码 1(网络异常)可重试(ConsumeSession 复用 client_request_id,不会二次扣点),重试 2 次仍失败才告知用户。
三、进度反馈(每步都有,不静默)
各步开始 / 结束时各说一句(见「标准工作流」表末列);某步 WebFetch / WebSearch 耗时超过 15 秒无动静,中间补一句"还在搜索,稍等…"。
四、失败返点明确告知
创作失败时(第 1–8 步任一环节):① 先说"本次创作未能完成,正在为你退还 65 点。" ② 跑 refund_payment.py <invocation_id> ③ 成功:"✅ 65 点已退回,当前余额 XX 点。你可以重新发起。" ④ 退点脚本自身失败(退出码 5):"退点遇到技术问题。请记录本次任务 ID:XX,联系客服手动处理。"不要静默退点,也不要重复跑 refund(避免重复退点)。
五、首次使用声明(偏差声明前置)
用户第一次触发(config.json 刚配好)且自检通过后、扣点确认前,补一段:
"首次使用说明:
- 每次生成文章扣 65 点(约 0.64 元/篇)
- 点数长期有效,充值后自动到账
- 文章事实经多源交叉验证,不编造
- 支持四套排版风格:无印良品 / 连线杂志 / 纽约客 / 瑞士国际
- 可直接推送到你的公众号草稿箱
确认后我开始执行。"
老用户(已配过 Key 且非首次)不再重复声明,直接进扣点确认。
六、退出码完整话术表(agent 必须按表回应)
| 脚本 | 退出码 | 含义 | agent 话术 | 是否重试 |
|---|---|---|---|---|
| check_payment.py | 0 | 扣点成功 | "✅ 扣点成功,余额 XX 点。开始执行。" | 否 |
| check_payment.py | 3 | Key 无效 | "API Key 无效,前往 https://pay.reexin.cn/recharge 获取。" | 否 |
| check_payment.py | 4 | 余额不足 | "点数不足,余额 XX 点,需 65 点。前往充值:https://pay.reexin.cn/recharge" | 否 |
| check_payment.py | 1 | 网络异常 | "网络波动,正在重试(不会重复扣点)…" | 重试 2 次 |
| refund_payment.py | 0 | 退点成功 | "✅ 65 点已退回,余额 XX 点。可重新发起。" | 否 |
| refund_payment.py | 5 | 退点失败 | "退点异常,请联系客服。任务 ID:XX" | 否,不重复退 |
| 创作主脚本 | 5 | 创作失败 | "本次创作未能完成,正在退点…" | 触发退点 |
退出码 5 三层(切勿混淆):
check_payment.py无 5;refund_payment.py的 5 = 退点脚本自身失败(上报不重复退);创作链路主脚本 5 = 创作失败 → 必须触发 refund。判定:扣点成功后主流程报 5 → 退点;refund 脚本报 5 → 上报不重复退。
机制要点(TW 审查已固化,agent 只需正确调用,无需改代码):
- 防并发:服务端
BEGIN IMMEDIATE(悲观锁,先拿 SQLite 写锁串行化)+UPDATE ... WHERE points_balance >= ?(乐观语义条件更新)两层保护 - 幂等防重复扣(P0 修复点):服务端按
client_request_id(UNIQUE) 查重返回原结果;ConsumeSession在重试时复用同一client_request_id,绝不因网络超时重试而二次扣点 - 微信支付回调验签:签名头 RSA-SHA256(平台证书公钥)+ 5 分钟时间窗防重放 + AES-GCM(APIv3) 解密
依赖:credits_sdk.py 仅用标准库(urllib),无需 pip install。若连不上 pay.reexin.cn 会报网络错误(非退点失败,不触发退点逻辑)。
标准工作流(8 步,唯一主链路)
| 步 | 环节 | 关键动作 | 进度反馈(agent 开始/结束各说一句,不静默) | 产物 |
|---|---|---|---|---|
| 1 | 收热点 | 第1轮弹问卡 3 问:来源(AI搜热点/用户自带关键词) + 领域(仅方式A) + 是否推草稿箱。方式A:WebFetch 抓百度热搜榜优先(方法1),失败降级 WebSearch 交叉验证(方法2兜底:同事件≥2搜索结果出现才确认);按领域过滤取前5–8个→用户选。方式B:WebSearch搜关键词新闻→用户选/直用。WebFetch抓正文汇总素材。只收热点,不替用户编 | 开始:「正在搜索今日热点…」结束:「找到 N 个热点,请选择。」 | 热点素材 + 推送意图 |
| 2 | 选题判断(角度提取) | 红灯拦截(自动,不弹卡)→ 角度提取(冲突/反差 + 升华点)→ 用户选定角度 → 第2轮弹问卡 3 问:角度 + 风格 + 标题方式 | 开始:「正在分析素材,提取切入角度…」结束:「提取了 N 个角度,请选择。」 | 选题角度 + 风格 + 标题方式 |
| 3 | 标题生成 | 按「标题公式」出 3–5 个候选(反差 / 冲突 / 金句 / 数字反差各覆盖),用户挑或改 | 开始:「正在生成候选标题…」结束:「出了 N 个标题,挑一个或自己改。」 | 候选标题集 |
| 4 | 起承转合搭框架 | 套「起(钩子)→承(还原)→转(对比/拉锯/各方回应)→合(升华)」四段式,标出每段素材缺口 | 开始:「正在搭建文章骨架…」结束:「骨架搭好,准备检索补齐素材。」 | 文章骨架 |
| 5 | 多源检索 | 按信息源≥3 层交叉验证规范(媒体 / 官方 / 监管 / 网友),补齐骨架缺口与数字细节 | 开始:「正在多源检索验证…」结束:「素材已补齐,开始写正文。」 | 已验证素材库 |
| 6 | 写正文 | 按选定风格语气写成全内联 style HTML(兼容公众号),标注插图占位,严守规律 5/6(数字 + 情绪词) | 开始:「正在按 XX 风格写正文…」结束:「正文初稿完成。」 | 排版前正文 HTML |
| 7 | 价值观升华 | 确保结尾落到普世道理 / 商业启示(规律 8),立场鲜明但留余地(规律 7) | 开始:「正在打磨结尾升华…」结束:「全文定稿,准备排版。」 | 定稿正文 |
| 8 | 排版推送 | 直接复用本文件下半段能力:① 弹问卡收「封面 / 插图」(风格第 2 轮已收、推送意图第 1 轮已收,此处只补图片 2 问)② 按选定风格排版 ③ 封面 / 插图 / 占位块处理 ④ 调 push_draft.py 推送到用户配置的公众号草稿箱或仅导出 HTML | 开始:「正在按 XX 风格排版…」结束:「排版完成,准备推送/导出。」 | 排版后 HTML + MD + media_id |
第一步:收热点(AI 自动搜,用户只选)
不要求用户自己找素材。触发后按两段式自动搜。热点判断严格按下方「方法 1 优先、方法 2 兜底」,不自行发明其他判断方式。
- 第 1 轮弹问卡(3 问,
AskUserQuestion,multiSelect=false)——只收与"找素材"相关的参数:- Q1 来源:「热点从哪来?」→ AI 搜热点(方式 A,默认)/ 用户自带关键词(方式 B)
- Q2 领域(仅方式 A 适用):「想追哪类热点?」→ 全部 / 商业 / 科技 / 民生 / 娱乐(不指定默认全部)
- Q3 推送:「排完发到哪?」→ 推送到你的公众号草稿箱(需 config 配 WX_APPID/WX_SECRET)/ 仅导出 HTML(不推送)
⚠️ 不要在这一轮问风格 / 标题方式——那时素材还没拿到,用户判断不了。风格与标题方式放第 2 步结尾的第 2 轮弹问卡(见第二步末尾)。
- 方式 A:AI 搜热点
- 方法 1(优先)WebFetch 抓百度热搜榜:
https://top.baidu.com/board?tab=realtime,解析 20 条(标题 + 热度值 + 摘要),按领域过滤、按热度值排序,取前 5–8 个。 - 方法 2(兜底 · 自动降级):若 WebFetch 抓热搜榜失败(反爬/改版),不报错不中断,降级用 WebSearch 交叉验证:
- WebSearch「今日热点新闻」→ 结果集 A
- WebSearch「今日热搜」→ 结果集 B
- 同一事件在 A 和 B 都出现 = 确认热点;只出现一次的不选
- 按「在多少条结果里出现」排序,取前 5–8 个
- 弹问卡列出清单(标题 + 一句话梗概),用户选一个(不选则默认排名第一,直接往下跑;不满意可随时打断换)。
- 方法 1(优先)WebFetch 抓百度热搜榜:
- 方式 B:用户自带关键词
- 用户输入关键词或标题 → AI 用 WebSearch 搜该关键词相关新闻 → 提取 3–5 条搜索结果 → 弹问卡列出,用户选一个(或直接用关键词)。
- 第二段 WebFetch:对选定事件抓 2–3 条相关新闻正文,汇总成结构化素材(事件经过 + 关键数字 + 当事人 + 各方声音)。
- 时效过滤(两步都适用):只保留最近 3 天的事件。搜索结果带日期的看日期;不带日期的用 WebFetch 抓正文看发布时间。超过 3 天的过滤掉,除非搜索结果明确标注「最新进展」。
- 抓取失败的链接不硬扛,换源或提示。素材齐了进第 2 步。
兼容手动输入:若用户主动贴了事件 / 关键词 / 链接,可跳过热点搜索,直接进 WebFetch 还原,仍走第 2 步起的逻辑。
第二步:选题判断(角度提取,非打分)
本技能内置爆款检测逻辑,但选题阶段不做"值不值得写"的打分,而是直接帮用户提炼"从什么角度写"。本步只做两个动作:角度提取 与 红灯拦截。
爆款 8 规律是整套写作方法的底层依据(提炼自 5 篇微信爆款文实测),但不需要在本步逐条对照打分——它已内化进后续各步:第 3 步标题用规律 2、第 4 步框架用规律 3、第 5 步检索用规律 4、第 6 步正文用规律 5/6、第 7 步升华用规律 7/8。完整条文见文末「附录:爆款 8 规律」。
角度提取(核心动作)
从素材里找三个要素,组合成切入角度:
- 冲突点:谁和谁对立、什么和什么矛盾
- 反差点:出人意料的落差
- 升华点:能落到什么普世道理 / 商业启示
一个角度 = 一个冲突点/反差点 + 对应的升华点。AI 提取 2–3 个角度,每个附一句话:核心冲突是什么 + 能落什么升华点,弹问卡让用户选(或自己提)。
红灯拦截(自动,不弹问卡)
命中任一直接拦下、换事件或换角度,不进后续步骤:
- 信息源只有 1 家(没做交叉验证的材料)
- 涉及极端敏感话题(易引战被删)
- 事件已过气(3 天前的旧闻,除非有新进展)
信息源丰富度提示
角度提取后,给每个角度标信息源丰富度(高/中/低)。偏少时提示用户,但不拦——让用户自己决定。
输出:用户选定 1 个角度(冲突/反差 + 升华点),进第 3 步标题生成。
第 2 轮弹问卡(角度 + 风格 + 标题方式,共 3 问)
素材与角度都出来之后,一次性弹一张卡收 3 问(AskUserQuestion,multiSelect=false):
- Q1 角度:「从哪个角度写?」→ 上面提取的 2–3 个角度(每个附一句话:核心冲突 + 升华点)/ 我自己提(对话里给,我照用)
- Q2 风格:「排版用哪套风格?」→ 同下半段「风格注册表」四选一(无印良品 / 连线杂志 / 纽约客 / 瑞士国际)
- 推荐逻辑:热点评论类默认推荐瑞士国际;人物叙事型热点(明星 / 创始人故事)推荐纽约客;科技 / AI / 数码类热点推荐连线杂志;生活 / 读书 / 人文类推荐无印良品。推荐项放第一个。
- Q3 标题方式:「标题怎么定?」→ 自动提炼(按公式出 3–5 候选你挑,默认)/ 我直接提供(对话发我,照用不编)
为什么放这里:此时素材已齐,用户看得到热点内容与角度,选风格和定标题方式才准;也保证第 3 步(标题生成)和第 6 步(写正文)一开始就有确定输入。
第三步:标题生成(标题公式库)
基于规律 2,标题 = 强反差 / 强冲突 / 金句式,三选一或叠加。按公式出 3–5 个候选,覆盖不同公式,让用户挑或改。
公式库
| 公式 | 构造 | 范例(来自实测) |
|---|---|---|
| 反差 | A 做了 X 一辈子,却在自己身上翻车 | "做了一辈子安全守护,却没守住自己的底线" |
| 冲突 + 数字 | 具体行为 vs 复称/实情数字 | "4 块牛肉干 64 元复称仅 17 元" |
| 悬念 / 误会 | 看似定论 + "这或许是个误会" | "被指招强奸犯上热搜,这或许是个误会" |
| 掉粉 / 掉价数字 | 峰值数字 vs 谷值数字 | "两年掉粉近 1000 万,3500 万出售电商大楼" |
| 镜像对比 | 同一件事两个主体的不同结局 | "旭旭宝宝翻车,他却把流量接住了" |
| 金句即论点 | 把核心立意直接当标题 | "当顾客不依不饶成为推卸责任的借口,道歉自然失去了应有的分量" |
出候选的写法
- 每个候选标注所用公式(如「候选① 反差」「候选② 冲突+数字」)
- 强制覆盖≥3 种公式,避免雷同
- 长度控制在 1–2 行,信息密度高、无废词
- 数字、人名、反差点必须来自已验证素材(规律 4/5),不编
标题自检
- [ ] 有反差 / 冲突 / 金句至少一种?
- [ ] 含至少一个具体数字或具体人名?
- [ ] 读者扫一眼想知道"后来呢"?
- [ ] 没编造未验证的信息?
第四步:起承转合搭框架
基于规律 3,套四段式,先搭骨架、标素材缺口,再进第五步检索补齐。
四段式模板
| 段 | 作用 | 写法要点 |
|---|---|---|
| 起 | 热点钩子 | 一句话把读者拽进来:用最炸的数字 / 反差 / 悬念开头,不铺垫 |
| 承 | 事件还原 | 多小节,带具体时间 / 数字 / 对话,按时间线或因果线铺开 |
| 转 | 对比 / 冲突拉锯 / 各方回应 | 制造张力:两方对比、品牌 vs 监管、网友撕裂;插入情绪词钩子 |
| 合 | 金句升华 + 价值观落点 | 一句金句收尾,落到普世道理 / 商业启示(规律 8) |
骨架占位示例
【起】<钩子:最炸的数字/反差,1 段>
【承】<事件还原:时间线/因果,2–4 小节,缺口:需补 [具体数字][当事人回应]>
【转】<对比/拉锯:两方说法 + 监管/法条,缺口:需补 [官方通报][网友评论]>
【合】<金句升华:落到 [普世道理/商业启示],1 段>写骨架时把每个缺口用 [需补:xxx] 标出,第五步检索逐项补齐。
第五步:多源交叉检索
基于规律 4/5,补齐第四步骨架的所有 [需补] 缺口。明确使用 WebSearch 工具并行检索(事件名 + 主体 + 时间),再用 WebFetch 抓关键原文页提取数字与引述。
信息源分层(≥3 层)
- 当事人 / 品牌回应:官方声明、客服回应、当事人社交账号
- 媒体调查:主流媒体 / 行业媒体原文(光明网、南风窗、网经社等)
- 监管 / 法条:监管部门通报、相关法律法规条文
- 网友评论:热评、舆论风向(用于"转"段的拉锯感)
检索动作
- 用
WebSearch多关键词并行检索(事件名 + 主体 + 时间) - 用
WebFetch抓关键原文页提取数字与引述 - 每条关键数字(金额、粉丝数、债务、刑期)至少 2 个独立源印证
- 法条 / 监管通报务必引官方源,标注来源
红线
- 不编数字、不编引述、不编法条。检索不到的缺口,要么换角度、要么在文中明确"据媒体报道"而非断言。
- 来源存疑的内容,用"网传""据称"弱化,不写成确证事实。
第六步:写正文
按选定风格的语气把骨架填成全内联 style HTML(兼容公众号)。
- 严守规律 5(具体数字撑场)与规律 6(情绪词精准调动)
- 每段填充时回填第四步的
[需补]缺口,删掉占位符 - 插图位置先标占位卡(见第八步 8.4 插图逻辑),不插入未经验证的外链图
- 语气贴合风格:纽约客重叙事、连线重信息卡片、瑞士重秩序、无印重留白
- 全程保留「立场鲜明但留余地」(规律 7):剖析到位,不直接站队引战
反「白开水」硬标准(必过,否则重写)
正文不是"把事件复述一遍"。写之前先立住以下四条,写完逐条自检,任意一条不过就重写该段:
- 开头 80 字内必须有钩子:用场景描写 / 冲突数字 / 反常识切入,禁止平铺直叙的"近日,XX 事件引发关注"。钩子要让读者第一句就想往下读。
- 每个论点配具体细节或数字:禁止纯抽象结论。禁用"令人深思""值得关注""发人深省"这类空词;要换成可感知的画面或数字(如"7 天涨到几百人,老人老伴被吵到头晕")。
- 必须有 1 个可被反驳的锋利观点:带明确立场,不中立复述。观点要戳破一层"大家都这么想"的常识,让人想转评。
- 情绪有起伏:有张力段(转:冲突 / 拉锯 / 各方撕扯)也有共鸣段(合:升华),不是一条平线念完。
写完 4 项自检:① 有场景 / 钩子?② 有反差 / 冲突?③ 有锋利观点?④ 有情绪起伏?——四项全过才进第七步,否则重写。
第七步:价值观升华
收尾前强制检查(规律 8 + 规律 7):
- 结尾是否落到普世道理 / 商业启示?给读者"看懂了"的获得感。范例落点:流量双刃剑、敬畏规则、诚信是资产、信任是护城河、法治包容。
- 立场是否"理性剖析 + 价值引导",而非纯站队?——避免翻车。
- 金句是否够短、够准、可独立转发?(参考实测金句:"守住规矩和底线,才是人生真正的安全套")
- 升华是否落具体可迁移的洞察,而非空话套话?禁用"我们要理性看待""这件事值得深思"这类无信息量的收尾;要给读者一句"能拿去用的道理"。
升华不过度说教,用"合"段的一句金句自然带出即可。
第八步:排版推送能力(内联 mparticle-mulstyle-pline)
本步不重造排版,直接复用本文件下半段「四套风格规范」+ 本目录 push_draft.py。
8.1 第 3 次弹问卡(封面 / 插图,共 2 问)
风格已在第 2 轮弹问卡收过,推送意图已在第 1 轮收过,此处只补图片相关的 2 问。
若第 1 步已选「推草稿箱」,弹一张卡收 2 问:
- Q1 问题「封面怎么处理?」header「封面」:
- 按风格自动生成(ImageGen 按该风格配色出图)
- 上传已有图片(给路径)
- 暂不需要(用该风格底色纯色图兜底,仍满足草稿箱必填封面)
- Q2 问题「正文插图怎么处理?」header「插图」,3 选项:
- 用真实图片(推荐):AI 用 WebSearch 搜 3–5 个真实图片 URL + 来源 + 内容描述,列给用户;文章 HTML 用占位块「此处插图:XXX」。用户自己下载→裁剪加工→公众号后台手动替换
- 不插图(纯文字)
- 上传已有图(给路径 + 位置;注意本地/外链图草稿箱不显示,只认
mmbiz.qpic.cn图链)
若第 1 步选「仅导出 HTML」,跳过封面/推送,只导出 HTML(插图仍可用占位块)。
8.2 风格注册表(新增风格在此加行)
| key | 显示名 | 章节 | 适合内容 |
|---|---|---|---|
| muji | 无印良品 | 「风格一:无印良品」 | 生活/读书/人文 |
| wired | 连线杂志 | 「风格二:连线杂志」 | 科技/AI/数码/行业分析 |
| newyorker | 纽约客 | 「风格三:纽约客」 | 人物/深度长文/叙事 |
| swiss | 瑞士国际 | 「风格四:瑞士国际」 | 观点/评论/方法论 |
8.2.1 排版铁律(必须执行,不可绕过)
- 文章标题严禁进正文:文章标题只进草稿箱
title字段(推送时由push_draft.py --title传入),正文(body)里不得出现文章标题——任何<h1>级别的标题文字都不要写进 body,正文从首段或首个二级标题开始。各风格「段落模板」里的<h1>一级标题</h1>一律删除,只保留二级及以下标题。 - 正文标题序号与文字间距 4px:所有风格里"标题序号"(如
010203这类章节 / 段落序号)与后续文字之间,统一用margin-right:4px,禁用全角空格、禁用其他大间距。连线杂志(wired)风格原用全角空格,已改为margin-right:4px(见其序号模板);其余风格同步按下表执行。 - 层次分明(治太素,必做):每篇文章正文必须结构清楚、有节奏,禁止"一段接一段纯文字"。四套风格各自手法:瑞士用导语卡+数据卡+分隔线+金句块+配图卡;连线用信息卡片+标签;纽约客用引文块+配图卡;无印用浅米底区块+配图卡。共性要求:① 顶部有导语 / 点题块,不平铺直叙开头;② 小标题带序号做章节锚点;③ 关键数字 / 观点做成突出块;④ 正文 2–3 处插配图卡(📷 此处配图:XXX,见 8.4);⑤ 章节间有分隔线制造呼吸。模块要轻、不破坏各风格调性。
8.3 四套风格规范(全量)
风格一:无印良品(key: muji · 生活/读书/人文/品牌调性)
把任意一篇公众号文章,排成无印良品那种安静、自然、留白充分的样子。
核心规范(四条,先看这个)
暖色、低饱和、弱对比、少装饰。
不是"加了什么"变高级,而是"拿掉了什么"。执行时始终记住:颜色收进三类、字号收进四级、装饰收进三条,剩下的高级感交给留白。
一、字号与排布
| 层级 | 字号 | 字重 | 用途 |
|---|---|---|---|
| 一级小标题 | 20px | 加粗 | 大段落分段 |
| 二级小标题 | 18px | 加粗 | 段落内小节 |
| 正文 | 16px | 常规 | 主体内容 |
| 辅助文字 | 14px | 常规 | 图片说明、资料来源 |
- 行距:1.8 – 1.85(正文取 1.82)
- 字间距:0 – 0.5px(取 0.5px)
- 页边距:左右各 8px
- 对齐:正文、小标题、图片说明全部左对齐,不来回切居中
- 段落:每段 2 – 4 行,段间距 24 – 28px,段与段之间留明显空白
二、配色(全文只留三类颜色)
| 角色 | 色值 | 用法 |
|---|---|---|
| 软深灰(正文色) | #3D3A36 | 正文、小标题。禁止纯黑 |
| 浅灰(辅助色) | #8C867F | 辅助文字、图注、资料来源 |
| 低饱和暗红(强调色) | #A6554E | 仅用于:序号、关键词、极小装饰元素 |
| 背景 | #FBFAF7(极浅米白)或纯白 | 避免冷灰 |
| 分区底 | #F5F2EC | 需要区分一块内容时用 |
| 细边框 | #E8E4DE | 1px 浅灰边框 |
禁忌:全文不出现鲜艳的红、蓝、黄;强调色不大面积铺陈,一篇文章出现不超过 5 – 8 处。
三、装饰规则
- 圆角:直角或 0 – 4px。禁止 15 – 20px 大圆角
- 阴影:全部去掉,不用 box-shadow
- 区分内容:很浅的米色底
#F5F2EC,或 1px 浅灰边框#E8E4DE - 强调方式:只加粗。禁止同时对同一处内容"放大 + 变色 + 加底纹"
- 分割线:用 1px 浅灰细线即可,不用花式分隔符
四、弱对比
无印良品不是没有层级,而是不把层级做得夸张。标题比正文明显即可,不出现突然一个超大黑体标题把页面压重。
输出格式要求(公众号兼容)
公众号会过滤外部样式表和 class 选择器,所有样式必须写成内联 style。
- 用
<section>+<p>结构,不用<div>堆叠 - 每段一个
<p>,段间距用margin控制 - 表格用
<table>+ 内联样式,1px 浅灰边框 - 图片
width:100%,圆角 0 – 4px,下方配 14px 浅灰图注 - 不用
<style>标签、不用 script、不用外部链接的 css/js
段落模板
<section style="font-size:16px;color:#3D3A36;line-height:1.82;letter-spacing:0.5px;padding:0 8px;">
<p style="margin:0 0 26px 0;">正文段落,控制在两到四行。段与段之间留出明显空白。</p>
<p style="margin:0 0 26px 0;">下一段。<strong style="font-weight:600;">重点内容只加粗</strong>,不叠加放大变色。</p>
<h2 style="font-size:20px;font-weight:700;color:#3D3A36;margin:38px 0 18px 0;line-height:1.5;">一级小标题</h2>
<p style="margin:0 0 26px 0;">标题下的正文。</p>
<h3 style="font-size:18px;font-weight:700;color:#3D3A36;margin:30px 0 16px 0;line-height:1.5;">二级小标题</h3>
<p style="margin:0 0 26px 0;">正文。</p>
<p style="font-size:14px;color:#8C867F;margin:0 0 26px 0;line-height:1.7;">图片说明或资料来源,用浅灰 14 号。</p>
</section>分区块模板(浅米底 + 小圆角,无阴影)
<section style="background:#F5F2EC;border-radius:4px;padding:22px 20px;margin:0 0 28px 0;">
<p style="font-size:16px;color:#3D3A36;line-height:1.82;letter-spacing:0.5px;margin:0;">区块内文字。</p>
</section>关键词强调(唯一允许的彩色)
<span style="color:#A6554E;">关键词</span>发布前自查清单
- [ ] 正文不是纯黑,是暖深灰
#3D3A36 - [ ] 全文无鲜艳红 / 蓝 / 黄
- [ ] 强调色
#A6554E只出现在序号、关键词、小装饰,且不超过 8 处 - [ ] 字号只有 20 / 18 / 16 / 14 四档
- [ ] 重点只加粗,无叠加放大、变色、底纹
- [ ] 圆角 ≤ 4px,全文无阴影
- [ ] 所有文字左对齐,无居中左对齐来回切换
- [ ] 每段 2 – 4 行,段间距 24px 以上
- [ ] 样式全部内联,无
<style>、无 script、无外链
风格二:连线杂志(key: wired · 科技/AI/数码/行业分析)
把科技、AI、数码、行业分析类文章,排成信息清晰、层级硬朗、有专业感的样子。
核心规范
三个参数打底,一种亮色点睛,重点做成卡片。
这套风格是为"信息量大"服务的:把参数收紧、把层级拉开、把颜色砍到只剩一种亮色。不是加装饰,是加秩序。
一、三个基础参数
| 参数 | 值 |
|---|---|
| 正文字号 | 16px |
| 行距 | 1.75 |
| 段后间距 | 16px |
| 每段行数 | 3 – 5 行 |
| 左右边距 | 6px |
科技文章信息量大,正文不能太小,16 号是下限;段落切短,阅读压力才小。段后 16px 比无印良品风的 24–28px 明显更紧,这是刻意的:科技内容要信息流速,不要呼吸感。
二、标题层级(必须拉开,这是这套风格的骨架)
| 层级 | 字号 | 字重 |
|---|---|---|
| 一级标题 | 24 – 26px | 加粗 |
| 二级标题 | 20px | 加粗 |
| 正文 | 16px | 常规 |
| 图注 / 资料来源 | 13 – 14px | 常规 |
一级标题与正文差 8 – 10 号,这个跨度就是"扫一眼知道重点"的物理基础。
三、配色:黑白灰打底 + 一种高饱和强调色
| 角色 | 色值 | 用法 |
|---|---|---|
| 主色(正文 / 标题) | #1A1A1A | 近黑,硬朗 |
| 辅助灰 | #767676 | 图注、资料来源、次要信息 |
| 强调色(默认) | #00C853 荧光绿 | 序号、标签、关键词 |
| 强调色候选 | 电光蓝 #0A5CFF / 亮橙 #FF6A00 | 用户指定时替换 |
| 卡片底 | #F4F4F4 | 信息卡片背景 |
| 卡片边框 | #E0E0E0(1px) | 信息卡片细边框 |
| 背景 | #FFFFFF | 纯白,不用米白 |
铁律:全篇只用一种强调色。
荧光绿 #00C853 使用注意
- 适合:序号(加粗 16–18 号)、标签(绿底白字)、大字号短语、分割元素
- 不适合:正文中细小的关键词——对比度偏低,小字会发虚
- 正文内强调单个词,改用深一档的绿
#00913D,或加粗后再上色 - 做标签时用绿底白字,不要用绿字白底
四、信息卡片(最实用的一招)
数据、引用、关键结论,单独做成卡片:
<section style="background:#F4F4F4;border:1px solid #E0E0E0;padding:20px;margin:0 0 16px 0;">
<p style="font-size:16px;color:#1A1A1A;line-height:1.75;margin:0;">数据、引用、关键结论放这里。</p>
</section>浅灰底 #F4F4F4 + 1px 细边框 #E0E0E0 + 内边距 18 – 20px,卡片内文字仍是 16 号。不要大圆角、不要阴影。
五、输出格式要求(公众号兼容)
- 用
<section>+<p>结构 - 每段一个
<p>,段后用margin:0 0 16px 0 - 表格用
<table>+ 内联样式,1px#E0E0E0边框,表头浅灰底 - 图片
width:100%,下方配 13 – 14px#767676图注 - 不用
<style>、不用 script、不用外链
段落模板
<section style="font-size:16px;color:#1A1A1A;line-height:1.75;letter-spacing:0.2px;padding:0 18px;">
<p style="margin:0 0 16px 0;">正文段落,控制在三到五行。段后固定 16 像素。(文章标题只进草稿箱 title 字段,不写进正文)</p>
<h2 style="font-size:20px;font-weight:700;color:#1A1A1A;margin:28px 0 16px 0;line-height:1.4;">二级标题 20</h2>
<p style="margin:0 0 16px 0;">正文。关键词用 <span style="color:#00C853;font-weight:700;">荧光绿加粗</span> 强调,全文不超过 8 处。</p>
<p style="font-size:13px;color:#767676;margin:0 0 16px 0;line-height:1.6;">图注或资料来源,浅灰 13 号。</p>
</section>序号模板(荧光绿最典型的用法)
<h2 style="font-size:20px;font-weight:700;color:#1A1A1A;margin:28px 0 16px 0;line-height:1.4;">
<span style="color:#00C853;margin-right:4px;">01</span>标题文字
</h2>标签模板(绿底白字)
<span style="display:inline-block;background:#00C853;color:#FFFFFF;font-size:13px;padding:3px 8px;line-height:1.4;">标签</span>发布前自查清单
- [ ] 正文 16,行距 1.75,段后 16px,全篇统一
- [ ] 每段 3 – 5 行
- [ ] 一级标题 24–26,二级 20,与正文层级明显拉开
- [ ] 全文只有一种高饱和强调色(默认荧光绿 #00C853)
- [ ] 强调色只出现在序号、标签、关键词,不超过 8 处
- [ ] 数据 / 引用 / 关键结论已单独做成信息卡片
- [ ] 卡片浅灰底 + 1px 细边框 + 内边距,无大圆角、无阴影
- [ ] 样式全部内联,无
<style>、无 script、无外链
风格三:纽约客(key: newyorker · 人物/深度长文/叙事)
把人物、深度长文、叙事类内容,排出可读、有气质、能一路读下去的杂志感。
核心规范
大标题、长段落、强插图。
这是目前四套排版里唯一一套"反碎片化"的:段落要长,观点要讲完,让读者顺着读下去。它对内容有要求,没有叙事的干货文撑不起这套排版。
一、三个基础参数
| 参数 | 值 |
|---|---|
| 正文字号 | 16px |
| 行距 | 1.7 – 1.8 |
| 字间距 | 0 – 0.5px |
| 每段行数 | 3 – 5 行 |
| 两端留白 | 左右各 5px |
| 段落意图 | 观点完整讲完再分段,不要为了短而硬切 |
二、标题层级(骨架在"大"字上)
| 层级 | 字号 | 字重 |
|---|---|---|
| 大标题 | 24 – 28px | 加粗 |
| 小标题 | 20px | 加粗 |
| 重点内容 | 18px | 加粗(砖红,句/短语级嵌正文) |
| 正文 | 16px | 常规 |
| 图注 | 13 – 14px | 常规 |
三、配色:白或暖白作底,深色正文,只留一种强调色
| 角色 | 色值 | 用法 |
|---|---|---|
| 正文 / 标题 | #23201C | 深色,禁纯黑 |
| 背景 | #FDFCF9 暖白(或 #FFFFFF) | 不用冷灰底 |
| 强调色(默认) | #B23A2B 砖红 | 大标题、小标题序号、少量关键词 |
| 辅助灰 | #857F76 | 图注 |
| 引文底色 | #F2ECE4 浅灰棕 | 金句 / 引文块背景 |
| 分割线 | #DED8CE 1px | 可选,尽量少用 |
四、引文块(独有的核心手法)
人物原话或核心观点,单独抽出来放大,左边竖红线 + 浅灰棕底衬托:
<p style="margin:32px 0 32px 0;font-size:18px;line-height:1.7;color:#23201C;font-weight:700;letter-spacing:0.5px;background:#F2ECE4;border-left:4px solid #B23A2B;padding:16px 20px;">
人物原话或核心观点,单独抽出放大,左边竖红线、浅灰棕底衬托,一眼看到重点。
</p>正确做法:放大到 18px、前后各留 32px、加粗、左边 4px 砖红竖线 #B23A2B、浅灰棕底 #F2ECE4。
禁止:在底色上再加边框、加引号图标、把竖线换成粗黑块、或整段变红。
五、插图:是内容,不是配图
- 人物、城市、事件,连抽象观点也要交给插画表达
- 图片放得更大,不要大圆角、不要明显阴影
- 必须配 13 – 14px
#857F76图注,说明插图在讲什么
六、卡片:禁用
不要把长文章切成卡片。真正适合做阅读节点的是三样:小标题、引文、图片。
七、输出格式要求(公众号兼容)
- 用
<section>+<p>结构,每段一个<p> - 图片
width:100%,无大圆角、无阴影 - 表格用
<table>+ 内联样式,1px#DED8CE边框(表格少用) - 不用
<style>、不用 script、不用外链
段落模板
<section style="font-size:16px;color:#23201C;line-height:1.75;letter-spacing:0.3px;padding:0 5px;background:#FDFCF9;font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue','PingFang SC',sans-serif;">
<h1 style="font-size:26px;font-weight:700;color:#23201C;margin:0 0 20px 0;line-height:1.4;text-align:left;">大标题 24–28</h1>
<p style="margin:0 0 16px 0;">正文段落,三到五行,观点完整讲完再分段。</p>
<h2 style="font-size:20px;font-weight:700;color:#23201C;margin:32px 0 16px 0;line-height:1.5;text-align:left;">
<span style="color:#B23A2B;display:inline-block;margin-right:4px;">01</span>小标题 20
</h2>
<p style="margin:0 0 16px 0;">正文。关键词用 <span style="color:#B23A2B;font-weight:700;">砖红加粗</span> 强调,全文少量。</p>
<p style="margin:32px 0 32px 0;font-size:18px;line-height:1.7;color:#23201C;font-weight:700;letter-spacing:0.5px;background:#F2ECE4;border-left:4px solid #B23A2B;padding:16px 20px;">
人物原话或核心观点,单独抽出放大。
</p>
<p style="font-size:13px;color:#857F76;margin:0 0 16px 0;line-height:1.6;letter-spacing:0.3px;">图注 13–14 号,说明插图在讲什么。</p>
</section>序号模板
<h2 style="font-size:20px;font-weight:700;color:#23201C;margin:32px 0 16px 0;line-height:1.5;text-align:left;">
<span style="color:#B23A2B;display:inline-block;margin-right:4px;">01</span>小标题文字
</h2>序号间距必须用 display:inline-block; margin-right:4px,禁用全角空格。
标签模板
<span style="display:inline-block;background:#B23A2B;color:#FFFFFF;font-size:13px;padding:3px 8px;line-height:1.4;">标签</span>发布前自查清单
- [ ] 正文内无文章标题;大标题 24–28(仅文内引导),小标题 20,重点内容 18,正文 16
- [ ] 行距 1.7–1.8,字间距 0–0.5px
- [ ] 每段 3–5 行,观点完整讲完,无硬切短句
- [ ] 引文块 18 号加粗,前后各 32px,左边 4px 砖红竖线 + 浅灰棕底
#F2ECE4 - [ ] 重点内容用 18px 加粗砖红(句/短语级嵌正文)
- [ ] 全文无卡片、无彩色底纹区块
- [ ] 插图尽量放大,无大圆角、无明显阴影
- [ ] 图注 13–14 号,说明插图在讲什么,不重复正文
- [ ] 背景白或暖白,强调色只有一种(默认砖红 #B23A2B)
- [ ] 两端留白 5px,序号间距用
margin-right:4px,无全角空格 - [ ] 样式全部内联,无
<style>、无 script、无外链
风格四:瑞士国际(key: swiss · 观点/评论/方法论)
把观点、评论、方法论类内容,排成干净、理性、有秩序感的高级版面。
核心规范
层级只有两级,强调只有一种。
标题与正文只差 2 号(18 对 16),全篇只准用一种强调方式。适合通读型内容,不适合信息密度极高的行业分析。
一、三个基础参数
| 参数 | 值 |
|---|---|
| 正文字号 | 16px |
| 行距 | 1.75 |
| 字间距 | 1px |
| 两端留白 | 左右各 5px |
| 背景 | #FFFFFF 纯白 |
| 每段行数 | 3 – 5 行 |
| 段落意图 | 段间空一行,观点讲完再分段 |
二、标题层级(两级,刻意压缩跨度)
| 层级 | 字号 | 字重 |
|---|---|---|
| 小标题 | 18px | 加粗 |
| 正文 | 16px | 常规 |
| 图注 | 13 – 14px | 常规 |
三、配色:纯白底,深炭灰正文,只留一种强调色
| 角色 | 色值 | 用法 |
|---|---|---|
| 正文 / 小标题 | #2B2B2B 深炭灰 | 禁纯黑 |
| 背景 | #FFFFFF 纯白 | 不用暖色、不用冷灰 |
| 强调色(默认) | #E30613 瑞士红 | 序号、关键词、小标题前缀、重点块竖线 |
| 重点块底 | #EFEFEF 浅灰 | 金句 / 核心观点背景 |
| 重点块文字 | #242424 | 18px 加粗 |
| 辅助灰 | #8A8A8A | 图注、资料来源 |
| 分割线 | #E0E0E0 1px | 可选,尽量少用 |
四、重点块(核心手法,左竖红线 + 浅灰底)
<p style="margin:24px 0;font-size:18px;font-weight:700;color:#242424;line-height:1.7;letter-spacing:0.5px;background:#EFEFEF;border-left:4px solid #E30613;padding:16px 20px;">
核心观点,左边竖红线、浅灰底衬托,18px 加粗,一眼看到重点。
</p>做法:文字 18px 加粗 #242424、左边 4px 瑞士红竖线 #E30613、浅灰底 #EFEFEF。
禁止:在底色上再加边框、加引号图标、把竖线换成粗黑块、或整段变红。
五、层次结构模块(必加,治太素)
瑞士风虽极简,但"层次分明"不能省。每篇文章正文必须包含以下结构模块(按出现顺序),让扫读即有节奏:
- 导语卡(顶部点题):文章开头用浅灰底
#EFEFEF+ 左 4px 瑞士红竖线块,1–2 句点出核心冲突 / 观点,替代平铺直叙的第一段。 - 小标题(章节锚点):每个转折用 18px 加粗小标题(带
0102序号前缀),把长文切成可读章节。 - 数据卡(关键数字突出):把最炸的数字 / 对比单独做成浅灰底卡片,比正文大 2 号、加粗,一眼看到重点。
- 章节分隔线:章节之间用 1px
#E0E0E0细线分隔,制造呼吸。 - 金句块(重点放大):核心观点用 18px 加粗
#242424+ 左 4px 瑞士红竖线#E30613+ 浅灰底#EFEFEF,比普通段落更重。 - 配图卡(指出配图位置):正文 2–3 处用卡片式占位块标注"此处配图:XXX"(见 8.4),让读者 / 排版者一眼知道哪配图。
禁止"一段接一段纯文字无模块"——那正是"太素"的根因。模块要轻(浅灰底 / 细线 / 单色强调),不破坏瑞士风的克制。
六、装饰:极简,能省的都省
- 不用圆角卡片,彩色底纹也尽量不用
- 不用阴影、不用渐变
- 小标题、图注、正文全部左对齐
- 序号间距必须用
margin,禁用全角空格
七、输出格式要求(公众号兼容)
- 用
<section>+<p>结构,每段一个<p> - 图片
width:100%,无大圆角、无阴影 - 表格用
<table>+ 内联样式,1px#E0E0E0边框(表格少用) - 不用
<style>、不用 script、不用外链
段落模板(含层次模块 + 配图卡)
<section style="font-size:16px;color:#2B2B2B;line-height:1.75;letter-spacing:1px;padding:0 5px;background:#FFFFFF;font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue','PingFang SC',sans-serif;">
<!-- 导语卡:顶部点题,替代平铺直叙开头 -->
<p style="margin:0 0 28px 0;font-size:17px;font-weight:700;color:#242424;line-height:1.7;letter-spacing:0.5px;background:#EFEFEF;border-left:4px solid #E30613;padding:18px 20px;">
一句话点出核心冲突 / 观点,钩子先行。
</p>
<h2 style="font-size:18px;font-weight:700;color:#2B2B2B;margin:32px 0 16px 0;line-height:1.5;text-align:left;">
<span style="color:#E30613;display:inline-block;margin-right:4px;">01</span>小标题 18 加粗
</h2>
<p style="margin:0 0 16px 0;">正文段落,三到五行,带具体细节或数字。</p>
<!-- 数据卡:关键数字 / 对比单独突出 -->
<section style="background:#EFEFEF;padding:16px 20px;margin:20px 0;">
<p style="font-size:18px;font-weight:700;color:#242424;line-height:1.6;margin:0;">关键数字 / 对比:如「7 天涨到几百人,老人老伴被吵到头晕」</p>
</section>
<!-- 配图卡:指出配图位置(卡片式占位) -->
<section style="margin:20px 0;padding:18px;border:1.5px dashed #E30613;border-radius:4px;text-align:center;color:#E30613;font-size:14px;line-height:1.7;">📷 此处配图:XX 现场实拍 / 数据图表</section>
<!-- 金句块:核心观点放大 -->
<p style="margin:24px 0;font-size:18px;font-weight:700;color:#242424;line-height:1.7;letter-spacing:0.5px;background:#EFEFEF;border-left:4px solid #E30613;padding:16px 20px;">
核心观点,左边竖红线、浅灰底衬托,18px 加粗。
</p>
<!-- 章节分隔线 -->
<hr style="border:none;border-top:1px solid #E0E0E0;margin:28px 0;" />
<h2 style="font-size:18px;font-weight:700;color:#2B2B2B;margin:32px 0 16px 0;line-height:1.5;text-align:left;">
<span style="color:#E30613;display:inline-block;margin-right:4px;">02</span>小标题 2
</h2>
<p style="margin:0 0 16px 0;">正文段落。</p>
<p style="font-size:13px;color:#8A8A8A;margin:0 0 16px 0;line-height:1.6;">图注或资料来源,浅灰 13 号。</p>
</section>序号模板
<h2 style="font-size:18px;font-weight:700;color:#2B2B2B;margin:32px 0 16px 0;line-height:1.5;text-align:left;">
<span style="color:#E30613;display:inline-block;margin-right:4px;">01</span>小标题文字
</h2>序号间距必须用 display:inline-block; margin-right:4px,禁用全角空格。
关键词模板
<span style="color:#E30613;font-weight:700;">关键词</span>发布前自查清单
- [ ] 正文 16,行距 1.75,字间距 1px,全篇统一
- [ ] 小标题 18 加粗,左对齐,深炭灰
#2B2B2B - [ ] 顶部有导语卡点题(浅灰底 + 瑞士红竖线),禁止平铺直叙开头
- [ ] 章节间有 1px
#E0E0E0分隔线,小标题带01/02序号锚点 - [ ] 关键数字 / 对比已做成数据卡(浅灰底突出)
- [ ] 正文 2–3 处配图卡占位(📷 此处配图:XXX),一眼知配图位置
- [ ] 重点块:左 4px 瑞士红竖线 + 浅灰底
#EFEFEF+ 文字 18px 加粗#242424 - [ ] 红色只在序号、关键词、标题前缀、重点块竖线、配图卡边框,无整段变红
- [ ] 全文只有一种强调方式
- [ ] 每段 3–5 行,段间空一行
- [ ] 图片前后各空一行
- [ ] 两端留白左右各 5px,背景纯白
#FFFFFF - [ ] 序号间距用 margin-right:4px,无全角空格
- [ ] 正文、小标题、图注全部左对齐
- [ ] 无大圆角卡片(配图卡虚线占位除外)、无彩色底纹、无阴影
- [ ] 样式全部内联,无
<style>、无 script、无外链
8.4 封面 / 插图处理
两类图片,来源与处理方式完全不同,严格区分:
封面图(AI 生成,全自动)
- 用 ImageGen 按所选风格配色生成 2.35:1 比例封面(如
1536×654),存工作区绝对路径。 - 调
push_draft.py的upload_cover_path(cover_path)上传为永久素材,拿thumb_media_id给草稿箱。全自动,用户不用管。(该函数只负责上传,图片生成由 Agent 用 ImageGen 完成) - 兜底:用户说「暂不需要」时,直接省略
--cover,脚本自动生成 2.35:1 纯色兜底封面(可用--cover-color指定颜色,按风格底色取:无印#FBFAF7/ 连线#1A1A1A/ 纽约客#FDFCF9/ 瑞士#FFFFFF),仍满足草稿箱必填封面。 - 草稿箱强制要求
thumb_media_id,无论如何都要有一张封面图。
正文插图(真实图片,URL 清单 + 占位块,绝不 AI 生成)
- 不用 AI 生成插图(避免失真),用 WebSearch 搜真实图片。
- AI 只收集 3–5 个图片 URL + 来源 + 内容描述,以清单形式列给用户(侵权风险由用户把控,AI 已标注来源)。
- AI 不下载、不嵌入正文插图,文章 HTML 里一律用占位块标注:
此处插图:<一句话描述,如"越南工厂流水线">- 用户自行下载 → 裁剪加工 → 公众号后台点占位块手动替换真图。占位块是纯样式文字,不依赖外链图,草稿箱能正常显示。
- 配图卡(指出配图位置的卡片,必用):正文 2–3 处插入卡片式占位块,一眼标明"这里该放什么图"。边框用所选风格强调色、虚线、居中、带 📷 图标 + 一句话图说。各风格强调色:无印
#A6554E/ 连线#00C853/ 纽约客#B23A2B/ 瑞士#E30613。
<section style="margin:20px 0;padding:18px;border:1.5px dashed #E30613;border-radius:4px;text-align:center;color:#E30613;font-size:14px;line-height:1.7;">📷 此处配图:越南工厂流水线实拍</section>- Markdown 源文同步标
【此处配图:越南工厂流水线实拍】。 - 若用户坚持「上传已有图」,给路径 + 位置;提醒本地/外链图草稿箱不显示,只认
mmbiz.qpic.cn图链。
8.5 调用 push_draft.py 推送
推送到用户配置的公众号草稿箱(或仅导出 HTML 时跳过):
WX_APPID=<appid> WX_SECRET=<secret>
python push_draft.py --html <排版后HTML绝对路径> --title "文章标题" [--cover <封面绝对路径>] [--cover-color "#FFFFFF"](在技能目录下执行;python 用当前环境可用的解释器,不写死任何机器特定路径。凭证也可直接写在本目录 config.json,则无需环境变量。)
- 账号完全通用:
push_draft.py从本目录config.json读WX_APPID/WX_SECRET(也支持同名环境变量覆盖)。推到用户自己配置的公众号,不写死任何账号名或作者名;--author可选,不传则为空。 - 封面:先由 Agent 用 ImageGen 生成 2.35:1 封面,再调用
upload_cover_path(cover_path)上传拿thumb_media_id;或本地已有封面直接--cover传路径;也可省略--cover走纯色兜底。 - 正文插图:不在这里上传,走 8.4 的「真实图片 URL 清单 + 占位块」流程,用户后台手动替换。如需把本地真图嵌进正文,可调用
upload_image_path(image_path)拿mmbiz.qpic.cn外链再回填占位块。 - 调用方公网 IP 必须加入该公众号后台 IP 白名单(运行本脚本机器的公网 IP,非固定值;不预置任何具体 IP)。
- access_token 有本地缓存(存脚本同目录
.wx_token_cache.json,只存 appid 指纹 + token + 过期时间,不存 secret),避免频繁取 token 触发公众号接口频率限制;加--no-cache可强制刷新。 - 成功后提示用户去自己公众号后台草稿箱确认。
- 仅导出 HTML:把 HTML 落工作区文件交付,不推送。
8.6 收口与交付
- 交付物直接渲染(不甩路径):文章写完后,先把 Markdown 正文直接渲染给用户看(或贴出 HTML 文字内容),再说"全文已完成。排版后 HTML 已保存:[完整绝对路径],可直接导入公众号草稿箱。"选了推送草稿箱则说"已推送到你的公众号草稿箱,去后台确认即可。"
- 无论是否推送,都交付:① 排版后 HTML 文件(可直接导入草稿箱)② Markdown 源文。
- 文件路径始终用完整绝对路径(如
D:Programsfacelessvideos热点评论文-瑞士国际-20260905.html),不用相对路径,方便用户复制定位。 - 文件名带风格与日期,例如
热点评论文-瑞士国际-20260903.html/.md。 - 插图选了「标出位置」:交付时务必提醒,正文插图位置是占位块,需在后台手动上传真图才会显示。
总自查清单(交付前过一遍)
- [ ] 热点是热搜级、有反差/冲突/金句可蹭(规律 1/2)
- [ ] 弹问卡节奏正确:第1轮 3 问(来源/领域/推送)→ 选热点 → 第2轮 3 问(角度/风格/标题)→ 第8步 2 问(封面/插图),每轮均≤4 问
- [ ] 标题出了 3–5 个候选,覆盖≥3 种公式,数字/人名已验证
- [ ] 框架是起承转合四段式,每个
[需补]缺口已检索补齐 - [ ] 信息源≥3 层交叉验证,关键数字≥2 独立源印证(规律 4/5)
- [ ] 无编造数字 / 引述 / 法条(规律 4 红线)
- [ ] 结尾落普世道理/商业启示,立场鲜明留余地(规律 7/8)
- [ ] 排版按所选风格规范,样式全部内联,无
<style>/script/外链 - [ ] 插图位置已标(占位块或真图),封面图已就位
- [ ] 推草稿箱:media_id 已回执;仅导出:HTML 已落盘
- [ ] 付费门:已启用,触发即自检 API Key → 扣点确认(先告知 65 点+余额)→ 第 1–8 步 → 失败按退出码话术表退点;不暴露技术细节,失败必明确告知返点
四套风格选型汇总
| 维度 | 无印良品 | 连线杂志 | 纽约客 | 瑞士国际 |
|---|---|---|---|---|
| 适合内容 | 生活/读书/人文 | 科技/AI/数码/行业分析 | 人物/深度长文/叙事 | 观点/评论/方法论 |
| 正文字号 | 16 | 16 | 16 | 16 |
| 行距 | 1.8–1.85 | 1.75 | 1.7–1.8 | 1.75 |
| 字间距 | 0.5px | 0.2px | 0–0.5px | 1px |
| 层级数 | 4 级(20/18/16/14) | 4 级(25/20/16/13) | 4 级(28/20/18/16) | 2 级(18/16) |
| 主色 | 暖深灰 #3D3A36 | 近黑 #1A1A1A | 深炭 #23201C | 深炭灰 #2B2B2B |
| 背景 | 米白 #FBFAF7 | 纯白 #FFFFFF | 暖白 #FDFCF9 | 纯白 #FFFFFF |
| 强调色 | 暗红 #A6554E | 荧光绿 #00C853 | 砖红 #B23A2B | 瑞士红 #E30613 |
| 重点手法 | 区块(浅米底) | 信息卡片 | 引文块(浅灰棕底+砖红竖线) | 重点块(浅灰底+瑞士红竖线) |
| 卡片 | 少用 | 常用 | 禁用 | 不用 |
| 段落意图 | 给呼吸 | 降负担 | 保叙事 | 给秩序 |
选型口诀:讲人物、讲深度长文用纽约客;讲数据、讲技术用连线;讲感受、讲故事用无印;讲观点、讲方法用瑞士。热点评论类多数偏「观点/评论/方法论」,默认推荐瑞士国际;人物叙事型热点(如明星、创始人故事)用纽约客。
附录:爆款 8 规律(底层依据,非执行清单)
提炼自 5 篇微信爆款文实测。这是整套方法的依据,不是第二步的打分表——已内化进各步骤:规律 2→第 3 步、规律 3→第 4 步、规律 4→第 5 步、规律 5/6→第 6 步、规律 7/8→第 7 步。
- 选题=蹭当季最热人物/事件(热搜级热点)
- 标题公式=强反差 / 强冲突 / 金句式
- 叙事框架=起承转合四段式
- 信息源多源交叉验证(≥3 层)
- 用具体数字和细节撑场
- 情绪词精准调动
- 立场鲜明但留余地
- 结尾必落普世道理/商业启示