agentleFS
noteditnotedit/happy-coding-agent/skills/utils/cover-image/SKILL.md

cover-image

Skill339 starsChanged 8 months agoMITView on GitHub

Generate article cover images with 5 dimensions (type, palette, rendering, text, mood). Supports cinematic (2.35:1), widescreen (16:9), and square (1:1) aspects. Use when user asks to 'generate cover image', 'create article cover', or 'make cover'.

  • Reads credentials

8 other projects use a version of this, 2 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Before writing -> Verify: test -f refs/ref-NN-{slug}.{ext}

    line 198
  2. Distinctive:

    Reference elements in body: MUST be detailed, prefixed with "MUST"/"REQUIRED", with integration approach.

    line 200
  3. Distinctive:

    OpenAI: Use ImageGen tool or API

    line 211
  4. Distinctive:

    Google: Use ImageGen tool with reference images

    line 212
  5. Distinctive:

    Title: Use exact title from user/source.

    line 252

“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Cover Image Generator

Generate elegant cover images for articles with 5-dimensional customization. Supports Chinese text rendering.

Usage

# Auto-select dimensions based on content
/cover-image path/to/article.md

# Quick mode: skip confirmation
/cover-image article.md --quick

# Specify dimensions
/cover-image article.md --type conceptual --palette warm --rendering flat-vector

# WeChat Official Account cover
/cover-image article.md --aspect 2.35:1

# Specify provider
/cover-image article.md --provider qwen

# Use style preset
/cover-image article.md --style tech-dark

# Large font for better visibility
/cover-image article.md --font-size large

# Generate multiple options
/cover-image article.md --n 3

# With reference images (Google/OpenAI only)
/cover-image article.md --ref style-ref.png

# Direct content input
/cover-image --palette mono --aspect 1:1 --quick
[paste content]

Options

OptionDescription
--type <name>hero, conceptual, typography, metaphor, scene, minimal
--palette <name>warm, elegant, cool, dark, earth, vivid, pastel, mono, retro
--rendering <name>flat-vector, hand-drawn, painterly, digital, pixel, chalk
--text <level>none, title-only, title-subtitle, text-rich
--mood <level>subtle, balanced, bold
--font <name>clean, handwritten, serif, display
--font-size <size>small, medium (default), large, xlarge
--aspect <ratio>16:9 (default), 2.35:1 (公众号封面), 4:3, 3:2, 1:1, 3:4
--provider <name>qwen (default), openai, google
--style <preset>tech-dark, tech-clean, lifestyle-warm, business-elegant, announcement-bold, minimal-zen, creative-playful, retro-vintage
--lang <code>Title language (en, zh, ja, etc.)
--no-titleAlias for --text none
--n <count>Number of images to generate (1-4)
--quickSkip confirmation, use auto-selection
--ref <files...>Reference images for style/composition guidance

Providers

ProviderModelText RenderingChinese SupportPrice
qwenqwen-image-plusExcellentNative Chinese0.2 CNY/image
openaigpt-image-1GoodLimited~$0.04/image
googlegemini-2.0-flash-expGoodLimitedFree tier available

Provider Selection Logic

  1. --provider specified -> use it
  2. Chinese title detected -> auto-select qwen
  3. Reference images provided -> use google or openai
  4. Default -> qwen

Qwen-Image (Default)

Best for Chinese text rendering. Native support for Chinese characters.

API Endpoint: https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis

Environment Variable: DASHSCOPE_API_KEY

Supported Sizes: 1664*928, 1024*1024, 928*1664, 1472*1104, 1104*1472

OpenAI

Good for English text and creative designs.

Environment Variable: OPENAI_API_KEY

Supported Sizes: 1024x1024, 1536x1024, 1024x1536

Google

Good for multimodal generation with reference images.

Environment Variable: GOOGLE_API_KEY

Supported Sizes: Various aspect ratios supported

Five Dimensions

DimensionValuesDefault
Typehero, conceptual, typography, metaphor, scene, minimalauto
Palettewarm, elegant, cool, dark, earth, vivid, pastel, mono, retroauto
Renderingflat-vector, hand-drawn, painterly, digital, pixel, chalkauto
Textnone, title-only, title-subtitle, text-richtitle-only
Moodsubtle, balanced, boldbalanced
Fontclean, handwritten, serif, displayclean

Auto-selection rules: references/auto-selection.md

Galleries

Types: hero, conceptual, typography, metaphor, scene, minimal -> Details: references/types.md

