---
name: mqc-trial-confrontation-master
description: 庭审对抗图大师。按要件审判九步法与请求权基础，把案件材料推成一张庭前对抗图与一份分析表。左为提出请求的一方、中为法院审查、右为抗辩的一方；深红标出决定性要件。供律师团队庭前推演与向当事人汇报，不对法院出示。
tags: [legal, litigation, 九步法, 请求权基础, 庭审对抗, 庭前三大法宝, svg, xlsx]
metadata:
  version: 1.0.0
  author: 缪奇川
  license: MIT
  deliverables: [svg, png, xlsx]
  dependencies: [openpyxl, cairosvg]
---

# 庭前三大法宝 · 庭审对抗图大师

## 它替你解决的那件事

庭前要把各方观点排布起来：谁提出什么请求、法院会审什么、对方会怎么应、哪一处是决定性要件。
这件事本来靠人在脑子里过，过完写进代理词，中间没有可核对的中间产物。

本 skill 出两样：一张主图，把对抗结构摆出来；一份分析表，把推演逐格落实。
图是表的渲染，表是唯一的信息源；图上看不清楚的，回表查对应行。

## 它做法律判断，但判断带标

另外两件法宝只照录材料。本 skill 不同：九步法与请求权基础的推演本就是判断。
所以纪律不是不判断，是**判断必须带标、边界必须划死**：

- 请求权基础、构成要件拆解、抗辩四分法归类——可以出，但每条带三标（法律层面置信／证据层面置信／来源）。
- 证明前景、决定性要件排序、法院另作定性的风险——只给方向，结论留空等律师填。
- 四段攻防的正文一律照录起诉状、答辩状、代理意见的原文，模型只摆位置不生成主张。
- 条号案号绝不编造，不确定的标【待核验】并转检索方向。

## 这张图不给法官看

给法官看等于替对方把观点摆上去提醒他。所以图内可以写我方薄弱点、待补证、风险等级，
用途是团队庭前推演与向当事人汇报。

## 你会拿到什么

- **主图**：三栏等宽，左为提出请求的一方、中为法院审查、右为抗辩的一方；
  一个争点板块占一个行组，同侧诸卡汇聚成母线进入中轴；深红标出决定性要件与其走线；
  底部索引表列出各板块与「详见」行号。SVG 与 PNG 各一份。
- **分析表**：一张表，17 列按九步法顺序从左往右读——要件名、法院审理标准、要件属性、
  争议状态、待证事实、四段攻防、法律上能否成立、初步研判、关键证据、证明前景、
  把握程度与依据、待补材料、对应图中位置。每个板块末尾有贯穿整行的小结。

## 不做的

不做分图（四段攻防本就是表的形状，分图只会把同样信息再框一遍），不做 Word，不做 PPT。

---

# 对内：执行管线

## 立场

模型读懂意思并作带标的判断，代码算几何与验一致性。任何一条判据不成立即拒绝出图。

## 先读什么

1. `references/intake.md` —— I 摄入 / J 诉请固定 / K 抗辩归类，前端的三组判据
2. `references/extraction.md` —— A 判断边界 / B 四段收口 / C 四分法 / D 决定性要件 / E 定性优先 / F 交付
3. `references/casefile-guide.md` —— 怎么把卷宗读成 casefile.json：次序、逐项填法、可粘贴骨架
4. `references/layout-constraints.md` —— M 版面 / R 走线 / T 索引表 / L 逻辑，共 32 条编号约束
5. `docs/adr/0004-scattered-decisives.md` —— 争点零散时为什么不排序、不封顶
6. `docs/adr/0005-rowgroup-is-the-element.md` —— 行组的单位为什么是争议要件而不是诉请
7. `docs/adr/0006-partial-materials.md`
8. `docs/adr/0007-scope-and-stance.md` —— 适用边界、攻击性防御与立场参数从何而来 —— 材料不全为什么要能跑完，以及跑完的代价怎么留痕

