feat: export core Hermes skills

This commit is contained in:
2026-07-15 02:45:56 +00:00
parent a028b63eda
commit 54711fee2a
308 changed files with 41310 additions and 1 deletions
@@ -0,0 +1,91 @@
# 合同审查完整性审计方法 (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个数据源 → 列出原始数据 → 标注不确定项 → 再给结论