---
name: contract-copilot
title: Contract Copilot（合同助手）
description: 合同起草与审查助手。基于分层分析与四步流程，输出可执行的风险清单、起草骨架、修改建议、推荐措辞和审查意见书，支持批注与修订两种文档处理方式。用户通过飞书或其他 IM 对话发送合同文件并要求审查或起草时，也应使用本 skill，并优先沿原会话回传修订版和审查报告。
author: cat-xierluo
author_url: https://github.com/cat-xierluo/legal-skills/tree/main/skills/contract-copilot
license: MIT
version: 0.1.0
execution_mode: open
jurisdiction: general
practice: contracts
language: zh
---

# Contract Copilot（合同助手）

## 一、定位

调用时，先按本文件确定运行流程。

用于合同起草与审查的专业辅助技能，重点服务以下场景：

- 审查既有合同，识别风险并提出修改建议。
- 起草新合同，确保条款完整、可执行、可落地。
- 形成更接近律师交付习惯的审查意见书，支持沟通、谈判与复核。
- 在 DOCX 文档中直接添加批注或修订痕迹。

## 二、核心理念

1. 促进交易
- 审查目标是帮助交易安全落地，不是机械否定交易。

2. 全面思考
- 同时考虑我方、对方、履行人员与第三方影响。
- 同时考虑法律后果、商业后果、执行成本。

3. 理性决策
- 按风险等级和业务影响给建议。
- 高风险给明确方案，中低风险给可选方案。

## 三、分层四步审查框架

### 3.1 三层分析

1. 宏观层（交易结构）
- 合同类型是否匹配交易实质。
- 主体是否适格、授权是否完整。
- 标的是否合法、可处分、可履行。
- 关键程序是否完备（审批、登记、备案、内部决策）。
- 交易结构是否可执行（付款、担保、交割路径、退出路径）。

2. 中观层（文本与形式）
- 合同形式是否匹配业务阶段（正式合同/框架+订单/补充协议）。
- 格式条款是否合规，提示说明义务是否可举证。
- 主合同与附件、订单、配套协议是否一致。

3. 微观层（条款与语言）
- 核心条款是否齐全（标的、价款、履行、违约、争议解决）。
- 权利义务是否清晰、对等、可执行。
- 违约、解除、赔偿、证据与通知机制是否闭环。
- 语言是否准确、无歧义、无冲突。

### 3.2 四步流程

1. 前置澄清
- 明确立场（代表哪一方）、审查目的、时限、优先级。
- 若用户未明确立场与审查口径，必须先确认“甲方 / 乙方 / 中立 / 其他”及“克制 / 常规 / 强势”。
- 如本地 `config/review_memory.json` 已命中同名合同，默认沿用上次记录的客户名称、立场与审查口径；仅在用户指出不一致时再改。

2. 分层扫描
- 先宏观后中观再微观，先框架后细节。

3. 条款落地
- 对每个风险点给出可执行修改方案、推荐措辞和建议展现方式（直接修订 / 局部删减 / 局部补入 / 整条重写 / 仅批注）。

4. 交付与跟进
- 输出报告、沟通重点、谈判清单、复核要点。
- 若本轮任务由飞书或其他 IM 会话发起，且合同文件由该会话传入，默认沿原会话交付最终产物。

## 四、标准输出规范

### 4.1 风险清单字段

每个风险点建议采用以下字段输出：

- 风险名称
- 风险等级（P0/P1/P2）
- 风险后果
- 判别标准
- 推荐措辞
- 风险示例
- 法律依据
- 整改建议
- 相关条款

### 4.2 风险等级

- P0：可能影响效力、导致重大损失或重大争议。签署前优先处理。
- P1：会显著增加争议和履约成本。建议优先谈判修改。
- P2：表述或流程优化项。可结合时间窗口处理。

### 4.3 审查结论写法

结论应包含：

- 能否签：可签 / 有条件可签 / 不建议签。
- 先决事项：签署前必须完成的前置动作。
- 谈判优先级：P0 → P1 → P2。

### 4.4 起草输出写法

起草结果至少包含：

- 起草路由卡（主合同类型 + 配套协议类型 + 主文件 + 推荐交付包型 + 必带附件）
- 待补事实清单（缺失处统一标注“未提及/待补充”）
- 条款骨架
- 程序性前提（审批、备案、登记、生效、交割）
- 推荐措辞与需确认事项

## 五、合同类型覆盖（固定 12 类）

不扩展合同分类数量，优先在现有 12 类内完成全量抽取与深度补齐。

