OpenByline: Skill for Claude Code

.claude/skills/wechat-cover-image/SKILL.md

wechat-cover-image is a skill for Claude Code from bailutingyu/OpenByline. It costs 94 tokens per session (2,360 once invoked), scanned A, original, MIT.

A workflow for creating wide cover images for WeChat public-account articles, combining a reusable personal character or visual identity with the article’s topic.

In plain words
What is it for?
Use it to create or reuse a personal character design, generate a 2.35:1 article cover, and replace a cover placeholder in a formatted Markdown article with an image.
Why use it?
It keeps the author’s appearance and branding consistent across articles and accounts for the way WeChat crops cover images in smaller previews.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: mentions CLAUDE.md.

This is bailutingyu/OpenByline's own configuration. It tells Claude Code how to work on OpenByline itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything OpenByline configures →

Reuse

Borrowing it

Nothing to install: this file belongs to bailutingyu/OpenByline. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/bailutingyu/OpenByline/main/.claude/skills/wechat-cover-image/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/bailutingyu/OpenByline

Made for: Claude Code.

Wrote 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.

agentmods badge for wechat-cover-image

README.md
[![agentmods](https://agentmods.dev/badge/skills/bailutingyu/openbyline/wechat-cover-image.svg)](https://agentmods.dev/skills/bailutingyu/openbyline/wechat-cover-image)
Your own site
<a href="https://agentmods.dev/skills/bailutingyu/openbyline/wechat-cover-image"><img src="https://agentmods.dev/badge/skills/bailutingyu/openbyline/wechat-cover-image.svg" alt="Measured on agentmods" height="20"></a>
Per session 94 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,360 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00094 $0.02360
Opus 5 $0.00047 $0.01180
Sonnet 5 $0.00019 $0.00472
Haiku 4.5 $0.00009 $0.00236

Measured 8d ago against content hash 4fb763c00ed9, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

wechat-cover-image 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 8d 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.

.claude/skills/wechat-cover-image/SKILL.md · 77 lines

How it starts

The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.

公众号头图生成流程(个人 IP × 文章内容)

头图是公众号文章的"第一眼"。这套流程的信条:头图的灵魂是作者本人的 IP 形象——跨文章复用同一个 IP,形成辨识度;每篇头图 = 固定的 IP 形象 + 这篇文章的金句 + 主题场景。


一、头图规格(已核实,固定)

  • 比例 2.35:1(头图硬要求),默认输出 1400×596 px(正好 2.35:1,公众号头图已足够清晰)。⚠️ 别追求更高分辨率(如 2350×1000)——订阅版生图分辨率太高容易直接生成失败;1400×596 是稳妥默认。(prompt 怎么写、出图后怎么量比例/裁切,操作步见 §四。)
  • 微信裁剪安全区(关键):在订阅号列表/转发卡片里,封面会被自动裁掉两侧、只保留中间约 383×383 的正方形。所以——
    • 核心元素(IP 形象 + 主标题大字)必须放在画面中央横向 ~60% 区域内,别贴左右边缘,否则缩略图里会被切掉。
    • 左右两端只放背景/装饰,不放关键信息。
  • 可选另备 1:1(500×500) 用于分享卡片。

二、前置:个人 IP 形象(没有就先建)

  • 已有 IP 图 → 在 workspace/个人知识库/个人IP图/作者个人视觉资产,跨主题复用、不进单篇主题目录——每篇文章复用同一套 IP)。生成头图时它是形象与配色的基准,每张头图里的人物都要和它一致(发型 / 眼镜 / 标志服饰 / brand 主色)。

  • 还没有 IP 图 → 先引导作者用生图引擎(引擎选择守全局生图规则)生成一张 IP 设定图(character sheet),再挑一版满意的固定为资产。设定图生成 prompt 模板:

    为一位【身份:如产品经理转型 AI 实战派】做一张个人 IP 角色设定图(character sheet),动漫手绘风、暖色调、亲和。包含:正面/侧面/背面三视图、6-8 个表情包(开心/思考/惊讶/认真/加油/专注…)、一排日常穿搭、一个主视图特写。人物特征:【年龄气质、发型、是否戴眼镜、标志性服饰与颜色、配饰】。brand 主色:【如橙色】。整体留白干净,像一页可复用的 IP 规范图。

    让作者挑一版,之后所有头图都基于这版形象。


三、头图构图模板(从满意样例提炼)

横幅头图(规格见 §一),左右分区:

  • 左 ~1/3:IP 形象——放在与文章主题强相关的场景里(如对着数据/敲电脑/看发布会),姿态呼应文章情绪。形象严格贴 IP 设定图。
  • 中右 ~2/3:大字主标题——文章的核心金句/反差钩子,≤12 字/行、最多两行;关键词用 brand 主色高亮放大;下方可加一行小字副标题。
  • 背景:与 IP brand 色统一的暗调 + 主色光效,可叠主题相关暗纹(科技电路 / 数据流 / 书房暖光)。
  • 右上/右下角落(可选):一个呼应主题的小装饰元素(图标 / 清单卡片 / 对比小卡)。
  • 文字要求:必须是清晰、可读的中文,别让模型把字画糊或画成乱码英文;字数宁少勿多。
  • 🔴 标题文字逐字写进生图 prompt、让引擎一次性画进图里;禁止先出无字底图再用 PIL/脚本后期叠字(作者明确反感两步法)。文字调性活泼有力、关键词放大并用 brand 主色高亮、错落有节奏,别用呆板等线黑体/宋体。

文案提炼:主标题优先用文章里最有反差/最戳人的那句(金句或标题的浓缩),不要照搬整个长标题。


四、生成流程

引擎选择与操作守全局生图规则(用户级 CLAUDE.md 生图节)——弹窗选引擎、参考图缩图、Chrome 就绪确认等细节都在那边;所选引擎若最宽只到 16:9 → 先出 16:9,再走 step 5 居中裁(§三"核心元素垂直居中"让居中裁无损)。 🔴 每张头图必带个人 IP 参考图workspace/个人知识库/个人IP图/ 主形象图),人物 / 配色与之一致;IP 规范详见 article-to-xhs-cards/references/ip-character.md §八。

  1. final.md(取标题与金句)+ 个人知识库/个人IP图/(取形象与配色)。
  2. 提炼头图文案:主标题(金句/反差句,标出高亮词)+ 可选副标题。
  3. 组装生图 prompt = IP 形象详描 + §三构图模板 + 文案 + 主题场景 + brand 配色 + 中文文字清晰 + 尺寸/比例 + 构图约束(务必写明)
    • 目标尺寸与比例直接写进 prompt:"输出 2.35:1 横幅 banner,尺寸 1400×596 px",并反复强调 2.35:1 比例(比尺寸更关键;规格依据见 §一);
    • "把人物和所有文字安排在画面垂直居中的中间区域,上下各留出约六分之一高度的纯背景/光效延展,不要让人物头顶或文字贴近上下边缘"——这样万一工具退回 3:2 等固定画布、需要裁成 2.35:1 时也不会切到核心;
    • "标题大字横向也别贴左右边,给微信缩略图的中间裁剪安全区留出空间"。 3.5 prompt 先存后生(🔴 作者硬规矩,2026-06-11):组装好的完整 prompt 先写进该文章目录的 头图-prompt存档.md 落盘,落完才允许调用生图引擎;执行中临场改动,出图后把实际版本同步回档。换引擎/失败重试直接复用档内 prompt。
  4. 出图:按用户选定的引擎执行,调用方式 / 比例档位 / 禁 API 兜底等操作细节守全局生图规则(见本节开头);带上本节开头要求的 IP 参考图;生成后把图落到该文章目录 workspace/内容输出/<主题>/,文件名统一 头图.png(多尺寸时如 头图_2.35x1.png)。
  5. 取回后先量实际比例:已是 2.35:1(或足够接近)→ 直接缩放到 1400×596无需裁;比例明显不对(工具退回 1024×1024 / 1536×1024 等)→ 再居中裁 2.35:1(高度 = 宽 ÷ 2.35;1536×1024 → 居中裁 1536×654 → 缩放 1400×596)。因为 step 3 已把核心预留在中间带,居中裁即无损。兜底裁切脚本(PIL,固定复用):
    from PIL import Image
    im = Image.open(src).convert("RGB"); w, h = im.size
    ch = round(w / 2.35); top = (h - ch) // 2     # 居中裁;核心若略偏上可手动减小 top
    im.crop((0, top, w, top + ch)).resize((1400, 596), Image.LANCZOS).save(out, quality=95)
    
    裁完 / 缩放后肉眼核对:人物脸 / 标题完整、中间 383 安全区信息齐、文字清晰、人物像 IP。
  6. 用真实图路径替换 final-formatted.md 封面占位(真图即同目录 头图.png,写成 ![](头图.png))。

