Skillquality 0.46

aws-wechat-article-writing

写公众号文章或改写已有内容,可调用第三方模型生成初稿。当用户提到「写文章」「写正文」「写稿」「出稿」「改写」「润色」「续写」「写个初稿」「帮我写」「公众号风格」「把提纲写成文章」「开头结尾」「用 DeepSeek 写」「用 GPT 写」时使用。注意:需要用户明确知道写什么的时候才能直接使用,否则先通过aws-wechat-article-topics获取文章的基本信息。

Price
free
Protocol
skill
Verified
no

What it does

长文写作

路由

从零发文、一条龙、完整流程 → aws-wechat-article-main

配置检查 ⛔

任何操作执行前,必须首次引导 执行其中的 「检测顺序」。检测通过后才能进行以下操作(或用户明确书面确认「本次不检查」):

从选题到发布的前置规则(阻断、禁止擅自降级、「本次例外」等)见 aws-wechat-article-main/SKILL.md;本 skill 只描述写稿步骤。

写作模型writing_modelproviderbase_urlmodel 等)在 .aws-article/config.yamlWRITING_MODEL_API_KEY 在仓库根 aws.env。键名对照 {baseDir}/../aws-wechat-article-main/references/env.example.yaml

交互约定:须遵守 main 的智能体行为约束——通过环境校验且获用户明确「本次例外」时,不得默认改由当前 Agent 代写并假装流程完整。环境检查未通过时,只按 首次引导 处理配置选项,不要在同一条回复里混入写稿、草稿路径或多草稿选择;配置闭环后再进入本 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_categorytarget_readerdefault_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_categorytarget_readerdefault_author 是否 trim 后均非空。任一项缺失:逐项询问用户,取得用户当轮明确答复后再写回该文件,再进入第 2 步。禁止article.yaml、其它草稿或仓库文件静默推断并写盘;可把从某文件读到的内容仅作建议展示,须用户同意后再写入。禁止跳过本步。禁止仅在对话里确认却不落盘。与 main「2) 全局账号约束」一致。

第2步:续旧稿还是新稿(不了解时须先问)⛔

当不清楚用户是要续写 drafts/ 下某篇进行中草稿还是新开一篇时:须先询问(可列出候选目录),待用户选定后再进入第 3 步。须在第 1 步全局三键已落盘之后执行已明确时跳过本步询问。

目录命名:新开一篇时,目录名必须YYYYMMDD-标题slug(如 drafts/20260406-wechat-article-skills/)。YYYYMMDD 为当日日期,slug 为小写、连字符分隔的标题缩写。禁止省略日期前缀

第3步:读取本篇约束与写作规范

⛔ 关键字段不得空跑:在调用 write.py 或按合并约束让 Agent 代写之前,确认合并后的 article_categorytarget_reader 均为非空字符串(trim 后);default_author 非空 本篇 article.yamlauthor 非空。若任一项不满足,须暂停写稿,引导用户补全 .aws-article/config.yaml(及/或本篇 article.yaml),并实际写入文件——不要仅用对话表格收集「读者」却不落盘。全局三键的优先检查顺序见 main「2) 全局账号约束」;若第 1 步已正确落盘,此处多为合并 article.yaml 覆盖后的复核。

约束从哪来write.py 会先读全局 .aws-article/config.yaml,再读本篇目录下的 article.yaml,把两边的键叠成一张表用来生成写作提示——若同一键在两份文件里都有,以本篇 article.yaml 为准。字段分工见 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 改为 truepublish.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-article/presets/structures/<名>.md),了解其适用场景;
  2. 结合本篇主题 / 选题卡内容,判断最匹配的一个;
  3. 将该名写入 article.yaml 同键为单元素列表 [名]
  4. 然后再调用 write.py禁止盲选第一个——须基于内容匹配。若无法判断,向用户展示候选及说明后请用户选择。

另加载 .aws-article/writing-spec.md(如有)。

字段用途
target_reader读者画像 → 深度、用词、案例
tone调性 → 语气与句式
writing_style结构表达方式(口语/书面/故事/方法论等)

配置中其它与写稿相关的键(如 topic_directionforbidden_wordsheading_densitytarget_word_count)一并写入约束。

说明文档资源库(写稿前)⛔

目的:减轻垂直领域表述含糊或臆测;默认路径为 .aws-article/assets/stock/references/(按文件命名存放说明类 Markdown;项目另有约定目录时一并视为同一类资源库)。

写作只有 两种方式,说明文档用法如下(二选一,勿混用同一条命令里的职责)。

