跳到正文
cccskills
免费在 GitHub 公开

figure-spec

Turn structured JSON into editable SVG diagrams for system architectures, workflows, and pipelines. Specify positions, connections, and groups precisely, reproduce the same output under fixed rendering conditions, and convert figures to PDF for papers.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

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 diagrams. Preferred over AI illustration for formal architecture/workflow figures.

查看安装方法

适用场景

  • Creating architecture diagrams for technical papers
  • Illustrating workflows and processing pipelines
  • Adjusting diagram layouts through JSON specifications
  • Preparing PDF figures for LaTeX documents

包含的文件(2)

  • SKILL.md11.8 KB
  • scripts/figure_renderer.py29.2 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

FigureSpec: Deterministic JSON → SVG Figure Generation

Before each reviewer slot, follow Selectable Reviewers: resolve invocation → .aris/reviewer.json → Claude Code default (Codex MCP) with reviewer_route.py through the canonical helper resolver, preserving this slot's tier, fresh contexts, source/image inputs and deterministic gates. Codex examples/pins below apply only to backend=codex; other routes use their own first-call/reply contract. Save the route and actual returned identity; unavailable selections are REVIEW_UNAVAILABLE. Classify acceptance from actual families/completion/scope. Forward invocation reviewer/model/effort overrides to reviewer-bearing children. Generation workers are unchanged.

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 §2, Policy A — skill-local gate):

# Layer 0: self-contained (CC 1.0+ exposes $CLAUDE_SKILL_DIR).
FIGURE_RENDERER=""
if [ -n "${CLAUDE_SKILL_DIR:-}" ] && [ -f "$CLAUDE_SKILL_DIR/scripts/figure_renderer.py" ]; then
  FIGURE_RENDERER="$CLAUDE_SKILL_DIR/scripts/figure_renderer.py"
fi
# Layers 1-4: shared-runtime chain (legacy compatibility + non-CC hosts).
if [ -z "$FIGURE_RENDERER" ]; then
  cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
  if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
      ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
  fi
  if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
      ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
  fi
  FIGURE_RENDERER=".aris/tools/figure_renderer.py"
  [ -f "$FIGURE_RENDERER" ] || FIGURE_RENDERER="tools/figure_renderer.py"
  [ -f "$FIGURE_RENDERER" ] || { [ -n "${ARIS_REPO:-}" ] && FIGURE_RENDERER="$ARIS_REPO/tools/figure_renderer.py"; }
  [ -f "$FIGURE_RENDERER" ] || FIGURE_RENDERER=""
fi
[ -z "$FIGURE_RENDERER" ] && {
  echo "ERROR: figure_renderer.py not resolved (layer 0: \$CLAUDE_SKILL_DIR/scripts/; layers 1-4: .aris/tools/, tools/, \$ARIS_REPO/tools/, \$ARIS_REPO/tools/ via ~/.aris/repo)." >&2
  echo "       /figure-spec cannot produce SVG output. Fix: rerun bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), or copy the helper from \$ARIS_REPO/skills/figure-spec/scripts/." >&2
  exit 1
}

Invoke:

python3 "$FIGURE_RENDERER" render <spec.json> --output <out.svg>
python3 "$FIGURE_RENDERER" validate <spec.json>
python3 "$FIGURE_RENDERER" schema

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):

{
  "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}

Step 3: Render and Validate

# Validate first ($FIGURE_RENDERER was resolved in "Tool Location" above)
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.

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:

Resolve this reviewer slot first; the following is the backend=codex example.

mcp__codex__codex:
  model: gpt-6-astra
  config: {"model_reasoning_effort": "xhigh"}
  prompt: |
    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.

Schema Quick Reference

Run python3 "$FIGURE_RENDERER" schema (resolve $FIGURE_RENDERER per "Tool Location" above) for the authoritative schema.

Nodes

FieldRequiredDefaultNotes
id✓—Unique
label✓—\n for multi-line
x, y✓—Center coordinates
width, height120, 50
shaperoundedrect / rounded / circle / ellipse / diamond
fill, strokeauto from palette#RRGGBB
text_color#333333
font_size14Override style default

Edges

FieldDefaultNotes
from, torequiredSame = self-loop
label—Short edge label
stylesolidsolid / dashed / dotted
color#555555
curvefalseCurved path

Groups

Rectangular background regions framing a set of nodes:

{"label": "Layer Name", "node_ids": ["a", "b", "c"], "fill": "#EFF6FF", "stroke": "#BFDBFE"}

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).

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Plan and run ablation studies, experiments that remove or replace parts of a method to test their contribution. Organize reviewer questions, priorities, expected outcomes, and compute costs, then record results and findings.

中文简介正在准备中。当前显示英语简介。

  • Test how much each component contributes
  • Plan experiments that address reviewer questions
  • Prioritize comparisons within a compute budget
wanshuiyin/Auto-claude-code-research-in-sleep1.8万2026年10月22日 更新

Plan ablation studies, experiments that remove or replace parts of a machine learning method to test their contribution. Define reviewer questions, expected outcomes, priorities, execution order, and compute estimates, then implement experiments and record findings.

中文简介正在准备中。当前显示英语简介。

  • Testing the contribution of individual method components
  • Planning additional experiments before paper submission
  • Prioritizing experiments within a GPU budget
wanshuiyin/Auto-claude-code-research-in-sleep1.8万2026年10月22日 更新

alphaxiv

免费

Understand a single arXiv paper through an AlphaXiv summary, with full text and LaTeX source available when needed. Use it to identify key findings or ask specific questions about methods, experiments, and equations.

中文简介正在准备中。当前显示英语简介。

  • Get a quick overview of a paper from its URL
  • Check a paper's methods and experimental results
  • Ask about equations, proofs, or appendix details
wanshuiyin/Auto-claude-code-research-in-sleep1.8万2026年10月22日 更新

Compare machine learning experiment results from JSON or CSV files. Calculate improvements over a baseline, summarize variation across repeated runs, identify trends and unusual results, and suggest experiments to test possible explanations.

中文简介正在准备中。当前显示英语简介。

  • Compare model performance across experimental conditions
  • Check variation across runs with different random seeds
  • Identify trends as a parameter changes
wanshuiyin/Auto-claude-code-research-in-sleep1.8万2026年10月22日 更新

arxiv

免费

Search arXiv papers by topic or paper ID, review authors and abstracts, and summarize contributions stated in the abstracts. Download selected papers or all search results as PDFs to build a local paper library.

中文简介正在准备中。当前显示英语简介。

  • Find arXiv papers on a research topic
  • Retrieve details for a known arXiv paper ID
  • Download all PDFs from a set of search results
wanshuiyin/Auto-claude-code-research-in-sleep1.8万2026年10月22日 更新

Improve a compiled LaTeX paper through two rounds of Claude review, edits, and recompilation. The workflow addresses inconsistent reasoning, unsupported claims, unclear writing, and visual presentation, while keeping a cumulative log of changes.

中文简介正在准备中。当前显示英语简介。

  • Polish a generated paper before submission
  • Correct inconsistencies and unsupported claims
  • Improve figures, tables, and page layout
wanshuiyin/Auto-claude-code-research-in-sleep1.8万2026年10月22日 更新

查看 wanshuiyin 的全部技能

报告此技能的问题