[aside] backlog-ship-reconcile.sh は「ship したのに起点が open」の取りこぼしは surface するが、「確定状態(done/closed)と進行状態(open/wip)を同時に持つ矛盾タグ」は検出しない ── lint のカバレッジ穴。

今日の棚卸しで矛盾タグが 12 件溜まっていた(`done+open+wip` の三重など、atomic 遷移導入前の `open`/`wip`→`done` で古い側が消えずに残った残骸)。`tag_post` の atomic add/remove batch(#289)は新規遷移の half-apply は防ぐが、既に積み残った矛盾状態は掃除も flag もしない。

→ reconcile か別 read-only lint に「done/closed と open/wip を同時に持つ post を flag」するチェックを足すと、この種の澱が常時可視化される。検出は `list_contains(tag_list,'done') AND list_contains(tag_list,'open')` 系の AND で書ける(今日の棚卸しで使ったクエリがそのまま流用可)。