GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/開発ツール
開発ツール/2026-04-28中級

GEMINI.md の実例集 — Next.js・Python・CLI・モバイル開発それぞれのテンプレート

Gemini CLI のプロジェクト設定ファイル GEMINI.md は、書き方一つでエージェントの賢さが大きく変わります。Next.js・Python・CLI・モバイル開発それぞれの実例テンプレートと、改善のコツをまとめました。

GEMINI.mdGemini CLI8プロジェクト設定テンプレートAIエージェント4

import { Callout } from '@/components/ui/callout';

「GEMINI.md って、何を書けばいいんでしょうか?」— Gemini CLI を使い始めた方からよくいただく質問です。公式の説明を読むと「プロジェクトのコンテキストを書いてください」と書かれているのですが、いざ自分のリポジトリで書き始めると、何を入れて何を入れないべきか迷うところがたくさん出てきます。

私自身、複数のプロジェクトで GEMINI.md を試行錯誤してきた中で、「プロジェクトの種類ごとに効くテンプレートが違う」という肌感覚が出てきました。Next.js のフロントエンド開発と Python のデータ分析では、エージェントに知ってほしいことの優先順位がまったく異なります。

ここでは4つの代表的なプロジェクトタイプそれぞれについて、実際に動かしてみて効果のあった GEMINI.md のテンプレートを共有します。コピペして自分のプロジェクトに合わせて書き換えていただければ、初期立ち上げの時間がかなり短縮できるはずです。

GEMINI.md が「効く」ファイルになるための原則

実例に入る前に、書き方の軸を3つだけ共有させてください。これを押さえると、どんなプロジェクトでもブレずに書けます。

第一に、「コードを読めば分かること」は書かない こと。package.jsonpyproject.toml を読めば分かる依存関係、ファイルツリーから明らかなディレクトリ構造を逐一書き出すと、コンテキストウィンドウが圧迫されるだけで価値が出ません。GEMINI.md の役割は「コードに書かれていない暗黙のルール」を伝えることです。

第二に、禁止事項を明示する こと。「○○してください」よりも「○○はしないでください」の方が、エージェントの暴走を防ぐ効果が高いです。私の経験では、このネガティブ指示が GEMINI.md の品質を3〜4割上げます。

第三に、1ファイル500〜1500トークン以内に収める こと。これは Gemini CLI の出力品質と直結します。長いほど良いわけではなく、本当に必要な情報だけを残すと、エージェントの判断速度と精度が上がります。

実例1: Next.js + TypeScript の Web アプリ

最も需要が高いケースです。フロントエンド・バックエンド・データベースが絡むため、設計思想を伝えないとエージェントが余計なリファクタリングを始めがちです。

# プロジェクト概要
 
このリポジトリは Next.js 16 (App Router) + TypeScript + Tailwind CSS で構築された
SaaS ダッシュボードです。Cloudflare Workers にデプロイし、Stripe で課金処理を行います。
 
## アーキテクチャの前提
 
- App Router を使用。Pages Router 形式(`pages/` ディレクトリ)には絶対に変換しない
- Server Components が基本。useState/useEffect が必要なときだけ "use client" を付ける
- データフェッチは Server Actions または Route Handlers を優先。SWR や React Query は使わない
- 認証は Auth.js v5(旧 NextAuth)。Clerk や Firebase Auth に置き換えない
 
## ディレクトリの役割
 
- `src/app/` — App Router のルート定義
- `src/components/ui/` — 再利用可能な UI コンポーネント(shadcn/ui ベース)
- `src/lib/` — ビジネスロジック・DB クライアント・Stripe ヘルパー
- `src/server/` — サーバー専用コード(クライアントから import 禁止)
 
## やってはいけないこと
 
- `any` 型の使用(`unknown` + 型ガードを使う)
- `useEffect` でのデータフェッチ(Server Components で完結させる)
- `process.env` への直接アクセス(`src/lib/env.ts` の zod 検証を経由)
- `console.log` を本番コードに残す(Sentry でログを送る)
 
## テストとリント
 
- 修正後は必ず `pnpm tsc --noEmit``pnpm lint` を通す
- ユニットテストは Vitest、E2E は Playwright
- マイグレーションは `pnpm db:generate``pnpm db:migrate` の順

ポイントは「禁止事項」の明示です。Next.js は新旧 API が混在しているため、useEffect でフェッチしたり、pages/ にファイルを作ったりするコードを生成されると、後から修正するコストが大きくなります。

