Skip to main content
🚀

Gemini CLI「Skills」入門:特定タスクに特化した専門知識をAIに持たせる方法

· 11 min read

Gemini CLIを日々の開発で活用していると、特定の定型作業(フレームワーク固有のコンポーネント作成、テストコードの自動生成、デプロイ手順の実行など)をより確実に、かつ効率的に行いたい場面が増えてきます。このような特定タスクへの「専門知識」をAIに持たせる仕組みが「Skills」機能です。

今回は、Skills機能の概要から実装手順、Gemini CLI上での確認方法までを詳しく解説します。

Gemini CLIの「Skills」とは?

Skillsは、特定のワークフローやリソースをカプセル化したオンデマンドの専門知識モジュールです。Agent Skills という標準規格に基づいており、必要な時だけ呼び出すことで、AIの限られた「コンテキスト(記憶量)」を節約しつつ、高度なタスクを遂行させることが可能です。

他の機能との違い

Gemini CLIには、AIの振る舞いを制御する機能がいくつかあります。これらは「誰が、いつ、どのような知識を持って動くか」という役割が異なります。

  • Instructions (GEMINI.md): 常に読み込まれる「基本方針」です。プロジェクト全体の共通ルールやディレクトリ構造など、AIが常に意識しておくべき前提知識を伝えます。
  • Subagents: 特定の専門タスクを肩代わりしてくれる「分身(専門チーム)」です。広範囲な調査や大量のファイル修正など、手順が多くコンテキストを消費しそうな作業をサブエージェントに依頼(デリゲート)することで、メインの会話をクリーンに保ちます。
  • Skills: 特定のタスクが発生した時にだけ装備する「専門知識パック」です。特定の指示書(SKILL.md)や補助スクリプトが含まれます。

具体的な使い分けの例:

  • 「新しいブログ記事を書く」→ メインのAIが blog-writerスキル を装備して自分で執筆します。
  • 「過去100件の記事のタグを一括修正する」→ メインのAIが generalistサブエージェント に作業を任せます。

簡単に言えば、「自分自身が身につける専門知識(Skills)」か、「自分以外の専門家に任せる仕組み(Subagents)」か、という違いです。

tip

Skillsは「必要な時だけロードされる」ため、大量の知識を持たせても普段のチャットの邪魔をせず、トークン消費も抑えられるというメリットがあります。


スキルの実装手順

スキルは、特定の構造を持ったディレクトリとして作成します。

1. 保存場所の決定

