baoyu-article-illustrator skill
Article illustrations: type × style × palette consistency.
Is the baoyu-article-illustrator skill safe?
Clean: nothing in its files matched our rules. We read 35 files in the folder on 2026-10-25.
No findings.
Install the baoyu-article-illustrator skill
A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.
git clone --depth 1 https://github.com/NousResearch/hermes-agent.git /tmp/hermes-agent mkdir -p ~/.claude/skills cp -r /tmp/hermes-agent/optional-skills/creative/baoyu-article-illustrator ~/.claude/skills/baoyu-article-illustrator
In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub
The instructions your agent would load
SKILL.md as published, without the frontmatter. Read it on GitHub
Article Illustrator
Adapted from baoyu-article-illustrator for Hermes Agent's tool ecosystem.
Analyze articles, identify illustration positions, generate images with Type × Style × Palette consistency.
When to Use
Trigger this skill when the user asks to illustrate an article, add images to an article, generate illustrations for content, or uses phrases like "为文章配图", "illustrate article", or "add images". The user provides an article (file path or pasted content) and optionally specifies type, style, palette, or density.
Three Dimensions
Combine freely: type=infographic, style=vector-illustration, palette=macaron.
Or use presets: edu-visual → type + style + palette in one shot. See style-presets.md.
Types
Styles
See references/styles.md for Core Styles, the full gallery, and Type × Style compatibility.
Output Structure
{output-dir}/
├── source-{slug}.{ext} # Only for pasted content
├── outline.md
├── prompts/
│ └── NN-{type}-{slug}.md
└── NN-{type}-{slug}.pngDefault output directory:
If the user asks for a different layout (e.g., images alongside the article, or a illustrations/ subdirectory), honor that.
Slug: 2-4 words, kebab-case. Conflict: append -YYYYMMDD-HHMMSS.
Core Principles
- Visualize concepts, not metaphors — if the article uses a metaphor (e.g., "电锯切西瓜"), illustrate the underlying concept, not the literal image.
- Labels use article data — actual numbers, terms, and quotes from the article, not generic placeholders.
- Prompt files are reproducibility records — every illustration must have a saved prompt file under prompts/ before any image is generated.
- Strip secrets — scan source content for API keys, tokens, or credentials before writing anything to disk.
Workflow
- [ ] Step 1: Detect reference images (if provided)
- [ ] Step 2: Analyze content
- [ ] Step 3: Confirm settings (clarify tool)
- [ ] Step 4: Generate outline
- [ ] Step 5: Generate prompts
- [ ] Step 6: Generate images (image_generate)
- [ ] Step 7: FinalizeStep 1: Detect Reference Images
If the user supplies reference images (paths pasted inline, attachments, or a URL):
- For each reference, call visionanalyze with the path/URL and a question asking for style, palette, composition, and subject. Record the returned description in {output-dir}/references/NN-ref-{slug}.md via writefile.
- Do not try to copy the binary via writefile / readfile — those are text-only. If you want a local copy for the record, use terminal (cp "$src" "{output-dir}/references/NN-ref-{slug}.{ext}"). The skill itself never needs to read the binary; it works off the vision description.
- Since image_generate doesn't take image inputs, the vision description is what gets embedded in prompts during Step 5.
Full procedures: references/workflow.md.
Step 2: Analyze
Read source (file path → readfile, or pasted text) and write the analysis to {output-dir}/analysis.md using writefile.
Full procedures: references/workflow.md.
Step 3: Confirm Settings
Use the clarify tool. Put the independent questions in one questions array (up to 5). Skip any question whose answer is already present in the user's request.
Don't ask more than 2-3 clarify questions in a row. If the user already specified these in their request, skip entirely.
Full procedures: references/workflow.md.
Step 4: Generate Outline → outline.md
Save {output-dir}/outline.md using writefile with frontmatter (type, density, style, palette, imagecount) and one entry per illustration:
## Illustration 1
**Position**: [section/paragraph]
**Purpose**: [why]
**Visual Content**: [what to show]
**Filename**: 01-infographic-concept-name.pngFull template: references/workflow.md.
Step 5: Generate Prompts
BLOCKING: Every illustration must have a saved prompt file before any image is generated — the prompt file is the reproducibility record.
For each illustration:
- Create a prompt file per references/prompt-construction.md.
- Save to {output-dir}/prompts/NN-{type}-{slug}.md using write_file with YAML frontmatter.
- Prompts MUST use type-specific templates with structured sections (ZONES / LABELS / COLORS / STYLE / ASPECT).
- LABELS MUST include article-specific data: actual numbers, terms, metrics, quotes.
- Process references (direct/style/palette) per prompt frontmatter — for direct usage, embed a textual description of the reference in the prompt (since image_generate doesn't take reference-image inputs).
Step 6: Generate Images
For each prompt file:
- Call imagegenerate(prompt=..., aspectratio=...). image_generate returns a JSON result containing an image URL; it does NOT write to disk and does NOT accept an output path.
- Map the prompt's ASPECT to image_generate's enum: 16:9 → landscape, 9:16 → portrait, 1:1 → square. Custom ratios → nearest named aspect.
- Download the returned URL to {output-dir}/NN-{type}-{slug}.png via terminal (e.g. curl -sSL -o "{output-dir}/NN-{type}-{slug}.png" "{url}").
- On generation failure, auto-retry once.
Note: the underlying image-generation backend is user-configured (default: FAL FLUX 2 Klein 9B) and is NOT agent-selectable via image_generate. Do not write model names into prompts expecting them to route.
Step 7: Finalize
Insert after the corresponding paragraph. Alt text: concise description in the article's language.
Report:
Article Illustration Complete!
Article: [path] | Type: [type] | Density: [level] | Style: [style] | Palette: [palette or default]
Images: X/N generatedModification
References
Pitfalls
- Data integrity is paramount — never summarize, paraphrase, or alter source statistics. "73% increase" stays "73% increase".
- Strip secrets — scan source content for API keys, tokens, or credentials before including in any output file.
- Don't illustrate metaphors literally — visualize the underlying concept.
- Prompt files are mandatory — no image generation without a saved prompt file. The file is what lets you regenerate or switch backends later.
- imagegenerate aspect ratios** — the tool supports landscape, portrait, and square. Custom ratios map to the nearest option.
- imagegenerate returns a URL, not a local file** — always download via terminal (curl) before inserting local image paths into the article.
- No backend selection from the agent — image_generate uses whatever model the user configured (default: FAL FLUX 2 Klein 9B). Don't write "use to generate this" into prompts expecting it to route.
More skills from NousResearch/hermes-agent
- A1passwordSet up op CLI, sign in, and read or inject secrets.
- A3-statement-modelBuild integrated IS/BS/CF financial workbooks in Excel.
- AaccelerateRun PyTorch training across GPUs with minimal changes.
- Cactual-setupSet up Actual Computer (actual.inc) inference in Hermes.
- Aadversarial-ux-testRoleplay a hostile user to find and triage UX pain points.
- Aagent-merge-conflict-arbiterNeutral arbiter for merge conflicts between two agents.
- AagentmailUse when an agent needs AgentMail CLI email inboxes.
- Aai-presenter-videoMake a verified AI presenter video from script + image.
- AairtableAirtable REST API via curl. Records CRUD, filters, upserts.
- AanatomyExplain an idea as an interactive isometric machine figure.
- Cantigravity-cliOperate the Antigravity CLI (agy): plugins, auth, sandbox.
- Aapple-notesManage Apple Notes via memo CLI: create, search, edit.