# Contract Processing Completeness Audit

When asked "have all contracts been reviewed/registered" for a date range, follow this exhaustive verification method. Do NOT answer from memory — every claim must be tool-verified.

## Input Channels to Check (ALL of these)

1. **QiuTing private messages** — gateway.log `user=QiuTing chat=QiuTing msg=''` (empty msg = file)
2. **Doro private messages** — gateway.log `user=doro chat=doro msg=''` (empty msg = file)
3. **Doro group messages** — gateway.log `user=doro chat=wrbAFkXAAAiWC3styKqNj0bZyH6BbJ_Q msg=''`
4. **Feishu messages** — gateway.log feishu platform entries with `media=` indicators
5. **Direct Nextcloud uploads** — Doro uploads directly to 待审查/ without going through gateway (indicated by Doro saying "待审查里上传了新合同" without a preceding file message)

## Cross-Reference Procedure

```
Step 1: Count ALL file-receive events per channel in date range (gateway.log grep)
Step 2: Read tracker JSON — list all entries in date range by seq
Step 3: Read xlsx — verify 1:1 match with tracker
Step 4: Check 待审查/ directory for unprocessed files
Step 5: Check 任务交付/ for delivered but un-tracked files
Step 6: Reconcile: total received (Step 1) vs total tracked (Step 2)
        Account for: duplicates (Doro said "重复了 不用审了"), non-contracts (excluded), 
        multi-file batches, files awaiting pass
```

## Critical Rule

**Never say "查证属实无遗漏" unless ALL channels have been checked and reconciled.** If a channel cannot be fully verified (e.g., log doesn't record filenames for empty messages), state the uncertainty explicitly.

## Pitfalls (from 2026-06-29 incident)

- Doro sends files via private chat AND uploads directly to Nextcloud — both channels must be checked
- Gateway log records `msg=''` for file messages but does NOT record the filename — you cannot map file→contract from log alone
- When Doro says "2份 顾问单位是X", the number must be verified against tracker entries matching that party
- A contract may be tracked under a different party name than expected (e.g., "重固卫生服务中心" contract could be filed under the actual contract title without "重固" in it)
- Session memory is NOT verification — "I remember processing it" is not evidence
