Slide 1

Slide 1 text

AIがレビューする時代に、 Androidエンジニアは何をレビューするのか 〜 土台づくりとレビュー再設計 〜 kobaken DroidKaigi 2026

Slide 2

Slide 2 text

kobaken ピクシブ株式会社 pixivコミックのAndroidアプリを開発

Slide 3

Slide 3 text

突然ですが! AIにコードレビューさせてる?🙋 3

Slide 4

Slide 4 text

オープニング — 課題提起 ボトルネックはレビューに移った • AIの導入により設計・実装・テストが高速化された • 他工程が速いほど、レビュー待ちが目立つ • スループットを決めるのが人間のレビュー→ボトルネックに 設計 実装 テスト AIで高速化 ──────────────────────────────────────────▶ レビュー ここが滞留する 4

Slide 5

Slide 5 text

オープニング — 課題提起 理想:AIレビューを導入して爆速開発! • コードレビューもAIにさせればいいじゃない • 人間は仕様や体験を提示するだけ • AIにコード生成させて、AIに指摘してもらい、AIで修正する 指摘がなくなるまでループ! 設計 実装 テスト レビュー AIで高速化 ────────────────────────────────────────▶ 5

Slide 6

Slide 6 text

オープニング — 課題提起 理想:AIレビューを導入して爆速開発! • コードレビューもAIにさせればいいじゃない 🤔 • 人間は仕様や体験を提示するだけ • AIにコード生成させて、AIに指摘してもらい、AIで修正する 指摘がなくなるまでループ! 設計 実装 テスト レビュー AIで高速化 ─────────────────────────────────────────────────────────────▶ 5

Slide 7

Slide 7 text

本セッションの問い AIがレビューする時代に、 人間は何をレビューするのか 6

Slide 8

Slide 8 text

オープニング アジェンダ セクション 1. オープニング — 課題提起 2. 前提共有 — pixivコミックAndroidとAIレビュー導入の文脈 3. レビューの土台づくり 4. レビューの再設計 5. まとめ 7

Slide 9

Slide 9 text

SECTION 02 前提共有 pixivコミックAndroidアプリと、AIレビュー導入の経緯 02

Slide 10

Slide 10 text

前提共有 pixivコミック Androidアプリの全貌 • 10年以上の歴史 • マルチモジュール移行中 • 大半のレガシーコードがappモジュールに残存 • Compose移行中 • ViewBinding / DataBindingが残存 • MVVM 9

Slide 11

Slide 11 text

前提共有 pixivコミック Androidアプリの全貌 42 202,727 2 58 GitLab モジュール数 コード行数 コミッター数 月あたりMR数 バージョン管理 app 1・library 1 うちテスト 45,758 kobakenともう一人 平均値・MAX 95 社内セルフ core 14 ビルド・CI 3,396 2025/7〜2026/7 ホスティング feature 26 10

Slide 12

Slide 12 text

AI導入当初の流れ AIがコードを生成してくれる これまで以上の速度で機能開発が可能に 11

Slide 13

Slide 13 text

AI導入当初の流れ しかし、MRの作成頻度に比べて リードタイムが改善しない…… 12

Slide 14

Slide 14 text

前提共有 pixivコミックで発生した課題 課題 MRの滞留 ― レビュー待ちが積み上がり、リードタイムが改善しない ▲ 原因 差分の大きいMRはレビュー負荷が高い AIコーディングで差分の大きいMRが増加 1本のレビューが重く、捌けるペースを超えて積み上がっていく 13

Slide 15

Slide 15 text

MR滞留問題を解決したい AIにコードレビューをしてもらおう🤖📝 14

Slide 16

Slide 16 text

前提共有 — AIレビュー導入の経緯と変遷 GitLab上にAIレビューを導入 • 任意のプロンプトを渡せる • GitLabにコメントしてくれる 15

Slide 17

Slide 17 text

前提共有 — AIレビュー導入の経緯と変遷 GitLab上にAIレビューを導入 16

Slide 18

Slide 18 text

前提共有 — AIレビュー導入の経緯と変遷 GitLab上にAIレビューを導入 17

Slide 19

Slide 19 text

AIレビュー導入の経緯と変遷 AIレビューを導入したものの、 人間によるレビューはそこまで変わらず ボトルネックは残ったまま…… 18