実例2: Python のデータ分析・機械学習プロジェクト

Jupyter Notebook と .py ファイルが混在するプロジェクトでは、「再現性」と「メモリ管理」がコアになります。

# プロジェクト概要
 
EC サイトの購買ログから顧客セグメンテーションを行う ML パイプラインです。
学習データは BigQuery、特徴量ストアは Feast、モデルレジストリは MLflow を使用します。
 
## 環境
 
- Python 3.12(Poetry 管理)
- 主要ライブラリ: pandas 2.x, polars 0.20+, scikit-learn 1.5+, lightgbm 4.x
- GPU は使わない(コスト都合)。XGBoost や LightGBM の CPU 学習で完結する
 
## データ規模と注意点
 
- 購買ログ: 月次 800万行、年間1億行規模
- pandas で全件ロードするとメモリが爆発する。**polars または DuckDB を優先**
- BigQuery クエリは必ず `LIMIT` を付けて検証してから本番実行する
- パーティション列(`event_date`)でフィルタしないとフルスキャンになり高額
 
## 実験管理
 
- 全ての実験は MLflow に記録する。ローカルで完結させない
- 特徴量は Feast に登録してから使う。Notebook 内で生成した DataFrame を直接モデルに食わせない
- ランダムシードは `RANDOM_STATE = 42` を必ず固定する
 
## やってはいけないこと
 
