Agent skill

Compare Render

by hbmartin in hbmartin/graphviz2drawio

Visually verify graphviz2drawio conversion fidelity by rendering a graphviz source side-by-side as a native graphviz PNG and a converted draw.io PNG, then reading both images to compare.

GPL-3.0Auto-check passedTesting & QA

Install Compare Render

skills CLI
$ npx skills add hbmartin/graphviz2drawio --skill compare-render -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hbmartin/graphviz2drawio compare-render --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hbmartin/graphviz2drawio.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/compare-render .claude/skills/compare-render && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
compare-render
GitHub stars
275
Token cost
~1.2k tokens
SKILL.md length
491 words
Files
2
Skills in repo
3
Repo updated
First seen
Licence
GPL-3.0

At a glance

Visually verify graphviz2drawio conversion fidelity by rendering a graphviz source side-by-side as a native graphviz PNG and a converted draw.io PNG, then reading both images to compare.

  • Works in 5 steps: Pick 1–3 relevant test inputs from test/… → Render the "before" state first if you… → Make your change, then render "after" → …
  • Asks if output looks right
  • SKILL.md covers Core workflow, Choosing test inputs by…, Catching regressions beyond… and Practicalities
  • Calls brew and uv

What it does

Compare Render is an agent skill from hbmartin/graphviz2drawio. Visually verify graphviz2drawio conversion fidelity by rendering a graphviz source side-by-side as a native graphviz PNG and a converted draw.io PNG, then reading both images to compare. Use this whenever modifying conversion code in graphviz2drawio/ (nodes, edges, styles, text, layout), fixing a rendering or fidelity bug, or whenever the user asks if output "looks right" or "improved" — even if they don't explicitly ask for a visual check. Always verify visually before declaring a conversion change done.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/evals.json`).

It sits in Testing & QA. It works with draw.io. The repository describes itself as: Convert graphviz (dot) files to draw.io / lucid (mxGraph) format. Beautiful and editable graphs in your favorite editor. The licence is GPL-3.0.

When your agent uses it

  • Asks if output looks right
  • Improved — even if they dont explicitly ask for a visual check

