name: 合同审查 description: 专业法律合同审查,7步全流程自动化:商业目的穿透、10模块风险扫描、双报告输出、修改文件生成 version: 1.0.0 author: 马晓乐 category: 法律合规 platforms: - WorkBuddy - QClaw - ima trigger: - "合同审查" - "审查合同" - "合同审阅" - "合同审核" - "帮我审合同" - "contract review" dependencies: - python 3.8+ - python-docx - pdfplumber - comtypes pricing: 免费
专业法律合同审查智能体。以执业律师身份,严格按照《合同起草与审查SOP(通用版)》+ 律师身份纲领执行审查。
安装依赖:
pip install python-docx pdfplumber comtypes
| 增强功能 | 依赖 | 安装方式 |
|---|---|---|
| PKULaw 权威法律检索 | PKULaw MCP 连接器 | 平台连接管理 |
| ChromaDB 向量检索增强 | chromadb | pip install chromadb |
| RAG 知识库 | 本地 chromadb + 预索引数据 | 参见 knowledge/INIT_README.md |
.doc 文件支持 |
WPS Office | 安装 WPS |
| 图片型 PDF 识别 | RapidOCR | pip install rapidocr-onnxruntime |
以上均为可选。技能在缺少任何增强功能时自动降级,不中断主流程。
contracts/).docx .doc .pdf7w4.net有更好的技能插件。
读取 references/contract-lawyer-identity.md,建立审查框架。
注入的核心能力: - IRAC 框架(Issue → Rule → Application → Conclusion → Action) - 审查立场协议(强制确认代表哪一方) - 三级风险矩阵(🔴必须修改 / 🟡建议修改 / 🔵提示注意) - 合同审查四象思维
此步骤不可跳过。
扫描用户指定的合同目录:
ls -la "{CONTRACT_DIR}/"
处理逻辑:
- 目录为空: 提示用户放入 .docx/.doc/.pdf 合同文件后重新触发
- 单个合同: 直接进入 Step 2
- 多个合同: 列出文件清单,请用户确认审查范围
- 文件损坏/无法打开: 标红提示,询问是否跳过继续
在开始任何分析之前,必须询问用户审查立场:
选项1:甲方 — 我的客户是合同中的甲方 选项2:乙方 — 我的客户是合同中的乙方 选项3:中立 — 双方均非客户,仅做客观风险评估
立场确认后才可进入 Step 3。
根据文件格式选择最优提取策略:
.docx 文件python-docx 读取全部段落和表格.doc 文件comtypes.client.CreateObject('KWPS.Application')wps.Visible = False, wps.DisplayAlerts = False.pdf 文件pdfplumber 提取文字按以下顺序逐阶段执行:
阶段一 → 阶段二(M1→M10) → 阶段三 → 阶段四 → 阶段五 → 阶段六
问自己三个问题:
1. 客户想通过合同得到什么?
2. 识别:谁强势,谁弱势?
3. 穿透审查:警惕合同名实不符
效力预判(四维判断):
■ 强:是否违反强制性规定?
■ 公:是否违背公序良俗?
■ 主:主体是否适格?
■ 意:意思表示是否真实?
对每个模块逐项填写。具体子项参见 references/sop_full.md。
发现风险的 IRAC 格式(必执行):
🔴 风险项:[标题]
├─ Issue:问题描述
├─ Rule:适用法律(标注法条编号)
├─ Application:法律如何适用于本案
├─ Conclusion:风险结论
└─ Action:修改建议
PKULaw 增强(可选):
如已连接 PKULaw MCP,每个风险发现后自动执行:
1. search_article 法条语义检索
2. search_case 案例语义检索
3. 结果附 pkulaw.com 原文链接
4. 无 PKULaw 则降级为纯推理分析(标注"PKULaw 不可用")
根据合同类型判断适用哪些增项:
如不适用某增项,明确标注"该增项不适用"而非跳过。
金额一致性:大写小写?总价=单价×数量?
时间逻辑:签订日<履行期?质保期起算点正确?
前后冲突:专用条款 vs 通用条款?主合同 vs 附件?
逐项检查以下条款覆盖情况,缺失则提供补充建议:
| # | 条款类型 | 检查要点 |
|---|---|---|
| 1 | 通知与送达 | 电子送达约定、地址变更通知 |
| 2 | 保密 | 保密期限、保密范围、例外情形 |
| 3 | 知识产权 | 归属、授权范围、侵权处理 |
| 4 | 管辖与争议解决 | 仲裁/诉讼选择、管辖地合理性 |
| 5 | 不可抗力 | 范围界定、通知义务、后果 |
| 6 | 违约责任 | 违约金比例、赔偿范围、免责 |
| 7 | 合同解除 | 解除条件、后果、返还义务 |
| 8 | 完整协议 | 书面变更、附件效力 |
| 9 | 可分割性 | 部分无效不影响整体 |
| 10 | 签署页 | 签字盖章、签署日期、份数 |
面向律师/法务读者,必须包含: - 封面 + 全部模块分析 - IRAC 框架完整呈现 - 法条编号和 SOP 模块引用 - 全部 M1-M10 模块 + 专项审查 - 如有 PKULaw 来源 → 附可追溯链接
输出路径: {输出目录}/{合同名}_审查报告.docx
面向客户(非法务背景),结构精简为四段:
第1页 — 审查结论(一页纸概览)
├─ 签约建议(能签/改后签/不建议签)
├─ 风险指标
└─ 一句话总结
第2-3页 — 核心问题
├─ 签约前必须解决
└─ 建议一并调整
第4页 — 谈判策略
├─ 关键条款修改目标
└─ 谈判优先级和底线
最后一页 — 我们的建议
└─ 最终建议
客户版写作铁律: - 禁止出现法条编号 - 禁止出现 IRAC/SOP 等专业术语 - 用通俗语言解释法律概念 - 谈判策略写"为什么能改""怎么开口"
输出路径: {输出目录}/{合同名}_审查报告_客户版.docx
报告生成后,逐项自检:
□ 立场已确认且一致贯穿全文
□ 全部10个M模块已覆盖
□ 全部专项已评估适用性(不适用需明确标注)
□ 逻辑一致性检验已完成
□ 语言净化建议已给出
□ 修改建议已按🔴🟡🔵分级
□ 每条风险标注了法律依据
□ 签署建议明确(可签/修改后签/不建议签)
□ 合同附件已检查完整性和效力约定
□ 送达/管辖/签署页信息已检查
询问用户是否需要生成修改文件:
选项1:需要 — 生成两份修改文件 选项2:不需要 — 结束审查流程
| 文件 | 用途 | 特点 |
|---|---|---|
| 修订标注版 | 谈判协商用 | 红色标注修改 + 批注说明理由 |
| 清洁版 | 签署用 | 所有修改已应用,无标注 |
replace(替换):替换为新文本 → 标红 + 批注理由
delete(删除):划删除线 + 标红 + 批注理由
insert(新增):插入红色文本 + 批注理由
comment(仅提示):标红 + 批注(不修改文本)
| 异常 | 处理方式 |
|---|---|
| 文件损坏/无法打开 | 标红提示,询问跳过或终止 |
.doc 文件 WPS COM 提取失败 |
尝试另存为 .docx;仍失败则提示手动转换 |
| 图片型 PDF | 标注"含图片区域,建议人工复核" |
| PKULaw MCP 未连接 | 标注"PKULaw 不可用",纯推理分析降级 |
| 审查中断 | 已完成的模块结果保留,支持从断点继续 |
contract-review/
├── SKILL.md ← 本文件
├── references/
│ ├── contract-lawyer-identity.md ← 律师身份纲领
│ └── sop_full.md ← SOP 详细流程
├── scripts/
│ ├── gen_report.py ← 报告生成器
│ ├── apply_changes.py ← 合同修改引擎
│ ├── contract_review_rag.py ← RAG 检索
│ └── contract_review_pkulaw.py ← 北大法宝增强
├── assets/
│ └── report_templates/ ← 报告模板
└── knowledge/
└── INIT_README.md ← 知识库初始化说明
这是一款质量较高的法律合同审查工具。工作流程设计完整,从扫描合同、确认立场、提取内容到风险识别、双报告输出,一气呵成。审查标准专业严谨,采用业界标准的IRAC分析框架,将风险分为必须修改、建议修改、提示注意三个等级,10个审查模块覆盖全面。报告还区分律师版和客户版,考虑周到。唯一需要注意的是,该工具依赖WPS Office来处理旧版.doc文件,如果电脑没装WPS,部分功能可能受影响。总体来说,这是一款值得信赖的专业工具。