Slide 20

Slide 20 text

「AI万能論」でも「AI否定論」でもない 任せる領域と責任範囲を設計する話 レビューという過程を、どう設計し直すか 19

Slide 21

Slide 21 text

アジェンダ セクション 1. オープニング — 課題提起 2. 前提共有 — pixivコミックAndroidとAIレビュー導入の文脈 3. レビューの土台づくり 4. レビューの再設計 5. まとめ 20

Slide 22

Slide 22 text

SECTION 03 レビューの土台づくり 精度を左右する整備と、Android固有の失敗事例 03

Slide 23

Slide 23 text

土台づくり — なぜ土台が必要か 土台なしで導入した結果 鋭いようで的外れな 指摘の量産 誤検知・ノイズ化 指摘が 読まれなくなる レビューが機能しない悪循環へ 22

Slide 24

Slide 24 text

仮説 AIレビューの精度 = 与えた文脈の質 23

Slide 25

Slide 25 text

さらに レビューで指摘される些細な修正を減らす →AIコーディングの質を上げる 24

Slide 26

Slide 26 text

土台づくり AIに文脈を与える モジュール構成と依存方向 アーキテクチャ方針 コーディング規約 Androidに関する知識 テスト エージェントの行動指針 プロジェクト固有の知識 25

Slide 27

Slide 27 text

土台づくり — AIに文脈を与える モジュール構成と依存方向 • マルチモジュールの全体像 • モジュールごとの役割の説明 • feature → app への依存禁止などのルール 26

Slide 28

Slide 28 text

土台づくり — AIに文脈を与える アーキテクチャ方針 • 各レイヤーのコンポーネントに関する説明 • それぞれの責務を明文化 • ViewModelやComposeの状態管理 • UiStateの設計方針 27

Slide 29

Slide 29 text

土台づくり — AIに文脈を与える Androidに関する知識 • 基本的には不要 • 繰り返し意図と異なる結果になったら知識を与える • Edge to Edge 28

Slide 30

Slide 30 text

土台づくり — AIに文脈を与える エージェントの行動指針 • 「3ステップ以上かかるタスクは実行計画を提案して」 • 「ビルドコマンドはログ抑制モード(-q)で実行して」 29

Slide 31

Slide 31 text

土台づくり — AIに文脈を与える 単体テストのルール • テストの手法 • ダミーデータやモック化に関する方針 30

Slide 32

Slide 32 text

洗練された文脈を与えるために AGENTS.mdを記述する 31

Slide 33

Slide 33 text

土台づくり — AIに文脈を与える AGENTS.mdとは • AIエージェントにプロジェクト固有のルールを記載する場所 • Claude CodeではCLAUDE.md • AGENTS.mdの参照をCLAUDE.mdにも記述しておくと便利 32

Slide 34

Slide 34 text

土台づくり — AIに文脈を与える AGENTS.mdを育てる • 全体で30行程度 • エージェントの行動指針を示す • 以下のmdファイルを作成して参照させている • architecture.md • junit5̲unit̲tests.md 33

Slide 35

Slide 35 text

土台づくり — AIに文脈を与える: AGENTS.mdを育てる architecture.md • 各レイヤーの説明や実装サンプルなど • アーキテクチャやモジュール構成 • プロジェクト固有のUiStateの設計方針 • Jetpack Composeのガイドライン • アンチパターンも記述してコード生成&レビューで検知可能に 34

Slide 36

Slide 36 text

土台づくり — AIに文脈を与える: AGENTS.mdを育てる junit5̲unit̲tests.md • 単体テストを書く際の基本ルールや採用ライブラリを列挙 • Coroutinesが絡むテストに関しては補足を追加 • モックデータやダミーデータの取り扱い 35

Slide 37

Slide 37 text

土台づくり — AIに文脈を与える: Skills 特定の作業フローは Skills として定義 • adapting-edge-to-edge(独自スキル) • 画面をEdge to Edgeに対応させるためのスキル • Android View / Compose 両対応 • 公式のスキルはComposeのみ 36

Slide 38

Slide 38 text

土台づくり — AIに文脈を与える: Skills 特定の作業フローは Skills として定義 • multi-perspective-code-review(独自スキル) • 複数の観点をサブエージェントにレビューさせる 「振る舞い」or「構造」 設計 UI / Compose Data / Infra テスト セキュリティ 37

