# チェックリスト系ツール（CreateChecklist / CheckItem / GetChecklist）

複数アイテム（ファイル、ページ、URL等）を順次処理するときの進捗管理に使う。
**「1件処理→即CheckItem」のループを厳守すること。**

## 基本ワークフロー

```
1. CreateChecklist({ name: "ocr-pages", items: ["page-001.png", "page-002.png", ...] })
2. for each item:
     a. アイテムを1件処理する（OCR、ダウンロード、加工など）
     b. CheckItem({ name: "ocr-pages", item: "page-001.png", status: "done" }) を即呼ぶ
     c. 次のアイテムに進む
3. GetChecklist({ name: "ocr-pages" }) で漏れがないか確認
```

## ステータス

- `done` — 正常完了
- `failed` — 処理失敗（後で再試行・スキップ判断）
- `skipped` — 意図的にスキップ（理由を summary に書く）

## 厳禁パターン

❌ **複数アイテムをまとめて処理してから後でまとめて CheckItem を呼ぶ**
- 途中でクラッシュ・中断したときに進捗が失われる
- アイテム順がブレる
- レビュー時に作業順序が追えない

✅ **1件処理 → 即 CheckItem → 次のアイテム** を1件ずつ繰り返す

## ファイルの保存場所

`logs/checklists/{name}.json` に保存される。再開時に GetChecklist で前回の状態を取り出せる。

## いつ使うべきか

- 同種のアイテムを 3 件以上順次処理するとき
- 処理が長時間にわたり、中断・再開がありえるとき
- 後で何が処理済み／失敗かを振り返る必要があるとき

逆に、1〜2件しかない・1ステップで終わる処理には不要。
