skills/feishu-rich-card/SKILL.md
Send rich interactive cards with embedded images in Feishu group chats. Use when reporting progress, sharing analysis results, or presenting any content that benefits from mixed text+image layout in Feishu. Combines SVG UI templates (or matplotlib/PIL charts) with Feishu Card Kit API.
npx skillsauth add xjtulyc/MedgeClaw feishu-rich-cardInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
在飞书群聊中发送图文并茂的交互式卡片,用于汇报进展、展示分析结果、项目状态等。
生成图片(SVG→PNG / matplotlib / PIL)
↓
上传图片到飞书 → 获取 image_key
↓
构造 Card JSON (schema 2.0) → 嵌入 img 元素 + markdown 元素
↓
调用飞书 API 发送 interactive 消息
图片来源可以是:
svg-ui-templates skill 生成 SVG → cairosvg 转 PNG使用 references/send_card.py 中的辅助函数:
# 完整用法参见 references/send_card.py
from send_card import FeishuCardSender
sender = FeishuCardSender() # 自动读取 openclaw.json 凭证
# 发送图文卡片
sender.send_rich_card(
chat_id="oc_xxx",
title="📊 分析报告",
elements=[
{"type": "markdown", "content": "## 结果摘要\n\n发现 **3 个**显著差异基因"},
{"type": "image", "path": "/tmp/volcano_plot.png", "alt": "火山图"},
{"type": "markdown", "content": "> Gene X: FC=2.5, p<0.001"},
{"type": "hr"},
{"type": "image", "path": "/tmp/heatmap.png", "alt": "热图"},
{"type": "markdown", "content": "**结论:** 样本间差异显著,建议进一步验证。"},
],
header_template="blue" # blue/indigo/green/red/purple/violet/wathet/turquoise/yellow/grey
)
sender.send_image_report(
chat_id="oc_xxx",
title="🧬 单细胞分析完成",
intro="UMAP 降维完成,共识别 12 个细胞群:",
image_path="/tmp/umap.png",
conclusion="Cluster 5 为目标细胞群,marker: CD8A, GZMB, PRF1",
header_template="indigo"
)
| Element | Tag | 说明 |
|---------|-----|------|
| Markdown | markdown | 支持加粗、斜体、链接、列表、引用块、代码块 |
| Image | img | 需要 image_key(上传后获取) |
| Divider | hr | 水平分割线 |
| Column Set | column_set | 多列并排布局 |
| Note | note | 底部灰色备注 |
blue wathet turquoise green yellow orange red carmine violet purple indigo grey
image_key,不能用 URL"2.0"img 元素NO_REPLY 避免当需要专业级可视化时,结合 svg-ui-templates skill:
# 1. 生成 SVG(用模板或自定义)
# 2. 转 PNG
python3 -c "import cairosvg; cairosvg.svg2png(url='report.svg', write_to='report.png', output_width=2400)"
# 3. 用本 skill 上传并发送卡片
通过环境变量配置:FEISHU_DEFAULT_CHAT_ID(在 .env 中设置)
development
Generate professional SVG UI panels for structured information display. Use when presenting lists, task checklists, pipeline/dependency status diagrams, or rich-text report layouts as SVG images. Covers four templates - list-panel, checklist-panel, pipeline-status, richtext-layout. Style is professional, business-oriented, academic-grade with Material Design color palette.
tools
Systematic methodology for reproducing published academic papers using provided data. Use when the user asks to reproduce, replicate, or verify results from a published paper, including sample selection, descriptive statistics, regression analyses, and generating reproduction reports (Markdown + LaTeX PDF). Covers the full pipeline: data exploration, variable identification/mapping, sample filtering, variable construction, statistical analysis, result comparison, and documentation. Applicable to any observational study, clinical cohort, or survey-based research paper.
development
# Local Research Dashboard Skill ## 概述 每次科研任务开始时,生成一个临时的本地 dashboard,动态展示任务关键信息和产物预览。 ## 组件 - `state.json`:数据协议,openclaw 负责写入和更新 - `dashboard.html`:本地单文件页面,轮询 state.json 并渲染 - `dashboard_serve.py`:静态文件服务器,serve 任务根目录 所有文件放在**任务独立目录**中(如 `data/<task_name>/dashboard/`)。 --- ## state.json Schema ```json { "title": "任务标题", "updated_at": "2024-01-01 12:00:00", "panels": [ { "type": "progress|text|list|code|table|image|files|step", "label": "面板标题(可折叠的标识)", "content":
tools
CJK (中日韩) 字体检测与 matplotlib 配置。任何涉及中文标签、标题、图例的 可视化任务启动前必须先执行本 skill 的字体检测流程,确保不会出现方块乱码。 适用于 matplotlib / seaborn / plotly 静态导出等场景。