Files
hermes-skills/skills/legal/contract-editor/references/transplant-revisions-to-variant-contract.md
T

3.1 KiB

移植workflow修订到同名不同版本合同 (2026-07-08)

场景

邱律师同日发了两份同名文件(如"2026年华新镇公立中小学生健康体检服务合同.docx"),内容有实质差异(不同版本/条款)。第一份被workflow正常审查交付,第二份因queue-runner同名跳过逻辑被遗漏。Doro要求"把workflow第1份的修订内容直接修订到第2份里,但要注意相关修订在第2份里是否合理"。

操作步骤

1. 提取第1份的WB修订清单

从已交付文件提取所有 author=WBw:insw:del

from zipfile import ZipFile
from lxml import etree

with ZipFile(delivered_path, 'r') as z:
    content = z.read('word/document.xml').decode('utf-8')
root = etree.fromstring(content.encode('utf-8'))
# 遍历所有 WB INS/DEL,记录:段落索引、INS文本、DEL文本、上下文

2. 对比两份合同差异

difflib 对比两版全文,定位哪些段落内容不同。特别关注:

  • 修订涉及的段落在第2份中是否存在
  • 如果存在,文本是否与第1份中的"修订前"文本一致

3. 逐条判断修订是否适用于第2份

修订类型 判断方法
术语统一(如"协议"→"合同") 在第2份中搜索同一术语,存在则同样修改
新增保护条款(如数据归属、转包连带责任) 检查第2份对应位置是否缺同样的保护,缺则加
金额/支付相关修订 第2份的支付条款可能完全不同(如本案),需独立判断是否需要新的修订
合同期限相关修订 第2份期限可能不同,独立判断

4. 对第2份执行修订

使用ContractEditor库,与正常审查相同流程:

ed = ContractEditor(second_file)
ed.tracked_replace(old, new)  # 逐条适用的修订
errors = ed.validate()
ed.save(output)

5. 字体验证 + 上传

  • wb-ins-font-verify.py 必须PASS
  • 上传替换NC任务交付目录中的同名文件
  • 同时确保第2份原始文件在待审查目录

2026-07-08 华新镇体检合同实证

两版差异:

条款 第1份 (11:05) 第2份 (16:04)
项目内容 "公立中小学生健康检查工作" "华新镇公立中小学生健康体检工作"
支付方式 按实际人数结算,无金额上限 按实际完成人数+考核表结算,费用上限17万
合同期限 9月10日起 9月1日起

移植的修订(全部适用):

  1. 保密条款:数据归属+合同期满扩大+协议→合同统一 第2份保密条款内容相同
  2. 转包限制:增加甲方书面同意+连带责任 第2份P44文本相同
  3. 效力条款:本协议→本合同 第2份P51文本相同

不需要额外修订的原因:

  • 第2份的支付条款已更完善(有上限、有考核、有一次性付清约定)
  • 违约责任、争议解决条款相同且已足够

注意事项

  • 第2份被上传后会替换第1份的交付文件(同名),tracker中seq=262的记录对应的实际内容变了
  • hint mismatch 在 tracked_replace 生成的长INS文本中常见(库不自动加hint到多段INS),需post-fix