From claudster
draw.io diagram creation, editing, and review. Use for .drawio XML editing, PNG conversion, layout adjustment, and AWS icon usage.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claudster:draw-ioThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Works with:** Any AI coding agent (Claude, Cursor, GitHub Copilot, Windsurf, etc.)
Works with: Any AI coding agent (Claude, Cursor, GitHub Copilot, Windsurf, etc.)
| 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 |
.drawio files (XML format).drawio.png directlydefaultFontFamily in <mxGraphModel> tagfontFamily in each text element's stylebackground="#ffffff" attributepage="0" for transparent backgroundendArrow=block;endFill=1strokeColor=<visible color>;strokeWidth>=1mxCell inside another mxCell; all mxCell entries must be direct children of <root>.mxCell nodes with parent set to the edge id.mxGeometry) inside a given mxCell.dx/dy near 0.pageWidth/pageHeight large enough).dx/dy before finalizing.<mxGraphModel defaultFontFamily="Arial" page="0">
<!-- Title (always first) -->
<mxCell id="title" value="Diagram Title" .../>
<!-- Arrows (back layer) -->
<mxCell id="arrow1" style="edgeStyle=..." edge="1">
<mxGeometry relative="1">
<mxPoint x="100" y="200" as="sourcePoint"/>
<mxPoint x="500" y="200" as="targetPoint"/>
</mxGeometry>
</mxCell>
<!-- Elements (front layer) -->
<mxCell id="box1" .../>
</mxGraphModel>
Use latest mxgraph.aws4.* icons:
<!-- Resource icon -->
style="shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.ec2;"
<!-- Official names -->
value="Amazon ECS" <!-- Not "ECS" -->
value="AWS Lambda" <!-- Not "Lambda" -->
Find icons: python scripts/find_aws_icon.py <service>
Align elements vertically:
Box 1: y=100, height=80 → center = y + h/2 = 140
Box 2: y=120, height=40 → center = y + h/2 = 140
Result: Aligned ✓
Container margin check:
Frame: y=20, height=400 → range 20-420
Element: y=50 → margin from top = 50-20 = 30px ✓
Element: y+h=390 → margin from bottom = 420-390 = 30px ✓
Overlapping arrows: Move arrow XML after title, before elements
Text cut off: Increase width in mxGeometry
No PNG output: Check drawio --version, install if missing
Element overflow: Verify 30px margins from container
Could not add object for mxCell: flatten malformed nested mxCell nodes into root-level siblings
Diagram opens out of sight: reset dx/dy close to 0 and move all key geometries to positive coordinates
Arrows not visible: add endArrow=block;endFill=1 and explicit strokeColor on each flow edge
Run these checks after every .drawio XML edit:
mxCell structural checkmxCell contains a child mxCell.dx/dy are sane and geometry coordinates are not unintentionally far negative.page="0" (no background)endArrow=block;endFill=1) and visible stroke colorsmxCell nodes (all cells are root-level siblings)mxCell nodes with parent=<edge_id>dx/dy near 0 and page size fits diagram boundsSee references/ directory for:
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub saajunaid/junai --plugin claudster