Slide 39

Slide 39 text

土台づくり — AIに文脈を与える: Skills multi-perspective-code-reviewの出力設計 重要度 対象レイヤ なぜダメか 代替案 直すべきか、 UI / ドメイン / 規約か、バグか、 どう直すかの 参考か データのどこか 設計原則か 具体案 38

Slide 40

Slide 40 text

土台づくり — AIに文脈を与える: Skills multi-perspective-code-reviewの出力設計 指摘コメントの例(イメージ) [High / UI層] LazyColumn内でViewModelのFlowを直接collectしています。 再コンポーズごとに購読が張り直されるためです(規約: UiState経由で購読)。 代替案: collectAsStateWithLifecycle()で購読し、UiStateに集約してください。 出力形式を固定化 → 指摘の採用判断の質が向上 39

Slide 41

Slide 41 text

土台づくり — レビューのためのプロンプト レビューガイドラインを整備 • review̲guideline.md • architecture.mdやjunit5̲unit̲tests.mdなどを参照させる • 「~.mdを参考に基準を満たしているかレビューして」 • MRのdescriptionもチェックして実装と乖離がないか • 「descriptionで目的が明確になっているか」 • 「実装と乖離していないか」 40

Slide 42

Slide 42 text

文脈以外にも大事なものが テストを整備して より強固な体制にする✅ 41

Slide 43

Slide 43 text

土台づくり — テスト整備がレビューにつながる 単体テスト 概要 JUnit / Robolectric によるロジックの検証 ドメインロジックやUI状態の変化を、コードで機械的に検証できる AIレビューとの関係 AIの指摘を「検証可能」にする 指摘の裏取りが機械的にでき、リファクタリング提案も安心して受け入れられる 42

Slide 44

Slide 44 text

土台づくり — テスト整備がレビューにつながる ビジュアルリグレッションテスト(VRT) 概要 Roborazzi などによるスクリーンショット比較 「UIが変わっていない」ことを画像差分で機械的に検証する AIレビューとの関係 「見た目が変わらない」を機械的に証明する リファクタリング系の変更で、人間が画面を目視確認する負担を減らせる 43

Slide 45

Slide 45 text

土台づくり — テスト整備がレビューにつながる テストがあると、AIの指摘が「検証可能」になる AIの指摘 テストで裏取り 採否判断 • 単体テストがロジックの確かさとリファクタリング強度を上げる • VRTで「UIが変わっていない」を機械的に証明 44

Slide 46

Slide 46 text

土台づくり — さらに発展させてみる Konsistでアーキテクチャ違反を機械的に検知 • アーキテクチャルールをテストコードとして記述 • 依存禁止 / レイヤ間の参照方向 などをCIで自動チェック • ツール化できるルールはKonsist、判断基準だけをAGENTS.mdへ 可能な限りルール違反はAIに指摘させず、テストで落とす 45

Slide 47

Slide 47 text

土台づくりをしていく中での失敗事例 土台を固めていく過程で pixivコミックが直面した失敗事例💣💥 46

Slide 48

Slide 48 text

土台づくり — pixivコミックの失敗事例 失敗事例: 自動生成コードを「ビルドエラー」と誤判定 事象 ViewBinding / DataBinding の生成クラスをAIが参照できず 「ビルドエラーになる」と誤指摘 47

Slide 49

Slide 49 text

土台づくり — pixivコミックの失敗事例 失敗事例: 自動生成コードを「ビルドエラー」と誤判定 原因 ビルド時に自動生成されるコードがリポジトリにない 48

Slide 50

Slide 50 text

土台づくり — pixivコミックの失敗事例 回避策:「AIから見えないもの」を文脈で補う • 自動生成コードの存在と扱いをレビュー用のmdファイルに明記 • 「未定義」「ビルドエラー」といった指摘を無視する 49

Slide 51

Slide 51 text

土台づくり — 小まとめ 土台づくりのまとめ ✓AIコーディングの質を高めよう ✓AGENTS.mdを育てよう ✓エージェントの行動指針やプロジェクト固有の知識 ✓レビュー用のプロンプト・Skillsを整備しよう ✓複数の観点✖指摘の重要度 ✓テスト(Unit / VRT)を導入して検証可能にしよう 50

Slide 52

