概要
利用している技術
Gemini / Google ADK / Cloud Run(Service + Jobs) / Firestore / Next.js。
設計上の要点として、事実として確実に取れる情報はLLMに通さず Python のパーサで直接抽出しています。長い解析結果をモデルに要約させると事実の大半が欠落することが実測で分かったためです(権限32件→2件、依存220件→6件)。モデルの役割は推論が要る部分の補強のみに絞っています。
即応答が必要なWeb側を Cloud Run Service、時間のかかる解析を Cloud Run Jobs に分離。進捗表示はブラウザから Firestore へ直結させ、タイムアウトやスケールゼロの影響を受けない構成にしています。
サービスのPR点
一番こだわったのは「確認できなかったことを、確認できなかったと表示する」ことです。
読めなかったファイル、動的に生成されるコード、実行時にしか分からない挙動は、「問題なし」ではなく「確認できず」として別枠に出します。静的解析には必ず限界があり、そこを曖昧にすると誤った安心を与えてしまうためです。検出ゼロを「安全のお墨付き」として売らない、という方針を最初に決めました。
指摘には必ず根拠のファイル名と行番号が付きます。「パーサが実際にその行を読んだ」ことを保証した事実だけを出す設計です。
今後の追加機能など
検出ルールの拡充。現在は Flutter / Android を対象にしていますが、ルール表を差し替える構造にしてあるので iOS への拡張が可能です。
審査結果のフィードバックループ。実際に審査を通ったか差し戻されたかを記録して、予測と現実の答え合わせからルールを改訂していく仕組みを考えています。ただしルールへの反映は人間の承認を挟む前提です。
リリースごとに回せる道具にすること。「1アプリ1回」ではなく「1リリース1回」使うものとして、GitHub Action への組み込みを想定しています。
フィードバック募集
開発報告
開発者からのリリース報告などのコメントです
過去7日間のツイートを表示します
コメント
サービスの利用者などからのフィードバックコメントです