AI / Claude

Claude CodeとGemini CLIにおける「Markdown(md)ファイル」の役割と設定方法の違い

コマンドラインから自律的なAI開発を支援するClaude Codeと、Googleがオープンソースで提供するGemini CLIは、どちらもプロジェクトのルートディレクトリに特定のMarkdown(md)ファイルを配置することで、AIの挙動やコーディング規約をカスタマイズできる。

本記事では、Claude Codeにおける用途別のmdファイル(CLAUDE.mdやSKILL.mdなど)の違いと、Gemini CLIにおいて同等の機能をどのように実現するのかを事実に基づいて比較・解説する。

Claude Codeにおけるmdファイルの役割

Claude Codeは、用途と「AIに読み込まれるタイミング」に応じて複数のmdファイルを明確に使い分け、コンテキスト(トークン)の消費を最適化している。

1. 常に読み込まれるプロジェクトの記憶「CLAUDE.md」

プロジェクトルート(または .claude/ ディレクトリ内)に配置するファイル。

  • 役割: プロジェクトのコーディング規約、アーキテクチャのルール、ビルドやテストのコマンドなど、「Claudeに常に意識しておいてほしい前提知識」を定義する。
  • 読み込みタイミング: セッション開始時に毎回必ずコンテキストウィンドウに読み込まれる
  • 注意点: ファイルが長すぎるとタスク処理用のトークンを圧迫するため、200行未満に簡潔にまとめることが推奨される。

2. 必要な時だけ呼び出される専門機能「SKILL.md (Skills)」

.claude/skills/<skill-name>/SKILL.md に配置されるファイル。

  • 役割: 特定の定型タスク(例:出力のフォーマット指定、特定のセキュリティレビュー手順、データの集計など)を実行するための「再利用可能な指示書」として機能する。
  • 読み込みタイミング: CLAUDE.mdとは異なり、必要なときだけ(オンデマンドで)読み込まれる。ユーザーがターミナルで /skill-name と入力して直接呼び出すか、Claudeがタスクに応じて自律的に判断してロードする。
  • メリット: 全セッションで読み込まれないため、コンテキストを節約しつつ、高度で複雑な自動化ワークフローを定義できる。

3. AI自身が学習を記録する「MEMORY.md (Auto memory)」

  • 役割: ユーザーが手動で書くのではなく、セッションを通じてClaudeが発見した事実(「このプロジェクトはnpmではなくpnpmを使っている」など)をAI自身が自動的に記録するファイル。
  • 挙動: 次回のセッション以降、Claudeが同じミスを繰り返さないための「自動化された記憶」として機能する。

Gemini CLIにおけるmdファイルの役割と実現方法

Gemini CLIでも同様のカスタマイズが可能であるが、ファイル構成のアプローチがClaude Codeとはやや異なる。

1. 階層的に読み込まれる文脈「GEMINI.md」

Claude Codeの CLAUDE.md に完全に相当するのが GEMINI.md である。

  • 役割: プロジェクトの指示、ペルソナ、コーディングスタイルなどを定義する。
  • 読み込み階層: グローバル設定(~/.gemini/GEMINI.md)、プロジェクトルート、さらにサブディレクトリ内の GEMINI.md を階層的にスキャンし、すべての内容を結合してモデルに送信する。特定のディレクトリで作業しているときだけ有効になるルール(JITコンテキスト)を柔軟に設定できる。

2. Claudeの「Skills」をGemini CLIで実現する方法

Gemini CLIにはClaude Codeの「SKILL.md」と全く同じ名称の機能はないが、以下の2つの方法で「特定のタスクに応じたオンデマンドの指示(スキル)」を実現できる。

  • カスタムスラッシュコマンド(TOMLファイル)による定義:
    ~/.gemini/commands/ またはプロジェクトの .gemini/commands/ ディレクトリ内に .toml ファイルを作成することで、カスタムコマンドを定義できる。例えば、test/gen.toml というファイルを作成し、プロンプトテンプレートを記述すれば、Gemini CLI上で /test:gen と打ち込むだけで特定の定型タスク(スキル)を実行させることができる。
  • GEMINI.md内の「Gated Execution(モード分割)」:
    巨大な GEMINI.md によるコンテキスト肥大化を防ぐため、ファイル内に <PROTOCOL:EXPLAIN> や <PROTOCOL:IMPLEMENT> といった独自のタグ(モード)を定義する運用手法がある。「実装フェーズに入った時だけこの指示に従え」といった条件分岐をMarkdown内に書くことで、擬似的にスキルのような振る舞いを引き出すことができる。

3. コアの挙動を根本から変える「SYSTEM.md」

Gemini CLI固有の強力な機能として、AIのシステムプロンプトそのものを上書きする機能が存在する。

  • 役割: 環境変数 GEMINI_SYSTEM_MD=1 を設定すると、Gemini CLIにハードコーディングされている安全基準や基本動作のプロンプトを無視し、プロジェクトルートの .gemini/system.md の内容でシステムプロンプトを完全にオーバーライドする。
  • メリット: GEMINI.md よりも強い強制力を持ち、開発チームのワークフローに完全に特化した専用AIエージェントとしてGemini CLIを作り変えることができる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です