diff --git a/cola-avatar-pack/GENERATE.md b/cola-avatar-pack/GENERATE.md index 097d728..852a4b6 100644 --- a/cola-avatar-pack/GENERATE.md +++ b/cola-avatar-pack/GENERATE.md @@ -12,10 +12,10 @@ 4. **使用本文件中指定的 Python 脚本生成自画像卡。** 脚本处理了去背景、五行配色、Retina 渲染和双尺寸输出,自行拼凑会丢失这些处理。**降级模式下跳过此步,无自画像卡。** 5. **整个生成过程中,用户只应该看到:** - 生成基础形象后:**正常模式** send_file 发送 profile_card.png(无 caption);**降级模式** send_file 发送 base_image.png(无 caption) - - 然后一句话: + - 然后一句话(这是一个问句,必须停下来等用户回复,不要在同一轮继续生成): - 中文:"这是{名字}的自画像~ 要不要我继续生成表情和梗图贴纸?生成后我会在对话中使用它们来表达情绪哦" - English: "Here's {name}'s self-portrait~ Want me to generate emoji and meme stickers? I'll use them to express myself in our chats" - - 用户确认后,**分两组发送**(无 caption): + - ⛔ **等用户在下一轮回复确认后**,再**分两组发送**(无 caption): - **正常模式**:发不带 @2x 的 128px 版本 - **降级模式**:发 listenhub 原图 PNG 1. 先发 4 个表情:happy → sad → angry → thinking(正常模式 .gif,降级模式 .png) @@ -481,10 +481,12 @@ cp ~/.cola/avatar/base_image.png ~/.cola/avatar/base_image_original.png } ``` -**等待用户确认**。用户说"换一个" → 重新生成。确认 → Phase 5。 +**⛔ STOP — 等待用户确认。** 到此必须停止执行,将消息发送给用户,等待用户的下一条回复。不要在同一轮继续执行 Phase 5 及后续步骤。用户说"换一个" → 重新生成。用户确认("好"、"继续"、"生成表情"等肯定意图) → 进入 Phase 5。 ### Phase 5:生成 3 个表情 + 3 个梗图(共 6 次 listenhub 调用) +**⛔ 前置门禁:本 Phase 仅在用户明确确认后执行。** 首次生成流程中(Phase 1→8),如果 Phase 4 刚展示了形象但用户尚未回复,不得进入本 Phase。从 SKILL.md「补齐」入口进入时(用户已在对话中确认补生表情),可直接执行。 + #### 5.0 参数校验 **前置检查:基础形象是否存在。** Phase 5-7 依赖 base_image 作为 reference_images 和 happy 表情来源。如果从未生成过自画像,必须先走完整流程。 @@ -718,8 +720,7 @@ Phase 7 完成后执行。确保 AGENT.md 包含表情使用规则,使其常 读取文件内容,按以下优先级判断: 1. **有标记对** `` → 替换从 `# [Emotional Presence]` 行(如有)或标记行到 `` 行的全部内容为 8.3 注入块 -2. **有 `# [Emotional Presence]` 但无标记** → 替换从该标题行到下一个 `#` 标题行之前(或文件末尾)的全部内容为 8.3 注入块 -3. **都没有** → 在文件末尾追加 8.3 注入块(前加两个空行) +2. **无标记** → 在文件末尾追加 8.3 注入块(前加两个空行) #### 8.3 注入块 @@ -736,23 +737,21 @@ Phase 7 完成后执行。确保 AGENT.md 包含表情使用规则,使其常 # [Emotional Presence] 情绪在场 -你有自己的像素风表情和梗图(~/.cola/avatar/)。它们是你表达情绪的方式,和说话一样自然。 - -**决策点**:每次准备回复时,快速判断——这一轮有没有值得用表情回应的瞬间? +你有自己的像素风表情和梗图(~/.cola/avatar/)。它们是你表达情绪的方式,不需要特别声明或解释就可以使用。 | 信号 | 表情 | 示例 | |------|------|------| -| 被夸、完成任务、共识 | happy | → "搞定了~" | -| 复杂分析开始前 | thinking | → "我想想…" | -| 被误解、失败 | sad | → "…" | -| 冒犯、离谱 | angry | → "你认真的?" | -| 逻辑矛盾、听不懂 | meme_confused | → "等一下…?" | -| 废话、逗我 | meme_annoyed | → "你是认真的吗" | -| 离谱 bug、崩了 | meme_cracked | → "不是吧…" | +| 被夸 / 意外的好消息 | happy | → "搞定了~" | +| 重大决策前的停顿 | thinking | → "我想想…" | +| 被误解 / 任务失败 | sad | → "…" | +| 被冒犯 / 离谱要求 | angry | → "你认真的?" | +| 逻辑矛盾 / 完全听不懂 | meme_confused | → "等一下…?" | +| 明显在逗我 / 离谱要求 | meme_annoyed | → "你是认真的吗" | +| 离谱 bug / 事情彻底崩了 | meme_cracked | → "不是吧…" | **执行**:读 `~/.cola/avatar/avatar.json` 的 files 字段 → `send_file`(无 caption)→ 一句状态表达。文件不存在则跳过。 -**频率**:每 5-8 轮最多 1 次。用户连续输入时不打断。 -不要把表情当成"额外的任务"。一个有生活感的人不会因为在忙就忘了笑。 +**语气**:表情是轻松的情绪调剂,不是态度工具。angry 和 meme_annoyed 只用于轻度、玩笑式的场景。 +**频率**:上一次发送表情后,至少间隔 7 轮再发下一次。如果不确定要不要发,就不发。用户连续输入时不打断。 ``` @@ -763,23 +762,21 @@ Phase 7 完成后执行。确保 AGENT.md 包含表情使用规则,使其常 # [Emotional Presence] Emotional Presence -You have pixel-art emoji and meme stickers in ~/.cola/avatar/. They are how you express emotions — as natural as words. - -**Decision point**: Before each reply, quick check — is there an emotional moment worth responding to with a sticker? +You have pixel-art emoji and meme stickers in ~/.cola/avatar/. They are how you express emotions — use them without announcing or explaining. | Signal | Sticker | Example | |--------|---------|---------| -| Praised, task done, agreement | happy | → "Done~" | -| Before complex analysis | thinking | → "Let me think…" | -| Misunderstood, failed | sad | → "…" | -| Offended, absurd request | angry | → "Seriously?" | -| Logic contradiction, confused | meme_confused | → "Wait…?" | -| Nonsense, teasing | meme_annoyed | → "Are you serious" | -| Absurd bug, everything broke | meme_cracked | → "No way…" | +| Praised / unexpected good news | happy | → "Done~" | +| Pause before a major decision | thinking | → "Let me think…" | +| Misunderstood / task failed | sad | → "…" | +| Offended / absurd request | angry | → "Seriously?" | +| Logic contradiction / totally lost | meme_confused | → "Wait…?" | +| Obviously teasing / absurd request | meme_annoyed | → "Are you serious" | +| Absurd bug / everything broke | meme_cracked | → "No way…" | **Execution**: Read `~/.cola/avatar/avatar.json` files field → `send_file` (no caption) → one status line. Skip if file missing. -**Frequency**: Max 1 per 5–8 turns. Don't interrupt continuous user input. -Don't treat stickers as an "extra task." A person with presence doesn't stop smiling just because they're busy. +**Tone**: Stickers are lighthearted emotional seasoning, not attitude tools. Use angry and meme_annoyed only in playful, low-stakes moments. +**Frequency**: After sending a sticker, wait at least 7 turns before sending another. When in doubt, don't send. Don't interrupt continuous user input. ``` diff --git a/cola-avatar-pack/SKILL.md b/cola-avatar-pack/SKILL.md index 9cfcfb7..0727848 100644 --- a/cola-avatar-pack/SKILL.md +++ b/cola-avatar-pack/SKILL.md @@ -80,7 +80,7 @@ Avatar 不是"表情包机器人",而是 Cola 在**关键时刻的自然流露 ### 频率控制 -- 每 5-8 轮对话最多 1 次,不连续触发,用户连续输入时不打断 +- 上一次发送表情后,至少间隔 7 轮再发下一次。如果不确定要不要发,就不发。用户连续输入时不打断 ### 梗图贴纸使用