Slide 52 text

アジェンダ セクション 1. オープニング — 課題提起 2. 前提共有 — pixivコミックAndroidとAIレビュー導入の文脈 3. レビューの土台づくり 4. レビューの再設計 5. まとめ 51

Slide 53

Slide 53 text

SECTION 04 レビューの再設計 人間とAIの責任範囲の再定義と運用 04

Slide 54

Slide 54 text

レビュー再設計 — これまでのレビューフロー レビューフロー Before 設計・実装 MR作成 AIレビューBot(任意) 人間レビュー(必須) マージ 53

Slide 55

Slide 55 text

レビュー再設計 — 責任の移動 コードレビューの目的を6つの観点に分解 品質保証 保守性 セキュリティ バグ・デグレの検出 可読性・変更の容易性 脆弱性・情報漏洩防止 要件 チーム合意形成 責任境界の明確化 仕様どおりに動くか 設計・方針の共有 誰が責任を持つか 54

Slide 56

Slide 56 text

レビュー再設計 — 責任の移動 どこをAIに任せ、どこを人間が担うか 観点 AI 人間 補足 品質保証 ◎ ◯ 規約違反・定型バグはAIが一次検出。人間は妥当性を確認 保守性 ◎ ◯ 命名・一貫性はAI。構造・設計の妥当性は人間が判断 セキュリティ ◯ ◎ パターン検知はAI。リスク判断と最終責任は人間 要件 △ ◎ 仕様を渡せばAIも補助可能。仕様との突き合わせは人間 チーム合意形成 — ◎ 設計判断の共有・納得形成は人間にしかできない 責任境界の明確化 — ◎ 「誰が承認したか」の責任はAIに移せない ◎ 主担当 ○ 補助 △ 条件つき — 対象外 55

Slide 57

Slide 57 text

レビュー再設計 — 実装前のレビュー 実装の前に要件・仕様・設計をレビューする 取り組み 要件・仕様・設計のレビューを実装前のフローに追加 コードになる前の判断は自動化せず、人間がレビューを担う ▼ 採用したフレームワーク Design Docs 実装前に、背景・目的・設計方針・代替案とトレードオフを短いドキュメントにまとめ、 関係者のレビューで設計判断の合意をつくるプラクティス 56

Slide 58

Slide 58 text

コードレビューしやすくするための取り組み コードレビューしやすいとは どういう状態なのか?🤔 57

Slide 59

Slide 59 text

レビュー再設計 — レビューしやすいMR分割 MRを「振る舞い」と「構造」に分割する 振る舞いの変更 構造の変更 仕様・挙動の変更、バグ修正など 動作に影響しないリファクタリング ユーザー影響が高いカテゴリ ユーザー影響なし 混在MRがレビューを遅くする → 分割してレビュー速度を上げる 参考: Kent Beck『Tidy First?』 — structural / behavioral changes 58

Slide 60

Slide 60 text

レビュー再設計 — レビューしやすいMR分割 分類ごとのレビュー運用 振る舞いの変更 構造の変更 AIコードレビュー × 人間のレビュー AIコードレビュー + VRTで完結可能 レビュイーは変更意図の提示義務あり 事後修正可能なことが多い 注記: スマホアプリの「後から修正」は即時に全体反映ではない 修正リードタイムを許容できる変更かで線引き 59

Slide 61

Slide 61 text

レビュー再設計 — 「振る舞い」の変更と「構造」の変更 どのようにして判定するか • 土台づくりで用意していたmulti-perspective-code-review • 変更の種類を「振る舞い」「構造」「混在」で判定 • 「混在」している場合は、それらを分離するようにAIに指示 • 分割してMRを出すことで認知負荷の軽減 60

Slide 62

Slide 62 text

レビュー再設計 — リスクベースのレビュー強度設計 変更リスクでレビュー強度を変える リスク 変更の例 レビュー方針 高 課金・認証・個人情報・targetSdk更新 仕様リンク必須 + 人間レビュー必須 中 機能追加・ロジック変更 AIレビュー + 人間レビュー 低 UI微修正・文言変更 AI + セルフレビュー中心(人間レビューは任意) リスクに応じて人間の時間を配分する 61

Slide 63

Slide 63 text

大いなる力には、大いなる責任が伴う 責任の所在はAI?🤖 レビュアー?レビュイー?🧐😎 62

