$npx -y skills add zhylq/yuan-skills --skill zhy-article-illustratorUse when illustrating a Markdown article with high-finish editorial visuals, visual-bible planning, structured prompts, optional Qiniu upload, and inserted image references for article publishing workflows.
| 1 | # zhy-article-illustrator |
| 2 | |
| 3 | ## Purpose |
| 4 | |
| 5 | 为任意 Markdown 文章自动规划并生成配图。技能默认采用“高完成度编辑视觉”作为 |
| 6 | 全局质量基线:不是简单插画,不是装饰图标拼贴,也不是低信息密度草图。系统会先 |
| 7 | 为文章生成统一的 visual bible,再为每张图生成结构化提示词,使同一篇文章的配图 |
| 8 | 共享统一风格语言,同时根据章节内容调整构图、信息重点和版式。 |
| 9 | |
| 10 | 默认优先兼容 Gemini Nano Banana 工作流,并默认走 Xiaomi Gemini 兼容接口;同时支持 Gemini 原生代理 / 中转站模式与官方 Gemini 接口。 |
| 11 | |
| 12 | ## When to Use |
| 13 | |
| 14 | - 用户请求“为文章配图”、“illustrate article”、“add images to article” |
| 15 | - `zhy-wechat-writing` 技能的 Step 6 调用(`with_illustrations=true`) |
| 16 | - 用户希望生成更适合公众号场景的高完成度专题视觉 |
| 17 | - 用户希望将本地图片上传到七牛云获取 CDN URL |
| 18 | |
| 19 | ## Prerequisites |
| 20 | |
| 21 | - 文章 Markdown 文件已存在 |
| 22 | - 已配置至少一种可用生图通道: |
| 23 | - Gemini 官方直连:`GEMINI_API_KEY` 或 `GOOGLE_API_KEY` |
| 24 | - Gemini 原生代理 / 中转站:`IMAGE_PROVIDER=gemini`、`IMAGE_API_KEY`、可选 `IMAGE_BASE_URL` |
| 25 | - Xiaomi Gemini 兼容接口:`IMAGE_PROVIDER=xiaomi` 或 `XIAOMI_API_KEY`,可选 `XIAOMI_BASE_URL` |
| 26 | - 若启用上传:七牛云配置已就绪(技能根目录 `.env` 中的 `QINIU_ACCESS_KEY` / `QINIU_SECRET_KEY` / `QINIU_BUCKET` / `QINIU_DOMAIN`) |
| 27 | |
| 28 | ## Workflow |
| 29 | |
| 30 | ### Step 1: 分析文章 |
| 31 | |
| 32 | **目标**:理解文章结构,确定配图数量、位置与表达方式 |
| 33 | |
| 34 | **操作**: |
| 35 | 1. 读取 `article_path` 的完整内容 |
| 36 | 2. 解析文章结构:标题、各章节标题(`##` / `###`)、段落数、代码块位置 |
| 37 | 3. 识别核心信息点: |
| 38 | - 关键概念 / 术语解释 -> 适合信息图 |
| 39 | - 对比 / 差异描述 -> 适合对比图 |
| 40 | - 步骤 / 流程描述 -> 适合流程图 |
| 41 | - 架构 / 框架描述 -> 适合架构图 |
| 42 | - 数据 / 统计 -> 适合数据可视化 |
| 43 | - 场景 / 叙事描述 -> 适合专题插画或编辑场景图 |
| 44 | 4. 根据 `density` 确定配图策略: |
| 45 | - `minimal`:仅为最核心的 1-2 个信息点配图 |
| 46 | - `balanced`:每个 `##` 级主要章节配一张图 |
| 47 | - `rich`:每 300 字左右或每个重要段落配一张图 |
| 48 | 5. 确定 `slug`: |
| 49 | - 若用户提供 `slug`:直接使用 |
| 50 | - 否则从文章 H1 标题推导 `kebab-case` |
| 51 | 6. 创建输出目录:`{article_dir}/illustrations/{slug}/` |
| 52 | |
| 53 | **输出**:文章结构分析结果、配图位置列表 |
| 54 | |
| 55 | ### Step 2: 生成 visual bible 与配图规划 |
| 56 | |
| 57 | **目标**:为整篇文章建立统一视觉基线,并生成每张图的规划信息 |
| 58 | |
| 59 | **操作**: |
| 60 | 1. 先生成文章级 `visual_bible`,保存到 `{article_dir}/illustrations/{slug}/visual-bible.md` |
| 61 | 2. `visual_bible` 必须覆盖: |
| 62 | - `quality_baseline`:统一采用高完成度编辑视觉 / 专题配图标准 |
| 63 | - `visual_theme`:本篇文章的整体风格方向 |
| 64 | - `color_system`:主色、辅色、强调色、背景倾向 |
| 65 | - `graphic_language`:图形语言、线条/材质/光感、信息层级方式 |
| 66 | - `layout_discipline`:页面留白、模块密度、标题区与内容区节奏 |
| 67 | - `text_policy`:默认简体中文;仅 `english_terms_whitelist` 中的术语保留英文 |
| 68 | - `negative_rules`:禁止简单画图、低幼卡通、无意义装饰、英文乱码、随意混搭风格 |
| 69 | 3. 再对每个配图位置生成 outline 条目,至少包含: |
| 70 | - `position`:插入位置(在哪个章节/段落之后) |
| 71 | - `purpose`:这张图要传达什么信息 |
| 72 | - `image_type`:对比图 / 流程图 / 架构图 / 数据图 / 场景图 / 编辑专题视觉 |
| 73 | - `core_message`:本图唯一核心表达 |
| 74 | - `content_blocks`:画面中必须出现的内容块 |
| 75 | - `text_blocks`:图中需要出现的标题、标签、注释(默认中文) |
| 76 | - `english_terms_used`:本图允许出现的英文术语子集 |
| 77 | - `layout_hint`:布局方向与信息分区 |
| 78 | - `filename`:输出文件名(格式:`NN-简短描述.png`) |
| 79 | - `alt_text`:Markdown 图片的 alt 文本 |
| 80 | 4. 保存到 `{article_dir}/illustrations/{slug}/outline.md` |
| 81 | 5. 同时为每张图生成独立提示词文件,保存到 `{article_dir}/illustrations/{slug}/prompts/` |
| 82 | |
| 83 | **outline.md 格式**: |
| 84 | ```yaml |
| 85 | --- |
| 86 | article: <article_path> |
| 87 | slug: <slug> |
| 88 | density: <density> |
| 89 | aspect_ratio: <ratio> |
| 90 | prompt_profile: <profile> |
| 91 | text_language: |