# Classifier甲方误判——手动修复流程 ## 背景 2026-06-11,智慧医院云项目监理服务合同。甲方"上海市青浦区卫生健康事业发展中心"(名单#17)被classifier误判为"朱家角镇社区卫生服务中心"(因文件在同批朱家角合同中处理,classifier从上下文路径推断了错误的顾问单位)。 ## 错误交付物 1. 修订合同中甲方名称处有不应有的批注"请确认名称是否准确" 2. 多交付了一个不属于该顾问单位的"审查意见"文件 ## 手动修复步骤 ### 1. 删除修订合同中的错误批注 ```python from docx import Document from docx.oxml.ns import qn doc = Document('delivered.docx') # 删除comment本身(comments part) for rel in doc.part.rels.values(): if "comments" in rel.reltype: comments_xml = rel.target_part._element for comment in comments_xml.findall(qn('w:comment')): cid = comment.get(qn('w:id')) # 只删除错误的批注(按id或内容判断) text = ''.join(t.text for t in comment.iter(qn('w:t')) if t.text) if '请确认名称是否准确' in text: comments_xml.remove(comment) # 删除文档中对应的anchor元素 body = doc.element.body for tag in ['w:commentRangeStart', 'w:commentRangeEnd']: for elem in body.findall('.//' + qn(tag)): if elem.get(qn('w:id')) == target_id: elem.getparent().remove(elem) # 删除commentReference(在run中) for ref in body.findall('.//' + qn('w:commentReference')): if ref.get(qn('w:id')) == target_id: run = ref.getparent() run.getparent().remove(run) doc.save('delivered_fixed.docx') ``` ### 2. 删除多余的审查意见文件 如果审查意见文件不应存在(顾问单位没有审查意见的需要): ```bash sudo docker exec nextcloud-nextcloud-1 rm "/var/www/html/data/doro/files/Doro合同审查任务/任务交付/XXX-审查意见.docx" ``` 如果审查意见表格中有多余行(如"甲方名称"行): ```python from docx import Document from docx.oxml.ns import qn doc = Document('opinion.docx') table = doc.tables[0] tbl = table._tbl # 删除index=1的行("甲方名称"行) tr_to_remove = tbl.findall(qn('w:tr'))[1] tbl.remove(tr_to_remove) doc.save('opinion_fixed.docx') ``` ### 3. 重新上传 + 清缓存 ```bash # 上传修复后的文件 sudo docker cp fixed.docx nextcloud-nextcloud-1:/path/to/任务交付/filename.docx sudo docker exec nextcloud-nextcloud-1 chown www-data:www-data /path/to/file # scan + 清OnlyOffice缓存 sudo docker exec -u www-data nextcloud-nextcloud-1 php occ files:scan --path="doro/files/Doro合同审查任务/任务交付" sudo docker exec nextcloud-onlyoffice-1 bash -c 'rm -rf /var/lib/onlyoffice/documentserver/App_Data/cache/files/data/*' sudo docker restart nextcloud-onlyoffice-1 ``` ## Workflow根因修复(已于2026-06-11执行) 三处修改防止复发: 1. `~/.hermes/workflows/review-contract.yaml` classifier step 5: 匹配必须以合同正文主体名称为准 2. `review-contract.yaml` classifier step 7: 删除路径推断逻辑和contract_summary注入指令 3. `review-rules.md` 主体条款: reviewer独立核验,不完全信任classifier