問題:AIは過去の失敗を忘れる

Gemini や ChatGPT などの AI にコード生成を依頼するとき、こんな問題がありませんか?

  • 同じミスを何度も繰り返す
  • 前回指摘したルールを忘れる
  • プロジェクト固有の制約を無視する

毎回「Expo では react-native-vector-icons じゃなくて @expo/vector-icons を使って」と指示するのは面倒です。

解決策:GEMINI.md でルールを管理

プロジェクトルートに GEMINI.md ファイルを作成し、AI に従ってほしいルールをすべて記載します。

# Gemini AI Coding Rules

## General Principles
- Always provide complete, working code
- Include all necessary imports
- Add TypeScript types for all functions

## Expo/React Native Specific
- Use Expo SDK compatible packages only
- Prefer `npx expo install` over `npm install`

## Expo Specific Rules
- Use `@expo/vector-icons` instead of `react-native-vector-icons`
- Import example: `import { MaterialCommunityIcons } from '@expo/vector-icons';`

AI に指示を出すときは、必ず「GEMINI.md を読んでから実装して」と伝えます。

gemini "GEMINI.md を読んでから、タブナビゲーションを実装してください"

GEMINI.md の構成

1. 基本ルール

すべてのプロジェクトで共通のルールを記載。

## General Principles
- Always provide complete, working code
- No placeholder code like "// Add your logic here"
- Include error handling

## Output Format
When generating code, always include:
1. Complete file content (not snippets)
2. Installation commands for dependencies
3. File path/name where code should be placed

2. プロジェクト固有のルール

技術スタックやデータ構造を明記。

## Tech Stack (Fixed)
- Expo with TypeScript
- React Native Paper for UI
- AsyncStorage for persistence

## Data Model
\`\`\`typescript
interface Todo {
  id: string;
  text: string;
  completed: boolean;
  createdAt: Date;
}
\`\`\`

3. フェーズ管理

段階的な開発計画を記載。

# Phase 1: Navigation & UI Improvements

## Requirements
- Use React Navigation Bottom Tabs
- 3 tabs: Tasks, Presets, History
- Make checkboxes smaller

AI 自身に履歴を追記させる

ここが重要なポイントです。実装完了後、AI 自身に GEMINI.md へ記録を追記させます。

gemini "GEMINI.md の Phase 1 セクションに、今回実装した内容を追記してください:

実装内容:
- タブナビゲーション実装
- @expo/vector-icons 使用

ハマったポイント:
- route.name が日本語タブ名と一致していなかった
- iconName の型を厳密に指定する必要があった

Phase 1 の実装記録として追記してください。"

すると、AI が以下のような記録を追記してくれます:

### Implemented Feature: Tab Bar Icons for Navigation

- **概要**: タブナビゲーションを実装。日本語タブ名に対応したアイコン表示。

- **使用したライブラリとバージョン**:
    - `@react-navigation/bottom-tabs`: `^7.10.1`
    - `@expo/vector-icons`: (Expo SDK に含まれる)

- **ハマったポイントと解決策**:
    - **ハマったポイント**: `route.name` が日本語タブ名と一致していなかった
    - **解決策**: 比較文字列を日本語に修正し、型を厳密に指定

- **次回への引き継ぎ事項**:
    - デフォルトアイコンの UI/UX 検討が必要

GEMINI.md のメリット

1. 同じミスを繰り返さない

## Expo Specific Rules
- Use `@expo/vector-icons` instead of `react-native-vector-icons`

一度ルールに追加すれば、AI は二度と間違えません。

2. プロジェクトの歴史が残る

# Phase 1: Completed (2026-01-31)
# Phase 2: Completed (2026-01-31)
# Phase 3: Completed (2026-01-31)

いつ何を実装したか、どんな問題があったかが一目瞭然。

3. 新しい開発者へのオンボーディング

GEMINI.md を読めば:

  • プロジェクトの技術スタック
  • 過去にハマったポイント
  • 開発の進行状況

がすべてわかります。人間の開発者にとっても有用なドキュメントになります。

4. AI が自己学習する

実装記録を AI 自身に書かせることで、次回の実装時に「前回はこうハマったから気をつけよう」という判断ができるようになります。

実践例:3 つのフェーズで開発

Phase 1: ナビゲーション

gemini "GEMINI.md を読んで、Phase 1 を実装してください"

実装後:

gemini "Phase 1 の実装記録を GEMINI.md に追記してください"

Phase 2: プリセット機能

Phase 1 の記録があるので、AI は:

  • @expo/vector-icons を使う
  • TypeScript の型を厳密に定義する

などを自動的に考慮してくれます。

Phase 3: カレンダー

Phase 1, 2 の記録から:

  • react-native-calendars のインストール方法
  • 型定義の必要性
  • UI コンポーネントの配置

などを学習済み。

GEMINI.md のテンプレート

# Gemini AI Coding Rules

## General Principles
- (共通ルール)

## Tech Stack
- (使用技術)

## Data Model
- (データ構造)

---

# Phase 1: (機能名)

## Requirements
- (要件)

## Implementation
- (実装内容)

### Implemented Feature: (実装した機能)

- **概要**: 
- **使用したライブラリとバージョン**:
- **ハマったポイントと解決策**:
- **次回への引き継ぎ事項**:

---

# Phase 2: (次の機能)
...

注意点

1. AI はファイル編集できないことがある

gemini "GEMINI.md に追記してください"

と指示しても、出力だけして実際にファイルを編集しない場合があります。

その場合は:

  • AI の出力をコピペして手動で追記
  • または「完全なファイル内容を出力してください」と指示して置き換え

2. ファイルパスを明示する

gemini "./GEMINI.md の Phase 3 に追記してください"

相対パスを明示すると、AI がファイルを特定しやすくなります。

3. フォーマットを統一する

Phase 1 で使ったフォーマットを Phase 2, 3 でも使うよう指示:

gemini "Phase 1 と同じフォーマットで Phase 3 の記録を追記してください"

まとめ

GEMINI.md を使うことで:

  • ✅ AI が同じミスを繰り返さない
  • ✅ プロジェクトの歴史が自動的に記録される
  • ✅ 開発効率が大幅に向上する
  • ✅ ドキュメント管理が自動化される

AI を単なるコード生成ツールではなく、学習・改善していくチームメンバーとして扱えるようになります。

次回のプロジェクトでは、ぜひ GEMINI.md を試してみてください。

参考

今回の Todo アプリ開発の GEMINI.md は以下のような構成になりました:

  • General Principles
  • Expo Specific Rules
  • Phase 1: Navigation (実装記録付き)
  • Phase 2: Preset Management
  • Phase 3: History & Calendar

約 200 行のドキュメントが、AI と協力しながら自動的に育っていきました。