aws-wechat-article-writing
aws-wechat-article-writing is a Claude Code skill for generating and editing WeChat public account articles. Use it to create complete first drafts from outlines or topics, or to revise, rewrite, extend, and polish existing drafts by triggering keywords like "改写" (rewrite), "润色" (polish), or "续写" (continue). This skill sends article content to configured LLM endpoints (DeepSeek, GPT, Claude) and is part of a nine-skill suite; install the complete suite for full functionality across writing, review, layout, image sourcing, and publishing workflows.
git clone --depth 1 https://github.com/aiworkskills/wechat-article-skills /tmp/aws-wechat-article-writing && cp -r /tmp/aws-wechat-article-writing/skills/aws-wechat-article-writing ~/.claude/skills/aws-wechat-article-writingSKILL.md
# 长文写作
**公众号长文 AI 写作引擎** —— 从提纲或话题生成完整初稿,支持改写、续写、润色,多模型可切。
> **套件说明** · 本 skill 属 `aws-wechat-article-*` 一条龙套件(共 9 个 slug,入口 `aws-wechat-article-main`)。跨 skill 的相对引用依赖同一 `skills/` 目录,建议一并 `clawhub install` 全套。源码:<https://github.com/aiworkskills/wechat-article-skills>
## 能力披露(Capabilities)
本 skill 调用 `write.py` 生成文章初稿,**会把文章内容发送给用户配置的 LLM 端点**。使用前请阅读以下全部行为说明:
- **凭证读取**:`write.py` 读取仓库根 `aws.env` 的 `WRITING_MODEL_API_KEY`
- **凭证外发**:该 API key 以 `Authorization: Bearer <key>` 头**发送到**用户在 `config.yaml.writing_model.base_url` 配置的外部端点(常见为 DeepSeek / OpenAI / Anthropic 等 Chat Completions 兼容 API)。**请使用专用 key 并配置可信端点或内部代理**
- **内容外发**:Prompt 内包含本篇 `article.yaml` / `topic-card.md` / 合并配置 / 用户通过 `--reference` 指定的参考文档 `.md` 全文 → 整体 POST 给上述端点
- **文件读(仓库内)**:`.aws-article/config.yaml`、本篇 `article.yaml`、`topic-card.md`、`.aws-article/products/{产品名}/*.md`(业务介绍 .md,直接挂在产品根)
- **文件读(仓库外)**:若仓库内 `.aws-article/` 缺失,`write.py` 会从用户家目录 `~/.aws-article/` 读取 `writing-spec.md` 与 `presets/`(**只读预设,不读凭证**)
- **文件写**:仅本篇目录下 `draft.md`、`article.md`
- **shell**:仅 `python3 {baseDir}/scripts/write.py`
可使用 `write.py prompt` 子命令**只输出 prompt JSON 不调用 LLM**,由 Agent 代写 —— 想避免把内容发给第三方时用这条路径。
## 配套 skill(informational)
本 skill 是 `aws-wechat-article-*` 一条龙公众号套件的**写稿环节**(入口 `aws-wechat-article-main`)。工作流中的若干步骤会读取同级 `../aws-wechat-article-main/references/*.md` 等共享文档(首次引导、env/config 示例、articlescreening schema 等)。
- **套件完整装齐到同一 `skills/` 根目录**时,跨 skill 引用都能读到。
- **单独安装本 skill** 时,跨 skill 引用的步骤会在读取阶段遇到 `file not found`;本 skill 内的纯本地步骤仍可用。
完整 9 slug 清单见 [源码仓库](https://github.com/aiworkskills/wechat-article-skills)。
## 路由
从零发文、一条龙、完整流程 → [aws-wechat-article-main](../aws-wechat-article-main/SKILL.md)。
## 配置检查 ⛔
任何操作执行前,**必须**按 **[首次引导](../aws-wechat-article-main/references/first-time-setup.md)** 执行其中的 **「检测顺序」**。检测通过后才能进行以下操作(或用户明确书面确认「本次不检查」):
从选题到发布的**前置规则**(阻断、禁止擅自降级、「本次例外」等)见 [aws-wechat-article-main/SKILL.md](../aws-wechat-article-main/SKILL.md);本 skill 只描述写稿步骤。
**写作模型**:**`writing_model`**(`provider`、`base_url`、`model` 等)在 **`.aws-article/config.yaml`**;**`WRITING_MODEL_API_KEY`** 在仓库根 **`aws.env`**。键名对照 **`{baseDir}/../aws-wechat-article-main/references/env.example.yaml`**。
**交互约定**:须遵守 main 的**智能体行为约束**——**未**通过环境校验且**未**获用户明确「本次例外」时,不得默认改由当前 Agent 代写并假装流程完整。**环境检查未通过时**,只按 [首次引导](../aws-wechat-article-main/references/first-time-setup.md) 处理配置选项,**不要**在同一条回复里混入写稿、草稿路径或多草稿选择;配置闭环后再进入本 skill 工作流。
## 工作流
```
写稿进度:
- [ ] 第0步:⛔ [首次引导 · 检测顺序](../aws-wechat-article-main/references/first-time-setup.md)
- [ ] 第1步:⛔ **`.aws-article/config.yaml`** 中 **`article_category`**、**`target_reader`**、**`default_author`**(trim 后)须**均非空**;缺则**逐项问用户**、用户确认后再**写回文件**;**禁止**从 **`article.yaml`** 等擅自抄录(与 [main](../aws-wechat-article-main/SKILL.md)「2) 全局账号约束」一致);**须先于**续旧/新开
- [ ] 第2步:⛔ **在不了解**用户要**续写既有草稿**还是**新开一篇**时,**须先询问**并确定本篇 `drafts/…` 目录,**再**进入以下步骤;**禁止**未确认就调用写作脚本(见 [main](../aws-wechat-article-main/SKILL.md)「3) 本篇准备」开头)
- [ ] 第3步:读取本篇约束与写作规范;**写稿前先按下文「业务资料库」判断是否查阅/是否传 `--reference`**
- [ ] 第4步:发布方式(`publish_method`)⛔
- [ ] 第5步:确定输入与写作方式
- [ ] 第6步:写作
- [ ] 第7步:自检与修正
- [ ] 第8步:展示并等待用户确认 ⛔
```
**说明**:第 2 步在用户**已明确**路径或意图(例如直接给出 `drafts/…`、或明确说「新开一篇」)时可**不再重复盘问**。
**多草稿 / 未闭环**:与第 2 步同原则——**不了解**续写/新开时**须先问**,**禁止**自动选中某一 `drafts/…` 跑写作脚本。
### 确认轮次优化
以下步骤可**合并或静默通过**以减少交互轮次:
1. **Step 1**(全局三键):若 `article_category`、`target_reader`、`default_author` 已非空 → **静默通过**,无需再确认。
2. **Step 4**(publish_method):若已是 `draft`/`published`/`none`(合法值)→ **静默通过**(规则第3条已允许)。
3. **合并询问**:当需要同时确认 Step 2(新篇/续写)和 Step 4(发布意图)时,**合并为一轮提问**。
4. **配图确认**:若用户已给出明确主题且未提出风格要求,images skill 可按默认风格自动生成,**无需单独确认配图方案**。
**最少轮次**:用户意图明确时(如给出主题 + "写一篇文章"),理想轮次为 **1 轮**(确认标题/摘要)+ **写完后展示结果**。
### 第1步:全局账号三键(`.aws-article/config.yaml`)⛔
**在续旧/新开询问之前**,打开 **`.aws-article/config.yaml`**,检查 **`article_category`**、**`target_reader`**、**`default_author`** 是否 **trim 后均非空**。任一项缺失:**逐项询问用户**,取得**用户当轮明确答复**后再**写回该文件**,再进入第 2 步。**禁止**从 **`article.yaml`**、其它草稿或仓库文件**静默推断并写盘**;可把从某文件读到的内容**仅作建议展示**,须用户同意后再写入。**禁止**跳过本步。**禁止**仅在对话里确认却不落盘。与 [main](../aws-wechat-article-main/SKILL.md)「2) 全局账号约束」一致。
### 第2步:续旧稿还是新稿(不了解时须先问)⛔
**当不清楚**用户是要**续写 `drafts/` 下某篇进行中草稿**还是**新开一篇**时:**须先询问**(可列出候选目录),待用户选定后再进入第 3 步。**须在第 1 步全局三键已落盘之后执行**。**已明确**时跳过本步询问。
**目录命名**:新开一篇时,目录名**必须**为 `YYYYMMDD-标题slug`(如 `drafts/20260406-wechat-article-skills/`)。`YYYYMMDD` 为当日日期,`slug` 为小写、连字符分隔的标题缩写。**禁止省略日期前缀**。
### 第3步:读取本篇约束与写作规范
**⛔ 关键字段不得空跑**:在调用 **`write.py`** 或按合并约束让 Agent 代写之前,确认合并后的 **`article_category`**、**`target_reader`** **均为非空字符串**(trim 后);**`default_author`** 非空 **或** 本篇 **`article.yaml` 的 `author`** 非空。若任一项不满足,**须暂停写稿**,引导用户补全 **`.aws-article/config.yaml`**(及/或本篇 **`article.yaml`**),**并实际写入文件**——**不要**仅用对话表格收集「读者」却不落盘。全局三键的优先检查顺序见 [main](../aws-wechat-article-main/SKILL.md)「2) 全局账号约束」;若第 1 步已正确落盘,此处多为合并 **`article.yaml` 覆盖**后的复核。
**约束从哪来**:`write.py` 会先读全局 **`.aws-article/config.yaml`**,再读本篇目录下的 **`article.yaml`**,把两边的键**叠成一张表**用来生成写作提示——**若同一键在两份文件里都有,以本篇 `article.yaml` 为准**。字段分工见 [articlescreening-schema.md](../aws-wechat-article-main/references/articlescreening-schema.md)。
1. **`.aws-article/config.yaml`**:**文风、结构预设、禁用词、字数、`embeds` 等**与「写什么、怎么写」有关的顶层字段会进入这张表。
**`writing_model` / `image_model`** 两段只给脚本**连 API 用**(地址、模型名等),**不**整段放进给大模型的「写作说明」里,以免把技术配置当成正文要求。
2. 本篇 **`article.yaml`**:本篇标题、作者、摘要、**`publish_completed`** 等;与 config **重名的键**会**覆盖** config。
**`write.py`** 在仓库根执行,按**输入 `.md` 所在目录**找到本篇 **`article.yaml`**;叠完后的约束表不能为空(一般只要 **`config.yaml`** 里已有账号/文风等即可)。**`publish_completed`**:新建或补全本篇 **`article.yaml`** 时须为 **`false`**;本篇发布真正结束后由 [publish skill](../aws-wechat-article-publish/SKILL.md) 改为 **`true`**;**`publish.py` 不修改此字段**。
`default_structure` / `default_closing_block` 指向的 **预设正文**来自 **`.aws-article/presets/`**(及用户目录下同名 presets),与配置中的**文件主名**对应。两者在本篇 **`article.yaml`** 中必须为**单元素列表** `[名]`(或空列表 `[]`);`write.py` 对预设选择仅读取本篇 `article.yaml`,不再在执行阶段从 `custom_*` / `default_*` 候选池推断。
**多候选自动选择**:当 `default_structure`(或 `default_closing_block`)含**多个候选**时,Agent 须:
1. 读取每个候选预设公众号素材|业务资料库|预设包|.aws 预设包|主题包|品牌包|aiworkskills.cn — 用户业务资料库与预设包管理:业务资料按产品名组织在 `.aws-article/products/{产品名}/`(介绍 .md 直挂产品根 + 配图归 `images/` 子目录含同名说明 .md),AI 与用户对话产出业务介绍内容时引导用户保存;图片入库走 `product_image_ingest.py --product <产品名> --stem <中文名>`。导入 .aws ZIP 预设包(本地文件或 `https://aiworkskills.cn/**/*.aws` URL)合并主题/配色/字体配置到 `.aws-article/presets/`;`config.yaml` 仅本地不存在时从包内复制,已存在则 stdout 输出差异 JSON 不覆盖。面向内容运营、品牌团队、设计支持岗。触发词:「素材库入库」「stock images」「上传图到素材库」「.aws」「预设包」「导入预设」「主题包」「aiworkskills.cn 链接」「.aws 下载地址」。
公众号排版|Markdown 转 HTML|排版主题|段落样式 — 公众号一键排版工具,Markdown 文稿转微信后台可粘贴 HTML,多主题、多字号、段落样式切换,所见即所得。面向公众号编辑、独立作者、排版岗。触发词:「排版」「版式」「美化」「格式化」「字号」「段落样式」「换个排版主题」「换个版式」「转 HTML」「弄好看点」「调整格式」。换预设包/品牌包/整套主题配色请走 aws-wechat-article-assets;需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。
公众号封面|公众号配图|公众号插图|AI 生图 — 公众号 AI 封面与配图生成,按文章标题与内容自动匹配画风,一稿多方案,多风格预设可复用。面向公众号编辑、自媒体、品牌设计。触发词:「封面」「配图」「插图」「生成图片」「给文章加图」「做个封面」「文章插图」「配个图」。不写正文只发一组图请走 aws-wechat-sticker;需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。
公众号运营|微信公众号|公众号一条龙|公众号全流程|自媒体运营|wechat automation|content pipeline|AIGC workflow — 公众号一条龙运营总控入口,选题→写稿→审稿→排版→配图→发布串联 8 个子 skill,单条指令完成整篇图文从 0 到上架。面向公众号小编、自媒体、品牌内容。触发词分层:**一条龙流程**「一条龙」「完整流程」「从头做」「从 0 到发布」;**新做新发**「帮我写篇公众号文章」「做一篇公众号文章」「我想发一篇」「帮我发一篇」「再来一篇」;**选题起点**「今天写什么好」「有什么好写的」「找个话题」「爆款选题」「热点选题」「起个爆款标题」;**策划起点**「内容日历」「系列策划」「专栏规划」「连载」;**流程恢复**「接着上次那篇」「继续昨天的」「继续上次的」「接着之前的进度」;**显式模型新写**「用 GPT 写一篇」「用 DeepSeek 写一篇」「把提纲写成文章」。子 skill(topics/writing/review/formatting/images/publish/sticker/assets)单独触发仅限对**已有产物**的修改场景(如"改标题""润色这段""排版""审稿""加封面""发布");新做/策划/多环节串联一律走本入口。
公众号发布|公众号草稿箱|公众号群发|图文推送|微信 API|wechat automation|WeChat API automation|auto publish|scheduled publish — 公众号 API 发布工具,图文入草稿箱或直接群发,支持封面素材上传、发布前检查与 draft/published 模式切换。面向公众号运营、自动化内容团队、开发者。触发词:「发布」「提交」「群发」「推送」「发出去」「上传到公众号」「发到公众号」「可以发了吗」「发布前检查」。需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。
公众号审稿|公众号校对|敏感词检测|内容合规 — 公众号发布前合规审查:敏感词扫描、错别字检测、政治合规、平台规范校验,一次性输出修改清单。面向公众号编辑、自媒体作者、合规岗。触发词:「审稿」「审核」「校对」「合规」「敏感词」「错别字」「稿子检查一下」「稿子帮我看看」「稿子写完了」「文章检查一下」「检查下有没有问题」「能不能发」「发布前检查」。需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。
公众号选题|爆款标题|热点追踪|系列策划 — 公众号 AI 选题与标题生成,覆盖热点调研、选题策划、起标题、写摘要、系列排期。面向自媒体编辑、内容运营。触发词(**单独触发仅限对已有标题/摘要的修改**):「改标题」「换个标题」「重起标题」「优化标题」「标题再想想」「换个标题试试」「改摘要」「重写摘要」「优化摘要」「摘要再优化下」。新做选题、起新标题、策划系列/内容日历、追热点都请走 aws-wechat-article-main;需要多环节串联(写+审+排+配图+发)也走 main。
公众号贴图|九宫格|多图推送|图片消息|表情包 — 贴图与多图推送:从创意构思、AI 生图到公众号图片消息发布全流程,含九宫格自动排布、多图压缩、组图打包。面向公众号运营、自媒体、IP 账号。触发词:「贴图」「多图推送」「发组图」「图片消息」「九宫格」「做一组图」「图片帖子」「发几张图」「不写正文发图」「只发图不写字」。是文章内配图/封面请走 aws-wechat-article-images;需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。