◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り7日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り7日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/開発ツール
⟐ 開発ツール/2026-10-14中級

クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep して、GEMINI.md には索引だけ置く

アプリのクラッシュ報告を調べるとき、過去の不具合の全文を毎回読ませずに済ませる運用です。ID から 1 行を引く早見表と、GEMINI.md に置く範囲の決め方、そのまま使える grep 関数をまとめました。

gemini-cli7gemini-mdcrash-analysisworkflow8indie-dev23

壁紙アプリのクラッシュ報告が数件たまった朝、私は過去の不具合メモを開いて、同じ原因の報告を何度も読み直していることに気づきました。個人開発では、解析の手間の大半が「これは前にも見た」と確かめる作業に消えます。

そこで今は、調べる順番を決めています。先に「既知バグ早見表」を grep し、ID から詳細の 1 行へ進み、ヒットしないときだけ新規として記録する、という順です。Gemini CLI に調査を任せるときも、この順番をそのまま渡しています。

以下では、その早見表の作り方と、Gemini CLI の GEMINI.md に何を書き、何を書かないかを順に整理します。なお、ここで述べる運用は私自身が Dolice のアプリ保守で続けているもので、Gemini CLI 上での所要時間やトークン数の比較は計測していません。数字での効果はお示しできない点をご了承ください。

早見表は「1 不具合 1 行」にします

詳細を書いた文書とは別に、検索専用の 1 行表を作ります。列は次の 5 つに絞りました。

BW-009 | android | release でのみ起動時に落ちる | 難読化で必要なリソースが削除される | keep 指定を追加 | detail:bugs/BW-009.md
BW-014 | ios     | 画面を戻すと全画面広告が出ない | 破棄済みの画面を静的に保持     | 参照のみ最新に更新 | detail:bugs/BW-014.md

(行は書式の例です。ID と症状の対応は、読者の環境に合わせて置き換えてください。)

列を絞る理由は、grep の一致が「症状の言葉」でも「原因の言葉」でも拾えるようにするためです。1 行に収まる長さなら、ヒットした行をそのまま会話に貼れます。詳細は別ファイルに置き、必要なときだけ開きます。

引く手順は 3 段にします

  1. クラッシュのログから、例外名・クラス名・症状の語を 2〜3 個取り出して grep します。
  2. ヒットした行の ID で、詳細ファイルを開きます。
  3. どれにも当たらないときだけ、新規として ID を振り、早見表に 1 行足します。

3 の「足す」までを手順に含めるのが肝心です。調べた結果が早見表に戻らないと、次回も同じ読み直しが起きます。

新規行を足すときの書き方

ヒットしなかった調査を表に戻すときは、原因の確定前でも仮の 1 行を足し、末尾に ? を付けます。確定したら ? を外して原因列を直します。確定を待ってから書くと、その間に届いた同種の報告を新規として数えてしまうためです。ID は種別の接頭辞と通し番号だけにし、意味のある単語は入れません。後から原因の見立てが変わっても、ID を振り直さずに済みます。

そのまま使える grep 関数

# ~/.zshrc などに置きます。早見表のパスは環境に合わせて変更してください。
BUGS="$HOME/work/known-bugs.txt"
 
bugfind() {
  # 引数が複数なら AND 検索。大文字小文字は区別しません。
  [ $# -eq 0 ] && { echo "usage: bugfind <word> [word...]" >&2; return 2; }
  local out; out=$(cat "$BUGS")
  for w in "$@"; do out=$(printf '%s\n' "$out" | grep -iF -- "$w"); done
  if [ -z "$out" ]; then
    echo "NO_HIT: 新規として記録してください" >&2
    return 1
  fi
  printf '%s\n' "$out"
}

ハマりどころが 2 つあります。grep -F は固定文字列として探すため、Foo.bar() のような記号を含む語もそのまま使えます。もう 1 つは終了コードで、ヒットなしを 1 で返しておくと、後から「ヒットなしなら新規記録の手順へ進む」という分岐を書きやすくなります。

GEMINI.md には「索引」と「規則」だけを置きます

Gemini CLI は GEMINI.md を複数の場所から集めて連結し、プロンプトに付けて送ります。公式のドキュメントでは、読み込み元はホームの ~/.gemini/GEMINI.md、作業ディレクトリから親をたどったプロジェクト内、そして配下のサブディレクトリの 3 か所と説明されています。連結後の全文は /memory show で確認できます(Gemini CLI のドキュメント)。

つまり GEMINI.md に書いたものは、毎回の質問に付いていく前提で考えるのが安全です。そこで、早見表そのものは置かず、次のような短い規則だけを書いています。

## クラッシュ調査の手順
- 原因を推測する前に、`known-bugs.txt` を grep すること(`bugfind` 関数、または `grep -iF`)。
- ヒットした ID の詳細ファイルだけを読むこと。早見表全体や bugs/ 配下を一括で読まない。
- ヒットしないときだけ新規 ID を提案し、早見表への追記行を出力すること。

@file.md の書式で別ファイルに分けることもできますが、分けた内容も読み込まれる点は変わらないはずです。大きな表は取り込まず、「検索して引く」手順だけを渡すほうが、会話に載る量を抑えられると考えています。この点も、手元で量を測って確かめたわけではありません。

実際に効いた点と、効かなかった点

効いたのは、調査の入口が揃ったことです。誰が(あるいは何が)調べても、最初に早見表を引くので、既知の不具合を新規と取り違えることが減りました。

効かなかったのは、症状の言葉が揺れる場合です。同じ原因でも、報告者によって「落ちる」「固まる」「真っ白になる」と書き方が違います。早見表の症状列に言い換えを併記する運用を足しましたが、完全には防げていません。ヒットなしのときは、近い語で 1 回だけ引き直してから新規にするよう、規則に一文加えています。

まとめて試すときの順番

  1. 過去の不具合を 1 行表に起こします(最初は直近 10 件ほどで十分です)。
  2. bugfind を置き、実際の報告で 1 回引いてみます。
  3. GEMINI.md に 3 行の手順を足し、/memory show で載り方を確認します。
  4. ヒットなしだった調査は、その日のうちに表へ 1 行戻します。

MCP ツールが増えすぎて文脈が膨らむ問題とは別に、「毎回付いてくる指示」の整理は効いてきます。ツール側の絞り込みは MCP ツールの include/exclude の決め方 に、Gemini CLI の基本は Gemini CLI ガイド にまとめています。

シェア

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

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

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

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

⟐ 開発ツール2026-09-29
Gemini CLI に新しいキーを渡しても「API key not valid」。読まれていたのは三か所目の古いキーでした
Google ログインから有料 API キーへ Gemini CLI の認証を切り替えたのに、400 の「API key not valid」が消えませんでした。キーの出どころはシェル・作業ディレクトリの .env・ホームの .env・settings.json の四か所あり、順に照らす小さなスクリプトで原因を一つに絞ります。
⟐ 開発ツール2026-09-15
承認ルールを書いたのに一度も一致していませんでした — policy を点検して回った記録
Gemini CLI の policy に書いた承認ルールが一度も一致していませんでした。照合対象が JSON 文字列だったこと、置き場所の階層が無効だったこと、無人実行で ask_user が deny になること。点検を機械化したスクリプトまで書き残します。
⟐ 開発ツール2026-08-10
ヘルプが答えていない質問を、Gemini に問題を作らせて先に見つける
ヘルプやFAQに書いてあるのに問い合わせが止まらないとき、その資料から問いを生成し、資料本文だけで答えられるかを判定する二段構えの点検パイプラインを作ります。呼び出し設計と費用の見積もりまで含めた実装手順です。