下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/reexin--wechat-reading-articles.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @reexin/wechat-reading-articles。公众号读书笔记爆款文章生产线(wechat-reading-articles)。把「素材来源(客户输入/微信读书/其他)→ 分析定结构 → 写作 → 多风格排版推送」完整链路折叠进一个 skill,对外只暴露一个入口。每次生成文章扣 65 点(点数制 pay.reexin.cn)。
阅读全文 (展开查看完整说明)
概述
把「素材来源 → 分析定结构 → 写作 → 多风格排版推送」完整链路折叠进一个 skill,对外只暴露一个入口。本文件上半段是「创作链路」(第 1–7 步:收素材、选题、标题、定结构、检索、写正文、升华),下半段是「排版推送能力」(第 8 步,内联四套风格规范全文 + 复用 push_draft.py)。
与 wechat-hotpoint-articles 的关系:两者是不同产品。wechat-hotpoint-articles 是热点评论生产线;本 skill 是读书笔记生产线,素材来源、选题角度、写作结构、标题公式、写作基因全部独立重写。仅复用两样东西:① 下半段「四套排版风格规范」(无印良品 / 连线杂志 / 纽约客 / 瑞士国际,规范全文写在本文件下半段,不依赖外部 skill 文件);② push_draft.py 推送能力。其余创作链路(第 1–7 步)均按本文件重写,不照抄热点评论版。
推送账号通用:push_draft.py 从本目录 config.json 读 WX_APPID / WX_SECRET,推到用户自己配置的公众号,不写死任何账号名或作者名。
设计原则
- 素材来源由用户指定,AI 只分析不编:触发即弹来源问卡 → 方式A(默认)客户输入资料:用户粘贴书摘/读书笔记/大纲/已有文章,AI 结构化;方式B 微信读书:用户提供书名/作者,AI 用 WebSearch/WebFetch 检索该书核心观点/金句/数据并交叉验证;方式C 其他:用户提供主题/关键词,AI 检索相关书籍观点。不要求用户自己找素材、不擅自定方向。
- 严禁编造书摘与数据:正文所有书中观点、数据、引述、人名必须来自用户资料或检索交叉验证(见第五章),不能凭印象编。书里"据说""网传"的内容要标注,不写成确证事实。
- 四套排版规范的唯一来源 = 本文件下半段「四套风格规范」。排版时严格按所选风格章节执行,不引用外部 skill 文件。
- 升级某套精美度:只改本文件下半段对应风格章节,上半段创作链路不动。
- 付费门已启用:本技能为收费版,走自建
credits_server(pay.reexin.cn 点数制),每次生成文章扣 65 点。触发后先自检 API Key → 扣点确认 → 跑第 1–8 步 → 失败退点。交互话术(启动自检 / 扣点确认 / 进度反馈 / 失败返点 / 首次声明 / 退出码)见下方「付费门」章节。 - 弹问卡两轮制(硬约束):
AskUserQuestion一张卡最多 4 个问题。分两轮收参数,严禁一张卡塞 5 项:- 第 1 轮(第 1 步开头,收素材前):3 问 —— 来源(客户输入/微信读书/其他)+ 笔记用途(个人号/服务号/客户交付)+ 是否推草稿箱
- 第 2 轮(第 2 步结尾,素材与角度都出来后):3 问 —— 角度 + 风格 + 标题方式(与"选角度"合并成一张卡,少打断一次)
- 第 3 次弹卡(第 8 步,仅推送时需要):2 问 —— 封面 + 插图
付费门(已启用 · 产品已验证通过)
⚠️ 状态:付费底座
credits_server(https://pay.reexin.cn)已上线,本技能为收费版,每次生成文章扣 65 点。触发即走付费门:自检 API Key → 扣点确认 → 第 1–8 步 → 失败退点。本门机制与wechat-hotpoint-articles完全一致,仅skill_slug改为wechat-reading-articles。
本技能走自建 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-reading-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 调整,与 hotpoint 同价):wechat-reading-articles = 65 点/次(固定,服务端 skills 表配置)。三档套餐:体验包 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 / 充值。绝不绕过、绝不免费跑后续步骤。
- 扣点成功(退出 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 问:来源(客户输入/微信读书/其他) + 笔记用途(个人号/服务号/客户交付) + 是否推草稿箱。方式A:用户粘贴书摘/笔记/大纲,AI 结构化;方式B:用户提供书名/作者,AI 检索该书核心观点/金句/数据交叉验证;方式C:用户提供主题,AI 检索相关书观点。只收素材,不替用户编 | 开始:「正在接收素材…」结束:「素材已就绪,请确认方向。」 | 结构化素材 + 用途 + 推送意图 |
| 2 | 选题判断(角度提取) | 红灯拦截(自动,不弹卡)→ 角度提取(痛点/反常识/方法论/故事/对比/时间框架)+ 升华点 → 用户选定 → 第2轮弹问卡 3 问:角度 + 风格 + 标题方式 | 开始:「正在分析素材,提取切入角度…」结束:「提取了 N 个角度,请选择。」 | 选题角度 + 风格 + 标题方式 |
| 3 | 标题生成 | 按「读书笔记标题公式」出 3–5 个候选(认知颠覆/数字清单/金句/悬念/身份代入各覆盖),用户挑或改 | 开始:「正在生成候选标题…」结束:「出了 N 个标题,挑一个或自己改。」 | 候选标题集 |
| 4 | 确定写作结构 | 按素材类型从 6 种结构选 1 种(第一性原理递推/反常识钩子/分点清单/个人故事/二元对比/时间框架),套骨架标缺口 | 开始:「正在确定写作结构…」结束:「结构已定,准备检索补齐素材。」 | 文章骨架 |
| 5 | 多源检索验证 | 按信息源≥2 层交叉验证规范,验证书中观点/数据/引述真实性与出处,补齐骨架缺口 | 开始:「正在检索验证书中观点…」结束:「素材已验证,开始写正文。」 | 已验证素材库 |
| 6 | 写正文 | 按选定风格语气 + 8 大爆款基因写成全内联 style HTML(兼容公众号),标注插图占位,严守基因硬标准 | 开始:「正在按 XX 风格写正文…」结束:「正文初稿完成。」 | 排版前正文 HTML |
| 7 | 价值观升华 | 确保结尾落到可迁移洞察(认知升级/行动指南),立场鲜明但留余地 | 开始:「正在打磨结尾升华…」结束:「全文定稿,准备排版。」 | 定稿正文 |
| 8 | 排版推送 | 直接复用本文件下半段能力:① 弹问卡收「封面 / 插图」(风格第 2 轮已收、推送意图第 1 轮已收,此处只补图片 2 问)② 按选定风格排版 ③ 封面 / 插图 / 占位块处理 ④ 调 push_draft.py 推送到用户配置的公众号草稿箱或仅导出 HTML | 开始:「正在按 XX 风格排版…」结束:「排版完成,准备推送/导出。」 | 排版后 HTML + MD + media_id |
第一步:收素材(来源三选一,AI 只分析不编)
不要求用户自己找素材,但素材归谁提供必须明确。触发后按来源分支处理。
- 第 1 轮弹问卡(3 问,
AskUserQuestion,multiSelect=false)——只收与"找素材"相关的参数:- Q1 来源:「素材从哪来?」→ 客户输入资料(方式 A,默认)/ 微信读书(方式 B)/ 其他主题(方式 C)
- Q2 用途:「这篇笔记发哪?」→ 个人号(如周周读书随笔)/ 服务号(如周周商业笔记)/ 客户交付(给客户用的成稿)
- Q3 推送:「排完发到哪?」→ 推送到你的公众号草稿箱(需 config 配 WX_APPID/WX_SECRET)/ 仅导出 HTML(不推送)
⚠️ 不要在这一轮问风格 / 标题方式——那时素材还没分析,用户判断不了。风格与标题方式放第 2 步结尾的第 2 轮弹问卡。
- 方式 A:客户输入资料(默认)
- 用户粘贴:书摘、读书笔记、大纲、已有文章、读书会发言稿等。
- AI 直接结构化:提炼核心观点 / 关键数据 / 金句 / 人物故事 / 可反驳点,汇总成素材库。
- 若用户主动贴了事件 / 关键词 / 链接,可跳过热点搜索,直接进结构化,仍走第 2 步起的逻辑。
- 方式 B:微信读书
- 用户提供书名 + 作者(或仅书名)。
- AI 用
WebSearch检索该书核心观点 / 金句 / 数据(豆瓣读书、微信读书、得到、作者访谈等),用WebFetch抓关键原文页提取引述。 - 交叉验证:同一观点至少 2 个独立源印证(原著节选 / 权威书评 / 作者访谈 / 学术来源),避免把单篇读后感当书的核心。
- 汇总成结构化素材(核心论点 + 支撑数据 + 金句 + 争议点)。
- 方式 C:其他主题
- 用户提供主题 / 关键词(如"认知偏差""复利思维")。
- AI 检索相关书籍的核心观点,交叉验证后汇总素材。
- 素材齐了进第 2 步。抓取失败的链接不硬扛,换源或提示。
第二步:选题判断(角度提取,非打分)
本步只做两个动作:角度提取 与 红灯拦截。
角度提取(核心动作)
从素材里找三个要素,组合成切入角度(读书笔记 6 类角度):
- 痛点共鸣:读者普遍有的困惑 / 焦虑,书里给出了解药
- 反常识颠覆:书里推翻了大家以为对的常识
- 方法论可迁移:书里一套能直接用在工作/生活的框架
- 人物故事:作者或书中人物的真实经历,有叙事张力
- 二元对比:两种思维 / 两种人 / 两个时代的对照
- 时间框架递进:从过去→现在→未来的认知演化
一个角度 = 一个角度类型 + 对应的升华点。AI 提取 2–3 个角度,每个附一句话:核心冲突是什么 + 能落什么升华点,弹问卡让用户选(或自己提)。
红灯拦截(自动,不弹问卡)
命中任一直接拦下、换素材或换角度,不进后续步骤:
- 素材为空或只有 1 个来源(没做交叉验证)
- 与"读书/认知/成长"无关(本 skill 不做热点评论,那是用 hotpoint)
- 素材明显虚构或无法验证
输出
用户选定 1 个角度(角度类型 + 升华点),进第 3 步标题生成。
第 2 轮弹问卡(角度 + 风格 + 标题方式,共 3 问)
素材与角度都出来之后,一次性弹一张卡收 3 问(AskUserQuestion,multiSelect=false):
- Q1 角度:「从哪个角度写?」→ 上面提取的 2–3 个角度(每个附一句话:核心冲突 + 升华点)/ 我自己提(对话里给,我照用)
- Q2 风格:「排版用哪套风格?」→ 同下半段「风格注册表」四选一(无印良品 / 连线杂志 / 纽约客 / 瑞士国际)
- 推荐逻辑:读书/人文/感悟类默认推荐无印良品;人物故事/深度叙事推荐纽约客;方法论/认知框架类推荐瑞士国际;书里涉及科技/商业数据类推荐连线杂志。推荐项放第一个。
- Q3 标题方式:「标题怎么定?」→ 自动提炼(按公式出 3–5 候选你挑,默认)/ 我直接提供(对话发我,照用不编)
第三步:标题生成(读书笔记标题公式库)
基于爆款基因,标题 = 强认知颠覆 / 强数字清单 / 金句式,三选一或叠加。按公式出 3–5 个候选,覆盖不同公式,让用户挑或改。
公式库(读书笔记向)
| 公式 | 构造 | 范例 |
|---|---|---|
| 认知颠覆型 | 大家都以为 X,书里说其实是 Y | "你以为自律靠意志力,这本书说靠的是环境设计" |
| 数字清单型 | 具体数字 + 可量化收获 | "读完这 3 章,我重写了自己的决策清单" |
| 金句即论点 | 把核心立意直接当标题 | "读得越多,越要警惕'伪思考'" |
| 悬念误区型 | 看似正确 + "这或许是个误区" | "每天读书一小时,可能只是自我感动" |
| 身份代入型 | 用"你"把读者拉进场景 | "如果你总觉得自己不够好,这本书想先和你聊聊标准是谁定的" |
出候选的写法
- 每个候选标注所用公式(如「候选① 认知颠覆」「候选② 数字清单」)
- 强制覆盖≥3 种公式,避免雷同
- 长度控制在 1–2 行,信息密度高、无废词
- 数字、书名、人名必须来自已验证素材,不编
标题自检
- [ ] 有认知颠覆 / 数字 / 金句 / 悬念至少一种?
- [ ] 含至少一个具体数字或具体书名/人名?
- [ ] 读者扫一眼想知道"凭什么这么说"?
- [ ] 没编造未验证的信息?
第四步:确定写作结构(6 种结构选型)
基于素材类型,从 6 种写作结构选 1 种,套骨架、标素材缺口,再进第五步检索补齐。
6 种写作结构
| # | 结构 | 适用素材 | 骨架 |
|---|---|---|---|
| 1 | 第一性原理递推链 | 书里拆到底层规律,再往上推应用 | 现象 → 追问为什么 → 底层规律 → 推导出可行动结论 |
| 2 | 反常识钩子 + 论证 | 书里有强反直觉观点 | 反常识断言(钩子)→ 书里证据 → 为什么大家会误判 → 正确认知 |
| 3 | 分点清单体(N 维拆解) | 书里给出一套框架 / 多个维度 | 总论点 → 维度1 / 维度2 / 维度3… → 各配书里证据 → 收束 |
| 4 | 个人故事代入法 | 作者经历 / 书中人物故事强 | 我的/他的故事(场景)→ 卡点 → 书里给的转机 → 感悟 |
| 5 | 二元对比法 | 两种思维 / 两类人 / 两个时代 | A 做法(弱者思维)vs B 做法(强者思维)→ 差异点 → 该选谁 |
| 6 | 时间框架递进法 | 认知随时代/人生阶段演化 | 过去怎么看 → 现在怎么看 → 未来会怎么看 → 当下行动 |
选型指引
- 方法论 / 认知框架类书 → 优先 1 第一性原理 或 3 分点清单
- 强反直觉观点 → 2 反常识钩子
- 作者有传奇经历 / 书中人物故事好 → 4 个人故事
- 思维对比 / 人群对照 → 5 二元对比
- 趋势 / 认知演化类 → 6 时间框架
- 不确定时默认 3 分点清单(最稳,读者好读)
骨架占位示例
【起】<钩子:最反常识的观点 / 最扎心的痛点,1 段>
【承】<还原:书里核心论证 / 故事,2–4 小节,缺口:需补 [具体数据][原著引述]>
【转】<对比/拉锯:常识 vs 书里认知 / 两种做法,缺口:需补 [权威书评][读者反馈]>
【合】<升华:落到 [可迁移洞察],1 段>写骨架时把每个缺口用 [需补:xxx] 标出,第五步检索逐项补齐。
第五步:多源检索验证
基于红线,补齐第四步骨架的所有 [需补] 缺口。明确使用 WebSearch 工具并行检索(书名 + 作者 + 观点),再用 WebFetch 抓关键原文页提取数字与引述。
信息源分层(≥2 层)
- 原著 / 作者:书里原文节选、作者访谈、作者其他著作互证
- 权威书评 / 媒体:豆瓣读书深度长评、得到 / 微信读书解读、主流媒体书评
- 学术 / 第三方数据:相关研究论文、行业报告(用于书里引用的数据核实)
- 读者反馈:热门读书笔记、读书会讨论(用于"转"段的拉锯感 / 共鸣)
检索动作
- 用
WebSearch多关键词并行检索(书名 + 作者 + 核心观点) - 用
WebFetch抓关键原文页提取数字与引述 - 每条关键数据(年份、实验数字、销量、引用来源)至少 2 个独立源印证
- 书里"据说""网传"的内容,用"据书中提及""网传"弱化,不写成确证事实
红线
- 不编书摘、不编数据、不编引述。检索不到的缺口,要么换角度、要么在文中明确"书中提及"而非断言。
- 来源存疑的内容,用"有读者认为""据书中案例"弱化,不写成定论。
第六步:写正文
按选定风格的语气把骨架填成全内联 style HTML(兼容公众号),并套用 8 大爆款基因。
8 大爆款基因(必嵌,否则重写)
- 短句断句:长句中间加标点断开,让句子变短,口播/阅读都有自然停顿。禁用破折号(——),断开只用逗号/句号。
- 钩子前置:开头 80 字内必有钩子——用反常识观点 / 扎心痛点 / 具体场景切入,禁止平铺直叙"近日读了一本书"。
- "你"代入:用第二人称把读者拉进场景("你有没有过这种时刻""如果你也…"),增强共鸣。
- 具体数字:用书中具体数据、年份、页数、实验数字撑场,禁用"很多""大量"等虚词。
- 权威背书:点出书名 / 作者 / 研究机构,给观点可信度("《XXX》里提到""作者 XX 在研究中发现")。
- 金句可转发:每篇产出的金句要短、准、可独立转发(如"读得越多,越要警惕伪思考")。
- 情绪词精准:用精准情绪词调动(焦虑 / 释然 / 恍然 / 不甘),不堆形容词。
- 段首锚定:每段开头用关键词 / 数字 / 问句锚定,读者扫读即知这段讲什么。
反「白开水」硬标准(必过,否则重写)
正文不是"把书复述一遍"。写之前先立住以下四条,写完逐条自检,任意一条不过就重写该段:
- 开头 80 字内必须有钩子:用反常识观点 / 扎心痛点 / 具体场景切入,禁止平铺直叙的"这本书讲了…"。钩子要让读者第一句就想往下读。
- 每个论点配具体细节或数字:禁用"令人深思""值得一读"这类空词;换成可感知的画面或数字(如"书里那个实验,对照组坚持了 11 天就放弃")。
- 必须有 1 个可被反驳的锋利观点:带明确立场,不中立复述。观点要戳破一层"大家都这么想"的常识,让人想转评。
- 情绪有起伏:有张力段(转:常识 vs 书里认知的拉锯)也有共鸣段(合:升华),不是一条平线念完。
写完 4 项自检:① 有场景 / 钩子?② 有反差 / 冲突?③ 有锋利观点?④ 有情绪起伏?——四项全过才进第七步,否则重写。
- 插图位置先标占位卡(见第八步 8.4 插图逻辑),不插入未经验证的外链图
- 语气贴合风格:纽约客重叙事、连线重信息卡片、瑞士重秩序、无印重留白
- 全程保留「立场鲜明但留余地」:剖析到位,不直接站队引战
第七步:价值观升华
收尾前强制检查:
- 结尾是否落到可迁移洞察(认知升级 / 行动指南)?给读者"看懂了、能用上"的获得感。范例落点:环境优于意志力、标准是谁定的、伪思考的陷阱、复利不止在钱。
- 立场是否"理性剖析 + 价值引导",而非纯站队?——避免翻车。
- 金句是否够短、够准、可独立转发?
- 升华是否落具体可迁移的洞察,而非空话套话?禁用"我们要多读书""这本书值得深思"这类无信息量的收尾;要给读者一句"能拿去用的道理"。
升华不过度说教,用"合"段的一句金句自然带出即可。
第八步:排版推送能力(内联 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;">关键数字 / 对比:如「书里那个实验,对照组坚持了 11 天就放弃」</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;">📷 此处配图:书封 / 作者照片 / 核心概念图</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读书笔记-瑞士国际-20260906.html),不用相对路径,方便用户复制定位。 - 文件名带风格与日期,例如
读书笔记-瑞士国际-20260906.html/.md。 - 插图选了「标出位置」:交付时务必提醒,正文插图位置是占位块,需在后台手动上传真图才会显示。
总自查清单(交付前过一遍)
- [ ] 素材来自用户资料 / 微信读书 / 其他主题,已交叉验证(≥2 源)
- [ ] 弹问卡节奏正确:第1轮 3 问(来源/用途/推送)→ 选方向 → 第2轮 3 问(角度/风格/标题)→ 第8步 2 问(封面/插图),每轮均≤4 问
- [ ] 标题出了 3–5 个候选,覆盖≥3 种公式,数字/书名/人名已验证
- [ ] 写作结构从 6 种里选了 1 种,骨架每个
[需补]缺口已检索补齐 - [ ] 信息源≥2 层交叉验证,关键数据≥2 独立源印证
- [ ] 无编造书摘 / 数据 / 引述
- [ ] 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 大爆款基因 + 6 种写作结构(底层依据)
8 大爆款基因(已内化进第 6 步,写正文时逐条套)
- 短句断句:长句中间加标点断开、让句子变短,阅读/口播有自然停顿。禁用破折号(——),断开只用逗号/句号。
- 钩子前置:开头 80 字内必有钩子(反常识观点 / 扎心痛点 / 具体场景),禁止平铺直叙。
- "你"代入:用第二人称拉读者进场景("你有没有过这种时刻"),增强共鸣。
- 具体数字:用书中具体数据 / 年份 / 页数 / 实验数字撑场,禁用"很多""大量"虚词。
- 权威背书:点出书名 / 作者 / 研究机构,给观点可信度。
- 金句可转发:每篇金句短、准、可独立转发。
- 情绪词精准:用精准情绪词(焦虑 / 释然 / 恍然 / 不甘)调动,不堆形容词。
- 段首锚定:每段开头用关键词 / 数字 / 问句锚定,扫读即知这段讲什么。
6 种写作结构(已内化进第 4 步,按素材选型)
- 第一性原理递推链:现象 → 追问为什么 → 底层规律 → 推导出可行动结论。适方法论/认知框架书。
- 反常识钩子 + 论证:反常识断言(钩子)→ 书里证据 → 为什么大家会误判 → 正确认知。适强反直觉观点。
- 分点清单体(N 维拆解):总论点 → 维度1/2/3… → 各配书里证据 → 收束。最稳,默认备选。
- 个人故事代入法:我的/他的故事(场景)→ 卡点 → 书里给的转机 → 感悟。适作者经历/人物故事强。
- 二元对比法:A 做法(弱者思维)vs B 做法(强者思维)→ 差异点 → 该选谁。适思维对比/人群对照。
- 时间框架递进法:过去怎么看 → 现在怎么看 → 未来会怎么看 → 当下行动。适趋势/认知演化类。