Diagram
Skill tkolleh/skills/diagram
My personal directory of AI Agent skills
npx -y skills add tkolleh/skills --skill diagramAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generates technical diagrams using the D2 language, with automatic color-contrast verification and diagram-type detection.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.9 KB, as published. Nobody here has run it
Diagram Creator
Generate professional architecture and sequence diagrams using the D2 declarative language. Output is a rigorous engineering artifact modeling complex distributed systems with precision, enforcing strict separation between inventory (what exists) and topology (how it connects) - with automatic color-contrast verification and diagram-type detection
When to use me
Use this skill whenever a system architecture, data flow, sequence diagram, or service interaction needs to be visualized. This skill should be triggered after a planning phase to present a visual map to the user.
Core Instructions
Core Philosophy: "Measure Once, Cut Twice"
- Inventory First: You must define every entity fully (metadata, technology, owner) before drawing a single line.
- Strict Typing: Every entity is a simple shape with a class and structured metadata.
- Compiler Safety: You always generate D2 code that compiles, avoiding known D2 antipatterns.
Instructions
1. Visualization Standard
You define the model and view in separate files. The model file (models.d2) contains the inventory of entities and their metadata, while the view file (backend-view.d2) contains the topology (connections) and styling. This separation ensures clarity and maintainability.
- You Always reference the files
models.d2andbackend-view.d2for examples of how to structure your code. - You view files must import model files to reference entities.
- You Always validate your D2 files using the d2 CLI tool against the view files
2. C4 Model Integration
- Context: Use D2 "Groups" (empty containers) for Domains (e.g.,
Analytics_Domain). - Container: Runtime units (Services, DBs).
- Component: Code units (Libraries, DAGs).
- Actors: Use
shape: personfor human users or external systems.
3. D2 Code Structure (Strict Hierarchy)
You must generate code in this exact order to ensure compilation:
- Metamodel (Classes):
- Critical Constraint: Classes must be defined at the root.
- Critical Constraint: No nesting. You cannot define a class inside
classes. - Critical Constraint: No inheritance. One class cannot reference another via
class:.
- Domain Contexts: Empty groups with
fill: transparent. - Entity Inventory: Define objects using dot notation (
Domain.Entity). No connections here. - Topology: Define connections (
->) in separate files after suspending unwanted classes.
Negative Constraints (Guardrails)
- DO NOT mix entity definitions with relationships.
- DO NOT use semicolons in style blocks.
- DO NOT use local file paths for icons.
- DO NOT nest classes inside the
classesblock.
Canonical Example
- Reference the
models.d2andbackend-view.d2files as examples - Use undefined classes (tags) such as
systembefor grouping components. Thedomain_actorclass is defined with specific styles, and then bothsystembeanddomain_actorare applied to theapi_servicecomponent.
Execution Steps
- Analyze the user's request to identify Domains, Containers, and Components.
- Draft the Inventory list mentally, and assigning tech stacks.
- Generate the D2 code following the instructions strictly.
- Recommend diagram type — once the model/view files exist, run
python3 main.py recommend-diagram-type --model_path <view-file>.d2. This parses actual entity/relationship counts, cycles, actor shapes, and edge ordering from the file and returnssequence,state, orc4— a deterministic decision, not a free-form read of the user's request. If the recommendation doesn't match what was drafted in step 1, prefer the tool's output and adjust the structure. - Check contrast — run
python3 main.py check-contrast --model_path models.d2. This validates every class'sfill/font-colorpair againstpastel textcolorand reports mismatches. Fix any"ok": falseresult before rendering.- Known limitation: this check assumes plain black/white text and will report
_md/_grpmarkdown classes as failing even when they intentionally use a tintedfont-color(see the styling comment at the top ofmodels.d2). Treat_md/_grpclass failures as informational, not blocking — thestrokevsfilldistinction on those classes is the real readability signal, notfont-color.
- Known limitation: this check assumes plain black/white text and will report
- Preview — render just the class/legend definitions from
models.d2to a small SVG first (d2 models.d2 preview.svg) and confirm it compiles cleanly before rendering the full diagram. - Render the full view file to SVG (
d2 backend-view.d2 output.svg) and present the result.