About svg-precision
svg-precision is a skill for generating structurally correct SVGs from a JSON scene specification, then validating them and optionally rendering a PNG preview. It is suited to workflows that need explicit, predictable SVG construction and checks.
Key features
- 01Build SVGs from JSON scene specs
- 02Validate generated SVG files
- 03Render PNG previews
- 04Compare rendered images
- 05Templates and layout recipes
Use cases
- 01Create icons, diagrams, charts, or UI mockups
- 02Check SVG output for structural issues
- 03Preview SVGs as PNG images
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ dkyazzentwatwa/ chatgpt-skills --skill svg-precisionAfter installing, type/svg-precisionin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/recipes.mdspec.mdscripts/requirements.txtself_test.pysvg_cli.pyscripts/examples/bar_chart.jsondiagram.jsonicon_check.jsontechnical_dim.jsonui_card.jsonscripts/svg_skill/__init__.pycore.pyrender.pyvalidate.pyDetails
From the project READMEsvg-precision
Generate structurally correct SVGs from a strict JSON spec (scene graph), then validate and optionally render a PNG preview.
Fast path
- Turn the user request into a Spec JSON (use templates in
references/spec.md). - Build the SVG:
python scripts/svg_cli.py build spec.json out.svg
- Validate:
python scripts/svg_cli.py validate out.svg
- (Optional) Render a PNG preview (requires CairoSVG):
python scripts/svg_cli.py render out.svg out.png --scale 2
Spec design rules (for accuracy)
- Always set
canvas.viewBoxand explicitcanvas.width/canvas.height. - Prefer absolute coordinates; use transforms only when they reduce complexity.
- Keep numbers sane: no NaN/inf; round to 3-4 decimals.
- Put reusable items in
defs(markers, gradients, clipPaths) and reference by id. - For predictable results across viewers, avoid exotic filters unless required.
- Text varies by fonts/viewers. If you need pixel-identical results, treat text as a risk and prefer shapes.
Using the bundled scripts
CLI
python scripts/svg_cli.py build <spec.json> <out.svg>python scripts/svg_cli.py validate <svg>python scripts/svg_cli.py render <svg> <out.png> [--scale N]python scripts/svg_cli.py diff <a.svg> <b.svg> <diff.png> [--scale N](renders + image-diffs)
As a library (in Python)
from svg_skill import build_svg, validate_svg
svg_text = build_svg(spec_dict)
report = validate_svg(svg_text)
When the request is vague
- Identify the kind of SVG: icon / diagram / chart / UI / technical.
- Pick a template from
references/spec.mdand fill in concrete numbers. - If dimensions are unknown, choose defaults that match the domain:
- icons: 24x24 or 32x32
- UI mockups: 1440x900 or 390x844 (mobile)
- charts: 800x450
- diagrams: 1200x800
- technical drawings: specify units (mm/in) and scale
References
references/spec.md- schema + ready-to-copy templates per SVG typereferences/recipes.md- layout and styling patterns that render consistently
Comments
Markdown supported