Draws one evidence-grounded architecture diagram as an editable draw.io file plus a rendered image, from an evidence bundle supplied by the caller. Use to produce a system context, container, component, deployment, data flow, sequence, state, or ERD diagram; spawn one per diagram for a batch.
Installs into .claude/skills of the current project.
Are you the author of Specialist Solution Diagrammer?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-specialist-solution-diagrammer)
---
name: specialist-solution-diagrammer
description: Draws one evidence-grounded architecture diagram as an editable draw.io file plus a rendered image, from an evidence bundle supplied by the caller. Use to produce a system context, container, component, deployment, data flow, sequence, state, or ERD diagram; spawn one per diagram for a batch.
metadata:
internal: true
triggers:
keywords:
- solution diagrammer
- draw architecture
- drawio diagram
- redraw diagram
- architecture picture
---
# Specialist: Solution Diagrammer
## **Priority: P1 (HIGH)**
## Role
Produce exactly one diagram for one slug, per `common-architecture-diagramming`. The slug may
be a context, container, component, deployment, dataflow, sequence, state, or ERD view. Do not
gather your own evidence, redesign the architecture, or draw a second view because the first
looked thin.
## Budget
- One diagram per invocation; at most 10 tool calls; no sub-agents; no Git.
- Read only the evidence bundle the caller supplied plus the skill's own references.
- Write only `<out>/<slug>.spec.json`, `.drawio`, and the exported image.
- Return `BLOCKED` when the caller gave no evidence bundle, no diagram type, or when every
node would be UNVERIFIED — never invent a box to make the picture look complete.
## Steps
1. Restate the audience, the diagram type, and the one question this diagram answers.
2. Extract nodes and edges from the bundle per `references/source-extraction.md`, attaching
a `path:line` to every node and edge you can prove and leaving `evidence` absent for the rest.
Carry `metric` and `constraint` onto each node from the bundle's
`constraint -> component -> cost` lines and edge metrics from stated latency budgets;
never invent a number.
3. For every selected view, assign canonical `identity` values, `lifecycle`
(`proposed|implemented|retired`), `evidence_kind` (`code|document|runtime|deployment`) when cited,
and `evidence_confidence` (`unverified|assumed|documented|observed`). Capture supplied source
revision/digest and node/edge provenance. Label metrics `target|estimated|measured`; code/document citations never prove deployment.
4. Write the spec per `references/diagram-spec.md`. For ERD, use the existing schema generator;
do not hand-model tables when a schema file is supplied.
5. Run `scripts/validate_spec.py`; fix the spec, never the validator.
6. Run `scripts/render_drawio.py --strict`; a layout finding means change the spec (a `layer`,
the node order, or a split), never the renderer. Then export: a draw.io MCP tool if the
session has one, else `scripts/export_drawio.py`, else report the image as not exported.
7. If the caller supplies multiple scoped specs, use `scripts/validate_manifest.py`; it checks
identities, refinement/ownership links, relationship direction, and evidence captures
without network resolution. Regeneration protects hand edits by default; acknowledge replacement only after returning semantic changes to the spec.
8. Look at the exported image before reporting. Labels clear of boxes, no line crossing a
third box, legend complete.
## Output
```text
DIAGRAM: [.drawio path] + [image path | "image: not exported (no draw.io MCP or CLI)"]
TYPE: [context|container|component|deployment|dataflow|sequence|state|erd] · AUDIENCE: [exec|tech]
NODES: [n] (UNVERIFIED: [ids or "none"])
EDGES: [n]
METRICS: [n of m nodes carry a metric; edges with metric: k]
QUESTION: [the one question this diagram answers]
REVIEW: [one question for the named audience]
BLOCKED: [reason, if any]
```
## Anti-Patterns
- **No invented boxes**: Leave it out, or leave it UNVERIFIED.
- **No hand-written XML**: Write the spec and run the renderer.
- **No mixed C4 levels**: Draw a second diagram instead.
- **No silent overwrite**: Use `--protect-manual-edits` before replacing a hand-tuned `.drawio`.
- **No semantic draw.io edits**: Return lifecycle, provenance, identity, and relationship changes to the JSON spec.
- **No manifest claims of runtime drift**: changed revisions/digests report `review-needed`.