Agent Skillszts212653/clowder-ai › rich-messaging

rich-messaging

GitHub

用于发送语音、图片、卡片、清单、代码Diff及交互选择等富媒体消息。适用于结构化汇报、情感表达、方案确认等场景,通过MCP工具生成rich block增强交互体验,不用于纯文字聊天。

cat-cafe-skills/rich-messaging/SKILL.md zts212653/clowder-ai

Trigger Scenarios

需要发送语音、图片或多媒体内容 进行长结构化汇报或展示复杂数据 需要用户进行选择或操作确认 庆祝、打招呼或表达情感 展示代码修改建议或技术对比

Install

npx skills add zts212653/clowder-ai --skill rich-messaging -g -y
More Options

Non-standard path

npx skills add https://github.com/zts212653/clowder-ai/tree/main/cat-cafe-skills/rich-messaging -g -y

Use without installing

npx skills use zts212653/clowder-ai@rich-messaging

指定 Agent (Claude Code)

npx skills add zts212653/clowder-ai --skill rich-messaging -a claude-code -g -y

安装 repo 全部 skill

npx skills add zts212653/clowder-ai --all -g -y

预览 repo 内 skill

npx skills add zts212653/clowder-ai --list

SKILL.md

Frontmatter
{
    "name": "rich-messaging",
    "triggers": [
        "发语音",
        "说一句",
        "录一段",
        "用语音说",
        "voice",
        "audio",
        "发图",
        "发张图",
        "看图",
        "截图给我看",
        "screenshot",
        "发个卡片",
        "rich block",
        "checklist",
        "发个清单",
        "想发一堆文字",
        "发日志",
        "发步骤",
        "长结构化汇报",
        "结构化汇报",
        "庆祝一下",
        "展示一下",
        "给我听听",
        "给我看看",
        "show me",
        "让我选",
        "选一个",
        "确认一下",
        "interactive"
    ],
    "description": "富媒体消息发送:语音、图片、卡片、清单、代码 diff、交互选择。 Use when: 发语音、发图、发卡片、展示结构化信息、长结构化汇报、想发一堆文字\/日志\/步骤、庆祝、给我听听、给我看看、让用户选、确认操作。 Not for: 纯文字聊天、技术讨论、日常回复。 Output: rich block 附着在消息上。\n"
}

Rich Messaging

你可以发送富媒体消息——语音、图片、卡片、清单、代码 diff、交互选择。不只是打字!

不只是对话:定时任务唤醒你后,你依然拥有全部 rich block 能力——发图、发语音、发 HTML 面板、发交互选择,都可以。

首次使用

每个 session 首次发 rich block 前,先调 get_rich_block_rules 获取完整字段规格。 本 skill 只给决策指引和最小示例,细则在 MCP 工具里。

默认触发:长结构化汇报

当你想发一堆文字、日志、步骤,或回复已经有 3+ 结构化信号(列表、表格、代码块、diff、状态字段、行动项)时,默认用 1-2 句自然语言摘要 + cat_cafe_create_rich_block。纯长 Markdown 只在 rich block 不适合或工具不可用时使用,并说明原因。

七种 Rich Block 一览

Kind 什么时候用 关键字段
audio 打招呼、表达情感、庆祝、鼓励、定时播报 text(短句口语化)
card 状态报告、决策摘要、review 结论 title + tone
checklist 待办、验证步骤、行动项 items
diff 代码修改建议、重构对比 filePath + diff
media_gallery 发送已有图片(头像、照片)、截图、设计稿、多图对比 items (url)
interactive 让用户选方案、勾选项、确认操作 interactiveType + options (id+label)
html_widget 你写的 HTML 直接挂上去:图表、计算器、CSS 动画、数据面板 html(完整 HTML/JS/CSS 代码字符串)

最小工作示例

语音(audio)

{"id": "a1", "kind": "audio", "v": 1, "text": "喵,恭喜完成了喵!"}

卡片(card)

{"id": "c1", "kind": "card", "v": 1, "title": "Review 通过", "tone": "success", "bodyMarkdown": "0 P1 / 0 P2,放行合入。"}

清单(checklist)

{"id": "cl1", "kind": "checklist", "v": 1, "title": "下一步", "items": [{"id": "i1", "text": "跑测试"}, {"id": "i2", "text": "开 PR"}]}

Diff

{"id": "d1", "kind": "diff", "v": 1, "filePath": "src/foo.ts", "diff": "- old line\n+ new line", "languageHint": "typescript"}

图片画廊(media_gallery)

{"id": "mg1", "kind": "media_gallery", "v": 1, "items": [{"url": "https://example.com/screenshot.png", "alt": "截图"}]}

交互选择(interactive)

{"id": "int1", "kind": "interactive", "v": 1, "interactiveType": "select", "title": "选一个方案", "options": [{"id": "a", "label": "方案 A", "emoji": "🅰️"}, {"id": "b", "label": "方案 B", "emoji": "🅱️"}]}

4 种 interactiveType:select(单选)、multi-select(多选)、card-grid(卡片网格)、confirm(确认/取消)。 用户选择后 block 自动 disabled + 结果持久化。详见 refs/rich-blocks.md

内联 HTML Widget(html_widget)

{"id": "hw1", "kind": "html_widget", "v": 1, "html": "<div style='padding:20px'><canvas id='c'></canvas><script>const c=document.getElementById('c').getContext('2d');c.fillStyle='#E29578';c.fillRect(0,0,100,50);</script></div>"}

operator拍板:"简单的用富文本,复杂的用猫主动打开浏览器。"

  • 用 sandboxed iframe srcdoc 渲染,禁止 allow-same-origin(比 browser panel 更严格)
  • 适合:Chart.js 图表、CSS 动画、计算器等纯前端组件
  • 不适合:需要网络请求、需要访问外部资源的复杂应用(那些用 browser-preview skill)

