92 lines
3.1 KiB
Markdown
92 lines
3.1 KiB
Markdown
# 合同审查完整性审计方法 (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
|
|
```bash
|
|
cat ~/.hermes/data/contract-tracker.json
|
|
```
|
|
- 按seq范围筛选
|
|
- 逐条列出original_filename, party, status, xlsx_updated_at
|
|
|
|
### 2. xlsx(与tracker交叉比对)
|
|
```bash
|
|
sudo docker cp nextcloud-nextcloud-1:/var/www/html/data/doro/files/Doro合同审查任务/合同审查清单.xlsx /tmp/
|
|
```
|
|
- openpyxl读取,逐行比对tracker
|
|
|
|
### 3. Gateway log - 全部接收渠道
|
|
```bash
|
|
# 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目录实时状态
|
|
```bash
|
|
# 待审查(原文件仍在=未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个数据源 → 列出原始数据 → 标注不确定项 → 再给结论
|