Files
hermes-skills/skills/legal/contract-pass-workflow/references/companion-cleanup-proposal.md
T

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 决策后实施