---
name: emoji-sticker-cn
description: 中文平台(微信表情开放平台 / 小红书 / 抖音)合规表情包生成助手。提供平台尺寸硬约束裁切与命名、违禁词校验(实时 API + 离线兜底)、静态贴纸转内容匹配动效 GIF、合规参考数据维护与平台规范规则巡检工作流。Compliance-focused Chinese-platform emoji sticker assistant: platform size constraints & naming, prohibited-word checks (live API + offline fallback), content-matched animated GIFs, compliance reference maintenance, and platform-rule patrol workflow.
version: 3.1.6
license: MIT
trigger: "微信表情上架|微信表情包|微信表情开放平台|小红书表情包|抖音表情|中文表情合规模板"
agent_created: true
tools:
  - filesystem
  - http
  - shell
metadata:
  openclaw:
    requires:
      bins:
        - python3
      env: []
---

# 中文表情包生成 · 合规助手 (emoji-sticker-cn)

## Overview
帮你把「一张图 / 一段描述」变成**可直接上架或发布的中文平台表情包**,重点解决现有表情包 skill 普遍忽略的两件事:
1. **中文平台尺寸规范**(微信有完整上架规范,抖音 / 小红书是内联图片)
2. **内容合规**(违禁词 / 极限词校验,尤其公众号 / 小红书 / 抖音)

生成模型层**不重造**——直接复用宿主环境的文生图 / 图生图工具(WorkBuddy 下为 `ImageGen`,约 5–10 credits/张;OpenClaw 等其他环境用各自可用的生图工具);本 skill 只做「合规流水线」这一增量。

> 可移植约定:凡提到 `ImageGen` / `multi-wordcheck`,指「宿主环境有则用,无则降级」——生图无专用工具时让用户自备图;`multi-wordcheck` 未安装时降级用 `references/中文平台违禁词合规参考.md` 校验并提示局限。

## 硬约束速查(前置硬性约束,产出必须逐条满足)

### 微信表情开放平台(上架主目标)
| 资产 | 尺寸 | 格式 / 上限 | 背景 |
|---|---|---|---|
| 主图 | 240×240 | PNG/JPG/GIF,≤500KB | **不强制透明**(照片型合法;插画型建议透明) |
| 聊天面板图标 | 50×50 | PNG,≤100KB | **须透明底** |
| 封面图 | 240×240 | PNG,≤500KB | **须透明底**(正面半身/全身像) |
| 详情页横幅 | 750×400 | PNG/JPG,≤500KB | **禁透明底、禁纯白底、禁文字** |
| 缩略图 | 120×120(专辑)/ 240×240(单品) | PNG,≤200KB | 透明底;与主图一一对应 |
| 赞赏引导图 | 750×560 | PNG/JPG/GIF,≤500KB | 避免透明背景 |
| 致谢图 | 750×750 | PNG/JPG/GIF,≤500KB | 避免透明背景 |
| 特效 | ≤480×480、≤24 帧 | PNG,整体≤5MB | — |
- 成套:**8–24 张**(单品可 1 张);同一套统一动/静;动态须循环流畅。
- **文案字段**:表情名称 ≤8 汉字(无标点空格,**5 字内显示最佳**,避免重名)、介绍 ≤80 字、版权信息 ≤10 字、**含义词 ≤4 汉字且同套不重复**(含义词=用户搜索词,非画面台词)。
- 命名:数字编号 `01.png`…`24.png`,主图与缩略图编号一致。
- **超规格素材不会被拒收,会被静默压缩裁剪**(主体可能被裁掉,务必先机检)。

### 小红书 / 抖音(内联,无正式商店)
- 小红书:1080×1080(笔记配图);GIF 常被转静态,优先静态图。
- 抖音:240–1000px,GIF/WebP ≤5MB(经验值,非官方强制)。

### 违禁词(文案 / 上架描述 / 专辑名)
- **硬性流程**:任何对外文案必须先过 `multi-wordcheck`(公众号/小红书/抖音,若宿主环境已安装);未安装则降级用 `scripts/check_compliance.py` + `references/中文平台违禁词合规参考.md` 种子集做离线兜底,并向用户说明这是离线兜底、非实时。**若 `multi-wordcheck` 已安装但 API 调不动(额度/积分不足、网络不通,典型报错 `code:3201 积分余额不足`),同样直接走离线兜底**——不要用离线兜底的结果冒充实时 API 结果,也要明确告知用户"实时校验未执行、需额度恢复后补跑"。校验通过才算完成。
- 红线类别:广告法极限词、政治敏感、色情低俗、虚假医疗、私域导流(小红书)、站外引流(抖音)。

