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)。