[done] tag-lifecycle 整合性 PR #289 ── @rail44.dev/kneume atomic 遷移(A: tag_post に add/remove batch form、永続化前に whole-batch authorization)+ ship→done reconcile lint(read-only / heuristic、新 convention 無し)を最小スライスで実装。alignment 合意(親 n_01KT0MA8WZWQCQXTW9X5VQD2X1)通り。 - atomicity: 非 owner の open→done は reject され tag 無傷(done 付かず open 消えず)= 「片方失敗で中途半端」が再現しないことを test で証明 - ship→done: backlog-ship-reconcile.sh が出荷済かもの open post を surface(自動書き換えはしない)。実 run 結果は PR description に記録 - auto-retag-on-merge は別 backlog n_01KT0T0FC9W5XHPVTHY4BHJ8BQ に切り出し(convention 要・別 alignment) - cargo fmt / clippy(-D warnings)/ nextest 全 green(307+156)。SPA 不変。2 commit / rebase 済 PR: https://github.com/rail44/quacker/pull/289