Skip to content
Content
Skill

/cover-maker

Turn cover metadata (title / creator / subtitle / medium) into an album, book, podcast, report, deck, or magazine cover. Aspect auto-picked per medium. Optional photo/artwork reference. Multi-variant output. Use when: 'album cover', 'book cover', 'podcast cover', 'report cover',

From plugin
mikefluff-skills
1944 skills2 commands1 hook
Install
$ npx -y skills add Mikefluff/skills --skill cover-maker --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/cover-maker

Context preview

The summary Claude sees to decide when to auto-load this skill.

Turn cover metadata (title / creator / subtitle / medium) into an album, book, podcast, report, deck, or magazine cover. Aspect auto-picked per medium. Optional photo/artwork reference. Multi-variant output. Use when: 'album cover', 'book cover', 'podcast cover', 'report cover',

SKILL.md

cover-maker.SKILL.md
name: cover-maker
description: "Turn cover metadata (title / creator / subtitle / medium) into an album, book, podcast, report, deck, or magazine cover. Aspect auto-picked per medium. Optional photo/artwork reference. Multi-variant output. Use when: 'album cover', 'book cover', 'podcast cover', 'report cover', 'обложка для альбома / книги / подкаста / отчёта'."

license: MIT
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - Grep
  - Glob

<objective> Cover image generator. Input: cover metadata (title + creator + optional subtitle + medium type) plus optional reference image (artwork, photo, logo). Output: N variants in the medium's native aspect.

Distinct from `flyer-maker`:

  • No event details (date / location / CTA) — covers have title + creator
  • Aspect varies by MEDIUM, not platform (album = 1:1; book = 2:3 portrait; podcast = 1:1; magazine = 2:3 magazine cover; report = 1:√2 A4)
  • Different composition conventions (titles dominate; minimal supporting metadata)

Distinct from `image-prompt`:

  • Structured input (medium / title / creator) vs free-form prompt
  • Multi-variant batch (default 2-3 takes per medium)
  • Auto-picks model based on text needs + style

This skill does NOT:

  • Generate physical book bindings / album sleeves / cover spreads (back covers, spines) — single front-cover image only
  • Generate ISBN barcodes / catalog numbers — overlay manually in your editor
  • Source rights-cleared imagery — provide your own photo via --photo
  • Cover scaling for specific marketplace dimensions (Amazon KDP / Spotify Canvas / Apple Music) — generate at the medium's standard aspect, resize/upscale in a DTP tool

</objective>

ROLE

Read metadata + medium + optional photo + style → pick aspect from medium → pick text-friendly + (if photo) multi-ref-capable model → assemble per-variant prompts with composition zones → batch execute → save PNGs.

PIPELINE (v2.14.0+ — shared visual-prompt chain, same as carousel-builder)

1. **Resolve metadata**:

  • Required: `--title`
  • Strongly recommended: `--creator` (album artist / book author / podcast host / report org)
  • Optional: `--subtitle`, `--photo <path-or-url>`, `--brand-colors "<list>"`

2. **Resolve medium** — picks aspect + composition convention:

  • `--medium album` → 3000×3000 square (Spotify / Apple Music album art)
  • `--medium book` → 1600×2400 (2:3 portrait — Amazon KDP standard)
  • `--medium podcast` → 3000×3000 square (Apple Podcasts spec)
  • `--medium magazine` → 1600×2400 (2:3 — print magazine cover convention)
  • `--medium report` → 1240×1754 (A4 portrait at 150 DPI)
  • `--medium deck-cover` → 1920×1080 (16:9 — slide deck title slide)
  • `--medium linkedin-doc` → 1080×1080 (1:1 — LinkedIn document)
  • Custom: `--aspect WxH`

3. **Resolve style** — see [`common/visual-prompt-library/styles/_index.md`](../../common/visual-prompt-library/styles/_index.md) (shared 13-style library):

  • `--style auto` (default): the LLM picks from the library based on title + creator + medium + tone.
  • `--style <name>`: explicit from the 13-style library (BIOTECH / CYBER-NOIR / BRUTALIST / VAPORWAVE / MILITARY / SCIENTIFIC / STREETWEAR / ART-DECO / BLUEPRINT / GRUNGE / GLAMOUR / NATURE / ADVENTURE).
  • `--style custom "<desc>"`: free-text override passed verbatim.

4. **Pick model** — see `references/model-picker.md`:

  • Heavy embedded text (covers always have text) → `ideogram-3-quality` (default) or `gpt-image-2`.
  • Photo reference + identity → `nano-banana-pro`.
  • Photo reference + brand palette → `flux-2-pro`.
  • Photoreal magazine-style cover → `nano-banana-pro`.

5. **Compose ONE LLM call** — load [`common/visual-prompt-library/system-prompt.md`](../../common/visual-prompt-library/system-prompt.md) (the shared SYSTEM_PROMPT) and `buildUserMessage(opts)` with:

   Mode: cover
   Number of images to generate (N): <variants, default 2>
   Aspect ratio: <medium aspect>
   Topic / theme: <title + creator context>
   Title: "<title verbatim>"
   Creator: "<creator verbatim>"
   Subtitle (optional): "<subtitle verbatim>"
   Medium: <medium>
   Visual style: <library entry full description OR customStyle text>
   [Optional: brand colors, photo reference flag, character description]

   Respond with a JSON object: { "slides": [...] }

Spawn ONE Agent (subagent_type=`general-purpose`) with `system=SYSTEM_PROMPT` and `user=<built message>`. The agent returns JSON `{"slides":[{"number":1,"prompt":"..."},...]}` — N short (1–3 sentence) cover prompts, title + creator quoted, layout language, no carousel chrome (single-image mode).

**Discipline (all enforced in the SYSTEM_PROMPT)**:

  • ONE LLM call, not per-variant subagents.
  • Each prompt 1–3 sentences.
  • Title + creator + subtitle in double quotes exactly.
  • No meta-labels (no `TITLE:` / `AUTHOR:` literals).
  • Title-dominant composition; creator in a consistent secondary zone.

**Retry on bad output**: if malformed JSON or wrong N, re-run once with stricter reminder.

6. **Assemble plan.json** — items `[{index, label, prompt, kwargs:{size, image_url}}]`. `prompt` is LLM-returned text. `image_url` points to `--photo` when provided.

7. **Estimate cost + confirm** — inherits `SKILLS_CAROUSEL_BUDGET=1.50`.

8. **Batch execute** — `python3 -m common.runners.cli.cover --plan-file <plan.json> --yes` (or via `scripts/run.py`).

8. **Output**:

   ./generated/cover/<slug>/
     <medium>-v1.png
     <medium>-v2.png
     <medium>-v3.png    (if --variants 3)
     manifest.json
     style-used.md
     prompts.md

MODES

Required

  • `cover-maker --title "<text>" --medium album|book|podcast|magazine|report|deck-cover|linkedin-doc`

Recommended

  • `--creator "<name>"` — artist / author / host / org

Optional content

  • `--subtitle "<text>"` — secondary line
  • `--photo <path-or-url>` — reference image
  • `--lang en|ru` — language hint (default: auto-detect from title)

Visual

  • `--style auto|<library-
Read more
Ships withmikefluff-skills

44 skills for Claude Code that make content — and refuse to let it read like a machine made it. Prose editing that strips the tells. Prompt engineering for 40+ image, video and music models, with optional one-command execution against the real APIs.

Get the whole plugin
Stats
19
Stars
1
Forks
Maintained
Maintenance
Python
Language
MIT
License
1mo ago
Last commit
3mo ago
Created

Repo: Mikefluff/skills

Other skills on mikefluff-skills.