JimLiu

baoyu-cover-image

@JimLiu/baoyu-cover-image
JimLiu
603
61 forks
Updated 1/18/2026
View on GitHub

Generate elegant cover images for articles. Analyzes content and creates eye-catching hand-drawn style cover images with multiple style options. Use when user asks to "generate cover image", "create article cover", or "make a cover for article".

Installation

$skills install @JimLiu/baoyu-cover-image
Claude Code
Cursor
Copilot
Codex
Antigravity

Details

Pathskills/baoyu-cover-image/SKILL.md
Branchmain
Scoped Name@JimLiu/baoyu-cover-image

Usage

After installing, this skill will be available to your AI coding assistant.

Verify installation:

skills list

Skill Instructions


name: baoyu-cover-image description: Generate elegant cover images for articles. Analyzes content and creates eye-catching hand-drawn style cover images with multiple style options. Use when user asks to "generate cover image", "create article cover", or "make a cover for article".

Cover Image Generator

Generate hand-drawn style cover images for articles with multiple style options.

Usage

# From markdown file (auto-select style based on content)
/baoyu-cover-image path/to/article.md

# Specify a style
/baoyu-cover-image path/to/article.md --style tech
/baoyu-cover-image path/to/article.md --style warm
/baoyu-cover-image path/to/article.md --style bold

# Without title text
/baoyu-cover-image path/to/article.md --no-title

# Combine options
/baoyu-cover-image path/to/article.md --style minimal --no-title

# From direct text input
/baoyu-cover-image
[paste content or describe the topic]

# Direct input with style
/baoyu-cover-image --style playful
[paste content]

Options

OptionDescription
--style <name>Specify cover style (see Style Gallery below)
--aspect <ratio>Aspect ratio: 2.35:1 (cinematic, default), 16:9 (widescreen), 1:1 (social)
--lang <code>Output language for title text (en, zh, ja, etc.)
--no-titleGenerate cover without title text (visual only)

Style Gallery

StyleDescription
elegant (Default)Refined, sophisticated, understated
techModern, clean, futuristic
warmFriendly, approachable, human-centered
boldHigh contrast, attention-grabbing, energetic
minimalUltra-clean, zen-like, focused
playfulFun, creative, whimsical
natureOrganic, calm, earthy
retroVintage, nostalgic, classic

Detailed style definitions: references/styles/<style>.md

Auto Style Selection

When no --style is specified, the system analyzes content to select the best style:

Content SignalsSelected Style
AI, coding, tech, digital, algorithmtech
Personal story, emotion, growth, lifewarm
Controversial, urgent, must-read, warningbold
Simple, zen, focus, essentialminimal
Fun, easy, beginner, casual, tutorialplayful
Nature, eco, wellness, health, organicnature
History, classic, vintage, old, traditionalretro
Business, professional, strategy, analysiselegant

File Management

With Article Path

Save to [source-name-no-ext]/cover-image/ subdirectory in the same folder as the article:

path/to/
├── article.md
└── article/
    └── cover-image/
        ├── prompts/
        │   └── cover.md
        └── cover.png

Example: /posts/ai-future.md/posts/ai-future/cover-image/

Without Article Path (Pasted Content)

Save to ./cover-image/[topic-slug]/:

cover-image/
└── ai-future/
    ├── source.md           # Saved pasted content
    ├── prompts/
    │   └── cover.md
    └── cover.png

Directory Backup

If target directory exists, rename existing to <dirname>-backup-YYYYMMDD-HHMMSS

Workflow

Step 1: Analyze Content

  1. Save source content (if not already a file):

    • If user provides a file path: use as-is
    • If user pastes content: save to source.md in target directory
  2. Extract key information:

    • Main topic: What is the article about?
    • Core message: What's the key takeaway?
    • Tone: Serious, playful, inspiring, educational?
    • Keywords: Identify style-signaling words
  3. Language detection:

    • Detect source language from content
    • Detect user language from conversation context
    • Note if source_language ≠ user_language (will ask in Step 3)

