1实现原理 · 为什么它能做到
实现方式是纯 prompt 编排:SKILL.md 把配图拆成 Type(信息结构)× Style(渲染手法)× Palette(配色,可选覆盖)三个正交维度,再按维度组合拼出图像 prompt——skill 自身零可执行代码。
Analyze articles, identify illustration positions, generate images with Type × Style × Palette consistency.
第一步是文章结构分析:定内容类型、配图目的、2-5 条核心论点与“哪些位置值得配图”,并硬性禁止把隐喻画成字面图。
| Visual opportunities | Positions where illustrations add value |
生成前有一条不可跳过的落盘门禁:每张图的完整 prompt 必须先写成独立文件,作为可复现记录与换后端的依据。
⛔ **BLOCKING: Prompt files MUST be saved before ANY image generation.**
后端解析是显式优先级规则:当前请求点名 > EXTEND.md 的 preferred_image_backend > 自动选择(Codex imagegen > codex CLI 的 codex-imagegen > Cursor GenerateImage > 其它宿主原生工具 > 唯一已装后端 > 问用户)。
1. **Current-request override** — if the user names a specific backend in the current message, use it.
两条硬性禁用条款把“用代码凑图”这条路堵死:不许用 SVG/HTML/canvas 代替栅格生成,也不许用 ImageMagick/Pillow/OCR 等程序化覆盖去修补已生成位图上的文字。
**⛔ Never substitute SVG, HTML, canvas, or other code-based rendering for raster image generation.**
生成阶段默认批处理:优先后端原生批量接口,其次宿主并行工具调用(默认 4 张一批),最后才串行;失败项只重试一次且不重生成已成功项。
dispatch up to `generation_batch_size` images at a time. Default: `4`.
确认门禁默认开启:显式调用 skill、给文件路径、命中 preset、EXTEND.md 默认值都只算“推荐输入”,在用户完成设置确认前不得进入生成步骤。
Default behavior: **confirm before generation**.
首选项 EXTEND.md 走三级查找(项目 > XDG > 用户 home),找不到即阻塞并跑首次设置;输出目录由 default_output_dir 决定,最后把图片按相对路径回插文章。
Insert `` after paragraphs.
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | codex CLI(codex-imagegen 分支) |
| cli | baoyu-image-gen skill(--provider codex-cli,首选路径) |
| api | Codex 原生 imagegen skill(Skill 工具调用) |
| api | Cursor 原生 GenerateImage 工具 |
| network | codex-imagegen wrapper(自述:认证走用户 Codex 订阅,不读 OPENAI_API_KEY) |
4风险提醒 风险提醒:橙色 · 评估后使用
- 用户内容出网到第三方图像模型(orange 档主因) — 照 SKILL.md 执行即把文章与素材交给 codex imagegen / baoyu-image-gen / Cursor 等后端,并消耗用户账号额度;若文章涉密或未授权转载内容,等于把内容交给外部服务。skill 自身不可关闭这一外发路径(只能换后端或不用)。
- 参考图/文章文本构成注入面 — 文章正文、参考图描述会被拼进图像 prompt;恶意字符串虽不会直接执行代码,但可影响 agent 拼 prompt 与输出路径的决策,属于宿主级通用风险。
- 内置 system.md 含“不要因敏感/版权人物拒绝生成”的指示 — prompts/system.md 写明遇敏感或版权人物时做风格相似替代且不要拒绝生成——这是把版权/人格权判断前移到用户的责任提示,团队使用时应自行加合规约束。
- 输出目录可由偏好改变 + 冲突时追加时间戳 — default_output_dir 四种取值与 independent 模式的 cwd 相对路径,若不核对可能把图片写到非预期目录;粘贴内容场景固定落 illustrations/{topic-slug}/。
- 提示词质量决定成品质量 — LABELS 要求引用文章真实数字,若 agent 偷懒用占位符,图文一致性会下降;skill 已用 Prompt quality requirements (all REQUIRED) 约束,但仍依赖模型执行力。
5第二遍独立确认
- [ok] 自身目录无脚本/无网络端点/无凭证读取 — 目录内无任何可执行文件;全目录 URL 扫描只命中 github.com/JimLiu/baoyu-skills(frontmatter homepage),无请求端点、无 key/cookie/token 读取。
- [ok] SKILL.md 确实点名单一外部生成后端(orange 档依据) — 'Codex (`imagegen`)'、'route through `baoyu-image-gen --provider codex-cli` (preferred)'、Cursor `GenerateImage`、Hermes `image_generate` 四处均在 SKILL.md 正文,且被写成生成前的必经步骤(Do this once per session before any generation)。
- [ok] prompt 文件必须先落盘(BLOCKING) — SKILL.md Step 5 与 workflow.md 5.1 两处都写死;workflow.md 另有 Prompt Files 清单确认步骤。
- [ok] 禁用 SVG / 禁用位图涂改两条禁令 — SKILL.md 与 workflow 均含;Modification 段重申后处理仅限 crop/resize/compression/format conversion。
- [ok] 三维度与 preset 机制 — SKILL.md Three Dimensions 表 + 'Combine freely: `--type infographic --style vector-illustration --palette macaron`' + style-presets.md 均存在,无夸大。
- [ok] references 数量与按需加载 — 36 个 styles/*.md + 4 个 palettes/*.md + workflow/prompt-construction/styles/style-presets/usage/config/codex-imagegen 均在盘中;codex-imagegen.md 自述只在该分支被选中时加载。
- [ok] meta 元数据(license/stars/commit) — GitHub API:MIT、stargazers 25926、pushed_at 2026-09-10T15:13:43Z;本地镜像 HEAD 1567581c26ec29f4216c6e6835415bf30343b0e3 与任务 pin 一致;仓库根 LICENSE=MIT (c) 2026 Jim Liu。
6结论
842c4e88785ed928…1567581c26