1.9 KiB
Companion 文件清理方案(待 WeiWei 决策)
问题
contract-cleanup.py 只删 tracker 里 original_filename / converted_filename / delivered_filename 三个字段精确匹配的文件。companion 文件(审查意见、合同流程单)从不进 tracker → 主合同被清理后 companion 成孤儿,永远残留。
方案 A:tracker 增加 companion_files 字段(推荐)
改动1:pass workflow(skill contract-pass-workflow)
步骤1写 tracker 时,扫描 任务交付/ 目录,找到与主合同同目录且包含"审查意见"/"合同流程单"的文件,写入:
"companion_files": ["【审】购销合同 审查意见.docx", "【审】合同流程单-xxx.xlsx"]
改动2:cleanup 脚本(~/.hermes/scripts/contract-cleanup.py)
删主合同时,读 companion_files 字段,逐个 docker exec rm。
优点:精确匹配,不误删。 缺点:需改两处(skill + 脚本)。旧记录无此字段,但不影响——旧 companion 已手动清理或无价值。
方案 B:cleanup 按 stem 模糊匹配
改动:仅 cleanup 脚本
删主合同时,取 delivered_filename 的 stem(去扩展名),在 任务交付/ 目录找 *{stem}*审查意见* / *{stem}*合同流程单* 一并删除。
优点:只改一处。 缺点:模糊匹配有误删风险(如两个合同名相近)。
附加修复:.doc 原始文件残留
问题:tracker 的 original_filename 有时记录了 .docx(转换后文件名)而非 .doc(真正的原始文件),cleanup 按 .docx 去删找不到 .doc → 残留。
修复:cleanup 脚本删 original_filename 时,如果文件不存在,尝试换扩展名(.doc ↔ .docx)再找一次。兜底逻辑,不影响正常流程。
状态
- 2026-06-29:方案已提出,Doro 未授权执行
- 需 WeiWei 决策后实施