Step 2: Determine Options

  1. Style selection:

    • If --style specified, use that style
    • Otherwise, scan content for style signals and auto-select 3 candidates
    • Default to elegant if no clear signals
  2. Aspect ratio:

    • If --aspect specified, use that ratio
    • Otherwise, prepare options: 2.35:1 (cinematic), 16:9 (widescreen), 1:1 (social)

Step 3: Confirm Options

Purpose: Let user confirm all options in a single step before generation.

IMPORTANT: Present ALL options in a single confirmation step using AskUserQuestion. Do NOT interrupt workflow with multiple separate confirmations.

Determine which questions to ask:

QuestionWhen to Ask
StyleAlways (required)
Aspect ratioAlways (offer common options)
LanguageOnly if source_language ≠ user_language

Present options (use AskUserQuestion with all applicable questions):

Question 1 (Style) - always:

  • Style A (recommended): [style name] - [brief description]
  • Style B: [style name] - [brief description]
  • Style C: [style name] - [brief description]
  • Custom: Provide custom style reference

Question 2 (Aspect) - always:

  • 2.35:1 Cinematic (Recommended) - ultra-wide, dramatic
  • 16:9 Widescreen - standard video/presentation
  • 1:1 Square - social media optimized

Question 3 (Language) - only if source ≠ user language:

  • [Source language] (matches content)
  • [User language] (your preference)

Language handling:

  • If source language = user language: Just inform user (e.g., "Title will be in Chinese")
  • If different: Ask which language to use for title text

Step 4: Generate Cover Concept

Create a cover image concept based on selected style:

Title (if included, max 8 characters):

  • Distill the core message into a punchy headline
  • Use hooks: numbers, questions, contrasts, pain points
  • Skip if --no-title flag is used

Visual Elements:

  • Style-appropriate imagery and icons
  • 1-2 symbolic elements representing the topic
  • Metaphors or analogies that fit the style

Step 5: Create Prompt File

Save prompt to prompts/cover.md with confirmed options.

All prompts are written in the user's confirmed language preference.

Prompt Format:

Cover theme: [topic in 2-3 words]
Style: [selected style name]
Aspect ratio: [confirmed aspect ratio]

[If title included:]
Title text: [8 characters or less, in confirmed language]
Subtitle: [optional, in confirmed language]

Visual composition:
- Main visual: [description matching style]
- Layout: [positioning based on title inclusion and aspect ratio]
- Decorative elements: [style-appropriate elements]

Color scheme:
- Primary: [style primary color]
- Background: [style background color]
- Accent: [style accent color]

Style notes: [specific style characteristics to emphasize]

[If no title:]
Note: No title text, pure visual illustration only.

Step 6: Generate Image

Image Generation Skill Selection:

  1. Check available image generation skills
  2. If multiple skills available, ask user to choose

Generation: Call selected image generation skill with prompt file, output path, and confirmed aspect ratio.

Step 7: Output Summary

Cover Image Generated!

Topic: [topic]
Style: [style name]
Aspect: [aspect ratio]
Title: [cover title] (or "No title - visual only")
Language: [confirmed language]
Location: [output path]

Preview the image to verify it matches your expectations.

Notes

  • Cover should be instantly understandable at small preview sizes
  • Title (if included) must be readable and impactful
  • Visual metaphors work better than literal representations
  • Maintain style consistency throughout the cover
  • Image generation typically takes 10-30 seconds
  • Title text uses user's confirmed language preference
  • Aspect ratio: 2.35:1 for cinematic/dramatic, 16:9 for widescreen, 1:1 for social media

Extension Support

Custom styles and configurations via EXTEND.md.

Check paths (priority order):

  1. .baoyu-skills/baoyu-cover-image/EXTEND.md (project)
  2. ~/.baoyu-skills/baoyu-cover-image/EXTEND.md (user)

If found, load before Step 1. Extension content overrides defaults.