Skip to content
Content
Skill

/aws-wechat-article-publish

公众号发布|公众号草稿箱|公众号群发|图文推送|微信 API|wechat automation|WeChat API automation|auto publish|scheduled publish — 公众号 API 发布工具,图文入草稿箱或直接群发,支持封面素材上传、发布前检查与 draft/published 模式切换。面向公众号运营、自动化内容团队、开发者。触发词:「发布」「提交」「群发」「推送」「发出去」「上传到公众号」「发到公众号」「可以发了吗」「发布前检查」。需要多环节串联(写+审+排+配图+发)请走

BOOST
From plugin
wechat-article-skills
6889 skills
Install
$ npx -y skills add aiworkskills/wechat-article-skills --skill aws-wechat-article-publish --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/aws-wechat-article-publish

Context preview

The summary Claude sees to decide when to auto-load this skill.

公众号发布|公众号草稿箱|公众号群发|图文推送|微信 API|wechat automation|WeChat API automation|auto publish|scheduled publish — 公众号 API 发布工具,图文入草稿箱或直接群发,支持封面素材上传、发布前检查与 draft/published 模式切换。面向公众号运营、自动化内容团队、开发者。触发词:「发布」「提交」「群发」「推送」「发出去」「上传到公众号」「发到公众号」「可以发了吗」「发布前检查」。需要多环节串联(写+审+排+配图+发)请走

SKILL.md

aws-wechat-article-publish.SKILL.md
name: aws-wechat-article-publish
description: 公众号发布|公众号草稿箱|公众号群发|图文推送|微信 API|wechat automation|WeChat API automation|auto publish|scheduled publish — 公众号 API 发布工具,图文入草稿箱或直接群发,支持封面素材上传、发布前检查与 draft/published 模式切换。面向公众号运营、自动化内容团队、开发者。触发词:「发布」「提交」「群发」「推送」「发出去」「上传到公众号」「发到公众号」「可以发了吗」「发布前检查」。需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。
homepage: https://aiworkskills.cn
url: https://github.com/aiworkskills/wechat-article-skills
metadata:
  openclaw:
    requires:
      env:
        - WECHAT_1_APPID
        - WECHAT_1_APPSECRET
      bins:
        - python3
    primaryEnv: aws.env

发布

**公众号 API 直连发布** —— 图文入草稿箱或直接群发,素材上传、发布前检查一站式完成。

> **套件说明** · 本 skill 属 `aws-wechat-article-*` 一条龙套件(共 9 个 slug,入口 `aws-wechat-article-main`)。跨 skill 的相对引用依赖同一 `skills/` 目录,建议一并 `clawhub install` 全套。源码:<https://github.com/aiworkskills/wechat-article-skills>

能力披露(Capabilities)

本 skill 调 `publish.py` **直连微信公众号官方 API** 发布图文。**会把本篇 `article.html` 与 `imgs/*` 文件作为 POST body 上传到微信服务器。**

  • **凭证读取**:`aws.env` 的 `WECHAT_{N}_APPID` / `WECHAT_{N}_APPSECRET`(多槽位,N≥1)
  • **凭证外发**:`APPID` / `APPSECRET` 以 query string 发给 `api.weixin.qq.com/cgi-bin/token` 换 `access_token`;后续请求带 `access_token`。微信返回的 token 只在进程内存短期缓存,**不落盘**
  • **内容外发**:封面与正文插图以 multipart 发给 `material/add_material`;`article.html` 正文与标题/摘要以 JSON POST 发给 `draft/add`、`freepublish/submit`
  • **网络目标**:默认 `api.weixin.qq.com`;可用 `WECHAT_{N}_API_BASE` / `config.yaml.wechat_api_base` 自配反代
  • **文件读**:`.aws-article/config.yaml`、`aws.env`、本篇 `article.yaml`、`article.html`、`imgs/*`
  • **文件写**:
  • `publish.py` **不写 `article.yaml`**——`media_id` / `publish_id` / `publish_completed` 只打印,写回由智能体做(见下「`publish_completed` 门禁」)
  • 图片超过微信大小限制时会在源图旁生成压缩缓存 `<原名>_compressed.jpg`(需 Pillow)。这个文件**不会被自动清理**,也不会被当作正文图上传
  • `article_init.py` 写本篇 `article.yaml` 与可选 `closing.md`
  • **shell**:`{python} {baseDir}/scripts/` 下的 `publish.py`、`getdraft.py`、`article_init.py`

**建议**:首次运行用 `publish_method: draft` 只入草稿箱确认效果,再切 `published` 真正群发。

路由

从选题到发出整条流程 → [aws-wechat-article-main](../aws-wechat-article-main/SKILL.md)。本 skill 单独触发适用于**已有 `article.html` 与封面**、只差最后一步上传的场景。

配置检查 ⛔

任何操作前先按 **[首次引导 · 检测顺序](../aws-wechat-article-main/references/first-time-setup.md)** 执行,通过后才继续(或用户明确书面确认「本次不检查」)。单独安装本 skill 时的口径见 [branches.md「六」](references/branches.md)。

脚本与子命令

`{baseDir}` = 本 SKILL.md 所在目录,所有命令在**仓库根**执行。

