skills/dot-quality/SKILL.md
Use when enforcing quality standards on DOT diagrams — checking completeness, structure, and visual clarity before sharing or committing
npx skillsauth add microsoft/amplifier-bundle-dot-graph dot-qualityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Every DOT diagram makes structural claims. Those claims must be verifiable, complete, and unambiguous. Quality enforcement ensures diagrams communicate correctly — not just render correctly.
Core principle: A diagram that renders without errors can still be wrong. Structural claims require titles, color requires legends, and shapes must match their semantic meaning.
NO DIAGRAM WITHOUT A TITLE, NO COLOR WITHOUT A LEGEND
These are not suggestions. A diagram without a title is anonymous — reviewers cannot reference it. A diagram with unexplained color is ambiguous — different readers draw different conclusions.
label= attribute set to a meaningful titlelabelloc=t is set (title appears at top, not bottom)label=rankdir is set explicitly (LR, TB, BT, or RL) — don't rely on defaultsnode [...] and edge [...]cluster_legend subgraph documents all colors usedfontname is set consistently (Helvetica or similar sans-serif)nodesep and ranksep are tuned for readability// comment explains any non-obvious structural choice| Diagram Type | Target | WARN at | FAIL at | |-------------|--------|---------|---------| | Overview / context | 30–80 | 120 | 200 | | Architecture (detail) | 80–150 | 250 | 400 | | Inline (single concept) | 10–30 | 50 | 80 | | Quick sketch | 5–20 | 35 | 60 |
Diagrams that exceed WARN thresholds should be split into overview + detail files.
| Flag | Problem | Fix |
|------|---------|-----|
| Floating node | Node with no edges — forgotten or placeholder | Connect it or remove it |
| Mystery color | Color used without legend entry | Add to legend or remove color |
| label="" | Empty label — invisible node | Set a meaningful label |
| Duplicate node IDs | Same ID used for different concepts | Rename to make IDs unique |
| All nodes same shape | Shape vocabulary not being used | Apply shape-meaning table |
| Edges without direction meaning | Arrow direction doesn't match data/control flow | Reverse or relabel edges |
| No title | Anonymous diagram — cannot be referenced | Add label= and labelloc=t |
Shapes carry semantic meaning. Using the wrong shape creates ambiguity:
| Shape | Meaning | Misuse to Avoid |
|-------|---------|-----------------|
| box / rectangle | Service, process, component | Don't use for data stores |
| cylinder | Database, file store, queue | Don't use for services |
| diamond | Decision point, branch | Don't use for processes |
| ellipse | Start / end state, terminal | Don't use for services |
| doublecircle | Final/accepted state (FSM) | Reserve for state machines |
| parallelogram | External system, I/O | Don't use for internal services |
| note | Annotation, documentation node | Don't use for primary components |
| component | Fan-out / fan-in coordinator | Don't use for simple steps |
| point | Initial state marker (FSM) | Reserve for state machines only |
| folder | File group, repository | Don't use for services |
Run this 7-step check before every diagram is shared, committed, or embedded in documentation:
dot -Tsvg diagram.dot > /dev/null — zero errorsgrep 'label=' diagram.dot shows a non-empty titlefillcolor or color attribute is set, cluster_legend existsdevelopment
Use when you need true understanding of a complex system — not a quick answer. Parallax Discovery is a multi-agent, multi-pass investigation methodology that combines three perspectives (code tracing, behavior observation, integration mapping) to produce verified, evidence-backed findings.
development
Use when writing or reading DOT/Graphviz code and needing quick syntax reference — node declarations, edge syntax, attributes, subgraphs, HTML labels, and common gotchas
tools
Use when you need copy-paste DOT templates for common diagram types — start from a working pattern rather than blank canvas
development
Use when you need programmatic graph structure analysis — reachability, cycles, critical paths, and diffs without spending LLM tokens on structural questions code can answer