- `pandas.read_csv()` で 100MB 超のファイルをロードする(→ polars または chunksize 指定)
- `for` ループでの DataFrame 操作(→ ベクトル化または `.apply()`
- `pickle` でのモデル保存(→ MLflow.sklearn.log_model)
- `notebook` セル内での認証情報のハードコード(→ `.env` + `python-dotenv`
 
## コードスタイル
 
- 型ヒント必須(`from typing import ...`
- docstring は Google スタイル
- フォーマッタ: ruff(black 互換設定)

データ分析プロジェクトでは「データ規模を伝える」のが特に効きます。「100行のサンプルデータで動く実装」と「1億行で動く実装」はコードの書き方がまったく違うため、規模感を最初に共有しておかないと、エージェントが小規模前提のコードを生成してしまいます。

実例3: CLI ツール・ライブラリ開発

OSS として公開する CLI やライブラリは、「ユーザー体験」と「後方互換性」がコアです。

# プロジェクト概要
 
ターミナルから Markdown ファイルを PDF に変換する Rust 製 CLI ツールです。
crates.io で公開しており、毎月約 2,000 ダウンロードされています。
 
## ユーザー層
 
- Markdown でドキュメントを書く開発者・テクニカルライター
- 大半は macOS / Linux ユーザー(Windows サポートも維持)
- インストールは `cargo install` または Homebrew
 
## 設計原則
 
- **後方互換性は最優先**: コマンドライン引数の名前を絶対に変えない
- 新機能はオプトイン(既存の挙動を変更しない)
- エラーメッセージは英語のみ(i18n は導入しない)
- バイナリサイズは 5MB 以下を維持(依存ライブラリ追加時は注意)
 
## ディレクトリ
 
- `src/main.rs` — CLI エントリポイント(clap でパース)
- `src/lib.rs` — ライブラリとしての API
- `src/converter/` — 変換ロジック(テスト容易にするため切り出し)
- `tests/` — 統合テスト(cargo test で実行)
 
## やってはいけないこと
 
- 既存のコマンドライン引数(`--input`, `--output`, `--theme`)の名前変更
- 依存ライブラリの追加(特に C バインディング系)— 追加するなら相談
- `unsafe` ブロックの使用
- `.unwrap()` を含む panic(Result + 適切なエラー型を返す)
 
## リリースフロー
 
1. `Cargo.toml` のバージョンを更新(semver 厳守)
2. `CHANGELOG.md` に変更内容を記載
3. `cargo publish --dry-run` で確認
4. PR をマージ後、GitHub Actions が自動で crates.io に公開

公開ライブラリでは「壊さないこと」が最重要です。エージェントは便利な機能を勝手に足したり、API を整理したりしがちなので、明示的に止める指示が効果を発揮します。

実例4: React Native / Expo のモバイルアプリ

iOS と Android の差異、ネイティブモジュールの扱いに気を配る必要があります。

# プロジェクト概要
 
iOS / Android 向けの瞑想・睡眠アプリです。Expo SDK 53 + React Native 0.76 を使用し、
EAS Build でビルド、TestFlight / Google Play Internal Testing でテスト配信しています。
 
## 技術スタック
 
- Expo SDK 53(managed workflow)
- React Native 0.76(New Architecture 有効)
- 状態管理: Zustand(Redux は使わない)
- ナビゲーション: Expo Router v3
- データベース: Supabase(PostgreSQL + Realtime)
- 課金: RevenueCat
 
## プラットフォーム差異の扱い
 
- iOS / Android で挙動が異なる箇所は `Platform.OS` で分岐し、必ずコメントを残す
- iOS の SafeArea は `useSafeAreaInsets()` を使用(`SafeAreaView` は使わない)
- Android のステータスバーは `expo-status-bar` で制御
- 通知音・触覚フィードバックは `expo-haptics` 経由のみ
 
## やってはいけないこと
 
- `react-native-` 系のネイティブモジュール追加(Expo managed が壊れる)
- `eject` の提案
- iOS only / Android only の機能を `Platform.OS` チェックなしで実装
- アプリ起動時の `AsyncStorage` への大量読み書き(起動が遅くなる)
 
## ストア審査対策
 
- アプリ内課金はすべて RevenueCat 経由(Apple/Google の規約遵守)
- ヘルスケア系の表現は控えめに(「治療」「効果」などの言葉を避ける)
- プライバシーポリシーへのリンクを設定画面に表示
 
## ビルド・配信
 
- 開発: `npx expo start`
- 本番ビルド: `eas build --platform all --profile production`
- ストア提出: `eas submit`

モバイルアプリの GEMINI.md では「ストア審査対策」を入れておくと、AI が生成するコピーや表現も自然と安全側に寄ります。これは思わぬ副次効果でした。

共通の改善テクニック

4つの実例を見比べると、効くパターンが見えてきます。

「ダメな例 → 良い例」のセットを2〜3個入れる のは、どのプロジェクトタイプでも有効でした。例えば「useEffect でのデータフェッチ → Server Components」のような対比形式は、長い説明文より遥かに伝わります。

「どこに何を置くか」を明示する ことも重要です。src/components/ui/src/components/feature/ の違いを書いておかないと、エージェントは適当な場所にファイルを作りがちです。

バージョンを明記する のも効きます。「React Native 0.76」「Next.js 16」のように具体的に書くと、エージェントは古い API(componentWillMount など)を提案しなくなります。

GEMINI.md の更新タイミングについては、GEMINI.md の作り方入門 で紹介している draft.md → 本番 GEMINI.md の2ステップ方式が便利です。draft.md に思いついたメモを溜めておいて、月に1度 Gemini CLI に整形させるサイクルを回すと、メンテナンスが負担になりません。

全体を振り返って

GEMINI.md のテンプレートをいくつ持っているかが、Gemini CLI を使った開発生産性を直接左右します。今回紹介した4つのテンプレートをベースに、自分のプロジェクトに合わせて30分ほど書き換えてみてください。エージェントの提案精度が変わることを、おそらく初日に実感していただけるはずです。

Gemini CLI の周辺機能をもっと知りたい方は、Gemini CLI 完全ガイド や Gemini CLI Plan Mode の活用法 も合わせて読んでいただくと、エージェント運用全体の流れがつかめます。

シェア

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

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

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

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

関連記事

開発ツール2026-06-18
Gemini CLI 停止に備え、夜間バッチに google-genai SDK フォールバックを組み込む
6月18日で Gemini CLI のホスト応答が止まります。CLI に依存した夜間バッチを落とさないよう、CLI の生死を確かめてから google-genai SDK へ自動で逃がすフォールバック・ハーネスを、自分の運用を題材に組みました。
開発ツール2026-06-15
Gemini CLI と Code Assist の個人向け終了に備える ― 6月18日までの移行棚卸し
6月18日で Gemini CLI と Code Assist の個人向け提供が止まります。どこで依存しているかを洗い出し、Antigravity CLI と API 直叩きへ安全に逃がすまでの実作業を、自分の運用を題材に整理しました。
開発ツール2026-06-13
Gemini in Chrome の auto browse に備える — エージェントが操作できるWebアプリの構造設計メモ
Android 版 Chrome に Gemini の auto browse が届く前に、自分のWebアプリをエージェントが確実に操作できる形へ整える設計メモです。操作の的の固定・アクセシビリティツリー・JSON-LD・破壊的操作の保護を実装コードで整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →