Skip to content
Content
Skill

/flyer-maker

Turn event details (title / date / location / CTA) plus optional photo into a poster / flyer / social-event-graphic with embedded text in a chosen style. Multi-aspect: portrait, square, story, landscape, a4. Use when: 'make a flyer for X', 'event poster', 'workshop flyer',

From plugin
mikefluff-skills
1944 skills2 commands1 hook
Install
$ npx -y skills add Mikefluff/skills --skill flyer-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/flyer-maker

Context preview

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

Turn event details (title / date / location / CTA) plus optional photo into a poster / flyer / social-event-graphic with embedded text in a chosen style. Multi-aspect: portrait, square, story, landscape, a4. Use when: 'make a flyer for X', 'event poster', 'workshop flyer',

SKILL.md

flyer-maker.SKILL.md
name: flyer-maker
description: "Turn event details (title / date / location / CTA) plus optional photo into a poster / flyer / social-event-graphic with embedded text in a chosen style. Multi-aspect: portrait, square, story, landscape, a4. Use when: 'make a flyer for X', 'event poster', 'workshop flyer', 'meetup poster', 'афиша', 'плакат', 'флайер для мероприятия'."

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

<objective> End-to-end flyer / poster generator. Input: event details (title, optional date / location / CTA) plus an optional user-supplied photo. Output: N single-image variants at different aspect ratios, each with the event details embedded as text + the photo integrated (if provided) + a consistent visual style.

This skill orchestrates three lower-level components: 1. `image-prompt` style anchor + composition-zone vocabulary 2. `common/runners` execute layer — multi-aspect batch generation via the chosen image provider 3. `common/style-library/carousel/` — reuses the 24 carousel visual styles as the visual vocabulary (poster styles overlap heavily with editorial carousel styles)

Use when the user wants a finished flyer image — not just a prompt. Without `--execute`, returns the assembled prompts; with `--execute`, generates the actual PNGs.

This skill does NOT:

  • Generate animated flyers (use `reel-builder` for motion)
  • Render print-ready CMYK / 300DPI files — outputs are RGB at standard digital resolutions (1080 / 1240 px). For print: open the PNG in a real DTP tool (Affinity / InDesign / Photoshop) and convert.
  • Compose multi-image collages — single image per aspect.
  • Generate QR codes (deferred to v2.5.x — if you need a QR, generate separately and overlay manually).
  • Search Eventbrite / Meetup / Luma for event metadata — you provide title / date / location explicitly.
  • Replace a designer's judgment on layout — the composition zones are starter conventions; tweak via prompt iteration.

</objective>

ROLE

Read the event details + optional photo + optional style → pick a model (text-friendly + multi-ref-capable if photo provided) → assemble per-aspect prompts with composition zones filled in → batch execute via the image provider → save PNGs + manifest → print paths.

PIPELINE

1. **Resolve event details**:

  • Required: `--title`
  • Strongly recommended: at least one of `--date`, `--location`, or `--cta` (a flyer without a single detail is just a styled portrait)
  • Optional: `--subtitle`, `--time` (can be merged with date)

2. **Resolve photo** (optional):

  • `--photo <path-or-url>`: passed as reference image to the chosen model.
  • Multi-ref capable models needed (Nano Banana Pro / Flux Kontext / gpt-image-2 / Ideogram 3 / Seedream 5.0).
  • If `--photo` provided AND `--model auto`: skill picks a ref-capable model.
  • If `--photo` provided AND `--model <slug>` that can't handle refs: warn + auto-substitute, or exit if user passed `--strict`.

3. **Resolve style** — see `references/event-details.md`:

  • `--style <library-id>`: load from `common/style-library/carousel/<id>.md`. Use the `Style anchor (text-in-image mode)` block (flyers always have text).
  • `--style auto`: pick from library based on the event type implied by the title + the chosen tone (formal, casual, indie, corporate). Algorithm same as carousel-builder.
  • `--style-mod "<override>"`: append a tweak to the anchor.

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

  • `--model auto`:
  • Photo provided + identity preserve critical (named speaker) → `nano-banana-pro`
  • Photo provided + brand-style transfer needed → `flux-2-pro` or `seedream-5`
  • Photo provided + Latin/CJK text needed → `gpt-image-2`
  • No photo + text-heavy → `ideogram-3-quality`
  • No photo + photoreal style → `nano-banana-pro` or `flux-2-pro`
  • `--model <slug>`: explicit override.
  • ONE model for all aspects (consistency across the family).

5. **Build per-aspect prompts** — see `references/composition-zones.md`: Each aspect has a composition template with three zones:

  • **Headline zone** (top 20-25%): title in large bold typography
  • **Visual zone** (middle 50-55%): photo integration if provided, else style anchor visual
  • **Details zone** (bottom 25-30%): date + location + CTA in smaller typography

The prompt assembly per aspect:

   <style anchor (text-in-image mode)>

   Composition: <aspect-specific zone template>

   Embed text:
     Headline: "<TITLE>"
     <Subtitle if present>
     <Date if present>
     <Location if present>
     <CTA if present>

   Aspect ratio: <portrait|square|story|landscape|a4>
   Size: <pixel dimensions>

6. **Estimate cost + confirm** — sum aspects × variants. Under default carousel budget ($1.50) → no prompt; over → ask once.

7. **Batch execute** — `common.runners.batch.run_batch()`:

  • Parallelism default 2 (each aspect = ~5-10s API call; running 3 in parallel rarely problematic but rate-limit safety)
  • Manifest updated after each aspect
  • `--resume` retries only failed aspects

8. **Output**:

   ./generated/flyer/<event-slug>/
     portrait.png            (1080×1350)
     square.png              (1080×1080)
     story.png               (1080×1920)
     landscape.png           (1920×1080, if requested)
     a4.png                  (1240×1754, if requested)
     manifest.json
     style-used.md
     prompts.md

stdout last lines:

   Flyer: ./generated/flyer/<event-slug>/  (N/M aspects succeeded)
   Files: portrait.png · square.png · story.png

MODES

Required

  • `flyer-maker --title "<text>"`

Strongly recommended (provide ≥1)

  • `--date "<text>"` — free-form date / time
  • `--location "<text>"`
  • `--cta "<text>"` — call to action (e.g., "Tickets: link in bio", "RSVP via DM", "Free entry")

Optional content

  • `--subtitle "<text>"` — secondary line under the title
  • `--photo <path-or-url>` — reference image to emb
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.