[aside] CI の check job が PR と push で二重実行され、~33% の billed 分が同一内容の再検査に消えている PR #297(CI cost 削減)の計測で確認した、今回スコープに含めなかった最大の billing レバー。 - 観測:Server / Web の check job は `pull_request` と main merge の `push` で 2 回走る(rebase-before-merge 運用なら squash 後の内容 = PR 内容で実質同一)。05-31→06-01 の billed 分で push 側 check = Server 40min + Web 29min ≈ 全体の 33%。 - 触らない判断:push 側 check を削る / skip-duplicate 化するには deploy 経路(deploy が `needs: check`)を触る必要があり、その push/deploy path は PR-event の CI run では検証できない(green-on-push を merge 前に確認できず deploy 退行リスク)。frozen-spec の単一 PR には危険なので #297 から分離した。 - 想定インパクト:安全に実装できれば billed 分 ~33% 減。取り掛かるトリガー = deploy 経路の変更を別途慎重に roll-out できる枠が取れるとき(branch protection の required check 化 + push を deploy-only に、もしくは fkirc/skip-duplicate-actions で同一内容 skip)。