| 类别 | 路径 | 示例 |
|:---|:---|:---|
| 买卖合同 | `references/contract-types/01-sale/` | 动产买卖、二手房买卖、商品房买卖、经销买卖 |
| 租赁合同 | `references/contract-types/02-lease/` | 房产租赁、建筑设备租赁 |
| 服务类合同 | `references/contract-types/03-service/` | 一般服务、中介、仓储保管、承揽、物业、运输、行纪、广告 |
| 知识产权类合同 | `references/contract-types/04-ip/` | 软件许可、技术开发、商标许可、商标转让、专利、著作权 |
| 担保类合同 | `references/contract-types/05-guarantee/` | 保证、抵押、质押 |
| 借贷与赠与合同 | `references/contract-types/06-lending-gift/` | 民间借款、赠与 |
| 互联网协议 | `references/contract-types/07-internet/` | 用户许可协议、订单协议、隐私政策 |
| 婚姻家事类合同 | `references/contract-types/08-marriage-family/` | 夫妻财产约定、离婚协议、遗赠扶养协议 |
| 劳动用工类合同 | `references/contract-types/09-employment/` | 劳动合同、劳务派遣、外包、实习、返聘、非全日制、个人劳务 |
| 房地产类合同 | `references/contract-types/10-real-estate/` | 土地出让、土地转让、联建、委托代建 |
| 建设工程类合同 | `references/contract-types/11-construction/` | 施工、总承包、分包、勘察设计、监理 |
| 公司投资类合同 | `references/contract-types/12-corporate-investment/` | 出资、增资、投资、股东协议、股权转让、股权激励、合并分立、对赌 |

未单列的细分合同类型，统一按 `references/contract-routing.md` 归入既有 12 类，并同时用于审查路由和起草路由。

## 六、Reference 调用顺序

### 6.1 四层结构

- 基础规则层：`references/review-framework.md`
- 审查入口层：`references/priority-clauses.md`
- 展现策略层：`references/revision-strategy.md`
- 类型路由层：`references/contract-routing.md`
- 合同主文件层：`references/contract-types/01-sale/` 至 `references/contract-types/12-corporate-investment/`

### 6.2 推荐读取顺序

1. 已知合同标题，但不确定归类：
   先读 `references/review-framework.md`，再读 `references/contract-routing.md`，必要时用 `references/priority-clauses.md` 聚焦高风险条款，进入对应合同主文件完成细审后，再用 `references/revision-strategy.md` 决定落地动作。
2. 已知合同目录，但不确定是否有交叉问题：
   先读当前合同主文件；若存在混合交易，再回到映射清单做双标签复核。
3. 混合型交易或标题与实质不一致：
   一律先按交易实质而非标题归类，采用“主合同类型 + 配套协议类型”双标签。
4. 起草新合同：
   先用映射清单生成“起草路由卡”（主合同类型、主文件、推荐交付包型、必带附件、待确认问题），再用 `templates/合同起草信息清单.md` 固定文件包、待补事实和条款骨架。

### 6.3 维护规则

- `references/` 根层只保留高复用入口资料，不再拆出短小的导航或流程文件。
- 新增独立合同模板时，只能放入 `references/contract-types/` 下既有 12 类目录。
- 新出现的共性审查问题，优先吸收进 `references/review-framework.md` 或对应合同目录主文件。

## 七、模板

- 合同起草信息清单：`templates/合同起草信息清单.md`
- 条款库：`templates/条款库.md`
- 审查报告模板：`templates/审查报告模板.md`

`templates/合同起草信息清单.md` 的定位是“起草工作台”，用于把识别与分流文件产出的路由卡、文件包、程序性前提和待补事实先固定下来；`templates/条款库.md` 的定位是“起草支撑层”，不单独构成另一套 reference。起草时应先走 `references/review-framework.md`、`references/contract-routing.md`、`templates/合同起草信息清单.md` 和对应合同主文件，再从条款库抽取可复用措辞。当前条款库已补入文件优先级、验收、配合义务、条件成就、通知送达、责任限制、背景技术、里程碑、交割清单等首批高频结构条款，后续仍应继续从 12 类合同主文件中反向抽取公共条款。

## 八、文档操作（批注/修订/报告）

直接运行 `scripts/*.py` 或 `scripts/run_apply_review_plan.ps1` 前，先确认 `references/setup-dependencies.md` 中的运行前提已经满足。最小要求是：本机 Python 已安装 `defusedxml` 与 `lxml`。OOXML 打包、解包和校验功能已内嵌在 `scripts/docx/` 中，无需外部依赖。

### 8.1 处理流程

1. 一体化执行（推荐）：

