用途:把用户需求转成严格的 Spec JSON(场景图),据此生成结构正确的 SVG,再做校验,并可按需渲染 PNG 预览。适用于图标、图表、图示、界面草图、技术制图等需要结构正确性的任务。
主要能力:从 JSON 规格构建 SVG;校验 SVG;可选渲染 PNG(需 CairoSVG);还可对两个 SVG 渲染后做图像差异。提供 CLI 与 Python 库两种用法。
用法:先按 references/spec.md 中的模板把请求写成 Spec JSON,然后构建:python scripts/svg_cli.py build spec.json out.svg。校验:python scripts/svg_cli.py validate out.svg。可选渲染:python scripts/svg_cli.py render out.svg out.png --scale 2。差异对比:python scripts/svg_cli.py diff a.svg b.svg diff.png [--scale N]。作为库使用:from svg_skill import build_svg, validate_svg,然后 build_svg(spec_dict)、validate_svg(svg_text)。
规格设计规则:始终设置 canvas.viewBox 以及显式 canvas.width/canvas.height;优先用绝对坐标,仅在能降低复杂度时用变换;数值不得为 NaN/inf,保留 3-4 位小数;可复用元素放入 defs(标记、渐变、clipPath)并按 id 引用;除非必要避免使用奇特滤镜以保证跨查看器一致;文本受字体与查看器影响,若需像素级一致应视为风险,优先使用形状。
需求含糊时:先判断 SVG 类型(图标/图示/图表/UI/技术图),从 references/spec.md 选择模板并填入具体数值;尺寸未知时可用默认值:图标 24x24 或 32x32,UI 草图 1440x900 或 390x844(移动端),图表 800x450,图示 1200x800,技术图需指定单位(mm/in)与比例。
限制:渲染 PNG 需安装 CairoSVG;文本跨字体/查看器会变化,无法保证像素一致;其它性能与依赖细节暂未提供。