◉ANTIGRAVITY LABEN
記事一覧/Agents & Manager
◈ Agents & Manager/2026-08-16中級

Canary 継続配信になった Android 17 で、エージェントには「報告しない条件」から先に渡しました

Android 17 が Developer Preview をやめて Canary の継続配信に切り替わり、検証の締め切りが自分の側に移りました。更新を追う担当をエージェントへ渡すにあたり、報告の条件ではなく沈黙の条件から設計した記録です。

Android 17Canaryエージェント77壁紙アプリ5運用設計27

✦ プレミアム記事

Android 17 が Developer Preview の枠をやめて Canary ビルドの継続配信に切り替わった、という話を目にしたとき、最初に頭に浮かんだのは新機能ではなく予定表でした。

Preview には番号があり、番号には日付がありました。DP1 が出たら触る、DP3 が出たら本気で直します。個人開発でアプリを続けていると、こういう外から与えられる区切りが、そのまま自分の作業計画になっていました。

継続配信になるということは、その区切りが消えるということです。毎週何かが動き、どれも「最終ではない」。締め切りが外部から来なくなった代わりに、いつ見るかを自分で決める仕事が増えました。

Android 版の壁紙アプリを保守している立場としては、これは地味に重い変化でした。

追随を自動化する前に、追随をやめる範囲を決めた

最初に考えたのは、Antigravity のエージェントに Canary の更新を毎回読ませて、要約を投げてもらう構成です。実際、この手の仕事はエージェントの得意分野に見えます。

ただ、少し想像してみて手が止まりました。週に何度も「今回の変更点はこうです」という要約が届く構成にすると、私はおそらく三週目には読まなくなります。届いた通知を開かないまま、大事な一件が同じ列に埋もれます。これは自動化の失敗というより、自動化が成功しすぎたときに起きる失敗です。

そこで方針を裏返しました。何を報告させるかではなく、何があっても報告させないかを先に決めるという順番です。

言い方を変えると、エージェントに渡すのは「更新を追う仕事」ではなく「黙っていてよい条件を満たしているか判定する仕事」になります。判定が黙っていられない状態になったときだけ、私のところに来ます。

「自分に関係する」を、人間の勘から機械の判定に移す

黙っていてよい条件を書き下すには、「自分に関係する」を機械が扱える形にしなければなりません。

ここで頼りになるのは、リリースノートの側ではなく自分のコードの側でした。壁紙アプリが実際に触れている Android の面は、そう多くありません。import 文、マニフェストの権限、フォアグラウンドサービスの種別。この三つを列挙すれば、自分の可動域はおおむね言い表せます。

抽出はシェルで足ります。

#!/usr/bin/env bash
# 自分の実装が実際に触れている Android の面を1行1件で出す。
# 出力: kind<TAB>symbol (kind = import / permission / service-type)
set -euo pipefail
ROOT="${1:?usage: inventory.sh <project-root>}"
 
# 1) Kotlin/Java の import から android.* / androidx.* を拾う
grep -rhoE '^import +(android|androidx)[A-Za-z0-9_.]*' "$ROOT" \
  --include='*.kt' --include='*.java' 2>/dev/null \
  | sed -E 's/^import +//' | sort -u | sed 's/^/import\t/'
 
# 2) マニフェストの権限(末尾の識別子まで含めて拾う)
grep -rhoE 'android\.permission\.[A-Z_]+' "$ROOT" --include='AndroidManifest.xml' 2>/dev/null \
  | sort -u | sed 's/^/permission\t/'
 
# 3) フォアグラウンドサービス種別(種別ごとに要件が違うため個別に持つ)
grep -rhoE 'android:foregroundServiceType="[a-zA-Z|]+"' "$ROOT" --include='AndroidManifest.xml' 2>/dev/null \
  | sed -E 's/.*"([a-zA-Z|]+)".*/\1/' | tr '|' '\n' | sort -u | sed 's/^/service-type\t/'

小さなプロジェクトに通すと、こういう出力になります。

import	android.app.NotificationManager
import	android.app.WallpaperManager
import	android.graphics.BitmapFactory
import	androidx.work.WorkManager
permission	android.permission.INTERNET
permission	android.permission.POST_NOTIFICATIONS
service-type	dataSync

この一覧が、そのまま監視対象になります。ここに出てこない領域で何が変わっても、私は今週それを読む必要がありません。

✦

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

この記事の続きを読む

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

この記事で得られること
✦更新情報をエージェントに追わせるとき、報告の量ではなく沈黙の条件を先に設計できるようになります
✦自分のコードが実際に触れている API・権限・サービス種別を機械で棚卸しし、変更点との交差だけを受け取る仕組みを自分のプロジェクトに移せるようになります
✦関係ありそうな行を拾う実装が一般語で誤検出を量産する落とし穴を、書く前に避けられるようになります
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

◈ Agents & Manager2026-04-27
Antigravity を個人開発の「夜のもう1人」として迎え入れる運用モデル
Antigravity のエージェントを、個人開発者にとっての「夜のもう1人」として運用するための設計指針。タスクの渡し方・境界線の引き方・朝の3点確認をスクリプトにする方法まで、実際に運用して整えてきた手順を書き残します。
◈ Agents & Manager2026-10-22
引き継ぎ文書の古い参照は 17 件に見えて実際は 2 ファイルでした。本当に危なかったのは、別のサイトの手順書が混ざっていたことでした
エージェントに読ませるリポジトリ直下の .md を点検する Python スクリプトの全文です。素朴な版は壊れた参照を 17 件と数え、直すと 7 件、実体は 2 ファイル。別の問題が見つかるまでの過程を残します。
◈ Agents & Manager2026-10-16
エージェントに .zip を渡す前に、.git を除いて 29 MB を 15 MB にし、秘密情報の警告 28 件を見分けました
Antigravity アプリ v2.23.0 で .zip を添付できるようになりました。自分のリポジトリを実際に固めて .git の重さと秘密情報検査の誤検知を数え、除外・検査・マニフェストを一度に行う Python スクリプトの全文を残します。