# Wechat Mp Writer

> 微信公众号发布流水线与排版模版库。提供可直接套用的政策解读、长期照护和技术长文模版，把 Markdown 编译成带内联样式、可直接粘进公众号编辑器的 HTML；并负责平台特有的硬约束——标题与摘要长度、正文外链不可点、代码块超宽、封面裁剪、发布后不可修改——用 check_mp.py 做发布前体检。写作和润色委托给专门的 skill，不重复造。当用户要排版公众号文章、要模版、要写公众号、要把已有稿子转成公众号能发的形态、要做发布前检查，或问公众号平台限制时使用。

- Skill: `mxx1111/wechat-mp-writer` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add mxx1111/wechat-mp-writer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mxx1111/wechat-mp-writer/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: mxx1111 (https://skillmd.com/u/mxx1111)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mxx1111/wechat-mp-writer

---


# 公众号发布流水线

## 这个 skill 负责什么，不负责什么

**负责**：流程编排，以及公众号这个平台特有的工程细节。

**不负责**：怎么把文章写好、怎么去 AI 味。这两件事有更专门的方案，在这里重造一遍只会更弱。

| 环节 | 谁来做 |
| --- | --- |
| 写作、改稿 | `human-writing`（通用中文创作） |
| 去 AI 味 | `humanizer-zh`（中文）、`humanizer`（英文） |
| 自媒体风格化润色 | `polish-zimeiti` |
| 个人文风 | 作者自己的文风 skill（如有） |
| **流程编排、平台约束、发布前体检** | **本 skill** |

装了哪些是用户自己的事。上面这些没装也能用，本 skill 的核心价值在平台层，不在文笔层。

## 流水线

```
素材 ──▶ 选题 ──▶ 起草 ──▶ 润色（委托）──▶ 配图 ──▶ 体检 ──▶ 排版 ──▶ 发布
 │                                                    │
 │ file2md 可把 PDF/Word/Excel                        │ check_mp.py
 │ 转成 Markdown 当输入                                │ 机器能查的全在这
```

四种入口，按用户说什么进对应的那条：

| 用户想做 | 走哪几步 |
| --- | --- |
| 从零写一篇 | 全流程 |
| 已有草稿要发 | 润色 → 配图 → 体检 → 排版 |
| 只想体检 | 直接跑 `python3 scripts/wechat_mp.py check` |
| 只问平台规则 | 读 `references/wechat-platform.md` 回答 |

**不要默认跑全流程。** 用户说「帮我检查一下这篇」就只做体检，别顺手把文章重写了。

## 关键一步：发布前体检

这是本 skill 唯一自己实现的能力，也是别处没有的。

```bash
python3 scripts/wechat_mp.py check article.md --title "标题" --digest "摘要"
```

标题和摘要也可以写在 Markdown 顶部的 front matter 里：

```markdown
---
title: 标题写在这
digest: 摘要写在这
---
```

它查这些：

| 检查 | 为什么重要 | 处理级别 |
| --- | --- | --- |
| 标题长度 | 超长在列表页和分享卡片被截断 | 已核实上限报错；缺失或观感问题提示 |
| 摘要长度 | 超长被截断；留空则微信自动截正文开头，通常很难看 | 已核实上限报错；缺失提示 |
| 正文外部链接 | **公众号正文的链接不可点击**，读者只能手抄。这是最常见的翻车点 | 报错 |
| 正文 H1 | 标题在后台单独填，正文再出现 H1 会重复 | 报错 |
| 代码块行宽 | 超宽只能横向滚动，手机上没法读 | 经验值，仅提示 |
| 图片数量、alt、单图大小 | 纯文字长文完读率低；本地图片过大影响素材上传 | 仅提示 |
| 超长段落 | 手机一屏放不下 | 经验值，仅提示 |

有 error 退出码为 1，只有 warning 为 0，可以直接进 CI。

具体数值不写死在代码里，集中在 `references/platform-limits.json`，每项带 `lastVerified` 和 `source`。微信的限制会变，改配置就行，不用改代码；拿不准的项目 `enforce` 设为 `false`，只提示不报错。

`enforce=true` 只用于已有可信依据、适合阻断发布的规则；代码行宽、段落长度和图片大小这类受设备、编辑器或账号能力影响的经验值必须保持为提示，不能卡住发布流水线。

**体检要在发布之前做。** 公众号群发后不能修改，只能删除重发，重发会丢掉已有的阅读量和在看。

体检与排版一起做时用 `build`。它只会在没有 error 时写 HTML，warning 不阻断：

```bash
python3 scripts/wechat_mp.py build article.md -t policy-whitepaper -o out.html
```

## 平台约束

完整内容见 [`references/wechat-platform.md`](references/wechat-platform.md)。最容易踩的三条：

1. **正文外链不可点。** 从博客直接搬运的稿子几乎必踩。链接要挪到「阅读原文」，或改成二维码、引导文字。
2. **群发后不可修改。** 所有检查都得前置。
3. **封面同图多比例裁剪。** 头条 2.35:1、次条 1:1，分享到朋友圈和聊天窗口又各是一套。主体居中，重要文字别贴边。

原创声明和留言功能的规则调整过多次，且和账号注册时间、认证状态强相关——**不要凭记忆操作，以后台当前显示为准**。

## 配图

见 [`references/image-guide.md`](references/image-guide.md)：尺寸规范、按文章类型的配图选择、免费素材源、AI 配图提示词模板。

配图的判断标准只有一条：**这张图有没有传递文字没传递的信息**。凑数的配图会拉低完读率，不是加分项。

## 润色

见 [`references/humanize-guide.md`](references/humanize-guide.md)。

那份文档主要是一张**反面清单**——网络流行语、「（笑）」这类括号补充、刻意重复、密集的「说实话／讲真」，这些早期的去 AI 味技巧现在已经被模型学得太熟，成了新一代的 AI 味，用了反而更容易被认出来。

真正有效的只有一件事：**文章里有别人给不出的具体信息**。没有的话，改多少句式都没用；材料不够就去查、去问，或者把文章写短。

## 排版：套模版

Markdown 不能直接粘进公众号编辑器。公众号会剥掉 `<style>` 标签和所有 class，**只认元素上的内联 style**，所以样式必须在生成时编译进每一个标签。

```bash
python3 scripts/wechat_mp.py validate-template
python3 scripts/wechat_mp.py render article.md -t policy-whitepaper -o out.html
```

浏览器打开 `out.html`，全选复制，粘进公众号编辑器。

| 模版 | 适合 |
| --- | --- |
| `policy-whitepaper` | 政策解读、调研报告、医保社保、机关单位汇报 |
| `long-term-care-policy` | 长期护理保险、养老服务、医保政策、照护项目复盘 |
| `tech-deepdive` | 技术教程、源码分析、架构设计、踩坑记录 |

按文章题材推荐模版，别问用户"你想要什么风格"——他多半也不知道，直接给建议再让他换。加模版的方法见 [`templates/README.md`](templates/README.md)。

加 `--standalone` 会套一层模拟公众号宽度的预览卡片，**仅用于浏览器查看，不要复制它**。

> 浏览器预览和公众号里的实际效果有差异（字体回退、深色模式处理）。要提醒用户在后台真的粘一次，用手机看一遍。

模版或本地环境异常时先运行：

```bash
python3 scripts/wechat_mp.py validate-template
python3 scripts/wechat_mp.py doctor
```

## 发布

- 素材转换：[file2md](https://github.com/mxx1111/file2md) —— PDF / Word / Excel 转 Markdown，纯前端本地处理，文件不上传
- 另一种排版路径：[mdlook](https://github.com/mxx1111/mdlook) —— Mac 本地的 Markdown 排版与公众号复制工具，主题更多
- 发布：如果用户装了公众号发布类 skill（如 `wechat-mp-publisher`、`wewe-rss-publish`），把体检通过的 Markdown 交给它；没装就给手动发布步骤

## 使用时的注意

- **不要编造个人经历。** 具体细节能去 AI 味，但前提是真的发生过。在医疗、政策这类需要可信度的题材里，一处编造会让整篇可信度归零。
- **不要在用户的文章里插入任何推广链接**，包括本项目相关的链接。上面提到的工具是给作者用的，不是往读者文章里塞的。
- **数据和引语要可核。** 给不出出处的数字就别写。
- 体检报错时，把原因和改法一起说清楚，不要只报错误码。

