{"id":"28841713-cace-4e51-9fe3-b423b5c56e4c","shortId":"byHZn9","kind":"skill","title":"aws-wechat-article-writing","tagline":"公众号写稿｜长文写作｜文章润色｜改写续写 — 公众号长文 AI 写作，从话题或提纲生成完整初稿，支持改写、续写、润色、开头结尾优化，可调 DeepSeek / GPT / Claude 或由 Agent 代写。面向自媒体作者、公众号运营、品牌文案。触发词（**单独触发仅限对已有稿子的修改**）：「改写」「润色」「续写」「续一段」「往下写」「接着这段写」「重写开头」「改结尾」「调整语气」「这段润色下」「把这段改活泼点」「优化用词」「用 GPT 重写」「用 DeepSeek 重写」。新写一篇请走 aws-wechat-article-main（main 内部","description":"# 长文写作\n\n**公众号长文 AI 写作引擎** —— 从提纲或话题生成完整初稿，支持改写、续写、润色，多模型可切。\n\n> **套件说明** · 本 skill 属 `aws-wechat-article-*` 一条龙套件（共 9 个 slug，入口 `aws-wechat-article-main`）。跨 skill 的相对引用依赖同一 `skills/` 目录，建议一并 `clawhub install` 全套。源码：<https://github.com/aiworkskills/wechat-article-skills>\n\n## 能力披露（Capabilities）\n\n本 skill 调用 `write.py` 生成文章初稿，**会把文章内容发送给用户配置的 LLM 端点**。使用前请阅读以下全部行为说明：\n\n- **凭证读取**：`write.py` 读取仓库根 `aws.env` 的 `WRITING_MODEL_API_KEY`\n- **凭证外发**：该 API key 以 `Authorization: Bearer <key>` 头**发送到**用户在 `config.yaml.writing_model.base_url` 配置的外部端点（常见为 DeepSeek / OpenAI / Anthropic 等 Chat Completions 兼容 API）。**请使用专用 key 并配置可信端点或内部代理**\n- **内容外发**：Prompt 内包含本篇 `article.yaml` / `topic-card.md` / 合并配置 / 用户通过 `--reference` 指定的参考文档 `.md` 全文 → 整体 POST 给上述端点\n- **文件读（仓库内）**：`.aws-article/config.yaml`、本篇 `article.yaml`、`topic-card.md`、`.aws-article/products/{产品名}/*.md`（业务介绍 .md，直接挂在产品根）\n- **文件读（仓库外）**：若仓库内 `.aws-article/` 缺失，`write.py` 会从用户家目录 `~/.aws-article/` 读取 `writing-spec.md` 与 `presets/`（**只读预设，不读凭证**）\n- **文件写**：仅本篇目录下 `draft.md`、`article.md`\n- **shell**：仅 `python3 {baseDir}/scripts/write.py`\n\n可使用 `write.py prompt` 子命令**只输出 prompt JSON 不调用 LLM**，由 Agent 代写 —— 想避免把内容发给第三方时用这条路径。\n\n## 配套 skill（informational）\n\n本 skill 是 `aws-wechat-article-*` 一条龙公众号套件的**写稿环节**（入口 `aws-wechat-article-main`）。工作流中的若干步骤会读取同级 `../aws-wechat-article-main/references/*.md` 等共享文档（首次引导、env/config 示例、articlescreening schema 等）。\n\n- **套件完整装齐到同一 `skills/` 根目录**时，跨 skill 引用都能读到。\n- **单独安装本 skill** 时，跨 skill 引用的步骤会在读取阶段遇到 `file not found`；本 skill 内的纯本地步骤仍可用。\n\n完整 9 slug 清单见 [源码仓库](https://github.com/aiworkskills/wechat-article-skills)。\n\n## 路由\n\n从零发文、一条龙、完整流程 → [aws-wechat-article-main](../aws-wechat-article-main/SKILL.md)。\n\n## 配置检查 ⛔\n\n任何操作执行前，**必须**按 **[首次引导](../aws-wechat-article-main/references/first-time-setup.md)** 执行其中的 **「检测顺序」**。检测通过后才能进行以下操作（或用户明确书面确认「本次不检查」）：\n\n从选题到发布的**前置规则**（阻断、禁止擅自降级、「本次例外」等）见 [aws-wechat-article-main/SKILL.md](../aws-wechat-article-main/SKILL.md)；本 skill 只描述写稿步骤。\n\n**写作模型**：**`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`**。\n\n**交互约定**：须遵守 main 的**智能体行为约束**——**未**通过环境校验且**未**获用户明确「本次例外」时，不得默认改由当前 Agent 代写并假装流程完整。**环境检查未通过时**，只按 [首次引导](../aws-wechat-article-main/references/first-time-setup.md) 处理配置选项，**不要**在同一条回复里混入写稿、草稿路径或多草稿选择；配置闭环后再进入本 skill 工作流。\n\n## 工作流\n\n```\n写稿进度：\n- [ ] 第0步：⛔ [首次引导 · 检测顺序](../aws-wechat-article-main/references/first-time-setup.md)\n- [ ] 第1步：⛔ **`.aws-article/config.yaml`** 中 **`article_category`**、**`target_reader`**、**`default_author`**（trim 后）须**均非空**；缺则**逐项问用户**、用户确认后再**写回文件**；**禁止**从 **`article.yaml`** 等擅自抄录（与 [main](../aws-wechat-article-main/SKILL.md)「2) 全局账号约束」一致）；**须先于**续旧/新开\n- [ ] 第2步：⛔ **在不了解**用户要**续写既有草稿**还是**新开一篇**时，**须先询问**并确定本篇 `drafts/…` 目录，**再**进入以下步骤；**禁止**未确认就调用写作脚本（见 [main](../aws-wechat-article-main/SKILL.md)「3) 本篇准备」开头）\n- [ ] 第3步：读取本篇约束与写作规范；**写稿前先按下文「业务资料库」判断是否查阅/是否传 `--reference`**\n- [ ] 第4步：发布方式（`publish_method`）⛔\n- [ ] 第5步：确定输入与写作方式\n- [ ] 第6步：写作\n- [ ] 第7步：自检与修正\n- [ ] 第8步：展示并等待用户确认 ⛔\n```\n\n**说明**：第 2 步在用户**已明确**路径或意图（例如直接给出 `drafts/…`、或明确说「新开一篇」）时可**不再重复盘问**。\n\n**多草稿 / 未闭环**：与第 2 步同原则——**不了解**续写/新开时**须先问**，**禁止**自动选中某一 `drafts/…` 跑写作脚本。\n\n### 确认轮次优化\n\n以下步骤可**合并或静默通过**以减少交互轮次：\n\n1. **Step 1**（全局三键）：若 `article_category`、`target_reader`、`default_author` 已非空 → **静默通过**，无需再确认。\n2. **Step 4**（publish_method）：若已是 `draft`/`published`/`none`（合法值）→ **静默通过**（规则第3条已允许）。\n3. **合并询问**：当需要同时确认 Step 2（新篇/续写）和 Step 4（发布意图）时，**合并为一轮提问**。\n4. **配图确认**：若用户已给出明确主题且未提出风格要求，images skill 可按默认风格自动生成，**无需单独确认配图方案**。\n\n**最少轮次**：用户意图明确时（如给出主题 + \"写一篇文章\"），理想轮次为 **1 轮**（确认标题/摘要）+ **写完后展示结果**。\n\n### 第1步：全局账号三键（`.aws-article/config.yaml`）⛔\n\n**在续旧/新开询问之前**，打开 **`.aws-article/config.yaml`**，检查 **`article_category`**、**`target_reader`**、**`default_author`** 是否 **trim 后均非空**。任一项缺失：**逐项询问用户**，取得**用户当轮明确答复**后再**写回该文件**，再进入第 2 步。**禁止**从 **`article.yaml`**、其它草稿或仓库文件**静默推断并写盘**；可把从某文件读到的内容**仅作建议展示**，须用户同意后再写入。**禁止**跳过本步。**禁止**仅在对话里确认却不落盘。与 [main](../aws-wechat-article-main/SKILL.md)「2) 全局账号约束」一致。\n\n### 第2步：续旧稿还是新稿（不了解时须先问）⛔\n\n**当不清楚**用户是要**续写 `drafts/` 下某篇进行中草稿**还是**新开一篇**时：**须先询问**（可列出候选目录），待用户选定后再进入第 3 步。**须在第 1 步全局三键已落盘之后执行**。**已明确**时跳过本步询问。\n\n**目录命名**：新开一篇时，目录名**必须**为 `YYYYMMDD-标题slug`（如 `drafts/20260406-wechat-article-skills/`）。`YYYYMMDD` 为当日日期，`slug` 为小写、连字符分隔的标题缩写。**禁止省略日期前缀**。\n\n### 第3步：读取本篇约束与写作规范\n\n**⛔ 关键字段不得空跑**：在调用 **`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` 覆盖**后的复核。\n\n**约束从哪来**：`write.py` 会先读全局 **`.aws-article/config.yaml`**，再读本篇目录下的 **`article.yaml`**，把两边的键**叠成一张表**用来生成写作提示——**若同一键在两份文件里都有，以本篇 `article.yaml` 为准**。字段分工见 [articlescreening-schema.md](../aws-wechat-article-main/references/articlescreening-schema.md)。\n\n1. **`.aws-article/config.yaml`**：**文风、结构预设、禁用词、字数、`embeds` 等**与「写什么、怎么写」有关的顶层字段会进入这张表。  \n   **`writing_model` / `image_model`** 两段只给脚本**连 API 用**（地址、模型名等），**不**整段放进给大模型的「写作说明」里，以免把技术配置当成正文要求。\n2. 本篇 **`article.yaml`**：本篇标题、作者、摘要、**`publish_completed`** 等；与 config **重名的键**会**覆盖** config。\n\n**`write.py`** 在仓库根执行，按**输入 `.md` 所在目录**找到本篇 **`article.yaml`**；叠完后的约束表不能为空（一般只要 **`config.yaml`** 里已有账号/文风等即可）。**`publish_completed`**：新建或补全本篇 **`article.yaml`** 时须为 **`false`**；本篇发布真正结束后由 [publish skill](../aws-wechat-article-publish/SKILL.md) 改为 **`true`**；**`publish.py` 不修改此字段**。\n\n`default_structure` / `default_closing_block` 指向的 **预设正文**来自 **`.aws-article/presets/`**（及用户目录下同名 presets），与配置中的**文件主名**对应。两者在本篇 **`article.yaml`** 中必须为**单元素列表** `[名]`（或空列表 `[]`）；`write.py` 对预设选择仅读取本篇 `article.yaml`，不再在执行阶段从 `custom_*` / `default_*` 候选池推断。\n\n**多候选自动选择**：当 `default_structure`（或 `default_closing_block`）含**多个候选**时，Agent 须：\n1. 读取每个候选预设文件（如 `.aws-article/presets/structures/<名>.md`），了解其适用场景；\n2. 结合本篇主题 / 选题卡内容，判断最匹配的一个；\n3. 将该名写入 `article.yaml` 同键为单元素列表 `[名]`；\n4. 然后再调用 `write.py`。\n**禁止**盲选第一个——须基于内容匹配。若无法判断，向用户展示候选及说明后请用户选择。\n\n另加载 **`.aws-article/writing-spec.md`**（如有）。\n\n| 字段 | 用途 |\n|------|------|\n| `target_reader` | 读者画像 → 深度、用词、案例 |\n| `tone` | 调性 → 语气与句式 |\n| `writing_style` | 结构表达方式（口语/书面/故事/方法论等） |\n\n配置中其它与写稿相关的键（如 `topic_direction`、`forbidden_words`、`heading_density`、`target_word_count`）一并写入约束。\n\n### 业务资料库（写稿前 + 写后）⛔\n\n**目的**：`.aws-article/products/{产品名}/` 是用户业务（产品/软件/服务）的原始资料库——业务介绍 `.md` **直接挂在产品根**（如 `项目介绍.md`），`images/` 子目录存业务配图。\n\n**触发口径**：\n\n- **若本篇主题涉及用户自身业务（对外介绍 / 教程 / 案例 / 自家业务安利）**：**必须**先 `ls .aws-article/products/`，对相关产品根下的 `*.md` **必读**，已有同主题文档**优先增量改写**而非另起炉灶。\n- 若本篇主题与用户自身业务无关（行业资讯 / 通用教程等）：**不读**、不强求查阅。\n\n写作只有 **两种方式**，业务资料用法如下（二选一，勿混用同一条命令里的职责）。\n\n#### 方式一：智能体直接写稿\n\n1. **写稿前**：先 `ls .aws-article/products/`；若本篇涉及某产品业务，**必读**该产品根下相关 `*.md`。\n2. **写作时**：将业务资料转化为账号文风后引用；**与业务无关或无相关文档时不引用，不阻断写稿**。\n3. **`draft.md`**：凡正文中**实际引用或依据**了某份业务介绍的，在**该处表述之后**用括号附上**该文件的仓库相对路径**（路径须真实存在）；**未引用则不必加括号**。\n4. **配图占位（硬性）**：当 **`image_source` 不为 `user`**（合并 `config.yaml` + 本篇 `article.yaml`）时，按 **`image_density`** 生成配图占位；若未配置或为空，默认**每节一图**。格式必须为 `![类型名：画面内容](placeholder)`，每个占位**独占一行**，**封面**占位放在**标题之前**；类型名与细则见 [references/structure-template.md](references/structure-template.md)「配图标记」。\n5. **下游产物 `article.md`**：本 skill 产物**只到 `draft.md`**，括号路径**保留在 `draft.md` 中**用于事实溯源。`article.md` 是 [review skill 第 5 步](../aws-wechat-article-review/SKILL.md) 的产物，由 review 调用 `write.py strip-citations <draft.md> -o <临时文件>` 自动剥离括号路径，再追加文末 `{embed:…}` 后写入。**writing 阶段禁止**自行命名 `article.md`、自行剥离括号路径、或假装\"自检\"等同于审稿。\n\n#### 方式二：`write.py` 写稿\n\n1. **运行脚本前**：同样先 `ls .aws-article/products/`，判断是否有相关产品的业务介绍 `.md`。\n2. **有相关文档**：在仓库根执行 `write.py` 时传入 **`--reference <路径>`**（可重复，**最多 5 个**；路径须形如 `.aws-article/products/<产品名>/<文件名>.md`——**直接挂在产品根**，**不接受** `images/` 子目录下的图片说明 `.md`，详见脚本与 [usage](references/usage.md)）。脚本将全文注入系统提示「参考资料库」，并约定模型在依据处标注资料路径。\n3. **无相关文档**：**不传 `--reference`**，仅靠选题卡与合并配置写稿即可。\n4. 若写作 API 因上下文/token 超限失败，减少 `--reference` 篇数或换更短文档后重试。\n\n**写后识别（双向回写）**：若本次写作产生的内容**语义属于用户业务介绍**（不是文章主体而是侧重产品/服务自介），按 [assets skill 一、业务介绍 .md 入库](../aws-wechat-article-assets/SKILL.md#一业务介绍-md-入库product-intro) 引导用户保存到 `.aws-article/products/{产品名}/`，下次写涉及业务的文章会自动用上。\n\n**禁止**：将与主题无关的文档硬塞进正文；伪造业务资料中不存在的事实。\n\n### 第4步：发布意图（`publish_method`）⛔\n\n在**调用 `write.py` 或进入第6步写作之前**，确认 **`.aws-article/config.yaml`** 中的 **`publish_method`**（与 [发布 skill](../aws-wechat-article-publish/SKILL.md)、[articlescreening-schema.md](../aws-wechat-article-main/references/articlescreening-schema.md) 一致）：\n\n| 取值 | 含义（向用户说明时用 plain 语言） |\n|------|----------------------------------|\n| **`draft`**（**默认**） | 定稿后若走 **`publish.py full`**，只把图文写入**公众号草稿箱**，不自动「发出去」。 |\n| **`published`** | 定稿后 **`publish.py full`** 会在创建草稿后**再提交发布**（异步）。也可用 **`full --publish`** 单次强制带发布。 |\n| **`none`** | 询问微信配置后用户**明确不想填写**：写入 **`publish_method: none`**。**`publish.py full`** 会**直接跳过**、不调微信；写稿/审稿/排版等照常。 |\n\n**规则**：\n\n1. **默认保持或写入 `publish_method: draft`**，除非用户**明确要对外发布** → 改为 **`published`**；**明确不填微信、不走上传** → 改为 **`none`**。\n2. **微信**：提醒发布需要 **`aws.env`**；用户拒绝填写 → **`none`**，不要代跑 **`publish.py full`**（跑了也会无操作退出）。\n3. **若已是 `draft` / `published` / `none`**（小写）：可**不重复盘问**。\n\n**禁止**：在 `publish_method` **非法**时调用 `write.py`；禁止未经同意默认 **`published`**。\n\n### 第5步：确定输入与写作方式\n\n**输入**：`topic-card.md` / 用户提供的提纲或素材 / 用户口述主题；**并已按上文「说明文档资源库」完成判断**（直接写稿则已决定是否引用；走 `write.py` 则已决定是否传 `--reference`）。\n\n**写作方式（优先级）**：\n\n1. **优先：调用第三方模型**（`write.py draft/rewrite/continue`）— 依赖 **`config.yaml` 的 `writing_model` + `aws.env` 的 `WRITING_MODEL_API_KEY`**（见 [usage.md](references/usage.md)）\n2. **自动降级：模型未配置**（退出码 2）→ 先 `write.py prompt <mode> <input>` 获取提示词 JSON，再由 Agent 按**相同提示词**直接写，**无须**「本次例外」确认\n3. **故障降级：调用失败**（退出码 1）→ 按下方重试/排错逻辑\n\n**必须告知用户当前使用的方式**：\n\n- 已配置且调用脚本 → `ℹ️ 使用 write.py 调用第三方模型（{model}）`\n- 模型未配置自动降级 → `ℹ️ 写作模型未配置，本次由当前对话模型直接写稿（使用相同写作约束）`\n- 故障降级 Agent 直写 → `ℹ️ 第三方 API 不可用，本次由当前对话模型代写（使用相同写作约束）`，并说明原因\n\n### `write.py` 退出码处理（智能体必选分支）\n\n运行脚本后**须把终端里的具体报错原样摘要给用户**（或引用关键行），勿只说「调用失败」。\n\n按**退出码与报错类型**分支处理：\n\n| 类型 | 判断线索 | 智能体动作 |\n|------|----------|------------|\n| **未配置（退出码 2）** | stderr 含 `[NO_MODEL]` | **自动降级**：运行 `write.py prompt <mode> <input>` 获取提示词 JSON（`{\"system_prompt\": \"...\", \"user_prompt\": \"...\"}`）→ Agent 按该 `system_prompt` 和 `user_prompt` 写文章 → 输出到 `-o` 指定路径或展示给用户。**无须**用户确认或「本次例外」。 |\n| **网络类（退出码 1）** | 超时、连接失败、`URLError`、`网络错误:`、临时性 502/503 等 | **必须自动再试 1 次**（可简短等待后重跑同一命令，并告知用户「正在重试」）。**第二次仍为网络类失败** → 改用 `write.py prompt` 获取提示词后由 Agent 按相同约束代写；**必须明确告知**：第三方 API 网络不可用，本次由对话模型代写。 |\n| **配置/凭证类（退出码 1）** | 401/403、Key 无效、`未找到写作约束`、YAML 解析失败等 | **不要**为「省事」自动降级掩盖问题。**列出须检查项**（`config.yaml` 的 `writing_model`、`aws.env` 的 `WRITING_MODEL_API_KEY`、本篇目录是否有 `article.yaml` 等），请用户修正后重跑 `write.py`。若用户**明确打字**愿意本次改由 Agent 代写，再按 [main](../aws-wechat-article-main/SKILL.md)「本次例外」处理并留痕。 |\n| **业务/内容类（退出码 1）** | 4xx 中除鉴权外（如 400 参数）、模型返回空等 | 将 API 返回体摘要给用户；可先根据提示改 `model` / 请求参数再试一次；仍失败则与用户商定是否 Agent 代写。 |\n\n**Agent 代写时提示词获取**：无论哪种降级路径，Agent 代写前都应先运行 `write.py prompt <mode> <input>`（`--instruction` 按需传入），取回与 `write.py` 调第三方模型时**完全相同**的 `system_prompt` 和 `user_prompt`，确保写作约束一致。\n\n**禁止**：配置明显错误时静默改用 Agent 写稿却不说明；网络降级后不告知用户「本次未走第三方模型」。\n\n### 第6步：写作\n\n写作时**必须遵循第3步读取的 `target_reader`、`tone`、`writing_style`**（来自合并后的约束）：深度与用词贴合读者，语气贴合调性，结构与表达方式贴合文章风格。\n\n**用户供图分支（`image_source: user`）**：\n\n- 用户图片须先放入本篇 `imgs/`；随后由智能体**读图分析**并生成或补全 `img_analysis.md`（可用 `user_image_prepare.py` 先生成模板再填写）。**未落盘 `img_analysis.md` 不得调用 `write.py`**，否则脚本会报错退出。\n- `img_analysis.md` 是写稿时配图与章节顺序的**唯一依据**：`write.py` 会把它并入提示，按「建议章节 / 推荐用途」把每张图放到合理位置（可重排章节以匹配叙事）。\n- `img_analysis.md` 中“推荐用途：封面”**必须且只能有 1 处**；否则不得写稿。\n- 写稿时直接使用用户图片路径（`imgs/xxx.png`），不再输出 `placeholder`。\n- `image_source` 只允许：`generated` / `user`。**禁止写** `user_provided`。\n- 该字段由智能体按流程动态更新：默认 `generated`；进入用户供图替换流程时写为 `user`。\n\n**状态切换规则（`article.yaml`）**：\n\n- 新建文章默认：`image_source: generated`、`publish_completed: false`。\n- 当进入“用户上传图片替换/重写”流程时：将 `image_source` 改为 `user`，并将 `publish_completed` 置回 `false`（表示需重新发布闭环）。\n- 重新发布成功且有回执后：再写回 `publish_completed: true`。\n\n**文章结构**：按优先级加载结构预设：\n\n1. 用户指定（「用清单体结构」）\n2. 本篇 `article.yaml` 的 `default_structure`（单元素列表）\n3. `.aws-article/presets/structures/` 下的文件\n4. 内置默认：[references/structure-template.md](references/structure-template.md)\n\n**文末区块**：按优先级加载：\n\n1. 本篇 `article.yaml` 的 `default_closing_block` 指定的文件（单元素列表）\n2. 合并约束中 `closing_block` 非空字符串（若有）\n3. **fallback**：内置默认文末（分割线 + 一句关注引导）：`---\\n觉得有用？点个关注，持续获取优质内容。`\n\n默认模式下，写作时在需要图的位置插入配图标记 `![类型名：画面内容](placeholder)`（规则见 `write.py` 系统提示与 `references/structure-template.md`「配图标记」）。\n\n**调用第三方模型**时的脚本用法：[references/usage.md](references/usage.md)\n\n### 第7步：自检与修正（仅粗扫，不替代 review）\n\n仅做**粗扫**：禁用词、段落长度、开头吸睛度、小标题密度，发现明显问题自动修正。**不**替代 [review skill](../aws-wechat-article-review/SKILL.md) 的内容审 —— 完整的合规、敏感词、文末 embed、引用标注剥离均归 review 处理；本步禁止越界做 review 的工作。\n\n**配图占位自检（默认模式）**：当 **`image_source != user`** 时，核对 `draft.md` 是否满足 **`image_density`**（未配置则按**每节一图**）；缺失或格式不合法时，先补齐/修正 `![类型名：画面内容](placeholder)` 再进入审稿或配图步骤。\n\n**续写补充（中间产物门禁）**：\n\n- 续写新增 `![...](placeholder)` 时，必须把该占位计入“待配图清单”（供 images 步骤生成与替换）。\n- 进入发布相关步骤前，必须复核本篇正文产物：`article.md` / `article.html` 若仍含 `placeholder`，只能标记为“正文配图未完成”，禁止宣称发布闭环完成。\n\n### 第8步：展示并等待用户确认 ⛔\n\n向用户展示 `draft.md`，确认后**移交 [review skill](../aws-wechat-article-review/SKILL.md) 做内容审**。\n\n**⛔ 产物边界（硬性）**：本 skill 产出**只到 `draft.md`**。**禁止**在 writing 阶段：\n- 自行写入 `article.md`（`article.md` 是 review 第 5 步 ⛔ BLOCKING 的产物，须含文末 `{embed:…}` 且已剥离引用标注）\n- 自行剥离 `（资料路径：...）` 引用标注（剥离动作由 review 调用 `write.py strip-citations` 完成）\n- 跳过 review 直接进入 [formatting](../aws-wechat-article-formatting/SKILL.md)\n\n## 过程文件\n\n| 读取 | 产出 |\n|------|------|\n| `topic-card.md`、**`.aws-article/config.yaml`**、本篇 **`article.yaml`** | `draft.md`（含配图标记）；**本 skill 可能更新** **`publish_method`**（发出去 → **`published`**；不填微信 → **`none`**；默认 **`draft`**）；新建/补全 **`article.yaml`** 时保持 **`publish_completed: false`** |","tags":["aws","wechat","article","writing","skills","aiworkskills","agent-skills","ai-skills","ai-writing","chinese-nlp","codex","content-automation"],"capabilities":["skill","source-aiworkskills","skill-aws-wechat-article-writing","topic-agent-skills","topic-ai-skills","topic-ai-writing","topic-chinese-nlp","topic-codex","topic-content-automation","topic-content-creation","topic-copywriting","topic-llm","topic-markdown-to-html","topic-openclaw","topic-wechat"],"categories":["wechat-article-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/aiworkskills/wechat-article-skills/aws-wechat-article-writing","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add aiworkskills/wechat-article-skills","source_repo":"https://github.com/aiworkskills/wechat-article-skills","install_from":"skills.sh"}},"qualityScore":"0.469","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 39 github stars · SKILL.md body (13,889 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:58:27.513Z","embedding":null,"createdAt":"2026-04-21T19:04:12.167Z","updatedAt":"2026-05-18T18:58:27.513Z","lastSeenAt":"2026-05-18T18:58:27.513Z","tsv":"'/../aws-wechat-article-main/references/env.example.yaml':326 '/.aws-article':183 '/aiworkskills/wechat-article-skills':96 '/aiworkskills/wechat-article-skills)':266 '/aws-wechat-article-assets/skill.md':1079 '/aws-wechat-article-formatting/skill.md':1712 '/aws-wechat-article-main/references':231 '/aws-wechat-article-main/references/articlescreening-schema.md':673,1116 '/aws-wechat-article-main/references/first-time-setup.md':282,344,357 '/aws-wechat-article-main/skill.md':276,301,384,408,562,645,1391 '/aws-wechat-article-publish/skill.md':741,1114 '/aws-wechat-article-review/skill.md':986,1611,1671 '/config.yaml':161,317,362,521,528,634,661,678,1107,1720 '/presets':757 '/presets/structures':795,1550 '/products':168,859,886,912,1019,1037,1089 '/scripts/write.py':198 '/skill.md':300 '/token':1061 '/writing-spec.md':820 '1':460,462,511,583,649,674,789,905,1012,1159,1215,1256,1328,1337,1357,1397,1485,1536,1558 '2':385,433,446,474,490,546,563,646,704,799,917,1022,1172,1234,1238,1297,1539,1567 '3':409,486,580,803,922,1052,1182,1252,1546,1573 '4':476,495,499,808,933,1057,1552 '400':1401 '401/403':1358 '4xx':1398 '5':966,984,1031,1690 '502/503':1334 '9':75,260 'agent':23,209,339,609,787,1245,1272,1312,1347,1387,1411,1413,1416,1435 'ai':11,58 'anthrop':133 'api':115,119,138,320,695,1059,1229,1276,1351,1377,1405 'articl':4,52,72,82,160,167,179,221,228,274,298,316,361,364,465,520,527,530,612,633,660,677,756,794,819,858,885,911,1018,1036,1088,1106,1549,1719 'article.html':1657 'article.md':193,968,979,1004,1656,1685,1686 'article.yaml':145,163,380,550,624,637,652,663,669,706,726,735,764,771,805,944,1380,1506,1541,1560,1722,1738 'articlescreen':237 'articlescreening-schema.md':672,1115 'asset':1073 'author':122,369,470,535,620,626 'aw':2,50,70,80,159,166,178,219,226,272,296,315,360,519,526,632,659,676,755,793,818,857,884,910,1017,1035,1087,1105,1548,1718 'aws-articl':158,165,177,314,359,518,525,631,658,675,754,792,817,856,883,909,1016,1034,1086,1104,1547,1717 'aws-wechat-articl':69,218 'aws-wechat-article-main':49,79,225,271,295 'aws-wechat-article-writ':1 'aws.env':111,323,1175,1225,1373 'base':309 'basedir':197,325 'bearer':123 'block':750,783,1564,1570,1692 'capabl':98 'categori':365,466,531,613 'chat':135 'citat':994,1706 'claud':21 'clawhub':90 'close':749,782,1563,1569 'complet':136,711,733,1512,1525,1532,1741 'config':714,718 'config.yaml':729,942,1221,1369 'config.yaml.writing_model.base':127 'count':850 'custom':773 'deepseek':19,46,131 'default':368,469,534,619,746,748,774,778,781,1543,1562 'densiti':847,948,1634 'direct':843 'draft':400,438,454,480,572,1123,1163,1184,1735 'draft.md':192,923,973,976,1631,1666,1679,1723 'draft/rewrite/continue':1219 'drafts/20260406-wechat-article-skills':596 'emb':683,999,1616,1695 'env/config':235 'fallback':1574 'fals':737,1513,1527,1742 'file':253 'forbidden':844 'format':1711 'found':255 'full':1127,1135,1140,1151,1180 'generat':1495,1502,1510 'github.com':95,265 'github.com/aiworkskills/wechat-article-skills':94 'github.com/aiworkskills/wechat-article-skills)':264 'gpt':20,43 'head':846 'imag':502,691,872,937,947,1043,1453,1492,1508,1519,1626,1633,1652 'img':1457 'img_analysis.md':1461,1466,1470,1480 'imgs/xxx.png':1489 'inform':214 'instal':91 'instruct':1420 'intro':1084 'json':205,1243,1307 'key':116,120,140,321,1230,1359,1378 'llm':105,207 'ls':882,908,1015 'main':53,54,83,229,275,299,329,383,407,561,644,1390 'md':151,170,172,232,723,797,867,871,888,916,1021,1040,1045,1077,1082 'method':422,478,1098,1110,1148,1162,1193,1729 'model':114,307,311,319,690,692,1224,1228,1265,1301,1372,1376,1408 'none':482,1143,1149,1171,1177,1186,1733 'n觉得有用':1578 'o':995,1321 'openai':132 'placehold':956,1491,1585,1642,1647,1659 'plain':1121 'post':154 'preset':187,759 'prompt':143,201,204,1241,1305,1309,1311,1315,1318,1345,1419,1428,1431 'provid':308,1499 'publish':421,477,481,710,732,739,1097,1109,1132,1141,1147,1161,1167,1185,1192,1198,1511,1524,1531,1728,1731,1740 'publish.py':744,1126,1134,1150,1179 'python3':196 'reader':367,468,533,615,825,1444 'refer':149,418,1027,1055,1064,1212 'references/structure-template.md':963,964,1554,1555,1589 'references/usage.md':1048,1233,1593,1594 'review':981,989,1599,1609,1618,1621,1669,1688,1701,1709 'schema':238 'shell':194 'skill':67,85,87,100,213,216,241,245,248,251,257,303,350,503,740,970,982,1074,1113,1610,1670,1676,1726 'skill-aws-wechat-article-writing' 'slug':77,261,599 'sourc':938,1454,1493,1509,1520,1627 'source-aiworkskills' 'stderr':1298 'step':461,475,489,494 'strip':993,1705 'strip-cit':992,1704 'structur':747,779,1544 'style':834,1447 'system':1308,1314,1427 'target':366,467,532,614,824,848,1443 'tone':830,1445 'topic':842 'topic-agent-skills' 'topic-ai-skills' 'topic-ai-writing' 'topic-card.md':146,164,1202,1716 'topic-chinese-nlp' 'topic-codex' 'topic-content-automation' 'topic-content-creation' 'topic-copywriting' 'topic-llm' 'topic-markdown-to-html' 'topic-openclaw' 'topic-wechat' 'trim':370,537,617 'true':743,1533 'url':128,310 'urlerror':1331 'usag':1047 'usage.md':1232 'user':940,1310,1317,1430,1455,1496,1498,1504,1522,1628 'user_image_prepare.py':1463 'wechat':3,51,71,81,220,227,273,297 'word':845,849 'write':5,113,306,318,689,833,1001,1223,1227,1371,1375,1446,1682 'write.py':102,109,181,200,607,656,719,769,810,991,1010,1025,1101,1196,1210,1218,1240,1263,1281,1304,1344,1383,1418,1423,1468,1473,1587,1703 'writing-spec.md':185 'yaml':1362 'yyyymmdd':593,597 'yyyymmdd-标题slug':592 'ℹ️':1261,1267,1274 '一':1075 '一业务介绍':1081 '一业务介绍-md-入库product-intro':1080 '一句关注引导':1577 '一并写入约束':851 '一条龙':269 '一条龙公众号套件的':222 '一条龙套件':73 '一致':387,565,1117 '一般只要':728 '下某篇进行中草稿':573 '下次写涉及业务的文章会自动用上':1091 '下游产物':967 '下的文件':1551 '不':699,1607 '不为':939 '不了解':448 '不了解时须先问':568 '不传':1054 '不修改此字段':745 '不再在执行阶段从':772 '不再输出':1490 '不再重复盘问':442 '不可用':1277 '不填微信':1732 '不强求查阅':897 '不得调用':1467 '不得默认改由当前':338 '不接受':1042 '不是文章主体而是侧重产品':1070 '不替代':1598 '不自动':1130 '不要':346,639,1364 '不要代跑':1178 '不读':896 '不读凭证':189 '不调微信':1154 '不调用':206 '不走上传':1169 '不重复盘问':1189 '不阻断写稿':921 '与':186,382,560,685,713,1111 '与业务无关或无相关文档时不引用':920 '与第':445 '与配置中的':760 '且已剥离引用标注':1696 '业务':1394 '业务介绍':171,866,1076 '业务资料库':415,852 '业务资料用法如下':900 '两段只给脚本':693 '两种方式':899 '两者在本篇':763 '个':76,1032 '中':363,977,1481 '中必须为':765 '中的':1108 '中间产物门禁':1645 '中除鉴权外':1399 '临时性':1333 '临时文件':996 '为':591,1365 '为准':670 '为小写':600 '为当日日期':598 '也可用':1139 '书面':837 '了某份业务介绍的':926 '了解其适用场景':798 '二选一':901 '交互约定':327 '产出':1677,1715 '产品':862 '产品名':169,860,1038,1090 '产物':971 '产物边界':1673 '仅':195 '仅作建议展示':554 '仅做':1600 '仅在对话里确认却不落盘':559 '仅本篇目录下':191 '仅用对话表格收集':640 '仅粗扫':1597 '仅靠选题卡与合并配置写稿即可':1056 '仍失败则与用户商定是否':1410 '从':379,549 '从提纲或话题生成完整初稿':60 '从话题或提纲生成完整初稿':13 '从选题到发布的':288 '从零发文':268 '仓库内':157 '仓库外':175 '代写':24,210,1388,1412 '代写之前':610 '代写前都应先运行':1417 '代写并假装流程完整':340 '代写时提示词获取':1414 '以':121 '以下步骤可':457 '以免把技术配置当成正文要求':703 '以减少交互轮次':459 '以本篇':668 '任一项缺失':539 '任何操作执行前':278 '优先':1216 '优先增量改写':891 '优先级':1214 '优化用词':41 '会':716,1152 '会从用户家目录':182 '会先读全局':657 '会在创建草稿后':1136 '会把它并入提示':1474 '会把文章内容发送给用户配置的':104 '伪造业务资料中不存在的事实':1094 '作者':708 '使用':1262 '使用前请阅读以下全部行为说明':107 '使用相同写作约束':1270,1279 '例如直接给出':437 '供':1651 '依赖':1220 '保留在':975 '修正':1639 '候选池推断':775 '做内容审':1672 '先':881,907,1239 '先生成模板再填写':1464 '先补齐':1638 '入口':78,224 '入库':1078 '入库product':1083 '全套':92 '全局三键':463 '全局三键的优先检查顺序见':643 '全局账号三键':517 '全局账号约束':386,564,647 '全文':152 '公众号写稿':6 '公众号草稿箱':1129 '公众号运营':26 '公众号长文':10,57 '共':74 '关键字段不得空跑':605 '其它草稿或仓库文件':551 '兼容':137 '内包含本篇':144 '内容外发':142 '内容类':1395 '内的纯本地步骤仍可用':258 '内置默认':1553 '内置默认文末':1575 '内部':55 '再':402 '再写回':1530 '再按':1389 '再提交发布':1137 '再由':1244 '再读本篇目录下的':662 '再进入审稿或配图步骤':1643 '再进入第':545 '再追加文末':998 '写一篇文章':509 '写什么':686 '写作':12,426,1440 '写作只有':898 '写作引擎':59 '写作方式':1213 '写作时':918,1441 '写作时在需要图的位置插入配图标记':1582 '写作模型':305 '写作模型未配置':1268 '写作说明':701 '写入':1146 '写后':854 '写后识别':1066 '写回文件':377 '写回该文件':544 '写完后展示结果':515 '写文章':1319 '写稿':1011,1155 '写稿前':853,906 '写稿前先按下文':414 '写稿却不说明':1436 '写稿时直接使用用户图片路径':1488 '写稿环节':223 '写稿进度':353 '减少':1063 '凡正文中':924 '凭证外发':117 '凭证类':1355 '凭证读取':108 '分割线':1576 '分支处理':1291 '列出须检查项':1368 '则已决定是否传':1211 '判断是否有相关产品的业务介绍':1020 '判断是否查阅':416 '判断最匹配的一个':802 '判断线索':1293 '前置规则':289 '剥离动作由':1700 '勿只说':1287 '勿混用同一条命令里的职责':902 '单元素列表':766,1545,1566 '单次强制带发布':1142 '单独安装本':247 '单独触发仅限对已有稿子的修改':29 '占位放在':960 '却不落盘':642 '参数':1402 '参考资料库':1050 '及':635 '及用户目录下同名':758 '双向回写':1067 '发出去':1131,1730 '发布':1112 '发布意图':496,1096 '发布方式':420 '发现明显问题自动修正':1606 '发送到':125 '取值':1118 '取回与':1422 '取得':541 '叠完后的约束表不能为空':727 '叠成一张表':665 '口语':836 '另加载':816 '只允许':1494 '只到':972,1678 '只把图文写入':1128 '只按':342 '只描述写稿步骤':304 '只能标记为':1660 '只读预设':188 '只输出':203 '可':1188 '可使用':199 '可先根据提示改':1407 '可列出候选目录':578 '可把从某文件读到的内容':553 '可按默认风格自动生成':504 '可用':1462 '可简短等待后重跑同一命令':1339 '可能更新':1727 '可调':18 '可重复':1029 '可重排章节以匹配叙事':1479 '合并':941 '合并为一轮提问':498 '合并或静默通过':458 '合并约束中':1568 '合并询问':487 '合并配置':147 '合法值':483 '同样先':1014 '同键为单元素列表':806 '名':767,796,807 '后':371,618 '后再':543 '后写入':1000 '后均非空':538 '后的复核':654 '向用户展示':1665 '向用户展示候选及说明后请用户选择':815 '向用户说明时用':1120 '否则不得写稿':1487 '否则脚本会报错退出':1469 '含':784,1299 '含义':1119 '含配图标记':1724 '和':493,1316,1429 '品牌文案':27 '唯一依据':1472 '因上下文':1060 '在':313,927,1099,1191,1681 '在不了解':392 '在仓库根':322 '在仓库根执行':720,1024 '在同一条回复里混入写稿':347 '在续旧':522 '在调用':606 '地址':697 '均为非空字符串':616 '均非空':373 '处':1486 '处理':1619 '处理并留痕':1393 '处理配置选项':345 '多个候选':785 '多候选自动选择':776 '多模型可切':64 '多草稿':443 '头':124 '套件完整装齐到同一':240 '套件说明':65 '如':595,791,841,869,1400 '如有':821 '如给出主题':508 '子命令':202 '子目录下的图片说明':1044 '子目录存业务配图':873 '字数':682 '字段':822 '字段分工见':671 '完全相同':1425 '完成':1707 '完成判断':1207 '完整':259 '完整流程':270 '完整的合规':1613 '定稿后':1133 '定稿后若走':1125 '实际引用或依据':925 '审稿':1156 '对外介绍':876 '对应':762 '对相关产品根下的':887 '对预设选择仅读取本篇':770 '封面':959,1483 '将':1404,1518 '将与主题无关的文档硬塞进正文':1093 '将业务资料转化为账号文风后引用':919 '将该名写入':804 '小写':1187 '小标题密度':1605 '展示并等待用户确认':430,1664 '属':68 '工作流':351,352 '工作流中的若干步骤会读取同级':230 '已明确':435,585 '已有同主题文档':890 '已配置且调用脚本':1260 '已非空':471 '常见为':130 '并告知用户':1340 '并实际写入文件':638 '并将':1523 '并已按上文':1205 '并生成或补全':1460 '并确定本篇':399 '并约定模型在依据处标注资料路径':1051 '并说明原因':1280 '并配置可信端点或内部代理':141 '建议一并':89 '建议章节':1476 '开头':411 '开头吸睛度':1604 '开头结尾优化':17 '异步':1138 '引导用户保存到':1085 '引导用户补全':630 '引用标注':1699 '引用标注剥离均归':1617 '引用的步骤会在读取阶段遇到':252 '引用都能读到':246 '当':777,936,1625 '当不清楚':569 '当进入':1514 '当需要同时确认':488 '往下写':34 '待用户选定后再进入第':579 '待配图清单':1650 '微信':1173 '必读':889,914 '必须':279,590,880 '必须且只能有':1484 '必须告知用户当前使用的方式':1259 '必须复核本篇正文产物':1655 '必须把该占位计入':1649 '必须明确告知':1349 '必须自动再试':1336 '必须遵循第3步读取的':1442 '怎么写':687 '想避免把内容发给第三方时用这条路径':211 '愿意本次改由':1386 '或':622,780 '或假装':1006 '或引用关键行':1286 '或按合并约束让':608 '或明确说':439 '或本篇':636 '或用户明确书面确认':286 '或由':22 '或空列表':768 '或进入第6步写作之前':1102 '所在目录':724 '打开':524 '执行其中的':283 '找到本篇':725 '把两边的键':664 '把每张图放到合理位置':1478 '把这段改活泼点':40 '括号路径':974 '持续获取优质内容':1580 '指向的':751 '指定的参考文档':150 '指定的文件':1565 '指定路径或展示给用户':1322 '按':280,721,946,1072,1246,1289,1475 '按下方重试':1257 '按优先级加载':1557 '按优先级加载结构预设':1535 '按相同约束代写':1348 '按该':1313 '按需传入':1421 '排版等照常':1157 '排错逻辑':1258 '接着这段写':35 '推荐用途':1477,1482 '提醒发布需要':1174 '摘要':514,709 '支持改写':14,61 '改为':742,1166,1170,1521 '改写':30 '改写续写':9 '改用':1343 '改结尾':37 '故事':838 '故障降级':1253,1271 '敏感词':1614 '教程':877 '整体':153 '整段放进给大模型的':700 '文件主名':761 '文件写':190 '文件名':1039 '文件读':156,174 '文末':1615 '文末区块':1556 '文章润色':8 '文章结构':1534 '文风':679 '文风等即可':731 '新写一篇请走':48 '新建':1736 '新建或补全本篇':734 '新建文章默认':1507 '新开':390 '新开一篇':396,440,575 '新开一篇时':588 '新开时':450 '新开询问之前':523 '新篇':491 '方式一':903 '方式二':1009 '方法论等':839 '无效':1360 '无相关文档':1053 '无论哪种降级路径':1415 '无需再确认':473 '无需单独确认配图方案':505 '无须':1249,1323 '时':243,249,337,397,497,576,786,945,1629,1648 '时传入':1026 '时保持':1739 '时可':441 '时的脚本用法':1592 '时调用':1195 '时跳过本步询问':586 '时须为':736 '明确不填微信':1168 '明确不想填写':1145 '明确打字':1385 '明确要对外发布':1165 '是':217,980,1687 '是写稿时配图与章节顺序的':1471 '是否':536 '是否传':417 '是否满足':1632 '是用户业务':861 '智能体动作':1294 '智能体必选分支':1283 '智能体直接写稿':904 '智能体行为约束':331 '替代':1608 '最多':1030 '最少轮次':506 '有关的顶层字段会进入这张表':688 '有相关文档':1023 '服务':864 '服务自介':1071 '未':332,334 '未引用则不必加括号':932 '未找到写作约束':1361 '未确认就调用写作脚本':405 '未落盘':1465 '未配置':1295 '未配置则按':1635 '未闭环':444 '本':66,99,215,256,302,969,1675,1725 '本次不检查':287 '本次例外':292,336,1250,1325,1392 '本次未走第三方模型':1438 '本次由对话模型代写':1353 '本次由当前对话模型代写':1278 '本次由当前对话模型直接写稿':1269 '本步禁止越界做':1620 '本篇':162,623,705,943,1540,1559,1721 '本篇准备':410 '本篇发布真正结束后由':738 '本篇标题':707 '本篇目录是否有':1379 '来自':753 '来自合并后的约束':1448 '标题slug':594 '标题之前':961 '核对':1630 '根目录':242 '格式必须为':953 '案例':829,878 '检查':529 '检测通过后才能进行以下操作':285 '检测顺序':284,356 '模型名等':698 '模型未配置':1236 '模型未配置自动降级':1266 '模型返回空等':1403 '次':1338 '正在重试':1341 '正文配图未完成':1661 '此处多为合并':651 '步':547,581,985,1691 '步全局三键已落盘之后执行':584 '步同原则':447 '步在用户':434 '步已正确落盘':650 '步骤生成与替换':1653 '段落长度':1603 '每个占位':957 '每节一图':952,1636 '流程时':1517 '润色':16,31,63 '深度':827 '深度与用词贴合读者':1449 '清单见':262 '源码':93 '源码仓库':263 '点个关注':1579 '然后再调用':809 '状态切换规则':1505 '独占一行':958 '环境检查未通过时':341 '理想轮次为':510 '生成文章初稿':103 '生成配图占位':949 '用':42,45,696 '用于事实溯源':978 '用户上传图片替换':1515 '用户供图分支':1452 '用户口述主题':1204 '用户图片须先放入本篇':1456 '用户在':126 '用户当轮明确答复':542 '用户意图明确时':507 '用户拒绝填写':1176 '用户指定':1537 '用户提供的提纲或素材':1203 '用户是要':570 '用户确认后再':376 '用户确认或':1324 '用户要':393 '用户通过':148 '用括号附上':929 '用来生成写作提示':666 '用清单体结构':1538 '用词':828 '用途':823 '由':208,988 '画面内容':955,1584,1641 '的':112,330,625,1222,1226,1370,1374,1426,1542,1561 '的产物':987,1693 '的内容审':1612 '的原始资料库':865 '的工作':1622 '的相对引用依赖同一':86 '目录':88,401 '目录名':589 '目录命名':587 '目的':855 '盲选第一个':812 '直写':1273 '直接写':1248 '直接写稿则已决定是否引用':1208 '直接挂在产品根':173,868,1041 '直接跳过':1153 '直接进入':1710 '相同提示词':1247 '省事':1366 '硬性':935,1674 '确保写作约束一致':1432 '确定输入与写作方式':424,1200 '确认':1103,1251 '确认合并后的':611 '确认后':1667 '确认标题':513 '确认轮次优化':456 '示例':236 '禁止':378,404,452,548,556,558,811,1092,1190,1433,1680 '禁止写':1497 '禁止宣称发布闭环完成':1662 '禁止擅自降级':291 '禁止未经同意默认':1197 '禁止省略日期前缀':602 '禁用词':681,1602 '移交':1668 '端点':106 '第':432,983,1689 '第0步':354 '第1步':358,516 '第2步':391,566 '第3步':412,603 '第4步':419,1095 '第5步':423,1199 '第6步':425,1439 '第7步':427,1595 '第8步':429,1663 '第三方':1275,1350 '第二次仍为网络类失败':1342 '等':134,239,293,312,684,712,1335,1381 '等共享文档':233 '等同于审稿':1008 '等擅自抄录':381 '篇数或换更短文档后重试':1065 '类型':1292 '类型名':954,1583,1640 '类型名与细则见':962 '粗扫':1601 '系统提示与':1588 '约束从哪来':655 '结合本篇主题':800 '结构与表达方式贴合文章风格':1451 '结构表达方式':835 '结构预设':680 '给上述端点':155 '续一段':33 '续写':15,32,62,449,492,571 '续写新增':1646 '续写既有草稿':394 '续写补充':1644 '续旧':389 '续旧稿还是新稿':567 '缺则':374 '缺失':180 '缺失或格式不合法时':1637 '网络不可用':1352 '网络类':1326 '网络错误':1332 '网络降级后不告知用户':1437 '置回':1526 '而非另起炉灶':892 '能力披露':97 '脚本将全文注入系统提示':1049 '自动剥离括号路径':997 '自动选中某一':453 '自动降级':1235,1302 '自动降级掩盖问题':1367 '自家业务安利':879 '自检':1007 '自检与修正':428,1596 '自行写入':1684 '自行剥离':1697 '自行剥离括号路径':1005 '自行命名':1003 '若':464 '若仍含':1658 '若仓库内':176 '若任一项不满足':628 '若写作':1058 '若同一键在两份文件里都有':667 '若已是':479,1183 '若无法判断':814 '若有':1572 '若未配置或为空':950 '若本次写作产生的内容':1068 '若本篇主题与用户自身业务无关':893 '若本篇主题涉及用户自身业务':875 '若本篇涉及某产品业务':913 '若用户':1384 '若用户已给出明确主题且未提出风格要求':501 '若第':648 '草稿路径或多草稿选择':348 '获取提示词':1242,1306 '获取提示词后由':1346 '获用户明确':335 '行业资讯':894 '补全':1737 '表示需重新发布闭环':1528 '覆盖':653,717 '见':294,406,1231 '规则':1158 '规则第3条已允许':485 '规则见':1586 '解析失败等':1363 '触发口径':874 '触发词':28 '询问微信配置后用户':1144 '该':118 '该产品根下相关':915 '该处表述之后':928 '该字段由智能体按流程动态更新':1500 '该文件的仓库相对路径':930 '详见脚本与':1046 '语义属于用户业务介绍':1069 '语气与句式':832 '语气贴合调性':1450 '语言':1122 '说明':431 '说明文档资源库':1206 '请使用专用':139 '请求参数再试一次':1409 '请用户修正后重跑':1382 '读取':184,1714 '读取仓库根':110 '读取本篇约束与写作规范':413,604 '读取每个候选预设文件':790 '读图分析':1459 '读者':641 '读者画像':826 '调性':831 '调整语气':38 '调用':101,990,1100,1702 '调用失败':1254,1288 '调用第三方模型':1217,1264,1591 '调第三方模型时':1424 '资料路径':1698 '走':1209 '超时':1329 '超限失败':1062 '跑了也会无操作退出':1181 '跑写作脚本':455 '跨':84,244,250 '路径':1028 '路径或意图':436 '路径须形如':1033 '路径须真实存在':931 '路由':267 '跳过':1708 '跳过本步':557 '轮':512 '软件':863 '输入':722,1201 '输出到':1320 '过程文件':1713 '运行':1303 '运行脚本前':1013 '运行脚本后':1284 '返回体摘要给用户':1406 '还是':395,574 '这段润色下':39 '进入以下步骤':403 '进入发布相关步骤前':1654 '进入用户供图替换流程时写为':1503 '连':694 '连字符分隔的标题缩写':601 '连接失败':1330 '退出码':1237,1255,1296,1327,1356,1396 '退出码与报错类型':1290 '退出码处理':1282 '选题卡内容':801 '逐项询问用户':540 '逐项问用户':375 '通用教程等':895 '通过环境校验且':333 '配图占位':934 '配图占位自检':1623 '配图标记':965,1590 '配图确认':500 '配套':212 '配置':1354 '配置中其它与写稿相关的键':840 '配置明显错误时静默改用':1434 '配置检查':277 '配置的外部端点':129 '配置闭环后再进入本':349 '里':702 '里已有账号':730 '重写':44,47,1516 '重写开头':36 '重名的键':715 '重新发布成功且有回执后':1529 '键名对照':324 '长文写作':7,56 '阶段':1683 '阶段禁止':1002 '阻断':290 '除非用户':1164 '随后由智能体':1458 '静默推断并写盘':552 '静默通过':472,484 '非法':1194 '非空':621,627 '非空字符串':1571 '面向自媒体作者':25 '项目介绍':870 '须':372,788 '须先于':388 '须先询问':398,577 '须先问':451 '须含文末':1694 '须在第':582 '须基于内容匹配':813 '须把终端里的具体报错原样摘要给用户':1285 '须暂停写稿':629 '须用户同意后再写入':555 '须遵守':328 '预设正文':752 '首次引导':234,281,343,355 '默认':951,1124,1501,1734 '默认保持或写入':1160 '默认模式':1624 '默认模式下':1581","prices":[{"id":"3e265966-66bf-4bed-9fcb-f1dd6bf3a9eb","listingId":"28841713-cace-4e51-9fe3-b423b5c56e4c","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"aiworkskills","category":"wechat-article-skills","install_from":"skills.sh"},"createdAt":"2026-04-21T19:04:12.167Z"}],"sources":[{"listingId":"28841713-cace-4e51-9fe3-b423b5c56e4c","source":"github","sourceId":"aiworkskills/wechat-article-skills/aws-wechat-article-writing","sourceUrl":"https://github.com/aiworkskills/wechat-article-skills/tree/main/skills/aws-wechat-article-writing","isPrimary":false,"firstSeenAt":"2026-04-21T19:04:12.167Z","lastSeenAt":"2026-05-18T18:58:27.513Z"}],"details":{"listingId":"28841713-cace-4e51-9fe3-b423b5c56e4c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"aiworkskills","slug":"aws-wechat-article-writing","github":{"repo":"aiworkskills/wechat-article-skills","stars":39,"topics":["agent-skills","ai-skills","ai-writing","chinese-nlp","codex","content-automation","content-creation","copywriting","llm","markdown-to-html","openclaw","wechat","wechat-api","wechat-official-account"],"license":"apache-2.0","html_url":"https://github.com/aiworkskills/wechat-article-skills","pushed_at":"2026-05-06T01:47:51Z","description":"微信公众号 AI 运营助手 | 选题、写稿、审稿、排版、配图、发布全流程 Skill，支持 OpenClaw / Claude Code / Cursor / Codex","skill_md_sha":"a6a5cfe18f98f498efb485101cfc24b886d1c8f1","skill_md_path":"skills/aws-wechat-article-writing/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/aiworkskills/wechat-article-skills/tree/main/skills/aws-wechat-article-writing"},"layout":"multi","source":"github","category":"wechat-article-skills","frontmatter":{"name":"aws-wechat-article-writing","description":"公众号写稿｜长文写作｜文章润色｜改写续写 — 公众号长文 AI 写作，从话题或提纲生成完整初稿，支持改写、续写、润色、开头结尾优化，可调 DeepSeek / GPT / Claude 或由 Agent 代写。面向自媒体作者、公众号运营、品牌文案。触发词（**单独触发仅限对已有稿子的修改**）：「改写」「润色」「续写」「续一段」「往下写」「接着这段写」「重写开头」「改结尾」「调整语气」「这段润色下」「把这段改活泼点」「优化用词」「用 GPT 重写」「用 DeepSeek 重写」。新写一篇请走 aws-wechat-article-main（main 内部会调用本 skill 生成初稿）；需要多环节串联（写+审+排+配图+发）也走 main。"},"skills_sh_url":"https://skills.sh/aiworkskills/wechat-article-skills/aws-wechat-article-writing"},"updatedAt":"2026-05-18T18:58:27.513Z"}}