Read the full file on GitHub · 77 lines

Changes

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.

  1. 8d ago First seen · 77 lines · 94 tokens per session scan A 4fb763c00ed9

Subscribe to this mod's changes

wechat-cover-image is a skill published in the GitHub repository bailutingyu/OpenByline (2 stars, last pushed 2mo ago), licensed MIT. It adds 94 tokens to every session and 2,360 once invoked, about $0.0005 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-31.

Related

Other skills, from other repositories

webgl-holographic-foil

A self-contained WebGL2 hero: thin-film interference over a crushed-foil surface whose palette shifts with the viewing angle; move the cursor to tilt the film.

nexu-io/open-design · 41 tokens

general-video

Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated…

heygen-com/hyperframes · 92 tokens

html-ppt-hermes-cyber-terminal

OpenDesign + BYOK: choosing and wiring your own model, hands-on — cost, quality, and the routing decision. Built as a decision-grade AI literacy deck for engineers, IT, applied-AI teams.

nexu-io/open-design · 53 tokens

html-ppt-taste-brutalist

16:9 HTML deck in tactical-telemetry / CRT-terminal taste. Deactivated-CRT charcoal slides, white-phosphor monospace, hazard-red accent, scanline overlay, ASCII syntax, density over decoration. Distilled from Leonxlnx/taste-skill brutalist-skill (Tactical Telemetry mode).

nexu-io/open-design · 78 tokens

diagnostic-stem-delivery

Audio production with diagnostic analysis, timecode parsing from documents, and verified export workflow.

HKUDS/OpenSpace · 23 tokens

chengfeng-check-updates

An environment manager for a video-editing system. It checks whether its skills and runtime—the software needed to run them—are installed and compatible.

Agentchengfeng/chengfeng-videocut-skills · 120 tokens