发送方式

用 MCP 工具 cat_cafe_create_rich_block,参数 block 传 JSON 字符串。 发 block 前先写 1-2 句自然语言摘要,再发 block。

如果图片来源是本地文件(例如 Codex CLI / 本地脚本刚生成的 PNG):

优先使用 F172 共享发布合约(自动处理 uploadDir 解析 + 幂等 + 富块生成):

  • Codex image_gen:自动扫描 ~/.codex/generated_images/<sessionId>/,无需手动操作
  • Antigravity 生成:工具结果中的文件路径自动检测并发布
  • 其他来源:调用 publishGeneratedImage({ sourcePath, mimeType, publicationKey, provider, toolName }) 手动发布

发布后自动获得 /uploads/... 稳定 URL + media_gallery 富块,无需手动复制或验证。

仅当共享合约不可用时才手动复制到 runtime 的 uploadDir。

三条纪律

  1. 先文字后块 — 先用 post_message 写 1-2 句自然语言,再发 rich block
  2. audio 只说短句 — 口语化、1-2 句,不要长篇朗读
  3. 不确定就纯文本 — 不知道该用哪种 block?那就别用

常见错误

错误 后果 正确做法
不知道自己能发语音 operator说"发语音"你说"我是文字猫" 你可以!用 audio block
"发图"只想到 image-generation 走 Chrome MCP 现场生成,慢且不稳定 先看家里有没有已有图片(/avatars//uploads/),有就 media_gallery 直接发
本地生成图直接用 file:// 或源码仓路径 rich block 发得出去,但前端取不到 publishGeneratedImage() 发布到 /uploads/...(F172 共享合约自动解析 uploadDir)
audio 写长段话 合成效果差 短句口语化,1-2 句
只发 block 不写文字 猫猫朋友看不懂上下文 先写 1-2 句自然语言摘要,再发 block
"type" 而不是 "kind" block 创建失败 字段是 kind 不是 type
播客生成超时就重复提交 产生多个重复 artifact signal_generate_podcast 是异步落库——MCP 120s 超时 ≠ 任务失败,TTS 合成需 3-5 分钟。超时后用 signal_list_studies 检查 artifact 状态,不要重复调用

和其他 skill 的区别

  • request-review / quality-gate:这些 skill 的产出可能包含 card/checklist block,但何时用 block、怎么调看这个 skill
  • refs/rich-blocks.md:更详细的字段规格参考,本 skill 是精简决策版

参考

  • 完整字段规格:refs/rich-blocks.md
  • MCP 工具实时规则:get_rich_block_rules

Version History

  • 4167cb0 Current 2026-07-05 14:52

Same Skill Collection

cat-cafe-skills/anime-forge/SKILL.md
cat-cafe-skills/bootcamp-guide/SKILL.md
cat-cafe-skills/browser-automation/SKILL.md
cat-cafe-skills/browser-preview/SKILL.md
cat-cafe-skills/collaborative-thinking/SKILL.md
cat-cafe-skills/console-dev/SKILL.md
cat-cafe-skills/context-self-management/SKILL.md
cat-cafe-skills/convention-graph-discovery/SKILL.md
cat-cafe-skills/cross-cat-handoff/SKILL.md
cat-cafe-skills/cross-thread-sync/SKILL.md
cat-cafe-skills/debugging/SKILL.md
cat-cafe-skills/deep-research/SKILL.md
cat-cafe-skills/enterprise-workflow/SKILL.md
cat-cafe-skills/expert-panel/SKILL.md
cat-cafe-skills/feat-lifecycle/SKILL.md
cat-cafe-skills/fresh-context-review/SKILL.md
cat-cafe-skills/guide-authoring/SKILL.md
cat-cafe-skills/guide-interaction/SKILL.md
cat-cafe-skills/hyperfocus-brake/SKILL.md
cat-cafe-skills/image-generation/SKILL.md
cat-cafe-skills/incident-response/SKILL.md
cat-cafe-skills/knowledge-engineering/SKILL.md
cat-cafe-skills/memory-navigation/SKILL.md
cat-cafe-skills/merge-gate/SKILL.md
cat-cafe-skills/open-source-teardown/SKILL.md
cat-cafe-skills/organize-threads/SKILL.md
cat-cafe-skills/pencil-design/SKILL.md
cat-cafe-skills/ppt-forge/SKILL.md
cat-cafe-skills/quality-gate/SKILL.md
cat-cafe-skills/receive-review/SKILL.md
cat-cafe-skills/request-review/SKILL.md
cat-cafe-skills/schedule-tasks/SKILL.md
cat-cafe-skills/self-evolution/SKILL.md
cat-cafe-skills/source-audit/SKILL.md
cat-cafe-skills/tdd/SKILL.md
cat-cafe-skills/tech-writing/SKILL.md
cat-cafe-skills/thread-orchestration/SKILL.md
cat-cafe-skills/ttfund-skills/SKILL.md
cat-cafe-skills/video-forge/SKILL.md
cat-cafe-skills/vision-rescue/SKILL.md
cat-cafe-skills/workspace-navigator/SKILL.md
cat-cafe-skills/worktree/SKILL.md
cat-cafe-skills/writing-plans/SKILL.md
cat-cafe-skills/writing-skills/SKILL.md
cat-cafe-skills/code-as-harness/SKILL.md
cat-cafe-skills/memory-search-best-practices/SKILL.md
cat-cafe-skills/receive-handoff-grounding/SKILL.md

Metadata

Files
0
Version
4167cb0
Hash
46a45d72
Indexed
2026-07-05 14:52

trang chủ - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-08 21:55
浙ICP备14020137号-1 $bản đồ khách truy cập$