---
name: updown-contract-compare
description: 对比同一项目下上游合同与下游合同的关键商务与履行条款，输出 Markdown 对比报告 + Excel 对比表，并针对上下游差异给出资金、税务、责任与验收风险提示。当用户要求对比「同一个/同一标段的上下游合同」「甲方合同 vs 乙方/分包合同」「背靠背合同对比」「合同条款横向对照」，并涉及合同工作量、金额、税率、付款条件、付款进度与周期、合同周期、质保金、维保要求、验收要求、责任承诺等维度时使用。输入可以是甲方/上游合同与乙方/下游合同两份文档（Word/PDF），也可以是已整理好的合同信息表格或结构化文本；输出为逐项对比的 Excel 对比表（.xlsx）与 Markdown 对比报告，附差异分析和风险提示。用户在核对同一项目的上游收款/下游付款是否匹配、金额或税率是否倒挂、质保期与维保责任是否对应、付款周期和验收要求是否衔接时，都应使用此技能，即使用户没有明确说出「技能」二字。
compatibility: 需要 read_document（解析 .docx/.pdf 合同原文）与 openpyxl（经 scripts/build_excel.py 生成 .xlsx）
metadata:
  version: 1.1.0
---


# 同一项目上下游合同对比

把**同一个项目**的两份合同（上游/甲方合同 与 下游/乙方或分包合同）放在一起，逐一抽取并横向对比它们在商务和履行条款上的异同，识别两头不对应带来的资金、成本、责任与验收风险。产出两份交付物：**Markdown 对比报告**（可直接阅读、含风险提示）与 **Excel 对比表**（便于筛选与留档）。

## 何时使用

- 用户要求对比同一项目的上下游合同、甲方与乙方合同、主合同与分包合同、中标合同与转包/背靠背合同。
- 用户关心两者的金额、税率、付款、周期、质保、维保、验收、工作量、承诺与责任是否对应。
- 无论输入是合同文档还是已整理的表格/文本，只要目标是「同一项目上下游横向对比」，就使用本技能。

## 输入

本技能接受两类输入，可单独或混合出现：

1. **合同文档**：上游合同与下游合同的 `.docx` / `.pdf` 文件（路径或内容）。
2. **结构化数据**：已抽取好的合同信息表格（Excel/CSV）或结构化文本片段，描述各合同的字段值。

若输入是文档，先用 `read_document` 转换为 Markdown/文本后再处理；遇到扫描件（无文本层）时告知用户需要使用 OCR/视觉识别，不要反复猜测。

## 核心流程

1. **确认对比对象与角色**
   - 确定哪份是上游（甲方/业主/总包收钱方）合同、哪份是下游（乙方/分包/供应商付款方）合同。
   - 明确本项目名称、合同编号，确认二者确实属于同一项目；若无法判断，把「待确认」写入结果并提示。
   - 明确我方立场（作为上游还是下游），影响风险角度。

2. **逐维抽取关键事实**（对照 `references/dimensions.md` 的字段口径抽取，不要漏项）
   - 必备维度：合同工作量、合同金额、合同税率、付款条件、付款进度与周期、合同周期、质保金、维保要求、验收要求。
   - 法务补充维度（当合同内容包含或用户关注时）：责任与承诺、违约赔偿、保证/担保期限、争议解决与管辖。
   - 抽取时记录**出处**（章节/条款号），没有原文依据的不得当作确定事实；有歧义标记为「需人工复核」。

3. **逐项横向对比**（对照 `references/dimensions.md` 的对比口径）
   - 每个维度输出：上游值、下游值、是否一致、差异类型（金额/比例/期限/条件）、风险提示。
   - 关键交叉检查：
     - **金额**：下游合同金额与上游是否倒挂或明显不匹配（下游 > 上游成本覆盖）。
     - **税率**：上下游税率是否一致，税率差是否会造成进项/销项不匹配。
     - **付款节奏**：上游付款节点/周期 vs 下游付款节点/周期——是否「上游收款晚、下游付款早」导致垫资或现金流风险。
     - **质保期**：上游要求的质保期是否长于下游可承担的质保期，或质保金比例不衔接。
     - **维保责任**：上下游维保范围、期限、费用承担是否对得上；下游承诺是否足以覆盖上游要求。
     - **验收标准**：上下游验收标准、验收条件、验收签字流程是否一致或可衔接。
     - **工作量/范围**：下游范围能否覆盖上游要求，缺项或增项会带来变更风险。
     - **责任传递**：下游承诺/赔偿与其收到的上游责任要求是否可传递、是否有不得转嫁条款。

4. **定位风险并给出提示**
   - 对每一处差异，对照 `references/risk-catalog.md` 判断风险性质（责任传递断链、付款错位/垫资、税率陷阱、验收不闭合、维保不闭合、质保金差异、工作量/金额不闭合、工期错位等）。
   - 每条风险用「差异点 + 后果 + 建议」一句话表达，指出可执行动作。只有差异确实构成风险才提示，口径不同但业务上自洽的不算风险。

5. **生成两份输出**（详见下方「输出」）
   - Markdown 对比报告（按 `references/output_template.md` 的「Markdown 报告」模板）。
   - Excel 对比表，用 `scripts/build_excel.py` 从结构化 JSON 生成（不必手工拼 xlsx）。

6. **复核**：核对所有数字、日期、比例的来源；金额是否含税、币种是否一致；存在无法确认项时如实标注。

## 输出

本技能标准产出**两份交付物**：

**A. Markdown 对比报告**：按 `references/output_template.md` 中「Markdown 报告结构」模板输出，包含：合同链条说明、逐字段横向对比表（可读表格）、逐条差异与风险提示、「总体结论」摘要。适合快速阅读与汇报。

**B. Excel 对比表（.xlsx）**：用 `scripts/build_excel.py` 生成。工作板块规划如下（可用多个 sheet）：
- **对比总表**：行=对比维度，列=「上游合同」、「下游合同」、「一致/差异」、「差异类型」、「风险提示」。这是核心交付物。
- **合同概况**：项目、合同编号、双方主体、合同类型、签订日期、合同周期、总金额等基础信息对照。
- **明细与证据**：关键条款原文摘录及出处（上游/下游分开列出），便于溯源。
- **风险清单**：识别出的资金、成本、责任、税务、验收等风险点，每条含风险描述、影响、建议。

单元格内容用简洁中文；数值型字段尽量保留原始单位与含税标记（如「1,200,000（含税）」）。对不一致项可给单元格/行加背景色突出可参照 `references/output_template.md` 的样式建议（build_excel.py 已内置「字段对比」与「风险提示」两个 sheet 的基础样式）。

**Excel 生成方法**：先按 `references/dimensions.md` 末尾的 schema 组织好「字段对比 JSON」，再执行：

```bash
python scripts/build_excel.py <字段对比 JSON> <输出 .xlsx 路径>
```

## 判断口径与边界

- 本技能做事实抽取、横向对比与风险提示，**不下最终签署/可签不可签的商业结论**。
- 不能用猜测填补原文未写的内容；缺少字段就标「未在合同中体现」。
- 金额、税率、日期要核对来源，不凭空换算；换算时注明假设。
- 区分「无此项」与「此项为 0」。
- 存在多份合同或附件时，说明以哪份为准。

## 遇到异常

- 文档无法解析/扫描件 → 告知需 OCR/视觉识别，不猜测内容。
- 难以判断是否同一项目或角色 → 结果中标注「待确认」并提示需要哪些信息。
- 数据缺失影响核心对比 → 在风险清单里标注「信息缺失，需补齐」。
