From diagrammer
Research a codebase, file, or concept and produce a create_diagram JSON spec with planned layout
How this skill is triggered — by the user, by Claude, or both
Slash command
/diagrammer:generate-diagram-specThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
When you need to produce a structured diagram specification before rendering. This is the **thinking step** — use it before calling `create_diagram`. Always use this skill when creating non-trivial diagrams.
When you need to produce a structured diagram specification before rendering. This is the thinking step — use it before calling create_diagram. Always use this skill when creating non-trivial diagrams.
The user will provide one of three types of input. Detect which mode applies:
"Diagram the architecture of src/core/" "Create a diagram of this repo" "Show me how the auth module works"
"Diagram this config file" (with file path or pasted content) "Here's our pipeline definition, diagram it" "Visualize this YAML/JSON/Python file"
"Diagram how RLHF training works" "Create a diagram showing the 4-tier flag resolution" "Visualize a transformer encoder block"
The user may also provide guidance narrowing the focus:
"Focus on the data flow, not the error handling" "Show the public API surface, skip internals" "Include the plugin system"
Mode A — Directory/repo exploration:
README.md, package.json/pyproject.toml, main index filels or glob the directory, identify layers/packagesMode B — Single file analysis:
Mode C — Concept with guidance:
For each entity, determine:
Entity: [name]
Role: encoder | decoder | attention | input | output | intermediate | neutral
Label: [short display text — max ~20 chars per line]
Sublabel: [secondary text — class name, description, details]
Shape: rounded_rectangle | diamond | circle | pill | annotation
Category: core | input | output | annotation | decision
Role assignment heuristics:
encoder — primary processing components (blue)decoder — secondary processing, output generation (pink)attention — decision-making, routing, selection, configuration (warm yellow)input — data sources, config files, user input (light blue-gray)output — results, exports, final products (green)intermediate — internal state, intermediate results (light pink)neutral — labels, annotations, grouping elements (gray)For each relationship:
[source] → [target]
Type: straight | orthogonal | curved
Label: [optional — verb or data name: "sends", "config", "validates"]
Style: default | highlight | dashed (dashed = optional/plugin)
Connection heuristics:
style: "bidirectional" sparinglyDetermine diagram type from the entity graph:
Vertical pipeline (most common):
Main column: x=350, width=220-280
Input column: x=60, width=180-200 (data sources feeding into main)
Annotation col: x=680, width=200-220 (notes, loss functions, metadata)
Row spacing: y += 170-200 per stage
Stage labels: positioned ABOVE their target node (y = node.y - 30)
Horizontal pipeline:
Main row: y=120
Column spacing: x += 230 per stage
Return row: y=260 (for loops/feedback)
Width: 160-200px per node
Hub-spoke:
Center: (400, 280)
Satellites: radius ~250px, distributed by category
Key spacing rules:
longest_line_chars * font_size * 0.6 + 32Output a complete JSON spec ready for create_diagram:
{
"title": "Diagram Title",
"style_preset": "illustrated-technical",
"layout": "manual",
"save_path": "<ask user or use known project path>",
"nodes": [
{
"id": "unique_id",
"label": "Display Name",
"sublabel": "Secondary text",
"role": "encoder",
"shape": "rounded_rectangle",
"width": 220,
"height": 70,
"x": 350,
"y": 50,
"font_size": 16
}
],
"connections": [
{
"from": "source_id",
"to": "target_id",
"line_type": "straight",
"label": "optional"
}
]
}
Before rendering, present a summary so the user can adjust:
## Proposed: [Title]
**[N] nodes, [M] connections** | Style: [preset] | Layout: [type]
| ID | Label | Role | Size | Position |
|----|-------|------|------|----------|
| ... | ... | ... | WxH | (x, y) |
### Connections
| From → To | Type | Label |
|-----------|------|-------|
| ... | ... | ... |
Shall I render this, or adjust anything first?
If the user approves, proceed to /diagrammer-create-diagram to render, review, and export.
opacity: 0, shape: "annotation", placed outside the flowGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub zacharysbrown/omni-tools --plugin diagrammer