公众号运营|微信公众号|公众号一条龙|公众号全流程|自媒体运营|wechat automation|content pipeline|AIGC workflow — 公众号一条龙运营总控入口,选题→写稿→审稿→排版→配图→发布串联 8 个子 skill,单条指令完成整篇图文从 0 到上架。面向公众号小编、自媒体、品牌内容。触发词分层:**一条龙流程**「一条龙」「完整流程」「从头做」「从 0 到发布」;**新做新发**「帮我写篇公众号文章」「做一篇公众号文章」「我想发一篇」「帮我发一篇」「再来一篇」;**选题起点**「今天写什么好」「有什么好写的」「找个话题」「爆款选题」「热点选题」「起个爆款标题」;**策划起点**「内容日历」「系列策划」「专栏规划」「连载」;**流程恢复**「接着上次那篇」「继续昨天的」「继续上次的」「接着之前的进度」;**显式模型新写**「用 GPT 写一篇」「用 DeepSeek 写一篇」「把提纲写成文章」。子 skill(topics/writing/review/formatting/images/publish/sticker/assets)单独触发仅限对**已有产物**的修改场景(如"改标题""润色这段""排版""审稿""加封面""发布");新做/策划/多环节串联一律走本入口。
npx skills add https://github.com/aiworkskills/wechat-article-skills --skill aws-wechat-article-main
一键式公众号 AI 内容流水线 —— 从选题到上架 8 个子 skill 串联,公众号小编 / 自媒体 / 品牌内容团队一键产出整篇图文。
> 套件说明 · aws-wechat-article-* 是公众号一条龙套件,共 9 个 slug:aws-wechat-article-main / topics / writing / review / formatting / images / publish / assets,外加 aws-wechat-sticker。跨 skill 的相对引用依赖同一 skills/ 根目录;推荐 clawhub sync 或逐个 clawhub install 一次性全装。源码:<https://github.com/aiworkskills/wechat-article-skills>
本 skill 作为一条龙套件编排入口;真正调用外部 API 的是子 skill(writing / images / publish / sticker / review)。本入口自身的 validate_env.py 脚本行为:
aws.env 的 WRITING_MODEL_API_KEY / IMAGE_MODEL_API_KEY / WECHAT_{N}_APPID / WECHAT_{N}_APPSECRET,仅用于校验键是否存在且非空,值不用于任何网络请求aws.env、.aws-article/config.yaml、本篇 article.yaml.aws-article/(首次引导创建目录结构)、本篇 article.yaml 状态字段python3 {baseDir}/scripts/validate_env.py> 注意:整体套件(含子 skill)会调用外部 LLM、图像 API 与微信 API,并在调用时外发 API key 与本篇内容。完整行为见各子 skill 的「能力披露」。
本 skill 是 aws-wechat-article-* 一条龙公众号套件的入口,编排 8 个子 skill:topics / writing / review / formatting / images / publish / assets 以及 aws-wechat-sticker。
skills/ 根目录,才能走完整一条龙流程(选题→写稿→审稿→排版→配图→发布)。validate_env.py);进入内容流水线会因对应子 skill 缺失而无法执行相关步骤(工作流里的跨 skill 脚本调用 / 文档读取会遇到 file not found)。完整 9 slug 清单与安装指引见 源码仓库。
Agent 执行:确定本 SKILL.md 所在目录为 {baseDir}。
进入交互顺序「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 为准。
智能体在执行下列检测命令前,先判断当前环境:
test、echo 等)。Test-Path 等)。.aws-article/config.yaml 与 aws.env 是否存在在仓库根目录(当前工作目录为项目根)执行:
Linux / macOS:
test -f .aws-article/config.yaml && test -f aws.env && echo "ok" || echo "missing"
Windows(PowerShell):
if ((Test-Path -LiteralPath ".aws-article\config.yaml") -and (Test-Path -LiteralPath "aws.env")) { "ok" } else { "missing" }
⛔ 输出为 missing(任一文件不存在)→ 按 首次引导 创建或补全:可参考 {baseDir}/references/config.example.yaml 得到 config.yaml,在仓库根创建 aws.env(仅密钥与微信 WECHAT_N_APPID / WECHAT_N_APPSECRET 等,键名可与 {baseDir}/references/env.example.yaml 对照)。
初始化约束:新建 .aws-article/config.yaml 时,publish_method 默认必须为 draft;除非用户明确指定不接微信,否则禁止初始化或改写为 none。
validate_env.py)两文件均存在后,在仓库根运行:
python {baseDir}/scripts/validate_env.py
(默认读取 .aws-article/config.yaml 与 aws.env;可用 --config / --env 指定路径。)
脚本检查(规则摘要,具体交互文案统一以 首次引导 为准):
config.yaml 中 writing_model.base_url / model 与 aws.env 中 WRITING_MODEL_API_KEY 须同时非空(provider 可选,不填按 URL/模型名自动识别);否则 failed + 写作模型配置不完整,退出码 1。image_model.base_url / model 与 IMAGE_MODEL_API_KEY 须同时非空(provider 可选,不填按 URL/模型名自动识别);否则同上,退出码 1。wechat_accounts、wechat_api_base、各槽位名与 aws.env 中 WECHAT_{i}_APPID / WECHAT_{i}_APPSECRET 须成对完整;否则 failed + 微信公众号配置不完整,退出码 1。例外:config.yaml 中 publish_method: none(用户明确不接微信)时,跳过微信组校验,仍输出 True(并附一行说明已跳过)。退出码 0:写作、图片均通过,且(未声明 none 时)微信也通过 → True + 配置校验通过。退出码 1:任一组未通过 → 不得进入一条龙默认流水线,并引导 首次引导 补全或 publish_method: none 后重跑。
仅当第 2 步退出码为 0 才执行本步;执行成功后才允许进入「2) 全局账号约束」与后续流水线。
目录要求与命令以 首次引导第 2 步 为准(需覆盖 presets/* 与 tmp)。业务资料库 .aws-article/products/{产品名}/ 不在本步建——由 AI 写第一份业务介绍时按 assets skill 自动 mkdir。
publish.py 前(publish_method + 微信)publish_method(draft / published / none)写在 config.yaml,默认 draft。none = 用户明确不填微信:full 不调 API。要「发布出去」→ published 或 full --publish。aws.env;槽位在 config.yaml。draft/published 走 full 前须就绪;none 下不调用微信。publish.py full 前:确认 publish_method 合法(小写);非 none 时建议 check-wechat-env。检测到 .aws-article/config.yaml 或 aws.env 缺失、validate_env.py 退出码 1(微信配置不完整,且未声明 publish_method: none),或用户已要求调用 publish.py 而微信槽位 / 凭证未就绪时:
failed 下的 微信公众号配置不完整;或即将 publish.py 但微信未配齐),并统一按 首次引导 中「校验失败时的配置引导」文案执行。aws.env 与 config.yaml 并保存后,智能体协助重跑 validate_env.py 复检;若用户明确声明本次例外,按首次引导与本节约束继续处理。APPSECRET / API_KEY 等任何密钥;所有密钥由用户自己在编辑器里写入 aws.env(或通过 https://aiworkskills.cn/ 平台配置)。Agent 只校验存在性、不读取值、不外发值。> 模型未配置例外:写作模型默认阻断;仅当用户明确同意由 Agent 代写并传入 --agent-writing-approved 时,写作模型未配置才降为警告。图片模型同理,仅在用户明确同意使用 Agent 代生图并传入 --agent-image-capable 时降为警告;未获用户明确同意时,模型未配置均按阻断处理。须告知用户当前使用的方式。
> 单步子 skill:用户只触发某一子能力(如仅排版、仅审稿)且未走本总览流水线时,仍以各子 skill 内说明为准;一条龙 / 完整流程 / 从选题到发布 必须满足本节 BLOCKING 与上条「禁止自作主张」。
| 文件 | 位置 | 作用 |
|------|------|------|
| aws.env | 仓库根 | 密钥:写作/图片 *_API_KEY、微信 WECHAT_N_APPID / WECHAT_N_APPSECRET 等(键名见 references/env.example.yaml;与 config.yaml 一起由 validate_env.py 校验) |
| .aws-article/config.yaml | 仓库内 | 非密钥配置:账号文风、模型 provider/base_url/model、微信槽位数与 wechat_api_base、各槽位展示名等(模板见 references/config.example.yaml) |
| references/env.example.yaml | 仓库内示例 | 仅文档:aws.env 键名说明 |
| references/config.example.yaml | 仓库内示例 | 仅文档:config.yaml 结构示例 |
| article.yaml | 本篇目录 drafts/YYYYMMDD-标题slug/ | 发文元数据(标题/作者/摘要/封面等)及状态字段:image_source(仅 generated / user;默认 generated,用户上传配图时改为 user)与 publish_completed(新建 false,发布闭环结束 true),与 config.yaml 分工 |
publish_method(默认 draft)、微信槽位元数据等均在 .aws-article/config.yaml 维护;密钥仅在 aws.env。drafts/YYYYMMDD-标题slug/,并优先创建 article.yaml(含 publish_completed: false、标题/作者/摘要等;通常为本目录内首个应落盘的文件),再进入内容流水线。article.md 定稿须满足 review 第 5 步(文末 {embed:…},⛔ BLOCKING)后再排版。全程以 .aws-article/config.yaml** 为账号与文风约束;典型产物依次为 topic-card.md / draft.md → article.md → article.html 与 imgs/ 等。draft → full 仅草稿箱;published 或 full --publish → 再提交发布;none → full 立即跳过、不调微信。前两档需微信凭证。再强调:aws.env = 密钥;config.yaml = 账号/文风/模型与微信元数据及 publish_method;本篇 article.yaml = 发文元数据。
按以下顺序与用户交互,上一步完成再进下一步;上一环节就绪后再进入下一环节。
config.yaml 与 aws.env 均存在 → 运行 validate_env.py(默认不加 --agent-image-capable)且退出码 0。退出码 1 时按 首次引导 补全环境;仅当用户明确表示不接微信时才可设 none;走本次例外需用户明确书面确认。validate_env.py 退出码 0 后,必须立即执行「第 2.5 步目录创建」(可复用 首次引导第 2 步 命令);该步完成前,禁止进入「2) 全局账号约束」与任何写稿流程。--agent-writing-approved,图片模型用 --agent-image-capable。--agent-image-capable 或宣称可按代生图模式继续。validate_env.py 不检查 article_category、target_reader、default_author;须在 「2) 全局账号约束」 中单独检查并落盘。.aws-article/config.yaml)⛔在 validate_env.py 已通过(或已按总览完成「本次例外」)之后、进入「3) 本篇准备」之前,必须打开 .aws-article/config.yaml,检查下列键 trim 后是否非空:
article_category、target_reader、default_author任一项缺失或空白:逐项询问用户(1.账号领域2.目标读者3.作者名字),取得用户当轮明确答复后再写回 .aws-article/config.yaml,再进入 「3) 本篇准备」。禁止仅在对话里口头确认却不写入文件。禁止跳过本步直接假定可写稿。
⛔ 禁止擅自填写(必须写进行为约束)
article.yaml、历史草稿、topic-card.md、对话记忆或仓库内任意文件静默抄录、推断或「顺手补全」后写入 article_category / target_reader / default_author。对 tone 等与账号画像强相关的全局项,要直接询问用户,同样禁止未询问就写盘。article.yaml 给建议,只能展示为待选文案,并问「是否采用 / 要改哪几个字」,用户明确同意后再写入 config.yaml。drafts/…/article.yaml 反推全局三键,避免误把单篇元数据当成整号定位。在完成「2) 全局账号约束」之后,在不了解用户是要续写既有草稿还是新开一篇时(例如未指定 drafts/… 路径、且仓库 drafts/ 下存在进行中目录或多个候选):须先询问并让用户选定 「继续哪一篇」 或 「新开一篇」,再进入下列 A/B 或调用写作脚本。禁止默认「最近修改」目录、未确认就运行写作脚本、或假定沿用上一轮路径。
业务素材双向规则(涉及用户自身业务时强制,详见 assets skill):
ls .aws-article/products/ 看有无相关产品目录,进入后必读根下 *.md(业务介绍)作为底稿来源;images/ 子目录里有现成业务配图则优先复用。.aws-article/products/{产品名}/{文件名}.md(用 Write 工具直接落库;目录不存在时同时创建 images/),下次涉及业务的文章自动用上。YYYYMMDD-标题slug(slug 规则:小写、连字符、与项目习惯一致即可)。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)。publish_method:默认 draft;要发出去 → published 或 full --publish;用户明确不填微信 → none。.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 不存在或候选为空,可保持 []。.aws-article/config.yaml(账号与发布策略);本篇目录内需有 article.yaml(或按用户状态后补)。若已有 article.html/cover.jpg 可直接从流水线中靠后的步骤接入。须已具备 本篇目录 与 article.yaml(「已有目录」分支按上条处理);账号侧约束以 config.yaml 为准。
确认轮次优化:全局三键已非空时静默通过;publish_method 已为合法值时不重复盘问;多个待确认项可合并为一轮提问。用户意图明确时(如给出主题 + "写一篇文章"),理想轮次为 1 轮(确认标题/摘要)+ 写完后展示结果。配图方案在用户无特殊要求时按默认风格自动执行,不单独确认。
选题 → 写稿 → 审稿(内容审) → 排版 → 配图 → 审稿(终审)
.aws-article/config.yaml 与 topic-card.md(或用户素材);publish_method 见 config.yaml(上文「发布方式与时间线」);产物 draft.md → 内容审后 article.md。article.md 前须按 review 第 5 步 ⛔ BLOCKING 完成文末 {embed:…}(或规则允许的省略并留痕);未完成不得进入 formatting。article.md → article.html(用户当次指定排版主题可覆盖默认)。article.html 与 imgs/;有问题给出清单,等用户确认或修复。config.yaml 的 publish_method 为准;draft / published / none 含义见上文。none 时运行 full 会无操作退出。draft/published:微信须配齐后再调 publish.py;建议 check-wechat-env。none:不调微信,说明即可。published_root。当用户说「草稿箱里图不满意,换我上传的图重新发」:
drafts/… 目录;imgs/,生成/更新 img_analysis.md(封面仅 1 张);article.yaml:image_source: user;publish_completed 置回 false;article.md 图片映射(允许重排);format.py 生成 article.html;publish.py full(draft 写草稿箱);publish_completed: true。选题 → 写稿 → 审稿(内容审) → 排版 → 配图 → 审稿(终审) → 发布
进入下一步前,必须先检查本步所需中间产物;缺什么就先补什么,禁止跳步并宣称已完成。
| 阶段 | 必要产物(最小集合) | 缺失时动作 |
|------|----------------------|------------|
| 写稿完成 | article.md 存在且非空 | 继续写稿或回滚到 writing |
| 排版完成 | article.html 存在,且由当前 article.md 重新生成 | 先执行 formatting 重转 |
| 配图完成 | 文章目录存在 cover.(png/jpg/jpeg/webp);article.md 与 article.html 不含 placeholder | 先执行 images 生成并替换(image_source=user 时走用户供图映射与重排) |
| 发布就绪 | article.yaml 含 title/author/digest/content_source;发布环境检查通过 | 先补齐元数据或环境 |
| 发布闭环 | 发布命令成功且回执可用 | 才允许写回 publish_completed: true |
禁止:仅凭单一信号(如“草稿创建成功”)就宣称全流程完成。若正文仍有 placeholder,状态必须标记为“草稿已提交,正文配图未完成”。
| 步骤 | 子 skill | 读取 | 产出 |
|------|---------|------|------|
| 选题 | topics | .aws-article/config.yaml、aws.env、web_search | topic-card.md research.md |
| 写稿 | writing | topic-card.md、.aws-article/config.yaml、aws.env(专用写作 API) | draft.md |
| 审稿 | review | draft.md、aws.env、.aws-article/config.yaml | review.md → article.md(定稿须含文末 embed,见 review 第 5 步) |
| 排版 | formatting | article.md、.aws-article/config.yaml | article.html |
| 配图 | images | article.md、aws.env、.aws-article/config.yaml | imgs/ |
| 终审 | review | article.html、imgs/、.aws-article/config.yaml | review.md |
| 发布 | publish | article.html+imgs/、config.yaml、aws.env(调用 publish.py 时) | 草稿 media_id / 发布 publish_id、URL、out/ 记录 |
账号与文风约束:以 .aws-article/config.yaml 为准。
topics / web_search:须满足上文 3-A-1(用户已说明本篇写什么,或已确认「只帮忙出选题」)之后才可调研与生成选题;不得默认跳过提问直接搜索。
> 提示:发布前需就绪本篇 article.yaml(标题/作者/摘要/封面等元数据;content_source 默认 article.html)。可用 {baseDir}/../aws-wechat-article-publish/scripts/article_init.py 快速初始化或更新。
默认:与长文发文相关时 优先 main,由本 skill 按步编排;不要因用户说了「写」「选题」「发」就跳过 main 直连子 skill。
何时直连子 skill(可跳过 main 入口):用户明确只要该步产物、且不隐含「从零到发出」整条链。例如:已有 article.md 只要排版;已有稿只要审稿清单;已有 article.html+imgs/ 只要发布前检查或提交;已有选题卡只要扩写等。
| 用户说法 | 路由到 |
|---------|--------|
| 从0开始、从零、从头、一条龙、完整流程、帮我发一篇、发到公众号(含各前置步)、今天发什么/写什么好(要成文并发)、不确定从哪步开始 | main |
| 只要选题卡、标题、摘要、排期、系列策划(明确不做后续编排) | topics |
| 只要在已有选题/大纲/草稿上写稿、改写、润色、续写(明确不要全流程) | writing |
| 只要审稿/校对/合规清单(成稿或已定版 HTML) | review |
| 「能不能发」且含代为发布、或要从稿到发出整条收尾 | main |
| 只要排版、换主题、转 HTML | formatting |
| 只要长文封面/正文配图(有正文或插图位) | images |
| 贴图、图片消息、多图推送、九宫格(非长文图文链路) | sticker |
| 只要执行发布/提交/群发(已有约定产物) | publish |
用户说「一条龙」「完整流程」时启用。按 交互顺序 的 1→2→3→4→5 执行;3-A 内子步骤亦须逐步完成。流水线中每步完成后暂停等用户确认。审稿有 🔴 项时进入修改循环。
用户明确只要某一步且已有对应输入产物(或声明不做全流程)时,可仅执行该步骤;若表述含糊、可能还要后续发文,仍从 main 问起或按一条龙拆步确认。
路由到独立的 aws-wechat-sticker skill。
aws.env(仓库根,密钥)与 .aws-article/config.yaml(非密钥与模型/微信元数据及 publish_method):校验 {baseDir}/scripts/validate_env.py;aws.env 键名见 references/env.example.yamlconfig.yaml / article.yaml / aws.env 字段说明:references/articlescreening-schema.md{baseDir}/../aws-wechat-article-publish/scripts/publish.py check-wechat-env(仓库根执行,试换微信 access_token;凭证在 aws.env)Analyze text and images for harmful content with customizable blocklists.
Azure AI Content Understanding SDK for Python. Use for multimodal content extraction from documents, images, audio, and video.
Azure OpenAI SDK for .NET. Client library for Azure OpenAI and OpenAI services. Use for chat completions, embeddings, image generation, audio transcription, and assistants.
Azure AI Voice Live SDK for .NET. Build real-time voice AI applications with bidirectional WebSocket communication.
Build real-time voice AI applications with bidirectional WebSocket communication.
Azure Speech to Text REST API for short audio (Python). Use for simple speech recognition of audio files up to 60 seconds without the Speech SDK.
Expert at handling file uploads and cloud storage. Covers S3, Cloudflare R2, presigned URLs, multipart uploads, and image optimization. Knows how to handle large files without blocking.
Expert Mermaid diagram creation, validation, and rendering with dual-engine output (SVG/PNG/ASCII). Supports all 20+ diagram types including C4 architecture, AWS architecture-beta with service icons, flowcharts, sequence, ERD, state, class, mindmap, timeline, git graph, sankey, and more. Features code-to-diagram analysis, batch rendering, 15+ themes, and syntax validation. Use when users ask to create diagrams, visualize architecture, render mermaid files, generate ASCII diagrams, document system flows, model databases, draw AWS infrastructure, analyze code structure, or anything involving "mermaid", "diagram", "flowchart", "architecture diagram", "sequence diagram", "ERD", "C4", "ASCII diagram". Do NOT use for non-Mermaid image generation, data plotting with chart libraries, or general documentation writing.
Take aiworkskills/aws-wechat-article-main from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.