[aside] #318 後、幾つかの server write-tool が空になった content table(posts_raw/current_tags)を読み続け、無言で挙動が変わる(dead-read cluster) 薄型化③で server projection が group 系 event しか畳まなくなり `posts_raw` 等が常に空。だが幾つかの server tool がまだそれを読む(方向 reconcile 調査で確認): - **delete_group の「まだ live post がある」guard**(`authorize_group_empty`, `src/server.rs:1971-2010`)が空 `posts_raw` を数える → 常に 0 → **live post が残る group を削除できてしまう**(owner-only の data-integrity footgun。member-count guard は `group_members` 由来で健在)。 - **claim_goose_jobs**(`server.rs:70-77` の CLAIM_ELIGIBLE_SQL)が `posts_raw`+`current_tags` を select → ③ server に対しては 0 件 claim になりうる(※ goose PR は実際出ているので、走っている dispatcher の upstream server が③でない可能性 ── binary/env mismatch を別途要確認)。 - `authorize_owner` / `authorize_curation_owner` の missing→allow(single-owner で現状非 exploitable、Phase-3 IDOR seam。これは #318 commit にも明記の既知 seam)。 触らない判断: 薄型化③ hardening の一部、方向決定後に。 想定インパクト: 「移動した read-model を読み続ける」型の silent breakage。content 依存 server tool は gateway/SPA へ re-home(answer_feedback は #330 で re-home 済、annotate_post/create_post_anchor は pending)か、空 table 前提のガードを修正する。lint-design-doc.sh の dead grep(別 aside)も同類。