コーディングエージェントでコンプライアンスページを書く
これらのページに必要な事実はすでにリポジトリにあります。エージェントが本当に導き出せること、尋ねるべきこと、任せる前に譲れない境界線。
リポジトリを読めるコーディングエージェントは、これらのページに必要な事実をすでに手にしています。アプリ名、バンドル ID、ストアのリンク、そしてビルドに含まれるすべての SDK です。適切なツールがあれば、その根拠からページの草稿を作り、レビュー用のリンクを渡してくれます。あなたが確認して公開します。
数分で済ませる方法もあります
AppFoyer は、このガイドで扱っているページ(プライバシーポリシー、利用規約、サポート、アカウント削除、そして app-ads.txt)を、専用のサブドメインでホストします。自分のドメインもサーバーも要りません。アプリ 1 つまでは無料で、ストアが求めるものが有料プランの壁の向こうに置かれることは決してありません。
2026年9月25日 に確認。 ストアのポリシーは、予告なく変わることもあります。以下の内容はすべて公式ドキュメントにリンクしており、拠り所となるのはこのページではなくそちらです。両者が食い違う場合は、ストアが正しいものとしてください。 このガイドは英語からの翻訳です。ストアのドキュメントからの引用は原文の英語のまま掲載しています。
プライバシーポリシーを書く作業の大半は書き写しです。難しい部分、つまりアプリが実際に何を収集しているかを突き止めることは、リポジトリにすでにあるファイルが答えてくれます。これはまさに、ファイルシステムにアクセスできるエージェントが得意とする作業です。
エージェントが本当に導き出せること
ビルドファイルだけから、あなたに何も尋ねずに:
| 事実 | 出どころ |
|---|---|
| アプリ名 | strings.xml の app_name、CFBundleDisplayName、pubspec.yaml、app.json |
| アプリケーション ID / バンドル ID | Gradle の applicationId、Xcode プロジェクトの PRODUCT_BUNDLE_IDENTIFIER |
| プラットフォーム | それらのファイルのどれが存在するか |
| データ収集 | build.gradle、Podfile、Package.swift、pubspec.yaml、package.json にあるすべてのサードパーティ SDK |
| パーミッションと利用目的の文字列 | AndroidManifest.xml、Info.plist |
| 広告のパブリッシャー ID | マニフェストまたは plist にある AdMob のアプリケーション ID |
| Play の URL の候補 | アプリケーション ID から組み立てたもの。アプリが掲載されていない可能性もあるため、事実ではなく提案 |
この表がプライバシーポリシーの中身です。そして「自分のアプリは何を収集しているか」への答えでもあります。ほとんどの開発者が記憶に頼って間違え、読めば正しく答えられる質問です。
知りようがなく、尋ねなければならないこと
これらをでっち上げるエージェントは、エージェントがないより悪いものです:
- 法人名と、利用規約に記載する準拠法の法域。
- 実際に読んでいるサポート用のアドレス。git の設定や fastlane のファイルにある Apple デベロッパーのログイン情報から推測してはいけません。
- 実際の App Store ID。fastlane の設定にない限り、数値の ID は導き出せません。
- アプリが公開中かどうか、そしてどの掲載情報で公開されているか。
- ビジネス上の事実: サブスクリプションを販売しているか、子どもが対象ユーザーか、依存関係リストに痕跡を残さないパートナーとデータを共有しているか。
- バックエンドについてのあらゆること。 データをどのくらいの期間保持するかは、リポジトリのどこにも書かれていません。
良い結果とは、導き出せるものはすべて出どころのファイルと行番号つきで導き出され、残っているのがあなたにしか答えられない短い質問のリストだけ、という状態です。
譲れない境界線
どのエージェントであれ任せる前に、次のことを決めてください。役に立つツールと、負債になるツールの違いはここにあります:
- 人間のクリックなしには何も公開されない。 生成された法的ページが、確認されないまま公開されること。リスクはこの一文に尽きます。
- 導き出したすべての事実の出どころを示せる。 「
app/build.gradle:47にfirebase-crashlyticsを見つけました」は確認できますが、「あなたのアプリは診断情報を収集しています」は確認できません。 - コミットもプッシュもしない。 diff を提案するのは手助けですが、リポジトリを書き換えるのは違います。
- マシンの外に送るものを最小限にする。 事実をローカルで導き出して結論を送るのと、ソースコードをアップロードするのとでは大きく違います。
- 知らないことは知らないと言う。 もっともらしい文でプレースホルダーを埋めるエージェントは、推測を含んだコンプライアンス文書を作ったことになります。
この 5 つの質問を、私たちのものも含め、このカテゴリのあらゆるツールに投げかけてください。
人間がループに残る場所
エージェントが草稿を書き、あなたが決めます。具体的には、次のことをするのはあなたです:
- エージェントが導き出せなかった質問に答える
- サードパーティのセクションを読む。審査担当者が Data safety フォームと照らし合わせる部分です
- 保存期間を決める。バックエンドを知っているのはあなただけだからです
- 公開をクリックする
- ストアのコンソールの項目を記入する。どのエージェントも Play Console の中に入るべきではありません
アプリがお金、健康データ、子どもに関わるなら、弁護士の 1 時間は今でもこのリストに入ります。根拠から作ったテンプレートは白紙より良い出発点ですが、助言ではありません。
AppFoyer がここでしていること
Claude Code のプラグインがあります。インストールして “make this app store-ready”(このアプリをストアに出せる状態にして)と言うと、スキルがビルドファイルを読み、上の表をそれぞれの事実のファイルと行番号つきで導き出し、見つけられなかったことだけを尋ね、5 つのページすべてと app-ads.txt の草稿を作ります。そしてダッシュボードのレビュー用 URL を渡します。
上の境界線は約束ではなく、強制されています。エージェントの認証情報が届くのは決まったツールだけです。アプリの一覧と読み取り、アプリの作成(フレーバーごとに 1 つ)、設定の更新、ページの草稿作成、app-ads.txt、チェックリスト、アプリアイコン、カスタムアドレス。そして公開はその中に含まれていません。request_publish が渡すのはリンクであって、公開されたページではありません。アイコンとアドレスは草稿の段階がない 2 つなので、エージェントはそれらを設定したときにそう伝え、すでに使っているアドレスを尋ねずに置き換えることはしません。エージェントは公開、公開停止、アプリの削除、通知チャネルの変更、削除リクエストの受信箱の操作ができません。それらはあなた自身が行うセッション専用の操作です。ツールの全一覧と実例はエージェントのドキュメントページにあります。スキルはコミットもプッシュもせず、完成した URL をアプリに組み込むよう頼んだときにだけ diff を提案します。
使っているエージェントが Claude Code ではない場合(Cursor、Codex、チャットアシスタント)、プライバシーページには代わりにコピー&ペーストの経路があります。エディターがアプリの情報をあらかじめ埋めたプロンプトを用意するので、好きな場所で実行して返答を貼り戻します。プロンプトと、それがその言葉づかいになっている理由はAI アシスタントでプライバシーポリシーを書くにあります。
エージェントがない場合は、同じものが短いフォームとして用意されています。エージェントの経路のほうが速いのは、答えがすでにリポジトリにあるからです。別の製品ではありません。
公式の情報源
- Provide information for Google Play’s Data safety section — Google Play Console ヘルプ、SDK のデータも自分で申告すべきものであることについて
- App privacy details on the App Store — Apple
- Privacy and security in Firebase — エージェントが読む SDK ごとの開示の一例