方式一:智能体直接写稿

  1. 写稿前:查看资源库(及项目约定目录)里是否有与本篇主题、选题卡明显相关的说明文档。
  2. 写作时:可引用其中内容并转化为账号文风;没有相关文档就不引用,不阻断写稿
  3. draft.md:凡正文中实际引用或依据了某份说明文档的,在该处表述之后用括号附上该文件的仓库相对路径(路径须真实存在);未引用则不必加括号
  4. 配图占位(硬性):当 image_source 不为 user(合并 config.yaml + 本篇 article.yaml)时,按 image_density 生成配图占位;若未配置或为空,默认每节一图。格式必须为 ![类型名:画面内容](placeholder),每个占位独占一行封面占位放在标题之前;类型名与细则见 references/structure-template.md「配图标记」。
  5. article.md 定稿:面向读者发布,正文中不保留上述括号路径(与审稿/排版约定一致)。

方式二:write.py 写稿

  1. 运行脚本前:同样先查看/判断资源库是否有与主题相关的 .md(判断标准与方式一一致)。
  2. 有相关文档:在仓库根执行 write.py 时传入 --reference <路径>(可重复,最多 5 个;路径须在 .aws-article/assets/stock/references/ 下,详见脚本与 usage)。脚本将全文注入系统提示「参考资料库」,并约定模型在依据处标注资料路径。
  3. 无相关文档不传 --reference,仅靠选题卡与合并配置写稿即可。
  4. 若写作 API 因上下文/token 超限失败,减少 --reference 篇数或换更短文档后重试。

禁止:将与主题无关的文档硬塞进正文;伪造说明文档中不存在的事实。

第4步:发布意图(publish_method)⛔

调用 write.py 或进入第6步写作之前,确认 .aws-article/config.yaml 中的 publish_method(与 发布 skillarticlescreening-schema.md 一致):

取值含义(向用户说明时用 plain 语言)
draft默认定稿后若走 publish.py full,只把图文写入公众号草稿箱,不自动「发出去」。
published定稿后 publish.py full 会在创建草稿后再提交发布(异步)。也可用 full --publish 单次强制带发布。
none询问微信配置后用户明确不想填写:写入 publish_method: nonepublish.py full直接跳过、不调微信;写稿/审稿/排版等照常。

规则

  1. 默认保持或写入 publish_method: draft,除非用户明确要对外发布 → 改为 published明确不填微信、不走上传 → 改为 none
  2. 微信:提醒发布需要 aws.env;用户拒绝填写 → none,不要代跑 publish.py full(跑了也会无操作退出)。
  3. 若已是 draft / published / none(小写):可不重复盘问

禁止:在 publish_method 非法时调用 write.py;禁止未经同意默认 published

第5步:确定输入与写作方式

输入topic-card.md / 用户提供的提纲或素材 / 用户口述主题;并已按上文「说明文档资源库」完成判断(直接写稿则已决定是否引用;走 write.py 则已决定是否传 --reference)。

写作方式(优先级)

  1. 优先:调用第三方模型write.py draft/rewrite/continue)— 依赖 config.yamlwriting_model + aws.envWRITING_MODEL_API_KEY(见 usage.md
  2. 自动降级:模型未配置(退出码 2)→ 先 write.py prompt <mode> <input> 获取提示词 JSON,再由 Agent 按相同提示词直接写,无须「本次例外」确认
  3. 故障降级:调用失败(退出码 1)→ 按下方重试/排错逻辑

必须告知用户当前使用的方式

  • 已配置且调用脚本 → ℹ️ 使用 write.py 调用第三方模型({model})
  • 模型未配置自动降级 → ℹ️ 写作模型未配置,本次由当前对话模型直接写稿(使用相同写作约束)
  • 故障降级 Agent 直写 → ℹ️ 第三方 API 不可用,本次由当前对话模型代写(使用相同写作约束),并说明原因

write.py 退出码处理(智能体必选分支)

运行脚本后须把终端里的具体报错原样摘要给用户(或引用关键行),勿只说「调用失败」。

退出码与报错类型分支处理:

类型判断线索智能体动作
未配置(退出码 2)stderr 含 [NO_MODEL]自动降级:运行 write.py prompt <mode> <input> 获取提示词 JSON({"system_prompt": "...", "user_prompt": "..."})→ Agent 按该 system_promptuser_prompt 写文章 → 输出到 -o 指定路径或展示给用户。无须用户确认或「本次例外」。
网络类(退出码 1)超时、连接失败、URLError网络错误:、临时性 502/503 等必须自动再试 1 次(可简短等待后重跑同一命令,并告知用户「正在重试」)。第二次仍为网络类失败 → 改用 write.py prompt 获取提示词后由 Agent 按相同约束代写;必须明确告知:第三方 API 网络不可用,本次由对话模型代写。
配置/凭证类(退出码 1)401/403、Key 无效、未找到写作约束、YAML 解析失败等不要为「省事」自动降级掩盖问题。列出须检查项config.yamlwriting_modelaws.envWRITING_MODEL_API_KEY、本篇目录是否有 article.yaml 等),请用户修正后重跑 write.py。若用户明确打字愿意本次改由 Agent 代写,再按 main「本次例外」处理并留痕。
业务/内容类(退出码 1)4xx 中除鉴权外(如 400 参数)、模型返回空等将 API 返回体摘要给用户;可先根据提示改 model / 请求参数再试一次;仍失败则与用户商定是否 Agent 代写。

