Draws architecture diagrams as editable draw.io files with a fixed house style, C4 levels, evidence-tagged shapes, and optional multi-view identity checks. Use when producing a system context, container, component, deployment, data flow, sequence, state, or ERD, or redrawing an ASCII or Mermaid one.
Never hand-write mxGraph XML. Write a spec; the scripts own every visual decision, so diagrams stay identical across authors, repositories, and sessions.
spec.json — schema in diagram-spec.md. For an ERD,
generate it: python3 scripts/schema_to_spec.py db/schema.sql --title "<System> — ERD" -o spec.jsonpython3 scripts/validate_spec.py spec.jsonpython3 scripts/render_drawio.py spec.json -o docs/architecture/<slug>.drawio --strict
(exit 2 = a layout finding; change the spec, per layout-rules.md)python3 scripts/validate_manifest.py view-manifest.jsonpython3 scripts/export_drawio.py docs/architecture/<slug>.drawio -f png -o docs/architecture/<slug>.png,
else ship the .drawio and say the image was not exported. See export paths.The JSON spec is the semantic source of truth; .drawio is the editable presentation and the
image is a copy for a deck. Generated XML records its own baseline; regeneration protects
manual edits by default. Use --acknowledge-manual-edits only after returning semantic changes to the spec.
assumed or unverified for honest design uncertainty.metric carries the load or SLO that sized the node,
constraint says why it exists; never invent either.style: async for events.gcp:* and aws:* are official icons; every other
vendor is a cloud:* kind with the service named in sublabel. No Azure logos exist in
the bundle, so Azure is always cloud:*.| Thought | Reality |
|---|---|
| "It is one box, I will write the XML" | The renderer owns style, legend, and title block. Use it. |
| "Close enough, I will guess this service" | Guesses ship as facts. Omit the evidence and let it render UNVERIFIED. |
| "Managers want the whole system on one page" | Past 12 nodes they stop reading. Split it. |
assets/fixtures/<type>.spec.json, one per diagram type, plus schema samples under assets/fixtures/schemas/.specialist-solution-diagrammer.1fa7789
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.