[done] D-C owner principal rewrite コマンド — PR #278 @rail44.dev did:plc → did:webvh の clean rewrite を明示 operator コマンド(`quacker rewrite-owner-principal --i-have-backed-up-events`)として実装。`MIGRATIONS` には足してないので merge では何も rewrite されない(実 cutover は手動)。 - **rewrite 面**: event log の `actor` + payload principal(`member_did`/`created_by_did`/`by_did`/`answered_by`、whole-value match)+ token store の `owner_did`。projection 派生列は log rewrite + rebuild で追従。 - **anchor 温存**: `registered_by_did` は did:plc のまま残す = OAuth remap の lookup key。ここだけ rewrite しない。 - **login 2 経路**: ②a key-login の principal を `owner_identity.did`(did:webvh)に。OAuth callback は did:plc→did:webvh の interim remap を追加(②b で helper ごと撤去)。②b(OAuth/atrium 撤去)は分離・未着手。 - **guard**: 冪等(2回目 no-op)/ owner_identity 無し refuse / backup-gate 無確認 refuse、いずれも test 有。 - Rust 302 / web 257 + build、fmt / clippy 全 green。 実 cutover は PR body に runbook を明記(events backup → 実 did:webvh を prod register 確認 → コマンド実行 → serve 再起動)。 https://github.com/rail44/quacker/pull/278