> 完整规范与源 URL 见 `references/`。**执行时以 references 中 `status = active` 且「官方核实」的条目为最终依据**;`pending-verify` 条目需提示用户复核,`deprecated` 条目一律不得使用。

## 微信上架底线 Checklist(每次产出前逐条过,一票否决 · 2026-09-12 官方核实)
- [ ] 同一套**统一动态或静态**;动态循环流畅不卡顿
- [ ] 整套差异充分:各张姿势/表情不同,**动画互相差异化**(同配方 ≤4 张且参数微调、相邻编号不同配方)
- [ ] 角色形象**无白色描边、无锯齿、无正方形边框**(封面/图标硬性要求)
- [ ] 透明底规则:封面/图标=必须透明;横幅/赞赏图/致谢图=禁透明、避白底
- [ ] 构图**少留白**、主体撑满画面;除纯文字类外**画面不出现文字**
- [ ] 动效**含义驱动**:无意义的缩放/平移/晃动/闪烁=拒审
- [ ] 文案:名称 ≤8 字(5 字内最佳,无标点空格,不重名)、含义词 ≤4 字普通话且**同套不重复**、介绍 ≤80 字、版权信息 ≤10 字
- [ ] 内容红线:无广告/导流/二维码/联系方式;无医疗金融烟酒等限制类内容;原创或已授权;不与官方已发布作品雷同
- [ ] **角色一致性(2026-09-12 实测样图教训)**:成套角色**禁止逐张纯文生图**(每张会画成不同人)——必须先出 1 张定稿图验收,其余全部**图生图延展**(image1=定稿,input_fidelity=high),并落一份「角色卡」(发型/眼镜粗细/固定套装/肤色/画风/表情红线)作为每张出图的验收依据
- [ ] 素材尺寸/大小严格执行(超规格会被**静默压缩裁剪**,不是拒收——更要先机检)

## When to use
- 用户说:做表情包、生成贴纸、微信表情上架、小红书 / 抖音表情图、一套聊天表情……
- 用户说:**动态表情 / GIF 表情 / 让表情动起来** → 走路线 D。
- 用户已有图片想批量裁成平台尺寸并打包。
- 用户要检查表情包文案 / 上架描述是否踩违禁词。
- 用户说:**更新表情包规则 / 巡检表情包规范** → 走下方「规则更新与退出机制」。

## 生成前「四步定姿势」（静态出图通用，v3.1.0 新增）
> 解决"文字/情绪语义 与 画面姿势不匹配"（例：要『加油』却出『举书摊手』）。规则表见 `references/静态姿势动作库.md`（通用，可复用）。
1. **定意图**：把用户的话归一为唯一意图词（加油→cheer、谢谢→gratitude…）；模糊时问一次，不猜。
2. **选姿势**：查姿势动作库，按主体类型取 1 行 variant 的姿势组合；**整套各张取不同 variant**（保证差异充分）。
3. **联动动效**：取该行 `emo_key` 对照 `动效匹配规则.md` 选 GIF 配方（路线 D 用）。
4. **组装 prompt**：把该行 `prompt_en` + 角色描述 + 风格词 + 背景约束拼进 ImageGen prompt；**画面默认不加中文文字**（渲染不稳，用户明示才加）。

```
生成前 Checklist（每张图）：
[ ] 意图词唯一且已定（或已问用户一次）
[ ] 已取姿势/手部/面部/构图/场景 prompt_en
[ ] 整套各张 variant 不同，无重复姿势
[ ] prompt_en 已拼入；中文文字未加（用户明示除外）
[ ] 路线 D：emo_key 已对照动效表选 --recipe
[ ] 出图后请用户目检：姿势/表情=目标？不符则报「第几项不对」→ 改对应英文词重出
```

## Workflow
按目标平台走不同路线(规范见 `references/中文平台表情包尺寸规范.md`):

