infocard · diff
v6.7.0 to v6.7.0
108 added, 181 removed. Audit F to A.
---
name: infocard
- description: "从 URL 或文本生成可定制样式的信息卡片图片。先理解内容,再按密度/结构/情绪选择视觉形式与配色。默认输出与原文同语言的单语卡片到 ~/Downloads/infocard-img/。用法:/infocard <URL|文本> [--theme=guofeng|slate|sunset|coral|indigo|forest|purple|dashboard|editorial] [--width=1080] [--lang=auto|zh|en|both]"
- user_invocable: true
+ description: "从 URL 或纯文本生成可定制样式的信息卡片图片(PNG),输出到 ~/Downloads/infocard-img/。先读懂内容,再按密度/结构/情绪选择视觉形式、版式与配色;默认输出与原文同语言的单语卡片。触发场景:生成信息卡片、知识卡片、概念图、科普长图、金句卡、产品发布卡、版本对比卡、benchmark 数据卡,把文章/推文/链接/一段文字做成图,卡片配图;make an infocard, knowledge card, concept card, turn this article into an image card。用法:/infocard <URL|文本> [--theme=guofeng|slate|sunset|coral|indigo|forest|purple|dashboard|editorial|knowledge] [--width=1080] [--output=<name>] [--lang=auto|zh|en|both]"
+ user-invocable: true
version: "6.7.0"
---
# infocard: 智能信息卡片生成器
- 没有"默认布局"。先读懂内容,再让视觉形式从内容的思想形状中长出来。
+ 没有"默认布局":先读懂内容,再让视觉形式从内容的思想形状中长出来。
- ## 用法
+ ## Purpose
- ```
- /infocard <URL|文本> [--theme=<theme>] [--width=<width>] [--output=<name>] [--lang=auto|zh|en|both]
- ```
+ 把 URL 或纯文本转成一张(或双语两张)可交付的信息卡片 PNG。技能不套固定模板,而是先理解原文的
+ 思想形状(密度 / 结构 / 情绪),据此选择版式、配色与图形,再用无头浏览器按 `.card` 边界截图到
+ `~/Downloads/infocard-img/`。
- | 参数 | 说明 | 默认 |
- |------|------|------|
- | 输入 | 网页链接或纯文本(必填) | — |
- | `--theme` | 配色:`guofeng`、`slate`、`sunset`、`coral`、`indigo`、`forest`、`purple`、`dashboard`、`editorial`(默认) | `editorial` |
- | `--width` | 图片宽度 | `1080` |
- | `--output` | 输出文件名(无扩展名) | 自动提取 |
- | `--lang` | 语言:`auto`(自动) / `zh` / `en` / `both`(双语) | `auto` |
+ ## When to Use
- 输出:`~/Downloads/infocard-img/{name}.png`(双语为 `_zh.png` / `_en.png`,目录自动创建)。
+ - 用户要把一篇文章 / 一条推文 / 一个链接 / 一段文本做成图片卡片。
+ - 用户要概念图、科普长图、金句卡、产品发布卡、版本对比卡、benchmark 数据卡。
+ - 触发词:信息卡片、知识卡片、概念图、科普长图、金句卡、发布卡、对比卡、做成卡片、卡片配图、
+ infocard、knowledge card、concept card、turn this article into an image card。
- ## 执行流程
+ ## When NOT to Use
- **0. 解析输入**:提取首个非 `--` 的 token 作输入;`http(s)://` 开头为 URL,否则为文本。`--theme/--width/--output/--lang` 取对应值,缺省如上。无输入则提示用户。
+ - 用户要咨询 / 研报 / PPT 封面质感 -> 交给 `mckinsey-cover`。
+ - 用户要摄影质感、写实、产品实拍图 -> 交给 `image-design`。
+ - 用户要工程化规格出图、透明底素材、UI 原型、角色一致性 -> 交给 `spec-image`。
+ - 用户只要文字摘要、明确不要图片 -> 直接回答,不要出图。
- **1. 获取内容**
- - URL:Twitter/X → `twitter tweet <URL>`;GitHub → `gh` 或 Jina;微信公众号 → Exa MCP / Camoufox;通用 → `curl -s "https://r.jina.ai/<URL>"` 或 WebFetch。
- - 文本:直接采用,跳过本步。
- 提取正文、作者、来源。
+ ## Workflow
- **2. 提取元信息**:标题(≤15字)、副标题(≤30字)、来源、核心要点、金句(<25字)、数据。
- 三类模式:**概念解说**(提问题 + 类比 + 机制,回答"为什么")/ **金句**(一句话主导,留白≥50%)/ **密集知识**(分层编号,留白≤30%)。
+ 1. **解析输入**:首个非 `--` 的 token 为输入;`http(s)://` 开头为 URL,否则为文本。参数取
+ `--theme/--width/--output/--lang`,缺省见 `description`,`--output` 缺省时自动提取文件名。
+ 2. **获取内容**:URL -> Twitter/X 用 `twitter tweet <URL>`;GitHub 用 `gh` 或 Jina;微信公众号用
+ Exa MCP / Camoufox;通用用 `curl -s "https://r.jina.ai/<URL>"` 或 WebFetch。文本输入跳过本步。
+ 3. **提取元信息并定模式**:标题(≤15 字)、副标题(≤30 字)、来源、核心要点、金句(<25 字)、数据;
+ 归入概念解说 / 金句 / 密集知识三类模式之一。
+ 4. **三维判断(含内部自检)**:定密度(留白)、结构(版式)、情绪(主题);产品/对比类另列核心
+ 优势、对比数值、规格参数;确认密度 / 结构 / 情绪 / 锚点 / 配色互相自洽。
+ 5. **选主题与版式**:按 `## Decision Rules` 选定 `--theme`,再读该主题的布局规范。
+ 6. **语言**:`auto` 按原文生成单语(中文占比 >50% 判中文);`zh`/`en`/`both` 跨语言时必须走
+ `/translate-polisher`,严禁直译;术语/品牌名(Claude Code、HTML、MCP…)与难译短语
+ (one-shot、intent alignment)保留英文。
+ 7. **生成 HTML**:遵守 `## Constraints` 的骨架与硬规则。单语写 `/tmp/infocard_{name}.html`;
+ 双语先译后写,分别 `_zh.html` / `_en.html`。
+ 8. **截图**:按 `## Scripts` 的 capture.js 调用方式执行。
+ 9. **展示**:用 `present_files` 展示生成的 PNG。
- **内容硬规则(贯穿全程)**
- - **知识分享,不是摘要**:沿原文逻辑(问题→分析→解法)展开,解释"为什么"而非罗列"是什么";读者读完应能复述。
- - **用类比替代术语**:每个抽象概念配生活类比或具体场景。
- - **不编造**:内容须有原文依据,不脱离原文做通用卡,不虚构类比/例子。
- - **产品/对比类**:额外提取核心优势(3-5)、对比数值、规格参数、benchmark;数值优先于模糊描述(写"69.4% vs 64.8%",不写"更优")。
+ ## Decision Rules
- **3. 三维判断**
- - **密度**:稀(≤50字,留白≥60%) / 中(50-200字) / 密(200+字,留白≤30%)。
- - **结构**:单点 / 对比(分栏) / 层级(堆叠) / 流程(纵向) / 辐射(中心) / 并列(网格)。
- - **情绪→配色**:沉思→slate/indigo;锐利→coral/sunset;温暖/科研→forest;技术→purple;优雅→guofeng;**发布(产品/模型/对比/benchmark)→dashboard**。
+ `--theme` 缺省 = `editorial`。长文/专访/报告/知识图谱 -> `editorial`;产品/模型发布、版本对比、
+ benchmark -> `dashboard`;科普、概念解析、知识长图、方法论图解 -> `knowledge`;其余按情绪映射
+ (沉思 -> `slate`/`indigo`,锐利 -> `coral`/`sunset`,温暖/科研 -> `forest`,技术 -> `purple`,
+ 优雅 -> `guofeng`)。完整对照表见 `references/content-modes.md`。
- **4. 输出决策**(内部自检):密度 / 结构 / 情绪 / 锚点 / 配色;发布类另列核心优势、对比数据、规格参数。
+ - 主题已定 -> 只读 `references/theme-palettes.md` 中对应那一节,取 CSS 变量原值。
+ - 主题为 `editorial`(默认)-> 读 `references/editorial-layout.md`。
+ - 主题为 `dashboard` -> 读 `references/dashboard-layout.md`。
+ - 主题为 `knowledge` -> 读 `references/knowledge-layout.md`。
+ - 判定内容模式、密度与结构 -> 读 `references/content-modes.md`。
+ - 生成 HTML 需要图标 -> 读 `references/svg-icon-sprite.md` 取 `<symbol>` 与图标映射。
+ - 用户想预览主题配色 -> 展示 `assets/theme_colorcards.png`;需要卡片骨架 -> 参考
+ `assets/template.html`(legacy,body 含 `padding`/`100vh`,capture.js 会清除;只借结构与配色)。
- **5. 布局**:按结构选形式;dashboard 与 editorial 有专门规范(见「主题配色」)。
+ ## Constraints
- **6. 语言**:`auto` 按原文生成单语(中文占比>50% 判中文);`zh/en` 跨语言须用 `/translate-polisher`(运行时依赖,未安装时降级为内部直译并标注"未校对")翻译,严禁直译;术语/品牌名(Claude Code、HTML、MCP…)及无法准确对译的短语(one-shot、intent alignment)保留英文。
+ - **先读内容再选布局**:密度定留白、结构定形式、情绪定配色;禁止套用固定模板。
+ - **body 只是画布,`.card` 才是卡片**:capture.js 会强制清除 body 的 padding/margin/flex/min-height
+ 并以 `.card` 定位边界。`<body>` 首子元素必须是 `<div class="card">`;body 只设 `background` 与
+ `width:1080px`、margin/padding 为 0;`.card` 设 `width:1080px; box-sizing:border-box;` 并承载
+ 全部 padding 与布局;不用 body 居中,不用 `100vh` / `min-height`。
+ - **不编造**:内容须有原文依据,不脱离原文做通用卡,不虚构类比或例子;抽取时不擅自改写、
+ 增删或"优化"原文要点与数据。
+ - **跨语言必走 `/translate-polisher`**,禁止直译;保真优先,难译处保留英文。
+ - **默认单语**;双语须显式 `--lang=both`,不擅自生成两张。
+ - **图标只用内联 SVG 雪碧图**,禁用 CDN Web Component(`<ion-icon>` 截图会缺失);每区块至多 1 个图标。
+ - **元信息禁止插在卡片正中**:作者/日期/阅读量/点赞/收藏等互动数据不是核心知识,除非本身就是
+ 卡片主题否则不展示;作者置于报头 kicker 或底部署名。**不显示来源/平台字样**(禁止
+ "X ARTICLE" 类标识)。**Header 只放标题/副标题**;作者名置底栏(12-13px,次级色)。
- **7. 生成 HTML**(见下「HTML 规范」)。单语:中文 `Noto Sans SC` / 英文 `Inter`,写 `/tmp/infocard_{name}.html`;双语:先译后写,分别 `_zh.html` / `_en.html`。
+ HTML 骨架(`1080px` 固定宽;代码块用 `white-space:pre-wrap`):
- **8. 截图**
- ```bash
- mkdir -p ~/Downloads/infocard-img
- node ~/.claude/skills/infocard/assets/capture.js /tmp/infocard_{name}.html ~/Downloads/infocard-img/{name}.png 1080 800 fullpage
- # 双语:对 _zh.html / _en.html 各跑一次
+ ```html
+ body { background: var(--bg); width: 1080px; margin: 0; padding: 0; }
+ .card { width: 1080px; padding: 72px 64px 48px; box-sizing: border-box; color: var(--text-primary); }
+ <body><div class="card"><!-- 内容 --></div></body>
```
- ## HTML 规范(违反必出错)
+ ## Priority
- capture.js 会**强制清除 body 的 padding/margin/flex/min-height**,并以 `.card` 定位边界。务必:
+ 1. **不编造 / 忠实原文** > 叙事丰富度。为凑"知识分享"而要加原文没有的类比时,宁可少加。
+ 2. **内容可读性** > 版式对齐。留白下限与版式网格冲突时,压缩或拆分内容,不挤压可读性。
+ 3. **默认单语** > 双语。用户未显式给 `--lang=both` 时只出一张。
- 1. `<body>` 首子元素为 `<div class="card">`,所有内容在内。
- 2. body 只设 `background` 与固定 `width:1080px`;margin/padding 为 0。
- 3. `.card` 设 `width:1080px; box-sizing:border-box;` 并承载全部 padding/布局。
- 4. 不使用 body 居中、不用 `100vh`/`min-height`。
+ ## Stop Conditions
- 骨架:
- ```html
- <style>
- body { background: var(--bg); width: 1080px; margin: 0; padding: 0; }
- .card { width: 1080px; padding: 72px 64px 48px; box-sizing: border-box; color: var(--text-primary); font-family: ...; }
- </style>
- <body><div class="card"><!-- 内容 --></div></body>
- ```
+ - 内容获取失败且无本地副本 -> 停止并告知用户,**不要**凭记忆或推测编造卡片内容。
+ - 截图连续失败 2 次 -> 停止重试,核对 HTML 骨架并原样报错;输入既非 URL 也未给文本 -> 追问。
- **布局**:Header 只放标题/副标题;作者名置底栏(Footer, 12-13px, 次级色);不显示来源/日期。代码块 `white-space:pre-wrap`。
+ ## Verification
- **图标:内联 SVG 雪碧图,禁止 CDN Web Component**(`<ion-icon>` 截图会缺失)。在 `<body>` 前放 `<svg style="display:none"><defs>` 雪碧图,用 `<svg class="icon"><use href="#i-xxx"/></svg>` 引用;每区块至多 1 个图标。通用类:
- ```css
- .icon { width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; display:inline-block; vertical-align:-0.125em; flex-shrink:0; pointer-events:none; }
- ```
- 雪碧图(按需取用):
- ```html
- <svg style="display:none" xmlns="http://www.w3.org/2000/svg"><defs>
- <symbol id="i-flash" viewBox="0 0 24 24"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></symbol>
- <symbol id="i-sparkles" viewBox="0 0 24 24"><path d="M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3z"/><path d="M5 17l1 2.5L8.5 20l-2.5 1L5 23l-1-2.5L1.5 20 4 19.5 5 17z"/><path d="M19 14l.5 1.5L21 16l-1.5.5L19 18l-.5-1.5L17 16l1.5-.5L19 14z"/></symbol>
- <symbol id="i-layers" viewBox="0 0 24 24"><polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/></symbol>
- <symbol id="i-speed" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></symbol>
- <symbol id="i-shield" viewBox="0 0 24 24"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><polyline points="9 12 11 14 15 10"/></symbol>
- <symbol id="i-branch" viewBox="0 0 24 24"><line x1="6" y1="3" x2="6" y2="15"/><circle cx="18" cy="6" r="3"/><circle cx="6" cy="18" r="3"/><path d="M18 9a9 9 0 01-9 9"/></symbol>
- <symbol id="i-bulb" viewBox="0 0 24 24"><path d="M9 18h6"/><path d="M10 22h4"/><path d="M15.09 14c.18-.98.65-1.74 1.41-2.5A4.65 4.65 0 0018 8 6 6 0 006 8c0 1 .23 2.23 1.5 3.5A4.61 4.61 0 008.91 14"/></symbol>
- <symbol id="i-chart" viewBox="0 0 24 24"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></symbol>
- <symbol id="i-compare" viewBox="0 0 24 24"><circle cx="18" cy="18" r="3"/><circle cx="6" cy="6" r="3"/><path d="M13 6h3a2 2 0 012 2v7"/><line x1="6" y1="9" x2="6" y2="21"/></symbol>
- <symbol id="i-code" viewBox="0 0 24 24"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></symbol>
- <symbol id="i-book" viewBox="0 0 24 24"><path d="M4 19.5A2.5 2.5 0 016.5 17H20"/><path d="M6.5 2H20v20H6.5A2.5 2.5 0 014 19.5v-15A2.5 2.5 0 016.5 2z"/></symbol>
- <symbol id="i-people" viewBox="0 0 24 24"><path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 00-3-3.87"/><path d="M16 3.13a4 4 0 010 7.75"/></symbol>
- <symbol id="i-check" viewBox="0 0 24 24"><path d="M22 11.08V12a10 10 0 11-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></symbol>
- </defs></svg>
- ```
- 图标映射:观点/金句→`i-bulb`;特性→`i-sparkles`;步骤/流程→`i-layers`;对比→`i-compare`;数据→`i-chart`;代码→`i-code`;安全→`i-shield`;性能→`i-flash`/`i-speed`;总结→`i-check`;来源→`i-book`。
+ 交付前逐项确认:
- ## 主题配色
+ - [ ] PNG 已生成,宽 = `--width` 或 1080,路径在 `~/Downloads/infocard-img/` 下。
+ - [ ] `.card` 为 body 首子元素,body 无 padding / 居中 / `100vh`。
+ - [ ] 主题与内容情绪匹配,CSS 变量取自 `references/theme-palettes.md`。
+ - [ ] 图标全部来自内联 SVG 雪碧图,无 CDN Web Component;卡片内无来源/平台字样与正中的互动数据。
+ - [ ] 跨语言时经过 `/translate-polisher`;双语仅当 `--lang=both` 时生成。
- ### slate · 沉思/技术
- ```
- --bg: #F8FAFC
- --text-primary: #0F172A
- --text-secondary: #475569
- --accent: #0F172A
- --border: #E2E8F0
- ```
+ ## Output
- ### coral · 锐利/创意
- ```
- --bg: #FFF1F2
- --text-primary: #4C0519
- --accent: #E11D48
- --border: #FFE4E6
- ```
+ - **Outcome**:一张(双语时两张)信息卡片 PNG,位于 `~/Downloads/infocard-img/{name}.png`
+ (双语为 `_zh.png` / `_en.png`,目录自动创建)。
+ - **Done when**:PNG 已生成、已用 `present_files` 展示、`## Verification` 全部勾选。
+ - **Evidence**:版式由内容密度/结构决定、配色取自选定主题变量、留白比例符合密度档位、
+ 内容可追溯到原文。
- ### indigo · 沉思/教育
- ```
- --bg: #EEF2FF
- --text-primary: #1E1B4B
- --accent: #4F46E5
- --border: #E0E7FF
- ```
+ ## References
- ### forest · 温暖/科研
- ```
- --bg: #F0FDF4
- --text-primary: #052E16
- --accent: #16A34A
- --border: #DCFCE7
- ```
+ 按需加载,不要预先全读:
- ### sunset · 锐利/创意
- ```
- --bg: #FFFAF4
- --text-primary: #451A03
- --accent: #EA580C
- --border: #FFEDD5
- ```
+ - `references/content-modes.md` — 第 3、4 步归类模式/密度/结构,以及写正文前核对内容硬规则时读。
+ - `references/theme-palettes.md` — 主题确定后读,只取该主题那一节的 CSS 变量。
+ - `references/editorial-layout.md` — 仅当主题为 `editorial`(默认)时读。
+ - `references/dashboard-layout.md` — 仅当主题为 `dashboard` 时读。
+ - `references/knowledge-layout.md` — 仅当主题为 `knowledge` 时读。
+ - `references/svg-icon-sprite.md` — 写 HTML 且需要图标时读,取 `<symbol>` 定义与图标映射。
- ### editorial · 编辑/杂志风(长文/专访/报告/知识图谱)
- ```
- --bg: #F6F1E7
- --card-bg: #FFFFFF
- --text-primary: #1A1A1A
- --text-secondary: #5A544A
- --accent: #15233F
- --accent-light: #DDE7F0
- --border: #D8CFC0
- --highlight-bg: #F1ECDE
- --dark-card: #15233F
- --gold: #F5C518
- --navy: #15233F
- ```
- 布局:无圆角无阴影,靠发丝线与留白分层。①报头 kicker(作者·来源)+描边胶囊按钮;②双色衬线大标题(英文墨黑/中文藏青,56-72px);③导语+超大黄色数字锚点(如 10K+);④发丝线分隔的四列元信息;⑤编号分区01-04(藏青大号Oswald),末区反白(藏青底/黄号/奶白字);⑥浅蓝引文块+藏青左线;⑦底部藏青反白总结条+署名。字体:标题/编号/引文衬线(Noto Serif SC、Georgia),kicker/标签 Oswald,正文 Noto Sans SC/Inter。
+ ## Scripts
- ### purple · CLI/暗色科技
- ```
- --bg: #0F111A
- --text-primary: #F0F0F5
- --text-secondary: #8B8DA3
- --accent: #A78BFA
- --accent-light: #2A2C3D
- --border: #1E2030
- --highlight-bg: #181924
- --dark-card: #1A1B26
- ```
+ - `scripts/capture.js` — 主渲染器。参数依次为 `<html> <png> [width] [height] [fullpage] [scale]`;
+ `scale` 默认 2(2x 高清)。成功时 stdout 打印 `OK: <绝对路径>`,失败时 stderr 打印错误并以
+ 退出码 1 结束。依赖 `playwright`:未安装时先在本技能目录执行
+ `npm install && npx playwright install chromium`。
- ### dashboard · 发布/数据
- ```
- --bg: #0A0A0A
- --card-bg: #141414
- --text-primary: #FFFFFF
- --text-secondary: #A0A0A0
- --accent: #4ADE80
- --accent-light: rgba(74,222,128,0.1)
- --border: #2A2A2A
- --highlight-bg: #1A1A1A
- --dark-card: #0F0F0F
- --green: #4ADE80
- --orange: #F59E0B
- --blue: #3B82F6
+ ```bash
+ node <skill>/scripts/capture.js /tmp/infocard_{name}.html ~/Downloads/infocard-img/{name}.png 1080 800 fullpage
+ # 双语:对 _zh.html / _en.html 各跑一次。输出目录需先存在
```
- 布局:深色底+绿色强调;2-6 个编号区块(1,2,3)带边框;对比数据用表格/并排卡;顶部超大产品名(48-56px);底部放定价/CTA/来源;区块间距16-24px。
- ### guofeng(默认)· 国风/人文
- ```
- --bg: #F5EDE0
- --card-bg: #FAF3E7
- --text-primary: #2D1F14
- --text-secondary: #7A6A5A
- --accent: #C5615C
- --accent-light: rgba(197,97,92,0.15)
- --border: #E2D4C2
- --highlight-bg: #F0E6D6
- --dark-card: #2D1F14
- ```
+ - `scripts/capture_dsh.js` — 早期简化版截图脚本(改用系统 Chrome 的 `channel:'chrome'`,不支持
+ fullpage 参数)。仅当 playwright 自带浏览器不可用、但本机装有 Chrome 时作为备用。
- ## 关键约束(一次记牢)
+ ## Related Skills
- - **先读内容再选布局**:密度定留白、结构定形式、情绪定配色。
- - **body 只是画布,`.card` 才是卡片**:间距全写在 `.card`,body 无 padding/居中/`100vh`。
- - **图标只用内联 SVG 雪碧图**,禁用 `<ion-icon>` CDN。
- - **跨语言必走 `/translate-polisher`**(运行时依赖,缺失时降级为内部直译并标注"未校对"),禁止直译;保真优先,难译处保留英文。
- - **发布/对比内容用 dashboard**;对比写具体数值,提取 3-5 核心优势。
- - **内容=知识分享≠摘要**:用类比、沿原文脉络、不编造;每区块都服务于理解标题。
- - **默认主题 = editorial(杂志风)**:未指定 `--theme` 时采用杂志风(纸色底+白卡、衬线标题、发丝线分层、无圆角无阴影)。
- - **元信息禁止插在卡片正中**:作者/日期/阅读量/点赞/收藏等互动数据不是核心知识,以四列网格等形式放在卡片中间既突兀又无意义;作者可置于报头 kicker 或底部署名,互动数据除非本身就是卡片主题否则不展示。
- - **内容须忠实原文**:抽取时不擅自改写、增删或"优化"原文要点与数据;保留原文数值与表述,不自行发挥。
- - **不显示来源/平台字样**:禁止出现 "X ARTICLE" 等平台标识或来源行;作者可保留,来源不展示。
- - 默认单语;双语须显式 `--lang=both`,不擅自生成两张。
+ - `mckinsey-cover` — 咨询 / 研报 / PPT 封面质感。
+ - `image-design` — 摄影逻辑的五维 AI 绘图提示词;`spec-image` — 工程化规格出图与多图一致性。
+ - `translate-polisher` — 跨语言卡片翻译的唯一入口。