```bash
python scripts/review/apply_review_plan.py \
  --input contract.docx \
  --plan review-plan.json \
  --output contract_reviewed.docx
```

执行后默认对外交付：

- `contract_reviewed.docx`（修订批注一体版）
- `contract_reviewed_审查报告.docx`

同时会在 `archive/<时间戳_合同名>/` 内部归档目录留存：

- `review-plan.json`
- `contract_reviewed_审查报告.md`
- `contract_reviewed_执行日志.json`
- 输出 DOCX、副本报告 DOCX 与 `manifest.json`

2. 底层 API（按需编排）：

```python
from scripts import ContractReviewer

reviewer = ContractReviewer("workspace/unpacked")
reviewer.add_comment_by_text("甲方承担全部责任", "P0：责任范围过宽，建议增加责任上限和例外")
reviewer.replace_text("五个工作日内付款", "十个工作日内付款", tag="w:r")
reviewer.save()
```

3. 计划格式与参数详见：`scripts/README.md`
4. 生成阶段可先执行计划补全：

```bash
python scripts/review/enrich_review_plan.py \
  --input review-plan.json \
  --output review-plan_enriched.json
```

用于自动补齐 `needs_negotiation` / `deterministic_edit`，再执行批注/修订。

5. 执行语义：

- 如果 `config/reviewer_profile.json` 不存在，或其中未填写审查人姓名 / 律所或公司名称，先向用户确认审查人姓名、律所/公司名称和可选部门；随后脚本会以 `config/reviewer_profile.example.json` 为模板生成正式配置并写回。
- 即使 `config/reviewer_profile.json` 中已有姓名 / 律所或公司名称，只要该配置尚未在当前环境完成确认，也要先向用户确认一次，再继续执行；不要直接沿用未确认的预填值。
- 如果用户未明确客户名称、审查立场或审查口径，先读取 `config/review_memory.json`；命中同名合同历史记录时默认沿用，未命中时在交互模式下询问“客户名称 + 立场 + 审查口径”，并以 `config/review_memory.example.json` 为模板生成正式记忆文件。
- 审查口径只用于控制风险识别与结论表达的强弱，不再直接映射正文落痕策略；“正文修订 / 就地批注 / 仅写入意见书”的自动分流应由独立 `edit_policy` 决定。
- 若存在未成功写入 Word 的审查项，命令仍会保留输出 DOCX、Word 报告和归档留痕，但会以非零退出码结束。
- 对外报告默认采用“审查意见书”体例：先写“致：收件方”开篇、合同概况、综合审查意见和重要风险提示，再按正式意见逐项展开，最后附声明与出具信息；执行命中率、失败项和内部统计默认只保留在归档中的 JSON 执行日志。
- Word 审查意见书默认采用正式法律文书版式：深蓝标题、仿宋正文、浅底元信息卡、棕色标签高亮和页脚页码，风格更接近律师服务方案/意见书出件。
- Word 审查意见书版式默认走更紧凑的正式件参数：页边距、行距、段距和详细意见表格内边距均已压缩，避免无效留白把全文页数拉长。
- Word 审查意见书中的无序列表与编号列表使用 OOXML 原生编号体系，避免层级和缩进显示漂移。
- “详细审查意见”在 Word 报告中默认按逐项表格展示，便于对照风险概述、原条款、建议修改和法律依据。
- “详细审查意见”表格默认采用更紧凑布局：标签列收窄、内容列加宽、单元格上下内边距归零，优先减少长条款换行。
- 默认交付模式下，用户目录只保留审核修订版 DOCX 与 Word 报告；Markdown 报告、执行日志和审查计划副本默认沉淀到 `archive/`。如需直接查看这些过程文件，可临时使用 `--no-archive` 调试。
- 对外交付的审核版 DOCX 默认采用“修订批注一体版”：确定性问题直接修订，留空项/事实待补项继续批注，重大直接修订保留必要解释性批注；程序优化型、说明型和低必要性问题默认仅写入审查意见书。
- 若本轮任务来自飞书或其他 IM 对话，且合同文件由该对话直接传入，默认交付通道为同一 IM 会话；最终应把审核修订版 DOCX 与审查报告 DOCX 直接回传到原对话，不只回复“文件已生成”或仅给本地路径。
- 若当前运行时暂不具备 IM 附件发送能力，应明确告知该限制，并保留好可发送的产物路径或文件对象，等待后续由具备发送能力的通道补发；不要把“未发送”误表述成“已交付”。
- 首次执行时，会优先读取 `config/reviewer_profile.json`；若尚无配置、缺少姓名/机构，或当前环境尚未确认过该身份配置，则在交互模式询问审查人姓名、律所/公司和可选部门，或在首次显式传入 `--author` 与 `--organization` 时按当前输入生成并保存。
- 该配置只保存在当前本地 skill 的 `config/` 目录，不会自动上传；后续可随时通过自然语言要求更新。
- `initials` 为可选项；若留空，不自动生成，也不写入 Word 批注。
- 写入 Word 的批注与修订时间线会先读取本机当前时区与本地时间，再以本次命令执行时点为起点按 5 到 10 分钟区间向后错开；`w:date` 使用本地时区格式写入，避免显示出错误时区或回写到运行前的时间戳。
- 时间线默认采用“两层错峰”：同一条审查意见内部，每个实际修订/批注批次默认顺延 `1-2` 分钟；不同审查意见之间继续保持 `5-10` 分钟的大间隔。
- Word 批注作者默认显示为 `姓名｜机构`；审查报告中的审查人、所属机构/公司和所属部门仍保持分项展示。
- 审查报告中的审查人、所属机构/公司和所属部门与上述本地配置保持一致。
- 若审查计划未显式提供 `comment`，默认按“风险等级 / 风险点 / 条款位置 / 说明 / 修改建议 / 可选建议措辞”的多行结构生成批注。
- 默认自动分流策略为更克制的 `revise-first`：只有高确定性、强落地性的审查项才优先直接修订；程序优化型、说明型和低必要性问题可改为批注或仅写入意见书。
- 在确定 `comment / delete / insert / replace` 前，应优先参照 `references/revision-strategy.md`：留空项、事实待补项和授权不明的商务取舍项默认只批注；准确的法条引用默认不因篇幅较长而删减；能局部删减或补入的，不要整段重写。
- 修订执行层已升级为“多段最小差异修订 + 审查密度收敛”：同一 `w:r` 内短语替换/删除优先落成局部 `w:del / w:ins`；目标跨多个 `w:r` 时，优先退到段落内片段修订；复杂长条款在存在多个稳定不变片段时，也应尽量拆成多组局部修订块，而不是继续压成一个大中段替换；若单一条款会炸出大量低价值的单字级差异，则自动并成更少的核心修订块。对于留空/占位项，即使上游误标为直接修订，也应回退为批注。