Palettes: warm, elegant, cool, dark, earth, vivid, pastel, mono, retro -> Details: references/palettes/

Renderings: flat-vector, hand-drawn, painterly, digital, pixel, chalk -> Details: references/renderings/

Text Levels: none (pure visual) | title-only (default) | title-subtitle | text-rich (with tags) -> Details: references/dimensions/text.md

Mood Levels: subtle (low contrast) | balanced (default) | bold (high contrast) -> Details: references/dimensions/mood.md

Fonts: clean (sans-serif) | handwritten | serif | display (bold decorative) -> Details: references/dimensions/font.md

File Structure

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

Workflow

Progress Checklist

Cover Image Progress:
- [ ] Step 1: Analyze content + save refs + determine output dir
- [ ] Step 2: Confirm options (6 dimensions + provider) unless --quick
- [ ] Step 3: Create prompt
- [ ] Step 4: Generate image
- [ ] Step 5: Resize for platform (if needed)
- [ ] Step 6: Completion report

Step 1: Analyze Content

  1. Save reference images (if provided) -> references/workflow/reference-images.md
  2. Save source content (if pasted, save to source.md)
  3. Analyze content: topic, tone, keywords, visual metaphors
  4. Deep analyze references: Extract specific, concrete elements
  5. Detect language: Compare source, user input
  6. Determine output directory: Per File Structure rules
  7. Auto-select provider: Based on language and references

Step 2: Confirm Options

Full confirmation flow: references/workflow/confirm-options.md

ConditionSkippedStill Asked
--quick6 dimensions + providerAspect ratio (unless --aspect)
All 6 + --aspect + --provider specifiedAllNone

Step 3: Create Prompt

Save to prompts/cover.md. Template: references/workflow/prompt-template.md

CRITICAL - References in Frontmatter:

  • Files saved to refs/ -> Add to frontmatter references list
  • Style extracted verbally (no file) -> Omit references, describe in body
  • Before writing -> Verify: test -f refs/ref-NN-{slug}.{ext}

Reference elements in body MUST be detailed, prefixed with "MUST"/"REQUIRED", with integration approach.

Step 4: Generate Image

  1. Backup existing cover.png if regenerating
  2. Select provider based on language and options
  3. Process references from prompt frontmatter:
    • direct usage -> pass reference images directly (google/openai only)
    • style/palette -> extract traits, append to prompt
  4. Generate via provider API:
    • Qwen: POST to dashscope API, poll for result
    • OpenAI: Use ImageGen tool or API
    • Google: Use ImageGen tool with reference images
  5. On failure: auto-retry once

Step 5: Resize for Platform

Resize generated image to target platform size:

PlatformTarget SizeAspect Ratio
公众号封面900x3832.35:1
博客/视频1920x108016:9
小红书1080x10801:1
手机海报1080x14403:4

Step 6: Completion Report

Cover Generated!

Provider: [provider]
Topic: [topic]
Type: [type] | Palette: [palette] | Rendering: [rendering]
Text: [text] | Mood: [mood] | Font: [font] | Aspect: [ratio]
Title: [title or "visual only"]
Language: [lang]
References: [N images or "extracted style" or "none"]
Location: [directory path]

Files:
- source-{slug}.{ext}
- prompts/cover.md
- cover.png
- cover-{platform}.png (if resized)

Composition Principles

  • Whitespace: 40-60% breathing room
  • Visual anchor: Main element centered or offset left
  • Characters: Simplified silhouettes; NO realistic humans
  • Title: Use exact title from user/source; never invent

Aspect Ratios

RatioPlatformUse Case
2.35:1微信公众号封面公众号首图,900x383px
16:9通用宽屏博客、视频封面
1:1社交媒体微博、小红书、Instagram
4:3经典比例演示文稿、传统媒体
3:2摄影标准照片风格封面
3:4竖版手机端、海报

Environment Variables

VariableRequired ForGet From
DASHSCOPE_API_KEYQwen (default)https://bailian.console.aliyun.com
OPENAI_API_KEYOpenAIhttps://platform.openai.com
GOOGLE_API_KEYGooglehttps://aistudio.google.com

References

Dimensions: text.md | mood.md | font.md Palettes: references/palettes/ Renderings: references/renderings/ Types: references/types.md Style Presets: references/style-presets.md Auto-Selection: references/auto-selection.md Visual Elements: references/visual-elements.md Workflow: confirm-options.md | prompt-template.md | reference-images.md | qwen-api.md

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.