合同检查智能小助手 (Contract Review Assistant)
功能说明
对各类合同执行结构化、可复用的审查,输出一份 Markdown 风险审查报告。覆盖五大审查维度:
- 完整性检查 —— 是否缺失通用必备要素(主体、标的、数量/质量、价款、履行、违约责任、争议解决等)。
- 风险条款识别 —— 识别单方加重责任、完全免责、管辖不明、任意解除、权属不清、自动续约等高风险条款。
- 合法合规性审查 —— 对照《民法典》合同编核查效力红线(格式条款提示义务、违约金 30% 酌减参考线、定金 ≤20%、租赁 ≤20 年等)。
- 歧义与笔误检测 —— 未填占位符、条款跳号、金额/日期前后矛盾、错别字。
- 签名核对 —— 对签名图片做笔迹初步筛查(基础比对,非司法鉴定)。
本 Skill 以中国法(《民法典》合同编)为基准,面向中文合同场景。脚本层负责确定性事实抽取,人工审查层负责法律判断,二者互补。
适用场景
在以下场景触发本 Skill:
- 用户上传/粘贴一份合同,要求"审查""检查""看下有没有风险""合同体检"。
- 用户关心某类条款是否公平、是否合规(违约金、管辖、免责、保密、IP 等)。
- 用户要求对比合同上的签名与样本签名(笔迹初步筛查)。
- 用户需要一份可交付的合同风险报告或谈判要点清单。
不触发:纯合同起草(仅生成新合同文本,无审查意图)、非合同的法律咨询。
使用方法
Step 1 — 识别合同类型与审查立场
询问或判断:合同属于哪一类(买卖/服务/合作/租赁/保密/劳动/借款/技术IP/其他),用户代表哪一方(甲方/乙方/中立)。类型决定适用的必备要素与风险重点,立场决定哪些条款对用户不利。
Step 2 — 运行结构性检查脚本
若用户提供合同文本文件,先运行确定性检查脚本抽取事实。脚本使用 Python 标准库,无需额外依赖,用 python3 执行本技能目录下的 scripts/contract_check.py 即可(典型安装路径:~/.workbuddy/skills/contract-review-assistant/scripts/contract_check.py;若安装在其他位置,请替换为对应路径):
python3 <本技能目录>/scripts/contract_check.py <合同文本路径> --json
脚本输出:缺失的必备/常见条款、占位符与空白字段、条款编号断点、抽取的金额(含中阿金额一致性比对)与日期、签名行是否存在。脚本无法读取文件时(如图片/PDF 内嵌文字),先抽取文本再传入,或人工读取后跳过本步。
Step 3 — 完整性检查
对照 references/contract-basics.md 第二节的通用必备要素逐条核对。将脚本检出的 missing_core_sections / missing_common_sections 与人工判断合并,在报告中标注 ✅/❌ 并说明缺失影响。
Step 4 — 风险条款识别
加载 references/risk-catalog.md,逐条比对合同文本。对命中的风险条款记录:位置(第X条/章节)、风险类型、等级(高/中/低)、问题描述、修改建议。重点关注:单方加重违约责任、完全免责、管辖约定不明、任意解除、无限连带/赔偿、权属不清、自动续约、签字盖章主体不一致。
Step 5 — 合法合规性审查
对照 references/contract-basics.md 第一节的效力与法定上限规则,核查是否触碰红线:
- 格式条款提示义务与无效情形(第496–497条)
- 违约金 30% 酌减参考线、定金 ≤20%、租赁期限 ≤20年、试用期法定上限
- 无效/可撤销情形(虚假意思、恶意串通、显失公平等)
命中红线在报告中单列,等级至少「高」。
Step 6 — 歧义与笔误检测
- 利用脚本抽取的
amounts/amount_inconsistencies/dates/placeholders/clause_numbering做事实核对:- 金额前后矛盾(脚本已自动比对):
amount_inconsistencies会抽取被标注为"总费用/总额/总价"等的总金额(同时识别中文大写与阿拉伯两种写法,兼容简体与财务大写壹贰叁),若数值不一致直接标记,无需人工逐条比对。 - 未填占位符、条款跳号、日期格式由脚本列出。
- 金额前后矛盾(脚本已自动比对):
- 人工补充:主体名称不统一、条款交叉引用错误、错别字。
Step 7 — 签名核对
- 若用户提供签名图片(如签署件 vs 身份证/历史样本),按
references/report-format.md的"签名笔迹对比说明"调用多模态能力分析笔画走向、结构比例、连笔习惯、压力特征,输出相似度(高/中/低)与置信度,并明确声明:此为基础筛查,非司法鉴定,关键场景须由专业机构笔迹鉴定确认。 - 若仅文本合同,提示核验签字盖章主体与授权书是否一致(见
risk-catalog.md第13条)。
Step 8 — 生成风险审查报告
加载 assets/report_template.md 作为骨架,按 references/report-format.md 的结构与评分口径填充:
- 计算综合风险评分(高25/中10/低3,完整性缺失每项5,合规红线每项+15,封顶100)并映射等级(低0–24 / 中25–49 / 高50–74 / 极高75–100)。
- 风险清单按等级降序排列。
- 给出总体建议:优先处理的高危项、谈判要点、是否建议签署。
将报告以 Markdown 返回用户。
输入要求
- 合同文本:支持
.txt/.md直接读取;.docx/.pdf请先提取纯文本后传入(脚本只识别纯文本)。 - 可选签名图片:签署件与样本签名,用于笔迹初步比对。
- 审查立场(可选):说明您代表甲方/乙方/中立,便于判断哪些条款对您不利。
输出内容
- 结构化 Markdown 风险审查报告,含:综合风险评分与等级、风险清单(按等级降序,含位置/类型/等级/修改建议)、修订清单(P0–P2)、是否建议签署的总体结论。
- 脚本自动基线:缺失条款、未填占位符、条款跳号、金额前后矛盾、签名行检测。
示例
用户输入:"审查合同/合同体检" 并附一份《技术服务合作协议》。
处理过程:
- 脚本自动抓出:缺失第6条(编号断点)、3 处未填占位符(
合同编号:【】、乙方待填、盖章空白)、缺失"不可抗力"条款、签名行已存在。 - 脚本自动比对金额矛盾:第三条「壹拾万元整(¥100,000)」vs 第九条「贰拾万元整(¥200,000)」总额不一致。
- 人工审查层补出:第七条完全免责 + 50% 违约金(超 30% 酌减线)、第四条背靠背付款、第十一条管辖不明、第八条 IP 权属不清、第十二条自动续约、保密无期限。
输出结论:综合评分 100/100(封顶)→ 等级极高,不建议直接签署,附 P0–P2 修订清单。
限制说明
- 本 Skill 提供审查辅助,不构成法律意见;涉及重大交易或争议,建议提示用户咨询执业律师。
- 脚本仅做确定性/结构性检查(缺失条款、占位符、编号、金额/日期、签名行),法律判断由人工审查层完成。
- 签名笔迹比对为基础筛查,非司法鉴定;关键场景须由专业机构笔迹鉴定确认。
- 合规红线以《民法典》等通用规则为参考;金融、医疗、数据等特殊行业的专项监管请以最新法规/监管口径为准。
- 仅面向中文合同;外文合同需先翻译。
Resources
scripts/
contract_check.py— 结构性/确定性检查(缺失条款、占位符、编号断点、金额/总额一致性、日期抽取、签名行检测)。先运行它获取事实基线。
references/
contract-basics.md— 民法典合同编核心规则、通用必备要素、各类合同要点速查。risk-catalog.md— 14 类高风险条款目录(等级 + 修改建议),逐条比对用。report-format.md— 报告结构、风险等级口径、综合评分算法、签名笔迹比对说明。
assets/
report_template.md— 风险审查报告 Markdown 骨架,填充后即为最终交付物。icon.png/icon.svg— 技能图标。