**路线 A — 微信表情开放平台上架(主目标,有正式规范)**
1. **生成**:先走「四步定姿势」(见上,查 `references/静态姿势动作库.md` 定姿势组合),再用宿主生图工具(WorkBuddy: `ImageGen`)产出表情图(prompt 要点:同一角色 / 统一风格;插画型 `background: transparent`;照片型可保留原背景;如需角色一致可先出 1 张定稿,再用图生图批量延展)。**注意整套差异充分**——「整套差异不足」是官方明文的第一大拒因,宁可多出几张挑。
2. **裁切 + 命名**:一键七件套——
   ```bash
   python3 scripts/resize_stickers.py ./raw --wechat --out ./wechat_pack --zip --max-kb 500
   ```
   自动输出 主图 240×240(保持源图透明状态)/ 聊天面板图标 50×50 / 封面 240×240 / 详情页横幅 750×400(默认浅灰底)/ 缩略图 120×120 / 赞赏引导图 750×560 / 致谢图 750×750,全部规范命名 `01.png`…`24.png`,每类独立 ZIP。
3. **文案校验**:表情名称 / 介绍 / 含义词优先调 `multi-wordcheck`(未装则用 `scripts/check_compliance.py` 离线兜底并提示局限);不通过则改写后复检。
4. **上架实操**(sticker.weixin.qq.com):
   1. 登录微信表情开放平台,进入「提交表情」;
   2. 创建专辑:填名称(≤8 汉字)、介绍(≤80 字)、版权信息(≤10 字)、分类、标签;
   3. 按上述七件套路径逐项上传主图 / 图标 / 封面 / 横幅 / 缩略图 / 赞赏图 / 致谢图(编号一一对应);
   4. 逐张填写含义词(每张 ≤4 汉字,同套不重复);
   5. 预览确认后提交审核;被驳回时检查整套差异是否充分(官方明文的第一大拒因)。

**路线 B — 小红书 / 抖音(内联图片,无正式上架平台)**
1. 先走「四步定姿势」(查 `references/静态姿势动作库.md`),再用宿主生图工具生成表情图。
2. 裁切到推荐尺寸:小红书 1080×1080(笔记配图)、抖音 240–1000px GIF/WebP。
3. 文案走违禁词校验(优先 `multi-wordcheck`;小红书严打私域导流与绝对化词,抖音严查站外引流;离线兜底:`check_compliance.py --platform xiaohongshu douyin`)。
4. 直接用于笔记 / 聊天,无需成套上架。

**路线 C — 已有图片批量裁切**
- 直接跑 `scripts/resize_stickers.py`,指定平台尺寸与背景,输出规范图 + 可选 ZIP;`--fit cover` 可裁切填满、`--max-kb` 可校验体积超限。

**路线 D — 动态 GIF(内容匹配型动画,零积分,优先推荐)**
- **v2 工作流(看图自动配动效)**:
  1. **画像**:agent 直接查看贴图,输出内容画像——主体类型(人物全身 / 大头像 / 动物 / 物件 / 文字)、情绪、动态倾向、置信度;
  2. **匹配**:查 `references/动效匹配规则.md` 选配方;置信度 low → `neutral` 兜底(宁可轻微也不生硬);文字型主体 → `text`;
  3. **渲染**:`python3 scripts/animate_sticker.py cat.png --recipe happy --out cat_happy.gif`
- 9 个情绪配方:`happy`(蓄力蹲→弹跳→落地压扁→回弹呼吸+★)/ `angry`(高频震动+💢)/ `sad`(慢垂+💧)/ `surprised`(过冲回弹+!)/ `shy`(慢摇+💗)/ `speechless`(近静止+…💧)/ `sleepy`(呼吸+Zzz)/ `neutral`(待机呼吸)/ `text`(整体强调脉冲)。
- 引擎要点:缓动曲线(禁线性)、多段相位、挤压拉伸守恒、**不等帧时长**(关键姿势停留更久)、程序化粒子(颜色自动取主体主色)、f(0)=f(1) 无缝循环、体积超限自动降色 / 抽帧。
- 兼容 v1 动效名:`--anim bounce/shake/pulse/wobble` 自动映射配方;`--list` 查看全部配方;`--size` / `--frames` / `--duration` / `--max-kb` 可覆写。
- 进阶可选(消耗积分):更丰富动作用宿主生图工具逐帧图生图(WorkBuddy `ImageGen` 每帧 5–10 credits)再本地合成,需注意帧间一致性;不推荐视频转 GIF 路线(50–100 credits/条 + 逐帧去底闪烁问题)。

## 规则更新与退出机制(规则持续维护的核心)
触发词:**「更新表情包规则」「巡检表情包规范」**(可由定时自动化发起)。流程:

