Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Generate Xiaohongshu (Little Red Book) infographic series with 11 styles and 8 layouts optimized for XHS engagement.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
SKILL.md
1---2name: baoyu-xhs-images3description: "[Deprecated: use baoyu-image-cards] Generates Xiaohongshu (Little Red Book) image card series with 12 visual styles, 8 layouts, and 3 color palettes. Breaks content into 1-10 cartoon-style image cards optimized for XHS engagement. Use when user mentions \"小红书图片\", \"XHS images\", \"RedNote infographics\", \"小红书种草\", \"小绿书\", \"微信图文\", \"微信贴图\", or wants social media infographic series for Chinese platforms."4version: 1.56.25metadata:6openclaw:7homepage: https://github.com/JimLiu/baoyu-skills#baoyu-xhs-images8---91011# Image Card Series Generator1213Break down complex content into eye-catching image card series with multiple style options.1415## User Input Tools1617When this skill prompts the user, follow this tool-selection rule (priority order):18191. **Prefer built-in user-input tools** exposed by the current agent runtime — e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent.202. **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.213. **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.2223Concrete `AskUserQuestion` references below are examples — substitute the local equivalent in other runtimes.2425## Image Generation Tools2627When this skill needs to render an image, resolve the backend in this order:28291. **Current-request override** — if the user names a specific backend in the current message, use it.302. **Saved preference** — if `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it.313. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available):32- If the current runtime exposes a native image tool (e.g., Codex `imagegen`, Hermes `image_generate`), use it. Runtime-native tools are preferred by default — agents that know their own tool inventory should surface the native one here.33- Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-imagine`), use it.34- Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions.354. **If none are available**, tell the user and ask how to proceed.3637Setting `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.3839**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 file is the reproducibility record and lets you switch backends without regenerating prompts.4041Concrete tool names (`imagegen`, `image_generate`, `baoyu-imagine`) above are examples — substitute the local equivalents under the same rule.4243## Confirmation Policy4445Default behavior: **confirm before generation**.4647- Treat explicit skill invocation, a file path, matched signals/presets, and `EXTEND.md` defaults as **recommendation inputs only**. None of them authorizes skipping confirmation.48- Do **not** start Step 3 until the user completes Step 2.49- Skip confirmation only when the current request explicitly says to do so, for example: `--yes`, "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent wording.50- If confirmation is skipped explicitly, state the assumed strategy / style / layout / palette / count / backend in the next user-facing update before generating.5152## Language5354Respond in the user's language across questions, progress, errors, and completion summary. Keep technical tokens (style names, file paths, code) in English.5556## Options5758| Option | Description |59|--------|-------------|60| `--style <name>` | Visual style (see Styles below) |61| `--layout <name>` | Information layout (see Layouts below) |62| `--palette <name>` | Color override: macaron / warm / neon |63| `--preset <name>` | Style + layout + optional palette shorthand (see Presets below; per-preset prompt fragments in `references/style-presets.md`) |64| `--ref <files...>` | Reference images applied to image 1 as the series anchor |65| `--yes` | Non-interactive: skip all confirmations, use EXTEND.md or built-in defaults, auto-confirm recommended plan (Path A) |6667## Dimensions6869Three independent knobs combine freely:7071| Dimension | Controls | Options |72|-----------|----------|---------|73| **Style** | Visual aesthetics (lines, decorations, rendering) | 12 styles (see Styles below) |74| **Layout** | Information structure (density, arrangement) | 8 layouts (see Layouts below) |75| **Palette** (optional) | Color override, replaces the style's default colors | macaron / warm / neon (see Palettes below) |7677Example: `--style notion --layout dense` makes an intellectual knowledge card; add `--palette macaron` to soften the colors without changing notion's rendering rules. A `--preset` is a shorthand for style + layout (+ optional palette).7879**Palette behavior**: no `--palette` → style's built-in colors; `--palette <name>` → overrides colors only, rendering rules unchanged. Some styles declare a `default_palette` (e.g., sketch-notes defaults to macaron).8081## Styles (12)8283| Style | Description |84|-------|-------------|85| `cute` (Default) | Sweet, adorable, girly aesthetic |86| `fresh` | Clean, refreshing, natural |87| `warm` | Cozy, friendly, approachable |88| `bold` | High impact, attention-grabbing |89| `minimal` | Ultra-clean, sophisticated |90| `retro` | Vintage, nostalgic, trendy |91| `pop` | Vibrant, energetic, eye-catching |92| `notion` | Minimalist hand-drawn line art, intellectual |93| `chalkboard` | Colorful chalk on black board, educational |94| `study-notes` | Realistic handwritten photo style, blue pen + red annotations + yellow highlighter |95| `screen-print` | Bold poster art, halftone textures, limited colors, symbolic storytelling |96| `sketch-notes` | Hand-drawn educational infographic, macaron pastels on warm cream, wobble lines |9798Per-style specifications: `references/presets/<style>.md`.99100## Layouts (8)101102| Layout | Description |103|--------|-------------|104| `sparse` (Default) | 1-2 points, maximum impact |105| `balanced` | 3-4 points, standard |106| `dense` | 5-8 points, knowledge-card style |107| `list` | Enumeration / ranking (4-7 items) |108| `comparison` | Side-by-side contrast |109| `flow` | Process / timeline (3-6 steps) |110| `mindmap` | Center-radial (4-8 branches) |111| `quadrant` | Four-quadrant / circular sections |112113Layout specs: `references/elements/canvas.md`.114115## Palettes (optional override)116117Replaces the style's colors while keeping rendering rules (line treatment, textures) intact.118119| Palette | Background | Zone Colors | Accent | Feel |120|---------|------------|-------------|--------|------|121| `macaron` | Warm cream #F5F0E8 | Blue #A8D8EA, Lavender #D5C6E0, Mint #B5E5CF, Peach #F8D5C4 | Coral #E8655A | Soft, educational |122| `warm` | Soft peach #FFECD2 | Orange #ED8936, Terracotta #C05621, Golden #F6AD55, Rose #D4A09A | Sienna #A0522D | Earth tones, cozy |123| `neon` | Dark purple #1A1025 | Cyan #00F5FF, Magenta #FF00FF, Green #39FF14, Pink #FF6EC7 | Yellow #FFFF00 | High-energy, futuristic |124125Palette specs: `references/palettes/<palette>.md`.126127## Presets (style + layout shortcuts)128129Quick-start combos, grouped by scenario. Use `--preset <name>` or recommend during Step 2.130131**Knowledge & Learning**:132133| Preset | Style | Layout | Best For |134|--------|-------|--------|----------|135| `knowledge-card` | notion | dense | 干货知识卡、概念科普 |136| `checklist` | notion | list | 清单、排行榜 |137| `concept-map` | notion | mindmap | 概念图、知识脉络 |138| `swot` | notion | quadrant | SWOT 分析、四象限 |139| `tutorial` | chalkboard | flow | 教程步骤、操作流程 |140| `classroom` | chalkboard | balanced | 课堂笔记、知识讲解 |141| `study-guide` | study-notes | dense | 学习笔记、考试重点 |142| `hand-drawn-edu` | sketch-notes | flow | 手绘教程、流程图解 |143| `sketch-card` | sketch-notes | dense | 手绘知识卡 |144| `sketch-summary` | sketch-notes | balanced | 手绘总结、图文笔记 |145146**Lifestyle & Sharing**:147148| Preset | Style | Layout | Best For |149|--------|-------|--------|----------|150| `cute-share` | cute | balanced | 少女风分享、日常种草 |151| `girly` | cute | sparse | 甜美封面、氛围感 |152| `cozy-story` | warm | balanced | 生活故事、情感分享 |153| `product-review` | fresh | comparison | 产品对比、测评 |154| `nature-flow` | fresh | flow | 健康流程、自然主题 |155156**Impact & Opinion**:157158| Preset | Style | Layout | Best For |159|--------|-------|--------|----------|160| `warning` | bold | list | 避坑指南、重要提醒 |161| `versus` | bold | comparison | 正反对比 |162| `clean-quote` | minimal | sparse | 金句、极简封面 |163| `pro-summary` | minimal | balanced | 专业总结、商务内容 |164165**Trend & Entertainment**:166167| Preset | Style | Layout | Best For |168|--------|-------|--------|----------|169| `retro-ranking` | retro | list | 复古排行、经典盘点 |170| `throwback` | retro | balanced | 怀旧分享 |171| `pop-facts` | pop | list | 趣味冷知识 |172| `hype` | pop | sparse | 炸裂封面、惊叹分享 |173174**Poster & Editorial**:175176| Preset | Style | Layout | Best For |177|--------|-------|--------|----------|178| `poster` | screen-print | sparse | 海报风封面、影评书评 |179| `editorial` | screen-print | balanced | 观点文章、文化评论 |180| `cinematic` | screen-print | comparison | 电影对比、戏剧张力 |181182Full prompt-fragment definitions: `references/style-presets.md`.183184## Auto-Selection185186Match content signals to the best combo. First row whose keywords appear wins; fall back to `cute-share` if nothing matches.187188| Signals in source | Style | Layout | Recommended preset |189|-------------------|-------|--------|--------------------|190| beauty, fashion, cute, girl, pink | `cute` | sparse/balanced | `cute-share`, `girly` |191| health, nature, fresh, organic | `fresh` | balanced/flow | `product-review`, `nature-flow` |192| life, story, emotion, warm | `warm` | balanced | `cozy-story` |193| warning, important, must, critical | `bold` | list/comparison | `warning`, `versus` |194| professional, business, elegant | `minimal` | sparse/balanced | `clean-quote`, `pro-summary` |195| classic, vintage, traditional | `retro` | balanced | `throwback`, `retro-ranking` |196| fun, exciting, wow, amazing | `pop` | sparse/list | `hype`, `pop-facts` |197| knowledge, concept, productivity, SaaS | `notion` | dense/list | `knowledge-card`, `checklist` |198| education, tutorial, learning, classroom | `chalkboard` | balanced/dense | `tutorial`, `classroom` |199| notes, handwritten, study guide, realistic | `study-notes` | dense/list/mindmap | `study-guide` |200| movie, poster, opinion, editorial, cinematic | `screen-print` | sparse/comparison | `poster`, `editorial`, `cinematic` |201| hand-drawn, infographic, workflow, 手绘, 图解 | `sketch-notes` | flow/balanced/dense | `hand-drawn-edu`, `sketch-card`, `sketch-summary` |202203## Style × Layout Matrix204205Compatibility scores (✓✓ highly recommended, ✓ works well, ✗ avoid). Use when the user picks a non-default combo and you want to flag a poor match.206207| | sparse | balanced | dense | list | comparison | flow | mindmap | quadrant |208|--------------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|209| cute | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓ | ✓ | ✓ |210| fresh | ✓✓ | ✓✓ | ✓ | ✓ | ✓ | ✓✓ | ✓ | ✓ |211| warm | ✓✓ | ✓✓ | ✓ | ✓ | ✓✓ | ✓ | ✓ | ✓ |212| bold | ✓✓ | ✓ | ✓ | ✓✓ | ✓✓ | ✓ | ✓ | ✓✓ |213| minimal | ✓✓ | ✓✓ | ✓✓ | ✓ | ✓ | ✓ | ✓ | ✓ |214| retro | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓ | ✓ | ✓ |215| pop | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓✓ | ✓ | ✓ | ✓ |216| notion | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ |217| chalkboard | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓✓ | ✓ |218| study-notes | ✗ | ✓ | ✓✓ | ✓✓ | ✓ | ✓ | ✓✓ | ✓ |219| screen-print | ✓✓ | ✓✓ | ✗ | ✓ | ✓✓ | ✓ | ✗ | ✓✓ |220| sketch-notes | ✓ | ✓✓ | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓✓ | ✓ |221222## Outline Strategies223224Three differentiated approaches — each produces a structurally different outline. The workflow recommends one; Path C generates all three and lets the user choose.225226| Strategy | Concept | Best for | Structure |227|----------|---------|----------|-----------|228| **A — Story-Driven** | Personal experience as the thread, emotional resonance first | Reviews, personal shares, transformation | Hook → Problem → Discovery → Experience → Conclusion |229| **B — Information-Dense** | Value-first, efficient information delivery | Tutorials, comparisons, checklists | Core conclusion → Info card → Pros/Cons → Recommendation |230| **C — Visual-First** | Visual impact as core, minimal text | High-aesthetic products, lifestyle, mood content | Hero image → Detail shots → Lifestyle scene → CTA |231232## Reference Images233234User-supplied refs are **separate from** the internal "image-1 as anchor" chain (Step 3) — they layer on top of it.235236**Intake**: via `--ref <files...>` or paths pasted in conversation.237- File path → copy to `refs/NN-ref-{slug}.{ext}`238- Pasted with no path → ask for the path, or extract style traits as a text fallback239240**Usage modes** (per reference):241242| Usage | Effect |243|-------|--------|244| `direct` | Pass the file to the backend (typically on image 1 only, so the anchor propagates through the chain) |245| `style` | Extract style traits and append to every card's prompt body |246| `palette` | Extract hex colors and append to every card's prompt body |247248Record refs in each affected card's prompt frontmatter:249250```yaml251references:252- ref_id: 01253filename: 01-ref-brand.png254usage: direct255```256257At generation time: verify files exist. Image 1 with `usage: direct` + backend that accepts refs → pass via the backend's ref parameter (becomes the chain anchor). Images 2+ keep using image-1 as `--ref` per Step 3 — do NOT re-stack user refs on top (avoids conflicting signals). For `style`/`palette`, embed extracted traits in every prompt.258259## File Layout260261```262image-cards/{topic-slug}/263├── source-{slug}.{ext}264├── analysis.md265├── outline-strategy-{a,b,c}.md # Path C only266├── outline.md267├── prompts/NN-{type}-{slug}.md268├── NN-{type}-{slug}.png269└── refs/ # only if --ref used270```271272**Slug**: 2-4 words, kebab-case. "AI 工具推荐" → `ai-tools-recommend`. On collision, append `-YYYYMMDD-HHMMSS`.273274**Backup rule** (applies throughout): before overwriting any file — source, outline, prompt, image — rename the existing one to `<name>-backup-YYYYMMDD-HHMMSS.<ext>`. This protects user edits.275276## Workflow277278```279- [ ] Step 0: Load EXTEND.md ⛔ BLOCKING (interactive only)280- [ ] Step 1: Analyze content → analysis.md281- [ ] Step 2: Smart Confirm ⚠️ REQUIRED (Path A / B / C)282- [ ] Step 3: Generate images283- [ ] Step 4: Completion report284```285286### Step 0: Load EXTEND.md ⛔ BLOCKING287288Check these paths in order; first hit wins:289290| Path | Scope |291|------|-------|292| `.baoyu-skills/baoyu-image-cards/EXTEND.md` | Project |293| `${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-image-cards/EXTEND.md` | XDG |294| `$HOME/.baoyu-skills/baoyu-image-cards/EXTEND.md` | User home |295296- **Found** → read, parse, print a summary (style / layout / watermark / language), continue.297- **Not found + interactive** → run first-time setup (see `references/config/first-time-setup.md`) and save before anything else. Do NOT analyze content or ask style questions until preferences exist — this keeps first-run behavior predictable.298- **Not found + `--yes`** → skip setup, use built-in defaults (no watermark, style/layout auto-selected, language from content). Do not prompt, do not create EXTEND.md.299300**EXTEND.md keys**: watermark, preferred style/layout, custom style definitions, language preference. Schema: `references/config/preferences-schema.md`.301302### Step 1: Analyze Content → `analysis.md`3033041. Save the source (backup rule applies if `source.md` exists).3052. Run the deep analysis in `references/workflows/analysis-framework.md`: content type, hook potential, audience, engagement signals, visual opportunity map, swipe flow.3063. Detect source language, pick recommended image count (2-10).3074. Auto-recommend strategy + style + layout + palette using the **Auto-Selection** table above.3085. Write everything to `analysis.md`.309310### Step 2: Smart Confirm ⚠️ REQUIRED311312**Hard gate**: this step is mandatory per the [Confirmation Policy](#confirmation-policy) — Step 3 cannot start until the user confirms here (or explicitly opts out with `--yes` / equivalent wording in the current request).313314Goal: present the auto-recommended plan and let the user confirm or adjust. Skip this step entirely under `--yes` — proceed with Path A using the analysis and any CLI overrides.315316**Display summary** before asking:317318```319📋 内容分析320主题:[topic] | 类型:[content_type]321要点:[key points]322受众:[audience]323324🎨 推荐方案(自动匹配)325策略:[A/B/C] [name]([reason])326风格:[style] · 布局:[layout] · 配色:[palette or 默认] · 预设:[preset]327图片:[N]张(封面+[N-2]内容+结尾)328元素:[background] / [decorations] / [emphasis]329```330331Then ask one question — three paths. Verbatim option copy: `references/confirmation.md`.332333**Path A — Quick confirm** (trust auto-recommendation): generate a single outline using the recommended strategy + style → save to `outline.md` → Step 3.334335**Path B — Customize**: ask five questions (strategy/style, layout, palette, count, optional notes) with the recommendation pre-filled — blanks keep the recommendation. Generate one outline with the user's choices → `outline.md` → Step 3. See `references/confirmation.md`.336337**Path C — Detailed mode**: two sub-confirmations.338339- *Step 2a — Content understanding*: ask selling points (multi-select), audience, style preference (authentic / professional / aesthetic / auto), optional context. Update `analysis.md`.340- *Step 2b — Three outline variants*: generate `outline-strategy-a.md`, `outline-strategy-b.md`, `outline-strategy-c.md`. Each MUST have a different structure AND a different recommended style — include `style_reason` in the frontmatter. Page-count heuristic: A ~4-6, B ~3-5, C ~3-4. Template: `references/workflows/outline-template.md`; frontmatter example in `references/confirmation.md`.341- *Step 2c — Selection*: ask three questions (outline A/B/C/Combined, style, visual elements). Save selected/merged outline to `outline.md` → Step 3.342343### Step 3: Generate Images344345With confirmed outline + style + layout + palette:346347**Visual consistency — image-1 anchor chain**: character / mascot / color rendering drifts between calls unless you anchor them. Generate image 1 (cover) first WITHOUT `--ref`, then pass image 1 as `--ref` to every subsequent image. This is the single most important consistency trick for this skill — don't skip it even if the backend also supports a session ID.348349For each image (cover, content, ending):3503511. Write the full prompt to `prompts/NN-{type}-{slug}.md` in the user's preferred language (backup rule applies).3522. Generate:353- **Image 1**: no `--ref` (establishes the anchor).354- **Images 2+**: add `--ref <path-to-image-01.png>`.355- Backup rule applies to the PNG files.3563. Report progress after each image.357358**Watermark** (if enabled in EXTEND.md): append to the generation prompt:359360```361Include a subtle watermark "[content]" positioned at [position].362The watermark should be legible but not distracting.363```364365See `references/config/watermark-guide.md`.366367**Backend selection**: per the Image Generation Tools rule at the top — use whatever is available, ask once if multiple, before any generation. Under `--yes`, use the EXTEND.md preference and fall back to the first available backend. Prompt files MUST exist before invoking any backend.368369**Session ID** (if the backend supports `--sessionId`): use `cards-{topic-slug}-{timestamp}` for every image; combined with the ref chain this gives maximum consistency.370371### Step 4: Completion Report372373```374Image Card Series Complete!375376Topic: [topic]377Mode: [Quick / Custom / Detailed]378Strategy: [A/B/C/Combined]379Style: [name]380Palette: [name or "default"]381Layout: [name or "varies"]382Location: [directory]383Images: N total384385✓ analysis.md386✓ outline.md387✓ outline-strategy-a/b/c.md (detailed mode only)388389- 01-cover-[slug].png ✓ Cover (sparse)390- 02-content-[slug].png ✓ Content (balanced)391- ...392- NN-ending-[slug].png ✓ Ending (sparse)393```394395## Content Breakdown Principles396397| Position | Purpose | Typical layout |398|----------|---------|----------------|399| Cover (image 1) | Hook + visual impact | `sparse` |400| Content (middle) | Core value per image | `balanced` / `dense` / `list` / `comparison` / `flow` |401| Ending (last) | CTA / summary | `sparse` or `balanced` |402403For the style × layout compatibility matrix, see the **Style × Layout Matrix** above.404405## Image Modification406407| Action | How |408|--------|-----|409| Edit | Update `prompts/NN-{type}-{slug}.md` **first**, then regenerate with the same session ID |410| Add | Specify position, create prompt, generate, renumber subsequent files `NN+1`, update outline |411| Delete | Remove files, renumber subsequent `NN-1`, update outline |412413Always update the prompt file before regenerating — it's the source of truth and makes changes reproducible.414415## References416417| File | Content |418|------|---------|419| `references/confirmation.md` | Verbatim AskUserQuestion copy for every confirmation path |420| `references/style-presets.md` | Full preset shortcut definitions |421| `references/presets/<style>.md` | Per-style element definitions |422| `references/palettes/<name>.md` | Per-palette color definitions |423| `references/elements/canvas.md` | Aspect ratios, safe zones, grid layouts |424| `references/elements/image-effects.md` | Cutout, stroke, filters |425| `references/elements/typography.md` | Decorated text, tags, text direction |426| `references/elements/decorations.md` | Emphasis marks, backgrounds, doodles, frames |427| `references/workflows/analysis-framework.md` | Content analysis framework |428| `references/workflows/outline-template.md` | Outline template with layout guide |429| `references/workflows/prompt-assembly.md` | Prompt assembly guide |430| `references/config/preferences-schema.md` | EXTEND.md schema |431| `references/config/first-time-setup.md` | First-time setup flow |432| `references/config/watermark-guide.md` | Watermark configuration |433434## Notes435436- Auto-retry once on generation failure before reporting an error.437- For sensitive public figures, use stylized cartoon alternatives.438- Smart Confirm (Step 2) is required; Detailed mode adds a second confirmation (2a + 2c).439440## Changing Preferences441442EXTEND.md lives at the first matching path listed in Step 0. Three ways to change it:443444- **Edit directly** — open EXTEND.md and change fields. Full schema: `references/config/preferences-schema.md`.445- **Reconfigure interactively** — delete EXTEND.md (or ask "reconfigure baoyu-xhs-images preferences" / "重新配置"). The next run re-triggers first-time setup.446- **Common one-line edits**:447- `preferred_image_backend: auto` — default; runtime-native tool wins, falls back to the only installed backend, asks only if multiple non-native are present.448- `preferred_image_backend: codex-imagegen` — pin to Codex's built-in.449- `preferred_image_backend: baoyu-imagine` — pin to the baoyu-imagine skill.450- `preferred_image_backend: ask` — confirm backend every run.451- `preferred_style: notion`, `preferred_layout: dense`, `preferred_palette: macaron`, `language: zh`.452- `watermark.enabled: true` + `watermark.content: "@handle"` — add a watermark.453