{"slug":"jimliu-baoyu-skills-baoyu-cover-image","title":"baoyu-cover-image","description":"Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 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\".","category":"\u526a\u8f91\u4e0e\u5305\u88c5","tags":["agent-skills","claude-skills","codex-skills","openclaw-skills"],"author":"JimLiu","source_url":"https://github.com/JimLiu/baoyu-skills/blob/1567581c26ec29f4216c6e6835415bf30343b0e3/skills/baoyu-cover-image/SKILL.md","license":"MIT","status":"published","verification":"source_reviewed","verification_notes":"\u81ea\u52a8\u5bfc\u5165\uff1a\u6765\u6e90\u3001\u8bb8\u53ef\u3001\u5305\u7ed3\u6784\u5df2\u6838\u5bf9\uff1b\u672a\u6267\u884c\u5305\u5185\u811a\u672c\u3002","revision":"fe1fbc0865ef4db1aded736f6c600ee4","created_at":"2026-10-28T07:42:12+00:00","updated_at":"2026-10-28T07:42:12+00:00","source_repo":"JimLiu/baoyu-skills","source_path":"skills/baoyu-cover-image/SKILL.md","source_commit":"1567581c26ec29f4216c6e6835415bf30343b0e3","source_updated_at":"2026-09-10T15:13:43Z","stars":27020,"proxy_score":null,"score":null,"grade":null,"dimensions":{},"evaluation":{},"installs":0,"platforms":["universal"],"formats":["universal"],"category_slug":"packaging","category_name":"\u526a\u8f91\u4e0e\u5305\u88c5","usage_guide":{},"read_url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image","skill_url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/SKILL.md","download_url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/download","install_url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/install","files":[{"path":"SKILL.md","bytes":17931,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/SKILL.md"},{"path":"references/auto-selection.md","bytes":2837,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/auto-selection.md"},{"path":"references/base-prompt.md","bytes":5452,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/base-prompt.md"},{"path":"references/codex-imagegen.md","bytes":3715,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/codex-imagegen.md"},{"path":"references/compatibility.md","bytes":2421,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/compatibility.md"},{"path":"references/config/first-time-setup.md","bytes":5950,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/config/first-time-setup.md"},{"path":"references/config/preferences-schema.md","bytes":8948,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/config/preferences-schema.md"},{"path":"references/config/watermark-guide.md","bytes":2217,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/config/watermark-guide.md"},{"path":"references/dimensions/font.md","bytes":4788,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/dimensions/font.md"},{"path":"references/dimensions/mood.md","bytes":4366,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/dimensions/mood.md"},{"path":"references/dimensions/text.md","bytes":3167,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/dimensions/text.md"},{"path":"references/palettes/cool.md","bytes":743,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/cool.md"},{"path":"references/palettes/dark.md","bytes":753,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/dark.md"},{"path":"references/palettes/duotone.md","bytes":1407,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/duotone.md"},{"path":"references/palettes/earth.md","bytes":734,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/earth.md"},{"path":"references/palettes/elegant.md","bytes":729,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/elegant.md"},{"path":"references/palettes/macaron.md","bytes":769,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/macaron.md"},{"path":"references/palettes/mono.md","bytes":716,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/mono.md"},{"path":"references/palettes/pastel.md","bytes":715,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/pastel.md"},{"path":"references/palettes/retro.md","bytes":933,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/retro.md"},{"path":"references/palettes/vivid.md","bytes":751,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/vivid.md"},{"path":"references/palettes/warm.md","bytes":721,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/palettes/warm.md"},{"path":"references/renderings/chalk.md","bytes":1086,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/renderings/chalk.md"},{"path":"references/renderings/digital.md","bytes":1080,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/renderings/digital.md"},{"path":"references/renderings/flat-vector.md","bytes":1241,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/renderings/flat-vector.md"},{"path":"references/renderings/hand-drawn.md","bytes":1036,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/renderings/hand-drawn.md"},{"path":"references/renderings/painterly.md","bytes":1045,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/renderings/painterly.md"},{"path":"references/renderings/pixel.md","bytes":961,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/renderings/pixel.md"},{"path":"references/renderings/screen-print.md","bytes":1502,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/renderings/screen-print.md"},{"path":"references/style-presets.md","bytes":1521,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/style-presets.md"},{"path":"references/types.md","bytes":1376,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/types.md"},{"path":"references/visual-elements.md","bytes":3274,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/visual-elements.md"},{"path":"references/workflow/confirm-options.md","bytes":5132,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/workflow/confirm-options.md"},{"path":"references/workflow/prompt-template.md","bytes":11343,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/workflow/prompt-template.md"},{"path":"references/workflow/reference-images.md","bytes":4562,"url":"https://shiliuai.cn/api/v2/skills/jimliu-baoyu-skills-baoyu-cover-image/files/references/workflow/reference-images.md"}],"content":"---\nname: baoyu-cover-image\ndescription: Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 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\".\nversion: 1.117.5\nmetadata:\n  openclaw:\n    homepage: https://github.com/JimLiu/baoyu-skills#baoyu-cover-image\n---\n\n# Cover Image Generator\n\nGenerate elegant cover images for articles with 5-dimensional customization.\n\n## User Input Tools\n\nWhen this skill prompts the user, follow this tool-selection rule (priority order):\n\n1. **Prefer built-in user-input tools** exposed by the current agent runtime \u2014 e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent.\n2. **Fallback**: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question.\n3. **Batching**: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.\n\nConcrete `AskUserQuestion` references below are examples \u2014 substitute the local equivalent in other runtimes.\n\n## Image Generation Tools\n\nWhen this skill needs to render an image, resolve the backend in this order:\n\n1. **Current-request override** \u2014 if the user names a specific backend in the current message, use it.\n2. **Saved preference** \u2014 if `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it.\n3. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available):\n   - **Codex (`imagegen`)** \u2014 first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: \"imagegen\"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-image-gen`) unless the user has explicitly pinned a different `preferred_image_backend`.\n   - **Codex via `codex exec` (`codex-imagegen`)** \u2014 if the current runtime exposes no native `imagegen` skill but the `codex` CLI is on `PATH` with an active `codex login`, route through `baoyu-image-gen --provider codex-cli` (preferred), or \u2014 if baoyu-image-gen is unavailable \u2014 invoke the bundled wrapper directly. Details, parameters, and the runtime-discovery procedure live in [references/codex-imagegen.md](references/codex-imagegen.md) \u2014 load that file only when this branch is selected.\n   - **Cursor (`GenerateImage`)** \u2014 if the runtime exposes a native `GenerateImage` tool, you are running inside Cursor and it outranks any non-native skill the same way Codex `imagegen` does. Two hard caveats: (a) it has no aspect-ratio parameter \u2014 state the target aspect ratio / dimensions explicitly in the prompt text passed as `description`; (b) it does not accept an output directory \u2014 it saves to a tool-managed location, so after generation copy/move the file to the skill's expected output path (e.g., `outputs/.../NN-xxx.png`). Reference images go in `reference_image_paths`.\n   - **Other runtime-native tools** \u2014 if the runtime exposes a different native image tool (e.g., Hermes `image_generate`), use it the same way.\n   - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-image-gen`), use it.\n   - Otherwise (multiple non-native backends with no runtime-native tool), ask the user once \u2014 batch with any other initial questions.\n4. **If none are available**, tell the user and ask how to proceed.\n\n**\u26d4 Never substitute SVG, HTML, canvas, or other code-based rendering for raster image generation.** Codex `imagegen`'s own description says it should be used \"when the output should be a bitmap asset rather than repo-native code or vector.\" If you cannot resolve a raster backend via step 3, fall through to step 4 and ask the user \u2014 do **not** silently emit SVG, write inline `<svg>` markup, or produce HTML/CSS art as a substitute. This applies even if the article/section seems \"diagram-like\": the consumer skill calling this rule has already decided that a raster image is what it needs.\n\n**\u26d4 Never repair rendered text by painting over a generated bitmap.** Do not use ImageMagick, Pillow, Canvas, SVG, HTML/CSS, OCR scripts, or any other programmatic overlay to cover, rewrite, erase, stroke, or replace title/subtitle text inside an already generated cover image. If text is wrong or unclear, regenerate from a corrected prompt, switch to a lower-text or no-title variant, or ask the user which imperfect candidate to keep.\n\nSetting `preferred_image_backend: ask` forces the step-3 prompt every run regardless of available backends. Users change the pinned backend via the `## Changing Preferences` section below.\n\n**Prompt file requirement (hard)**: write each image's full, final prompt to a standalone file under `prompts/` (naming: `NN-{type}-[slug].md`) BEFORE invoking any backend. The backend receives the prompt file (or its content); the file is the reproducibility record and lets you switch backends without regenerating prompts.\n\nConcrete tool names (`imagegen`, `GenerateImage`, `image_generate`, `baoyu-image-gen`) above are examples \u2014 substitute the local equivalents under the same rule.\n\n## Confirmation Policy\n\nDefault behavior: **confirm before generation**.\n\n- Treat explicit skill invocation, a file path, matched keywords/presets, `EXTEND.md` defaults, and any documented auto-selection as **recommendation inputs only**. None of them authorizes skipping confirmation.\n- Do **not** start Step 3 or Step 4 until the user confirms the dimensions / aspect / language / backend choices.\n- Skip confirmation only when the current request explicitly says to do so, for example: `--quick`, \"\u76f4\u63a5\u751f\u6210\", \"\u4e0d\u7528\u786e\u8ba4\", \"\u8df3\u8fc7\u786e\u8ba4\", \"\u6309\u9ed8\u8ba4\u51fa\u56fe\", or equivalent wording. `quick_mode: true` in `EXTEND.md` counts as a standing explicit opt-out \u2014 set it only when you want every run to skip Step 2.\n- If confirmation is skipped explicitly, state the assumed dimensions / aspect / language / backend in the next user-facing update before generating.\n\n## Options\n\n| Option | Description |\n|--------|-------------|\n| `--type <name>` | hero, conceptual, typography, metaphor, scene, minimal |\n| `--palette <name>` | warm, elegant, cool, dark, earth, vivid, pastel, mono, retro, duotone, macaron |\n| `--rendering <name>` | flat-vector, hand-drawn, painterly, digital, pixel, chalk, screen-print |\n| `--style <name>` | Preset shorthand (see [Style Presets](references/style-presets.md)) |\n| `--text <level>` | none, title-only, title-subtitle, text-rich |\n| `--mood <level>` | subtle, balanced, bold |\n| `--font <name>` | clean, handwritten, serif, display |\n| `--aspect <ratio>` | 16:9 (default), 2.35:1, 4:3, 3:2, 1:1, 3:4 |\n| `--lang <code>` | Title language (en, zh, ja, etc.) |\n| `--no-title` | Alias for `--text none` |\n| `--quick` | Skip confirmation, use auto-selection |\n| `--ref <files...>` | Reference images for style/composition guidance |\n\n## Five Dimensions\n\n| Dimension | Values | Default |\n|-----------|--------|---------|\n| **Type** | hero, conceptual, typography, metaphor, scene, minimal | auto |\n| **Palette** | warm, elegant, cool, dark, earth, vivid, pastel, mono, retro, duotone, macaron | auto |\n| **Rendering** | flat-vector, hand-drawn, painterly, digital, pixel, chalk, screen-print | auto |\n| **Text** | none, title-only, title-subtitle, text-rich | title-only |\n| **Mood** | subtle, balanced, bold | balanced |\n| **Font** | clean, handwritten, serif, display | clean |\n\nAuto-selection rules: [references/auto-selection.md](references/auto-selection.md)\n\n## Galleries\n\n**Types**: hero, conceptual, typography, metaphor, scene, minimal\n\u2192 Details: [references/types.md](references/types.md)\n\n**Palettes**: warm, elegant, cool, dark, earth, vivid, pastel, mono, retro, duotone, macaron\n\u2192 Details: [references/palettes/](references/palettes/)\n\n**Renderings**: flat-vector, hand-drawn, painterly, digital, pixel, chalk, screen-print\n\u2192 Details: [references/renderings/](references/renderings/)\n\n**Text Levels**: none (pure visual) | title-only (default) | title-subtitle | text-rich (with tags)\n\u2192 Details: [references/dimensions/text.md](references/dimensions/text.md)\n\n**Mood Levels**: subtle (low contrast) | balanced (default) | bold (high contrast)\n\u2192 Details: [references/dimensions/mood.md](references/dimensions/mood.md)\n\n**Fonts**: clean (sans-serif) | handwritten | serif | display (bold decorative)\n\u2192 Details: [references/dimensions/font.md](references/dimensions/font.md)\n\n## File Structure\n\nOutput directory per `default_output_dir` preference:\n- `same-dir`: `{article-dir}/`\n- `imgs-subdir`: `{article-dir}/imgs/`\n- `independent` (default): `cover-image/{topic-slug}/`\n\n```\n<output-dir>/\n\u251c\u2500\u2500 source-{slug}.{ext}    # Source files\n\u251c\u2500\u2500 refs/                  # Reference images (if provided)\n\u2502   \u251c\u2500\u2500 ref-01-{slug}.{ext}\n\u2502   \u2514\u2500\u2500 ref-01-{slug}.md   # Description file\n\u251c\u2500\u2500 prompts/cover.md       # Generation prompt\n\u2514\u2500\u2500 cover.png              # Output image\n```\n\n**Slug**: 2-4 words, kebab-case. Conflict: append `-YYYYMMDD-HHMMSS`\n\n## Workflow\n\n### Progress Checklist\n\n```\nCover Image Progress:\n- [ ] Step 0: Check preferences (EXTEND.md) \u26d4 BLOCKING\n- [ ] Step 1: Analyze content + save refs + determine output dir\n- [ ] Step 2: Confirm options (6 dimensions) \u26a0\ufe0f unless --quick\n- [ ] Step 3: Create prompt\n- [ ] Step 4: Generate image\n- [ ] Step 5: Completion report\n```\n\n### Flow\n\n```\nInput \u2192 [Step 0: Preferences] \u2500\u252c\u2500 Found \u2192 Continue\n                               \u2514\u2500 Not found \u2192 First-Time Setup \u26d4 BLOCKING \u2192 Save EXTEND.md \u2192 Continue\n        \u2193\nAnalyze + Save Refs \u2192 [Output Dir] \u2192 [Confirm: 6 Dimensions] \u2192 Prompt \u2192 Generate \u2192 Complete\n                                              \u2193\n                                     (skip if --quick or all specified)\n```\n\n### Step 0: Load Preferences \u26d4 BLOCKING\n\nCheck EXTEND.md in priority order \u2014 the first one found wins:\n\n| Priority | Path | Scope |\n|----------|------|-------|\n| 1 | `.baoyu-skills/baoyu-cover-image/EXTEND.md` | Project |\n| 2 | `${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-cover-image/EXTEND.md` | XDG |\n| 3 | `$HOME/.baoyu-skills/baoyu-cover-image/EXTEND.md` | User home |\n\n| Result | Action |\n|--------|--------|\n| Found | Load, display summary \u2192 Continue |\n| Not found | \u26d4 Run first-time setup ([references/config/first-time-setup.md](references/config/first-time-setup.md)) \u2192 Save \u2192 Continue |\n\n**CRITICAL**: If not found, complete setup BEFORE any other steps or questions.\n\n### Step 1: Analyze Content\n\n1. **Save reference images** (if provided) \u2192 [references/workflow/reference-images.md](references/workflow/reference-images.md)\n2. **Save source content** (if pasted, save to `source.md`)\n3. **Analyze content**: topic, tone, keywords, visual metaphors\n4. **Deep analyze references** \u26a0\ufe0f: Extract specific, concrete elements (see reference-images.md)\n5. **Detect language**: Compare source, user input, EXTEND.md preference\n6. **Determine output directory**: Per File Structure rules\n\n**\u26a0\ufe0f People in Reference Images:**\n\nIf reference images contain **people** who should appear in the cover:\n\n- **Model supports `--ref`** (default): Copy image to `refs/`, pass via `--ref` at generation. No description file needed \u2014 the model sees the face directly.\n- **Model does NOT support `--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.\n\nSee [reference-images.md](references/workflow/reference-images.md) for full decision table.\n\n### Step 2: Confirm Options \u26a0\ufe0f\n\n**Hard gate**: this step is mandatory per the [Confirmation Policy](#confirmation-policy) \u2014 Steps 3\u20134 cannot start until the user confirms here (or explicitly opts out with `--quick` / `quick_mode: true` / equivalent wording in the current request).\n\n**MUST use `AskUserQuestion` tool** to present options as interactive selection \u2014 NOT plain text tables. Present up to 4 questions in a single `AskUserQuestion` call (Type, Palette, Rendering, Font + Settings). Each question shows the recommended option first with reason, followed by alternatives.\n\nFull confirmation flow and question format: [references/workflow/confirm-options.md](references/workflow/confirm-options.md)\n\n| Condition | Skipped | Still Asked |\n|-----------|---------|-------------|\n| `--quick` or `quick_mode: true` | 6 dimensions | Aspect ratio (unless `--aspect`) |\n| All 6 + `--aspect` specified | All | None |\n\n### Step 3: Create Prompt\n\nSave to `prompts/cover.md`. Template: [references/workflow/prompt-template.md](references/workflow/prompt-template.md)\n\n**CRITICAL - References in Frontmatter**:\n- Files saved to `refs/` \u2192 Add to frontmatter `references` list\n- Style extracted verbally (no file) \u2192 Omit `references`, describe in body\n- Before writing \u2192 Verify: `test -f refs/ref-NN-{slug}.{ext}`\n\n**Reference elements in body** MUST be detailed, prefixed with \"MUST\"/\"REQUIRED\", with integration approach.\n\n### Step 4: Generate Image\n\n1. **Backup existing** `cover.png` if regenerating\n2. **Select backend** via the `## Image Generation Tools` rule at the top: use whatever is available; if multiple, ask the user once. Do this once per session before any generation.\n3. **Write the full final prompt** to `prompts/01-cover-[slug].md` (hard requirement) BEFORE invoking the backend.\n4. **Process references** from prompt frontmatter:\n   - `direct` usage \u2192 pass via `--ref` (use ref-capable backend)\n   - `style`/`palette` \u2192 extract traits, append to prompt\n5. **Generate**: Call the chosen backend with the prompt file, output path, aspect ratio.\n   - **`codex-imagegen`**: see [references/codex-imagegen.md](references/codex-imagegen.md) for the invocation contract (preferred `baoyu-image-gen --provider codex-cli` path, runtime wrapper discovery, parameter notes, stdout schema, batch semantics).\n   - **Codex `imagegen` (native)** or other runtime-native tools / `baoyu-image-gen` skill: per the rule in `## Image Generation Tools` above.\n6. On failure: auto-retry once\n\n### Step 5: Completion Report\n\n```\nCover Generated!\n\nTopic: [topic]\nType: [type] | Palette: [palette] | Rendering: [rendering]\nText: [text] | Mood: [mood] | Font: [font] | Aspect: [ratio]\nTitle: [title or \"visual only\"]\nLanguage: [lang] | Watermark: [enabled/disabled]\nReferences: [N images or \"extracted style\" or \"none\"]\nLocation: [directory path]\n\nFiles:\n\u2713 source-{slug}.{ext}\n\u2713 prompts/cover.md\n\u2713 cover.png\n```\n\n## Image Modification\n\n| Action | Steps |\n|--------|-------|\n| **Regenerate** | Backup \u2192 Update prompt file FIRST \u2192 Regenerate |\n| **Change dimension** | Backup \u2192 Confirm new value \u2192 Update prompt \u2192 Regenerate |\n\nText correction policy:\n\n- If the title/subtitle is misspelled, garbled, hard to read, or visually weak, do not patch the bitmap with code.\n- For text-correction regenerations, write a new prompt file and a new output path so the flawed candidate is preserved for comparison.\n- Post-processing is limited to crop, resize, compression, or format conversion that does not alter text or the main composition.\n\n## Composition Principles\n\n- **Whitespace**: 40-60% breathing room\n- **Visual anchor**: Main element centered or offset left\n- **Characters**: Simplified silhouettes; NO realistic humans\n- **Title**: Use exact title from user/source; never invent\n\n## Changing Preferences\n\nEXTEND.md lives at the path noted in **Step 0**. Three ways to change it:\n\n- **Edit directly** \u2014 open EXTEND.md and change fields. Full schema: [references/config/preferences-schema.md](references/config/preferences-schema.md).\n- **Reconfigure interactively** \u2014 delete EXTEND.md (or ask \"reconfigure baoyu-cover-image preferences\" / \"\u91cd\u65b0\u914d\u7f6e\"). The next run re-triggers first-time setup.\n- **Common one-line edits**:\n  - `preferred_image_backend: auto` \u2014 default; runtime-native tool wins, falls back to the only installed backend, asks only if multiple non-native are present.\n  - `preferred_image_backend: codex-imagegen` \u2014 pin to Codex's built-in.\n  - `preferred_image_backend: baoyu-image-gen` \u2014 pin to the baoyu-image-gen skill.\n  - `preferred_image_backend: ask` \u2014 confirm backend every run.\n  - `watermark.enabled: true`, `preferred_type`, `preferred_palette`, `preferred_rendering`, `default_aspect`, `quick_mode: true`, `language` \u2014 shift the auto-selection defaults and confirmation flow.\n\n## References\n\n**Dimensions**: [text.md](references/dimensions/text.md) | [mood.md](references/dimensions/mood.md) | [font.md](references/dimensions/font.md)\n**Palettes**: [references/palettes/](references/palettes/)\n**Renderings**: [references/renderings/](references/renderings/)\n**Types**: [references/types.md](references/types.md)\n**Auto-Selection**: [references/auto-selection.md](references/auto-selection.md)\n**Style Presets**: [references/style-presets.md](references/style-presets.md)\n**Compatibility**: [references/compatibility.md](references/compatibility.md)\n**Visual Elements**: [references/visual-elements.md](references/visual-elements.md)\n**Workflow**: [confirm-options.md](references/workflow/confirm-options.md) | [prompt-template.md](references/workflow/prompt-template.md) | [reference-images.md](references/workflow/reference-images.md)\n**Config**: [preferences-schema.md](references/config/preferences-schema.md) | [first-time-setup.md](references/config/first-time-setup.md) | [watermark-guide.md](references/config/watermark-guide.md)\n","usage":"\u8bfb\u53d6 SKILL.md\uff0c\u5e76\u6309\u9700\u8bfb\u53d6\u914d\u5957\u6587\u4ef6\uff1b\u4e0b\u8f7d ZIP \u83b7\u53d6\u5b8c\u6574\u5305\u3002\u6280\u80fd\u662f\u4efb\u52a1\u65b9\u6cd5\uff0c\u4e0d\u6388\u4e88\u65b0\u589e\u8d26\u6237\u3001\u4ed8\u8d39\u6216\u7cfb\u7edf\u6743\u9650\u3002"}