Example prompts

  • “looks right”
  • “improved”
  • “/compare-render”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Pick 1–3 relevant test inputs from test/ that exercise the feature
  2. Render the "before" state first if you haven't made changes yet
  3. Make your change, then render "after"
  4. Read both PNGs with the Read tool and compare them deliberately,
  5. Report what you see honestly. Name specific differences ("the edge

What it can do on your machine

Read from SKILL.md and the folder at commit 96c691c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • brew
    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Compare Render loads about 1.2k tokens when it runs. Until then it costs about 131 tokens; SKILL.md has 491 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~131
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from hbmartin/graphviz2drawio at commit 96c691c, republished under its GPL-3.0 licence (© hbmartin). 491 words, ~1,219 tokens.

Download SKILL.mdSave it as .claude/skills/compare-render/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
compare-render
description
Visually verify graphviz2drawio conversion fidelity by rendering a graphviz source side-by-side as a native graphviz PNG and a converted draw.io PNG, then reading both images to compare. Use this whenever modifying conversion code in graphviz2drawio/ (nodes, edges, styles, text, layout), fixing a rendering or fidelity bug, or whenever the user asks if output "looks right" or "improved" — even if they don't explicitly ask for a visual check. Always verify visually before declaring a conversion change done.

Compare Render: Visual Fidelity Checking

graphviz2drawio converts Graphviz files into draw.io XML. Correctness here is ultimately visual: the draw.io render should look like what graphviz itself produces. Unit tests and spec diffs can pass while the output looks wrong, so any change to conversion logic should end with an actual side-by-side look.

Core workflow

  1. Pick 1–3 relevant test inputs from test/ that exercise the feature you're changing (see the table below). Prefer a small file plus one stress-test file.

  2. Render the "before" state first if you haven't made changes yet:

    bash
    ./scripts/compare_render.sh test/directed/hello.gv.txt tmp_render/before

    Skip this if the change is already made — the graphviz PNG is the ground truth either way, so an after-only comparison is still meaningful.

  3. Make your change, then render "after":

    bash
    ./scripts/compare_render.sh test/directed/hello.gv.txt tmp_render/after

    This produces <base>_graphviz.png (ground truth, rendered by dot) and <base>_drawio.png (your conversion, rendered by the draw.io CLI), plus the intermediate <base>.xml.

  4. Read both PNGs with the Read tool and compare them deliberately, checking each of:

    • overall layout: node positions and relative arrangement
    • node shapes, sizes, fill and border colors
    • edge routing (straight vs curved, where they attach), arrowheads and their direction
    • labels: text content, placement, font size; edge labels especially
    • clusters/subgraphs: bounding boxes present and enclosing the right nodes
  5. Report what you see honestly. Name specific differences ("the edge label sits on top of node B instead of beside the edge") rather than "looks good". If something regressed versus the before render or the graphviz reference, say so — a failed visual check is a finding, not a reason to skip the report.

Choosing test inputs by feature area

Feature being changedGood inputs (under test/)
Minimal smoke testdirected/hello.gv.txt
Node shapes / polygonsdirected/fsm.gv.txt, directed/switch.gv.txt
Clusters / subgraphsdirected/cluster.gv.txt, directed/compound.gv.txt, directed/subgraph_multiple.gv.txt
Colorsdirected/Twelve_colors.gv.txt
Gradientsgradient/colors.gv.txt, gradient/radial_angle.gv.txt
Edge routing / curvesundirected/polylines.gv.txt, undirected/polylines_curved.gv.txt
Portsdirected/port.gv.txt
Labels / multi-labelsdirected/multilabel.gv.txt, directed/tooltip.gv.txt
Records / HTML tablesdirected/datastruct.gv.txt, directed/UML_Class_diagram.gv.txt, directed/subgraph_with_tables.gv.txt
Radial layoutstwopi/twopi2.gv.txt, undirected/networkmap_twopi.gv.txt
Large/stress graphsdirected/Linux_kernel_diagram.gv.txt, directed/world.gv.txt
Show full SKILL.md (188 more words)Show less

Catching regressions beyond the file you're focused on

A fix for one feature frequently shifts output for many graphs. After the targeted comparison passes:

  • Textual spec check — converts every test input and diffs against the committed expected XML in specs/ (ignoring unstable ids):

    bash
    uv run ./scripts/test_specs.sh test tmp_out

    Differences are not automatically failures — if the new output is better, the specs should be updated (see scripts/generate_specs.sh). Decide by looking, not by diff size.

  • Visual spec check — renders any spec XMLs you've modified as _new.png / _old.png (HEAD version) / _reference.png (graphviz) trios:

    bash
    ./scripts/render_specs.sh test specs tmp_render

    Read the trios for each changed spec to confirm new beats old.

Practicalities

  • Run scripts from the repo root. Output dirs (tmp_render/, tmp_out/) are gitignored — never commit renders.
  • The script needs dot (brew install graphviz) and the draw.io CLI (brew install --cask drawio); it tells you which is missing.
  • The first draw.io CLI invocation can take ~10s while the app cold-starts; later runs are faster.
  • If the draw.io PNG comes out blank or missing, the converted XML is likely malformed — inspect the intermediate <base>.xml in the output dir before blaming the renderer.

© hbmartin, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .claude/skills/compare-render of hbmartin/graphviz2drawio.

  • SKILL.md
  • evals/evals.json

Open the folder on GitHubat commit 96c691c

Compare with similar skills

Compare Render next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Compare Render compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Compare Render this skillhbmartin/graphviz2drawio275—~1.2kAutomated safety check: PassGPL-3.0
V2 Model Supportmirage-project/mirage2.5k—~5.3kAutomated safety check: PassApache-2.0
Pneuma Diagrampandazki/pneuma-skills162—~2.2kAutomated safety check: PassMIT
Web Application Testinganthropics/skills180k51 repos~966Automated safety check: PassApache-2.0
Diagram Designcathrynlavery/diagram-design45k1 repos~7.5kAutomated safety check: PassMIT
Diagnosing Bugsfossasia/eventyay-interpretation1.6k32 repos~2.1kAutomated safety check: PassApache-2.0

Similar skills

  • V2 Model Support

    mirage-project/mirage

    End-to-end pipeline for adding or porting a model to MPK Runtime-V2 — from a compute-graph spec (shapes + draw.io graph + HF checkpoint + TP/EP plan) to a working multi-GPU demo.

    2.5k GitHub stars~5.3k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Pneuma Diagram

    pandazki/pneuma-skills

    Create and edit draw.io diagrams in the Pneuma Diagram workspace.

    162 GitHub stars~2.2k tokensUpdated 10 days ago
    DevelopmentAuto-check passed
  • Web Application Testing

    anthropics/skills

    Official

    Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.

    180k GitHub starsUsed in 51 repos~966 tokens
    Testing & QAAuto-check passed
  • Diagram Design

    cathrynlavery/diagram-design

    Creates branded diagrams, from architecture, flowchart and sequence to charts and maps, as self-contained HTML with inline SVG, with import from draw.io, Mermaid and Excalidraw.

    45k GitHub starsUsed in 1 repo~7.5k tokens
    DevelopmentAuto-check passed
  • Diagnosing Bugs

    fossasia/eventyay-interpretation

    Diagnosis loop for hard bugs and performance regressions. An agent skill from fossasia/eventyay-interpretation.

    1.6k GitHub starsUsed in 32 repos~2.1k tokens
    Testing & QAAuto-check passed
  • Draw.io Diagram Studio

    Agents365-ai/drawio-skill

    Creates and edits editable draw.io diagrams from descriptions, code, infrastructure files, SQL and API schemas, with sync, review, test and export tools.

    10k GitHub stars~2.4k tokensUpdated 6 days ago
    DevelopmentAuto-check: notes

More from hbmartin/graphviz2drawio

  • Sonarqube Analysis

    hbmartin/graphviz2drawio

    Inspect SonarQube Cloud/SonarCloud findings for this repository using local .env credentials.

    275 GitHub stars~508 tokensUpdated 2 mo ago
    Auto-check: notes
  • Compare Render

    hbmartin/graphviz2drawio

    Visually verify graphviz2drawio conversion fidelity by rendering a Graphviz source as both native Graphviz PNG and converted draw.io PNG, then inspecting the images.

    275 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed

Works with

Categories

Questions about Compare Render

What does Compare Render do?

Visually verify graphviz2drawio conversion fidelity by rendering a graphviz source side-by-side as a native graphviz PNG and a converted draw.io PNG, then reading both images to compare. Compare Render is an agent skill from hbmartin/graphviz2drawio.io PNG, then reading both images to compare.

When should I use Compare Render?

Compare Render fits situations like: asks if output looks right; improved — even if they dont explicitly ask for a visual check.

How do I install Compare Render in Claude Code?

Run `npx skills add hbmartin/graphviz2drawio --skill compare-render -a claude-code`. Or copy the skill folder (.claude/skills/compare-render in hbmartin/graphviz2drawio) into .claude/skills/compare-render in your project. Claude Code loads it when a task matches its description.

How do I install Compare Render in Codex?

Run `npx skills add hbmartin/graphviz2drawio --skill compare-render -a codex`. Or copy the skill folder (.claude/skills/compare-render in hbmartin/graphviz2drawio) into .agents/skills/compare-render in your project. Codex loads it when a task matches its description.

Can I use Compare Render in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hbmartin/graphviz2drawio --skill compare-render -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/compare-render, .gemini/skills/compare-render, .github/skills/compare-render and .opencode/skills/compare-render in your project.

What does Compare Render need to run?

Going by SKILL.md and its folder, Compare Render needs the command-line tools its instructions call (brew and uv).

Does Compare Render access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Compare Render safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Compare Render use?

Compare Render is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Compare Render use?

About 1.2k tokens (SKILL.md is roughly 4.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Compare Render?

Skills that share tags, products or a category with Compare Render: V2 Model Support (mirage-project/mirage, 2.5k stars), Pneuma Diagram (pandazki/pneuma-skills, 162 stars), Web Application Testing (anthropics/skills, 180k stars) and Diagram Design (cathrynlavery/diagram-design, 45k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Compare Render?

hbmartin (a GitHub user) maintains it in hbmartin/graphviz2drawio, which has 275 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on August 7, 2026.

Source: hbmartin/graphviz2drawio on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.