mcpField
T
tabular-document-review

tabular-document-review

github.com/borghei文档处理1.0k62 次安装5 天前更新
代码仓库

关于 tabular-document-review

面向法律团队的批量法律文档审阅技能,可将多个文档中的指定字段整理为带引用的对照矩阵。它支持并行 Agent 提取、置信度标记及 Markdown 或 JSON 输出;不负责解析文档内容或法律风险判断。

主要功能

  1. 01扫描目录并生成文档清单
  2. 02按自定义列提取信息
  3. 03汇总提取结果为对照矩阵
  4. 04记录引用与置信度
  5. 05导出 Markdown 或 JSON

适用场景

  1. 01批量比较合同关键条款
  2. 02审阅 NDA、雇佣协议或租约
  3. 03集中核查缺失值与冲突结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/borghei/claude-skills --skill tabular-document-review

安装后在 Claude Code 中输入/tabular-document-review确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
common_extraction_columns.md
extraction_methodology.md
scripts/
document_discovery.py
extraction_aggregator.py

详细介绍

⚠️ 实验性 — 此技能仅用于教育和提供信息,不构成法律建议。用户需对使用行为承担全部责任。采取任何行动前,请咨询合格的法律专业人士。

表格化文档审查技能

概述

用于从多份法律文档中提取结构化数据,并生成带有引文的对比矩阵的生产级工具包。支持用户自定义提取列、最多由 10 个 Agent 并行处理、置信度评分,以及以 Markdown 表格或结构化 JSON 格式输出。专为需要批量审查合同、比较保密协议、分析雇佣协议和审查租约的法律团队打造。

目录

先澄清

审查前,请确认以下信息。若有任何一项未知或含糊不清,请提问——不要自行假设:

  • 提取列 — 明确每个单元格具体存放什么;含糊的“日期”可能对应数十个日期,而有说明的“生效日期”则不会
  • 文档集的位置和格式 — 这决定了如何发现文档,以及分配多少个并行 Agent(ceil(N/10),最多 10 个)
  • 文档类型 — 合同、保密协议、雇佣协议、租约——据此选择预定义的列集和各列的提取指南

停止规则:只询问对输出影响最大的 2–3 项。如果用户说“直接起草”,则继续处理,并在矩阵顶部列出你的假设。

工具

1. 文档发现(scripts/document_discovery.py)

扫描目录中的法律文档,并生成清单。

python scripts/document_discovery.py /path/to/contracts

python scripts/document_discovery.py /path/to/ndas --types pdf,docx --json

python scripts/document_discovery.py /path/to/leases --types pdf,docx,txt,md --min-size 1024
2. 提取结果汇总工具(scripts/extraction_aggregator.py)

将多个提取结果 JSON 汇总为统一的对比矩阵。

python scripts/extraction_aggregator.py \
  --results extraction_1.json extraction_2.json extraction_3.json

python scripts/extraction_aggregator.py \
  --results-dir ./extraction_results/ --json

python scripts/extraction_aggregator.py \
  --results-dir ./extraction_results/ \
  --format markdown \
  --output review_matrix.md

python scripts/extraction_aggregator.py \
  --results extraction_1.json extraction_2.json \
  --columns "Parties,Effective Date,Term,Governing Law"

参考指南

参考资料用途
references/extraction_methodology.md文档提取最佳实践、JSON 架构、Agent 提示词
references/common_extraction_columns.md合同、保密协议、雇佣协议、租约的预定义列集

工作流

5 步文档审查流程
步骤操作工具输出
1. 收集需求确定文档文件夹、输出文件名和要提取的列手动列表、文件路径
2. 发现文档扫描目录,查找目标文档document_discovery.py文档清单 JSON
3. 处理文档按列提取值及引文(由多个 Agent 并行处理)AI Agent(外部)每份文档各自的提取 JSON
4. 汇总结果将提取 JSON 汇总为统一矩阵extraction_aggregator.py汇总矩阵
5. 生成输出导出为 Markdown 表格或结构化 JSONextraction_aggregator.py最终交付物
并行处理策略
Agent 数量每个 Agent 处理的文档数适用情况
1全部1–5 份文档
2–3ceil(N/agents)6–15 份文档
4–6ceil(N/agents)16–40 份文档
7–10ceil(N/agents)41–100 份文档
10(最多)ceil(N/10)100 份以上文档
Agent 提示词模板

每个 Agent 收到的提示词结构如下:

You are reviewing {count} legal documents. For each document, extract the
following columns:

{column_definitions}

For each value extracted:
1. Provide the exact value found
2. Include the page number (PDF) or section/paragraph (DOCX/MD)
3. Rate your confidence: HIGH (exact match), MEDIUM (inferred), LOW (uncertain)
4. If not found, record "NOT FOUND" with confidence LOW

Output as JSON per the extraction schema.
置信度评分
等级颜色代码定义
高绿色找到确切值,且有明确引文
中黄色根据上下文推断出值;存在多种可能的解释
低红色 / 未找到值不确定或未在文档中找到
输出格式

工作表 1:文档审查