### 8.2 模式选择

- 对外交付模式：默认只采用“修订批注一体版”，不再要求用户在纯批注 / 纯修订 / 混合模式之间自行切换。
- 批注动作：用于风险提示、商务谈判建议、事实待确认、需保留弹性的场景，以及对重大直接修订补一层解释。
- 修订动作：默认优先模式，用于明显错误、术语统一、确定性替换，以及确有必要直接改文的风险整改。
- 仅意见书：用于程序优化型、说明型、低必要性或“提示即可、不必在 Word 页面留痕”的问题。

### 8.3 自动分流（`action=auto`）

- 默认采用 `revise-first` 策略；可通过 `--edit-policy revise-first|balanced|comment-first` 或计划中的 `meta.edit_policy` 覆盖。
- `edit_policy` 与审查口径独立：即便本轮口径选择 `克制`，对确定性问题仍可直接修订；不要再把“口径低”机械等同于“只批注、不改文”。
- 当审查项含“谈判/待确认/保留弹性”等特征时，自动按批注处理。
- 当审查项含确定性改动特征（如笔误修正、术语统一）且提供改文载荷时，自动按修订处理。
- 当审查项属于程序优化型、说明型、低必要性建议时，可自动走“仅意见书”通道，不写入 Word 正文。
- 在 `revise-first` 下，若未显式提供 `replacement_text`，但已提供可直接落文的 `recommended_text`，系统会先判断该问题是否值得直接入正文；只有通过收束规则后，才会将其作为替换文本执行直接修订。
- 显式动作（`comment/delete/insert/replace`）优先于自动分流。
- 若未显式提供 `needs_negotiation` / `deterministic_edit`，脚本会在加载计划时自动补全（可通过 `--no-enrich-plan` 关闭）。

## 九、标准审查流程

### 9.1 启动阶段

- 必问信息：
  我方代表哪一方；本轮目标是“签约前把关”还是“谈判修订”；截止时间和优先级；是否允许重构交易结构，还是只改文本。
- 首次使用校验：
  若 `config/reviewer_profile.json` 缺少审查人姓名或所属机构/公司，或当前环境尚未确认过该身份配置，先提醒用户补录或确认审查人姓名、律所/公司名称和可选部门，并说明该配置只保存在本地、后续可随时通过自然语言修改。
