# Legal Visualization

> Legal Visualization。面向法律业务场景的法律图解与图表生成技能；当用户要求把案件材料、合同材料、合规事项、交易安排、证据链、诉讼流程、时间轴、法律关系、客户汇报、法律服务方案或律师团队工作整理成关系图、流程图、时间轴、证据链、风险图、路线图、PNG/SVG/PDF/.drawio 时使用；也兼容“法律可视化”“案件事实图”“法律关系图”等说法。先按受众、任务动词和路由规则筛选场景，再生成可交付图片，并保留 draw.io 源文件作为可编辑底稿。本技能不用于事实核验，也不替代法律结论判断。

- Skill: `cat-xierluo/legal-visualization` (Agent Skill, multi-file: 60 files)
- Install (CLI): `npx skillmds@latest add cat-xierluo/legal-visualization`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cat-xierluo/legal-visualization/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- License: CC-BY-NC
- Author: cat-xierluo (https://skillmd.com/u/cat-xierluo)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/cat-xierluo/legal-visualization

---


# Legal Visualization

面向法律业务场景的法律图解与图表生成技能。覆盖案件、非诉项目、合规管理、客户协作、团队办案、客户汇报和法律服务方案，生成可直接提交、汇报或嵌入文档的法律图表。对外英文名使用 `Legal Visualization`，中文可称“法律可视化”；Skill 标识和目录名统一为 `legal-visualization`。draw.io / diagrams.net 是默认可编辑底层格式，不是对外定位的边界。

## 硬约束

1. **缺失事实必须显式标注**：材料中未见的主体、时间、金额、合同、证据，不得出现在图中；必须显式写"待补充/待核/一方主张"，禁止补全或推断。
2. **业务条线优先于图型**：先识别"诉讼/公司/合规/知产/争议/合同/客户/服务"等业务条线，再选图型。
3. **VizSpec.routing 必填**：未填 `routing.primary_scene` 与 `routing.selection_reason` 禁止写 drawio。
4. **一图一观点**：超过 1 个核心观点必须拆主图+附图；时间、计算、程序等 ≥3 类不同语义区域不得自由堆进同一画布，只能拆图或使用已定义容量的分区模板。
5. **领域校验必须通过**：`.drawio` 在复制、导出和交付前必须通过 `scripts/validate_drawio.py`；几何重叠、确定性文本溢出、无效容器关系或超长连线标签属于阻断错误；连线标签与独立节点/文字块的估算叠压属于必须目视复核的 warning。
6. **命中模板必须锁定几何**：已有适配模板时，使用 `scripts/instantiate_template.py` 只替换 `value` 占位符；随后可用 `scripts/apply_visual_roles.py` 编译样式，但编译前后每个 `mxGeometry` 必须完全一致。不得为了塞入更多材料而移动节点、缩小字号或扩写 edge 标签；容量不足时拆附图。

## 默认目标

- 默认交付三件套：`.drawio` 源文件、`.svg` 矢量图、`.png` 高清预览图；SVG 和 PNG 都从 `.drawio` 通过 draw.io / diagrams.net 导出。
- 用户要求庭审、报告、PPT 或归档时，按需追加 `PDF`。
- PNG 默认按 2 倍倍率导出；如用于打印、大屏汇报或高清插图，可通过 `--png-scale 3` 或 `--png-scale 4` 提高清晰度。
- 默认追求一步到位出图；只有在导出工具不可用或材料关键事实缺失时，才把 draw.io 手工编辑作为兜底。
- 图表必须服务一个核心观点或一个清晰的信息任务，不把所有材料堆进一张图。
- 自动导出的 `.drawio`、图片和报告默认进入 `archive/<timestamp>/`，避免污染 `templates/` 或源文件目录。

## 依赖

### 开箱即用

- 生成 `.drawio` XML、锁定模板实例化、读取参考文件和执行 draw.io 领域校验仅需 Python 3 标准库。
- 没有 draw.io CLI 时，仍可交付 `.drawio` 源文件，并在最终说明中标明图片导出未完成。

### 核心流程依赖

| 功能 | 依赖 | 安装方式 |
|------|------|----------|
| VizSpec 2.1 校验与视觉角色样式编译 | `PyYAML` | `pip install pyyaml` |
| 自动导出 SVG/PNG/PDF | draw.io / diagrams.net 桌面版 CLI | macOS 可安装 diagrams.net；脚本会检测 `drawio`、`draw.io`、`drawio-desktop` 和常见应用路径 |

首次使用 VizSpec 或样式编译器时，先运行 `pip install pyyaml`。缺少依赖时脚本必须以非零状态退出并显示该安装命令，不得降级为“校验通过”。

## 工作流

1. **提取制图任务**：从材料中提取受众、案件/项目类型、核心问题、主体、时间、金额、标的物、流程、证据、风险、客户动作、团队动作和用户立场。缺少非关键事实时先合理标注“待补充”，不要停下等待。
2. **确定受众**：给法官的图保持客观、克制、可核对；给客户的图突出策略、风险和可能结果；给业务团队的图突出流程、责任和交付物；给律师团队的图可以保留更多细节和证据索引。
3. **路由场景**：先读 `references/scene-routing-guide.md`，按受众、任务动词、材料阶段和信息形态筛出 1-3 个候选场景；再读 `references/scene-library.md` 中对应章节定主场景。不要直接在完整场景库中凭关键词跳选。scene_id 选定后，从 `references/chart-decision-tree.md` 选图型变体与节点布局；该决策树是路由的下游，不替代路由。
4. **解决冲突**：如果多个场景都能命中，按“用户指定 > 受众匹配 > 更窄业务领域 > 当前材料阶段 > 通用场景”选择主图；未选场景只作为附图候选。
5. **确定内容**：按“全面罗列 -> 逻辑整合 -> 精简内容”处理材料。复杂案件先做细节图，再按核心主体、核心时间线或核心法律关系组合。
6. **生成 VizSpec**：按 `references/vizspec-schema.md` 写 VizSpec 2.1；每个视觉节点分别声明 `visual_role`（语义类别）、`epistemic_status`（事实认知状态）和 `emphasis`（图面强调），关系声明 `status`。三者不得互相推定，例如“被告”不等于“争议”。
7. **编排图面**：按 `references/visual-composition-rules.md` 和 `references/scene-composition-playbook.md` 控制图表逻辑、线条、注释和重点表达；复杂场景再读 `references/advanced-case-patterns.md`。节点命名按 `references/naming-conventions.md`。角色、状态、强调、密度和三套主题的机器真相源是 `config/visual-role-registry.json`；`references/shape-registry.md` 只解释用法。正式法律图禁用 emoji/icon 前缀。
8. **生成 draw.io 几何**：先查 `references/template-guide.md`。命中模板时用 `scripts/instantiate_template.py` 只填值并锁定几何；没有适配模板时才按 `references/xml-reference.md` 写新 XML，并声明 `template.id: custom`。
9. **编译视觉语义**：先运行 `python scripts/check_vizspec.py spec.yaml`；通过后运行 `python scripts/apply_visual_roles.py source.drawio spec.yaml styled.drawio`。该脚本只改 `style` 与视觉元数据，并在输出前比较全部 `mxGeometry`；几何变化、缺节点、非法字段或输出领域校验失败都会阻断。
10. **运行领域门禁**：执行 `python scripts/validate_drawio.py styled.drawio`。任何 error 都必须修正；warning 需结合导出图人工复核。`shape_policy` 会对非限定形状及未声明 `visualRole=decision` 的菱形告警。
11. **导出图片**：按 `references/output-workflow.md` 导出 `SVG/PNG/PDF`，并保留 `.drawio`。`export_drawio.py` 会先重跑领域门禁，失败时禁止复制和导出。
12. **质检交付**：打开实际导出的 SVG/PNG，按 `references/quality-checklist.md` 检查文字、连线、图例、主题与画布边界，再向用户说明输出文件、使用场景和未能验证的环节。

## 场景路由速查

| 输入特征 | 首选图表 | 读取 |
|------|------|------|
| 事件先后、时效、保证期间、工期、程序经过、项目里程碑 | 时间轴、分层时间轴、时间区间图、路线图 | `scene-library.md` 通用、建设工程、服务方案 |
| 多主体、多合同、资金/票据/货物/股权流转 | 法律关系图、流向图、组合关系图 | `scene-library.md` 借款、票据、公司、国际贸易 |
| 多笔金额、工程价款、出资比例、费用趋势 | 表格、柱状图、折线图、占比图 | `scene-library.md` 数据与公司 |
| 诉讼程序、业务流程、审批流程、交易步骤、服务交付 | 流程图、泳道流程图、路线图 | `scene-library.md` 通用、国际贸易、土地、服务方案、合同、合规 |
| 法律服务方案、客户汇报、项目报价、工作计划 | 服务路线图、范围-交付物矩阵、方案对比图 | `scene-library.md` 服务方案 |
| 合同起草审查、履约管理、违约处置、标准文本体系 | 合同生命周期图、审查泳道、条款风险图、义务台账 | `scene-library.md` 合同 |
| 企业合规、内控、公司治理、监管整改 | 风险地图、审批矩阵、制度架构、整改路线图 | `scene-library.md` 合规治理 |
| 投融资、并购、资产交易、尽职调查 | 交易架构图、尽调问题地图、交割条件清单 | `scene-library.md` 交易 |
| 劳动人事、知识产权、数据合规、债务化解、家族财富、行政监管 | 生命周期图、权属链、数据流、清偿顺位、财产结构、监管路径 | `scene-library.md` 对应专题 |
| 初次咨询、签约、材料收集、服务进度、结案续约 | 客户生命周期图、材料收集清单、服务进度看板 | `scene-library.md` 客户全生命周期 |
| 诉前评估、起诉准备、庭审、调解、判后、执行、再审 | 案件办理路线图、庭审攻防图、执行推进图 | `scene-library.md` 案件办理全流程 |
| 证据发现、固定、补强、举证、质证、归档 | 证据生命周期图、证明责任图、质证攻防图 | `scene-library.md` 证据工作全生命周期 |
| 起诉状、答辩状、律师函、法律意见书、尽调报告 | 文书生产流程图、文书结构图、版本演变图 | `scene-library.md` 法律文书生产 |
| 谈判、调解、仲裁、诉讼、行政投诉、刑民交叉、执行转破产 | 争议路径选择图、并行程序泳道图、成本周期对比图 | `scene-library.md` 争议解决路径 |
| 团队分工、材料流转、庭审准备、复核、复盘、知识沉淀 | 任务分工图、材料流转图、甘特图、质量复核图 | `scene-library.md` 团队协作 |
| 工程现场、房地产项目、路线、空间位置 | 平面图、空间示意图 | `scene-library.md` 空间、房地产 |
| 证据证明方向、间接证据组合、争点拆解 | 证据链图、争点-证据矩阵 | `scene-library.md` 证据与复合案件 |

## 关键原则

- 一张图只表达一个主观点；多个观点拆成多张图或多页图。
- 颜色必须有含义：同主体同色，同类型关系同线型，争议/风险/违约用强调色，辅助事实用灰色。
- 避免线条交叉和长距离绕行；连接多的主体放在中心或靠近相关节点。长 edge 标签改为独立文本节点、侧栏或图例。
- 图表主体只放短标签；长事实、证据编号、条文依据放侧栏、底注或附表。
- 对法官提交的图，不夸张表达，不把争议事实画成既定事实；争议或待证事实用虚线、问号、标注或灰色处理。
- 统一圆角矩形：节点统一圆角矩形（菱形仅用于决策判断点），靠**角色配色 + 事实状态线型 + emphasis 描边**区分语义，不用椭圆 / 圆柱 / 文档形等不规则形状；正式法律图禁用 emoji/icon 前缀。

## 输出格式

- `[图名].drawio`：源文件，必须随图片一起交付，便于用户继续编辑。
- `[图名].svg`：从 `.drawio` 导出的矢量图，适合 Word、PPT、网页和继续缩放。
- `[图名].png`：从 `.drawio` 导出的高清预览图，适合微信、飞书、邮件正文、普通预览。
- `[图名].pdf`：适合归档、打印或正式附件。
- `archive/<timestamp>/export-report.json`：批量导出报告，记录 `.drawio` 源文件、导出工具、输出文件和轻量检查结果。

## 参考文件

- `references/scene-library.md`：法律图表场景索引和路由规则。
- `references/scene-routing-guide.md`：大场景库下的选择规则、评分法和冲突处理。
- `references/scene-routing-evals.md`：场景路由测试集，用于检查误选和冲突。
- `references/scene-composition-playbook.md`：场景编排手册，说明各类场景怎么取舍和布局。
- `references/vizspec-schema.md`：结构化制图规格，用来稳定生成图表。
- `config/visual-role-registry.json`：角色、主题、状态、强调、密度与形状 token 的机器可读单一真相源。
- `references/shape-registry.md`：视觉注册表的人类可读说明与组合规则。
- `references/visual-composition-rules.md`：法律图表编排规则。
- `references/advanced-case-patterns.md`：复杂案件和高阶论证图的编排套路。
- `references/output-workflow.md`：一步到位生成 `.drawio` 与图片的操作流程。
- `references/quality-checklist.md`：交付前检查清单。
- `references/xml-reference.md`：draw.io XML 结构、样式、连线和容器规则。
- `references/chart-decision-tree.md`：scene_id 选定后选图型变体与节点布局。
- `references/legal-visual-constants.md`：视觉常量（页面、字体、调色板、线型）。
- `references/naming-conventions.md`：法律节点中文命名规范。
- `references/template-guide.md`：模板目录结构、模板清单和新增模板规则。
- `references/xml-example-*.md`：XML 语法示例，不放入模板目录。
- `templates/`：只存放可直接打开的 `.drawio` 模板，按英文业务目录组织。

## 实现提示

- XML 与领域布局校验：`python scripts/validate_drawio.py path/to/file.drawio`，检查结构、容器、节点重叠、文字容量、边标签长度及边标签与独立元素的估算叠压。
- 模板锁定实例化：`python scripts/instantiate_template.py templates/litigation/complex-case-split.drawio values.json output.drawio`；只允许替换 `value`，实例化后自动校验。
- 批量导出：`python scripts/export_drawio.py path/to/file.drawio` 默认生成 `.drawio + .svg + .png` 三件套，并写入 `archive/<timestamp>/export-report.json`；PNG 默认 2 倍导出，需要更高清可加 `--png-scale 3`，如需旧行为可加 `--in-place`。
- 命名规范检查：`python scripts/normalize_naming.py path/to/file.drawio path/to/spec.yaml`，对照 `naming-conventions.md` 输出偏差清单。
- VizSpec 声明校验：`python scripts/check_vizspec.py spec.yaml`，校验 `visual_role` / `theme` 合法；`validate_drawio.py` 的 `shape_policy` 检查对非限定形状（椭圆 / 圆柱 / 文档形等）告警。
- 视觉角色编译：`python scripts/apply_visual_roles.py source.drawio spec.yaml styled.drawio`，把主题、角色、事实状态和强调编译进样式，同时证明 `mxGeometry` 未改变。
- 领域回归：`python -m unittest scripts.test_validate_drawio scripts.test_instantiate_template scripts.test_check_vizspec scripts.test_apply_visual_roles`，覆盖最小违规反例、合法容器正例、VizSpec 声明、三主题差异与几何守恒。

