feat: export core Hermes skills

This commit is contained in:
2026-07-15 02:45:56 +00:00
parent a028b63eda
commit 54711fee2a
308 changed files with 41310 additions and 1 deletions
@@ -0,0 +1,67 @@
# 移植workflow修订到同名不同版本合同 (2026-07-08)
## 场景
邱律师同日发了两份同名文件(如"2026年华新镇公立中小学生健康体检服务合同.docx"),内容有实质差异(不同版本/条款)。第一份被workflow正常审查交付,第二份因queue-runner同名跳过逻辑被遗漏。Doro要求"把workflow第1份的修订内容直接修订到第2份里,但要注意相关修订在第2份里是否合理"。
## 操作步骤
### 1. 提取第1份的WB修订清单
从已交付文件提取所有 `author=WB``w:ins``w:del`
```python
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库,与正常审查相同流程:
```python
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