一个stdlib审计脚本如何抓出SVG隐藏缺陷:spark-to-paper-skills的audit_svg.py完全原理
发布时间:2026/10/14 16:59:59 锦皓数字建站

【免费下载链接】spark-to-paper-skillsOne sentence in, one draft paper out: spark-to-paper-skills automatically reviews papers, plans and runs experiments, and writes a research draft—typically using about $10 in API costs per paper.项目地址https://gitcode.com/gh_mirrors/sp/spark-to-paper-skills点击查看免费下载spark-to-paper-skills 是一个把一句话研究想法变成完整论文草稿的开源技能套件而 audit_svg.py 是其中最有匠气的一部分一个只用 Python 标准库的 SVG 审计脚本不依赖渲染器、不需要 API Key、不加载任何模型却能靠几何测量抓出文字溢出、标签被图标裁半、箭头随线宽暴走、被像素描摹成路径汤等一整套肉眼难发现的 SVG 隐藏缺陷。本文带你完整读懂它的工作原理。为什么能渲染出来不算通过在 spark-to-paper-skills 的 7 阶段流水线里第 6 阶段要把论文插图变成可编辑的向量图官方 PaperBanana 先出候选位图技能再原生重绘成真正的rect/path/text对象。此时最大的风险不是图好不好看而是看不见的缺陷标签差 2 个像素顶到卡片边缘1× 缩放时完全看不出箭头默认按线宽缩放3px 描边让 6 单位的箭头变成约 18px 的庞然大物一段✓符号在导出 PDF 时静默回退成另一种字体整篇论文字体不统一。脚本开篇的注释一针见血It renders is not a gate.能渲染出来不等于通过。零依赖是怎么做到的打开 audit_svg.pyimport区只有argparse、json、math、re、sys、xml.etree.ElementTree、pathlib七件标准库武器。它不截图、不调渲染引擎所有测量都是纯几何计算解析用ElementTree把 SVG 当 XML 读按文档顺序遍历walk方法同时累乘transform矩阵支持translate/scale/rotate/matrix建模每个文本和图形都被解析成一个 Box 包围盒附带绘制顺序order——这个顺序是判定谁盖住谁的关键判决盒与盒之间做交叠面积、边距、端点距离等确定性计算产出带错误码的 JSON 报告。核心技巧不用渲染器如何精确量出文字宽度这是全脚本最巧的设计。项目强制插图使用Times New Roman, Nimbus Roman, serif字体栈而 Times 属于 Adobe core-14 字体——它的每个字符前进宽度是公开的标准数据。脚本直接内嵌了 normal/bold 两套字宽表audit_svg.py#L36-L50单位为 1/1000 emtext_width Σ(每个字符的字宽) × font-size / 1000配合 Times 的 ascender0.683em和 descender0.217em每段text都能算出精确到像素的包围盒连tspan的续行、上下标偏移、text-anchormiddle/end的整行回移都按渲染规则模拟了。换句话说它测量文字的方式和渲染器一样却不需要渲染器。它到底能抓出哪些隐藏缺陷每一个错误码背后都是真实批次中实际交付过的缺陷。核心清单如下错误码抓出的缺陷背后的洞察canvas_overflow元素越出画布含箭头头部被裁切箭头画在线条终点之外线条在画布内也会裁头text_overlap两个标签互相叠字交叠面积超过较小盒子 8% 才算数避免误报shape_over_text后绘制的图形盖住文字靠文档顺序判定 z-order——图标把标签裁成两半container_overflow/container_hug文字贴边甚至顶出卡片边距不足max(4px, 0.35×字号)即失败勉强在里面不算通过marker_scales_with_strokemarkerUnitsstrokeWidth的箭头随线宽膨胀一行默认属性导致箭头变成 18px 的巨物font_too_small缩字号硬塞布局缩小文字是被明令禁止的修法glyph_fallback_risk✓ ✗ →等字形会静默回退字体PDF 里会莫名混入第二种字体族path_soup图是描出来的不是画出来的见下文presentation_attr_beaten白字标签渲染成黑字CSS 级联陷阱元素属性永远输给样式表规则data_uri/external_reference/no_text/duplicate_id内嵌位图、外链、无活文本、重复 id披着 XML 外衣的位图放大 2× 依旧模糊其中path_soup尤其精彩它统计基础图元 ÷ (基础图元 path)的比例低于 0.35 就判定为像素描摹。记录在案的真实案例——自动描摹一张图产生了59,430 条 path、10 MB、0 个可编辑文本而手绘同内容的手绘图比例在 0.6 以上、不到 100 KB。可编辑从此有了机器可检的形式。配套的 svg-craft.md 把每个缺陷、根因和修法整理成缺陷目录与脚本错误码一一对应堪称最佳实践文档。审计不是终点测量修复循环的门禁audit_svg.py单独运行只是一次体检它的价值在循环中兑现。ts-figure-svg/SKILL.md 规定了每轮的标准动作先快照round_0N.svg先留证据再检查再跑审计 两种宽度渲染逐条处理命中项python3 skills/ts-figure-svg/scripts/audit_svg.py work/round_0N.svg --json work/round_0N.audit.json关键规则有三条4 轮是地板不是目标只要还有缺陷就继续审计通过也不结束——还要在 480px 真实栏宽下人眼复核最终由总门禁 run_gates.py 校验svg_rounds ≥ 4且审计 JSON 为ok: true否则整篇论文构建失败。这就是项目模型负责判断、代码负责诚实设计哲学的缩影。上手体验一条命令的 selftest脚本内置了自检模式用 4 段内嵌 SVG9 类缺陷 裁切箭头 路径汤 一份干净对照验证自己是否还能抓出所有缺陷不需要任何准备python3 skills/ts-figure-svg/scripts/audit_svg.py --selftest # selftest ok — 9 defect classes clipped marker path soup caught; clean SVG passes常用参数也都很直白--min-font-px可读性下限默认 20、--pad/--pad-em文字与卡片的最小边距、--font-family强制字体栈、--min-cleanliness反描摹阈值、--json输出报告。退出码约定同样清晰0 通过1 有错误2 用法/解析失败——天然适合接入 CI。小结audit_svg.py是用确定性代码兜住 AI 生成物质量的典范7 个标准库 import、一张 Times 字宽表、一个包围盒类就把能渲染升级成了可证明地正确。它证明了一件事——严谨的质量门禁不一定要重工具选对测量方式标准库就是最锋利的审计刀。如果你也在做 SVG 生成或插图流水线这套几何审计 修复循环 硬门禁的思路非常值得借鉴。更多上下文可以继续阅读脚本本体audit_svg.py含 selftest 实现技能说明ts-figure-svg/SKILL.md · 缺陷目录svg-craft.md调用方文档ts-paper-figure/SKILL.md · 总门禁run_gates.py项目总览README.md赞分享【免费下载链接】spark-to-paper-skillsOne sentence in, one draft paper out: spark-to-paper-skills automatically reviews papers, plans and runs experiments, and writes a research draft—typically using about $10 in API costs per paper.项目地址https://gitcode.com/gh_mirrors/sp/spark-to-paper-skills点击查看免费下载相关推荐如何写出你的第一个Agent Skill拆解OPC Skills的SKILL.md结构、脚本编排与依赖设计如何写出你的第一个Agent Skill拆解OPC Skills的SKILL.md结构、脚本编排与依赖设计 想让你的 AI 编程助手学会一项新本事本文以开源如何使用KLEE符号执行引擎发现程序中的隐藏缺陷完整指南如何使用KLEE符号执行引擎发现程序中的隐藏缺陷完整指南 KLEE Symbolic Execution Engine是一款强大的开源工具专为程序分析和漏洞编译器/解释器开发工具最完整MPC-HC静态分析实战用Cppcheck揪出90%隐藏缺陷最完整MPC HC静态分析实战用Cppcheck揪出90%隐藏缺陷 MPC HCMedia Player Classic作为经典的媒体播放器项目其代码质音视频桌面应用视频创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。