figure-spec
Generate deterministic publication-quality architecture, workflow, and pipeline diagrams from structured JSON (FigureSpec) into editable SVG. Use when user says "架构图", "workflow 图", "pipeline 图", "确定性矢量图", "figure spec", "draw architecture", or needs precise, editable, publication-ready vector diagr
By wanshuiyin · 348 installs
npx skills add wanshuiyin/auto-claude-code-research-in-sleep --skill figure-spec
Source repository · Upstream listing
FigureSpec: Deterministic JSON → SVG Figure Generation
Generate publication quality architecture diagrams , workflow pipelines , audit cascades , and system topology figures as editable SVG vector graphics using a deterministic JSON → SVG renderer.
When to Use This Skill
Use figure spec for:
System architecture diagrams (layered, hub and spoke, multi plane)
Workflow / pipeline figures
Audit cascade / flow control diagrams
Any structured diagram where node positions, connections, and groupings are semantically important
Figures that need to be edited/tweaked later (SVG is plain text)
Figures where determinism matters (same spec → same SVG)
Do NOT use for:
Data plots (bar/line/scatter) — use /paper figure
Natural/qualitative illustrations — use /paper illustration
Quick state machine / flowchart — use /mermaid diagram (lighter syntax)
Core Properties
Deterministic : identical FigureSpec JSON always produces identical SVG output (for a fixed renderer version + fonts)
Editable : SVG output is plain text, can be post edited by hand or programmatically
Validated : renderer enforces schema, rejects malformed specs with clear error messages
Shape aware : edge clipping works correctly for rect/rounded/circle/ellipse/diamond
CJK support : multi line labels with proper Chinese character width estimation
No external API : runs fully local, no network, no API keys
Tool Location
Phase 3.1 (Arch C) move: the canonical implementation now lives at
skills/figure spec/scripts/figure renderer.py (this SKILL's own
scripts/ subdirectory). A backwards compatible shim at
tools/figure renderer.py forwards to the canonical file via
os.execv , so existing users with .aris/tools/figure renderer.py
or a manually copied tools/figure renderer.py keep working
unchanged.
Resolve $FIGURE RENDERER with the hybrid chain (layer 0 prefers the
self contained location for the owning SKILL; layers 1 4 are the
shared runtime chain documented in
[ shared references/integration contract.md ](../shared references/integration contract.md) §2,
Policy A — skill local gate):
Invoke:
Workflow
Step 1: Understand the Diagram Goal
From $ARGUMENTS (description or path to PAPER PLAN.md / NARRATIVE REPORT.md ), identify:
Purpose : architecture, workflow, pipeline, audit cascade, topology?
Main entities : what are the boxes?
Relationships : how do they connect? (uses, produces, calls, verifies, chains)
Grouping : do entities cluster into named regions?
Hierarchy vs network : stacked layers, left to right flow, or central hub?
Step 2: Draft the FigureSpec JSON
Canvas sizing guide:
Single column figure: ~500×350 px
Two column (full width): ~900×500 px
Tall topology: ~700×700 px
Start from a template based on the diagram type:
Architecture (stacked rows) :
Workflow (left to right chain) :
Decision diamond :
Step 3: Render and Validate
If validation fails, inspect the error (missing field, duplicate ID, overlap warning, invalid hex color) and fix the JSON.
Step 4: Visual Review
Open the SVG/PDF and check:
No overlaps : nodes don't collide with each other or group boundaries
Readability : font sizes are consistent, labels aren't clipped
Edge clarity : arrows hit nodes at clean angles, labels near edges are legible
Group alignment : background rectangles frame their members cleanly
Color distinction : categories are visually distinct in both color and grayscale
If issues found, edit the JSON spec (never the generated SVG) and re render.
Step 5: Iterate with Codex Review (Optional, for High Stakes Figures)
For paper architecture figures, invoke cross model review:
Iterate until all three axes ≥ 7/10. The ARIS tech report figures went through 5 rounds of this loop to reach C:7/R:7/S:8.
Schema Quick Reference
Run python3 "$FIGURE RENDERER" schema (resolve $FIGURE RENDERER per "Tool Location" above) for the authoritative schema.
Nodes
Field Required Default Notes
id ✓ — Unique
label ✓ — \n for multi line
x , y ✓ — Center coordinates
width , height 120, 50
shape rounded rect / rounded / circle / ellipse / diamond
fill , stroke auto from palette RRGGBB
text color 333333
font size 14 Override style default
Edges
Field Default Notes
from , to required Same = self loop
label — Short edge label
style solid solid / dashed / dotted
color 555555
curve false Curved path
Groups
Rectangular background regions framing a set of nodes:
Design Patterns
Pattern 1: Layered Architecture
Stack rows of related nodes, each row is a group, add inter layer arrows with semantic labels ( uses↓ , produces↑ , checks↓ ).
Pattern 2: Hub and Spoke
Central node (e.g., Executor), peripheral nodes (skills, tools), solid arrows for primary relations, dashed for feedback.
Pattern 3: Pipeline with Feedback
Left to right main flow, feedback arrows curve below with curve: true .
Pattern 4: Audit Cascade
Three stage horizontal cascade with inputs feeding in from top, outputs exiting right, each stage in its own group.
Anti Patterns
Don't use groups as hierarchy : groups frame peer nodes, not containment
Don't nest groups : renderer draws them as background rectangles; nested groups look like Russian dolls
Don't cross draw long diagonals : if an arrow crosses 3+ rows, rethink the layout
Don't mix font sizes for same role : keep one size per node category
Output Contract
SVG file in figures/ (vector, editable, hand tweakable)
Source FigureSpec JSON saved in figures/specs/ for reproducibility
PDF version via rsvg convert for LaTeX inclusion
Integration with Other Skills
/paper writing (Workflow 3): when illustration: figurespec (default for architecture figures), this skill handles Phase 2b
/paper figure : handles data plots; they complement each other (data + architecture = complete figure set)
/paper illustration : fallback for figures that need natural/qualitative style (method illustrations with photos, qualitative result grids)
/mermaid diagram : lighter alternative for simple flowcharts
Review Tracing
After each mcp codex codex or mcp codex codex reply reviewer call, save the trace following shared references/review tracing.md (Policy C — forensic; never silently skip). Use save trace.sh (resolved per the chain in shared references/integration contract.md §2) or write files directly to .aris/traces/<skill /<date run<NN / . Respect the trace: parameter (default: full ).