| name | fireworks-tech-graph |
| description | Create precise SVG technical diagrams, export PNG or offline HTML, and animate supported semantic SVGs to GIF. Use for architecture, UML, agent, cloud or workflow diagrams; not photos, raster art or statistical charts. |
Fireworks Tech Graph
One portable Agent Skill for Codex and Claude Code. SVG is the canonical artifact;
PNG, offline HTML and supported GIF motion are output routes. Preserve requested
labels, topology and meaning; a successful command is not a visual quality verdict.
Locate and select
Resolve the directory containing this file as SKILL_ROOT. Use
${CLAUDE_SKILL_DIR} in Claude Code or the absolute directory in Codex's loaded
skill metadata. Do not assume cwd or a previous shell variable persists.
Use the installed version for the task. Run version for source/version questions
and doctor when diagnosing a missing renderer, font or dependency; do not make
installation, updates or a complete test suite prerequisites for every diagram.
SKILL_ROOT="${CLAUDE_SKILL_DIR:-/absolute/path/from-codex-skill-metadata}"
python3 "$SKILL_ROOT/scripts/fireworks.py" version
- Honor the user's diagram type, content and style; choose sensible reversible
details from the brief. Ask only for a material missing engineering fact or
a choice the user explicitly reserved. A request to draw includes local rendering.
- Styles 1–7 and 9–12 have JSON generators. Style 8 (Dark Luxury) remains
AI-authored SVG: use its style reference, then the same validation/export gates.
- Default to Style 1 Flat Icon when no user/workspace preference applies. Load the
actual matching file from the style matrix.
Read other styles only for a requested comparison.
- Styles 9–12 default to C4, cloud, event and observability semantic contracts.
Validate facts before layout; do not invent responsibilities, protocols or metrics.
- Adapt an existing valid SVG directly when appropriate. JSON generation is not
required for every edit. Use diagram/layout guidance
and icons only for the relevant type or symbols.
Generate and check
Reuse the user's current brief and artifact; an extra planning document is optional.
For JSON work, select text_policy: "strict" when all labels must be visible exactly.
The compatible report default preserves full labels in SVG metadata and reports
any visible truncation. Resolve that warning before claiming complete exact text.
For polished work apply the composition contract.
SKILL_ROOT="${CLAUDE_SKILL_DIR:-/absolute/path/from-codex-skill-metadata}"
python3 "$SKILL_ROOT/scripts/fireworks.py" validate architecture input.json
python3 "$SKILL_ROOT/scripts/fireworks.py" render architecture input.json diagram.svg --report layout.json
python3 "$SKILL_ROOT/scripts/fireworks.py" check diagram.svg
python3 "$SKILL_ROOT/scripts/fireworks.py" export-png diagram.svg diagram.png --width 1920
check validates SVG identity, marker references, generic collisions, semantic
geometry and composition. Inspect the report's typography and palette scope;
heuristic text widths do not replace inspecting the actual rendered font.
Use visual quality guidance for readability and
style-specific refinements. Keep one semantic connector per business edge.
Additional outputs
- PNG: prefer
export-png, which reads root canvas dimensions, limits output
size, writes atomically and reads the PNG dimensions back. Alternate renderer
details are in PNG export.
- HTML:
fireworks.py export-html diagram.svg diagram.html. One sanitized
offline file provides pan/zoom, source copy and static image downloads.
- GIF: “Generate a GIF”, “Animate this diagram”, “生成 GIF”, “制作 GIF” and
“让这张图动起来” select the existing semantic SVG's motion route. Styles 1–12 are enabled
for the documented scene contracts; arbitrary same-style topologies are not
promised. Load motion effects and run
fireworks.py animate diagram.svg diagram.gif. Default is 960px, 20fps, 5.75s
with the +2s-settled-flow preset and a .motion.json report. Historical
user-approved fields describe maintainer-reviewed presets, not authorization
from the current user to publish, spend or send data.
Verify the requested outcome
Inspect the final PNG at intended reading size when image viewing is available:
check text completeness, contrast, font substitution, hierarchy, spacing, clipping,
arrow direction, crossings and labels. Preserve style palette and material while
fixing defects. Reuse an unchanged reviewed render; do not keep adding tests or
polish after acceptance passes. If viewing is unavailable, explicitly mark the
visual check skipped and do not claim visual correctness.
After a failed check, use its element IDs and geometry to make a focused repair;
change the approach after two unchanged failures. Widen/split an overfull diagram
instead of hiding required copy or endlessly shrinking type. Do not silently
weaken semantic or composition constraints to obtain a pass.
Complete every requested local output and its applicable checks, then report file
paths, dimensions, visual review and residual limitations. A first SVG does not
complete a requested PNG/GIF/HTML package. Publication or remote delivery requires
its own scope-matching authorization; existing authorization is not requested twice.