Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/ZJU-REAL/Easelnpx agentmods add skills/zju-real/easel/comparison-cardWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zju-real/easel/comparison-card)<a href="https://agentmods.dev/skills/zju-real/easel/comparison-card"><img src="https://agentmods.dev/badge/skills/zju-real/easel/comparison-card/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zju-real/easel/comparison-card"><img src="https://agentmods.dev/badge/skills/zju-real/easel/comparison-card.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00172 | $0.01517 |
| Opus 5 | $0.00086 | $0.00758 |
| Sonnet 5 | $0.00034 | $0.00303 |
| Haiku 4.5 | $0.00017 | $0.00152 |
Grade A, and why
comparison-card scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 116 lines — stays where its author put it; the contents beside it link to each section on GitHub.
对比图 / 一图流
生成 A vs B 可视化对比卡片,一张截图说清楚差异,适合社媒分享。
⚠️ 生成前先读 card-design 设计系统(锁配色/字体层级/填满画幅/去 AI 廉价感)。对比图用「对比表」骨架(左右双栏、≥5 对比行、行高一致),避免渐变、emoji、底部死空白。
输入
| 字段 | 必填 | 说明 |
|---|---|---|
items |
是 | 要对比的 2-4 个对象(名称) |
dimensions |
否 | 对比维度列表(如价格、性能、功能等);不指定则自动提取 |
data |
否 | 结构化对比数据(JSON/表格);不提供则由 SKILL 调研填充 |
layout |
否 | 布局模式:table(默认)/ versus / pros_cons |
size |
否 | 尺寸预设:xiaohongshu(1080x1440) / weibo(1080x1080) / wechat(1080x1920) / auto |
style |
否 | 视觉风格:走 card-design 风格库(瑞士极简/杂志编辑/高奢黑金…),不指定则按内容品类/Profile 选一个立场 |
winner |
否 | 是否标注胜出项:true / false(默认 false) |
布局模式说明
| 模式 | 描述 | 适用场景 |
|---|---|---|
table |
经典参数对比表,行=维度,列=对象 | 多维度、多参数的产品对比 |
versus |
左右对称 VS 布局,中间分割线 | 两个对象的直观对比 |
pros_cons |
优劣势分栏,绿色优势/红色劣势 | 单一产品的优劣分析 |
输出
- 完整的 HTML 文件,可在浏览器打开并截图
- 卡片尺寸固定(px),截图即所见
- 写入
outputs/目录
执行步骤
Step 1 — 解析对比需求
- 确认对比对象(2-4 个)
- 确认对比维度:
- 用户指定了 → 直接用
- 用户没指定 → 根据对象类型自动推断常见对比维度(如手机:价格/屏幕/芯片/电池/摄像头)
- 确认布局模式和尺寸
Step 2 — 数据收集与整理
如果用户提供了完整数据:
- 直接结构化为对比矩阵
如果用户只给了对象名,没给数据:
- 用 WebSearch 查询各对象的关键参数
- 交叉验证数据准确性(至少 2 个来源)
- 标注数据来源
将数据整理为标准矩阵:
{
"items": ["A", "B"],
"dimensions": [
{"name": "价格", "values": ["¥2999", "¥3499"], "winner": "A"},
{"name": "性能", "values": ["骁龙 8 Gen3", "A17 Pro"], "winner": "B"}
]
}
Step 3 — 生成 HTML 卡片
- 读取
references/comparison-template.html作为基础模板 - 根据
layout模式选择布局结构 - 填充数据到模板
- 应用 card-design 选定风格的配色/字体(锁 spec,全表一致;不自造配色)
- 设置卡片尺寸(
size参数) - 如果
winner为 true,用视觉标记(高亮/皇冠图标)标注胜出项
Step 4 — 视觉优化
- 确保文字不溢出单元格
- 数值类数据右对齐,文本类左对齐
- 胜出项用 card-design 选定风格的强调色高亮,劣势项用中性灰(不写死某个绿)
- 底部加数据来源说明和日期
- 遵守 card-design 铁律:禁蓝紫科技渐变、禁 emoji 当图标、填满不留死空白
Step 5 — 写入文件
将 HTML 写入 outputs/ 目录,文件名格式:{A}_vs_{B}_对比_{日期}.html
Step 6 — 渲染出图(勿手动截图)
用共享脚本自动渲染成图:
python skills/shared/scripts/render_card.py \
--html outputs/主题名/assets/A_vs_B_对比.html \
--out outputs/主题名/A_vs_B_对比.png \
--full-page --width 1080 --height 1440
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 116 lines · 172 tokens per session scan A 2e007b6f3573
comparison-card is a skill published in the GitHub repository ZJU-REAL/Easel (710 stars, last pushed yesterday), licensed Apache-2.0. It adds 172 tokens to every session and 1,517 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
ppt-generation
Generate PPTX presentations from slide plan + content.
chart-visualization
Generate charts: select type, extract data, render image.
jacky-motion2-0-srt
A workflow for turning a Chinese spoken script and matching SRT subtitle file into a single 16:9 HTML information animation. SRT is a subtitle file that stores text with start and end times; the animation follows those times and adds recorded-screen placeholders when needed.
video-podcast-maker
Use when the user gives a topic and wants an automated topic-driven narrated explainer, podcast, or knowledge-summary video (Bilibili / YouTube / Xiaohongshu / Douyin / WeChat Channels), or asks to learn visual design patterns from a reference video/image. Trigger when the user mentions creating a knowledge video…
video-podcast-maker-lite
Minimal personal narrated-video pipeline — a topic becomes a talking-head-free explainer MP4 (1080p or 4K) via script → Azure TTS (SSML) → Remotion. Use when the user wants a quick narrated video from a topic without the full video-podcast-maker machinery (no extra skills, no thumbnails/shorts/publish matrix). Do NOT…
video-podcast-maker-nano
Smallest personal narrated-explainer-video pipeline (spoken narration over visuals, not an audio podcast), fully tool-agnostic and autonomous by default — topic → research ∥ asset collection → script → TTS → video → 4K render ∥ publish info + cover. The skill defines the pipeline logic and self-verified checkpoints…