Back to skills
SKILL.md
Contract Review Professional
ASecurity专业法律合同审查,7步全流程自动化:商业目的穿透、10模块风险扫描、双报告输出、修改文件生成
- 9 stars
- 0 votes
- 0 copies
- 0 views
- Added September 25, 2026
Works with
Security analysis
96/100- Installs packages at runtime which could introduce malicious dependencies
Pro scans all 11 files and shows the line behind each finding
npx -y skills add CSlawyer1985/legal-skillhub --skill contract-review-professional --agent claude-codeAre you the author of Contract Review Professional?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/cslawyer1985-contract-review-professional)---
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: 免费
---
# 合同审查自动化技能 v1.0
专业法律合同审查智能体。以执业律师身份,严格按照《合同起草与审查SOP(通用版)》+ 律师身份纲领执行审查。
## 前置条件
### 1.1 环境依赖
安装依赖:
```bash
pip install python-docx pdfplumber comtypes
```
### 1.2 可选增强
| 增强功能 | 依赖 | 安装方式 |
|---------|------|---------|
| PKULaw 权威法律检索 | PKULaw MCP 连接器 | 平台连接管理 |
| ChromaDB 向量检索增强 | chromadb | `pip install chromadb` |
| RAG 知识库 | 本地 chromadb + 预索引数据 | 参见 `knowledge/INIT_README.md` |
| `.doc` 文件支持 | WPS Office | 安装 WPS |
| 图片型 PDF 识别 | RapidOCR | `pip install rapidocr-onnxruntime` |
> 以上均为可选。技能在缺少任何增强功能时自动降级,不中断主流程。
### 1.3 合同文件
- 合同文件存放于用户指定的目录(默认:当前工作目录下的 `contracts/`)
- 支持格式:`.docx` `.doc` `.pdf`
---
## 完整工作流程(7步)
### Step 0 — 加载律师身份纲领
读取 `references/contract-lawyer-identity.md`,建立审查框架。
注入的核心能力:
- IRAC 框架(Issue → Rule → Application → Conclusion → Action)
- 审查立场协议(强制确认代表哪一方)
- 三级风险矩阵(🔴必须修改 / 🟡建议修改 / 🔵提示注意)
- 合同审查四象思维
> 此步骤不可跳过。
---
### Step 1 — 扫描合同文件
扫描用户指定的合同目录:
```bash
ls -la "{CONTRACT_DIR}/"
```
**处理逻辑:**
- **目录为空:** 提示用户放入 `.docx/.doc/.pdf` 合同文件后重新触发
- **单个合同:** 直接进入 Step 2
- **多个合同:** 列出文件清单,请用户确认审查范围
- **文件损坏/无法打开:** 标红提示,询问是否跳过继续
---
### Step 2 — 确认审查立场(强制执行)
在开始任何分析之前,必须询问用户审查立场:
> 选项1:甲方 — 我的客户是合同中的甲方
> 选项2:乙方 — 我的客户是合同中的乙方
> 选项3:中立 — 双方均非客户,仅做客观风险评估
**立场确认后才可进入 Step 3。**
---
### Step 3 — 读取合同内容
根据文件格式选择最优提取策略:
#### 3.1 `.docx` 文件
- 使用 `python-docx` 读取全部段落和表格
#### 3.2 `.doc` 文件
- 调用 WPS COM(需安装 WPS Office):`comtypes.client.CreateObject('KWPS.Application')`
- 遍历 Paragraphs + Tables → 输出为 UTF-8 txt 文件 → 读取 txt
- 关键参数:`wps.Visible = False`, `wps.DisplayAlerts = False`
#### 3.3 `.pdf` 文件
- 优先 `pdfplumber` 提取文字
- 如图片型 PDF → 使用 OCR 引擎识别(需安装 RapidOCR)
#### 3.4 已有修改批注检测
- 检查文件名是否包含"修改版"/"律师修改"等关键词
- 如检测到已有修改 → 标注为"二次审查",评估已有修改效果
---
### Step 4 — 执行全面审查
按以下顺序逐阶段执行:
```
阶段一 → 阶段二(M1→M10) → 阶段三 → 阶段四 → 阶段五 → 阶段六
```
#### 阶段一:商业目的穿透
```
问自己三个问题:
1. 客户想通过合同得到什么?
2. 识别:谁强势,谁弱势?
3. 穿透审查:警惕合同名实不符
效力预判(四维判断):
■ 强:是否违反强制性规定?
■ 公:是否违背公序良俗?
■ 主:主体是否适格?
■ 意:意思表示是否真实?
```
#### 阶段二:模块填空与核对(M1-M10)
对每个模块逐项填写。具体子项参见 `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 | 签署页 | 签字盖章、签署日期、份数 |
---
### Step 5 — 生成双份审查报告
#### 5.1 内部版报告
面向律师/法务读者,必须包含:
- 封面 + 全部模块分析
- IRAC 框架完整呈现
- 法条编号和 SOP 模块引用
- 全部 M1-M10 模块 + 专项审查
- 如有 PKULaw 来源 → 附可追溯链接
**输出路径:** `{输出目录}/{合同名}_审查报告.docx`
#### 5.2 客户版报告
面向客户(非法务背景),结构精简为四段:
```
第1页 — 审查结论(一页纸概览)
├─ 签约建议(能签/改后签/不建议签)
├─ 风险指标
└─ 一句话总结
第2-3页 — 核心问题
├─ 签约前必须解决
└─ 建议一并调整
第4页 — 谈判策略
├─ 关键条款修改目标
└─ 谈判优先级和底线
最后一页 — 我们的建议
└─ 最终建议
```
**客户版写作铁律:**
- 禁止出现法条编号
- 禁止出现 IRAC/SOP 等专业术语
- 用通俗语言解释法律概念
- 谈判策略写"为什么能改""怎么开口"
**输出路径:** `{输出目录}/{合同名}_审查报告_客户版.docx`
---
### Step 6 — 质量自检
报告生成后,逐项自检:
```
□ 立场已确认且一致贯穿全文
□ 全部10个M模块已覆盖
□ 全部专项已评估适用性(不适用需明确标注)
□ 逻辑一致性检验已完成
□ 语言净化建议已给出
□ 修改建议已按🔴🟡🔵分级
□ 每条风险标注了法律依据
□ 签署建议明确(可签/修改后签/不建议签)
□ 合同附件已检查完整性和效力约定
□ 送达/管辖/签署页信息已检查
```
---
### Step 7 — 生成合同修改文件(可选)
询问用户是否需要生成修改文件:
> 选项1:需要 — 生成两份修改文件
> 选项2:不需要 — 结束审查流程
#### 7.1 生成两份文件
| 文件 | 用途 | 特点 |
|------|------|------|
| 修订标注版 | 谈判协商用 | 红色标注修改 + 批注说明理由 |
| 清洁版 | 签署用 | 所有修改已应用,无标注 |
#### 7.2 修改标注规则
```
replace(替换):替换为新文本 → 标红 + 批注理由
delete(删除):划删除线 + 标红 + 批注理由
insert(新增):插入红色文本 + 批注理由
comment(仅提示):标红 + 批注(不修改文本)
```
---
## 执行要点
### 强制性规则
1. **立场先行:** 绝不跳过 Step 2 立场确认
2. **IRAC 驱动:** 每条风险分析必须包含 Issue → Rule → Application → Conclusion
3. **全模块覆盖:** M1-M10 + 专项,不得遗漏(不适用需标注)
4. **风险分级:** 🔴必须修改 / 🟡建议修改 / 🔵提示注意
5. **原文引用:** 引用合同条款须标明位置
6. **签约建议:** 明确给出"可签 / 修改后签 / 不建议签" + 理由
### 批量审查规则
- 逐一执行,每个合同独立完成全部步骤后再处理下一个
- 先列出文件清单请用户确认审查范围
- 多个合同的共通问题可在总览中汇总
### 异常处理
| 异常 | 处理方式 |
|------|----------|
| 文件损坏/无法打开 | 标红提示,询问跳过或终止 |
| `.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 ← 知识库初始化说明
```
Files in this skill
- SKILL.md
- _meta.json
- knowledge/INIT_README.md
- knowledge/chromadb_starter/init_chromadb.py
- references/contract-lawyer-identity.md
- references/sop_full.md
- requirements.txt
- scripts/apply_changes.py
- scripts/contract_review_pkulaw.py
- scripts/contract_review_rag.py
- scripts/gen_report.py
Attribution
Comments
Loading comments…