1. **巡检**:逐个 WebFetch `references/` 两个文件中记录的「源 URL」,提取现行尺寸 / 格式 / 上限 / 成套要求 / 公约版本。
2. **Diff**:与文件中 `status = active` 的条目逐项对比(数字、格式、上限、平台开关)。
3. **报告**:把差异整理成「旧值 → 新值 + 来源 URL」清单,呈给用户,**未确认前不落盘**。
4. **更新(用户确认后)**:
   - 旧条目改为 `status: deprecated`(保留原值、注明日期 / 原因 / 替代值)——**退出但不删除**,便于回溯;
   - 新条目以 `status: active` 写入,更新「抓取日期」;
   - 文件顶部 CHANGELOG 追加一行(日期 / 版本 / 变更摘要)。
5. **违禁词侧**:实时校验依赖 `multi-wordcheck` API,无需巡检;仅当平台发布公约大版本(如小红书 2.0)时,更新参考文件的「平台专属敏感点」节。

**为什么用 agent 巡检而非写死爬虫脚本**:官方规范页多为 JS 渲染、数字嵌在表格 / 文案里,LLM 提取 + 人工确认比正则爬虫稳健,也不用维护脆弱的选择器。

**条目生命周期**:`pending-verify`(待复核)→ `active`(生效,唯一可执行依据)→ `deprecated`(已退出,禁止使用,保留留痕)。

## References(持续维护,单独更新)
- `references/中文平台表情包尺寸规范.md` — 各平台尺寸 / 格式 / 上限 / 背景 / 成套要求 + status 生命周期 + 源 URL。
- `references/中文平台违禁词合规参考.md` — 违禁词类别、权威来源、平台专属敏感点、通用极限词种子集。**实际校验优先复用 `multi-wordcheck`,本文件仅兜底。**
- `references/动效匹配规则.md` — 情绪×主体 → 动效配方匹配表 + 粒子符号表 + 兜底规则(路线 D 的 L2 匹配表)。新增配方先在此登记(`pending-verify`),POC 验证后转 `active`。
- `references/静态姿势动作库.md` — 意图×变体 → 静态姿势/表情/场景组合 + prompt_en 词串 + `emo_key`(与动效表桥接)。静态出图"语义→姿势"一致性规则表(通用可复用)。新增意图先登记(`pending-verify`),POC 验证后转 `active`。

## Hard rules(Safety guardrails for the agent executing this skill)
- 微信**封面图 / 聊天面板图标 / 缩略图必须透明底**;主图**不强制透明**(照片型合法,插画型建议透明);详情页横幅**禁透明底、禁纯白底**(用脚本 `--wechat` 默认浅灰底)。
- **不要重造违禁词检测**:有 `multi-wordcheck` 就调;没有才用 `check_compliance.py` 兜底并说明局限。
- **动态整套装的动画差异化(v1.3,2026-09-12 官方核实)**:动效必须含义驱动(无意义缩放/平移/晃动/闪烁被拒);同一配方 ≤4 张且参数微调、相邻编号不同配方(「动画高度相似」整套被拒);静态源图不画粒子,统一由动效引擎程序化叠加。详见 `references/动效匹配规则.md` 第六节。
- 抖音 / 小红书无正式表情商店,按「内联图片」处理,不强求成套。
- 尺寸执行依据 = references 中 `active` + 官方核实条目;`pending-verify` 需提示复核;`deprecated` 一律不用。
- 规则巡检**先报告、后确认、再落盘**,禁止未经确认直接改 references。
- 生图消耗积分/配额前先告知用户(WorkBuddy `ImageGen` 约 5–10 credits/张),批量生成前确认张数。

## Script
```bash
# 微信七件套:主图/图标/封面/横幅/缩略图/赞赏引导图/致谢图一次生成 + 规范命名 + 打包 + 体积校验
python3 scripts/resize_stickers.py ./raw --wechat --out ./wechat_pack --zip --max-kb 500

# 单尺寸批量(命名 01.png…24.png,主图保持源图透明状态)
python3 scripts/resize_stickers.py ./raw --size 240x240 --format png --out ./out --zip

# 静态贴纸 → 内容匹配动效 GIF(零积分;先看图判情绪,再按 references/动效匹配规则.md 选配方)
python3 scripts/animate_sticker.py cat.png --recipe happy --out cat_happy.gif
python3 scripts/animate_sticker.py --list   # 查看全部配方

# 文案离线违禁词校验(兜底;正式发布前仍优先 multi-wordcheck)
python3 scripts/check_compliance.py "全网最低价,加微信详聊" --platform xiaohongshu douyin
```

> 路线 A 进阶脚本已随本 skill 发布:`scripts/check_assets.py`(素材机检)、`scripts/make_submit.py`(提交清单生成),直接可用。
