Best for
- System architecture diagrams (layered, hub-and-spoke, multi-plane)
- Workflow / pipeline figures
- Audit cascade / flow-control diagrams
wanshuiyin/Auto-claude-code-research-in-sleep/skills/skills-codex/figure-spec/SKILL.md
Use it for design and operations tasks; the detail page covers purpose, installation, and practical steps.
Decision brief
Generate publication-quality architecture diagrams, workflow pipelines, audit cascades, and system topology figures as editable SVG vector graphics using a deterministic JSON → SVG renderer.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Declared | Source record | Install path and trigger |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep --skill "skills/skills-codex/figure-spec"Inspect the Agent Skill "figure-spec" from https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep/blob/a5fcc6970f08d45f6a2100abef4d5d234a1cef25/skills/skills-codex/figure-spec/SKILL.md at commit a5fcc6970f08d45f6a2100abef4d5d234a1cef25. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
FIGURERENDERER="" if [ -z "${ARISREPO:-}" ] && [ -f .aris/installed-skills-codex.txt ]; then ARISREPO=$(awk -F'\t' '$1=="reporoot"{print $2; exit}' .aris/installed-skills-codex.txt 2/dev/null) || true fi [ -n "${ARISREPO:-}" ] && [ -f "$ARISREPO/skills/figure-spec/scripts/figure…
From $ARGUMENTS (description or path to PAPERPLAN.md / NARRATIVEREPORT.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) - Grou…
From $ARGUMENTS (description or path to PAPERPLAN.md / NARRATIVEREPORT.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) - Grou…
Canvas sizing guide: - Single-column figure: 500×350 px - Two-column (full-width): 900×500 px - Tall topology: 700×700 px
Review the “Step 3: Render and Validate” section in the pinned source before continuing.
Permission review
The documentation asks the agent to run terminal commands or scripts.
python3 "$FIGURE_RENDERER" render <spec.json> --output <out.svg>The documentation asks the agent to run terminal commands or scripts.
python3 "$FIGURE_RENDERER" validate <spec.json>Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 90/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 14,225 | Source | Repository attention, not individual Skill quality |
| Compatibility | 1 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Generate publication-quality architecture diagrams, workflow pipelines, audit cascades, and system topology figures as editable SVG vector graphics using a deterministic JSON → SVG renderer.
Use figure-spec for:
Do NOT use for:
/paper-figure/paper-illustration/mermaid-diagram (lighter syntax)Phase 3.1 (Arch C) move: the canonical implementation now lives at
skills/figure-spec/scripts/figure_renderer.py. tools/figure_renderer.py
is kept as a backwards-compatible os.execv shim so legacy layers
continue to resolve. Codex-side install layouts that previously
copied the canonical into ~/.codex/skills/figure-spec/figure_renderer.py
must now place it at ~/.codex/skills/figure-spec/scripts/figure_renderer.py
to match the new layout (re-run install_aris_codex.sh to pick up
the new symlink target).
Resolve $FIGURE_RENDERER via the Codex-side hybrid chain (layer 0
preferred for self-contained owner SKILL; layers 1-4 are legacy
shared-runtime compatibility):
# Layer 0: self-contained at the new canonical location (Phase 3.1).
FIGURE_RENDERER=""
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills-codex.txt ]; then
ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills-codex.txt 2>/dev/null) || true
fi
[ -n "${ARIS_REPO:-}" ] && [ -f "$ARIS_REPO/skills/figure-spec/scripts/figure_renderer.py" ] && FIGURE_RENDERER="$ARIS_REPO/skills/figure-spec/scripts/figure_renderer.py"
# Layers 1-3: legacy shared-runtime chain via shim at tools/figure_renderer.py.
[ -z "$FIGURE_RENDERER" ] && [ -n "${ARIS_REPO:-}" ] && [ -f "$ARIS_REPO/tools/figure_renderer.py" ] && FIGURE_RENDERER="$ARIS_REPO/tools/figure_renderer.py"
[ -z "$FIGURE_RENDERER" ] && [ -f tools/figure_renderer.py ] && FIGURE_RENDERER="tools/figure_renderer.py"
# Layer 4: Codex-side skill-local install (`install_aris_codex.sh` may place it here).
[ -z "$FIGURE_RENDERER" ] && [ -f ~/.codex/skills/figure-spec/scripts/figure_renderer.py ] && FIGURE_RENDERER="$HOME/.codex/skills/figure-spec/scripts/figure_renderer.py"
[ -z "$FIGURE_RENDERER" ] && [ -f ~/.codex/skills/figure-spec/figure_renderer.py ] && FIGURE_RENDERER="$HOME/.codex/skills/figure-spec/figure_renderer.py" # pre-Phase-3.1 layout
[ -n "$FIGURE_RENDERER" ] || {
echo "ERROR: figure_renderer.py not found at any of: \$ARIS_REPO/skills/figure-spec/scripts/, \$ARIS_REPO/tools/, tools/, ~/.codex/skills/figure-spec/scripts/, ~/.codex/skills/figure-spec/. Set ARIS_REPO, rerun install_aris_codex.sh, or copy the canonical \$ARIS_REPO/skills/figure-spec/scripts/figure_renderer.py next to this skill." >&2
exit 1
}
python3 "$FIGURE_RENDERER" render <spec.json> --output <out.svg>
python3 "$FIGURE_RENDERER" validate <spec.json>
python3 "$FIGURE_RENDERER" schema
From $ARGUMENTS (description or path to PAPER_PLAN.md / NARRATIVE_REPORT.md), identify:
Canvas sizing guide:
Start from a template based on the diagram type:
Architecture (stacked rows):
{
"canvas": {"width": 900, "height": 520},
"nodes": [
{"id": "layer1_label", "label": "Layer 1", "x": 450, "y": 60, ...},
{"id": "node_a", "label": "A", "x": 180, "y": 120, ...},
{"id": "node_b", "label": "B", "x": 350, "y": 120, ...}
],
"edges": [...],
"groups": [
{"label": "Layer 1", "node_ids": ["node_a", "node_b"], "fill": "#F0F9FF", "stroke": "#BAE6FD"}
]
}
Workflow (left-to-right chain):
{
"canvas": {"width": 900, "height": 300},
"nodes": [
{"id": "step1", "label": "Step 1", "x": 100, "y": 150, "shape": "rounded"},
{"id": "step2", "label": "Step 2", "x": 280, "y": 150, "shape": "rounded"}
],
"edges": [
{"from": "step1", "to": "step2", "label": "produces"}
]
}
Decision diamond:
{"id": "check", "label": "Passes?", "shape": "diamond", "x": 450, "y": 200}
# Validate first
python3 "$FIGURE_RENDERER" validate /tmp/spec.json
# Render to SVG
python3 "$FIGURE_RENDERER" render /tmp/spec.json --output figures/fig_arch.svg
# Convert to PDF for LaTeX inclusion
rsvg-convert -f pdf figures/fig_arch.svg -o figures/fig_arch.pdf
If validation fails, inspect the error (missing field, duplicate ID, overlap warning, invalid hex color) and fix the JSON.
Open the SVG/PDF and check:
If issues found, edit the JSON spec (never the generated SVG) and re-render.
For paper architecture figures, invoke fresh-agent review (same-family provisional in the base mirror):
spawn_agent:
model: gpt-5.6-sol
reasoning_effort: xhigh
message: |
Review this SVG figure for a technical paper (architecture / workflow diagram).
Spec file: /path/to/spec.json
Rendered: /path/to/fig.svg
Evaluate:
1. Clarity (C): can a reader understand the system from this figure alone?
2. Readability (R): font sizes, label placement, visual hierarchy
3. Semantic accuracy (S): do relationships match the described system?
Score each axis 1-10 and list specific issues to fix.
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.
Run python3 "$FIGURE_RENDERER" schema for the authoritative schema.
| 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 |
| Field | Default | Notes |
|---|---|---|
from, to | required | Same = self-loop |
label | — | Short edge label |
style | solid | solid / dashed / dotted |
color | #555555 | |
curve | false | Curved path |
Rectangular background regions framing a set of nodes:
{"label": "Layer Name", "node_ids": ["a", "b", "c"], "fill": "#EFF6FF", "stroke": "#BFDBFE"}
Stack rows of related nodes, each row is a group, add inter-layer arrows with semantic labels (uses↓, produces↑, checks↓).
Central node (e.g., Executor), peripheral nodes (skills, tools), solid arrows for primary relations, dashed for feedback.
Left-to-right main flow, feedback arrows curve below with curve: true.
Three-stage horizontal cascade with inputs feeding in from top, outputs exiting right, each stage in its own group.
figures/ (vector, editable, hand-tweakable)figures/specs/ for reproducibilityrsvg-convert for LaTeX inclusion/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 flowchartsAfter each reviewer agent 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).
Alternatives
wanshuiyin/Auto-claude-code-research-in-sleep
Use it for design and operations tasks; the detail page covers purpose, installation, and practical steps.
alirezarezvani/claude-skills
Use when planning, running, or learning from chaos engineering experiments. Triggers on "chaos experiment", "fault injection", "gameday", "resilience test", "blast radius", "steady state", "abort criteria", "Chaos Toolkit", "Chaos Mesh", "Litmus", "Gremlin", "AWS FIS", or any deliberate failure-injection question. Ships experiment designer, blast-radius calculator, and postmortem generator (all stdlib Python), 4 references on chaos principles + experiment design + attack taxonomy + tooling lands
wanshuiyin/Auto-claude-code-research-in-sleep
Use when main results pass result-to-claim (`claim_supported = yes` or `partial`) and ablation studies are needed for paper submission. A secondary Codex agent designs ablations from a reviewer's perspective; the local executor reviews feasibility and implements.
wanshuiyin/Auto-claude-code-research-in-sleep
Use it for design and operations tasks; the detail page covers purpose, installation, and practical steps.