chenqg618

contract-comparison-free

把同一模板下签的多份合同摆在一起,按「第X条」切开并按条款标题对齐,找出缺条与条款正文差异,每条结论都带条款名与各方原文,不需要付款,也不需要注册。本免费版执行 条款切分与横向对齐、缺条/多条、条款正文不一致(各版本摘要)、条款对照表。触发词包括 合同比对、多份合同、条款差异、合同模板被改、违约金不一致、管辖地不一致、合同审查、合同会签、内审。

chenqg618 0 Updated 1mo ago

Resources

2
GitHub

Install

npx skillscat add chenqg618/compliance-skills/contract-comparison-free

Install via the SkillsCat registry.

SKILL.md

多份合同条款差异比对(免费)

一句话:把同一模板下签的多份合同摆在一起逐条对齐 —— 不需要付款,也不需要注册。

完全免费:不需要付款、不需要注册、不需要配置任何 API Key,直接调用即可。

不想安装也能用:同一个检查有网页版,免注册、免付款 —— https://www.tokendidi.cn/check

什么时候用

  • 按同一个模板签了一叠合同,想确认有没有哪一份被单独改过一条
  • 想知道哪一份少了哪一条(例如少了整条保密义务)
  • 想知道同一条款在不同合同里有几个版本、分别是哪几份

这个免费版查什么

# 检查项
1 条款切分与横向对齐:把每份合同按「第X条」切开,按条款标题对齐
2 缺条 / 多条:某份合同少了或多了哪一条
3 条款正文不一致:同一条的各版本摘要与涉及哪几份
4 条款对照表:每条被几份覆盖、有几份不同版本

对齐按标题、不按编号 —— 某一份中间多了一条时,后面的编号会整体错位,
按编号对齐会报出一堆假差异。标题写法略有不同不会误报(「违约责任」与「违约责任与赔偿」会被认成同一条)。

怎么用

node scripts/run.mjs --sample
node scripts/run.mjs --input my-contracts.json
node scripts/run.mjs --input my-contracts.json --json

入参两种写法,任选:

{ "contracts": [
    { "name": "合同A", "text": "第三条 服务期限\n本协议自 2026年3月1日 起生效…" },
    { "name": "合同B", "text": "第三条 服务期限\n本协议自 2026年3月1日 起生效…" }
  ] }

或者直接给纯文本:每份合同用单独一行「合同一」「合同二」这样的分节标题开头(也可以空行分隔):

合同一
技术服务合同

第三条 服务期限
本协议自 2026年3月1日 起生效,至 2027年2月28日 止。

合同二
技术服务合同

第三条 服务期限
本协议自 2026年3月1日 起生效,至 2027年2月28日 止。

退出码

码 含义
0 已执行检查
1 没给入参
3 材料不足 —— 此时不给结论(既不说"一致",也不说"不一致")
4 入参文件读不到或无法解析
9 未预期错误

这个免费版不包含

以下检查项不在本版本范围内,调用时也不会执行:

  • 关键字段跨合同对比(合同金额 / 违约金比例 / 预付款比例 / 争议解决 / 合同期限)
  • 日期逻辑(签订日 ≤ 生效日 ≤ 到期日)
  • 模板占位符残留(【填写…】 / XXX / TBD)
  • 合同金额大小写是否一致

边界(请务必知道)

  • 本工具只做AI比对,不判断哪一份条款对甲方/乙方更有利,也不给法律意见;
  • 不认定条款是否有效、是否违法;
  • 不核对签署人权限、印章真伪或签署流程;
  • 不做"语义等价"判断:用词相近但法律含义不同的条款,本工具按文本差异如实报出;
  • 「没报问题」不等于「没有问题」:超出上述四类的检查,本版本不执行;
  • 材料不足时不给结论,也不会用默认值编一个「一致」出来;
  • 不联网、不外发材料、不调用任何模型。

输出示例

[P1] 缺条
条款「保密义务」有 1 份合同写了、1 份没有:合同一。
建议:同一模板下的合同条款应当一致;请确认是遗漏、是被删掉,还是这一份本来就另用模板。

[P1] 条款正文不一致
条款「违约责任」在 2 份合同里有 2 个不同版本:
1 份写的是「第八条 违约责任 任何一方违约,应向对方支付合同总金额 5% 的违约金。」;
1 份写的是「第八条 违约责任 任何一方违约,应向对方支付合同总金额 2% 的违约金。」。