# Contract Copilot

> 合同起草与审查助手。基于分层分析与四步流程，输出可执行的风险清单、起草骨架、修改建议、推荐措辞和审查意见书，支持批注与修订两种文档处理方式。用户通过飞书或其他 IM 对话发送合同文件并要求审查或起草时，也应使用本 skill，并优先沿原会话回传修订版和审查报告。

- Skill: `cslawyer1985/contract-copilot` (Agent Skill, multi-file: 100 files)
- Install (CLI): `npx skillmds@latest add cslawyer1985/contract-copilot`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cslawyer1985/contract-copilot/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: CC-BY-NC
- Author: cslawyer1985 (https://skillmd.com/u/cslawyer1985)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cslawyer1985/contract-copilot

---


# Contract Copilot（合同助手）

## 一、定位

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

### 1.1 强制文件交付规则

当用户提供或通过会话传入 DOCX 合同文件，并提出“审查、审核、修改、批注、修订、出审查意见、帮我看合同”等合同审查类请求时，默认必须走文件交付链路：

1. 先完成必要澄清与分层审查。
2. 将审查结论整理为 `review-plan.json`。
3. 运行 `scripts/review/apply_review_plan.py` 或 `scripts/run_apply_review_plan.ps1`。
4. 对外交付审核修订版 DOCX 与 Word 审查意见书 DOCX。

不得仅输出文字版风险清单、审查摘要或聊天回复来替代文件交付，除非出现以下情形之一：

- 用户明确表示“只要文字意见 / 不需要 Word 文件 / 不需要批注修订版”。
- 当前没有可访问的 DOCX 合同文件，且用户暂未补充文件。
- 缺少审查人身份、客户名称、审查立场或审查口径等必需信息，且无法从本地记忆或用户回复中确认。
- 当前运行环境无法写入文件、无法运行脚本或无法回传附件。

出现例外时，必须明确说明阻塞原因，并告诉用户补齐哪些条件后可以继续生成 Word 文件。若文件已生成但暂时无法回传附件，应保留产物路径或文件对象，并明确说明“已生成但尚未完成会话回传”。

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

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

## 二、核心理念

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

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

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

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

### 3.1 三层分析

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

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

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

### 3.2 四步流程

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

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

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

4. 交付与跟进
- 输出报告、沟通重点、谈判清单、复核要点。
- 若本轮任务由飞书或其他 IM 会话发起，且合同文件由该会话传入，默认沿原会话交付最终产物。
- 对 DOCX 合同审查任务，最终产物默认是审核修订版 DOCX 与 Word 审查意见书 DOCX；仅文字输出不视为完成。

## 四、标准输出规范

### 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` 使用本地时区格式写入，扩展 UTC 字段使用同一时点的 UTC 格式，避免显示出错误时区或回写到运行前的时间戳。
- 时间线默认采用“两层错峰”：同一条审查意见内部，每个实际修订/批注批次默认顺延 `1-2` 分钟；不同审查意见之间继续保持 `5-10` 分钟的大间隔。
- Word 批注作者默认显示为 `姓名｜机构`；审查报告中的审查人、�
