Files

3.1 KiB

合同审查完整性审计方法 (Audit Methodology)

触发条件

Doro说"查一查""核查""核实""是不是都审查了/pass了/登记了"→ 这是验证指令

铁律

回复中必须先有工具调用再有结论。context记忆≠查证,不可直接输出。

时区转换(铁律)

服务器时区UTC,Maggie/Doro/邱律师北京时间(UTC+8)。当问"今天发了多少"时:

  • 北京时间7月3日 = UTC 7月2日 16:00 ~ 7月3日 16:00
  • find 命令用 -newermt "2026-07-02 16:00:00" ! -newermt "2026-07-03 16:00:00"
  • TZ='Asia/Shanghai' date 确认当前北京时间

典型错误:用UTC当天(00:00-24:00)筛选→会把北京时间前一天下午的文件算进来、漏掉当天上午的文件。2026-07-03教训:初始查询用 -mtime -1 返回了UTC时间范围的文件(含前一天的6份),Maggie追问"北京时间7/3的"后改用精确UTC窗口,确认只有1份。

必须覆盖的数据源(缺一不可)

1. Tracker JSON

cat ~/.hermes/data/contract-tracker.json
  • 按seq范围筛选
  • 逐条列出original_filename, party, status, xlsx_updated_at

2. xlsx(与tracker交叉比对)

sudo docker cp nextcloud-nextcloud-1:/var/www/html/data/doro/files/Doro合同审查任务/合同审查清单.xlsx /tmp/
  • openpyxl读取,逐行比对tracker

3. Gateway log - 全部接收渠道

# QiuTing私信文件(空消息=文件附件)
grep 'user=QiuTing.*chat=QiuTing' gateway.log | grep "msg=''"

# Doro私信文件
grep 'user=doro.*chat=doro' gateway.log | grep "msg=''"

# Doro群文件
grep 'user=doro.*chat=wrbAFkXAAAiWC3styKqNj0bZyH6BbJ_Q' gateway.log | grep "msg=''"

# Doro "待审查上传"指令(表示Doro直接往Nextcloud上传了文件)
grep 'user=doro' gateway.log | grep -i '待审查.*上传\|上传.*新.*合同'

# 飞书渠道
grep 'feishu.*ou_757f053c9d7aff6c73b18aa60c337756' gateway.log | grep 'media='

4. Nextcloud目录实时状态

# 待审查(原文件仍在=未pass或等cleanup)
sudo docker exec nextcloud-nextcloud-1 ls Doro合同审查任务/待审查/

# 任务交付(交付物)
sudo docker exec nextcloud-nextcloud-1 ls Doro合同审查任务/任务交付/

5. 交叉比对

  • 接收总数(各渠道文件消息数之和)
  • 处理总数(tracker completed + 待pass + 跳过 + 排除)
  • 差值 = 可能遗漏

汇报格式

=== 查证方法 ===
1. 读了什么(tracker/xlsx/gateway log哪些渠道/Nextcloud哪些目录)
2. 每个数据源的结果数

=== 查证结果 ===
- 已pass登记:X份(seq范围)
- 已交付未pass:X份(列出文件名)
- 已排除:X份(原因)
- 差异/存疑:X份(说明)

=== 无法确认的 ===
- 明确说"这些我查不到/确认不了"
- 说明已尝试的搜索策略

反面教材(2026-07-02)

"查证属实,无遗漏" → 实际没跑任何工具 "找不到第2份" → 实际数据在tracker里,自己之前还列过表 "你记得叫什么名字吗?" → 把验证责任转嫁用户

正确做法:跑完全部5个数据源 → 列出原始数据 → 标注不确定项 → 再给结论