iterative-design
Use this skill whenever the user is iterating on a visual — flat graphics, logos, badges, t-shirt prints, hockey/sports graphics, or subtle photo edits across…
Skill by Deibler
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/deibler-iterative-design
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/iterative-design
What's inside
- Skill name
iterative-design- Description
- Use this skill whenever the user is iterating on a visual — flat graphics, logos, badges, t-shirt prints, hockey/sports graphics, or subtle photo edits across multiple rounds. Triggers on phrases like "try it with", "move it", "make it bigger", "change the color", "not quite right", or when the user sends back a marked-up or regenerated image. Keeps an editable SVG source of truth between rounds, renders PNGs for iMessage delivery, generates parallel candidate variants for fuzzy feedback, overlays labeled grids when the user "can see it but can't describe it", and chains with the `generation` skill for AI illustration layers. Also use when starting any new design destined for screen print (t-shirts, posters, banners).
- License
- MIT
- Instructions
- 179 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (20)
- SKILL.md
- brief-template.md · references/
- feedback-playbook.md · references/
- prompt-templates.md · references/
- svg-recipes.md · references/
- annotate_grid.py · scripts/
- detect_markup.py · scripts/
- distress.py · scripts/
- photo_to_svg.sh · scripts/
- printability_check.py · scripts/
- remove_bg.sh · scripts/
- render_svg.sh · scripts/
- size_check.sh · scripts/
- stylize.sh · scripts/
- svg_optimize.py · scripts/
- svg_validate.sh · scripts/
- svgo_final.sh · scripts/
- trace_color.sh · scripts/
- trace_sketch.sh · scripts/
- variant_grid.py · scripts/
SKILL.md (first lines)
# iterative-design Use this when someone is **iterating** on a visual. One-shot generation goes to `image-gen` or `generation`. This skill owns the multi-round loop: source-of-truth between rounds, decoding fuzzy feedback, changing one thing without regenerating everything, and landing on a final that screen-prints cleanly. ## Modes — pick one at round 1, stick with it **SVG mode** for anything with text, geometric shapes, circular typography, borders, or destined for screen print / vinyl cut. SVG is the only sane way to do 15 rounds of "5px left, wrong color, go back to round 2." Pixel regenerations drift; SVG edits don't. **Raster mode** for photograph edits and scene composition. Delegate the pixels to the `generation` skill; this skill owns the loop (versioning, feedback decoding, variant fans). Mixed (illustrated badge with an AI mascot): SVG mode with the raster as an embedded `<image href="...">` layer. Regenerate only the illustration when swapping the mascot; the badge structure stays stable. ## CLI toolkit All installed and on PATH. Reach for the right tool on the first try — the common failure mode is defaulting to `potrace` or `magick -fuzz` for everything and shipping washed-out output. | Need | Tool / script | |---|---| | Vectorize a **color** raster (logo, badge, multi-color mark) | `scripts/trace_color.sh` (vtracer) | | Vectorize **B&W** line art, silhouette, hand sketch | `scripts/trace_sketch.sh` (potrace) | | Remove background from a photo, **keep interior colors** | `scripts/remove_bg.sh` (rembg / U²-Net) | | Photoshop-style filter on a raster (sepia, pencil, quantize) | `scripts/stylize.sh` (gmic) | | Stylized geometric-shapes SVG from a photo (triangles, ellipses) | `scripts/photo_to_svg.sh` (primitive) | | Render SVG → PNG (fast, most cases) | `scripts/render_svg.sh` (rsvg-convert) | | Render SVG → PNG (accurate — gradients, filters, complex files) | `resvg in.svg out.png` | | Edit SVG programmatically (boolean ops, text→path, flatten) | `inkscape --actions='...'` | | Clean SVG **between rounds** (safe, preserves IDs) | `scripts/svg_optimize.py` | | SVG **final export** optimization (aggressive multipass) | `scripts/svgo_final.sh` (svgo) | | Apply distress / grunge | `scripts/distress.py` | | Labeled grid overlay for "I can see it but can't describe it" | `scripts/annotate_grid.py` | | Side-by-side variant picker | `scripts/variant_grid.py` | | Detect user-drawn markup on a returned image | `scripts/detect_markup.py` | | Optimize final PNG for delivery | `oxipng -o max --strip safe file.png` | | Inspect/strip metadata | `exiftool` | ### Tool-selection rules - **Color trace:** use `trace_color.sh` (vtracer). Never `potrace` — it is B&W only and will collapse all color to a single fill. This is the Warriors/Bears-Cup-logo failure mode. - **Background removal:** use `remove_bg.sh` (rembg). Never `magick -fuzz` or `-transparent white` for anything non-trivial — fuzz-based removal eats interior regions that happen to match the background (red logo on white → red shadows inside the logo also vanish). - **Before tracing a photo:** run `remove_bg.sh` first. Tracing a raster with its white field intact gives you a 2000x2000 white polygon behind the subject. - **Render before delivery:** SVG → PNG always. iMessage can't preview SVGs, and `.svg` attachments arrive as `.txt`. ## The four phases ### 1. Brief (round 0, ~30 seconds) Before touching the canvas, ground the design. Read `references/brief-template.md` for the question set. For a repeat user like Casey, most of the brief is already in his person file — palette preferences (vintage navy + cream), format (flat on white, no mockup), and style (distressed collegiate). Still confirm anything ambiguous with **one** multi-choice question rather than a freeform ask: > "Going full distress like the Salty Dog, or cleaner like the pirate one?" Write the brief to `design-<slug>/brief.md` so round 5 doesn't drift. ### 2. Explore (first delivery, parallel candidates) For a fresh design, generate **three candidates in parallel** with distinct interpretations, not three variations on the same interpretation. Compose with `scripts/variant_grid.py` into one image and deliver. One round of "which direction?" beats three rounds of guessing at intent. For an iteration on an existing design, skip this phase and go straight to Refine. ### 3. Refine (rounds 2..N) The loop: ``` receive tweak → interpret → edit source → render → deliver ``` **Interpret** — the tweak arrives as text, a marked-up image, a silent new photo (a visual target), or nothing at all (they just sent a new reference). For text tweaks see `references/feedback-playbook.md`. For marked-up images, run `scripts/detect_markup.py` to locate the region. **Edit, don't regenerate.** In SVG mode: change the one attribute — `transform`, `fill`, `stroke-width`, a `textPath` content string. In raster mode: pass the *previous round* (not the original) as `reference_images` so the AI is editing what they saw, not starting over. **When the user sends a raster and asks for an SVG.** Two steps, always in this order: ```bash bash scripts/remove_bg.sh input.png design-<slug>/trace-src.png # if bg needs to go bash scripts/trace_color.sh design-<slug>/trace-src.png design-<slug>/source.svg ``` Then `render_svg.sh` and deliver. If the user asks to "clean up" or "make it editable" after that, run `svg_optimize.py` — `svgo_final.sh` is for the final export only. **When the user asks for a style variation on a photo** (oil paint, sepia, pencil), use `stylize.sh` rather than regenerating — it preserves the subject exactly and just treats the pixels. **When genuinely stuck** — two-round rule. If you've asked "do you mean X or Y" once and missed, switch modes: - `scripts/annotate_grid.py` overlays labeled cells (A1–D4) on the last round. Send back and ask "which cell is off?" Users can nearly always point, even when they can't describe. - `scripts/variant_grid.py` composes 3 focused candidates. Use when you have a guess but want to cover adjacent options. **Render.** SVG → PNG is not optional before sending; iMessage can't preview SVGs. ```bash bash scripts/render_svg.sh source.svg rounds/NN.png --width 2400 ``` **View before you send.** Always `Read` the rendered PNG yourself before delivering. This is the step that catches "potrace flattened the Warriors red to black," "rembg took a chunk out of the beard," or "the SVG has a 2000px white rectangle behind the logo." One visual check per round is cheaper than one round of user confusion. ### 4. Export (final round) Before declaring done, run three checks: ```bash bash scripts/svg_validate.sh source.svg # well-formed XML / SVG structure bash scripts/svgo_final.sh source.svg source.min.svg # aggressive multipass optimization bash scripts/size_check.sh source.svg rounds/size-strip.png # legibility at 2400/800/400/128 ``` Use `svgo_final.sh` only for the *final* export — it merges paths and can drop the anchors you used between rounds. For in-loop cleanup stick to `svg_optimize.py`. Optimize the PNG delivery too: ```bash oxipng -o max --strip safe rounds/final.png ``` For screen print, also run: ```bash python3 scripts/printability_check.py rounds/NN.png ``` Surface any warnings to the user *before* they send to the printer. Then apply distress if that's the style: ```bash python3 scripts/distress.py rounds/NN.png rounds/NN-distressed.png --intensity 0.4 ``` Keep both the clean and the distressed version — some printers want the clean SVG, not the grunge PNG.
From Deibler/edmund-harness, MIT.
More from Deibler/edmund-harness
- 0.589score
hike
Deibler
Build a hike brief with a real topographic map, the traced route from OpenStreetMap, trailhead coordinates, and verified conditions.
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
radaromega
Deibler
THE weather source — all weather questions route here, from "is it gonna rain" to severe outbreaks.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
deep-research
Deibler
Multi-agent deep-research orchestrator.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
gifgrep
Deibler
Search Tenor/Giphy and send a GIF into the chat.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
summarize
Deibler
TL;DR a URL, YouTube video, or local PDF/file via the `summarize` CLI (Gemini Flash).
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
cloudflare
Deibler
Headless browser automation via Cloudflare Browser Run — screenshot pages, render PDFs, extract markdown/HTML/links, scrape DOM elements with CSS selectors…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
skycam
Deibler
The sky camera over the house (openskycam, camera sky01, Lancaster County PA), through the `mcp__openskycam__*` tools.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
agents
Deibler
Delegate long-running work (research, deep summaries, multi-step analysis) to detached sub-agents.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
fishing
Deibler
Ground any PA, MD, NJ, or DE fishing question in the local fishing dataset—waters, bass and other species, stocking, catches, boat access, motor rules, depth…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
teams
Deibler
Coordinate multiple sub-agents as one unit — parallel investigation, multi-stage pipelines, or side-by-side comparisons.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
trading-loop
Deibler
The autonomous trading decision loop for Quant.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
generation
Deibler
Comprehensive multimodal generation via OpenRouter — images (with reference photos), videos (text/image/reference-to-video), and spoken audio.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 4, 2026 (1 month ago)
- Last release
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Deibler/edmund-harness
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Deibler
- 0.589score
hike
Deibler
Build a hike brief with a real topographic map, the traced route from OpenStreetMap, trailhead coordinates, and verified conditions.
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
radaromega
Deibler
THE weather source — all weather questions route here, from "is it gonna rain" to severe outbreaks.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
deep-research
Deibler
Multi-agent deep-research orchestrator.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
gifgrep
Deibler
Search Tenor/Giphy and send a GIF into the chat.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
cloudflare
Deibler
Headless browser automation via Cloudflare Browser Run — screenshot pages, render PDFs, extract markdown/HTML/links, scrape DOM elements with CSS selectors…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
skycam
Deibler
The sky camera over the house (openskycam, camera sky01, Lancaster County PA), through the `mcp__openskycam__*` tools.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
iterative-design skill. Agent Mart. https://agentmart.dev/skills/deibler-iterative-design (last updated 2026-10-24)