Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 9 color palettes and 6 rendering styles. 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".
.claude/skills/freestylefly-canghe-cover-image/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 457% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 337% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 158% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 4% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -16% | 0% |
Generate elegant cover images for articles with 5-dimensional customization.
bash# Auto-select dimensions based on content /canghe-cover-image path/to/article.md # Quick mode: skip confirmation /canghe-cover-image article.md --quick # Specify dimensions /canghe-cover-image article.md --type conceptual --palette warm --rendering flat-vector # Style presets (shorthand for palette + rendering) /canghe-cover-image article.md --style blueprint # With reference images /canghe-cover-image article.md --ref style-ref.png # Direct content input /canghe-cover-image --palette mono --aspect 1:1 --quick [paste content]
| Option | Description | |--------|-------------| | --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 | | --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, use auto-selection | | --ref <files...> | Reference images for style/composition guidance |
| Dimension | Values | Default | |-----------|--------|---------| | Type | hero, conceptual, typography, metaphor, scene, minimal | auto | | Palette | warm, elegant, cool, dark, earth, vivid, pastel, mono, retro | auto | | Rendering | flat-vector, hand-drawn, painterly, digital, pixel, chalk | auto | | Text | none, title-only, title-subtitle, text-rich | title-only | | Mood | subtle, balanced, bold | balanced | | Font | clean, handwritten, serif, display | clean |
Auto-selection rules: references/auto-selection.md
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
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 imageSlug: 2-4 words, kebab-case. Conflict: append -YYYYMMDD-HHMMSS
Cover Image Progress:
- [ ] Step 0: Check preferences (EXTEND.md) ⛔ BLOCKING
- [ ] 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 reportInput → [Step 0: Preferences] ─┬─ Found → Continue
└─ Not found → First-Time Setup ⛔ BLOCKING → Save EXTEND.md → Continue
↓
Analyze + Save Refs → [Output Dir] → [Confirm: 6 Dimensions] → Prompt → Generate → Complete
↓
(skip if --quick or all specified)Check EXTEND.md existence (priority: project → user):
bashtest -f .canghe-skills/canghe-cover-image/EXTEND.md && echo "project" test -f "$HOME/.canghe-skills/canghe-cover-image/EXTEND.md" && echo "user"
| Result | Action | |--------|--------| | Found | Load, display summary → Continue | | Not found | ⛔ Run first-time setup (references/config/first-time-setup.md) → Save → Continue |
CRITICAL: If not found, complete setup BEFORE any other steps or questions.
source.md)Full confirmation flow: references/workflow/confirm-options.md
| Condition | Skipped | Still Asked | |-----------|---------|-------------| | --quick or quick_mode: true | 6 dimensions | Aspect ratio (unless --aspect) | | All 6 + --aspect specified | All | None |
Save to prompts/cover.md. Template: references/workflow/prompt-template.md
CRITICAL - References in Frontmatter:
refs/ → Add to frontmatter references listreferences, describe in bodytest -f refs/ref-NN-{slug}.{ext}Reference elements in body MUST be detailed, prefixed with "MUST"/"REQUIRED", with integration approach.
cover.png if regeneratingdirect usage → pass via --ref (use ref-capable backend)style/palette → extract traits, append to promptCover 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 |
Custom configurations via EXTEND.md. See Step 0 for paths.
Supports: Watermark | Preferred dimensions | Default aspect/output | Quick mode | Custom palettes | Language
Schema: references/config/preferences-schema.md
Dimensions: text.md | mood.md | font.md Palettes: references/palettes/ Renderings: references/renderings/ Types: references/types.md Auto-Selection: references/auto-selection.md Style Presets: references/style-presets.md Compatibility: references/compatibility.md Visual Elements: references/visual-elements.md Workflow: confirm-options.md | prompt-template.md | reference-images.md Config: preferences-schema.md | first-time-setup.md | watermark-guide.md
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 32,356 | 7,734 | -76% | 1 | 1 | 0% | 6,208 | 2,994 | -52% | 0 | 0 | — |
case-02 | fail→fail | 32,565 | 8,265 | -75% | 1 | 1 | 0% | 4,718 | 3,032 | -36% | 0 | 0 | — |
case-03 | fail→fail | 5,153 | 6,673 | +29% | 1 | 1 | 0% | 389 | 2,919 | +650% | 0 | 0 | — |
case-04 | fail→fail | 6,406 | 9,500 | +48% | 1 | 1 | 0% | 878 | 3,984 | +354% | 0 | 0 | — |
case-05 | fail→fail | 3,089 | 11,523 | +273% | 1 | 1 | 0% | 468 | 4,423 | +845% | 0 | 0 | — |
case-06 | pass→pass | 7,612 | 14,735 | +94% | 1 | 1 | 0% | 1,270 | 5,446 | +329% | 0 | 0 | — |
case-07 | fail→pass | 3,897 | 5,522 | +42% | 1 | 1 | 0% | 596 | 3,321 | +457% | 0 | 0 | — |
case-08 | fail→pass | 3,937 | 2,011 | -49% | 1 | 1 | 0% | 628 | 2,742 | +337% | 0 | 0 | — |
case-09 | fail→pass | 7,566 | 2,388 | -68% | 1 | 1 | 0% | 1,101 | 2,844 | +158% | 0 | 0 | — |
case-10 | fail→pass | 16,982 | 2,768 | -84% | 1 | 1 | 0% | 2,809 | 2,935 | +4% | 0 | 0 | — |
case-11 | fail→pass | 19,756 | 2,192 | -89% | 1 | 1 | 0% | 3,420 | 2,883 | -16% | 0 | 0 | — |
case-12 | fail→pass | 10,667 | 2,605 | -76% | 1 | 1 | 0% | 1,597 | 2,927 | +83% | 0 | 0 | — |
case-13 | fail→pass | 8,101 | 1,654 | -80% | 1 | 1 | 0% | 1,175 | 2,653 | +126% | 0 | 0 | — |
case-14 | fail→pass | 10,745 | 1,908 | -82% | 1 | 1 | 0% | 1,363 | 2,677 | +96% | 0 | 0 | — |
case-15 | fail→pass | 5,432 | 2,186 | -60% | 1 | 1 | 0% | 679 | 2,841 | +318% | 0 | 0 | — |
case-16 | fail→pass | 14,047 | 1,672 | -88% | 1 | 1 | 0% | 2,143 | 2,699 | +26% | 0 | 0 | — |
case-17 | fail→pass | 27,073 | 1,578 | -94% | 1 | 1 | 0% | 4,545 | 2,654 | -42% | 0 | 0 | — |
case-18 | fail→pass | 13,960 | 1,623 | -88% | 1 | 1 | 0% | 1,927 | 2,658 | +38% | 0 | 0 | — |
case-19 | pass→pass | 5,628 | 1,739 | -69% | 1 | 1 | 0% | 731 | 2,686 | +267% | 0 | 0 | — |
case-20 | pass→pass | 8,370 | 1,642 | -80% | 1 | 1 | 0% | 1,044 | 2,683 | +157% | 0 | 0 | — |
case-21 | fail→pass | 7,855 | 3,248 | -59% | 1 | 1 | 0% | 1,030 | 2,969 | +188% | 0 | 0 | — |
case-22 | fail→pass | 10,118 | 2,195 | -78% | 1 | 1 | 0% | 1,406 | 2,733 | +94% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +64 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.