| 脚本 / 子命令 | 用途 | |--------|------| | **`article_init.py`** | 初始化或更新本篇 `article.yaml`(及可选 `closing.md`)。`{python} {baseDir}/scripts/article_init.py <文章目录> [--title … --author … --digest …]` | | **`getdraft.py`** | 查已群发文章(`published-list` / `published-fields` / `publish-get` / `article-get`),用于补齐往期推荐链接。见 [branches.md「五」](references/branches.md) | | `check-screening` | 校验 `config.yaml` 的 `publish_method` | | `check-wechat-env` | 按 `config.yaml` 槽位检查 `aws.env` 的 `WECHAT_N_APPID` / `APPSECRET` 是否已填 | | `check` | 环境检查:`aws.env`、各槽位、依赖、可选探测 token | | `accounts` | 列出 `config.yaml` 中各槽位名称,并标记 `aws.env` 缺项 | | `full` | 一键全流程(上传封面 → 上传正文图 → 建草稿 → 视配置提交发布) | | `token` / `upload-thumb` / `upload-content-image` / `create-draft` / `publish` / `status` | 分步操作,见 [usage.md](references/usage.md) |

`publish_method`(以 `.aws-article/config.yaml` 为准)⛔

| 值 | 含义 | `full` 的行为 | |----|------|------| | **`draft`**(默认) | 只进**草稿箱** | 创建草稿后**不**调 freepublish | | **`published`** | 草稿 + **提交发布** | 创建草稿后继续提交发布(异步)。`full --publish` 可在 `draft` 下**单次强制**带发布 | | **`none`** | 用户明确不填微信 | **立即退出**,不调任何微信接口(`--publish` 也被忽略)。其它子命令仍要凭证 |

多账号选槽位 ⛔

1. 跑 `{python} {baseDir}/scripts/publish.py accounts`,把 `config.yaml` 的 `wechat_accounts` + `wechat_{i}_name` 列给用户(例如「您有 2 个账号:1. xiaoming,2. xiaoz」)。**必须请用户选一个**,不要替他挑。 2. 选定后写 `config.yaml` 的 `wechat_publish_slot: <整数>`,**或**命令行 `--account <序号或名称>`(**CLI 优先**)。

**槽位的数量与名称只来自 `config.yaml`**;`aws.env` 里只有凭证。字段说明见 [articlescreening-schema.md](../aws-wechat-article-main/references/articlescreening-schema.md)。

`publish_completed` 门禁 ⛔

字段在**本篇 `article.yaml`**。**`publish.py` 不读、不改**,由智能体维护:`false` = 发布流程未闭环,`true` = 已视为发布完成。

**写回 `true` 之前,四项缺一不可:**

1. `article.html` 存在; 2. 文章目录下存在封面 `cover.(png|jpg|jpeg|webp)`(**不在 `imgs/` 里**); 3. `article.md` 与 `article.html` 中均**不含 `placeholder`**; 4. 发布命令成功并拿到回执(`media_id` 或 `publish_id`)。

任一不满足:只可标记为「已提交草稿,未闭环」,**不得**写回 `publish_completed: true`。

封面裁剪框(2.35:1 / 1:1)的细则见 [branches.md「三」](references/branches.md)。

工作流

发布进度:
- [ ] 第0步:⛔ 配置检查;用户未给路径 → 先定目录并读 publish_completed 分流
- [ ] 第1步:读 config.yaml 的 publish_method(及是否 full --publish)
- [ ] 第2步:accounts 列账号 → ⛔ 请用户选槽位 → check-wechat-env 校验凭证
- [ ] 第3步:发布前检查(pre-publish-checklist + check-screening + check)
- [ ] 第4步:确认本篇目录产物齐全(article.html、cover.*、无 placeholder)
- [ ] 第5步:full(仅草稿或含发布,视第 1 步)
- [ ] 第6步:确认回执并向用户说明
- [ ] 第7步:⛔ 四项门禁全过 → 写回 publish_completed: true

第 0 步的分流表见 [branches.md「一」](references/branches.md);第 3 步清单见 [references/pre-publish-checklist.md](references/pre-publish-checklist.md);第 5/6 步失败时的四类处理见 [branches.md「二」](references/branches.md)。

命令示例(仓库根)

{python} {baseDir}/scripts/publish.py check-screening
{python} {baseDir}/scripts/publish.py check-wechat-env
{python} {baseDir}/scripts/publish.py accounts
{python} {baseDir}/scripts/publish.py check
{python} {baseDir}/scripts/publish.py --account 1 full drafts/YYYYMMDD-标题slug/
{python} {baseDir}/scripts/getdraft.py published-fields

注意 `--account` 是**全局选项,放在子命令之前**。

分支与异常

未给路径的分流、发布失败四分类、封面裁剪框、几处回退、往期链接补齐、单独安装 → [references/branches.md](references/branches.md)。

更多用法:[usage.md](references/usage.md)、[submit-guide.md](references/submit-guide.md)、[api-reference.md](references/api-reference.md)。

过程文件

| 读取 | 产出 | |------|------| | `article.html`、`cover.*`、`imgs/`、本篇 `article.yaml`、`.aws-article/config.yaml`、`aws.env` | 公众号草稿或已提交发布;**成功后**由智能体把 `publish_completed: true` 写回 `article.yaml`(`publish.py` 不改此键) |

Read more
Ships withwechat-article-skills

开源公众号运营数字员工。选好风格,说一句话,AI 自动完成选题、写作、排版、配图到发布的全部流程。不用懂设计,不用会代码。 📬 项目更新很频繁——点右上角 Watch → Custom → Releases,有新版本时会通知你。

Get the whole plugin

Other skills on wechat-article-skills.