- 输入材料清单：
  合同正文和附件；背景资料；主体资料。
- 输出约定：
  修订批注一体版文档 / 审查意见书；风险分级统一为 P0/P1/P2。
- 渠道约定：
  若合同文件由飞书或其他 IM 会话传入，默认把该会话视为任务布置与成果回传的同一渠道；除非用户明确改口到邮箱、云盘或其他位置，否则最终仍回原对话发送文件。

### 9.2 分层扫描阶段

- 宏观层：合同类型、主体资格、标的合法性、审批/备案/登记/内部决议、付款交付担保退出闭环。
- 中观层：合同形式是否匹配阶段、主合同与附件/订单/规则文件是否冲突、格式条款与优先级是否明确。
- 微观层：核心条款齐全性、权利义务平衡性、违约解除可执行性、争议解决和通知送达可举证性。

### 9.3 风险处理阶段

- 风险排序：
  P0 必须处理；P1 优先谈判；P2 优化项。
- 每个风险点至少输出：
  风险后果、判别标准、推荐措辞、整改建议。
- 默认执行口径：
  若已经能形成明确条款文本，优先直接修改正文；只有涉及商务谈判、事实缺口或需保留弹性时，才改为批注提示。
- 修订细度口径：
  优先局部删减、局部补入和局部替换；仅在原条款整体逻辑失效、局部动作无法修复时，才整条重写。
- 重大修订解释口径：
  对 P0 / P1 的重大直接修订，原则上保留简短批注说明修改原因；纯格式、编号、标点和错别字问题通常只改文，不再打扰阅读。
- 优先谈判顺序：
  效力与程序 -> 资金与交付 -> 救济与退出 -> 文本优化。

### 9.4 交付阶段

- 最终交付物：
  风险汇总表、关键条款修改建议、签署前先决事项清单、二次复核问题列表。
- 文件交付物：
  审核修订版 DOCX、审查报告 DOCX。
- IM 回传口径：
  若任务来自飞书或其他 IM 渠道，默认在原对话框回传上述两个文件；如运行时不具备发附件能力，需明确说明“文件已生成但尚未完成会话回传”。
- 结论模板：
  可签 / 有条件可签 / 不建议签 + 前提条件 + 主要保留意见。

### 9.5 复核与常见失误

- 对方反馈后，核对是否引入新冲突。
- 版本迭代时，重点检查被改条款的连带影响。
- 最终签署版再做一次快检。
- 常见失误：
  只改措辞，不修交易结构；只看正文，不看附件与订单；只看我方义务，不看对方救济；只做风险提示，不给可执行替代方案。

## 十、标准起草流程

### 10.1 起草启动阶段

- 必问信息：
  我方代表哪一方；交易目标；本次输出是完整合同、框架协议、补充协议还是条款清单；是否存在混合交易；截止时间。
- 先做路由：
  先读 `references/contract-routing.md`，确定主合同类型、配套协议类型、推荐交付包型和必带附件，并先产出“起草路由卡”。
- 先建清单：
  使用 `templates/合同起草信息清单.md` 记录文件包、主体、交易结构、程序性前提和缺失事实。

### 10.2 骨架搭建阶段

- 先按 `references/review-framework.md` 检查宏观 / 中观 / 微观三层是否完整。
- 先按映射清单给出的“优先主文件 + 骨架顺序 + 必带附件”搭起文件包，不要直接跳到正文措辞。
- 再进入对应合同主文件，提取该类合同的专属条款、风险点和推荐措辞。
- 混合型交易一律拆成“主合同条款 + 配套协议条款”，避免把不同法律关系硬塞进一份文本。

### 10.3 条款填充阶段

- 先填关键商业事实，再写措辞；缺失处统一标注“未提及/待补充”。
- 程序性事项必须写清责任主体、完成时间和未完成后果。
- `templates/条款库.md` 仅用于补充通用候选措辞，不代替主文件确定条款结构。

### 10.4 交付阶段

- 至少输出：
  起草路由卡、合同草案 / 条款骨架、待确认问题表、程序性前提清单。
- 如无法一次起草完整文本：
  先输出路由卡、条款清单和需补事实，不用臆造商业安排把草案“写满”。

## 十一、合规要求

- 不在技能文档或参考文件中标注外部资料的具体出处。
- 不使用外部资料中的专有命名作为技能主框架名称。
- 仅保留可公开表达的审查理念、结构和实务规则。
- 无法确认的信息明确标注“未提及/待补充”。

## 十二、版本

- 当前版本：`1.5.1`
- 更新日期：`2026-04-19`
