Design a GitHub social-preview card (og:image, 1280x640) for a repository. Use when the user asks for a social preview, repo cover, og image, link card, opengraph image, or README hero. Five editorial moods (editorial, poster, blueprint, gallery, terminal), CJK-first typography, one self-contained HTML file, deterministic checks, crisp PNG export. No image model needed.
Scanned 8/30/2026
Install to Claude Code
npx -y skills add sjh9714/cover-my-repo --skill repo-cover --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Repo Cover?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/sjh9714-repo-cover)More formats (shields.io, HTML) on the badges page.
---
name: repo-cover
description: >
Design a GitHub social-preview card (og:image, 1280x640) for a repository.
Use when the user asks for a social preview, repo cover, og image, link
card, opengraph image, or README hero. Five editorial moods (editorial,
poster, blueprint, gallery, terminal), CJK-first typography, one self-contained HTML
file, deterministic checks, crisp PNG export. No image model needed.
license: MIT
---
# repo-cover
You design one 1280x640 social-preview card as a single self-contained HTML
file. You write the HTML yourself. There is no image model and no build
step. Quality comes from following the numbers below exactly.
## Workflow
1. **Gather facts.** Gather the owner, name, description,
primary language, license (use the `spdx_id`). Prefer
`gh api repos/<owner>/<name>` or the local checkout. Never invent a
star count or license.
2. **Rewrite the description.** The card line is not the GitHub description
verbatim. Compress it to one or two sentences, max 110 characters
with a 60-character maximum for CJK, concrete nouns, and no marketing adjectives.
Show the user your line before rendering if they are present; in a
non-interactive run, proceed and include the line in your report.
3. **Pick a mood.** Default `editorial`. Offer the other four only if the
user asks for options. Read exactly ONE mood reference and ONE example from this list.
- `references/mood-editorial.md` + `assets/examples/editorial-red-handed.html`
- `references/mood-poster.md` + `assets/examples/poster-archify.html`
- `references/mood-blueprint.md` + `assets/examples/blueprint-macos-harness.html`
- `references/mood-gallery.md` + `assets/examples/gallery-cumora.html`
- `references/mood-terminal.md` + `assets/examples/terminal-freeze.html`
Do not read renderer-free files "for context". Two files, then write.
For a README hero banner instead of a card, read
`references/banner.md` (1280x320, editorial language).
4. **Write `<repo>-cover.html`.** Copy the example's skeleton, replace
content, apply the mood's rules. If the description or repo name
contains CJK text, also read `references/cjk.md` first.
5. **Check.** Run `python3 scripts/check_card.py <file>`. Fix every FAIL,
re-run, stop after two repair rounds and report remaining failures
honestly.
6. **Export.** Follow `references/export.md` for the PNG and where to
upload it (GitHub Settings → Social preview). If the user wants the
card to update itself, point them to the bundled GitHub Action.
## Hard rules (all moods)
- Canvas exactly 1280x640. Margins are 88px, or 96px for blueprint.
- Follow the mood reference's numbers exactly. When you invent a
coordinate the reference does not give, snap it to a 4px grid.
- ONE accent color per card, used only in the places the mood reference
names. The default is the repo's primary-language color, darkened until it
passes 4.5:1 contrast against the background (`check_card.py`
verifies). For a docs repo with no primary language, use a brand color the
user names, or slate `#46627F` in one-shot runs. For brand colors
read `references/brand-accent.md`.
- Fonts only from Google Fonts. Use Fraunces, IBM Plex Mono, or Noto Sans KR/JP/SC.
Real fallback stacks always.
- Title size follows name length. Use <=9 chars 132px, <=14 108px, <=20 92px,
<=26 74px, longer 64px and allow two lines broken at a hyphen.
- Keep the description to 2 lines. Do not allow mid-word hyphen breaks. Wrap compound
words in `white-space:nowrap` spans.
- Star counts are OFF by default. They go stale and embarrass small
repos. Only include when the user explicitly asks; then format with
thousands separators.
- The meta row shows what exists, either language or license. If both are
missing, the single item is the repo URL without protocol.
- Owner avatar is optional. If used, inline it as a base64 data URI
(`references/avatar.md`) so the file stays self-contained.
- Never use box-shadow, drop-shadow, glassmorphism, gradients except the
blueprint grid lines), emoji, more than 2 typefaces + 1 mono, dark
background with neon cyan glow, centered Inter on a purple gradient.
## What this is not
- Not a screenshot beautifier, not a logo generator, not a slide tool.
- The card is a static file. Freshness comes from
re-rendering (the bundled Action), not from live data.
- If the user wants diagrams, recommend a diagram skill instead.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!