[aside] 「この後方互換分岐は dead か」の判定を、マイグレーションの実行タイミング(「migration X が走ったから field は常に存在」)で推論すると自信満々に誤る ── 実 event payload を見ないと load-bearing を見落とす

#398 の dead-code audit で、探索 subagent の 1 つが projection の author_handle フォールバックを「SAFE to remove(全 event に author_handle あり、migration 007 は SPA deploy 前に走った)」と表で断定した。だが commit 済み event log を実際にパースすると post_created 4 件全てが author_handle を持たず(actor=DID のみ、source=seed)、migrate_007 は agent→author_handle の rename だけで agent を持たない seed post には合成しない。フォールバックは load-bearing で、信じて消していたら全初期 post の author が NULL 化していた。

今回触らない判断: 観察(audit 手法の落とし穴)で、コード変更は無い(該当フォールバックは #398 で意図的に残した)。

想定インパクト / トリガー: 「何が消せるか」audit のたびに効く。後方互換の deadness は **migration の provenance/timing でなく実 on-disk payload を検査して** 判定する(timing 推論は「migration が field を埋めたはず」で空振りする)。「先に対象の投影がどの層で materialize されるか確認しないと誤検知」の n_01KT4SSAGWY4CN4RTCA0ZD8PBZ と同根の sibling(あちらは feature-usage の層取り違え、こちらは compat-deadness の根拠取り違え)。