
The baoyu-cover-image skill generates customized article cover images using five configurable dimensions: type, palette, rendering style, text overlay, and mood across multiple aspect ratios (cinematic, widescreen, and square). It serves content creators and writers who need to produce visually cohesive cover artwork by automatically analyzing article content or accepting explicit parameters across 10 color palettes and 7 rendering techniques. The skill solves the problem of time-consuming manual cover design by combining AI generation with structured customization options that eliminate tedious back-and-forth iterations.
$ npx -y skills add jimliu/baoyu-skills --skill baoyu-cover-image --agent claude-codeInstalls into .claude/skills of the current project.
When this skill prompts the user, follow this tool-selection rule (priority order):
AskUserQuestion, request_user_input, clarify, ask_user, or any equivalent.Concrete AskUserQuestion references below are examples — substitute the local equivalent in other runtimes.
Resolve the image backend in this order:
preferred_image_backend in EXTEND.md names a backend available now → use it. ask means ask every run.auto, unset, or the pinned backend is unavailable), first match wins:
imagegen skill is in your available skills → you are in Codex and MUST use it: Skill with skill: "imagegen", passing the prompt file's content plus output path and aspect ratio. It outranks non-native skills such as baoyu-image-gen.codex exec (codex-imagegen): no native imagegen, but the codex CLI is on PATH with an active codex login → baoyu-image-gen --provider codex-cli (preferred), or the bundled wrapper if baoyu-image-gen is unavailable. Load references/codex-imagegen.md only for this branch.GenerateImage → use it (outranks non-native skills). It has no aspect-ratio parameter, so state the aspect ratio / dimensions in the description prompt; it saves to a tool-managed location, so copy the file to the expected output path (e.g., outputs/.../NN-xxx.png). Reference images go in reference_image_paths.image_generate) → use it the same way.baoyu-image-gen) → use it.⛔ Raster only: never substitute SVG, HTML/CSS, canvas, or other code-based rendering for a raster image, even for diagram-like content. If no raster backend resolves, go to step 4.
⛔ No bitmap text patching: never use ImageMagick, Pillow, Canvas, SVG, HTML/CSS, OCR scripts, or any other overlay to cover, rewrite, erase, stroke, or replace title/subtitle text inside an already generated cover image. Regenerate from a corrected prompt, switch to a lower-text or no-title variant, or ask the user which imperfect candidate to keep.
Prompt file (hard): before invoking any backend, write each image's full, final prompt to its own file under prompts/ (NN-{type}-[slug].md) and pass that file (or its content) to the backend. It is the reproducibility record and lets you switch backends without rewriting prompts.
Change the pinned backend via ## Changing Preferences below. Tool names above are examples; use the local equivalent in other runtimes.
Default: confirm before generation.
EXTEND.md defaults, and any documented auto-selection are recommendation inputs only — none authorizes skipping confirmation.--quick, "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent. quick_mode: true in EXTEND.md counts as a standing explicit opt-out — set it only when you want every run to skip Step 2.| Option | Description |
|---|---|
--type <name> | hero, conceptual, typography, metaphor, scene, minimal |
--palette <name> | warm, elegant, cool, dark, earth, vivid, pastel, mono, retro, duotone, macaron |
--rendering <name> | flat-vector, hand-drawn, painterly, digital, pixel, chalk, screen-print |
--style <name> | Preset shorthand (see Style Presets) |
--text <level> | none, title-only, title-subtitle, text-rich |
--mood <level> | subtle, balanced, bold |
--font <name> | clean, handwritten, serif, display |
--aspect <ratio> | 16:9 (default), 2.35:1, 4:3, 3:2, 1:1, 3:4 |
--lang <code> | Title language (en, zh, ja, etc.) |
--no-title | Alias for --text none |
--quick | Skip confirmation (and first-time setup when no EXTEND.md), use auto-selection |
--ref <files...> | Reference images for style/composition guidance |
| Dimension | Default | Details |
|---|---|---|
| Type | auto | types.md |
| Palette | auto | palettes/ |
| Rendering | auto | renderings/ |
| Text | title-only | dimensions/text.md |
| Mood | balanced | dimensions/mood.md |
| Font | clean | dimensions/font.md |
Values are listed in Options. Auto-selection: references/auto-selection.md. Compatibility matrices: references/compatibility.md. Icon vocabulary: references/visual-elements.md.
Output directory per default_output_dir preference:
same-dir: {article-dir}/imgs-subdir: {article-dir}/imgs/independent (default): cover-image/{topic-slug}/<output-dir>/
├── source-{slug}.{ext} # Source files
├── refs/ # Reference images (if provided)
│ ├── ref-01-{slug}.{ext}
│ └── ref-01-{slug}.md # Description file
├── prompts/cover.md # Generation prompt
└── cover.png # Output image
Slug: 2-4 words, kebab-case. Conflict: append -YYYYMMDD-HHMMSS
Cover Image Progress:
- [ ] Step 0: Check preferences (EXTEND.md) ⛔ BLOCKING unless --quick
- [ ] Step 1: Analyze content + save refs + determine output dir
- [ ] Step 2: Confirm options (6 dimensions) ⚠️ unless --quick
- [ ] Step 3: Create prompt
- [ ] Step 4: Generate image
- [ ] Step 5: Completion report
First match wins:
| Priority | Path | Scope |
|---|---|---|
| 1 | .baoyu-skills/baoyu-cover-image/EXTEND.md | Project |
| 2 | ${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-cover-image/EXTEND.md | XDG |
| 3 | $HOME/.baoyu-skills/baoyu-cover-image/EXTEND.md | User home |
--quick or equivalent wording per the Confirmation Policy) → skip setup and use built-in defaults: no watermark, dimensions auto-selected, default_output_dir: independent, language from content. Do not prompt, do not create EXTEND.md. For a run with no one to answer (cron, CI), also pass --aspect so Step 2 asks nothing.source.md)People in reference images who should appear in the cover:
--ref (default): copy image to refs/, pass via --ref at generation. No description file needed.--ref (Jimeng, Seedream 3.0): create refs/ref-NN-{slug}.md with per-character description (hair, glasses, skin tone, clothing); embed as MUST/REQUIRED instructions in prompt text.Hard gate per the Confirmation Policy (opt-out: --quick / quick_mode: true / equivalent wording in the current request).
MUST use AskUserQuestion (interactive selection, not plain-text tables): up to 4 questions in one call (Type, Palette, Rendering, Font + Settings), each with the recommended option first plus reason. --quick / quick_mode still asks aspect ratio unless --aspect is given; all 6 dimensions + --aspect specified skips everything. Full flow: references/workflow/confirm-options.md.
Save to prompts/cover.md per references/workflow/prompt-template.md.
references: only files saved to refs/ (verify test -f refs/ref-NN-{slug}.{ext}); verbally extracted style → omit references, describe in body.cover.png if regenerating## Image Generation Tools.prompts/01-cover-[slug].md (hard requirement) BEFORE invoking the backend.direct → pass via --ref (ref-capable backend); style/palette → extract traits, append to prompt.codex-imagegen, see references/codex-imagegen.md.Cover Generated!
Topic: [topic]
Type: [type] | Palette: [palette] | Rendering: [rendering]
Text: [text] | Mood: [mood] | Font: [font] | Aspect: [ratio]
Title: [title or "visual only"]
Language: [lang] | Watermark: [enabled/disabled]
References: [N images or "extracted style" or "none"]
Location: [directory path]
Files:
✓ source-{slug}.{ext}
✓ prompts/cover.md
✓ cover.png
| Action | Steps |
|---|---|
| Regenerate | Backup → Update prompt file FIRST → Regenerate |
| Change dimension | Backup → Confirm new value → Update prompt → Regenerate |
Text correction: never patch a misspelled, garbled, or weak title/subtitle in the bitmap with code. Write a new prompt file and a new output path so the flawed candidate is kept for comparison. Post-processing is limited to crop, resize, compression, or format conversion that doesn't alter text or composition.
EXTEND.md lives at the path from Step 0. Edit it directly (schema: references/config/preferences-schema.md; watermark: references/config/watermark-guide.md), or delete it / ask "reconfigure baoyu-cover-image preferences" / "重新配置" to re-run first-time setup. Common edits:
preferred_image_backend: auto (default; runtime-native wins, else the only installed backend, ask if multiple non-native) | codex-imagegen | baoyu-image-gen | ask (confirm every run)watermark.enabled: true, preferred_type, preferred_palette, preferred_rendering, default_aspect, quick_mode: true, language — shift auto-selection defaults and the confirmation flow.Sponsors