delegate-image
Generate a visual — SVG via text models (Astra) for logos and diagrams, a raster panel for photos — judged by two independent models.
Skill by joewalnes
Chalk Labs
Need help deploying delegate-image?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/joewalnes-delegate-image
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/delegate-image
What's inside
- Skill name
delegate-image- Description
- Generate a visual — SVG via text models (Astra) for logos and diagrams, a raster panel for photos — judged by two independent models. Use for any image ask.
- License
- MIT
- Instructions
- 66 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (4)
- SKILL.md
- generate-image.py · scripts/
- image-panel.py · scripts/
- svg-panel.py · scripts/
SKILL.md (first lines)
# Delegate: visuals — pick the output type, then the panel
Claude can't generate raster images, but it can write SVG, and so can any capable text model. So the first decision is not which model — it's **which kind of file the user actually wants.** Get that wrong and a photorealistic model produces a blurry logo, or a vector model is asked for a sunset.
## 1. Choose the output type
| The ask | Output | Why |
|---|---|---|
| Logo, mark, icon, badge, diagram, chart, schematic, pictogram — anything with flat shapes, text, or that must scale, be edited, or **animate** | **SVG** | Resolution-independent, editable, tiny, animatable with CSS or SMIL, and reviewable as source. The user will want to change a colour or a word later; with a PNG they can't. |
| Photo, scene, person, product shot, texture, illustration with lighting and depth — anything photorealistic or painterly | **Raster** (PNG) | This is what image-generation models are for; no text model can do it. |
| "Animated logo", "loading spinner", "hero animation" | **SVG with animation** | CSS `@keyframes` inside `<style>` (broadest support) or SMIL; the static first frame must stand on its own. |
When in doubt: *if the user would ever want to edit it, it's SVG.* Say which type you chose and why in one line; if the ask genuinely straddles (a logo *and* a photo of it on a mug), do both.
## 2a. SVG panel — text models
```bash
python3 <skill-dir>/scripts/svg-panel.py "<prompt>" <output-dir> [--models openai/gpt-6-astra,z-ai/glm-5.3]
python3 <skill-dir>/scripts/svg-panel.py --render-only <output-dir>/claude.svg
```
- **Models:** `openai/gpt-6-astra` (ZDR on OpenRouter, ~$0.10 per graphic at $10/$50 per Mtok — the strongest text model available for this) and `z-ai/glm-5.3`. Astra is used **only here** — it has no image output, so it never appears in the raster panel.
- **Claude's own entry.** The Agent running this also writes one itself as `<output-dir>/claude.svg`, then renders it with `--render-only`. Three entries, three lineages.
- The script asks each model for *only* an SVG, extracts the first `<svg>…</svg>`, rejects anything that doesn't parse as XML, saves `<model>.svg`, and renders `<model>.png` with `rsvg-convert` so the judges can *see* it. Animated SVGs render as their first frame.
- **Write the prompt for a vector artist**: shapes and their relationship, palette as hex, "no text" unless wanted, target sizes ("works at 32px"), and for animation: what moves, how long, and that the first frame must be presentable.
## 2b. Raster panel — image models
```bash
python3 <skill-dir>/scripts/image-panel.py "<detailed prompt>" <output-dir>
```
Runs three Gemini image tiers in parallel (the only ZDR-clean image generators on OpenRouter — OpenAI's image models have no ZDR endpoint), saves `flash.png`, `nano-banana.png`, `pro.png`, and writes per-model cost. Benchmarked 2026-09-01 on 4 prompts, blind-judged:
| Rank | Model | Notes |
|---|---|---|
| 1 | `google/gemini-3.1-flash-image` | Won 3 of 4; best all-rounder |
| 2 | `google/gemini-2.5-flash-image` ("nano banana") | Won the photorealistic nature shot |
| 3 | `google/gemini-3-pro-image` | Won the logo test; priciest (~$0.14/img) — but logos are SVG now |
The user generates images rarely, so the 3-model panel (~$0.24) is the default; don't downgrade to one model to save money unless asked. To edit an existing raster, call `scripts/generate-image.py` directly with `-i input.png`.
## 3. Two independent judges — same for both panels
Sequentially (concurrent calls can trip OpenRouter's credit hold), two vision models from lineages other than the generators':
```bash
cd <output-dir> && pi -p --no-tools --no-session --provider openrouter --model moonshotai/kimi-k2.5 -- @a.png @b.png @c.png "<judge prompt>"
cd <output-dir> && pi -p --no-tools --no-session --provider openrouter --model z-ai/glm-4.6v -- @a.png @b.png @c.png "<judge prompt>"
```
For **raster**: "These N images were generated from the prompt '<prompt>'. For each, a one-sentence critique; then your favourite with a one-sentence reason."
For **SVG**, attach the PNGs *and* paste the SVG sources, and ask additionally: does it read as the concept at 32px and at 256px; is the source clean (a `viewBox`, no embedded rasters, no scripts, sane path count); for animation, does the described motion serve the mark or decorate it. A judge that can't see images will still produce a plausible critique from filenames — confirm `pi --list-models <name>` shows `images: yes`, and that the critique cites visual specifics.
## 4. Execution — one Agent call, one clean response
The user invokes this and expects **the files plus two quick critiques in a single response**, not a play-by-play. All of it — the type decision, the panel, Claude's own SVG, rendering, judging — happens inside **one Agent tool call** (general-purpose). It runs asynchronously; after dispatching, say nothing and wait for the completion notification. Brief the agent with the ask, the type you chose, both command lines, the judge prompts, and: send every output with SendUserFile (`display: render`; for SVG send both the `.svg` and its `.png`), then return **only** each judge's pick and one-sentence reason, your own one-sentence recommendation, and cost.
If any raster is a photorealistic depiction of a real, identifiable person, say so in one line and keep it out of anything published.
## 5. After the Agent returns
Relay in one short message: which entry each judge picked and why, your own take, the cost. Nothing about mechanics.From joewalnes/skills, MIT.
More from joewalnes/skills
- 0.569score
docs
joewalnes
Plan and write user documentation — Diátaxis structure, audience first, a reader test before merge.
SkillBFreshness: B★ 3Claude Code +9 - 0.568score
request
joewalnes
Ask another project's agents for a change instead of editing their repo.
SkillBFreshness: B★ 3Claude Code +9 - 0.566score
slop
joewalnes
Find unchosen code — surface area growing without leverage.
SkillBFreshness: B★ 3Claude Code +9 - 0.564score
delegate-review
joewalnes
Independent code review of Claude's own work by a different model lineage (Kimi) via pi.
SkillBFreshness: B★ 3Claude Code +9 - 0.564score
fleets
joewalnes
Which go-team fleets are alive, across every project — leases, last landing, session state.
SkillBFreshness: B★ 3Claude Code +9 - 0.563score
project-setup
joewalnes
Walk through project setup improvements for efficient AI-assisted development
SkillBFreshness: B★ 3Claude Code +9 - 0.563score
sitrep
joewalnes
Where were we?
SkillBFreshness: B★ 3Claude Code +9 - 0.558score
delegate-private
joewalnes
Run a task on a local Ollama model so data never leaves the device.
SkillBFreshness: B★ 3Claude Code +9 - 0.558score
bug-bash
joewalnes
Work through a project's bug list autonomously, fixing bugs in priority order
SkillBFreshness: B★ 3Claude Code +9 - 0.525score
bug
joewalnes
Alias for /todo — add a bug to the tracker.
SkillBFreshness: B★ 3Claude Code +9 - 0.443score
release-setup
joewalnes
Set up automated cross-platform binary releases for a Go project
SkillDFreshness: D★ 3Claude Code +9 - 0.443score
import-skill
joewalnes
Discover and import Claude Code skills into this shared repo
SkillDFreshness: D★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 3
- Open issues
- 0
- Last commit (this folder)
- Sep 7, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/joewalnes/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from joewalnes
- 0.569score
docs
joewalnes
Plan and write user documentation — Diátaxis structure, audience first, a reader test before merge.
SkillBFreshness: B★ 3Claude Code +9 - 0.568score
request
joewalnes
Ask another project's agents for a change instead of editing their repo.
SkillBFreshness: B★ 3Claude Code +9 - 0.566score
slop
joewalnes
Find unchosen code — surface area growing without leverage.
SkillBFreshness: B★ 3Claude Code +9 - 0.564score
fleets
joewalnes
Which go-team fleets are alive, across every project — leases, last landing, session state.
SkillBFreshness: B★ 3Claude Code +9 - 0.564score
delegate-review
joewalnes
Independent code review of Claude's own work by a different model lineage (Kimi) via pi.
SkillBFreshness: B★ 3Claude Code +9 - 0.563score
project-setup
joewalnes
Walk through project setup improvements for efficient AI-assisted development
SkillBFreshness: B★ 3Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get delegate-image running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
delegate-image skill. Agent Mart. https://agentmart.dev/skills/joewalnes-delegate-image (last updated 2026-10-24)