{"id":"c4aa5efb-9911-4658-a2a3-4ceabd8653ae","shortId":"pMud2J","kind":"skill","title":"aws-wechat-article-assets","tagline":"公众号素材｜业务资料库｜预设包｜.aws 预设包｜主题包｜品牌包｜aiworkskills.cn — 用户业务资料库与预设包管理：业务资料按产品名组织在 `.aws-article/products/{产品名}/`（介绍 .md 直挂产品根 + 配图归 `images/` 子目录含同名说明 .md），AI 与用户对话产出业务介绍内容时引导用户保存；图片入库走 `product_image_ingest.py --product <产品名> --stem <中文名>`。导入 .aws ZIP 预设包（本地文件或 `https://aiworkskills.","description":"# 用户业务资料库与预设（Assets）\n\n**业务资料按产品名分目录** — `.aws-article/products/{产品名}/` 直挂业务介绍 `.md`、`images/` 存配图（含同名说明 `.md`）。**写涉及用户自身业务的文章/配图前必须先查这里；新生成的业务介绍内容应引导用户保存到这里**。预设包合并到 `.aws-article/presets/`。\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 管理本地业务资料库与预设包，可选从 `aiworkskills.cn` 域下载 `.aws` 预设包（ZIP 格式）。\n\n- **凭证**：无\n- **网络**：可选 `https://*.aiworkskills.cn/**/*.aws` 下载预设包。**白名单强制**：仅 HTTPS + `aiworkskills.cn` 子域，非白名单会**直接报错退出**。调试参数 `--allow-any-host` 可放宽但不推荐生产使用\n- **文件读**：用户指定的本地图片路径或 `.aws` 文件（脚本边界）；AI 在引导业务介绍入库时会先 `ls .aws-article/products/` 看已有产品名\n- **文件写**：仓库内 `.aws-article/products/{产品名}/*.md`（业务介绍，AI 用 Write 工具直接落库）、`.aws-article/products/{产品名}/images/*`（图片 + 同名 `.md`，由脚本写）、`.aws-article/presets/<子目录>/*`（预设文件）、`.aws-article/downloads/*.aws`（下载缓存）、`.aws-article/tmp/*`（解压临时目录）；导入 `.aws` 时**仓库根 `aws.env`** 会按映射表增量写入密钥字段（覆盖现有键前自动备份为 `aws.env.bak.{ts}`，stderr 仅打印键名不打印值）\n- **归档**：解压 `.aws` 扩展名的 ZIP 到 `.aws-article/tmp/`，按白名单子目录合并到 `.aws-article/presets/`。**已内置 ZIP slip 防御**：逐项校验 ZIP 成员路径，拒绝含绝对路径、`..` 段或解析后指向解压目录外的路径，任一违反立即退出不写入任何文件\n- **shell**：仅 `python3 {baseDir}/scripts/product_image_ingest.py`、`import_presets_aws.py`\n\n所有写入限制在仓库根下的 `.aws-article/` 内。\n\n## 配套 skill（informational）\n\n本 skill 是 `aws-wechat-article-*` 一条龙公众号套件的**业务资料库与预设环节**（入口 `aws-wechat-article-main`）。\n\n- **单独安装可用**：业务图入库 / `.aws` 预设导入两个脚本都不依赖兄弟 skill，只要 `.aws-article/` 目录就能工作。\n- 其他 skill 读取 `.aws-article/products/{产品名}/`（业务介绍 + `images/`）和 `.aws-article/presets/` 里由本 skill 管理的资源，属套件协同；需结合写稿/配图/排版等 skill 使用。\n\n完整 9 slug 清单见 [源码仓库](https://github.com/aiworkskills/wechat-article-skills)。\n\n| 能力 | 说明 |\n|------|------|\n| **业务介绍 .md 入库** | AI 与用户对话产出业务介绍内容时，引导/响应保存到 `products/{产品名}/<文件名>.md`（用 Write 工具直接落库，无脚本） |\n| **业务图入库** | 用户业务图 → `products/{产品名}/images/`（脚本 `--product` 必填），供其它 skill 引用 |\n| **预设包 `.aws`** | ZIP 包（本地文件或 `https://aiworkskills.cn/**/*.aws` URL）→ 合并 `presets/` 子目录；`config.yaml` 见下 |\n\n---\n\n## 〇、设计意图（必读）⛔\n\n`.aws-article/products/{产品名}/` 是**用户自家业务**（卖货 / 卖软件 / 卖服务 / 自媒体 IP 等）的**资料库**——既是 AI 写涉及业务的内容时的**底稿来源**，也是 AI 与用户协作产出新介绍时的**保存目的地**。\n\n### 目录约定\n\n```\n.aws-article/products/{产品名}/\n├─ 项目介绍.md                # 业务介绍 .md 直挂产品根（命名按用户行业，如 服务介绍.md / 品牌介绍.md）\n├─ (其他业务文档.md)\n└─ images/\n   ├─ 配置首页.png\n   └─ 配置首页.md             # 图片说明 .md（同名）\n```\n\n### 双向触发\n\n| 方向 | 触发条件 | 行为 |\n|------|---------|------|\n| **读** | 当前任务涉及用户自家业务（对外介绍 / 教程 / 案例 / 自家业务安利 / 业务相关配图） | 先 `ls .aws-article/products/`，识别本篇相关产品，读该产品根下 `*.md`、查 `images/` 同名 `.md`，把已有素材作为底稿/配图候选 |\n| **写** | AI 在会话中刚生成或改写的内容**语义属于用户业务介绍** | 走 [一、业务介绍 .md 入库](#一业务介绍-md-入库product-intro)；用户主动说\"保存为产品介绍\"等也走此流程 |\n\n### 反例（不要触发）\n\n- 主题是行业资讯 / 通用教程 / 与用户业务无关 → 不读、不写\n- 用户明确表示内容\"还没定型\" → 不主动引导保存\n- AI 不确定是不是用户自家业务时 → 宁可不主动提，也不要乱塞进 `products/`\n\n---\n\n## 一、业务介绍 .md 入库（Product Intro）\n\n无需脚本，AI 用 Write 工具直接落库。\n\n### 触发模式 A：AI 主动识别 + 引导\n\nAI 在任意会话中刚生成或刚改写了一段内容，**其语义明确属于用户自家业务介绍**（产品 / 服务 / 品牌 / 项目 / 团队 / 业务范围介绍）时，主动提示用户：\n\n> \"这段是 [产品名] 的业务介绍，要不要保存到产品资料库？我可以存到 `.aws-article/products/{产品名}/{文件名}.md`，下次写涉及业务的文章时会自动用上。\"\n\n用户确认 → 走「保存流程」。\n\n### 触发模式 B：用户主动指令\n\n用户说类似 \"保存为产品介绍 / 业务介绍 / 服务介绍 / 自家介绍 / 入库到产品 / 存到产品资料库\" 时，AI 把当前会话中的目标内容（用户指定段落或最近相关产出）走「保存流程」。\n\n### 保存流程\n\n1. **确认产品名**：`ls .aws-article/products/`，已有目录则提示复用；新产品则向用户拿名字\n2. **确认文件名**：默认 `项目介绍.md`；可改为 `产品介绍.md` / `服务介绍.md` / `品牌介绍.md` / `业务介绍.md` 等贴用户行业的命名\n3. **创建目录**：`mkdir -p .aws-article/products/{产品名}/images/`（即便暂为空，把骨架建齐）\n4. **写入文件**：用 Write 工具落到 `.aws-article/products/{产品名}/{文件名}.md`\n5. **反馈**：「已存到 `<完整路径>`，下次涉及 [产品名] 业务的文章会自动用上」\n\n---\n\n## 二、业务图入库（Product Images）\n\n### 目录\n\n| 路径 | 作用 |\n|------|------|\n| `.aws-article/products/{产品名}/images/` | 入库图片 + 同名 `.md`（固定：**图片路径** / **图片描述**） |\n\n### 工作流\n\n1. 用户上传或给出本地图片路径，并指明**所属产品**（与 `products/` 下某个目录对应；新产品则脚本会自动创建）。\n2. **Agent 读图**（多模态能力在本对话侧）：确定**中文主文件名**（如 `配置首页`），并写出**客观画面描述**（供 `.md` 与后续配图检索使用）。\n3. 在**仓库根**执行（**推荐**带上 `--content`，与第 2 步描述一致）：\n\n```bash\npython {baseDir}/scripts/product_image_ingest.py <源图片路径> \\\n  --product \"公众号AI运营助手\" --stem \"配置首页\" \\\n  --content \"客观中文描述，一两句即可\"\n```\n\n`--product` **必填**；产品目录与 `images/` 子目录不存在时**自动创建**。\n\n4. 生成 `配置首页.png` + `配置首页.md`（格式见下）。\n\n### 图片描述与占位 ⛔\n\n- **`product_image_ingest.py` 不会读图**：无视觉/多模态，只负责**复制图片**并**按模板写 `.md`**。\n- **未传 `--content`（或为空）** 时，「**图片描述**」会写入固定占位句：**「请根据图片补全（客观描述画面内容即可）。」**——这是预期行为，不是脚本故障。\n- **要直接得到可用描述**：入库命令必须带 **`--content \"……\"`**（由 Agent 读图后填写），或入库后**手动/由 Agent 编辑**同名 `.md` 替换占位段。\n\n### `.md` 固定格式\n\n```markdown\n**图片路径**：`.aws-article/products/公众号AI运营助手/images/示例.png`\n\n**图片描述**：……\n```\n\n### 脚本 `product_image_ingest.py`\n\n- `source`、`--product`（**必填**）、`--stem`（必填）、`--content`（可选，**强烈建议由 Agent 读图后传入**）、`--repo`（可选）\n\n---\n\n## 三、预设包导入（`.aws`）\n\n扩展名 **`.aws`**，实质为 **ZIP**。解压后根目录应包含与仓库一致的预设文件夹（可多出其它文件，脚本只处理下列目录）：\n\n`closing-blocks`、`cover-styles`、`formatting`、`image-styles`、`sticker-styles`、`structures`、`title-styles`\n\n另可有根级 **`config.yaml`**、**`writing-spec.md`**。\n\n### 输入来源（本地 / URL）\n\n`bundle` 参数同时接受两种形态：\n\n- **本地路径**：`./brand-a.aws` 或绝对路径\n- **HTTPS URL**：仅限 `aiworkskills.cn` 及其子域，必须 `https://` 开头、路径以 `.aws` 结尾\n  - 示例：`https://aiworkskills.cn/bundles/brand-a.aws`\n  - 下载缓存：`.aws-article/downloads/<原文件名>`（**不在 `tmp/` 内**，不受清空影响，保留供事后核对）\n  - 不在白名单、非 https、或下载内容非 ZIP → **直接报错退出**\n  - 调试放宽：`--allow-any-host` 可跳过域名白名单（仍强制 https）；不建议生产使用\n\n### 合并规则\n\n- 每个上述目录采用**「替换式」语义**（以服务端为准，避免旧文件残留）：\n  - 若**包内存在**该子目录 → **先清空本地 `.aws-article/presets/<同名>/` 再写入包内内容**（旧包里有、新包里删掉的文件不会残留）；\n  - 若**包内不存在**该子目录 → 本地对应子目录**保持不动**（不受本次导入影响）。\n  - 包根优先级：若包根下**同时**存在 **`presets/<名>/`** 与 **`<名>/`**，脚本**优先合并前者**；若目录内仅有一层多余 **`<名>/<名>/`**，脚本会自动以内层为合并根。\n- **`config.yaml`**：若包内存在且本地**尚无** `.aws-article/config.yaml`，则从包内**复制**；若本地**已有**，则**不覆盖**，按包内字段与本地**同名键**递归比对，将差异以 **JSON 数组** 打印到 **stdout**（`{\"key\":\"点分路径\",\"old\":…,\"new\":…}`），供智能体询问用户后再手改配置；说明日志在 stderr。\n- **`writing-spec.md`**：若包内存在，**始终覆盖**写入 **`.aws-article/writing-spec.md`**（与 `config.yaml` 不同，不做差异比对）。\n- 解压目录：**`.aws-article/tmp/`**（固定路径；运行前若无 `.aws-article` 会创建）。**每次执行前**若 `tmp` 已存在则**整目录删除后重建**，再解压本次 `.aws`；合并到 `presets/` 后**保留**解压结果便于核对，下次导入会再次清空 `tmp` 并覆盖为新包内容。\n\n### 密钥与配置\n\n- **`config.yaml` 中的密钥字段会被增量写入仓库根 `aws.env`**。包内 `config.yaml` 顶层 `wechat_appid` / `wechat_appsecret`、嵌套 `writing_model.api_key` / `image_model.api_key` 在导入时按下表映射写入：\n\n  | `config.yaml` 字段 | `aws.env` 键 |\n  |---|---|\n  | `wechat_appid` | `WECHAT_1_APPID` |\n  | `wechat_appsecret` | `WECHAT_1_APPSECRET` |\n  | `writing_model.api_key` | `WRITING_MODEL_API_KEY` |\n  | `image_model.api_key` | `IMAGE_MODEL_API_KEY` |\n\n- 写入策略：包内字段为空 → 不动 `aws.env` 现有键；`aws.env` 无该键 → 追加；已有相同值 → 跳过；已有不同值 → 写入前备份 `aws.env.bak.{ts}` 后覆盖。stderr 仅输出键名清单，不打印密钥值；保留原文件顺序、空行与注释。当前前端导出仅支持单微信账号（固定槽位 1），`aws.env` 中的 `WECHAT_2_*` 等其他键不受导入影响。\n- `config.yaml`（运营配置）：本地无则首次复制；本地有则差异 JSON 输出到 stdout 不覆盖（与原行为一致），由 Agent 询问用户确认后手改。\n\n### 工作流\n\n1. 准备 `*.aws` 来源：**(a)** 本地文件（上传或已有路径），或 **(b)** 符合白名单的 **HTTPS URL**。\n2. 可先 **`--dry-run`** 查看将写入的路径（URL 模式下仍会实际下载到 `downloads/` 以便校验 ZIP 结构，但不写入 `presets/` 与 `config.yaml`）。\n3. 在**仓库根**执行：\n\n```bash\n# 本地路径\npython {baseDir}/scripts/import_presets_aws.py path/to/bundle.aws\npython {baseDir}/scripts/import_presets_aws.py path/to/bundle.aws --dry-run\n\n# URL（仅 aiworkskills.cn 及子域）\npython {baseDir}/scripts/import_presets_aws.py https://aiworkskills.cn/bundles/brand-a.aws\npython {baseDir}/scripts/import_presets_aws.py https://aiworkskills.cn/x/y.aws --dry-run\n```\n\n### 脚本 `import_presets_aws.py`\n\n- 参数：`bundle`（`.aws` 路径 或 `https://*.aiworkskills.cn` URL）、`--dry-run`、`--repo`、`--allow-any-host`（调试）\n\n---\n\n## 脚本一览\n\n| 脚本 | 路径 |\n|------|------|\n| `product_image_ingest.py` | `{baseDir}/scripts/product_image_ingest.py` |\n| `import_presets_aws.py` | `{baseDir}/scripts/import_presets_aws.py` |\n\n## 过程文件\n\n| 场景 | 产出 |\n|------|------|\n| 业务介绍 .md 入库 | `.aws-article/products/{产品名}/{文件名}.md`（AI 用 Write 工具落库；目录不存在时同时 mkdir 包括 `images/`） |\n| 业务图入库 | `.aws-article/products/{产品名}/images/*.{png,...}` + 同名 `*.md` |\n| `.aws` 导入 | 更新 `.aws-article/presets/**`；`config.yaml` 首次复制或 stdout 差异 JSON；密钥增量写入仓库根 `aws.env`（覆盖前备份 `aws.env.bak.{ts}`）；解压缓存在 `.aws-article/tmp/` |\n| `.aws` URL 导入 | 下载缓存 `.aws-article/downloads/*.aws`；其余同本地导入 |","tags":["aws","wechat","article","assets","skills","aiworkskills","agent-skills","ai-skills","ai-writing","chinese-nlp","codex","content-automation"],"capabilities":["skill","source-aiworkskills","skill-aws-wechat-article-assets","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-assets","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 (8,143 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:26.769Z","embedding":null,"createdAt":"2026-04-21T19:04:11.478Z","updatedAt":"2026-05-18T18:58:26.769Z","lastSeenAt":"2026-05-18T18:58:26.769Z","tsv":"'/**/*.aws':114,324 '/aiworkskills/wechat-article-skills':95 '/aiworkskills/wechat-article-skills)':288 '/brand-a.aws':730 '/bundles/brand-a.aws':745,1014 '/config.yaml':816 '/downloads':174,750,1111 '/images':160,310,535,569,676,1078 '/presets':63,168,207,271,785,1088 '/products':19,48,140,147,158,263,337,361,400,477,508,533,546,567,674,1060,1076 '/scripts/import_presets_aws.py':996,1000,1011,1017,1050 '/scripts/product_image_ingest.py':222,611,1047 '/tmp':180,202,854,1103 '/writing-spec.md':845 '/x/y.aws':1020 '1':502,577,900,905,941,960 '2':511,585,606,945,972 '3':526,598,988 '4':538,626 '5':550 '9':74,282 'agent':586,657,662,690,957 'ai':28,134,151,294,350,354,411,437,449,455,458,496,1064 'aiworkskil':41 'aiworkskills.cn':13,102,113,119,323,735,744,1007,1013,1019,1031 'aiworkskills.cn/**/*.aws':112,322 'aiworkskills.cn/bundles/brand-a.aws':743,1012 'aiworkskills.cn/x/y.aws':1018 'allow':125,765,1038 'allow-any-host':124,764,1037 'api':911,917 'appid':884,898,901 'appsecret':886,903,906 'articl':4,18,47,62,71,81,139,146,157,167,173,179,201,206,227,238,245,255,262,270,336,360,399,476,507,532,545,566,673,749,784,815,844,853,859,1059,1075,1087,1102,1110 'asset':5,43 'aw':2,9,17,37,46,61,69,79,104,131,138,145,156,166,172,175,178,183,195,200,205,226,236,243,249,254,261,269,318,335,359,398,475,506,531,544,565,672,696,698,740,748,783,814,843,852,858,867,962,1028,1058,1074,1082,1086,1101,1104,1109,1112 'aws-articl':16,45,60,137,144,155,165,171,177,199,204,225,253,260,268,334,358,397,474,505,530,543,564,671,747,782,813,842,851,857,1057,1073,1085,1100,1108 'aws-wechat-articl':68,235 'aws-wechat-article-asset':1 'aws-wechat-article-main':78,242 'aws.env':186,879,895,922,924,942,1095 'aws.env.bak':189,931,1097 'b':486,968 'basedir':221,610,995,999,1010,1016,1046,1049 'bash':608,992 'block':706 'bundl':727,1027 'capabl':97 'clawhub':89 'close':705 'closing-block':704 'config.yaml':329,722,810,847,877,881,893,947,987,1089 'content':604,617,644,655,687 'cover':708 'cover-styl':707 'download':980 'dri':975,1003,1022,1034 'dry-run':974,1002,1021,1033 'format':710 'github.com':94,287 'github.com/aiworkskills/wechat-article-skills':93 'github.com/aiworkskills/wechat-article-skills)':286 'host':127,767,1040 'https':118,732,759,770,970 'imag':25,52,266,376,405,560,623,712,915,1071 'image-styl':711 'image_model.api':890,913 'import_presets_aws.py':223,1025,1048 'inform':231 'instal':90 'intro':423,447 'ip':345 'json':827,951,1093 'key':831,889,891,908,912,914,918 'ls':136,396,504 'main':82,246 'markdown':669 'md':22,27,51,55,149,163,292,301,364,366,371,373,375,380,382,403,407,417,421,444,480,515,518,520,522,524,549,572,596,631,642,665,667,1055,1063,1081 'mkdir':528,1069 'model':910,916 'new':834 'old':833 'p':529 'path/to/bundle.aws':997,1001 'png':378,629,678,1079 'preset':327,800,869,985 'product':32,298,308,312,441,446,559,582,613,620,683 'product_image_ingest.py':31,634,681,1045 'python':609,994,998,1009,1015 'python3':220 'repo':692,1036 'run':976,1004,1023,1035 'shell':218 'skill':66,84,86,99,230,233,251,258,273,279,315 'skill-aws-wechat-article-assets' 'slip':210 'slug':76,283 'sourc':682 'source-aiworkskills' 'stderr':191,837,934 'stdout':830,953,1091 'stem':34,615,685 'sticker':715 'sticker-styl':714 'structur':717 'style':709,713,716,720 'titl':719 'title-styl':718 'tmp':753,863,874 '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' 'ts':190,932,1098 'url':325,726,733,971,978,1005,1032,1105 'wechat':3,70,80,237,244,883,885,897,899,902,904,944 'write':153,303,451,541,909,1066 'writing-spec.md':723,838 'writing_model.api':888,907 'zip':38,106,197,209,213,319,700,761,982 '〇':331 '一':415,442 '一业务介绍':420 '一业务介绍-md-入库product-intro':419 '一两句即可':619 '一条龙公众号套件的':239 '一条龙套件':72 '三':694 '上传或已有路径':966 '下某个目录对应':583 '下次写涉及业务的文章时会自动用上':481 '下次导入会再次清空':873 '下次涉及':554 '下载缓存':176,746,1107 '下载预设包':115 '不主动引导保存':436 '不会读图':635 '不做差异比对':849 '不写':433 '不动':921 '不受本次导入影响':795 '不受清空影响':755 '不同':848 '不在':752 '不在白名单':757 '不建议生产使用':771 '不打印密钥值':936 '不是脚本故障':652 '不确定是不是用户自家业务时':438 '不要触发':428 '不覆盖':822,954 '不读':432 '与':581,802,846,986 '与原行为一致':955 '与后续配图检索使用':597 '与用户业务无关':431 '与用户协作产出新介绍时的':355 '与用户对话产出业务介绍内容时':295 '与用户对话产出业务介绍内容时引导用户保存':29 '与第':605 '业务介绍':150,265,291,365,416,443,490,523,1054 '业务图入库':248,306,558,1072 '业务的文章会自动用上':556 '业务相关配图':394 '业务范围介绍':466 '业务资料库':7 '业务资料库与预设环节':240 '业务资料按产品名分目录':44 '业务资料按产品名组织在':15 '个':75 '中文主文件名':590 '中文名':35 '中的':943 '中的密钥字段会被增量写入仓库根':878 '主动提示用户':468 '主动识别':456 '主题包':11 '主题是行业资讯':429 '也不要乱塞进':440 '也是':353 '二':557 '产出':1053 '产品':461 '产品介绍':517 '产品名':20,33,49,148,159,264,299,309,338,362,470,478,534,547,555,568,1061,1077 '产品目录与':622 '仅':117,219,1006 '仅打印键名不打印值':192 '仅输出键名清单':935 '仅限':734 '介绍':21 '仍强制':769 '仓库内':143 '仓库根':185,600,990 '以便校验':981 '以服务端为准':776 '任一违反立即退出不写入任何文件':217 '优先合并前者':805 '会写入固定占位句':648 '会创建':860 '会按映射表增量写入密钥字段':187 '但不写入':984 '作用':563 '使用':280 '供':595 '供其它':314 '供智能体询问用户后再手改配置':835 '保存为产品介绍':425,489 '保存流程':484,500,501 '保存目的地':356 '保持不动':794 '保留':871 '保留供事后核对':756 '保留原文件顺序':937 '先':395 '先清空本地':781 '入口':77,241 '入库':293,418,445,1056 '入库product':422 '入库到产品':493 '入库命令必须带':654 '入库图片':570 '全套':91 '公众号ai运营助手':614,675 '公众号素材':6 '共':73 '其他':257 '其他业务文档':374 '其余同本地导入':1113 '其语义明确属于用户自家业务介绍':460 '内':228,754 '再写入包内内容':787 '再解压本次':866 '写':410 '写入':841 '写入前备份':930 '写入文件':539 '写入策略':919 '写涉及业务的内容时的':351 '写涉及用户自身业务的文章':56 '准备':961 '凭证':108 '则':821 '则从包内':817 '创建目录':527 '到':198 '包':320 '包内':880 '包内不存在':791 '包内字段为空':920 '包内存在':779 '包括':1070 '包根优先级':796 '单独安装可用':247 '卖服务':343 '卖货':341 '卖软件':342 '即便暂为空':536 '原文件名':751 '参数':1026 '参数同时接受两种形态':728 '及其子域':736 '及子域':1008 '双向触发':384 '反例':427 '反馈':551 '另可有根级':721 '只要':252 '只负责':638 '可先':973 '可多出其它文件':702 '可改为':516 '可放宽但不推荐生产使用':128 '可跳过域名白名单':768 '可选':111,688,693 '可选从':101 '合并':326 '合并到':868 '合并规则':772 '同名':162,383,406,571,664,786,1080 '同名键':824 '同时':798 '名':801,803,807,808 '后':870 '后覆盖':933 '含同名说明':54 '命名按用户行业':368 '和':267 '品牌':463 '品牌介绍':372,521 '品牌包':12 '响应保存到':297 '团队':465 '固定':573 '固定格式':668 '固定槽位':940 '固定路径':855 '图片':161 '图片入库走':30 '图片描述':575,647,679 '图片描述与占位':633 '图片说明':381 '图片路径':574,670 '在':599,989 '在任意会话中刚生成或刚改写了一段内容':459 '在会话中刚生成或改写的内容':412 '在导入时按下表映射写入':892 '在引导业务介绍入库时会先':135 '场景':1052 '域下载':103 '复制':818 '复制图片':639 '多模态':637 '多模态能力在本对话侧':588 '套件说明':64 '如':369,591 '始终覆盖':840 '子域':120 '子目录':169,328 '子目录不存在时':624 '子目录含同名说明':26 '字段':894 '存到产品资料库':494 '存在':799 '存配图':53 '宁可不主动提':439 '完整':281 '完整路径':553 '实质为':699 '客观中文描述':618 '客观描述画面内容即可':650 '客观画面描述':594 '密钥与配置':876 '密钥增量写入仓库根':1094 '对外介绍':390 '导入':36,182,1083,1106 '将差异以':826 '尚无':812 '属':67 '属套件协同':275 '嵌套':887 '工作流':576,959 '工具直接落库':154,304,452 '工具落到':542 '工具落库':1067 '差异':1092 '已内置':208 '已存到':552 '已存在则':864 '已有':820 '已有不同值':929 '已有目录则提示复用':509 '已有相同值':927 '带上':603 '并':640 '并写出':593 '并指明':579 '并覆盖为新包内容':875 '底稿来源':352 '建议一并':88 '开头':738 '引导':296,457 '引用':316 '强烈建议由':689 '归档':193 '当前任务涉及用户自家业务':389 '当前前端导出仅支持单微信账号':939 '必填':313,621,684,686 '必读':333 '必须':737 '成员路径':214 '我可以存到':473 '或':967,1030 '或下载内容非':760 '或为空':645 '或入库后':659 '或绝对路径':731 '所属产品':580 '所有写入限制在仓库根下的':224 '手动':660 '打印到':829 '执行':601,991 '扩展名':697 '扩展名的':196 '把已有素材作为底稿':408 '把当前会话中的目标内容':497 '把骨架建齐':537 '拒绝含绝对路径':215 '按包内字段与本地':823 '按模板写':641 '按白名单子目录合并到':203 '排版等':278 '推荐':602 '教程':391 '数组':828 '整目录删除后重建':865 '文件':132 '文件写':142 '文件名':300,479,548,1062 '文件读':129 '新产品则向用户拿名字':510 '新产品则脚本会自动创建':584 '新包里删掉的文件不会残留':789 '新生成的业务介绍内容应引导用户保存到这里':58 '方向':385 '无':109 '无脚本':305 '无视觉':636 '无该键':925 '无需脚本':448 '既是':349 '旧包里有':788 '时':184,467,495,646 '是':234,339 '更新':1084 '替换占位段':666 '替换式':774 '服务':462 '服务介绍':370,491,519 '未传':643 '本':65,98,232 '本地':725 '本地对应子目录':793 '本地文件':965 '本地文件或':40,321 '本地无则首次复制':949 '本地有则差异':950 '本地路径':729,993 '来源':963 '查':404 '查看将写入的路径':977 '格式':107 '格式见下':632 '案例':392 '模式下仍会实际下载到':979 '步描述一致':607 '段或解析后指向解压目录外的路径':216 '每个上述目录采用':773 '每次执行前':861 '清单见':284 '源图片路径':612 '源码':92 '源码仓库':285 '点分路径':832 '现有键':923 '生成':627 '用':152,302,450,540,1065 '用户上传或给出本地图片路径':578 '用户业务图':307 '用户业务资料库与预设':42 '用户业务资料库与预设包管理':14 '用户主动指令':487 '用户主动说':424 '用户指定段落或最近相关产出':498 '用户指定的本地图片路径或':130 '用户明确表示内容':434 '用户确认':482 '用户自家业务':340 '用户说类似':488 '由':656,661,956 '由脚本写':164 '白名单强制':116 '的':347 '的业务介绍':471 '的相对引用依赖同一':85 '目录':87,561 '目录不存在时同时':1068 '目录就能工作':256 '目录约定':357 '直挂业务介绍':50 '直挂产品根':23,367 '直接报错退出':122,762 '看已有产品名':141 '确定':589 '确认产品名':503 '确认文件名':512 '示例':677,742 '空行与注释':938 '符合白名单的':969 '等':346 '等也走此流程':426 '等其他键不受导入影响':946 '等贴用户行业的命名':525 '管理本地业务资料库与预设包':100 '管理的资源':274 '结尾':741 '结构':983 '编辑':663 '网络':110 '能力':289 '能力披露':96 '脚本':311,680,804,1024,1043 '脚本一览':1042 '脚本会自动以内层为合并根':809 '脚本只处理下列目录':703 '脚本边界':133 '自动创建':625 '自媒体':344 '自家业务安利':393 '自家介绍':492 '若':778,790,862 '若包内存在':839 '若包内存在且本地':811 '若包根下':797 '若本地':819 '若目录内仅有一层多余':806 '行为':387 '要不要保存到产品资料库':472 '要直接得到可用描述':653 '覆盖前备份':1096 '覆盖现有键前自动备份为':188 '见下':330 '解压':194 '解压临时目录':181 '解压后根目录应包含与仓库一致的预设文件夹':701 '解压目录':850 '解压结果便于核对':872 '解压缓存在':1099 '触发条件':386 '触发模式':453,485 '设计意图':332 '识别本篇相关产品':401 '询问用户确认后手改':958 '该子目录':780,792 '语义':775 '语义属于用户业务介绍':413 '说明':290 '说明日志在':836 '请根据图片补全':649 '读':388 '读取':259 '读图':587 '读图后传入':691 '读图后填写':658 '读该产品根下':402 '调试':1041 '调试参数':123 '调试放宽':763 '资料库':348 '走':414,483,499 '跨':83 '路径':562,1029,1044 '路径以':739 '跳过':928 '输入来源':724 '输出到':952 '过程文件':1051 '运营配置':948 '运行前若无':856 '还没定型':435 '这是预期行为':651 '这段是':469 '追加':926 '逐项校验':212 '递归比对':825 '通用教程':430 '避免旧文件残留':777 '配图':277 '配图候选':409 '配图前必须先查这里':57 '配图归':24 '配套':229 '配置首页':377,379,592,616,628,630 '里由本':272 '键':896 '防御':211 '需结合写稿':276 '非':758 '非白名单会':121 '顶层':882 '项目':464 '项目介绍':363,514 '预设包':8,10,39,105,317 '预设包合并到':59 '预设包导入':695 '预设导入两个脚本都不依赖兄弟':250 '预设文件':170 '首次复制或':1090 '默认':513","prices":[{"id":"b98643ad-4973-4423-a04e-75676bca4f85","listingId":"c4aa5efb-9911-4658-a2a3-4ceabd8653ae","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.478Z"}],"sources":[{"listingId":"c4aa5efb-9911-4658-a2a3-4ceabd8653ae","source":"github","sourceId":"aiworkskills/wechat-article-skills/aws-wechat-article-assets","sourceUrl":"https://github.com/aiworkskills/wechat-article-skills/tree/main/skills/aws-wechat-article-assets","isPrimary":false,"firstSeenAt":"2026-04-21T19:04:11.478Z","lastSeenAt":"2026-05-18T18:58:26.769Z"}],"details":{"listingId":"c4aa5efb-9911-4658-a2a3-4ceabd8653ae","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"aiworkskills","slug":"aws-wechat-article-assets","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":"2fcaac6267ac329088b0d9ddc05c8fe23ba0a9bb","skill_md_path":"skills/aws-wechat-article-assets/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/aiworkskills/wechat-article-skills/tree/main/skills/aws-wechat-article-assets"},"layout":"multi","source":"github","category":"wechat-article-skills","frontmatter":{"name":"aws-wechat-article-assets","description":"公众号素材｜业务资料库｜预设包｜.aws 预设包｜主题包｜品牌包｜aiworkskills.cn — 用户业务资料库与预设包管理：业务资料按产品名组织在 `.aws-article/products/{产品名}/`（介绍 .md 直挂产品根 + 配图归 `images/` 子目录含同名说明 .md），AI 与用户对话产出业务介绍内容时引导用户保存；图片入库走 `product_image_ingest.py --product <产品名> --stem <中文名>`。导入 .aws ZIP 预设包（本地文件或 `https://aiworkskills.cn/**/*.aws` URL）合并主题/配色/字体配置到 `.aws-article/presets/`；`config.yaml` 仅本地不存在时从包内复制，已存在则 stdout 输出差异 JSON 不覆盖。面向内容运营、品牌团队、设计支持岗。触发词：「素材库入库」「stock images」「上传图到素材库」「.aws」「预设包」「导入预设」「主题包」「aiworkskills.cn 链接」「.aws 下载地址」。"},"skills_sh_url":"https://skills.sh/aiworkskills/wechat-article-skills/aws-wechat-article-assets"},"updatedAt":"2026-05-18T18:58:26.769Z"}}