Install
$ agentstack add skill-mikefluff-skills-cover-maker ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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
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)
- Resolve metadata:
- Required:
--title - Strongly recommended:
--creator(album artist / book author / podcast host / report org) - Optional:
--subtitle,--photo,--brand-colors ""
- 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
- 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: explicit from the 13-style library (BIOTECH / CYBER-NOIR / BRUTALIST / VAPORWAVE / MILITARY / SCIENTIFIC / STREETWEAR / ART-DECO / BLUEPRINT / GRUNGE / GLAMOUR / NATURE / ADVENTURE).--style custom "": free-text override passed verbatim.
- Pick model — see
references/model-picker.md:
- Heavy embedded text (covers always have text) →
ideogram-3-quality(default) orgpt-image-2. - Photo reference + identity →
nano-banana-pro. - Photo reference + brand palette →
flux-2-pro. - Photoreal magazine-style cover →
nano-banana-pro.
- Compose ONE LLM call — load [
common/visual-prompt-library/system-prompt.md](../../common/visual-prompt-library/system-prompt.md) (the shared SYSTEM_PROMPT) andbuildUserMessage(opts)with:
``` Mode: cover Number of images to generate (N): Aspect ratio: Topic / theme: Title: "" Creator: "" Subtitle (optional): "" Medium: Visual style: [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=. 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.
- Assemble plan.json — items
[{index, label, prompt, kwargs:{size, image_url}}].promptis LLM-returned text.image_urlpoints to--photowhen provided.
- Estimate cost + confirm — inherits
SKILLS_CAROUSEL_BUDGET=1.50.
- Batch execute —
python3 -m common.runners.cli.cover --plan-file --yes(or viascripts/run.py).
- Output:
`` ./generated/cover// -v1.png -v2.png -v3.png (if --variants 3) manifest.json style-used.md prompts.md ``
MODES
Required
cover-maker --title "" --medium album|book|podcast|magazine|report|deck-cover|linkedin-doc
Recommended
--creator ""— artist / author / host / org
Optional content
--subtitle ""— secondary line--photo— reference image--lang en|ru— language hint (default: auto-detect from title)
Visual
--style auto|— visual style--style-mod ""— append a tweak--variants N— variants (default 2)--aspect WxH— custom aspect (overrides medium default)--model auto|— image provider
Two-pass typography (v2.11.0 fallback — opt-in only)
The default v2.14.0 chain is LLM-prompt-then-image (text rendered by the image model, baked into the picture — same chain as carousel-builder). For book covers where text must be pixel-perfect (publisher imprint precision, multilingual layouts the model can't render), opt in with:
--typeset overlay— runs the legacy two-pass: AI generates a TEXT-FREE background (per the imprint's prompt fragment) + Pillow typography composer overlays title + creator with bundled OFL fonts at the imprint's proper layout fractions.--imprint nyrb-classics|penguin-marber-grid|mit-essential-knowledge|picador-modern|faber-modernist— design-system preset for the typography composer (only with--typeset overlay).--genre literary-fiction|thriller|non-fiction|academic|memoir|poetry|...— auto-picks imprint (only with--typeset overlay). Mapping incommon/runners/cover_imprints.py:GENRE_DEFAULT_IMPRINT.- Default for all mediums:
--typeset ai(single-pass, LLM writes the prompt, image model renders title + creator inside the image).
Execution
--execute— actually generate--output— custom output--parallelism N— concurrent calls (default 2)--yes— skip cost confirmation--resume— retry failed--prompts-only— dry run
REFERENCES (load on demand)
| File | When to load | |---|---| | [references/cover-types.md](references/cover-types.md) | Step 1-2 — per-medium conventions, what fields are needed, typography expectations | | [references/aspect-presets.md](references/aspect-presets.md) | Step 2 — exact pixel dimensions per medium + platform target | | [references/composition-zones.md](references/composition-zones.md) | Step 5 — per-medium composition templates (album / book / podcast / magazine / report / deck) | | [references/imprints.md](references/imprints.md) | When --imprint is set — full per-imprint design system specs (layout fractions, typography family, palette, prompt fragment) | | [references/model-picker.md](references/model-picker.md) | Step 4 — model auto-pick, when to override | | [references/troubleshoot.md](references/troubleshoot.md) | When text renders wrong, layout fails, photo doesn't integrate |
EXAMPLES
See [examples/before-after.md](examples/before-after.md) — 3 calibration runs: album cover with reference artwork, business book cover with author photo, podcast cover with bold typographic style.
CONSTRAINTS
- Title is the dominant element. Cover composition prioritizes title legibility. Keep titles ≤6 words for best results.
- Creator name is recommended but optional — for an album with featured artists, list one main creator and put the rest in
--subtitle.
- One medium per run. Don't mix album + book in the same call. Run twice if you need both.
- One style for variants. All variants share the same anchor; they differ in stochastic interpretation, not in style.
- Embedded text quality is paramount. Default to
ideogram-3-qualityfor any text-heavy cover. The model picker enforces this.
- Photo-reference covers: pair
--photowithnano-banana-pro(identity) orflux-2-pro(brand palette transfer).
- Cost confirm ONCE per batch. Sum across variants.
- No print-bleed marks / crop guides. Output is the cover image only. For physical print: import to InDesign / Affinity Publisher for bleed + crop marks.
- Backside / spine: out of scope. Single front-cover image only.
- Never print API keys. Mask in errors.
INVOCATION HINTS
When the user says any of:
- "album cover for X", "book cover for Y", "podcast cover", "report cover"
- "magazine cover", "deck cover slide", "LinkedIn doc cover"
- "обложка для альбома / книги / подкаста / отчёта"
- "сделай обложку для X"
If the medium isn't clear from context, ask once. Default if unspecified: album (most common request).
If the user mentions a platform (Spotify → 3000×3000 album; Amazon KDP → 2:3 portrait book; Apple Podcasts → 3000×3000 podcast), bias --medium accordingly.
Defaults: --medium album --variants 2 --style auto --model auto. Without --execute, returns prompts.
This skill is distinct from:
flyer-maker— events with date/location, NOT covers with title/creatorimage-prompt— free-form image generation; this is structured coversavatar-maker— single subject portrait, NOT title-driven coverthumbnail-maker— 16:9 with bold title for content marketing, NOT artist/author covers
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Mikefluff
- Source: Mikefluff/skills
- License: MIT
- Homepage: https://www.npmjs.com/package/@mikefluff/skills
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.