← ClaudeAtlas

cover-imagelisted

Use when the user asks to make/generate/add a cover image (封面图/题图/banner) for an article, blog post, xiaohongshu/wechat post, tweet thread, or long-form essay. Cover copy is written FOR HUMANS (curiosity/resonance hook, CTR), never for search keywords — titles handle search. Renders a deterministic cover PNG from system fonts (no AI image model, no network) and embeds it at the top of the doc by default.
anneheartrecord/charles-skill · ★ 2 · AI & Automation · score 73
Install: claude install-skill anneheartrecord/charles-skill
# 封面图生成(cover-image) ## 第一性原则(骨架,先于一切排版) > **封面是给人看的,标题大部分是给机器看的。** - 瀑布流里人的第一视觉落在面积最大的封面图上,封面文案决定 CTR。封面文案**只对人**:要抓睛、接地气,路线只有两条——**引发好奇**或**产生共鸣**。 - 标题的首要任务是**搜索索引**:在表达清楚的前提下覆盖尽可能多的核心关键搜索词、承接用户会输入的长尾问题(如「苹果手机如何设置捷径?」)。爆款常常是「封面抓人 + 标题读起来奇奇怪怪」,如「小学单词速记!单词脑图助记600词」——覆盖了【小学单词】【单词速记】【单词脑图】【助记】等一串搜索词。 - **本 skill 只负责封面这一半**。绝不往封面文案里堆关键词;标题那一半交给 `xhs-title` / `dbs-xhs-title`(起标题)和 `xhs-keyword-strategy`(关键词覆盖)。用户要「标题+封面」整套时,两条线分开做:封面走情绪,标题走搜索。 ## 封面文案怎么写(核心工序) 封面上最大的那行是**钩子(hook)**,不是文章标题。原标题降级为下方小字(`--subtitle`)或干脆交给标题线去做关键词版。 1. **从原文挖真实的观点/金句**,不凭空造、不标题党到失真。 2. 每个钩子明确走一条路线并标注: - **好奇路线**:反常识、留悬念、直接抛扎眼结论(「一夫一妻,本就是反人性的」「去人才高地竞争,到人才洼地赚钱」)。 - **共鸣路线**:说出目标读者心里那句没说出口的话,越口语越好(「不怕黑子,就怕没黑子」)。 3. **接地气**:口语、短句、具体名词;书面语和抽象大词一律毙掉。 4. 形式约束:整句 ≤ ~14 字,用 `|` 分两行、每行 ≤ ~7 字;用 `*词*` 高亮 2-3 个最扎眼的字。 5. **默认给 4-6 个候选(好奇、共鸣两条路线各 2-3 个),标明路线,让用户挑**,再定稿渲染。 6. 自检:把候选放进想象中的瀑布流——旁边全是别人的封面,这句话能不能让手停下来?不能就重写。 ## 渲染管线 `HTML/内联CSS/SVG → 本机 Chrome headless 截图 → PNG`,只用系统字体(Songti SC / Kaiti SC / Heiti SC),不联网、不用文生图模型,确定性、免费、风格一致。核心工具:`render-cover.mjs`(本目录)。 ```bash node ~/.agent-harness/skills/cover-image/render-cover.mjs \ --theme life \ --kicker "随笔 · 两性" \ --hook "一夫一妻|本就是*反人性*的" \ --subtitle "我对两性的理解" \ --out "/绝对路径/我对两性的理解-cover.png" ``` - `--hook` 必填:封面主角钩子,`|` 分行、`*词*` 高亮。 - `--subtitle` 文章真实标题(渲染成「本文 · <标题>」小字),可省略。 - `--kicker` 左上栏目标签、`--byline` 左下中性描述、`--brand` 右下角标,均可省略。 - `--theme` = `invest` | `tech` | `life`(省略默认 life);`--out` 必填绝对路径。 - 尺寸:默认 16:9(1600×900,输出 2x=320