# Detailed Workflow Procedures ## 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 | EXTEND.md `default_output_dir` (default: `imgs-subdir`). If not configured, confirm in 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}/imgs/` (Recommended), `{article-dir}/`, `{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 # macOS, Linux, WSL, Git Bash test -f .baoyu-skills/baoyu-article-illustrator/EXTEND.md && echo "project" test -f "${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-article-illustrator/EXTEND.md" && echo "xdg" test -f "$HOME/.baoyu-skills/baoyu-article-illustrator/EXTEND.md" && echo "user" ``` ```powershell # PowerShell (Windows) if (Test-Path .baoyu-skills/baoyu-article-illustrator/EXTEND.md) { "project" } $xdg = if ($env:XDG_CONFIG_HOME) { $env:XDG_CONFIG_HOME } else { "$HOME/.config" } if (Test-Path "$xdg/baoyu-skills/baoyu-article-illustrator/EXTEND.md") { "xdg" } if (Test-Path "$HOME/.baoyu-skills/baoyu-article-illustrator/EXTEND.md") { "user" } ``` | Result | Action | |--------|--------| | Found | Read, parse, display summary → Continue | | Not found | ⛔ **BLOCKING**: Run first-time setup ONLY ([config/first-time-setup.md](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 | | Illustration purpose | information / visualization / imagination | | Core arguments | 2-5 main points to visualize | | Visual opportunities | Positions where illustrations add value | | Recommended type | Based on content signals and purpose | | 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: Preset or Type ⚠️ REQUIRED Based on Step 2 content analysis, recommend a preset first (sets both type & style). Look up [style-presets.md](style-presets.md) "Content Type → Preset Recommendations" table. - [Recommended preset] — [brief: type + style + why] (Recommended) - [Alternative preset] — [brief] - Or choose type manually: infographic / scene / flowchart / comparison / framework / timeline / mixed **If user picks a preset → skip Q3** (type & style both resolved). **If user picks a type → Q3 is REQUIRED.** ### 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 (skip if preset chosen in Q1) If EXTEND.md has `preferred_style`: - [Custom style name + brief description] (Recommended) - [Top compatible core style 1] - [Top compatible core style 2] - Other (see full Style Gallery) If no `preferred_style` (present Core Styles first): - [Best compatible core style] (Recommended) - [Other compatible core style 1] - [Other compatible core style 2] - Other (see full Style Gallery) **Core Styles** (simplified selection): | Core Style | Maps To | Best For | |------------|---------|----------| | `minimal-flat` | notion | General, knowledge sharing, SaaS | | `sci-fi` | blueprint | AI, frontier tech, system design | | `hand-drawn` | sketch/warm | Relaxed, reflective, casual | | `editorial` | editorial | Processes, data, journalism | | `scene` | warm/watercolor | Narratives, emotional, lifestyle | | `poster` | screen-print | Opinion, editorial, cultural, cinematic | Style selection based on Type × Style compatibility matrix (styles.md). Full specs: `styles/