ワンクリックで
diagram
Professional Excalidraw diagram generation from natural language or code analysis.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Professional Excalidraw diagram generation from natural language or code analysis.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Upgrade DLD framework files from latest template on GitHub.
Autonomous spec execution with subagents (planner, coder, tester, reviewer).
Autonomous spec execution with subagents (planner, coder, tester, reviewer).
Feature specification and research agent. Multi-agent with 4 scouts. Creates specs in ai/features/.
Feature specification and research agent. Multi-agent with 4 scouts. Creates specs in ai/features/.
Manual QA tester — tests product behavior like a real user, not code. Triggers on keywords: test, QA, check behavior, verify feature, manual testing, протестируй, потыкай, проверь как работает
| name | diagram |
| description | Professional Excalidraw diagram generation from natural language or code analysis. |
Generates .excalidraw files from description or code analysis using a simplified JSON spec + Node.js converter.
Activation:
/diagram {description} — generate from description/diagram analyze {path} — analyze code and generate architecture diagramdiagram {description} — implicit activationDon't use: For mockups, UI wireframes, or pixel-precise layouts.
| Trigger | Mode |
|---|---|
/diagram analyze src/... or "analyze" in args | Analyze Mode |
| Everything else | Description Mode |
User describes what they want. You generate the JSON spec with coordinates.
Steps:
echo '<JSON_SPEC>' | node template/.claude/tools/excalidraw-gen.mjs ai/diagrams/{name}.excalidraw
Reads source code and generates architecture diagram automatically.
Steps:
IMPORTANT: Always provide x,y coordinates for every node. You are the layout engine. The converter only renders — it does NOT do good auto-layout.
x,y = CENTER of the node (not top-left corner). This means nodes with the same x are perfectly center-aligned regardless of width.
{
"title": "Diagram Title",
"nodes": [
{"id": "start", "x": 400, "y": 50, "label": "Entry Point", "shape": "ellipse", "color": "orange"},
{"id": "process", "x": 400, "y": 180, "label": "Process Step\nSubtitle", "shape": "rect", "color": "blue"},
{"id": "decision", "x": 400, "y": 320, "label": "Condition?", "shape": "diamond", "color": "yellow"},
{"id": "result", "x": 400, "y": 460, "label": "Output", "shape": "rect", "color": "green"},
{"id": "alt", "x": 650, "y": 320, "label": "Alternative", "shape": "rect", "color": "gray"}
],
"edges": [
{"from": "start", "to": "process"},
{"from": "process", "to": "decision", "label": "check"},
{"from": "decision", "to": "result", "label": "yes"},
{"from": "decision", "to": "alt", "label": "no", "style": "dashed"}
],
"groups": [
{"id": "g1", "label": "Main Flow", "nodes": ["start", "process", "decision"], "color": "blue"}
]
}
Grid: Use multiples of 50 for all coordinates.
Coordinates = CENTER of node. Same x = perfect vertical alignment.
Vertical spacing:
Horizontal spacing:
Sizing (auto-calculated from text, override with w,h):
w — explicit width (default: auto from text + padding)h — explicit height (default: auto from text + padding)Fan-out pattern (e.g., 6 parallel items):
{"id": "a", "x": 50, "y": 500, "label": "Item A", ...},
{"id": "b", "x": 250, "y": 500, "label": "Item B", ...},
{"id": "c", "x": 450, "y": 500, "label": "Item C", ...},
{"id": "d", "x": 650, "y": 500, "label": "Item D", ...}
| Shape | Excalidraw Type | Use For |
|---|---|---|
rect | rectangle | Process, service, step |
diamond | diamond | Decision, condition |
ellipse | ellipse | Start/end terminal |
rounded | rectangle (rounded) | Soft element, card, UI |
database | rectangle (dashed) | Database, storage, IPC file |
external | rectangle (dashed) | External system |
| Color | Use For |
|---|---|
orange | Trigger, start, entry point |
blue | Process, service, information |
yellow | Decision, warning, branch |
green | Success, output, result |
red | Error, danger, critical |
purple | Storage, database, IPC file |
gray | Neutral, default, disabled |
teal | Secondary, note, async |
| Style | Rendering |
|---|---|
solid | Solid line (default) |
dashed | Dashed line |
For side-connections (error paths, secondary outputs), use elbowed routing to avoid diagonal lines crossing other elements:
| Elbow | Routing | Use For |
|---|---|---|
| (none) | Straight line (default) | Main flow, fan-out |
"h" | Horizontal first, then vertical | Side exit → turn down/up |
"v" | Vertical first, then horizontal | Up/down exit → turn sideways |
"loop-right" | U-shape via right side (3 segments) | Feedback loop going right |
"loop-left" | U-shape via left side (3 segments) | Feedback loop going left |
L-shape (h/v):
{"from": "ok", "to": "retry", "label": "rejected", "style": "dashed", "elbow": "h"},
{"from": "retry", "to": "step3", "label": "re-run", "style": "dashed", "elbow": "v"}
U-shape (loop) — for back-edges / feedback:
{"from": "users", "to": "backlog", "label": "feedback", "style": "dashed", "elbow": "loop-left"}
Multiple loops — use pad to avoid overlap:
{"from": "review", "to": "step2", "label": "rejected", "style": "dashed", "elbow": "loop-left", "pad": 70},
{"from": "step4", "to": "step2", "label": "retry", "style": "dashed", "elbow": "loop-left", "pad": 130},
{"from": "step5", "to": "step1", "label": "reset", "style": "dashed", "elbow": "loop-left", "pad": 190}
pad controls how far the U-shape extends from the nodes (default: 120). Use incrementing values (e.g., 70/130/190) to create separate "lanes" for multiple loop arrows on the same side.
loop-leftUse \n for multi-line. Keep labels short — 2-4 words per line max:
{"id": "srv", "x": 300, "y": 200, "label": "Auth Service\nJWT + OAuth", "shape": "rect", "color": "blue"}
Groups render as labeled background rectangles encompassing specified nodes:
{"id": "g1", "label": "Backend Services", "nodes": ["auth", "billing", "users"], "color": "blue"}
ai/diagrams/{name}.excalidrawspark-workflow.excalidraw)echo '<JSON_SPEC>' | node template/.claude/tools/excalidraw-gen.mjs ai/diagrams/{name}.excalidraw
title field