スキルは以下のいずれかの場所に配置します。

  • プロジェクト固有のスキル: .agents/skills/<スキル名>/ (または .gemini/skills/
  • ユーザー全体のスキル: ~/.agents/skills/<スキル名>/ (または ~/.gemini/skills/

2. SKILL.md の作成

スキルのディレクトリ内には、必ず SKILL.md というファイルを配置します。このファイルは YAML Frontmatter でメタデータを記述し、本文にMarkdownで指示を書く形式になります。

---
name: スキル名
description: このスキルの概要を記述します。Gemini CLIが「このスキルを使うべきか」を判断するために非常に重要なセクションです。「〜をする時にこのスキルを使用して下さい」といったトリガーを具体的に書きます。
---

# スキル名

スキルが有効化された後に、AIが従うべき具体的な手順やルールを記述します。

3. 関連リソース(オプション)

必要に応じて、以下のフォルダを作成し、リソースを追加できます。

  • scripts/: 実行可能なスクリプト(Node.js, Pythonなど)。
  • references/: 詳細な仕様書やスキーマ。
  • assets/: テンプレートやボイラープレート。

関連リソースの使い方・指示の書き方 これらのリソースを追加した場合は、AIがそれらを適切に利用できるよう、SKILL.md の本文中で「どのファイルをどう使ってほしいか」を明記することが重要です。

  • スクリプトを実行させたい場合
    1. 最初に `scripts/setup-boilerplate.sh` を実行して雛形を作成してください。
    2. 生成されたファイルに対して...
  • 参考資料を読ませたい場合
    詳細なコーディング規約については `references/style-guide.md` を参照してください。
    実装を開始する前に必ずこのファイルを読み、ルールを遵守すること。

SKILL.md の例

スキルは目的に応じて様々な形で定義できます。ここでは具体的な2つの例を紹介します。

例1:コンポーネントの自動生成

プロジェクト固有のReactコンポーネントを自動生成するための react-component-generator スキルの構成例です。

---
name: react-component-generator
description: プロジェクトの規約に沿ったReactコンポーネントを生成するスキル。「新しいコンポーネントを作成して」という指示の際に使用してください。
---

# react-component-generator

## コンポーネント作成規約

1. 基本構造: Functional Component (FC) と Hooks を使用すること。
2. スタイリング: CSS Modules を使用し、`[name].module.css` として同階層に配置すること。
3. テスト: 必須。必ず `__tests__` フォルダ内に `[name].test.tsx` を作成し、基本的なレンダリングテストを含めること。
...

例2:コードレビューと監査

プロジェクト独自の基準でコードをチェックさせる code-reviewer スキルの例です。先述の「関連リソース」を読み込ませる指示を組み込んでいます。

---
name: code-reviewer
description: プロジェクトのセキュリティ基準とコーディング規約に基づいてコードレビューを行うスキル。「コードをレビューして」「脆弱性がないか確認して」といった指示で使用してください。
---

# code-reviewer

## レビュー手順

1. まず `references/security-guidelines.md` を読み、本プロジェクトのセキュリティ基準を把握してください。
2. 対象となるコードに対して、以下の観点でチェックを行ってください。
- データベースクエリで N+1 問題が発生していないか
- ログに個人情報や認証情報が出力されていないか
3. 指摘事項があれば、具体的な修正案と共に提示してください。

Gemini CLIでの確認・利用方法

自動検知(Discovery)

Gemini CLIのセッション開始時、指定されたディレクトリにあるスキルが自動的にスキャンされます。この時点では中身は読み込まれず、Frontmatterの description の情報だけがAIに伝えられます。

有効化(Activation)

ユーザーの依頼内容がスキルの説明と一致すると、AIは内部的に activate_skill ツールを呼び出します。

ユーザーの同意

スキルが呼び出されると、以下のような確認が表示されます。

? Activate skill: react-component-generator? › (y/N)

「y」を押すことで初めて SKILL.md の全文がコンテキストに注入され、専門的な指示に従った動作が開始されます。

管理コマンド

CLI上で以下のコマンドを使用することで、スキルの状態を確認・操作できます。

  • /skills list: 現在利用可能なスキルの一覧を表示。
  • /skills reload: 新しく作成したスキルを即座に認識させる。

効率的なスキル作成のベストプラクティス

  1. 説明文(Description)を具体的に: AIが「いつ使うべきか」を迷わないよう、具体的なキーワード(「コンポーネント作成」「デプロイ」「テスト作成」など)を含めてください。
  2. 情報の階層化: SKILL.md 本体には核心となる手順だけを書き、膨大なドキュメントは references/ フォルダに分けることで、コンテキストの使用量を最小限に抑えられます。
  3. LLMフレンドリーな出力: scripts/ に含めるスクリプトは、人間向けの詳細なログよりも、AIが理解しやすい簡潔な結果を標準出力に返すように設計してください。

最強の助っ人「skill-creator」でスキルを自動作成する

手動でディレクトリやファイルを作成するのも良いですが、Gemini CLI にはスキルの作成を強力にサポートしてくれる skill-creator という組み込みスキルが存在します。これを使うことで、ベストプラクティスに基づいたスキルの雛形を対話形式で自動作成できます。

1. skill-creator の有効化(呼び出し)方法

特別な設定は不要です。Gemini CLI とのチャットの中で、以下のように指示を出すだけで skill-creator が起動します。

  • 「新しいスキルを作成したい」
  • 「〜のためのスキルを作って」
  • 「現在の作業内容をスキルとして切り出して」

AIが「スキル作成の専門家」モードに切り替わり、必要な情報をヒアリングしてくれます。

2. 具体的な作成フロー

skill-creator を使うと、以下のステップでスムーズにスキルを構築できます。

  1. 具体例の検討: ユーザーがそのスキルをどのように使うか、AIと一緒に具体的なシナリオを考えます。
  2. リソースの計画: 必要なスクリプト(scripts/)、参考資料(references/)、テンプレート(assets/)を洗い出します。
  3. 初期化 (Initialization): AIが内部で init_skill.cjs を実行し、SKILL.md のテンプレートやフォルダ構造を自動生成します。
  4. 実装と編集: 生成された雛形をもとに、AIが具体的な指示内容やスクリプトを記述していきます。
  5. パッケージング: package_skill.cjs を使用して、配布可能な .skill ファイル(zip形式)にまとめます。
  6. インストールとリロード: gemini skills install コマンドで環境にインストールし、最後に /skills reload で即座に有効化します。
info

skill-creator は、単にファイルを作るだけでなく「AIが理解しやすい指示の書き方」や「コンテキストを節約するための情報の階層化」といったノウハウを自動的に適用してくれるため、初心者でもクオリティの高いスキルを作成できます。


スキルは使いながら「育てて」いくもの

スキルは一度完璧なものを作って終わりではありません。日々の開発で使いながら、足りない指示を追加したり、不要な手順を削ったりして継続的に成長させていくことがこの機能の醍醐味です。

【成長の具体例:コンポーネント生成スキルの場合】

  1. 初期段階 まずは「CSS Modulesとテストファイルを作成する」という最低限のルールだけで運用を始めます。
  2. 課題の発見とアップデート しばらく使っていると「Storybookのファイルも毎回手作業で作っているな」と気づきます。そこで SKILL.md に「必ず [name].stories.tsx も生成すること」という一文を書き足します。
  3. チームの知見を反映 ある日、アクセシビリティ(a11y)の対応漏れによるバグが発生しました。二度と同じミスを起こさないよう、「コンポーネントには適切な aria- 属性を必ず付与すること」というルールを追記します。

このように、「手作業が発生した時」や「ミスが起きた時」がスキルをアップデートする最大のチャンスです。/skills reload コマンドを使えば変更は即座に反映されるため、まるで頼れる後輩エンジニアを少しずつ育成していくような感覚で活用できます。


まとめ

Skills機能は、Gemini CLIをただの汎用AIから「プロジェクトのルールを熟知した専門家」へと進化させるための鍵です。

自分自身のワークフローを振り返り、何度も繰り返している指示や手順があれば、ぜひオリジナルのスキルとして切り出してみてください。それだけで、AIとの協業は驚くほどスムーズになります。