diagram
Installation
SKILL.md
Diagram
Mission
Generate human-readable .todiagram JSON that is valid for ToDiagram's custom schema and optimized for fast visual comprehension.
Mode Router
schema-build: user asks to create/fix.todiagramstructure or convert notes into valid nodes/edges.system-architecture: user asks for platform/service/component topology.flow-diagram: user asks for workflow, journey, runbook, or decision flow.detail-calibration: user asks to simplify, enrich, or split dense diagrams.
If a request spans multiple modes, run in this order:
- schema-build
- system-architecture or flow-diagram
- detail-calibration
- final schema validation
Global Output Contract
- Default to file-first output for stability:
create a
.todiagramfile and return its path. - Only return inline JSON when the user explicitly asks for inline output.
- Use canonical raw
.todiagramkeys:nodes,edges,direction,id,label,from,to,imageUrl,iconUrl,custom_theme,fields. - Put node display data inside the
fieldsobject. Direct properties on the node are deprecated by the schema. - Never combine
imageUrlwithfieldson the same node —imageUrlreplaces row rendering. - Include
imageUrlandiconUrlonly when used; omit the keys entirely otherwise. - Include node-level
nodesonly for true containers with real children. - Restrict
directiontoRIGHT,LEFT,UP, orDOWN(UP, notTOP). - Keep IDs globally unique; ensure every edge endpoint resolves to an existing ID.
- Prefer Iconify specs (
logos:*,fa7-solid:*, short forms likefa:gear) for icons; use external URL icons only if the user explicitly requests them. - When the exact Iconify slug is unknown, look it up via
curl -fsSL 'https://api.iconify.design/search?query=<term>&limit=10'(optionally&prefix=logos) and pick a slug from the returnediconsarray. Use the ToDiagram MCP icon-search tool when available. - Apply per-node theming via
custom_theme(NODE,EDGE,TEXTgroups) — see schema contract for full key list.
File Output Policy
- If user provides a target path/name, write there.
- If user does not provide one, derive a short kebab-case filename from the diagram's topic or subject
(e.g., "system architecture" →
system-architecture.todiagram, "user onboarding flow" →user-onboarding-flow.todiagram, "AWS infrastructure" →aws-infrastructure.todiagram). Write to the current working directory. - For multi-diagram outputs, use stable descriptive names:
overview.todiagram,domain-<name>.todiagram,flow-<name>.todiagram. - After writing, run:
python scripts/validate_todiagram_schema.py <file>.todiagram
Core Workflow
- Identify audience and decision intent.
- Select mode and detail tier (overview, working, deep-dive).
- Draft container hierarchy first, then leaf nodes, then edges.
- Add concise labels and only high-signal metadata.
- Validate with
references/authoring-checklist.mdand run:python scripts/validate_todiagram_schema.py <file>.todiagram - If overloaded, split using
references/split-strategies.mdwhile preserving shared IDs/names.
Mode Playbooks
1) Schema Build
Read references/schema-contract.md first.
Use this scaffold unless the user provides a different envelope:
{
"direction": "RIGHT",
"nodes": [],
"edges": []
}
Rules:
- Add
configurationonly when key mappings deviate from defaults. - Normalize payloads to canonical keys (
children→nodes,source/target→from/to). - Move deprecated direct node properties into the
fieldsobject. - If a node has both
imageUrlandfields, drop one — they cannot coexist.
2) System Architecture
Read:
Rules:
- Prefer 2-3 hierarchy levels.
- Keep most containers within 3-8 children.
- Connect leaf-to-leaf interactions by default.
- Keep overview diagrams metadata-light.
3) Flow Diagrams
Read:
Rules:
- Build happy path first, then branches/failures/retries.
- Keep one dominant direction per diagram.
- Keep edge labels short (1-3 words) and meaningful.
4) Detail Calibration
Read:
Rules:
- Choose a detail tier before generating.
- If above budget, split by domain, lifecycle, environment, or audience.
- Keep cross-diagram naming and shared IDs consistent.
Example Intents
- "Create a high-level SaaS architecture in ToDiagram." ->
system-architecture+ overview tier. - "Fix this invalid ToDiagram JSON." ->
schema-build. - "Turn this incident runbook into a readable flow." ->
flow-diagram(+detail-calibrationif dense).
Troubleshooting
- Invalid payload shape: normalize keys and flatten wrappers first.
- Diagram too noisy: remove low-signal metadata and split into focused views.
- Diagram too abstract: add 1-2 critical metadata properties on key leaves.
- Unclear relationships: add concise protocol/action/outcome edge labels.
- Schema validation dependency error: install
jsonschemaviapython3 -m pip install --user jsonschema.
References
- Schema contract:
references/schema-contract.md - Authoring checklist:
references/authoring-checklist.md - Architecture patterns:
references/architecture-patterns.md - Grouping playbook:
references/grouping-playbook.md - Flow patterns:
references/flow-patterns.md - Labeling guide:
references/labeling-guide.md - Complexity budgets:
references/complexity-budgets.md - Split strategies:
references/split-strategies.md
Scripts
- Canonical + schema validator:
scripts/validate_todiagram_schema.py