svg-book-illustrator
书籍/文章 SVG 配图生成工具,专注于架构图、流程图、层次图等专业技术配图。当用户需要为书籍章节或正式文章生成配图、创建架构图/流程图/层次图,或提到"章节配图"、"书籍插图"、"架构图"、"流程图"时使用此技能。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
书籍/文章 SVG 配图生成工具,专注于架构图、流程图、层次图等专业技术配图。当用户需要为书籍章节或正式文章生成配图、创建架构图/流程图/层次图,或提到"章节配图"、"书籍插图"、"架构图"、"流程图"时使用此技能。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
将本地开发的 Skills 批量同步到 ClawHub 与腾讯 SkillHub 两个平台。支持智能 .gitignore 过滤、白名单控制、增量同步、单个 skill 同步、双平台分流发布。本技能应在用户需要将本地 skills 发布到 ClawHub/SkillHub、批量同步技能、检查发布状态时使用。
跨平台 Agent 任务协调枢纽。本技能应在多个不同平台的 Agent 需要围绕项目任务源分配任务、标记归属、能力路由和交接上下文时使用。不要用于单一平台内的本地并行执行,或 Git 分支、提交、PR、merge 安全规则。
输入各类视频网站/播客平台链接后,自动下载对应媒体文件并交付给用户。优先使用 yt-dlp 覆盖抖音(Douyin)、B站(Bilibili)、YouTube 等常见视频网站,也可用于可直接暴露音频地址的播客平台(如小宇宙单集链接)。当遇到 403/登录/年龄或地区限制时,支持使用 cookies.txt 重试;对于可能存在 DRM/加密或条款限制的平台(例如部分 Spotify 内容),应提示用户仅下载其有权保存的内容,并在不可下载时建议改用官方离线/导出渠道或提供原始 RSS/直链。抖音视频在 yt-dlp 撞签名墙("Fresh cookies needed")时会自动 fallback 到无登录直连 aweme.snssdk.com/v1/play(仅需 video_id,不需要 cookie/a_bogus 签名);抖音图文笔记暂不支持自动下载,需手动处理。
元典法条与案例检索。本技能应在需要查询中国法律法规条文、检索相关案例、为法律分析提供数据支撑时使用。
PDF 处理工具,支持扫描件预处理、OCR 双层 PDF、页码添加、PDF 合并、解密、水印去除和压缩。本技能应在用户需要一键处理、优化或整理 PDF 文档时使用。不要用于:纯文本 PDF 内容编辑、PDF 阅读与批注、电子签名、非压缩目的的格式转换。
面向中国发明和实用新型专利的结构化初步分析工具。本技能应在用户需要拆解或解释权利要求、比较专利保护范围、进行产品侵权比对、等同分析、稳定性与无效风险分析、FTO、规避设计、专利价值评估或制作专利分析图表时使用。不要用于:代替专利律师或专利代理师出具正式意见、仅下载/OCR专利、撰写专利申请文件,或在未确认法域与有效权利要求时给出确定性结论;外观设计近似判断需另行采用专门方法并人工复核。
| name | svg-book-illustrator |
| homepage | https://github.com/cat-xierluo/legal-skills |
| author | 杨卫薪律师(微信ywxlaw) |
| version | 1.8.10 |
| license | MIT |
| description | 书籍/文章 SVG 配图生成工具,专注于架构图、流程图、层次图等专业技术配图。当用户需要为书籍章节或正式文章生成配图、创建架构图/流程图/层次图,或提到"章节配图"、"书籍插图"、"架构图"、"流程图"时使用此技能。 |
为书籍章节和正式文章生成简洁专业的 SVG 技术配图。
本 Skill 生成静态 SVG,直接嵌入 Markdown 文件(
<svg>标签),风格为简洁专业、透明背景 + 按模板语义分类配色(v1.7.0:层级类 layer/tree/金字塔走 G1-G4 灰度梯度;多样性类 flow/matrix/hub/cycle 走 P1-P8 多色调色板),适合纸质出版。
/svg-book-illustrator @path/to/chapter.md
references/diagram-catalog.md 有当前章节的预定义插图,匹配之[[FIG:N:简要描述]](N 从 1 开始编号)插图密度:每章「一节一张」为基准,数万字章节 6-8 张,宁精勿滥;纯 walkthrough / 总结节可省图避免冗余。密度指标:图/节 ≥ 0.7、图/万字 ≥ 0.8,低于判「偏少」并提示补图位置(详见第四阶段 + references/review-checklist.md)。
完成插图规划后,逐张生成:
references/layout-templates.md 获取模板规范references/style-guide.md 的设计规范生成 SVG 代码<svg> 根写入当前项目唯一的 data-figure-id="fig-chNN-sN-NN";模板中的 fig-template-* 仅为示例,落稿前必须替换<svg> 标签嵌入 Markdown,替换对应占位符**图 N-X:图标题**生成完成后,提取所有 SVG 到独立文件:
python scripts/extract_svgs.py path/to/chapter.md --output output/figures/
生成 + 嵌入后,逐章过审查门禁,详见 references/review-checklist.md:
① 配图密度审查:图/节 ≥ 0.7、图/万字 ≥ 0.8;低于判「偏少」,列出可补图的小节。跨章均衡——相邻章密度不宜骤变(认知/入门篇图密度不应远低于方法/实战篇)。
② 图-正文论点一致性审查:每张图回溯所在小节,核对节点数 / 层级名 / 流程方向 / 对比维度 与正文表述一致;替换 mermaid / ASCII 图时原信息(节点、关系、标注)不丢失;图注准确概括图内容,不夸大不遗漏。
③ 字宽/坐标硬算自检(v1.8.5+,先于视觉目检):生成器产出后,按 CJK≈Fpx/字、Latin≈0.55Fpx/字 估算文字宽度 ≤ 容器宽,相邻元素 y 差 ≥ 20px,viewBox H 足够——计算闸,防视觉目检对"轻微溢出/贴近"漏检(v1.8.5 radar 图例重叠、three-col 子卡片溢出两例均靠此抓出)。详见 references/review-checklist.md §③。
④ 视觉目检(多模态渲染后眼检):SVG 用受控字体渲染为 PNG(快速预览运行 python3 scripts/render_svg.py input.svg output.png;高 DPI 运行 node scripts/svg2png.js input.svg output.png 300)后,用多模态模型逐张查——文字不溢出容器、框不重叠(间距 ≥24px)、箭头落位方向正确、字号可读(节点≥16px 副≥12px)、黑白可辨、整体美观留白合理。发现问题回改 SVG 坐标,复检直到目检通过。
多模态生产提示:若环境支持图像理解,④ 必须真正"看"渲染图,不能只靠 xmllint / rsvg 无警告间接验证——语法通过 ≠ 布局美观,溢出/重叠/箭头错位只有肉眼(或多模态模型)能发现。但视觉目检对"轻微溢出/贴近"易判 OK,故须先过 ③ 字宽硬算自检。
形状包含窄语义(v1.8.10+):默认把 shape/shape 包含或重叠当作待修布局问题,先改坐标,不得用 data-overlap-role="decoration"、data-allow-overlap 或任意自造 role 掩盖。只有外层 area shape 确实承担“面板承载内层信息卡”等容器语义时,才在外层写单图唯一的安全原生 id、data-overlap-role="container"、明示承载关系的 data-overlap-note 与可静态证明非透明的 hex/rgb/hsl fill;namespaced 假属性、透明/继承/paint server/零 opacity 容器和孤立 note 都无效。该声明只是让意图可审计,不证明几何正确;最终必须由 writing-reviewer v0.16+ render gate 以真实浏览器几何复核,并在 evidence 中记录实际命中的 outer / inner / reason。详见 references/style-guide.md §六与 references/review-checklist.md §⓪/④。
生产器契约回归(v1.8.9+):修改 scripts/gen-*.py 或 references/layout-templates.md 后,必须运行:
python3 -m unittest discover -s scripts/tests -p 'test_*.py' -v
只有退出码为 0 才能进入合并候选。该测试实际执行全部生成器,并检查模板文档中的全部 SVG 代码块;viewBox 必须严格为 0 0 720 H,根 width 必须为 720、height 必须等于 H;data-figure-id 必须存在、格式安全且在同一批产物中不重复;XML、<style>、元素 style=、任一元素的 font-family、class/CSS 变量和背景矩形任一不合规都会失败。任何 data-overlap-role 也必须严格满足上面的 container + 单图唯一原生 id + 明示承载关系的 note + 外层 area shape + 非透明 hex/rgb/hsl fill 窄契约;namespaced 属性、孤立 note、继承/透明/paint server fill、decoration 与自造 role 直接失败。
生产身份契约(v1.8.9+):下游 review / render inventory 以 SVG 根的 data-figure-id 绑定跨轮 finding 与渲染证据,不能再依赖“第几张图”或文件遍历顺序。5 个生成器默认从输出文件 stem 取稳定 ID,也支持显式指定:
python3 scripts/gen-radar.py figures/fig-ch03-s2-01.svg --figure-id fig-ch03-s2-01
安全值只允许 1–128 位字母、数字、点、下划线或连字符。写入书稿前必须使用项目内唯一的 fig-chNN-sN-NN;默认 stem 只是便捷值,不能替代项目级唯一性检查。fig-template-* 只用于模板自身,禁止原样进入书稿。本契约只约束 v1.8.9+ 新生成或新落稿的 SVG,不要求回改历史书稿;历史资产是否迁移由项目单独决策。
仓库内 .github/workflows/svg-book-producer-contract.yml 会在本 Skill 或工作流自身发生 PR 改动,以及相关改动推入 main 时自动运行同一命令。没有明确通过的 Source producer contract check,不应把生产器改动视为可合并。该 CI 只证明源 SVG 生产契约,不替代受控字体渲染、像素等价验证或多模态视觉目检。
受控字体渲染(v1.8.9+):源 SVG 为保证 Markdown/Obsidian 兼容,不嵌 <style> 或字体栈;导出工具统一读取单一权威源 assets/render-fonts.css:
# 快速预览(librsvg;固定外部 CSS + 宽 720,不指定高度)
python3 scripts/render_svg.py input.svg output.png
# 高 DPI(Puppeteer/Chrome;注入同一外部 CSS)
node scripts/svg2png.js input.svg output.png 300
# 修改字体接线、身份元数据或 SVG 生成器后:逐像素比对两类基线
python3 scripts/verify_render_font_equivalence.py
禁止用裸 rsvg-convert 结果作为验收证据:它会按环境默认字体渲染,已实测产生 serif 退化和像素漂移。浏览器预览可继承宿主字体,但正式导出/验收必须走上述受控入口。像素等价脚本同时比较“旧内嵌字体 vs 外部字体”和“无 ID vs 有 ID”两组基线;它是本地渲染回归证据,需要机器已有 rsvg-convert 与 ImageMagick,不属于只校验源码契约的 GitHub Actions check,也不替代逐图视觉目检。
13 种布局模板(11 种基础 + 2 种组合),详见 references/layout-templates.md。
| 模板 | 适用场景 | 典型元素数 |
|---|---|---|
| flow | 流程图、步骤图、管道图 | 3-5 个节点(水平≤4) |
| layer | 层次架构、分层堆叠 | 3-4 层 |
| matrix | 前后对比、并排比较 | 2 列 |
| hub | 中心辐射、生态关系 | 1 核心 + 4-8 外围 |
| tree | 层级结构、组织图、金字塔 | 3 层 |
| cycle | 循环流程、迭代闭环 | 4-6 个节点 |
| radar(v1.8.0) | 多维度数值对比(理论 vs 实际 / 能力评估 / 国内外 / 模型适配) | 6-12 维,1-2 系列 |
| skill-card(v1.8.1) | 单个 Skill 的结构(输入→Skill 三件套+流程→输出) | 1 Skill + 3-5 步 |
| timeline-lane(v1.8.2) | 多角色/多主体时间推进(诉讼多角色时间线/案件流程节点) | 3-5 泳道,每道 2-5 事件 |
| matrix-grid(v1.8.3) | 两维交叉对照(风险×条款 / 特征×产品 / 能力×模型) | N×M 网格(3-6 × 3-7) |
| three-col(v1.8.4) | 三分类/三版本对仗并列(每栏带子卡片) | 3 栏 × 3-4 子卡片 |
| flow+matrix | 递进流程附带阶段对比 | 3-4 阶段 + 对比区 |
| flow+hub | 编排流程中节点展开 | 主流程 + 展开节点 |
详见 references/style-guide.md。核心要点:
#2D3436/#636E72 保证可读。打印友好约束(文字 vs 所在模块填充色对比 ≥4.5:1 WCAG AA、相邻模块区分度 ≥10%、模块色明度 L*≥80、禁高饱和荧光、CMYK 不偏色、灰度差≥10%)。仅新生成图用新配色,main 上既有 34 张白底单色 SVG 保持稳定不回改。fill/stroke 属性内联——禁 <style> 块定义颜色、禁 <svg> 开标签写 font-family、禁 CSS 变量/class、禁画背景矩形(已验证的 Obsidian 渲染 + 透明背景硬约束,详见 references/style-guide.md §5.4)。references/style-guide.md §5.5):① 深底浅字——深色填充(L* ≤ 50,如 #2C5282/#1A202C/G4 深档/项目 canonical 强调色)的模块内 <text> 必须用 #FFFFFF/#EDF2F7,禁深底深字;② 字色对比度——文字 fill 与所在模块 fill 对比 ≥ 4.5:1(AA,大文本 ≥ 3:1);③ 箭头落点——marker 单 id="arrow" + markerUnits=userSpaceOnUse + orient=auto,落点 x2 = 目标框边 − 4px、方向指向目标节点;④ 文字完整性——每个有标题语义的节点框都有非空 <text>、文字坐标在框内、fill 与模块不同色。源 T134 review 实测:图 7-6 箭头错位 / 图 11-8 字色不可辨 / 图 11-9 深蓝底深字 / 图 7-13/8-3/6-7 框内文字缺失。references/style-guide.md §5.0/§5.1):① 文字色统一深灰二档——图内所有文字仅允许 #2D3436(主)/#636E72(次),深底走 #FFFFFF/#EDF2F7;不再用 #1A202C/#4A5568(收敛二档消除四档混用)。② 项目 canonical 主色(如 #2C5282/#1A365D 蓝)只用于焦点节点填充/描边,禁作文字 fill——以色块承载强调,文字强调改用字重/字号;这是通用纪律,非项目指针(任何项目锁定主色为视觉标识时都适用)。③ 每张结构/流程图 ≥1 焦点节点——layer/tree/flow/hub/cycle/matrix 应至少有 1 个焦点节点(canonical 主色或更深一档填充/描边)承载层次,反对纯灰平铺;纯并列清单无自然焦点时用灰阶递进 + 边框粗细区分。源法律 AI Skill 实战 DEC-114 方案 A 定调(图 1-6 灰阶 + 唯一蓝色焦点 = 层次标杆、零蓝字)。data-overlap-role="container",并同时写单图唯一原生 id、明示承载关系的 data-overlap-note 与非透明 hex/rgb/hsl fill。静态契约只审声明,实际几何由 writing-reviewer render gate 审计references/diagram-catalog.md 定义插图目录格式和创建方法。
出版社通常需要位图版本。scripts/svg2png.js 会读取 assets/render-fonts.css,将 SVG 转为高分辨率 PNG:
# 单张转换(默认 600 DPI)
node scripts/svg2png.js input.svg
# 指定输出文件和 DPI
node scripts/svg2png.js input.svg output.png 300
# 批量转换目录下所有 SVG
find figures/ -name "*.svg" -exec node scripts/svg2png.js {} \;
依赖:快速预览 wrapper 需要系统已有 rsvg-convert;高 DPI 导出需要 Puppeteer 和 Chrome/Chromium。缺失时脚本会明确报错,不会自动安装。首次使用高 DPI 功能前由用户自行运行:npm install puppeteer
印刷 DPI 建议:
data-figure-id;无嵌入 font-family、无 <style>/style=、颜色只用 fill/stroke 属性内联、无背景矩形、xmllint well-formed;受控 wrapper 渲染无警告)container 窄声明并由 writing-reviewer render gate 留证fill/stroke 属性内联;既有 34 张白底单色图保持稳定不回改#FFFFFF/#EDF2F7(禁深底深字);文字 vs 所在模块对比 ≥ 4.5:1;箭头落点 x2 = 目标框边 − 4px、方向指向目标;每个有标题语义的节点框都有非空 <text>、坐标在框内、fill 与模块不同色(详见 style-guide §5.5)#2D3436/#636E72(+ 深底浅字 #FFFFFF/#EDF2F7),不再用 #1A202C/#4A5568;项目 canonical 主色只焦点节点填充/描边、禁作文字 fill;每结构/流程图 ≥1 焦点节点(详见 style-guide §5.0/§5.1)源生产契约与受控渲染只是必要不充分条件——保证 SVG 可解析、画布与样式受控,不保证图正确美观。密度 + 一致性 + 目检三道审查才是验收依据(
references/review-checklist.md)。