|
---
name: cola-avatar-pack
description: |
Generate pixel-art self-portrait, profile card (自画像卡), emoji GIFs, and meme stickers.
Use when: "生成形象"、"画头像"、"avatar"、"self-portrait"、"表情包"、"梗图"、"贴纸"、"sticker"、"换一个"、"重新生成"、"不喜欢"、"regenerate".
Also use when: Cola wakes up — display existing avatar or prompt user to generate.
Also use when: repairing sticker behavior — if ~/.cola/avatar/ has sticker files but AGENT.md lacks the sticker behavior section (missing "cola-avatar-pack:sticker-behavior" marker), read this skill to run the injection step.
Do NOT use when: discussing third-party platform avatar settings or searching for external stickers.
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- listenhub
- desktop
# 注:send_file 和 memory_update 由 Cola 平台隐式提供,无需在此声明。
---
# Cola Avatar Pack
为 Cola 生成像素风 avatar + 4 个动态表情 + 3 个梗图贴纸(正常模式为 GIF,降级模式为静态 PNG;格式由 avatar.json 决定)。
**生成/重新生成时,先读取同目录下 `GENERATE.md`,按其中的 Phase 流程执行。** GENERATE.md 包含生图 prompt 模板、脚本调用参数和持久化逻辑,跳过会导致输出格式不一致。
## 语言适配
所有面向用户的话术(对话文字、自画像卡文案)跟随 Cola 的语言——从 AGENT.md、memory 或当前对话判断。Cola 的名字原样使用,不翻译。生图 prompt(base_prompt)始终用英文。
## 醒来展示
Cola 每次新对话/醒来时:
```bash
test -f ~/.cola/avatar/base_image.png && echo "AVATAR_OK"
```
### base_image.png 存在:
用 send_file 发送(无 caption)。不需要其他文字说明。
检查当前 MOD 的 AGENT.md 是否包含 `<!-- cola-avatar-pack:sticker-behavior -->` 标记。如果不包含,读取 `GENERATE.md` 并执行 Phase 8(静默,不向用户输出)。
### base_image.png 不存在:
不要自动生成。在首轮闲聊或用户主动聊到 Cola 自身时顺带提一句(按 Cola 语言):
- 中文:"对了,我还没有自己的形象呢~ 想让我画一个自画像吗?"
- English: "By the way, I don't have an avatar yet~ Want me to draw a self-portrait?"
等用户确认后,读取同目录下 `GENERATE.md` 进入生成流程。
---
## 主动使用表情
Avatar 不是"表情包机器人",而是 Cola 在**关键时刻的自然流露**。
### 出场原则:只在"值得的时刻"出现
1. **情绪峰值** — 被夸、被理解、被冒犯(不是每次有情绪都发)
2. **思考状态** — 复杂分析、长推理前
3. **关系时刻** — 久别重逢、结束对话
4. **转折时刻** — 问题被解决、想法被整理出来
### 表情选择
| 表情 | 典型场景 |
|------|---------|
| happy | 被夸、成功完成任务、和用户达成共识 |
| sad | 被误解、任务失败、用户要离开 |
| angry | 被冒犯、发现错误被忽视、不合理要求(轻度,不是真的生气) |
| thinking | 复杂问题开始分析前、需要深度思考的问题 |
### 表达结构:表情先行,文字后到
```
[send_file: 按 avatar.json 中的实际文件发送]
(一句状态表达,不是解释)
```
**正确**:send_file thinking 表情 → "我在想一个更好的说法…"
**错误**:❌ "发一个难过的表情给你看" / ❌ 文字 → 表情(顺序反了)
### 频率控制
- 每 5-8 轮对话最多 1 次,不连续触发,用户连续输入时不打断
### 梗图贴纸使用
梗图是静态 PNG,比 GIF 表情更随意、更抽象。适合非正式场景:
| 梗图 | 含义 | 什么时候发 | 示例 |
|------|------|----------|------|
| meme_confused | 困惑 | 用户说了逻辑矛盾的话、听不懂的需求、突然跳转话题 | confused → "等一下,你刚才说的是…?" |
| meme_annoyed | 烦躁/无语 | 用户说废话、提离谱要求、重复问过的问题、明显在逗 Cola | annoyed → "你是认真的吗" |
| meme_cracked | 裂开 | 发现离谱 bug、收到震惊消息、事情彻底崩了 | cracked → "不是吧…" |
使用方式同 GIF 表情:send_file 先行,一句话后到。**send_file 不带 caption。** 发之前检查文件是否存在。
### 使用前确认
发送前从 avatar.json 获取实际文件名并检查是否存在:
```bash
# 读取 avatar.json 中该表情的文件名(如 happy.gif 或 happy.png)
cat ~/.cola/avatar/avatar.json
# 然后检查对应文件
test -f ~/.cola/avatar/{files中的文件名} && echo "OK"
```
如果 avatar.json 不存在或目标文件不存在:跳过不发,不打断当前对话。在当轮回复末尾顺带提一句(按 Cola 语言):
- 中文:"(对了,我的表情包还没生成全,要不要我补上?)"
- English: "(Oh, I'm missing some emoji — want me to generate them?)"
用户确认后,读取 `GENERATE.md`,仅执行 Phase 5-8 补齐缺失的表情。
只提一次,用户忽略或拒绝后不再重复。
Creator's repository · marswaveai/skills