文档当事方生效日期期限管辖法律...
contract_a.pdfAcme / Beta [p.1]2026-01-15 [p.2]3 年 [p.3]Delaware [p.12]...
contract_b.pdfGamma / Delta [p.1]NOT FOUND2 年 [p.4]New York [p.10]...

工作表 2:摘要

指标值
已处理文档数25
已提取列数8
平均置信度87%
未找到比例12%

提取场景

合同审查
列提取内容
当事方所有签约方的完整法定名称
生效日期合同生效日期或签署日期
期限协议的有效期限
续约自动续约条款和通知期限
管辖法律管辖协议的司法管辖区
责任上限最高责任金额或计算公式
赔偿赔偿义务及范围
IP 所有权知识产权所有权条款
终止权终止触发条件和通知要求
数据保护数据保护或隐私义务
NDA 审查
列提取内容
当事方披露方和接收方
类型双向或单向
定义范围“机密信息”的定义方式
例外保密义务的常见例外
期限保密义务的有效期限
存续期终止后的存续期限
返还/销毁终止时的义务
救济措施违约时可采取的救济措施

故障排除

问题原因解决方案
Discovery 未找到任何文档路径或文件类型错误确认路径存在;检查 --types 是否与实际文件扩展名匹配
提取 JSON 的架构错误Agent 提示词不完整使用 extraction_methodology.md 中的提取架构
Aggregator 显示冲突同一单元格存在多个值检查源文档;Aggregator 会标记冲突,供人工审查
“NOT FOUND” 比例偏高列定义对文档类型过于具体使用 common_extraction_columns.md 中的列定义;放宽定义
置信度全部为 LOWAgent 无法定位值检查列定义是否足够具体;确认文档可读
Aggregator 在处理大量数据集时崩溃一次加载的结果文件过多分批处理,每批 50 个结果;使用 --columns 限制输出宽度
Markdown 表格错位值过长或包含特殊字符使用 --format json 进行机器处理;截断过长的值
缺少引用Agent 未包含页码/章节引用在 Agent 提示词中强调引用要求;检查提取架构

成功标准

  • 提取覆盖率:所有文档中,已填充的定义列占比达到 90% 以上
  • 置信度分布:置信度评为 HIGH 的提取结果达到 70% 以上
  • 引用准确性:每个提取值都包含可验证的页码/章节引用
  • 处理速度:使用并行 Agent 在 30 分钟内处理 50 份以上文档
  • 矩阵完整性:最终矩阵包含所有文档和所有列,且没有孤立行

范围与限制

此技能涵盖:

  • 对 PDF、DOCX、TXT 和 MD 格式的文档进行盘点和发现
  • 将并行 Agent 处理的提取结果汇总到统一矩阵中
  • 为合同、NDA、雇佣协议和租约预定义列集
  • 对提取的值进行置信度评分和冲突检测
  • Markdown 和 JSON 输出格式

此技能不涵盖:

  • 实际的文档解析或文本提取(需要外部库或 AI Agent)
  • 对扫描文档进行 OCR 处理
  • Excel/XLSX 输出生成(使用 JSON 输出并在外部转换)
  • 对提取的值进行自动法律分析或风险评估
  • 比较不同版本的文档或进行修订标记

反模式

反模式失败原因更好的做法
列定义含糊“日期”可能匹配合同中的几十个日期使用具体定义:例如“生效日期”,并说明查找位置
跳过文档发现文档数量未知会导致 Agent 分配错误始终先进行发现;使用清单规划流水线
忽略 LOW 置信度结果将缺失或不确定的数据当作事实手动检查所有 LOW 置信度单元格;在最终报告中标记
让 1 个 Agent 处理 100 多份文档速度慢、上下文窗口溢出、质量下降使用并行处理:每个 Agent 处理 ceil(N/10) 份文档,最多 10 个 Agent
不要求提供引文无法对照来源验证提取的值要求每项提取结果都附带页码/章节引文;拒绝未附引文的值

工具参考

scripts/document_discovery.py

扫描目录中的法律文档并生成清单。

usage: document_discovery.py [-h] [--json]
                              [--types TYPES]
                              [--min-size MIN_SIZE]
                              [--max-size MAX_SIZE]
                              directory

positional arguments:
  directory             Path to directory containing documents

options:
  -h, --help            Show help message and exit
  --json                Output in JSON format
  --types TYPES         Comma-separated file extensions to include
                        (default: pdf,docx,doc,txt,md,rtf)
  --min-size MIN_SIZE   Minimum file size in bytes (default: 0)
  --max-size MAX_SIZE   Maximum file size in bytes (default: no limit)
scripts/extraction_aggregator.py

将提取结果汇总到统一对比矩阵中。

usage: extraction_aggregator.py [-h] [--json]
                                 [--results RESULTS [RESULTS ...]]
                                 [--results-dir RESULTS_DIR]
                                 [--format {markdown,json}]
                                 [--columns COLUMNS]
                                 [--output OUTPUT]

options:
  -h, --help            Show help message and exit
  --json                Output in JSON format (alias for --format json)
  --results             One or more extraction result JSON files
  --results-dir         Directory containing extraction result JSON files
  --format              Output format: markdown table or JSON (default: markdown)
  --columns             Comma-separated column names to include (default: all)
  --output              Write output to file instead of stdout

评论

支持 Markdown