## 工作流

    1 摄入    scripts/ingest.py         按格式分派（PDF／图片／docx／纯文本，其余拒绝）
                                        PDF 探测（逐页可读字符、剥页码标记、空白页不计）
                                        → 文字型直读 / 扫描件 150DPI 栅格化待读图
                                        图片本身即一页待读图；docx 零依赖抽正文
    2 推演    （模型）按九步法填 matrix-input.json，三标随行
    3 前端校验 scripts/check_claims.py   诉请固定（J）与抗辩归类（K），两组可机验
    4 出表    scripts/build_matrix.py   → 庭审对抗分析表.xlsx
    5 出图    scripts/render_main.py    → SVG（几何由不等式反解，走线只走 R1–R4）
    6 光栅    scripts/rasterize.py      → PNG（换单一字族，避开静默的字体回退）
    7 自检    tests/run_checks.py       图几何 15 条 + 图表一致 7 条 + J/K/B/S 组 10 项
                                        + 编排结构 6 项 + 摄入 9 项 + 配色 6 项 + 字段出口 1 项
    母表不用底色，层级靠字号、加粗与线
                                        + 摄入 9 项 + 改坏 8 项

## 集中红线

- 版面跟着材料走：左2右2 / 左2右1 / 左1右1 / 左1右0 四种；左1右2 不成立，两层各拦一道
- 空段不在图上立框，归因落在分析表与图底的材料范围里
- 深红只有 #991B1B 一个值，图与表共用，且只标决定性要件，不做列头与小标题
- 至多标两处；三处及以上转入分散态，图上不用深红、表里不作单点标注，改写明共几处
- 诉请金额附结构化构成明细，合计与主张额必须算得平；差额须作显式调整项
- 一个有争议待证的要件占一个行组；四段的来源标注取自数据，不套用默认文书名
- 走线不得穿过非端点卡片与边标签（出图前逐段自证，全部走线都送检）
- 卡高与卡内每一行基线同源；标题贴卡顶、正文在剩余空间居中；卡底留白不小于卡顶留白
- 圆角＝2.4×线宽；箭头固定 10px，refX 按 cover 算；红灰箭头同大小
- 首尾腿与母线必须是同一条连续折线（两条独立路径端点对接必缺角）
- 图表编号必须一一对应
- 诉请类型与抗辩归类取自封闭表，表外一律拒绝；举证责任由归类机械决定，不由模型另判
- **吸收外部方法的前提是不把本 skill 改坏**。本 skill 的主体目的只有一个：出一张庭审攻防的
  可视化图表。外部方法（要件审判九步法、被告代理打法手册）的纪律，只在不损害这个目的时吸收；
  与主体目的冲突的，改判据、不改目的。踩过的坑：材料成熟度那条纪律曾用「改写证明前景」来表达
  材料薄，而证明前景正是决定性判定的输入——结果表里标着决定性、图上却不再强调，图表就此不一致。
  降级只降精确度，不降结构：判定照算，降的是证据置信并列明待补。
- 确认之诉／形成之诉不按要件拆，标出边界转法律关系分析法
- 反诉／抵销／违约金酌减／另案主张是反攻不是抗辩，单列，不入四分法
- 每条要件带三标：法律置信、证据置信、立场方向；法律层面与证据层面分开评级
- 全案标明立场（原告向／被告向）；图上只呈现客观研判，立场打法不进此图
- 程序站先过管辖／主体／重复起诉三项，再谈要件
- 材料成熟度只改变证明前景能推到多深，不改变结构；L0／L1 下不对争议要件下硬判断
- 完备性对账份数与页数两轨都要平；对账分三态（已读／明示不读／该读没读），只有第三态拒绝出图
- 材料不全允许出图，但每处空段须在 scope 里表态，且图底如实写明材料范围
- 「无书面记载」与「未获取」严格分开，不得混写

## 环境与两个静默的坑

- **字体回退是静默的**：cairosvg 解析不了带引号的多字族栈，会退到无中文的字体，
  文字还在、字形全是豆腐块，没有任何报错。故 SVG 保留完整栈，PNG 由 `rasterize.py`
  换成本机确实装着的单一字族后再出。
- **Excel 的空白文本节点**：按字符集拆段时若把换行单独切成一段，会生出 `<t>\n</t>`
  纯空白节点，Excel 判为字符串属性有问题并弹修复。空白须跟随前一段，且含空白的
  文本节点必须带 `xml:space="preserve"`。颜色必须传八位 rgb，六位会被补成 alpha=00。
