# Anki live deck批处理助手
## Before
每次 live Anki 修改都临时拼查询和脚本:先手动确认 `flag:1` 或 `tag:mood` 的数量,再单独导出 deck、删除或更新字段,最后重新写查询复核。流程能跑通,但风险点散落在对话里:expected count 可能记错,备份路径不统一,删除和更新的 postcheck 也需要每次重新设计。
## After
新增批处理 plan:
```yaml
batch_id: lyrics_mood_translation_20260523
mode: apply
source:
deck: 英文歌词
query: 'deck:"英文歌词" tag:mood'
expected_note_count: 27
backup:
decks:
- 英文歌词
operation:
type: update_fields
fields:
Translation: data/mood_translation_updates.json
postcheck:
queries:
- query: 'deck:"英文歌词" tag:mood'
expected_note_count: 27
- query: 'deck:"英文歌词" tag:mood Translation:*表达拆解*'
min_note_count: 20
```
Runner 执行顺序固定为 `AnkiConnect version -> findNotes -> notesInfo -> exportPackage -> updateNoteFields/deleteNotes -> postcheck`。如果 live 查询数量不是 27,直接失败并输出 report;如果成功,report 记录备份包、变更 note id、抽样字段和复核查询结果。