Slide 64

Slide 64 text

レビュー再設計 — 責任の移動 責任はMR作成者に重く — セルフAIレビューという帰結 • レビュイーが主体的になり、ソースコードの責任を負う • レビュアーはサポーターとして機能 • MR作成前にAIレビュー&修正をループさせる • multi-perspective-code-reviewを活用する 実装中に観点別 MR時点で「書き方」 レビュアーは セルフレビュー の指摘は改善済み 意図・設計に集中 63

Slide 65

Slide 65 text

レビュー再設計 — 新しいレビューフロー レビューフロー After 仕様・設計レビュー(人間) 実装 複数観点レビュー MR作成 AIレビューBot 人間レビュー ※変更分類による マージ 64

Slide 66

Slide 66 text

レビュー再設計 — レビューフローの遷移 レビューフロー Before → After Before After 仕様・設計レビュー(人間) 設計・実装 実装 MR作成 AIレビューBot(任意) 人間レビュー(必須) → 複数観点レビュー MR作成 AIレビューBot 人間レビュー ※変更分類による マージ マージ 65

Slide 67

Slide 67 text

レビュー再設計により 実装後の要件漏れによる手戻りが減り 最終的な成果物の質が向上した🎉 66

Slide 68

Slide 68 text

レビュー再設計により リファクタリングの受け入れが 再設計前に比べてスムーズになった😎 MRの滞留問題が軽減された 67

Slide 69

Slide 69 text

レビュー再設計をしていく中での失敗事例 レビューフローの再設計中に pixivコミックが直面した失敗事例💣💥 68

Slide 70

Slide 70 text

レビュー再設計 — pixivコミックの失敗事例 失敗事例① 仕様情報をAIに渡していなかった 事象 コードとしては妥当でも、実装と仕様の乖離をAIレビューは見逃した 「何を作るべきか」を知らないまま、コードの書き方だけをレビューさせていた 69

Slide 71

Slide 71 text

レビュー再設計 — pixivコミックの失敗事例 失敗事例① 仕様情報をAIに渡していなかった • 対策: 開発フローに仕様書(Spec)作成を追加 • 実装時にAIエージェントにはSpecを渡す • 仕様情報はDesign Docsにまとめて人間にレビューしてもらう 70

Slide 72

Slide 72 text

レビュー再設計 — pixivコミックの失敗事例 失敗事例② AIのLGTMで人間レビューが甘くなる 事象 AIに「問題なし」と言われると人間のレビューから厳しさが抜け落ちる 承認済みに見えるMRは注意力が落ちてしまう(個人差あり) 71

Slide 73

Slide 73 text

レビュー再設計 — pixivコミックの失敗事例 失敗事例② AIのLGTMで人間レビューが甘くなる • 対策: AIと人間がチェックする観点を明確にする • 人間は仕様・意図・リスクを見る • 指摘から意図の確認、質問へシフト 72

Slide 74

Slide 74 text

レビュー再設計 — pixivコミックの失敗事例 失敗事例③ Design Docs ≒ Plan問題 事象 Design Docsに詳細すぎる設計を書いてしまう 具体的すぎてレビューコストが増加していた 73

Slide 75

Slide 75 text

レビュー再設計 — pixivコミックの失敗事例 失敗事例③ Design Docs ≒ Plan問題 • 対策: 不確実性の高い大規模開発・リファクタリングで採用する • 普段の機能開発ではmini Design Docsを利用する • 通常のDesign Docsより粒度や項目を減らしたミニマル版 74

Slide 76

Slide 76 text

SECTION 05 まとめ 05

Slide 77

Slide 77 text

まとめ 土台を整え、レビューを再設計する レビューの土台づくり AIレビューの精度は「文脈の質」で決まる AGENTS.md・Skills・テストを育て、指摘を検証可能にする レビューの再設計 AIと人間の責任範囲を定義し直す 実装前レビュー・MR分割・セルフAIレビューを運用する 76

Slide 78

Slide 78 text

AIは万能なレビュアーではない。 任せる領域を設計した分だけ、 仕様・設計・意図・リスクに集中できる。 77

Slide 79

Slide 79 text

おわりに 資料 • プロンプト・スキルは可能な限り、公開予定 • 質問は Ask the Speaker でお待ちしています 78