## Anki 删除复活审计流程样例
### 场景
用户问:`deck:英语概念卡 里红旗 flag1 怎么又有了?之前不是删了吗?`
### 输入
- 当前查询:`deck:英语概念卡 flag:1`
- 当前 Anki 数据源:`~/Library/Application Support/Anki2/<profile>/collection.anki2` 的只读快照,或 AnkiConnect 查询结果
- 历史删除记录:`reports/anki_flag_delete/2026-05-16-delete-report.json`
- 可选日志:Anki 同步日志、导入日志、最近一次备份恢复记录
### 工具步骤
1. 复制 Anki collection 到临时目录,避免直接读取写入中的数据库。
2. 查询当前 `deck:英语概念卡 flag:1`,导出 card_id、note_id、deck、flag、card.mod、note.mod、首字段摘要。
3. 读取历史删除报告,按 card_id、note_id、字段指纹做三层匹配。
4. 按时间线分类:历史未覆盖、删除后新建、删除后同步/恢复带回、删除后重新打红旗、证据不足。
5. 如果用户确认删除,先写删除前备份和明细,再执行删除,最后复核 deck 级与全局 flag 计数。
### 成功信号
- `deck:英语概念卡 flag:1 = 0`
- `flag:1 = 0`
- 删除报告中每个 card/note 都有 before 快照和删除结果
- 审计报告能解释为什么这批卡不是“今天刚产生”,而是更可能来自同步、撤销、恢复或导入回流
### 失败信号
- 无 previous report,只能说明当前状态,不能证明之前是否删过
- 只有 card.mod,没有同步/恢复日志,不能指认具体回流来源
- Anki 正在运行且数据库被写入,必须改走 AnkiConnect 或先复制快照
### 建议输出
```text
当前命中:25 张卡 / 25 个 note
历史覆盖:10 张曾在 2026-05-16 删除且当时复核为 0
主要判断:不是删除命令漏删,更像同步、撤销、恢复或导入带回旧状态
删除后复核:deck flag:1 = 0,全局 flag:1 = 0
报告:reports/anki_flag_audit/2026-05-18-英语概念卡-flag1.json
```