Agent 代写时提示词获取:无论哪种降级路径,Agent 代写前都应先运行 write.py prompt <mode> <input>--instruction 按需传入),取回与 write.py 调第三方模型时完全相同system_promptuser_prompt,确保写作约束一致。

禁止:配置明显错误时静默改用 Agent 写稿却不说明;网络降级后不告知用户「本次未走第三方模型」。

第6步:写作

写作时必须遵循第3步读取的 target_readertonewriting_style(来自合并后的约束):深度与用词贴合读者,语气贴合调性,结构与表达方式贴合文章风格。

用户供图分支(image_source: user

  • 用户图片须先放入本篇 imgs/;随后由智能体读图分析并生成或补全 img_analysis.md(可用 user_image_prepare.py 先生成模板再填写)。未落盘 img_analysis.md 不得调用 write.py,否则脚本会报错退出。
  • img_analysis.md 是写稿时配图与章节顺序的唯一依据write.py 会把它并入提示,按「建议章节 / 推荐用途」把每张图放到合理位置(可重排章节以匹配叙事)。
  • img_analysis.md 中“推荐用途:封面”必须且只能有 1 处;否则不得写稿。
  • 写稿时直接使用用户图片路径(imgs/xxx.png),不再输出 placeholder
  • image_source 只允许:generated / user禁止写 user_provided
  • 该字段由智能体按流程动态更新:默认 generated;进入用户供图替换流程时写为 user

状态切换规则(article.yaml

  • 新建文章默认:image_source: generatedpublish_completed: false
  • 当进入“用户上传图片替换/重写”流程时:将 image_source 改为 user,并将 publish_completed 置回 false(表示需重新发布闭环)。
  • 重新发布成功且有回执后:再写回 publish_completed: true

文章结构:按优先级加载结构预设:

  1. 用户指定(「用清单体结构」)
  2. 本篇 article.yamldefault_structure(单元素列表)
  3. .aws-article/presets/structures/ 下的文件
  4. 内置默认:references/structure-template.md

文末区块:按优先级加载:

  1. 本篇 article.yamldefault_closing_block 指定的文件(单元素列表)
  2. 合并约束中 closing_block 非空字符串(若有)
  3. fallback:内置默认文末(分割线 + 一句关注引导):---\n觉得有用?点个关注,持续获取优质内容。

默认模式下,写作时在需要图的位置插入配图标记 ![类型名:画面内容](placeholder)(规则见 write.py 系统提示与 references/structure-template.md「配图标记」)。

调用第三方模型时的脚本用法:references/usage.md

第7步:自检与修正

按写作规范做一轮自检(禁用词、段落长度、开头吸睛度、小标题密度),发现问题自动修正。

配图占位自检(默认模式):当 image_source != user 时,核对 draft.md 是否满足 image_density(未配置则按每节一图);缺失或格式不合法时,先补齐/修正 ![类型名:画面内容](placeholder) 再进入审稿或配图步骤。

续写补充(中间产物门禁)

  • 续写新增 ![...](placeholder) 时,必须把该占位计入“待配图清单”(供 images 步骤生成与替换)。
  • 进入发布相关步骤前,必须复核本篇正文产物:article.md / article.html 若仍含 placeholder,只能标记为“正文配图未完成”,禁止宣称发布闭环完成。

第8步:展示并等待用户确认 ⛔

过程文件

读取产出
topic-card.md.aws-article/config.yaml、本篇 article.yamldraft.md(含配图标记);本 skill 可能更新 publish_method(发出去 → published;不填微信 → none;默认 draft);新建/补全 article.yaml 时保持 publish_completed: false

Capabilities

skillsource-aiworkskillsskill-aws-wechat-article-writingtopic-agent-skillstopic-ai-skillstopic-ai-writingtopic-chinese-nlptopic-codextopic-content-automationtopic-content-creationtopic-copywritingtopic-llmtopic-markdown-to-htmltopic-openclawtopic-wechat

Install

Quality

0.46/ 1.00

deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 14 github stars · SKILL.md body (11,026 chars)

Provenance

Indexed fromgithub
Enriched2026-04-21 19:04:12Z · deterministic:skill-github:v1 · v1
First seen2026-04-21
Last seen2026-04-21

Agent access