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