Files

37 lines
1.9 KiB
Markdown

# 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 时,扫描 `任务交付/` 目录,找到与主合同同目录且包含"审查意见"/"合同流程单"的文件,写入:
```json
"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 决策后实施