ANTIGRAVITY LABEN
記事一覧/アプリ開発
アプリ開発/2026-07-09上級

段階公開を止める瞬間を、先に言葉にしておく — 監視はエージェント、停止判断は手元に

Google Play の段階公開を監視するエージェントを Antigravity で組んだ記録です。クラッシュ率のベースライン比、ANR の遅延、母数不足時の判断保留を停止基準に落とし込み、halt の実行権だけを手元に残しました。

antigravity426staged-rolloutgoogle-play4agent17release-engineering2

プレミアム記事

深夜1時、Play Console の段階公開を 20% まで広げた直後のことです。

クラッシュ率の数字が、前バージョンより少しだけ高い。0.31% に対して 0.44%。止めるほどではない、と思いながら、私は結局2時間ほど画面を眺めていました。

翌朝、数字は 0.29% に落ち着いていました。夜間に流入したのは特定の古い端末群で、母数が小さかっただけだったのです。

あの2時間で失われたのは睡眠だけではありません。「基準を決めていなかった」という事実そのものが、判断を感情に明け渡していました。

停止基準を後回しにすると、判断は疲労に依存する

個人開発で Google Play にアプリを出していると、段階公開の監視は誰も代わってくれません。1%、5%、20%、50% と広げるたびに、数字を見て「進めるか、止めるか」を決めます。

このとき厄介なのは、止める判断が常に「今の自分の状態」に引きずられる点です。眠い夜は楽観的になり、リリース直後の緊張が残っている朝は悲観的になります。

エージェントに監視を任せる話をすると、しばしば「では停止もエージェントに」という流れになります。私はそこを分けました。

監視と集計は委ね、halt(公開停止)の実行だけは手元に残す。 その代わり、停止に相当する条件を、エージェントが読める形で先に書き切る。

判断を自動化するのではなく、判断の基準を自動化する。この順序を守ると、深夜の2時間は「基準に照らして続行」の10秒に置き換わります。

何を測るか — 最初の壁は母数の少なさ

段階公開の初期は、そもそも数字が信用できません。1% の露出で得られるセッションは、私の壁紙アプリでは1日あたり 600〜900 程度でした。ここでクラッシュが3件出ると、クラッシュ率は跳ね上がって見えます。

クラッシュ率は絶対値でなくベースライン比で読む

「クラッシュ率 1% 未満なら健全」という一般則は、アプリごとの実態を無視しています。私が採ったのは、直前の安定版(100% 配信中)を分母に置く比率です。

前版が 0.28%、新版が 0.42% なら比は 1.5。前版が 0.9%、新版が 1.1% なら比は 1.22 で、絶対値は高くても悪化はしていません。

警戒(warn)を 1.5 倍、停止候補(halt_candidate)を 2.0 倍に置きました。この閾値は絶対的な正解ではなく、私のアプリ群での過去12リリース分の変動幅(比 0.8〜1.35)の外側に取っただけです。

ANR は遅れて立ち上がる

クラッシュはインストール直後に出ますが、ANR(応答なし)はユーザーが実際に操作を続けた後に現れます。壁紙アプリの場合、初回起動から画像を数十枚スクロールした先で顕在化しました。

そのため ANR の判定は、クラッシュより 12 時間ほど遅らせています。同時に見ると、序盤の「ANR ゼロ」を健全さの証拠と誤読してしまうためです。詳しくは ApplicationExitInfo で ANR の死因を拾い、Antigravity に一次分類させる に書いた分類器を、そのまま監視ループに接続しています。

母数が足りないときは「判断しない」を返す

もっとも効いた設計は、これでした。閾値を満たしていても、セッション数が 800 未満なら結論を出さない。

エージェントは insufficient_data を返し、次のポーリングまで沈黙します。0/1 の判定に逃げず、「まだ言えない」という第三の返り値を持たせたことで、偽陽性の停止がなくなりました。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
クラッシュ率をベースライン比 1.5 倍で警戒、2.0 倍で停止候補とする三値判定の実装
母数 800 セッション未満は「判断しない」を明示的に返す設計と、その理由
露出量(推定セッション数)で待機時間を刻む4段階テーブルと、4リリース分の実測
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

アプリ開発2026-06-24
三つの経路がそれぞれ番号を振っていた — versionCode を単一の真実から決めて配信を止めない設計
AI Studio がワンプロンプトでアプリを生成し Play の内部テストへそのまま上げられるようになった結果、人手・CI・エージェントの三経路が別々に versionCode を採番して衝突するようになりました。番号を単一の真実から決め、アップロード前に照合するガードまでを実装つきで整理します。
アプリ開発2026-06-21
戻るボタンで広告が出る/出ないが安定しない — 入れ子のifを独立ガードのリストに作り替えた記録
戻るボタン押下時のインタースティシャル表示判定が、入れ子のif文で優先度が暗黙化して壊れていました。各条件を理由つきの独立ガードに分解し、決定表からテストを生成した設計をまとめます。
アプリ開発2026-04-25
Play Console のデータを Antigravity で読み解く — 個人開発アプリの評価と収益を継続的に改善する方法
Google Play Console のデータをただ眺めているだけになっていませんか? Antigravity を使えば、評価・クラッシュ・収益データを自動分析し、次の改善アクションまで導いてくれます。個人開発者向けの実践的な解説です。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →