37 lines
1.9 KiB
Markdown
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 决策后实施
|