Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add saajunaid/caddis-plugin --skill draw-iogit clone --depth 1 https://github.com/saajunaid/caddis-pluginWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/saajunaid/caddis-plugin/draw-io)<a href="https://agentmods.dev/skills/saajunaid/caddis-plugin/draw-io"><img src="https://agentmods.dev/badge/skills/saajunaid/caddis-plugin/draw-io/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/saajunaid/caddis-plugin/draw-io"><img src="https://agentmods.dev/badge/skills/saajunaid/caddis-plugin/draw-io.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00033 | $0.01491 |
| Opus 5.5 | $0.00013 | $0.00596 |
| Sonnet 5.5 | $0.00007 | $0.00298 |
| Haiku 4.5 | $0.00003 | $0.00149 |
Grade A, and why
draw-io scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 163 lines — stays where its author put it; the contents beside it link to each section on GitHub.
draw.io Diagram Skill
Works with: Any AI coding agent (Claude, Cursor, GitHub Copilot, Windsurf, etc.)
Quick Reference
| Task | Command |
|---|---|
| Convert to PNG | bash scripts/convert-drawio-to-png.sh file.drawio |
| Find AWS icon | python scripts/find_aws_icon.py ec2 |
| List all icons | python scripts/find_aws_icon.py --list-all |
| Direct export | drawio -x -f png -s 2 -t -o out.png in.drawio |
Core Rules
File Handling
- Edit only
.drawiofiles (XML format) - Never edit
.drawio.pngdirectly - Always verify PNG output after changes
- After edits, validate XML structure before handing off
Fonts
- Set
defaultFontFamilyin<mxGraphModel>tag - Set
fontFamilyin each text element's style - Use 18px+ for presentations, 14px minimum
Background
- Remove
background="#ffffff"attribute - Use
page="0"for transparent background
Arrows
- Critical: Place arrows after title, before other elements
- Maintain 20px clearance from labels
- Use explicit coordinates for text element connections
- For flow edges, set explicit arrowheads and stroke styling:
endArrow=block;endFill=1strokeColor=<visible color>;strokeWidth>=1
XML Structure (Critical)
- Never nest
mxCellinside anothermxCell; allmxCellentries must be direct children of<root>. - Edge labels must be separate sibling
mxCellnodes withparentset to the edge id. - Keep only geometry/content tags (for example
mxGeometry) inside a givenmxCell.
Viewport and Coordinates
- Use sane viewport defaults: keep
dx/dynear 0. - Ensure page dimensions cover the full drawing bounds (
pageWidth/pageHeightlarge enough). - Keep nodes/points in positive in-canvas coordinates unless there is an explicit reason not to.
- If a diagram opens off-screen, normalize coordinates and reset
dx/dybefore finalizing.
Container Margins
- Must: 30px minimum margin from frame boundaries
- Calculate: element top ≥ frame.y + 30
- Calculate: element bottom ≤ frame.y + frame.height - 30
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 163 lines · 33 tokens per session scan A 1ecaa646bc47
draw-io is a skill published in the GitHub repository saajunaid/caddis-plugin (0 stars, last pushed 2d ago), licensed MIT. It adds 33 tokens to every session and 1,491 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
goga-define-experience
Define the user experience required to achieve the established product goals and solve the identified problem.
render-html-page
Convert a finished trip plan into a polished, self-contained HTML page using the design system.
anti-slop-image-direction
Opt-in, paid reference images for marketing or new-site work: plan one image per section, confirm count, backend and cost, generate with pi-nano-banana, then distill a written direction brief for the mockup loop. Images are direction, never source. Never for product UI. Triggers: "generate design references", "image…
vectorcraft
Headless vector illustration with VectorCraft (Illustrator-style paths, shapes, type, fills/strokes), provisioned on demand by pi-craft - draw shapes and export svg, pdf or png, or convert between vector formats. Use for "draw a logo as an svg", "export this illustration as a pdf", "convert this svg to a png at 2x"…
goga-define-challenge
Challenge the complete product definition before the PRD is generated.
goga-prototype-contracts
Designing usages and annotations per cell for the prototype pipeline.