| name | contract-review |
| description | 合同智囊:合同审核、合同审查、合同修改、合同修订、合同风险识别、 合同模板对比、合同条款补充、合同起草、合同起草修改、 合同条款检查、合同合规审查、合同合法性审核、 合同Track Changes修订、Word修订模式、合同定稿学习、 错别字检查、病句分析、修改模式学习、原文件修订、 新媒体推广合同、KOL合作合同、媒体投放合同、 买卖合同、租赁合同、借款合同、建设工程合同、技术合同、 委托合同、运输合同、保理合同、供用电水气热力合同、 赠与合同、保证合同、融资租赁合同、物业服务合同、 行纪合同、中介合同、保管合同、仓储合同、知识产权合同、 肖像许可使用合同、土地承包经营合同、合伙合同审核
|
| version | 3.4.1 |
| license | MIT-0 |
| author | 广东知恒(大连)律师事务所 |
| agent_created | true |
合同智囊 v3.4.1 · Contract Advisor
概述
本 Skill 提供合同全生命周期管理能力,包含四大核心流程 + 三项平台化增强能力:
- 审核流程(Review):全量审核(传 docx/pdf)+ 增量审核(截图/片段),含五步审查框架(1234法→3D框架→4维标准→9步法→60要点),双版本示范条款自动生成
- 起草流程(Draft):从零起草,支持「深度定制」(逐章确认)和「快速生成」(一键出稿)两种模式,覆盖 21 种合同类型
- 比对流程(Diff):对比 AB 两个版本,识别增删改 + 条款效力影响分析
- 修订流程(Revise):四段式修订版(原条款→简版→全版→理由),支持原生 OOXML Track Changes 写入原文件
- 平台化增强:①反馈闭环(定稿处置持久化、反哺 rule-pack)②批量/组合审查(同质合同汇总、主合同+补充协议一致性)③质控指标看板(审查次数/风险分布/误报率),详见「平台化增强能力」章节
版本更新日志
v3.4.1 (2026-07-29) — Word 字体规范强力修复(输出规范 bug)
- 🔧 字体规范强化(P0 bug 修复):v3.4.0 实测发现 docx 中文混排时出现"半行字粗细不一致"——根因是只设了
font.name(Latin 通道),未设 font.east_asian(East Asian 通道),Word 渲染时按系统默认 East Asian 字体回退。已在「输出规范」章节强制要求 Latin + East Asian 同时设置,提供完整 set_run_font() 辅助函数模板
- 🔧 辅助函数模板:将
set_run_font() / add_para() / add_heading_cn() / add_red() / add_grey() 集中到脚本顶部,所有 Run 必须经过 set_run_font() 统一处理
- 🔧 加粗控制:禁止段落中间局部加粗,仅允许标题/编号/危险标识处加粗
- 🔧 完整排版规范:表格新增 9 类用途/字体/字号/颜色对照表;段落间距、标题间距显式列出
- 🔧 自检用例:首次落地必跑一段中英文 + 标点混合文本,肉眼验证同行字符一致性
v3.4.0 (2026-07-29) — 示范条款质量革命:模板溯源 + 可落地性 + 缺失条款补全
- ✅ 示范条款完整性标准:新增 A7 章节「示范条款完整性标准」,明确定义「完整条款 vs 方向性概括」的边界——简洁版必须是完整可独立成条的条款文本,全面版必须是分款分项的标准合同条款格式。禁止以「建议补充XX」「约定XX」「应考虑XX」等方向性描述冒充示范条款(含缺失条款)
- ✅ IMA 模板溯源与条款借鉴机制:新增独立章节「🔄 IMA 模板溯源与条款借鉴」,要求每个示范条款末尾必须标注
📎 借鉴来源:明确写出借鉴了哪个 IMA 库/本地文件的哪条条款,模板中成熟的表述应直接保留为条款基座,禁止仅声明「来自某模板」而不嵌入实体文本
- ✅ 缺失条款示范条款强制完整输出:修改 A8 输出格式,将「建议补充的缺失条款清单」从「一句话方向」升级为「完整双版本示范条款(简洁版+全面版)」,格式与风险条款完全一致。缺失条款不得以摘要方向替代
- ✅ 贯穿规则新增第 7 条:「示范条款可直接使用」——每个简洁版和全面版示范条款必须做到无需补充即可复制粘贴到合同中使用。以「本合同第 X 条……」为开头,含完整法律句式、时间/金额等变量用
___占位
- ✅ 交付自检新增示范条款检查项:审核报告自检清单新增 P0 级检查项——示范条款完整性自检
v3.3.1 (2026-07-14) — P2 能力 Bug 修复与健壮性优化
- 🔧
feedback_loop.py 跨 run 匹配修复:原逻辑仅按单个 run 匹配示范条款 / 删除文本,Word 跨 run 拆分的修订痕迹会漏匹配、误判为「驳回」,污染误报率。改为同时匹配拼接全文,跨 run 拆分正确判定为「采纳」
- 🔧
feedback_loop.py 空修订守卫:定稿若已「接受所有修订」(无 Track Changes 痕迹),原逻辑会把所有条目误判为「驳回」并污染误报率。新增空修订检测,退出码 3 并提示改用保留痕迹的定稿或 --changes-json
- 🔧
feedback_loop.py 清理死代码 _ratio,report 改用 .get() 增强残缺统计行健壮性
- 🔧
batch_review.py / portfolio_consistency.py 的 --out 补 mkdir:指定深层输出路径(如 reports/batch.md)目录不存在时不再崩 FileNotFoundError
- 🔧
batch_review.py 去重:同一章节不再同时出现在「共性高风险」与「一致性提示」两张表
- 🔧
portfolio_consistency.py 非法 manifest 守卫:role 字段值非对象时跳过并 warn,不再抛 AttributeError
v3.3.0 (2026-07-14) — 平台化增强:反馈闭环 / 批量组合审查 / 质控看板
- ✅ 反馈闭环(持久化学习):扩展「定稿学习机制」,新增
scripts/feedback_loop.py。上传定稿后自动比对原台账与修订痕迹,逐条判定「采纳/部分/驳回」并落盘 references/feedback/feedback_stats.jsonl;同类合同下次审查读取统计,对高驳回率章节自动降权并提示「建议人工复核」
- ✅ 批量审查汇总:新增
scripts/batch_review.py,聚合目录下多份审核台账,输出跨合同风险画像、共性高风险章节与同章节定级一致性提示(常法 50 份同质合同场景)
- ✅ 组合一致性校验:新增
scripts/portfolio_consistency.py,对主合同+补充协议+附件的关键字段(主体/金额/违约/管辖/期限)做矛盾检测
- ✅ 质控指标看板:新增
scripts/metrics_report.py,每次审查后追加指标记录,聚合输出审查次数、风险分布、类型覆盖、平均耗时与误报率(误报率由反馈闭环提供)
v3.2.1 (2026-07-13) — 增强功能自检与一键部署
- ✅ 首次运行增强功能自检:Agent 在首次对话中主动检测外部法律技能(9 个)/ IMA 知识库(3 库)/ 北大法宝连接器部署状态,并在对话框询问是否一键部署,提升「满血版」使用率
- ✅ 外部技能一键安装:检测到缺失时通过
marketplace-skill-installer 按名称批量安装 9 个清华法律技能,用户拒绝则降级 --skip-external 纯本地模式
- ✅ IMA / 北大法宝 引导式配置:检测到未订阅 / 未连接时输出订阅指引与连接路径(需用户本人账号授权,Agent 不代授权),用户授权后输入「继续」即恢复主流程
- 🔧 自检每会话仅执行一次,不阻断核心审查流程
v3.2.0 (2026-07-13) — 工程化落痕 + 产品级 UX
- ✅ 修订落痕分流规则:定义「直接修订 / 仅批注 / 仅进意见书」三通道 +
edit_policy 三档(revise-first / balanced / comment-first)+ 最小必要修改原则,以账本 status=confirmed 为唯一落痕门禁
- ✅ hybrid 确定性渲染:新增
scripts/ledger_to_revision.py,账本 confirmed → render plan → 一次性确定性应用到原 docx(保留 AI 看真实 XML 的精度,获得可复现 / 可归档 / 修订收敛收益,不改为 contract-copilot 全量 plan-first)
- ✅ 交付物免责声明:所有交付物末尾强制附「不构成正式法律意见」声明,划清辅助工具与律师责任边界
- ✅ 下一步衔接引导:四模式结尾加可衔接动作(生成修订稿 / 检索知识库 / 比对 / 查法条 / 起草补充协议)
- ✅ 法条检索独立入口:「查法条」与审核流程解耦,优先北大法宝 → WebSearch → 本地 rule-packs
- ✅ 参考文献页生成规范(补齐 O1):定义数据来源(rule-pack 的
civil_code_chapter / legal_basis、外部检索结果、用户资料)+ 生成步骤 + 空源不编造;同步修正原文档「法律依据索引」虚构字段名为真实字段名
v3.1.0 (2026-06-29) — 外部技能集成
- 🔗 external-skill-integration:集成 9 个清华法律推理技能(legal-* 系列),四层增强
- 输入层:
legal-element-extraction + structured-element-extraction 增强 A1 合同解析
- 处理层:
legal-risk-assessment 增强 A4 风险审查 + dispute-issue-identification 新增争议预判 + conflict-resolution 消解三层比选冲突
- 论证层:
legal-interpretation-argument + argument-strength-evaluation 增强 A7 示范条款论证
- 报告层:
argument-chain-construction + legal-norm-validity-check 升级 A8 报告论证与法条核验
- ✅ 新增「外部技能集成地图」章节,说明各外部技能的接入位置和作用
v3.0.3 (2026-06-29) — 第三轮修复
- 🔧 中英文混用修正:比对自检中 "framework + risk-patterns" 改为中文
- 🔧 "两库互补"补全:新增"法务工作及合同审查"库的方法论补充角色说明
- 🔧 定稿学习触发条件:补充明确触发词(「上传定稿」/「学习定稿」)
- 🔧 降级策略补全:新增加密文件(密码保护)和 OCR 识别失败两种异常场景
v3.0.2 (2026-06-29) — 第二轮修复
- 🔧 "核心专用两库"歧义修正:明确指合同范本库+合同大全3000+两个模板库
- 🔧 Draft 协议锁补全:补上 P0-P4 文件分级和 legal_rules.json 加载步骤
- 🔧 自检清单补全:IMA 模板检索检查项新增法务工作及合同审查库
v3.0.1 (2026-06-29) — Bug 修复
- 🔧 四段式修订修复:将"标注+分析+简版+全版+理由"(实际五段)修正为真正的四段"标注→简版→全版→分析+理由",对齐手册智囊格式
- 🔧 降级矩阵计数修正:changelog 中"7 种"改为"9 种",与实际表格行数一致
- 🔧 A3 步骤措辞修正:"两个核心 IMA"改为"三个",法务工作及合同审查库列入模板检索范围
- 🔧 Diff 功能补全:补充"变更效力影响分析"步骤,对齐概述中的承诺
- 🔧 增量审查 B2 修正:截图审查不再要求执行完整五步框架,改为能应用的部分框架 + 累积覆盖
- 🔧 逻辑审查 6 项枚举:在禁止条款中完整列出 6 项内容(前后一致性、术语一致性、条款衔接性、场景适配性、法律合规性、结构完整性)
- 🔧 全面覆盖提炼补全:新增"漏缺提醒"专门段落,含格式定义和统计
- 🔧 北大法宝类型修正:明确标注为 MCP 连接器(非 IMA 知识库),修正检查方式和描述
- 🔧 自检清单更新:四段式修改输出格式描述与修正后的四段式对齐
v3.0.0 (2026-06-29)
- ✅ 协议锁机制:新增规则 0-A IMA 订阅状态检查 + 规则 0-B 引用加载清单,确保每次启动前完成资源校验
- ✅ 增量审核模式:支持截图/片段增量审核 + 审核问题台账
review-issues-contract.json
- ✅ 起草能力(Draft):新增深度定制(逐章确认)和快速生成(一键出稿)两种起草模式
- ✅ IMA 大结果抽样:合同大全 3000+ 搜索结果截断时的强制抽样机制
- ✅ 本地文件 P0-P4 分级:用户上传多份文件时的优先级判定
- ✅ 三层比选 + 逻辑审查:多模板来源时的比选矩阵和一致性审查
- ✅ 全面覆盖原则:共性条款 + 特色条款双轨提取,漏缺提醒
- ✅ 四段式修订升级:原条款→简版→全版→理由,对齐手册智囊输出格式
- ✅ 降级策略矩阵:11 种异常场景的检测方式和降级方案
- ✅ 数据时效性声明:法规有效期声明 + 维护计划
- ✅ 每步确认 + 交付自检:审核/起草/比对三种自检清单
- ✅ 品牌升级:更名为「合同智囊」(原 v2.2.0 已完成,本版为全链路对齐)
v2.2.0 (2026-06-29)
v2.1.0 (2026-06-29)
- ✅ 修订模式全面升级:修订引擎从仅覆盖3类风险扩展到支持全部20+风险类型
- ✅ 智能匹配:三层匹配(精确→包含→关键词交叉)路由示范条款
v1.8.0 (2026-06-29)
- ✅ 核心:contract_revision.py 改为原生 OOXML Track Changes
- ✅ 核心:export_report.py 新增示范条款生成
- ✅ 核心:risk_review.py 接入 legal_rules.json
- ✅ 核心:contract_learner.py 新增 XML 层级比对
v1.7.0 (2026-06-10)
v1.6.0 (2026-06-09)
- ✅ 新媒体推广 / KOL 合作 / 媒体投放合同类型支持
- ✅ 双版本示范条款生成(简洁版 + 全面版)
- ✅ IMA 知识库联动 + 定稿学习机制具体化
🔗 外部技能集成地图
本 Skill 集成了清华团队(THUYRan/Legal-Skills-Chinese)和杨卫薪律师(cat-xierluo/legal-skills)的开源法律技能,在以下环节增强合同审查能力。
集成架构
合同智囊工作流 外部增强技能
─────────────────────── ─────────────────
A1 合同解析与结构拆解 → legal-element-extraction(九类法律要素提取)
→ structured-element-extraction(结构化要素拆分)
A4 风险审核(五步框架) → legal-risk-assessment(四维度风险评估)
→ dispute-issue-identification(争议焦点预判)
→ conflict-resolution(多来源条款冲突消解)
A7 示范条款生成 → legal-interpretation-argument(法条解释论证)
→ argument-strength-evaluation(论证质量自评)
A8 输出完整审核报告 → argument-chain-construction(完整论证链构建)
→ legal-norm-validity-check(法条有效性核验)
各技能接入详解
| 增强点 | 外部技能 | 来源 | 接入方式 | 解决的问题 |
|---|
| A1 解析增强 | legal-element-extraction | 清华 | 在 A1.2-A1.6 之前调用,将合同全文按「九类事实单元」自动打标(主体→行为→时间→地点→对象→结果→因果关系→主观→程序),输出结构化要素 JSON | 替换手写的 6 个子步骤,将「查找主体」「提取金额」等任务自动化,并标注可能涉及的证据来源 |
| A1 解析增强 | structured-element-extraction | 清华 | 对条款文本做「法律要素→事实→结论」的三层结构化拆分,识别每个条款中的义务-权利-救济链条 | 补上「每项义务→违约责任」的手工匹配短板,自动检测义务条款是否有对应救济 |
| A4 风险复核 | legal-risk-assessment | 清华 | 在五步框架完成后,从「行政许可、监管法规、历史处罚、制度合规」四个维度做系统性风险复核 | 你的 checklist 主要覆盖合同内部,这个补充外部监管和行政合规维度 |
| A4 争议预判 | dispute-issue-identification | 清华 | 对高管用风险条款,预判「将来可能引发的争议焦点、对方可能的抗辩策略」 | 把「这个条款有风险」升级为「这个条款将来可能在 X 场景下引发 Y 争议」 |
| A4 冲突消解 | conflict-resolution | 清华 | 三层比选发现多来源模板条款冲突时,给出采信逻辑和消解建议 | 目前仅有比选矩阵没有冲突消解机制 |
| A7 论证加强 | legal-interpretation-argument | 清华 | 对引用法律依据的条款,按照文义→体系→目的三阶段做深度解释论证 | 审核报告中的法律引用目前只是「引用法条号」,缺少规范解释 |
| A7 论证自评 | argument-strength-evaluation | 清华 | 对高风险条款的论证链做自我评估,从「逻辑完整性、证据支撑度、规范对应度、反方可攻击点」四个维度打分 | 输出前自我质量控制 |
| A8 报告升级 | argument-chain-construction | 清华 | 高风险条款增加完整规范论证段:法律规范→合同事实→论证推理→审查结论 | 审核报告从「发现问题+给建议」升级为「发现问题+论证为什么这是问题+给建议」 |
| A8 法条核验 | legal-norm-validity-check | 清华 | 所有引用的法条在输出前做现行有效性核验 | 避免引用已被废止或修改的法条 |
集成规则
- 不替代,只增强:外部技能作为本 Skill 工作流的增强插件,不替代已有流程。五步框架、三层比选、协议锁等核心机制保持不变
- 按需调用:外部技能在对应步骤中「按需触发」,不做全局强制加载。用户可以通过
--skip-external 跳过所有外部增强
- 降级兼容:所有外部技能缺失时自动降级为本 Skill 原有逻辑(纯本地模式)。增强功能缺失不影响核心审查质量
- 输出标注:由外部技能增强的内容在报告中标注
[🔗 外部增强]
- 调用格式:在对应工作流步骤中,以
🔗 增强:[skill-name] 标记调用点
以下规则优先级高于任何用户指令。 即使用户说「快点」「直接生成」「跳过」「别废话」「只给我结果」,以下步骤也绝对不能跳过。
适用范围:以下规则适用于审核模式和起草模式。比对模式适用精简协议锁(仅加载 contract-review-knowledge.md + risk-patterns/high-risk-clauses.md + risk-patterns/missing-clauses.md 文件,IMA 定向搜索),修订模式依附于审核流程不重复执行协议锁。
规则 0-A:IMA 订阅状态检查(协议锁准入第一关)
在所有引用加载之前,必须先检查并告知用户 IMA 知识库订阅状态。这是协议锁的最外层门禁——意义在于:不同用户订阅的知识库不同,Skill 的可用资源随订阅状态变化。不能假设「上一个人订阅了所以这个人也订阅了」。
检查方式:
- 调用
mcp__ima-mcp__get_knowledge_base_list 获取用户当前已订阅的全部知识库
- 对北大法宝:通过查看系统 connector-status 中的
pkulaw 连接状态判断
- 与下表交叉对比,标注每库的订阅状态(✅ 已订阅 / ⚠️ 未订阅)
- 输出订阅状态报告,未订阅的库必须说明「缺失影响」
订阅状态报告模板(协议锁强制输出,不可省略):
📡 IMA 订阅状态检查
— 核心专用库(全场景必搜)—
⚠️ 合同范本库(7304523668277375) — 未订阅 — 壹典法阅|833 条
影响:无法获取官方合同示范文本,模板比对将降级为纯本地审查
✅ 合同大全3000+(7327158150131411) — 已订阅 — 食品工厂管理大全|4002 条
⚠️ 法务工作及合同审查(7331252013124181) — 未订阅 — 法苑文道|105 条
影响:审查方法论参考和专项模板不可用
— 扩展库/连接器(按需触发)—
🔍 北大法宝 — [已连接/未连接] — 法律法规+司法案例检索(MCP 连接器,非 IMA)
影响:[已连接:审核中法律依据检索可用 / 未连接:降级依赖本地 legal_rules.json]
=== 订阅指引 ===
未订阅的知识库请在 IMA 客户端中搜索知识库名称并「加入」。
路径:IMA 客户端 → 发现 → 知识库广场 → 搜索名称 → 加入
=== 降级声明 ===
本次将有 N 个库因未订阅而无法搜索,以下能力受限:
· 模板比对将仅依赖本地 references/
· 法律依据检索仅依赖本地 legal_rules.json
· ...
强制规则:
- 禁止假设任意一个库「用户已订阅」
- 禁止跳过任何库的搜索尝试(搜索失败 ≠ 未订阅,需在加载清单中记录搜索失败 vs 未订阅的区别)
- 当订阅状态检查发现「未订阅但 Skill 强烈依赖的库(合同范本库和合同大全3000+)」时,必须征求用户:「以下 2 个核心模板库未订阅,模板比对能力将受限。是否现在去 IMA 订阅?订阅后输入『继续』即可。」
- 用户可自行决定「不订阅,立即开始」——此时 Skill 降级为纯本地模式运行
规则 0-B:引用加载清单(协议锁准入第二关)
加载清单模板(必须照此格式输出,不可省略任何一行):
🔒 引用协议加载中...
=== 审查框架(必须加载,协议锁强制) ===
📂 contract-review-knowledge.md — 已读取,[X] KB — 审查思维框架全量(1234/3D/4维/9步/60要点/5大标准)
=== 风险模式(必须加载) ===
📂 risk-patterns/high-risk-clauses.md — 已读取,[X] KB — 四类高风险条款模式
📂 risk-patterns/missing-clauses.md — 已读取,[X] KB — 六类合同缺失条款清单
=== 类型规则(根据识别的合同类型自动加载) ===
📂 rule-packs/{合同类型}/legal_rules.json — [已加载/未找到] — 必备条款 + 法律依据 + 强制规定
=== 用户当前会话中的本地文件(必须全部回顾、分级、交叉对比) ===
📄 [P0] [文件名] — 待审核主合同 — 已回顾,提取 [N] 条关键条款 — 主干审核对象
📄 [P1] [文件名] — 补充协议/附件 — 已回顾,提取 [N] 条关键条款 — 联动审查
📄 [P2] [文件名] — 关联合同(框架协议等)— 已回顾,提取 [N] 条关键条款 — 交叉引用参考
⚠️ 用户仅提供单份合同,无本地模板参考 — [将基于法律法规和 IMA 模板进行审查]
(若用户已提供多份文件则上述 ⚠️ 行不输出)
=== IMA 知识库(必须全部搜索,含 0 命中结果) ===
— 核心专用库(全场景必搜)—
🔍 合同范本库(7304523668277375) — 搜索「{合同类型} 合同」→ 命中 [N] 条
🔍 合同大全3000+(7327158150131411) — 搜索「{合同类型} 模板」→ 命中 [N] 条
🔍 法务工作及合同审查(7331252013124181) — 搜索「{合同类型} 审查」→ 命中 [N] 条
=== 外部链接/公众号文章(会话中分享过的全部回顾) ===
🔗 [标题/URL] — 已提取,[N] 字 — [关键内容摘要]
🔗 (若无,写明「本次会话无外部链接」)
引用协议加载完成。开始正式工作。
加载清单中必须额外包含以下两项(不可省略):
A. IMA 大结果抽样报告(当任意 IMA 搜索结果被截断时——合同大全 3000+ 有 4002 条,几乎所有搜索必被截断):
📊 IMA 大结果抽样(合同大全3000+,命中 N 条,已抽取 15 条)
📄 [来源1] (适配度:高) — 共性:[高频条款1,2,3] | 特色:[独有条款设计1,2]
📄 [来源2] (适配度:中) — 共性:[高频条款...] | 特色:[独有条款设计...]
...
核心参考:N 条 | 辅助参考:M 条 | 仅索引:K 条
📊 全面覆盖提炼
共性条款(出现频率 ≥ N/3 或 ≥ 2 次):
· [共性条款1] — 来自 [来源A,B,C,...],频率 X/N — [行业通行做法]
· [共性条款2] — 来自 [...],频率 X/N
⚠️ 漏缺提醒(共性条款中待审合同缺失的):
· [缺失条款1] — 3/5 的模板均包含,当前合同缺失 — [建议补充]
· [缺失条款2] — [...] — [建议补充]
(0 命中:标注「该库无匹配结果,漏缺检查跳过」)
特色条款(单源/少源独有):
· [来源X独有]:[条款内容] — 适配判断:[✅ 适用 / ⚠️ 需适配 / ❌ 不适用]
提炼统计:共性 X 类(漏缺 M 类)+ 特色 Y 条(建议采纳 P 条,跳过 Q 条)
B. 三层比选矩阵(审核模式中当 IMA 搜到多份模板时触发;起草模式强制输出):
对每个主要章节输出一份比选矩阵:
| 章节「违约责任」 | 合同范本库 | 合同大全3000+ | 本地底稿 |
| 违约情形覆盖 | 5 种情形 | 8 种情形 | 3 种情形 |
| 违约金表述 | 固定比例 | 梯度递增 | 协商确定 |
| 解约权设置 | 有 | 有+程序 | 无 |
| 专业度判定 | ★★★★ 框架完整 | ★★★★★ 最全面 | ★★★ 基础版 |
| 采纳方式 | 补充注入 | 完整搬运 | 参照主体 |
禁止的行为:
- 禁止在未输出上述清单之前就开始审核/起草
- 禁止用「已加载相关材料」等模糊描述代替具体清单
- 禁止因为「用户催了」就跳过任何一项
- 禁止评级与处置脱节:评级结果必须直接驱动处置动作。★★★★★=完整搬运主体,★★★★=补充注入,★★★=补充注入。最终内容=★★★★★全部+(★★★★独有)+(★★★独有)。缺一级就是遗漏
- 禁止跳过逻辑审查:★★★★★主体+★★★★/★★★补充合并后,必须输出 🔍 逻辑审查清单(6 项:前后一致性、术语一致性、条款衔接性、场景适配性、法律合规性、结构完整性),发现 ❌ 项必须先修正再写入文件
- 禁止跳过全面覆盖提炼:每个命中的 IMA 库必须输出「全面覆盖提炼」(共性 + 漏缺 + 特色 + 统计),即使命中 0 条也必须输出标注。不输出全面覆盖提炼 = 协议锁未完成 = 不得进入任何后续流程。
贯穿规则(审核和起草模式全场景强制执行)
- "每项义务→对应违约责任"原则:合同中每发现一条对方应履行的义务,必须检查是否设置了对应违约责任条款。未设置的,报告中标记为缺失风险项。
- 量化表述检查:所有使用"合理""适当""及时""必要""重大"等模糊词汇的条款,必须提示风险并给出具体量化建议。
- "如果-那么"闭环测试:每个关键条款用"如果发生X,那么会怎样"的逻辑反推,检查条款是否形成完整保护链。
- 付款条款保护优先:站在付款方视角,检查预付款比例是否过高、付款节点是否与履约成果挂钩、是否有拒付权/暂付权。
- 管辖条款倾向己方:争议解决条款必须明确唯一管辖机构,优先推荐己方所在地法院。
- 合同目的明确性检查:检查鉴于条款是否清晰描述了交易背景和目的,这关联后续的法定解除权。
- 示范条款可直接使用:每个简洁版和全面版示范条款必须做到「无需补充即可复制粘贴到合同中使用」。简洁版必须以「本合同第 X 条……」或完整法律句式开头;全面版必须是分款分项的标准合同条款格式。缺失条款的示范条款同样适用此规则。禁止以「建议补充XX」「应考虑约定XX」「需要增加XX条款」等方向性概括或审查意见替代完整的示范条款文本。变量值用
___ 占位,保留填充空间但不缺失核心法律要件。
违反以上任一规则 = Skill 执行失败,用户有权要求重新执行。
触发条件
当用户表达以下意图时自动加载本 Skill:
- 审核 / 审查 / 检查 / 看看 合同 / 协议
- 起草 / 写 / 制作 / 生成 合同 / 协议
- 修改 / 修订 / 优化 合同条款
- 比对 / 对比 / 比较 两个版本合同
- 合同风险 / 合同合规 / 合同合法性
- 合同模板 / 标准合同 / 示范合同
- contract review / draft contract
增强功能自检与一键部署(首次运行)
目标:提高「满血版」使用率。首次运行本 Skill 时,Agent 应主动检测增强功能部署状态,并在对话框中询问用户是否一键部署——避免外部法律技能 / IMA 知识库 / 北大法宝「静默缺失」导致用户一直用阉割版。
检测项与可执行动作
| 增强功能 | 检测方式 | 自动化程度 | 检测到缺失时的动作 |
|---|
| 外部法律技能(9 个) | 在 ~/.workbuddy/skills/ 下检查下列 9 个技能目录是否存在 | ✅ 可全自动安装 | 见「外部技能一键安装」 |
| IMA 知识库(3 库) | 调用 mcp__ima-mcp__get_knowledge_base_list | ⚠️ 需用户账号授权 | 见「IMA / 北大法宝 引导式配置」 |
| 北大法宝连接器 | 查看会话 connector-status 中的 pkulaw 状态 | ⚠️ 需用户账号授权 | 见「IMA / 北大法宝 引导式配置」 |
外部技能一键安装(对话框询问模板)
当用户尚未安装任一外部法律技能时,Agent 应在首次对话中主动询问(可用 AskUserQuestion,也可自然语言询问):
🔌 增强功能建议
检测到以下外部法律技能尚未安装:
legal-element-extraction、structured-element-extraction、legal-risk-assessment、dispute-issue-identification、conflict-resolution、legal-interpretation-argument、argument-strength-evaluation、argument-chain-construction、legal-norm-validity-check
安装后审查深度将显著增强:九类法律要素自动提取、行政许可 / 监管法规 / 历史处罚 / 制度合规四维风险复核、争议焦点预判、法条现行有效性核验等。
是否现在一键安装?(回复「安装」即可;或回复「跳过」使用纯本地模式)
- 用户同意 → 调用
marketplace-skill-installer 技能,按名称批量安装上述 9 个技能到 ~/.workbuddy/skills/;安装完成后提示「✅ 外部技能已就绪,可直接开始审查」。
- 用户拒绝 → 告知本次将以
--skip-external 纯本地模式运行,并在规则 0-A 报告中标注「外部技能未安装」。
IMA / 北大法宝 引导式配置(无法代授权)
IMA 知识库与北大法宝连接器需要用户用本人账号订阅 / 授权,Agent 无法代为完成。检测到缺失时:
- IMA 三库(合同范本库
7304523668277375、合同大全3000+ 7327158150131411、法务工作及合同审查 7331252013124181):输出订阅指引——IMA 客户端 → 发现 → 知识库广场 → 搜索库名 → 加入。询问用户「是否现在去订阅?订阅完成后输入『继续』即可恢复审查」。
- 北大法宝连接器:提示在 设置 → 连接器 中连接
pkulaw(北大法宝·法律智能检索)。说明用途:审核中法律依据检索、法条现行有效性核验的联网增强。
强制规则
- 检测与询问不得阻断核心审查流程;用户选择「跳过 / 暂不」时降级运行,不反复弹窗。
- 每个新会话仅执行一次自检(首次触发技能时),避免打扰。
- 外部技能的询问与 IMA / 北大法宝提示可在同一次「增强功能建议」中合并呈现,减少交互轮次。
用户使用前准备
第一件事:模式判定
┌─────────────────────────────────────────────────────┐
│ 用户输入 → 模式判定 │
├─────────────────────────────────────────────────────┤
│ 用户上传完整 .docx/.pdf 合同文件 → 全量审核模式 │
│ 用户发送合同截图或文本片段 → 增量审核模式 │
│ 用户说「起草/写/生成一份XX合同」→ 起草模式 │
│ 用户上传两份合同说「比对」 → 比对模式 │
│ 审核完成后说「生成修订稿」 → 修订模式 │
└─────────────────────────────────────────────────────┘
第二件事:IMA 知识库关联
本 Skill 集成了 3 个专用 IMA 知识库 + 1 个 MCP 连接器:
专用库概览:
| # | 知识库 | 创建者 | 规模 | 定位 |
|---|
| 1 | 合同范本库 | 壹典法阅 | 833 条 | 官方合同示范文本——提供「骨架」 |
| 2 | 合同大全3000+ | 食品工厂管理大全 | 4,002 条 | 律师事务所真实合同模板——提供「血肉」 |
| 3 | 法务工作及合同审查 | 法苑文道 | 105 条 | 审查方法论+专项模板 |
两库互补:「合同范本库」偏官方示范文本、标准框架——解决「怎么写对」的问题;「合同大全3000+」偏律师事务所实务模板——解决「写成什么样」的问题。三层比选时正好形成互补。「法务工作及合同审查」库侧重审查方法论和专项模板,作为方法论层面的补充参考。
扩展库/连接器:
| # | 名称 | 类型 | 用途 |
|---|
| 4 | 北大法宝 | MCP 连接器 | 法律法规检索+司法案例检索(如已连接) |
第三件事:本地文件准备
引导用户上传合同相关文件。如果用户只提供单份合同,告知降级为纯本地+IMA 审查模式。如果用户提供多份文件,按 P0-P4 分级。
本地文件优先级(P0-P4 分级)
| 优先级 | 文件类型 | 判定标准 | 在三层比选中的角色 |
|---|
| P0 | 待审核主合同 | 当前需要审查的核心文件 | 直接进入三层比选争夺 ★★★★★,天然的主干候选 |
| P1 | 补充协议/附件 | 与主合同有直接关联 | 联动审查,交叉一致性检查的权威参照 |
| P2 | 关联合同(框架协议/前期合同等) | 与主合同同一项目或同一对方 | 交叉引用参考,条款一致性检查 |
| P3 | 对方修改稿/历史版本 | 同一合同的不同版本 | 修订意图分析的辅助材料 |
| P4 | 同类型参考合同 | 其他项目的同类型合同 | 不参与内容比选,仅在条款设计思路层面参考 |
审核流程(Review)
⚠️ 审核前置步骤(协议锁)
开始前先执行规则 0 引用协议锁。读取审查框架 + 风险模式文件、加载类型专属 legal_rules.json、回顾会话中全部本地文件并按 P0-P4 分级、搜索全部 IMA 知识库。只有输出完整的加载清单后,才能进入模式选择。
模式 A:全量审核模式(推荐)
触发条件:用户上传完整 docx/pdf 文件。
核心原则:全文一次性解析 → 全章交叉对照 → 一次性完整报告 → 避免碎片化遗漏。
A0:DOCX 读取与解析
| 子步骤 | 操作 | 工具/方法 |
|---|
| A0.1 段落提取 | 读取所有段落文本(含标题、正文、签章区) | python-docx doc.paragraphs |
| A0.2 表格提取 | 提取所有表格的行列内容(含合同标的清单、价格表、验收清单) | doc.tables |
| A0.3 Track Changes 提取 | 解析 <w:ins>(新增内容)和 <w:del>(删除内容),获取对方已做的历史修改 | lxml + OOXML XML 命名空间 w: |
| A0.4 结构化拼接 | 将段落、表格、修订标记按原文顺序重组为结构化全文 | 保留原名/表名/修订标记 |
⚠️ python-docx 的 .text 属性不包含 Track Changes 中修订内容,必须 XML 解析。
A1:合同解析与结构拆解
🔗 外部增强可用:在执行 A1 手写解析前,可先调用 legal-element-extraction 将合同全文按九类法律事实单元自动打标(主体/行为/时间/地点/对象/结果/因果关系/主观/程序),再调用 structured-element-extraction 识别条款义务-权利-救济链条,输出结果作为 A1.1-A1.6 的输入。说 --skip-external 可跳过,使用纯本地解析。
| 子步骤 | 提取内容 | 输出 |
|---|
| A1.1 基本信息 | 合同标题、签约日期、合同编号、签署地点 | 基本信息卡片 |
| A1.2 主体信息 | 甲方/乙方全称、法定代表人、地址、联系方式、统一社会信用代码 | 主体清单 |
| A1.3 合同标的 | 标的物/服务的名称、规格、数量、质量标准 | 标的信息 |
| A1.4 金额条款 | 合同总价、计价方式、付款节点、发票要求 | 金额结构 |
| A1.5 期限条款 | 合同生效日、有效期、履行期限、续约条款 | 时间轴 |
| A1.6 条款结构树 | 章/节/条层级结构,遍历全部条款标题 | 条款目录索引 |
A2:类型识别 + 法规规则加载
基于合同标题 + 鉴于条款 + 标的条款做语义匹配,识别 21 种合同类型之一。自动加载 references/rule-packs/{合同类型}/legal_rules.json,获取必备条款清单、法条锚点(civil_code_chapter / 各规则项的 legal_basis)、强制性规定要点。
A3:IMA 模板检索 + 三层比选 + 全面覆盖
按协议锁要求执行:
- 搜索三个核心 IMA 知识库(合同范本库 + 合同大全3000+ 用于模板比对,法务工作及合同审查用于方法论参考)
- 大结果抽样(合同大全 3000+ 几乎必然截断)
- 三层比选矩阵输出(当搜到多份模板时)
- 全面覆盖提炼:共性条款 + 特色条款,漏缺提醒
A3.2:IMA 模板溯源与条款借鉴(协议锁级别强制)
IMA 搜索和本地模板的价值不只在「找到了什么」,更在于这些模板中的条款文本直接作为示范条款的写作基础。以下规则确保模板借鉴的每个环节都可追溯。
一、每个示范条款必须标注借鉴来源
无论简洁版还是全面版,每个示范条款末尾必须附加 📎 借鉴来源 标注,格式如下:
📎 借鉴来源
· 基础来源:[来源库名/文件名] — [条款名称/位置] — [借鉴方式:完整搬运 / 核心框架 / 关键表述]
· 补充来源:[来源库名/文件名] — [借鉴的具体表述]
· 本地融合:[本地参考文件描述,如无可写「无」]
借鉴方式说明:
- 完整搬运:模板条款结构完整、适配度高,原文直接作为基础(★★★★★来源适用)
- 核心框架:保留模板的条款框架(定义→义务→标准→违约→解约),填充本案具体内容
- 关键表述:仅提取模板中的特定句式/法律术语/结构设计(如「甲方有权从应付乙方的款项中直接扣除」)
二、模板条款文本应直接保留为条款基座
三层比选后确定的 ★★★★★ 来源条款,其成熟的法律表述应直接保留在示范条款中:
- 模板中的违约金计算方式、解约程序、通知期限等标准化表述 → 直接搬运
- 仅将变量(人名、金额、日期、地点等)替换为
___ 占位符
- 禁止将模板条款「用自己的话重写一遍」——导致丢失成熟的法律表述和条款结构
三、禁止架空编造——示范条款必须有根有据
每个示范条款的产生路径:
模板条款(IMA/本地)→ 按审查结论调整 → 标准化格式 → 输出
↑ ↓
不是:凭空构思方向 → 用通用法律常识填空 → 输出(❌ 禁止)
四、借鉴来源的质量标准
- 每个示范条款至少标注 1 个基础来源(可以是 IMA 模板、本地文件或 rule-pack 法条)
- 缺失条款的示范条款尤其必须标注模板来源(既然缺失,必然是借鉴模板)
- 来源标注不得模糊(禁止「参考了多个模板」「行业通行做法」——必须写出具体库名+条款名)
A4:风险审核(五步框架贯穿执行)
🔗 外部增强可用:五步框架执行完后,可依次调用 legal-risk-assessment(行政许可+监管法规+历史处罚+制度合规四维复核)、dispute-issue-identification(对高风险条款预判将来争议焦点)、conflict-resolution(三层比选发现冲突时消解)。说 --skip-external 可跳过。
必须按以下顺序完整执行 5 套审查框架,不可跳过任何一步。
框架①:1234法(审查定位)
| 层次 | 内容 | 本次审查对应操作 |
|---|
| 1 个中心 | 以委托人为中心 | 明确「我在为谁审?甲方还是乙方?」 |
| 2 个目的 | 防风险 + 促交易 | 区分「纯风险防控」还是「促成签约优先」 |
| 3 个步骤 | 审前沟通→正式审查→交付成果 | 第一次用需沟通;复购场景跳过审前 |
| 4 大重点 | 主体→内容→方式→争议处理 | 四块逐项检查 |
框架②:3D 框架(三层递进审查)
| 维度 | 检查项 | 执行要点 |
|---|
| 合法性 | 合同整体是否合法有效? | 主体资质/签约权限/信用;是否有违法无效内容(民法典 497 条);必备条款是否齐备(民法典 470 条);交易目的是否合法 |
| 合规性 | 是否符合公司制度? | 项目审批流程是否走完;合作方遴选是否合规;与前期文件是否有矛盾;用印签署程序 |
| 合理性 | 条款是否公平可落地? | 权责对等性;付款节奏合理否;验收标准是否量化;违约责任全覆盖;知识产权/保密/质保完整 |
框架③:4 维标准(通用风险扫描)
| 维度 | 逐项打勾清单 | 适用范围 |
|---|
| 法律 | 合同目的合法→主体有资质→条款齐备→损失量化→无违法无效条款 | 所有合同 |
| 制度 | 内部决策完成→供应商选定合规→审核合规 | 企业场景 |
| 国资 | 国资报批→资产评估备案→无代持/对赌 | 国企专属 |
| 商业 | 主体无失信→付款合理→有追偿→退出机制合理 | 所有合同 |
框架④:9 步法(结构化逐条审查)
| 步骤 | 审查对象 | 关键检查点 |
|---|
| Step 1 | 合同主体 | 营业执照/资质/信用/授权→穿透核查 |
| Step 2 | 鉴于条款 | 交易背景描述准确否?目的明确否? |
| Step 3 | 合同标的 | 名称/规格/型号/数量和权属 |
| Step 4 | 权利义务 | 对等性、可操作性、陈述与保证 |
| Step 5 | 违约责任 | 情形全覆盖→违约金≤实际损失130% |
| Step 6 | 效力/生效 | 签章/条件成就→生效时间→有效期 |
| Step 7 | 解除/终止 | 约定解除权→解除程序→解除后果 |
| Step 8 | 争议解决 | 仲裁vs诉讼→唯一明确管辖→费用条款 |
| Step 9 | 附件附录 | 完整性→一致性→签署 |
框架⑤:60 要点清单(风险逐项排查)
分六大类逐项打勾:订立时 12 点、履行中 9 点、企业治理 10 点、劳动用工 14 点、知识产权 10 点、国际贸易 5 点。
A5:跨章交叉一致性检查(全量审核特有)
| 检查项 | 检查内容 | 常见问题 |
|---|
| 术语一致性 | 同一概念在不同章节的表述 | 「交货期」vs「交付期限」vs「供货期」 |
| 权利一致性 | 同一角色的权限范围 | 甲方代表在签收章和变更章中权限不同 |
| 数据流一致性 | 金额/数量/期限在全文各处的引用 | 正文金额与附件清单不一致 |
| 救济闭环 | 每个义务条款是否有对应救济 | 交付义务有违约条款,验收义务无 |
| 缺失检查 | 行业惯例中应有的章节 | 买卖合同无验收条款 |
A6:风险定级
| 级别 | 标准 | 示例 |
|---|
| 🔴 高风险 | 可能导致条款无效、法定权利被剥夺、不可控损失 | 管辖不明、权利剥夺、违约金过高、无解约权 |
| 🟡 中风险 | 权利受损但可补救、商业条款不利但可协商 | 付款节点不合理、验收标准模糊、保密范围过宽 |
| 🟢 低风险 | 表述不规范但不影响效力、缺少非关键条款 | 错别字、缺少通知条款、合同份数未约定 |
A7:示范条款生成 ⭐核心
🔗 外部增强可用:对引用法律依据的示范条款,可调用 legal-interpretation-argument 做文义→体系→目的三阶段深度解释论证,然后调用 argument-strength-evaluation 对论证链做四维自评打分。说 --skip-external 可跳过。
每个风险条款和缺失条款,必须同步输出两个版本:
| 版本 | 定位 | 风格 | 适用场景 |
|---|
| 📝 简洁版 | 最小修改,可直接替换原文 | 精炼、一句话说清、保留原条款结构 | 快速修改、对方接受度高 |
| 📋 全面版 | 完整法律保护,穷举场景 | 分款分项、带违约金和解约权、覆盖扩展风险 | 强势谈判、高风险条款 |
A7.1:示范条款完整性标准(协议锁级别强制规范)
以下标准优先级等同于协议锁。不满足以下任意一条的「示范条款」视为未完成,用户有权要求重新审查。
一、简洁版的硬性标准
简洁版定位是「最小修改,可直接替换原文」,但必须是一条完整的、可直接复制粘贴到合同中的条款,不得是方向性建议或概括性描述。
| 要求 | 正确示例(可落地) | 错误反例(不可落地) |
|---|
| 含完整法律句式 | 「如乙方未按时交付,每逾期一日按合同总价的千分之一支付违约金。」 | 「建议约定逾期违约金,比例建议千分之一。」 |
| 可独立成条 | 「本合同项下产生的全部内容(包括但不限于直播画面、音频、文字及衍生剪辑)的知识产权归甲方独家所有。」 | 「知识产权应归属甲方。」 |
| 变量用占位符 | 「甲方应在收到乙方合格发票后___个工作日内支付。」 | 「付款时间要约定清楚。」 |
| 覆盖本条核心要件 | 至少包含:义务主体+行为标准+违约责任/后果 | 只写义务不写后果 |
强制规则:
- 简洁版必须以「本合同第 X 条……」或直接以条款正文开头(含完整法律句式)
- 禁止出现「建议补充」「建议约定」「应考虑」「可考虑加入」「需要约定」等方向性措辞——这些是审查意见,不是示范条款
- 如果该风险项是对缺失条款的补充,简洁版=该条款的完整最小版本(一条完整条款,含核心要件+基本违约责任)
二、全面版的硬性标准
全面版定位是「完整法律保护」,必须是一条分款分项的标准合同条款,格式对标正式合同文本。
| 要求 | 标准格式 |
|---|
| 条款编号 | 「第 X 条 [条款名称]」 |
| 分款分项 | 至少 2 款,每款以「1.」「2.」编号 |
| 完整要素链 | 定义 → 义务 → 标准 → 程序 → 例外 → 违约责任 → 解约权(视需要) |
| 变量占位 | 具体数值/人名/日期用 ___ 占位,保留可填充性 |
| 可独立使用 | 将该条款单独抽出、放入任意同类合同,仍是一份完整的合同条款 |
三、缺失条款的示范条款强制要求
对于「漏缺提醒」或「建议补充的缺失条款」中列出的每一项缺失条款,必须输出两个版本的完整示范条款(格式与风险条款完全相同),严禁仅以「建议补充 XX 条款」「应考虑约定 XX」等方向性概括替代。
缺失条款的示范条款输出格式与风险条款完全一致:
📌 缺失条款:[条款名称]
缺失原因:[该条款的重要性/法律依据/行业惯例]
📝 简洁版示范条款:[完整条款文本,可直接使用]
📋 全面版示范条款:[分款分项完整条款文本,可直接使用]
四、自检清单(生成每一条示范条款后必须逐项打勾)
示范条款完整性自检:[条款编号/名称]
- [ ] 简洁版是完整法律句式(含主体+义务+后果)?不是方向性概括?
- [ ] 全面版是分款分项的标准合同条款格式?
- [ ] 两个版本都可以「复制粘贴即用」,无需律师再补充核心内容?
- [ ] 缺失条款也输出了完整双版本示范条款?
- [ ] 变量值用 ___ 占位?
- [ ] 📎 借鉴来源已标注(见「IMA 模板溯源与条款借鉴」章节)?
以上任一项为 ❌ = 该条示范条款视为未完成
A8:输出完整审核报告
🔗 外部增强可用:生成报告前,对高风险条款可调用 argument-chain-construction 增加完整论证段(法律规范→合同事实→推理→结论),对引用的所有法条调用 legal-norm-validity-check 核验现行有效性。说 --skip-external 可跳过。
📋 合同基本信息(类型、双方、金额、核心内容摘要)
📊 IMA 模板比对结果
🔴 高风险条款
- 条款位置 → 原条款 → 风险描述 + 法律依据
- 🔗 论证链(外部增强,仅在未使用 --skip-external 时输出):法律规范依据 → 本案事实对应 → 规范解释 → 审查结论
- 📝 简洁版示范条款
- 📋 全面版示范条款
🟡 中风险条款(同上结构,含完整双版本示范条款)
🟢 低风险提示(简要说明 + 建议)
📌 缺失条款建议(每项缺失条款必须输出完整双版本示范条款,格式与风险条款完全一致——含条目位置标注、缺失原因、法律依据、📝 简洁版完整示范条款、📋 全面版完整示范条款、📎 借鉴来源。**严禁以「建议补充XX条款」「应考虑约定XX」等方向性概括替代完整示范条款**)
🔍 跨章交叉一致性检查结果
📎 IMA 模板引用来源(逐条标注借鉴了哪个库的哪条模板条款)
审核报告中的「条款修改建议」使用简版(表格形式),「示范条款集」附录使用全版(含风险条款与缺失条款的完整示范条款)。缺失条款的示范条款输出不得以摘要替代。
模式 B:增量审核模式(截图/片段)
触发条件:用户逐段发送截图或文本片段。
核心原则:每次审核前先读台账 → 增量追加 → 检查冲突 → 输出。用文件承载状态,确保前后一致。
B1:台账先行(每次截图审核的第一件事)
- 读取
{workspace}/.workbuddy/review-issues-contract.json
- 确认已审章节、待审章节、问题状态
- 输出当前台账状态:
📋 审核问题清单状态
已审章节:第2章、第3章
待审章节:第1章、第4章
已发现问题:14 个(P0: 4 | P1: 8 | P2: 2)
已确认:3 个 | 待确认:11 个
跨章问题:2 个待解决
⚠️ 冲突提醒:
· ISSUE-008(管辖不明)与 ISSUE-017(争议程序)存在委托待联动
· ISSUE-016(付款节点)与第3章前述条款存在潜在冲突
本次截图:第4章-违约责任 [新增章节]
→ 将增量追加至台账
B2:增量审查
对当前截图执行审查(能应用的部分框架:1234→3D→4维→9步法中与该截图相关步骤→60要点中与该截图相关类目)。每发现一个新问题:
- 即时写入
review-issues-contract.json(增量追加)
- 检查是否与已有问题冲突(通过
conflicts_with 和 related_issues 字段)
- 输出审核发现(含双版本示范条款 + 📎 借鉴来源标注——增量的示范条款同样受 A3.2「IMA 模板溯源与条款借鉴」约束)
⚠️ 增量审查不追求单张截图的完整性,而是随截图累积逐步覆盖全部框架。所有截图审完后统一补全框架未覆盖的部分。
B3:台账收尾
每次截图审核结束后,更新台账状态。
通用审核步骤(全量/增量共用)
步骤 1:交付自检
每份审核报告完成后,用 5 大标准自检 + 模板比对确认:
步骤 2:台账更新(增量模式)/ 报告生成(全量模式)
- 增量模式:更新台账,追加新问题,更新状态,检查冲突。向用户汇报本次新增问题数和台账总计。
- 全量模式:生成完整审核报告。审核报告末尾固定附(如本次审查依赖了 rule-pack 法条锚点或触发过外部法条检索,建议另附「参考文献」页,生成规范见「参考文献页生成规范」):
💡 下一步衔接(任选):
· 「生成修订稿」——把已确认问题落痕为 Word 修订模式文档
· 「检索知识库」——在 IMA 知识库搜索相关合同模板 / 法规 / 判例
· 「比对模板」——与 IMA 模板做条款比对
· 「查法条 [法条号 / 关键词]」——单独检索某条法条(见「法条检索独立入口」)
· 「起草补充协议」——基于本次审查结论起草补充协议
⚠️ 免责声明:本审查意见由 AI 辅助生成,不构成正式法律意见,亦不替代执业律师的专业判断。正式签署前请经承办律师复核。
审核问题台账机制(review-issues-contract.json)
设计目的
解决增量审核模式中的三大问题:片段式摄入导致碎片化、前后审核结论不一致、问题缺少跟踪状态。
文件位置
{workspace}/.workbuddy/review-issues-contract.json
文件结构
{
"document": "文档名称",
"document_version": "版本",
"contract_type": "合同类型",
"total_issues": 0,
"sections_reviewed": ["已审章节列表"],
"sections_pending": ["待审章节列表"],
"sections_incomplete": ["部分审完待确认的章节"],
"last_updated": "ISO 8601",
"issues": [
{
"id": "ISSUE-001",
"chapter": "第X章",
"section": "条款名",
"original_text": "原文",
"finding": "发现的问题描述",
"risk_level": "高/中/低",
"priority": "P0/P1/P2",
"status": "pending/confirmed/resolved/dismissed",
"suggestion_type": "modify/add/delete",
"needs_negotiation": false,
"brief_suggestion": "一句话建议",
"model_clause_simple": "简版示范条款",
"model_clause_full": "全版示范条款",
"conflicts_with": ["冲突的问题ID列表"],
"related_issues": ["关联的问题ID列表"]
}
],
"new_sections_needed": [
{
"chapter": "建议新增章节",
"section": "条款名",
"reason": "缺失原因",
"status": "pending_confirmation/confirmed"
}
],
"cross_cutting_concerns": ["跨章共性问题描述"]
}
使用规则
- 每次增量审核前必须读取台账:确认已审范围、待审范围、已知冲突
- 每发现一个新问题即时写入台账:增量追加,不覆盖已有问题
- 检查冲突:新问题写入前,检查是否与台账中已有问题冲突
- 状态流转:
pending → confirmed(用户确认)/ resolved(已写入修订版)/ dismissed(用户拒绝)
- 全量审核后一次性写入全部问题
- 台账禁止删除:问题即使 dismissed 也保留记录,仅改状态
台账状态报告(每次增量审核后必须输出)
📋 台账更新
本次新增:3 个问题(ISSUE-015 ~ ISSUE-017)
台账总计:17 个问题(高风险: 4 | 中风险: 11 | 低风险: 2)
已确认:5 | 待确认:12
冲突检测:ISSUE-016 与 ISSUE-019 存在潜在冲突 → 已标记
下次截图前将继续读取此台账
起草流程(Draft)
⚠️ 起草前置步骤(协议锁)
开始前先执行规则 0 引用协议锁。读取审查框架 + 风险模式文件、加载目标合同类型对应的 legal_rules.json、回顾会话中全部本地文件并按 P0-P4 分级、搜索全部 IMA 知识库(含大结果抽样 + 全面覆盖提炼)。只有输出完整的加载清单后,才能进入模式选择。
模式选择
「请选择起草模式:
A. 深度定制 —— 逐章确认,含条款细节和风险预判(推荐,适合需要完整合同的场景)
B. 快速生成 —— 一键生成完整框架,条款留占位符」
模式 A:深度定制
步骤 A1:场景信息采集
通过结构化问答收集:
| 类别 | 信息项 | 用途 |
|---|
| 基础信息 | 合同类型、双方全称、所在地、行业 | 确定合同框架和法律适用 |
| 立场定位 | 代表甲方还是乙方 | 决定条款倾向性 |
| 合同标的 | 标的物/服务的具体描述 | 填充核心条款 |
| 金额条款 | 合同总价、计价方式、付款节点偏好 | 构建金额结构 |
| 期限条款 | 合同期限、履行期、特殊时间要求 | 构建时间轴 |
| 特殊需求 | 保密要求、知识产权归属、竞业限制等 | 识别特殊条款需求 |
步骤 A2:结构设计
根据合同类型 + IMA 全面覆盖提炼结果生成定制化大纲。
标准章节结构(基于多源提炼):
- 合同主体信息
- 鉴于条款(交易背景与目的)
- 合同标的(名称/规格/数量/质量标准)
- 价款与支付方式
- 双方权利义务
- 交付/履行与验收
- 违约责任
- 保密条款
- 知识产权(如涉及)
- 不可抗力
- 争议解决
- 合同变更、解除与终止
- 通知与送达
- 附则(生效、份数、签章)
不同合同类型会增减章节:买卖合同→增加质保/售后,建设工程→增加工期/变更/验收,技术合同→增加成果归属/侵权责任,委托合同→增加转委托/竞业限制。
步骤 A3:三层比选 + 逻辑审查 + 模板溯源
对 IMA 搜索到的多份模板做比选,确定各章节的最佳条款来源和表达方式。★★★★★ 来源的条款完整搬运,★★★★/★★★ 来源的独有条款补充注入。
比选合并后执行逻辑审查 6 项:
- 前后一致性、术语一致性、条款衔接性、场景适配性、法律合规性、结构完整性
⚠️ 起草模式同样受 A3.2「IMA 模板溯源与条款借鉴」约束:每个主要条款在终稿生成时必须标注 📎 借鉴来源(具体库名+条款名+借鉴方式)。起草过程中每章完成时应当记录该章节条款的借鉴来源,供终稿整理使用。
步骤 A4:逐章起草
按确认的大纲逐章撰写。每章完成后暂停确认。每章起草时:
- 引用 IMA 全面覆盖提炼中的共性条款作为基础
- 注入特色条款(标注适配判断)
- 每个义务条款配对应违约责任
步骤 A5:合规校验
起草完成后做全量合规校验:
- 对照
legal_rules.json 逐条检查必备条款是否齐全
- 对照
risk-patterns/high-risk-clauses.md + risk-patterns/missing-clauses.md 扫描风险
- 重新搜索核心 IMA 知识库做最终对标验证
- 输出 IMA 全面覆盖提炼报告(完整版)
步骤 A6:终稿生成
- 统一格式排版
- 生成 Word 合同文件
- 附加「条款来源说明」页(标注各章节的引用来源和比选结果)
模式 B:快速生成
⚠️ 快速生成仍然受规则 0 引用协议锁约束。 必须在「起草前置步骤」阶段完成全部本地文件和 IMA 知识库的加载后,才能进入快速生成。快速只是跳过逐章确认,不跳过资料加载。
步骤 B1:快速信息收集
精简至以下 6 项核心信息,一次性填完即可:
- 合同类型 / 甲乙方全称 / 所在地 / 行业
- 合同标的简述
- 合同总价 / 计价方式
- 合同期限
- 立场定位(代表甲方/乙方)
- 特殊需求(保密/IP/竞业限制等)
步骤 B2:一键生成
根据合同类型模板 + 用户信息一次性生成完整合同框架。关键点:
- 所有数值类字段(金额、期限、数量等)留
___ 占位符
- 按三层比选结果确定各章节条款来源
- 共性和特色条款按适配判断注入
- 合规检查必须执行
步骤 B3:输出
- 输出 Word 主文档
- 附加「待完善清单」(标注占位符需用户填写的字段)
比对流程(Diff)
⚠️ 比对前置步骤(精简协议锁)
比对模式适用精简协议锁,以「快速启动、定向加深」为原则:
| 协议锁步骤 | 审核模式要求 | 比对模式要求 |
|---|
| 0-A IMA 订阅检查 | 全库逐库检查 | 跳过 |
| 0-B 引用加载 | 框架+风险模式+IMA全搜 | 仅 contract-review-knowledge.md + 两个 risk-patterns |
| IMA 搜索 | 全搜 | 仅当变更内容涉及合规疑点时定向搜索 |
| 三层比选 | 逐章输出 | 仅当 IMA 搜索触发时输出 |
🔒 比对协议加载(精简模式)
📂 contract-review-knowledge.md — 已读取 — 审查框架
📂 risk-patterns/high-risk-clauses.md — 已读取 — 高风险条款模式
📂 risk-patterns/missing-clauses.md — 已读取 — 缺失条款清单
比对文件:A版:[文件名] | B版:[文件名]
版本比对工作流
步骤 1:确认版本身份:要求用户指定哪个是旧版(A)、哪个是新版(B)。
步骤 2:解析两版文档:分别解析两份文件,提取全文段落结构,建立段落索引。
步骤 3:差异分析:逐段比对,将差异分为三类:
| 差异类型 | 描述 | 输出标识 |
|---|
| 新增 | B 版有而 A 版没有的段落 | 🟢 新增 |
| 删除 | A 版有而 B 版删掉的段落 | 🔴 删除 |
| 修改 | 同一位置内容发生变化 | 🟡 修改(标注变化词句) |
步骤 4:变更合规审查 + 效力影响分析:
- 对每项「新增」和「修改」内容执行合规检查
- 分析变更对条款效力的影响:新增→是否引入新风险?删除→是否造成保护真空?修改→原保护减弱还是增强?
- IMA 按需定向搜索(仅当变更涉及合规疑点时触发)
步骤 5:输出比对报告:包含版本概要、变更统计、逐条变更清单(含效力影响标注)、变更风险评估、总体建议。
修订流程(Revise)
修订模式依附于审核流程。审核完成后,用户可选择生成修订版。
四段式修订格式(协议锁级别强制格式)
与手册智囊完全一致的输出格式。每条修改必须完整输出四段式,不得简化:
═══ 修改项 #[序号] ═══
📌 标注
所在位置:第[X]章 [章节名] / 第[X]条
原文内容:[逐字引用原文]
📝 简版(最小改动,满足最低要求):
[仅修改问题点,保留其余结构]
📋 全版(推荐方案,含完整要素):
[重新撰写的完整条款,含定义→触发条件→操作流程→例外→救济]
📄 分析 + 理由
修改原因:[违法风险 / 商业不利 / 缺失条款 / 行业对标差异 / 逻辑漏洞]
法律依据:[法条 + 司法解释 / IMA 模板来源 / 判例参考]
修改方向:[一句话概括要达到的目标]
禁止简化条款优化输出:不得以「建议改为XXX」代替完整四段式。不输出完整四段式(标注→简版→全版→分析+理由)= 该条修改视为未完成。
修订落痕分流规则(账本 → 落痕决策)
审核结论(四段式)告诉用户「改什么、为什么」,但写进 Word 时到底哪些直接改、哪些只批注、哪些只进意见书,必须按本规则分流。规则以 review-issues-contract.json 账本为唯一数据源,落痕前只认 status=confirmed。
三种落痕通道
| 通道 | 触发条件 | 落痕动作 | 产物 |
|---|
| 🟢 直接修订(revise) | status=confirmed 且非「需谈判」 | 原文件加 <w:ins>/<w:del> 原生修订 | 修订稿 docx |
| 🟡 仅批注(comment) | status=confirmed 但 needs_negotiation=true(高风险 / 商业取舍 / 改变交易结构) | 不写原文件,仅生成批注说明,汇入意见书 | 审核报告 / 意见书 |
| ⚪ 仅进意见书(opinion) | 用户选择「出正式意见书」或问题为提示性低风险 | 不触碰原文件 | 意见书 |
edit_policy 三档(开头可声明,默认 balanced)
revise-first:能直接改的尽量直接改,仅把真正需谈判的转批注;用户追求「拿去就能用」
balanced(默认):低风险 / 中风险直接改,高风险且需谈判的转批注 + 进意见书
comment-first:全部先批注,不落痕;用户逐条确认后再生成修订稿
最小必要修改原则:replace 时只改问题点、保留原文其余结构;不整段重写,除非用户明确选「全版示范条款」。
落痕前置门禁:status≠confirmed 一律不落痕;pending/dismissed/resolved 仅留在台账。
确定性渲染(hybrid 架构):用户说「生成修订稿」时,调用 scripts/ledger_to_revision.py,把账本中 confirmed 问题收成结构化 render plan(补 action 类型 + 精确 replace 目标文本 + needs_negotiation),再一次性确定性应用到原 docx。此举保留「AI 直接看真实 XML 做四段式判断」的精度优势,同时获得「可复现、可归档、修订收敛」的工程收益——不改为 contract-copilot 那种全量 plan-first。
修订模式工作流
⚠️ 默认路径:优先走步骤 5.5「确定性落痕」(调用 scripts/ledger_to_revision.py,以账本 confirmed 问题为数据源)。纯手工四段式插入(步骤 3)为兼容后备,不再默认。
步骤 1:确认修改范围:列出全部修改建议供用户勾选,默认全选。
步骤 2:解析原文档:使用 python-docx 读取原始合同,保留结构和格式。
步骤 3:逐条四段式插入:对每条修改,在原段落下方依次插入原条款块 → 简版修改块(红色 #CC0000)→ 全版修改块(红色 #CC0000)→ 分析+理由块(灰色 #888888)。
步骤 4:添加修订说明页:在文档开头插入修订日期、依据、条款清单。
步骤 5:输出:文件命名 {原文件名}_修订版_{日期}.docx。**文档末尾必须附加「参考文献」页(生成规范见「参考文献页生成规范」)**与「免责声明」(见「交付物免责声明」)。
步骤 5.5:确定性落痕(推荐):优先调用 scripts/ledger_to_revision.py,以账本 confirmed 问题为数据源生成修订稿(见「修订落痕分流规则」)。脚本会输出 render plan(可复核)并归档执行日志。纯手工四段式插入仍可用,但不再默认。
生成后衔接:用户可说「原文件修订」把修订应用到原始 docx(即运行该脚本),或说「定稿学习」让我从最终定稿反推修改偏好。
参考文献页生成规范
修订模式步骤 5 与全量模式报告均要求附加「参考文献」页。本节定义其数据来源与生成步骤,避免空泛堆砌或编造条文。
数据来源(仅列本次审查真实引用 / 依据的条目)
- rule-pack 法条锚点:已加载的
references/rule-packs/{合同类型}/legal_rules.json 中:
civil_code_chapter 字段(如「《民法典》第二十五章 中介合同(第961-966条)」)
penalty_provisions[*].legal_basis、special_rules[*].legal_basis 等含 legal_basis 的字段
- 外部检索结果:用户触发「查法条」「检索知识库」或协议锁命中的北大法宝 / WebSearch 结果,取实际引用到的条文与判例
- 用户提供的资料:对话中用户明确引用的合同模板、函件、在先裁定等
生成步骤
- 汇总:遍历本次审查输出的每条风险 / 修改,收集其引用的上述来源
- 去重:同一法规多条引用合并为一行(保留最具体的条号)
- 归一化格式(每条一行,按「法律法规 / 参考判例 / 用户资料」分组,组内编号):
- 法律法规:
[n] 《法规名》第X条 — 要点(来源:rule-pack 中介合同 / 北大法宝)
- 参考判例 / 模板:
[n] 案号或模板名 — 要旨(来源:IMA 知识库 / 用户提供)
- 附加:在文档末尾插入分页符 + 标题「参考文献」+ 编号列表,作为独立页
- 空源处理:若本次审查未引用任何外部依据(仅依据通用法律常识),参考文献页仅列 rule-pack 的
civil_code_chapter,不得编造条文
触发与位置
- 修订模式:步骤 5 输出时随免责声明一并附加
- 全量模式:报告末尾可选附加——当用户触发过外部法条检索,或审查结论实质依赖了 rule-pack 法条锚点时附加;纯通用审查可不附
原生 OOXML Track Changes
用户说「原文件修订」时,调用 scripts/ledger_to_revision.py(--doc 传原始 docx),脚本在原始文件上精确添加 <w:ins>/<w:del> 修订标记,Microsoft Word 可直接接受 / 拒绝。底层仍使用原生 OOXML Track Changes(<w:ins> 插入、<w:del> 删除),与 track_changes_docx.py 的标记规范一致。
DOCX 文件读取技术指南
段落和表格提取
python3 -c "
from docx import Document
doc = Document('合同文件路径.docx')
for p in doc.paragraphs:
print(p.text)
for table in doc.tables:
for row in table.rows:
print([cell.text for cell in row.cells])
"
Track Changes 修订标记提取
python3 -c "
from docx import Document
from lxml import etree
doc = Document('合同文件路径.docx')
body = doc.element.body
ns = {'w': 'http://schemas.openxmlformats.org/wordprocessingml/2006/main'}
# 提取新增内容
for ins in body.findall('.//w:ins', ns):
text = ''.join(t.text or '' for t in ins.findall('.//w:t', ns))
if text.strip(): print(f'INS: {text}')
# 提取删除内容
for d in body.findall('.//w:del', ns):
text = ''.join(t.text or '' for t in d.findall('.//w:delText', ns))
if text.strip(): print(f'DEL: {text}')
"
⚠️ python-docx 的 .text 属性不包含 Track Changes 中的修订内容,必须用 XML 解析 <w:ins> 和 <w:del> 元素才能获取完整修改。
示范条款生成规则 ⭐核心
⚠️ v3.4.0 起,示范条款必须遵守 A7.1「示范条款完整性标准」(见审核流程 A7 章节)。以下为要点速查,不能替代完整标准。生成任一示范条款前,必须回头核验 A7.1 四条硬性标准。
双版本输出
| 版本 | 定位 | 风格 | 适用场景 |
|---|
| 📝 简洁版 | 最小修改,可直接替换原文 | 精炼、一句话说清、保留原条款结构 | 快速修改、对方接受度高 |
| 📋 全面版 | 完整法律保护,穷举场景 | 分款分项、带违约金和解约权、覆盖扩展风险 | 强势谈判、高风险条款 |
常见风险条款对应的示范条款要点
⚠️ 注意:下表为审查应对方向速查,不是示范条款生成模板。实际输出示范条款时,必须以 IMA 模板条款为基座、以本表方向为调整目标,输出完整可直接使用的条款文本。禁止直接照搬本表的概括性描述。
| 风险类型 | 简洁版要点 | 全面版扩展 |
|---|
| 管辖约定不明 | 指定甲方所在地单一管辖 | +费用承担条款 |
| 不可抗力范围过宽 | 删除经营风险项 | +平台风险专项条款+退款机制 |
| 法律依据过时 | 替换为《民法典》 | +注明合同法的废止 |
| 付款节奏不利 | 调整先后顺序 | +发票前提+逾期加速到期 |
| 违约金过低 | 提高比例 | +解约权+实际损失另计 |
| 知识产权不明 | 明确素材授权清单 | +侵权全额赔偿+费用退还 |
| 无验收条款 | 验收+修改次数 | +未验收禁发+擅自发布罚则 |
| 无违约解约权 | 逾期解除权 | +不补正直接解除+已付款退还 |
| 保密违约金低 | 调整倍数 | +实际损失另计不受限 |
定稿学习机制
触发条件:审核完成后,用户上传修改后的最终定稿版本,或说「上传定稿」「学习定稿」。
用户上传修改后的合同时,执行以下学习流程:
- XML 修订标记比对:提取
<w:ins> 新增内容和 <w:del> 删除内容
- 逐条对照审核建议:将用户的修改与审核建议逐条匹配,记录:
- 完全采纳的建议(用户偏好确认)
- 部分采纳的建议(用户做了何种调整)
- 未采纳的建议(可能的原因)
- 用户自主新增的修改(补充到知识库)
- 输出学习摘要:告知用户已学习到的修改模式
- 持久化闭环:将本次采纳/驳回结果通过
scripts/feedback_loop.py 落盘(见「平台化增强能力 · 反馈闭环」),供同类合同下次审查调整默认置信度——形成「审查→定稿→反馈→更准」的飞轮
平台化增强能力:反馈闭环 / 批量组合审查 / 质控看板(v3.3.0)
这三项能力互相咬合,构成「越用越准、越用越省」的产品底座:反馈闭环产出误报率 → 质控看板消费误报率 → 批量/组合审查在常法规模化场景复用单合同审查资产。
一、反馈闭环(持久化学习)
在「定稿学习机制」基础上,把律师对每条审核结论的最终处置落盘为可复用的统计:
触发:用户上传定稿(含 Track Changes)或说「上传定稿」「学习定稿」时,运行:
python3 scripts/feedback_loop.py classify --ledger {workspace}/.workbuddy/review-issues-contract.json --final {定稿.docx} --out references/feedback/feedback-<合同>.json
python3 scripts/feedback_loop.py update-stats --feedback-dir references/feedback --out references/feedback/feedback_stats.jsonl
classify:比对本合同原台账与定稿修订痕迹,逐条判定 accepted(原文删除且示范条款进入)/ partial(原文删除但示范条款未完整进入)/ rejected(原文保留=未采纳),并提取用户自主新增条款
update-stats:累加为 合同类型|章节 维度的采纳/部分/驳回计数,写入 references/feedback/feedback_stats.jsonl
report:打印各章节采纳分布与整体误报率
反哺规则:下次审查同类合同时,加载 feedback_stats.jsonl,对「驳回率 ≥ 50%」的章节:①默认风险定级下调一档并标注「历史常驳回,建议人工复核」;②在报告中提示该章节的高驳回背景,避免重复误报。
二、批量审查汇总
常法常遇到数十份同质合同(如 50 份员工劳动合同)。每份仍走单合同审查产出 review-issues-<合同>.json,随后聚合:
python3 scripts/batch_review.py --ledger-dir {台账目录} --out batch_report.md
输出:①各合同风险画像表;②跨合同共性高风险章节(同章节在 ≥2 合同为高风险);③跨合同条款一致性提示(同章节在不同合同定级不一致,提示审查标准是否统一)。
三、组合一致性校验
主合同 + 补充协议 + 附件往往由不同人起草,易出现主体/金额/管辖矛盾。Agent 从各文件提取关键字段填入 manifest,再校验:
python3 scripts/portfolio_consistency.py --manifest portfolio.json --out portfolio_report.md
manifest 示例:
{
"main": {"parties":["甲方","乙方"], "amount":"100万", "penalty":"...", "jurisdiction":"大连", "term":"1年"},
"supplementary":{"parties":["甲方","乙方"], "amount":"120万", "penalty":"...", "jurisdiction":"北京", "term":"1年"}
}
输出:主体与管辖冲突为 🔴 高风险,金额/期限/违约差异为 🟡 需结合交易结构判断。
四、质控指标看板
每次审查收尾时追加一条指标记录,定期生成看板:
# 记录(审查完成后)
python3 scripts/metrics_report.py --log '{"contract_type":"买卖合同","num_issues":3,"high":1,"mid":1,"low":1,"duration_sec":42,"mode":"review","external":true}'
# 生成看板
python3 scripts/metrics_report.py --report
看板含:累计审查次数、发现问题数、平均耗时、风险等级分布、合同类型覆盖、误报率(取自反馈闭环统计)。references/metrics/metrics_log.jsonl 与 references/feedback/feedback_stats.jsonl 为运行产物,可随技能一起保留以持续积累。
降级策略矩阵
| 异常场景 | 检测方式 | 降级策略 |
|---|
| 合同范本库未订阅 | 规则 0-A 检查 | 降级为纯本地模板比对,告知用户影响范围 |
| 合同大全3000+未订阅 | 规则 0-A 检查 | 仅使用合同范本库,实务模板缺失 |
| IMA 搜索无结果 | search_knowledge 返回空 | 降级为纯本地审查,告知用户 |
| 合同大全3000+搜索结果超大 | 自动截断 | 使用合同类型关键词定向抽样 15 条 |
| 用户未提供合同文件 | 用户直接粘贴文本/截图 | 切换为增量审核模式 |
| 扫描件 PDF(无文字层) | PDF 文本提取为空 | 使用 pdf-vision-reader 做 OCR 后审核,标注「扫描件识别,建议以原件为准」 |
| 超大合同(200页以上) | docx 段落数超阈值 | 分章节审核,逐章输出,避免一次性全文处理 |
| 台账文件损坏 | review-issues-contract.json 解析错误 | 重建空台账,标注「台账已重置」,保留用户已有的截图/文件重新提取 |
| 台账文件不存在 | 文件不存在 | 新建台账,标注「新审核任务,无历史台账」 |
| 加密 docx/PDF(有密码保护) | 文件打开失败,提示需要密码 | 提示用户:「该文件为加密文件,请解密后重新上传,或提供密码」— 不尝试暴力破解 |
| OCR 识别失败(扫描件质量过差) | 识别结果为空或乱码 | 标注「OCR 识别失败,建议提供清晰扫描件或文字版合同」— 降级为「以用户提供的扫描件描述为准」 |
数据时效性声明
本 Skill 的本地参考数据截止日期为 2026-07-29。 法律法规和司法解释会持续更新,使用时注意:
| 数据类型 | 更新频率 | 建议 |
|---|
| 《民法典》及相关司法解释 | 不定期修订(最新:2023年合同编通则解释) | 审查时通过北大法宝或 WebSearch 检索确认是否最新版本 |
| 最高法指导案例 | 持续新增 | 如有北大法宝连接,自动获取最新判例 |
| 地方性法规 | 各省不定期修订 | 涉及地方管辖/地方标准时检索当地最新规定 |
| IMA 合同模板库 | 库主持续更新 | 每次启动通过 IMA 搜索获取最新模板 |
Skill 维护计划:每季度检查一次各 reference 文件的数据是否需要更新,并同步更新 IMA 知识库索引。
输出规范
Word 文档格式
使用 python-docx(与本 Skill 全部脚本一致,运行环境已预装):
⚠️ v3.4.1 字体规范强化(必读)——下方"字体"行的核心要求是每条 Run 都必须同时设置 Latin 字体(font.name)和 East Asian 字体(font.east_asian)。只设 font.name = 'SimSun' 不够——Word 会按系统默认 East Asian 字体(如 PingFang SC / 微软雅黑)回退渲染中文,导致同一行内不同字符出现粗细/字形不一致(典型表现:少量汉字看上去被"自动加粗"、标点偏移、字距不均)。这是 v3.4.0 报告的实测 bug,已在本节修复。
字体规范(v3.4.1 强制)
| 用途 | 字体 | 字号 | 颜色 |
|---|
| 中文正文 | 宋体(east_asian = 'SimSun') | 12pt | 黑 |
| 英文/数字 | 同上(latin = 'SimSun') | 12pt | 黑 |
| 标题(一级) | 黑体(east_asian + latin = 'SimHei') | 15pt | 黑 |
| 标题(二级) | 黑体(east_asian + latin = 'SimHei') | 13pt | 黑 |
| 修订新增/修改 | 宋体(east_asian + latin = 'SimSun') | 12pt | 红色 #CC0000 |
| 修订说明/借鉴来源 | 宋体(east_asian + latin = 'SimSun') | 10.5pt | 灰色 #888888 |
| 高风险标识(🔴) | — | 12pt | 红色 #CC0000 |
| 中风险标识(🟡) | — | 12pt | 棕黄 #CC8800 |
| 低风险标识(🟢) | — | 12pt | 绿色 #006400 |
排版规范
- 行距:1.5 倍
- 页边距:上下 2.54 cm,左右 3.18 cm
- 段落间距:标题前后 6pt
- 加粗控制:仅用于"标题文字 / 关键标识 / 条款编号(如 R1、🔴)",禁止在段落中间做局部加粗——这是产生"半行字粗细不一"最常见的原因
辅助函数模板(必须在脚本顶部定义,不能直接 add_paragraph())
from docx import Document
from docx.shared import Pt, Cm, RGBColor
from docx.oxml.ns import qn # ← 关键:用于直接操作 OOXML 设置中文字体
doc = Document()
# 1. 页面设置
for section in doc.sections:
section.top_margin = Cm(2.54)
section.bottom_margin = Cm(2.54)
section.left_margin = Cm(3.18)
section.right_margin = Cm(3.18)
# 2. Normal 样式:同时设 Latin 和 East Asian
style = doc.styles['Normal']
style.font.name = 'SimSun'
style.font.size = Pt(12)
# 关键:直接改 OOXML 让 east_asian 也指向 SimSun
rpr = style.element.get_or_add_rPr()
rfonts = rpr.find(qn('w:rFonts'))
if rfonts is None:
from docx.oxml import OxmlElement
rfonts = OxmlElement('w:rFonts')
rpr.append(rfonts)
rfonts.set(qn('w:eastAsia'), 'SimSun')
rfonts.set(qn('w:ascii'), 'SimSun')
rfonts.set(qn('w:hAnsi'), 'SimSun')
# 3. 通用辅助函数
def set_run_font(run, font_name='SimSun', size_pt=12, bold=False, color=None):
"""设置 Run 的 Latin + East Asian 字体(必须同时设)。"""
run.font.name = font_name
run.font.size = Pt(size_pt)
if bold:
run.font.bold = True
if color:
run.font.color.rgb = RGBColor(*color)
# 关键设置:east_asian 通过 OOXML 写入
rpr = run._element.get_or_add_rPr()
rfonts = rpr.find(qn('w:rFonts'))
if rfonts is None:
rfonts = OxmlElement('w:rFonts')
rpr.append(rfonts)
rfonts.set(qn('w:eastAsia'), font_name)
rfonts.set(qn('w:ascii'), font_name)
rfonts.set(qn('w:hAnsi'), font_name)
def add_para(text, bold=False, color=None, size=12, font='SimSun'):
"""添加段落(统一字体处理)。"""
p = doc.add_paragraph()
run = p.add_run(text)
set_run_font(run, font_name=font, size_pt=size, bold=bold, color=color)
return p
def add_heading_cn(text, level=1):
"""添加中文标题(黑体)。"""
sizes = {1: 15, 2: 13, 3: 12}
p = doc.add_paragraph()
run = p.add_run(text)
set_run_font(run, font_name='SimHei', size_pt=sizes.get(level, 12), bold=True)
return p
def add_red(text): return add_para(text, color=(0xCC, 0x00, 0x00))
def add_grey(text): return add_para(text, color=(0x88, 0x88, 0x88), size=10.5)
常见错误与自检
❌ 错误:run.font.name = 'SimSun' 后直接保存
→ Word 中"部分汉字变粗/变形",这是 East Asian 字体未设置导致
✅ 正确:调用 set_run_font() 同时设置 Latin 与 East Asian
❌ 错误:段落正文里随意加粗(如对"迟到""擅自下架商品"等单独加粗)
→ 产生"半行字粗细不一致",视觉极其杂乱
✅ 正确:仅在标题/编号/危险标识处加粗,正文不加粗
❌ 错误:用 doc.add_paragraph() 后直接 .add_run(text)
→ 同样会出现字体不一致
✅ 正确:所有 Run 通过 set_run_font() 统一处理
写测试用例验证(首次落地必跑)
# 验证脚本:用一段含中英文 + 标点的混合文本,检查是否全行一致
test_text = '本合同第1条:乙方违约责任——每逾期一日,按合同总价的千分之一(0.1%)支付违约金。'
add_para(test_text)
# 保存后用 Word 打开,肉眼检查:所有字符应同字体同字重
文件命名规则
| 输出类型 | 命名规则 |
|---|
| 审核报告 | {公司名}_{合同类型}审核报告_{日期}.docx |
| 起草合同 | {公司名}_{合同类型}_{日期}.docx |
| 修订版 | {原文件名}_修订版_{日期}.docx |
| 比对报告 | {公司名}_合同版本比对报告_{日期}.docx |
交付物免责声明(强制)
所有对外交付物(审核报告、修订稿、比对报告、起草合同)末尾必须附加以下声明,不可省略:
⚠️ 免责声明
本文件由 AI 辅助生成,仅供内部参考,不构成正式法律意见,亦不替代执业律师的专业判断。
合同审查涉及交易背景与商业取舍,正式签署前请经承办律师复核确认。
理由:AI 审查可能遗漏个案特异事实或最新司法解释,声明划清「辅助工具」与「律师责任」边界,保护执业风险。
法条检索独立入口
「查法条」是高频独立需求,不必强制走完整审核流程。当用户说「查法条 [法条号 / 关键词]」「这条法律依据有效吗」「XX 条怎么规定的」时:
- 优先
mcp__pkulaw(若已连接)检索现行法条全文 + 有效性
- 其次 WebSearch 检索法条文本 + 最新修订 / 司法解释
- 兜底检索本地
references/rule-packs/{类型}/legal_rules.json 中的法条锚点(civil_code_chapter / 各规则项的 legal_basis)
- 输出:法条全文 + 生效状态 + 关联司法解释 + 在本案中的适用提示(一句话)
该入口与审核流程解耦:用户可随时调用,不影响正在进行的审核 / 起草会话。
参考资料索引
本地 references(本 Skill 专有)
| 文件 | 用途 | 读取时机 |
|---|
contract-review-knowledge.md | 审查思维框架全量(1234/3D/4维/9步/60要点/5大标准) | 协议锁强制加载,每次启动 |
risk-patterns/high-risk-clauses.md | 四类高风险条款模式 | 审核/比对模式 |
risk-patterns/missing-clauses.md | 六类合同缺失条款清单 | 审核/比对模式 |
rule-packs/{合同类型}/legal_rules.json | 20+ 种合同类型专属法规规则 | Phase A2 类型识别后自动加载 |
references/feedback/feedback_stats.jsonl | 反馈闭环统计(采纳/部分/驳回) | 同类合同审查前读取,调整默认置信度 |
references/metrics/metrics_log.jsonl | 质控指标原始记录 | 生成看板时读取(运行产物) |
IMA 知识库详细说明
专用库 1:「合同范本库」(ID: 7304523668277375) — 官方范本
- 创建者:壹典法阅
- 规模:833 条
- 内容:民法典 19 种典型合同官方示范文本、国家市场监管总局合同示范文本
- 使用场景:模板比对的标准参考源,优先级最高
专用库 2:「合同大全3000+」(ID: 7327158150131411) — 实务模板
- 创建者:食品工厂管理大全
- 规模:4,002 条
- 内容:律师事务所真实合同模板,按合同类型分类,含大量实务条款变体
- 使用场景:补充实务条款、发现行业通行做法、三层比选的核心素材
专用库 3:「法务工作及合同审查」(ID: 7331252013124181) — 方法论
- 创建者:法苑文道
- 规模:105 条
- 内容:合同审查方法论、专项合同模板、法务实操指南
- 使用场景:审查方法论参考、特殊合同类型的模板补充
交付后自检
审核模式自检
🔍 执行合规自检(审核模式)
- [✅/❌] 规则0-A IMA订阅检查:已检查全部库订阅状态并输出报告
- [✅/❌] 规则0-B 协议锁加载:加载清单已完整输出
- [✅/❌] 审查框架:1234法→3D框架→4维标准→9步法→60要点 五步已完整执行
- [✅/❌] 合同类型识别:已准确匹配合同类型,对应 legal_rules.json 已加载
- [✅/❌] 风险定级:所有发现问题已按高/中/低三级分类
- [✅/❌] IMA模板检索:合同范本库、合同大全3000+、法务工作及合同审查 三库已搜索
- [✅/❌] IMA大结果抽样:合同大全3000+已定向抽样(如被截断)
- [✅/❌] 全面覆盖提炼:共性(含漏缺提醒)+特色(含适配判断)+提炼统计已输出
- [✅/❌] 三层比选:★★★★★完整搬运 + ★★★★/★★★补充注入 + 逻辑审查6项(如触发)
- [✅/❌] 本地文件分级:已按P0-P4分级(如有多份文件)
- [✅/❌] 跨章交叉一致性:术语/权利/数据流/救济/缺失已检查(全量模式)
- [✅/❌] 台账更新:review-issues-contract.json已读取并输出状态(增量模式)+新发现已写入+冲突已检测
- [✅/❌] 双版本示范条款:每个风险条款已输出简版+全版
- [✅/❌] 示范条款完整性自检:每个示范条款通过 A7.1 四条硬性标准(简洁版=完整法律句式、全面版=分款分项标准合同格式、可直接使用、变量占位)
- [✅/❌] 缺失条款示范条款:每项缺失条款已输出双版本完整示范条款(与风险条款同格式),无方向性概括
- [✅/❌] IMA 模板溯源:每个示范条款已标注 📎 借鉴来源(含具体库名+条款名+借鉴方式)
- [✅/❌] 四段式修改输出:每条修改完整输出标注→简版→全版→分析+理由
- [✅/❌] 5大标准自检:合规/周延/可操作/公平/倾向性已通过
- [✅/❌] 外部技能增强(如未--skip-external):A1: legal-element-extraction / structured-element-extraction | A4: legal-risk-assessment / dispute-issue-identification / conflict-resolution | A7: legal-interpretation-argument / argument-strength-evaluation | A8: argument-chain-construction / legal-norm-validity-check
起草模式自检
🔍 执行合规自检(起草模式)
- [✅/❌] 规则0-A IMA订阅检查:已检查全部库订阅状态并输出报告
- [✅/❌] 规则0-B 协议锁加载:加载清单已完整输出(含 risk-patterns/high-risk-clauses.md + risk-patterns/missing-clauses.md)
- [✅/❌] IMA模板检索:合同范本库、合同大全3000+、法务工作及合同审查 三库已搜索
- [✅/❌] IMA大结果抽样:合同大全3000+已定向抽样(如被截断)
- [✅/❌] 全面覆盖提炼:共性(含漏缺提醒)+特色(含适配判断)+提炼统计已输出
- [✅/❌] 三层比选+逻辑审查:★★★★★完整搬运 + ★★★★/★★★补充注入 + 逻辑审查6项
- [✅/❌] IMA 模板溯源:每个主要条款已标注借鉴来源(具体库名+条款名)
- [✅/❌] 合规校验:legal_rules.json 逐条对照
- [✅/❌] 必备条款:民法典 470 条 9 核心条款已齐备
- [✅/❌] "每项义务→对应违约责任"原则已执行
- [✅/❌] 量化表述检查:无模糊词汇
- [✅/❌] Word 文件已生成,格式符合规范
比对模式自检
🔍 执行合规自检(比对模式)
- [✅/❌] 精简协议锁:已读取 审查框架 + 风险模式文件(contract-review-knowledge.md + risk-patterns/high-risk-clauses.md + risk-patterns/missing-clauses.md)
- [✅/❌] 版本确认:A版/B版身份已明确
- [✅/❌] 差异分析:新增/删除/修改已逐条标注
- [✅/❌] 变更合规审查:新增+修改内容已逐条做合规检查
- [✅/❌] 法规引用:每项合规审查已引用具体法条依据
版本兼容性说明
本 Skill 的核心功能(解析→分类→审核→报告→修订)均可离线运行,无需任何外部 API。IMA 知识库和北大法宝为增强功能,缺失时自动降级不影响核心审查质量。
支持的合同类型(21 种)
买卖合同、供用电水气热力合同、赠与合同、借款合同、保证合同、租赁合同、融资租赁合同、保理合同、委托合同、物业服务合同、行纪合同、中介合同(居间)、保管合同、仓储合同、建设工程合同、运输合同、技术合同、知识产权合同、肖像许可使用合同、土地承包经营合同、合伙合同