--- name: baoyu-article-illustrator description: Analyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style two-dimension approach. Use when user asks to "illustrate article", "add images", "generate images for article", or "为文章配图". --- # Article Illustrator Analyze articles, identify illustration positions, generate images with Type × Style consistency. ## Two Dimensions | Dimension | Controls | Examples | |-----------|----------|----------| | **Type** | Information structure, layout | infographic, scene, flowchart, comparison, framework, timeline | | **Style** | Visual aesthetics, mood | notion, warm, minimal, blueprint, watercolor, elegant | Type × Style can be freely combined. Example: `--type infographic --style blueprint` ## Type Gallery | Type | Best For | |------|----------| | `infographic` | Data, metrics, technical articles | | `scene` | Narratives, personal stories, emotional content | | `flowchart` | Tutorials, workflows, processes | | `comparison` | Side-by-side, before/after, options | | `framework` | Methodologies, models, architecture | | `timeline` | History, progress, evolution | ## Style Gallery | Style | Best For | |-------|----------| | `notion` (Default) | Knowledge sharing, SaaS, productivity | | `elegant` | Business, thought leadership | | `warm` | Personal growth, lifestyle, education | | `minimal` | Philosophy, core concepts | | `blueprint` | Architecture, system design | | `watercolor` | Lifestyle, travel, creative | | `editorial` | Tech explainers, journalism | | `scientific` | Academic, technical research | Full styles: [references/styles.md](references/styles.md) ## Auto Selection | Content Signals | Type | Style | |-----------------|------|-------| | API, metrics, data, numbers | infographic | blueprint, notion | | Story, emotion, journey | scene | warm, watercolor | | How-to, steps, workflow | flowchart | notion, minimal | | vs, pros/cons, before/after | comparison | notion, elegant | | Framework, model, architecture | framework | blueprint, notion | | History, timeline, progress | timeline | elegant, warm | ## Workflow Copy this checklist and track progress: ``` Progress: - [ ] Step 1: Pre-check - [ ] 1.5 Check preferences (EXTEND.md) ⛔ BLOCKING - [ ] Found → load preferences → continue - [ ] Not found → run first-time setup → MUST complete before other steps - [ ] 1.0 Reference images ⚠️ (if provided) - [ ] File path given → saved to references/ ✓ - [ ] No path → asked user OR extracted verbally - [ ] 1.2-1.4 Config questions (1 AskUserQuestion, max 4 Qs) - [ ] Step 2: Setup & Analyze - [ ] Step 3: Confirm Settings (1 AskUserQuestion, max 4 Qs) - [ ] Q1: Type ⚠️ - [ ] Q2: Density ⚠️ MUST ASK - [ ] Q3: Style ⚠️ - [ ] Step 4: Generate Outline - [ ] Step 5: Generate Images - [ ] 5.1 Prompts created (references in frontmatter ONLY if files exist) - [ ] 5.3 References verified before generation - [ ] Step 6: Finalize ``` --- ### Step 1: Pre-check **1.0 Detect & Save Reference Images** ⚠️ REQUIRED if images provided Check if user provided reference images. Handle based on input type: | Input Type | Action | |------------|--------| | Image file path provided | Copy to `references/` subdirectory → can use `--ref` | | Image in conversation (no path) | **ASK user for file path** with AskUserQuestion | | User can't provide path | Extract style/palette verbally → append to prompts (NO frontmatter references) | **CRITICAL**: Only add `references` to prompt frontmatter if files are ACTUALLY SAVED to `references/` directory. **If user provides file path**: 1. Copy to `references/NN-ref-{slug}.png` 2. Create description: `references/NN-ref-{slug}.md` 3. Verify files exist before proceeding **If user can't provide path** (extracted verbally): 1. Analyze image visually, extract: colors, style, composition 2. Create `references/extracted-style.md` with extracted info 3. DO NOT add `references` to prompt frontmatter 4. Instead, append extracted style/colors directly to prompt text **Description File Format** (only when file saved): ```yaml --- ref_id: NN filename: NN-ref-{slug}.png --- [User's description or auto-generated description] ``` **Verification** (only for saved files): ``` Reference Images Saved: - 01-ref-{slug}.png ✓ (can use --ref) - 02-ref-{slug}.png ✓ (can use --ref) ``` **Or for extracted style**: ``` Reference Style Extracted (no file): - Colors: #E8756D coral, #7ECFC0 mint... - Style: minimal flat vector, clean lines... → Will append to prompt text (not --ref) ``` --- **1.1 Determine Input Type** | Input | Output Directory | Next | |-------|------------------|------| | File path | Ask user (1.2) | → 1.2 | | Pasted content | `illustrations/{topic-slug}/` | → 1.4 | **Backup rule for pasted content**: If `source.md` exists in target directory, rename to `source-backup-YYYYMMDD-HHMMSS.md` before saving. **1.2-1.4 Configuration** (file path input only) Check preferences and existing state, then ask ALL needed questions in ONE AskUserQuestion call (max 4 questions). **Questions to include** (skip if preference exists or not applicable): | Question | When to Ask | Options | |----------|-------------|---------| | Output directory | No `default_output_dir` in EXTEND.md | `{article-dir}/`, `{article-dir}/imgs/` (Recommended), `{article-dir}/illustrations/`, `illustrations/{topic-slug}/` | | Existing images | Target dir has `.png/.jpg/.webp` files | `supplement`, `overwrite`, `regenerate` | | Article update | Always (file path input) | `update`, `copy` | **Preference Values** (if configured, skip asking): | `default_output_dir` | Path | |----------------------|------| | `same-dir` | `{article-dir}/` | | `imgs-subdir` | `{article-dir}/imgs/` | | `illustrations-subdir` | `{article-dir}/illustrations/` | | `independent` | `illustrations/{topic-slug}/` | **1.5 Load Preferences (EXTEND.md) ⛔ BLOCKING** **CRITICAL**: If EXTEND.md not found, MUST complete first-time setup before ANY other questions or steps. Do NOT proceed to reference images, do NOT ask about content, do NOT ask about type/style — ONLY complete the preferences setup first. ```bash test -f .baoyu-skills/baoyu-article-illustrator/EXTEND.md && echo "project" test -f "$HOME/.baoyu-skills/baoyu-article-illustrator/EXTEND.md" && echo "user" ``` | Result | Action | |--------|--------| | Found | Read, parse, display summary → Continue | | Not found | ⛔ **BLOCKING**: Run first-time setup ONLY ([references/config/first-time-setup.md](references/config/first-time-setup.md)) → Complete and save EXTEND.md → Then continue | **Supports**: Watermark | Preferred type/style | Custom styles | Language | Output directory --- ### Step 2: Setup & Analyze **2.1 Analyze Content** | Analysis | Description | |----------|-------------| | Content type | Technical / Tutorial / Methodology / Narrative | | Core arguments | 2-5 main points to visualize | | Visual opportunities | Positions where illustrations add value | | Recommended type | Based on content signals | | Recommended density | Based on length and complexity | **2.2 Extract Core Arguments** - Main thesis - Key concepts reader needs - Comparisons/contrasts - Framework/model proposed **CRITICAL**: If article uses metaphors (e.g., "电锯切西瓜"), do NOT illustrate literally. Visualize the **underlying concept**. **2.3 Identify Positions** **Illustrate**: - Core arguments (REQUIRED) - Abstract concepts - Data comparisons - Processes, workflows **Do NOT Illustrate**: - Metaphors literally - Decorative scenes - Generic illustrations **2.4 Analyze Reference Images** (if provided in Step 1.0) For each reference image: | Analysis | Description | |----------|-------------| | Visual characteristics | Style, colors, composition | | Content/subject | What the reference depicts | | Suitable positions | Which sections match this reference | | Style match | Which illustration types/styles align | | Usage recommendation | `direct` / `style` / `palette` | | Usage | When to Use | |-------|-------------| | `direct` | Reference matches desired output closely | | `style` | Extract visual style characteristics only | | `palette` | Extract color scheme only | --- ### Step 3: Confirm Settings ⚠️ **Do NOT skip.** Use ONE AskUserQuestion call with max 4 questions. **Q1, Q2, Q3 are ALL REQUIRED.** **Q1: Illustration Type** ⚠️ REQUIRED - [Recommended based on analysis] (Recommended) - infographic / scene / flowchart / comparison / framework / timeline / mixed **Q2: Density** ⚠️ REQUIRED - DO NOT SKIP - minimal (1-2) - Core concepts only - balanced (3-5) - Major sections - per-section - At least 1 per section/chapter (Recommended) - rich (6+) - Comprehensive coverage **Q3: Style** ⚠️ REQUIRED (ALWAYS ask, even with preferred_style in EXTEND.md) If EXTEND.md has `preferred_style`: - [Custom style name + brief description] (Recommended) - [Top compatible built-in style 1] - [Top compatible built-in style 2] - [Top compatible built-in style 3] If no `preferred_style`: - [Best compatible from matrix] (Recommended) - [Other ✓✓ style 1] - [Other ✓✓ style 2] - [Other ✓ style] Style selection based on Type × Style compatibility matrix (references/styles.md). Full specs: `references/styles/