Claude Skills完全ガイド③:Claude Code/APIでの活用編

この記事で分かること

これまでの記事では、Claude Skillsの基本的な使い方と、自分専用のカスタムSkillを作成する方法を紹介しました。

シリーズ最終回となる今回は、Claude CodeとClaude APIでSkillsを活用する方法を、開発者向けに整理します。

この記事では、次の内容を扱います。

  • Claude CodeへSkillsを追加する方法
  • 個人用Skillとプロジェクト用Skillの配置先
  • Gitを使ってチームでSkillsを共有する方法
  • プラグインマーケットプレイスからSkillsを導入する方法
  • Claude Agent SDKでSkillsを利用する考え方
  • Skills APIによるカスタムSkillの登録とバージョン管理
  • Messages APIからSkillを実行するための設定
  • CI/CDや自動化パイプラインへ組み込む際の注意点

個人の作業効率化だけでなく、開発チームの手順や知識を再利用可能な形で管理したい人に向けた内容です。

Claude CodeでSkillsを使う方法

Claude Codeでは、SKILL.mdを含むSkillフォルダをファイルシステム上へ配置して利用します。

Claude CodeがSkillの名前や説明を確認し、依頼内容に関連すると判断した場合に、必要なSkillを読み込みます。

Skillは自動的に呼び出されるだけでなく、Skill名をスラッシュコマンドとして明示的に実行することもできます。

Claude CodeでSkillsを追加する主な方法は、次の3つです。

  1. 個人用Skillとして配置する
  2. プロジェクト用Skillとしてリポジトリへ配置する
  3. Claude Codeプラグインとしてインストールする

個人用Skillを配置する

自分だけで使用するSkillは、ホームディレクトリの次の場所へ配置します。

text
~/.claude/skills/

例えば、コードレビュー用のSkillを追加する場合は、次のような構成になります。

text
~/.claude/skills/
└── java-code-review/
    ├── SKILL.md
    └── references/
        └── review-checklist.md

個人用Skillは、複数のプロジェクトから利用できます。

自分のコーディング規約、コミットメッセージの作成、調査手順など、プロジェクトをまたいで使う作業に向いています。

プロジェクト用Skillを配置する

特定のリポジトリで使用するSkillは、プロジェクト内の次の場所へ配置します。

text
.claude/skills/

例えば、Spring Bootプロジェクトのレビュー手順をSkill化する場合は、次のように配置できます。

text
my-project/
├── .claude/
│   └── skills/
│       └── spring-review/
│           ├── SKILL.md
│           ├── references/
│           │   └── architecture-rules.md
│           └── scripts/
│               └── run-checks.sh
├── src/
└── pom.xml

プロジェクト用Skillはリポジトリへコミットできるため、Gitを通してチームメンバーへ共有できます。

これにより、次のようなルールをチーム共通のSkillとして管理できます。

  • コードレビューの観点
  • テスト実行手順
  • リリース前の確認項目
  • 障害調査の手順
  • API設計ルール
  • ドキュメント作成形式
  • プルリクエストの確認手順

個人が毎回説明していた作業手順を、バージョン管理されたチーム資産へ変えられる点が大きなメリットです。

Claude CodeでSkillを実行する

Claude Codeは、依頼内容とSkillのdescriptionを照合し、関連するSkillを自動的に選択します。

例えば、次のように依頼します。

text
この変更内容を、プロジェクトのJavaコードレビュー基準に沿って確認してください。

適切なSkillが登録されていれば、Claude CodeがそのSkillを読み込んでレビューを進めます。

特定のSkillを明示的に使いたい場合は、スラッシュコマンドとして実行できます。

text
/java-code-review

引数を付けられるSkillであれば、次のような呼び出しも可能です。

text
/java-code-review src/main/java/com/example/service

自動選択だけに頼らず、重要な処理では使用するSkillを明示することで、実行内容を安定させやすくなります。

マーケットプレイスからSkillsを導入する

Anthropicは、Agent Skillsのサンプルをanthropics/skillsリポジトリで公開しています。

Claude Codeでは、このリポジトリをプラグインマーケットプレイスとして登録できます。

text
/plugin marketplace add anthropics/skills

登録後、Claude Codeのプラグイン画面からSkillsを含むプラグインを検索してインストールします。

公式リポジトリでは、用途に応じて次のようなプラグインが公開されています。

  • document-skills
  • example-skills
  • claude-api

document-skillsには、Word、Excel、PowerPoint、PDFを扱うSkillsが含まれます。

example-skillsには、skill-creator、フロントエンドデザイン、MCPサーバー作成、Webアプリのテストなどのサンプルが含まれます。

claude-apiは、Claude APIやSDKを使った開発を支援するSkillです。

インストール方法や収録内容は更新される可能性があるため、導入前にリポジトリのREADMEとマーケットプレイス定義を確認してください。

チームでSkillsを共有する方法

チーム共有には、主に2つの方法があります。

リポジトリに含める

特定プロジェクト専用のSkillは、.claude/skills/へ配置してアプリケーションコードと一緒に管理します。

この方法には、次のメリットがあります。

  • コードとSkillの変更を同じプルリクエストでレビューできる
  • ブランチごとにSkillの内容を切り替えられる
  • アプリケーションのバージョンとSkillの整合性を保ちやすい
  • 新規参加者もリポジトリを取得すれば同じSkillを利用できる

一方で、複数のリポジトリで共通利用するSkillは、各リポジトリへコピーすると更新漏れが発生しやすくなります。

プラグインとして配布する

複数チームや複数リポジトリで共通利用するSkillは、Claude Codeプラグインとして配布する方法が適しています。

社内用のプラグインマーケットプレイスを用意すれば、次のような運用ができます。

  • 承認済みSkillsを一覧化する
  • チームメンバーが必要なSkillsをインストールする
  • Skillsの更新をまとめて配布する
  • 共通の開発標準やセキュリティルールを展開する
  • プロジェクト固有Skillと全社共通Skillを分離する

小規模なチームではリポジトリ管理から始め、共有範囲が広がった段階でプラグイン化するのが現実的です。

Claude Agent SDKでSkillsを利用する

Claude Agent SDKは、Claude Codeと同様のエージェント実行基盤をアプリケーションから利用するためのSDKです。

SDKでは、読み込むSkillsをオプションとして指定できます。

そのため、Claude Codeで使用しているファイルベースのSkillsを、自作エージェントのセッションへ読み込ませる構成も可能です。

ただし、「Claude CodeのSkillを変更せずに、あらゆるSDK環境で完全に同じ動作をする」とは限りません。

次の点は、実行環境ごとに確認が必要です。

  • SDKで有効化しているツール
  • Skillから実行するコマンドの権限
  • 作業ディレクトリ
  • 読み込む設定ソース
  • ファイルシステムへのアクセス範囲
  • 環境変数や認証情報の扱い
  • SDKバージョンによるオプションの違い

Skillの指示部分は再利用しやすい一方で、実行権限やツール構成はエージェント側で適切に設計する必要があります。

Claude APIでSkillsを使う方法

Claude APIでは、Anthropicが提供するSkillsと、自分でアップロードしたカスタムSkillsを利用できます。

APIで扱うSkillsは、Claude Codeのローカルファイルとは別に、ワークスペースへ登録して管理します。

大まかな流れは次のとおりです。

  1. Skills APIで利用可能なSkillsを確認する
  2. カスタムSkillを作成またはアップロードする
  3. 必要に応じてSkillのバージョンを作成する
  4. Messages APIのリクエストへSkillを指定する
  5. Code Execution Toolを有効にして実行する
  6. 生成されたファイルをFiles APIから取得する

Skills APIで利用可能なSkillを確認する

Skills APIには、Skillを一覧取得するエンドポイントがあります。

http
GET /v1/skills

sourceを指定すると、Anthropic提供のSkillsとカスタムSkillsを絞り込めます。

text
source=anthropic
source=custom

Anthropicが提供する代表的なドキュメントSkillsは次のとおりです。

Skill ID主な用途
pptxPowerPointファイルの作成・編集
xlsxExcelファイルの作成・分析
docxWordファイルの作成・編集
pdfPDFファイルの生成

APIで利用可能なSkillsは変更される可能性があるため、固定値を前提にせず、必要に応じて一覧を取得する設計が安全です。

カスタムSkillを登録する

カスタムSkillは、SKILL.mdと関連ファイルを含むフォルダをアップロードして作成します。

Skill作成時には、すべてのファイルを同じトップレベルディレクトリへまとめ、ルートにSKILL.mdを配置する必要があります。

作成に成功すると、次のようなSkill IDが返されます。

text
skill_01AbCdEfGhIjKlMnOpQrStUv

このSkill IDを、Messages APIやManaged AgentsでSkillを指定するときに使用します。

カスタムSkillのファイルはFiles APIではなく、Skills APIへ直接アップロードします。

Skillのバージョンを管理する

既存のカスタムSkillを更新する場合は、Skillに対して新しいバージョンを作成します。

http
POST /v1/skills/{skill_id}/versions

Skillを削除して作り直すのではなく、同じSkill IDの下でバージョンを追加できます。

実行時には、次のどちらかを指定します。

  • 特定のバージョンへ固定する
  • latestを指定して最新バージョンを使う

本番環境では、予期しない変更を避けるため、テスト済みのバージョンへ固定する方が安全です。

開発環境ではlatestを利用し、検証後に本番用のバージョンを更新する運用が考えられます。

Messages APIからSkillを実行する

Messages APIでは、container.skillsへ利用するSkillを指定します。

Python SDKを使った概念例は次のとおりです。

python
response = client.beta.messages.create(
    model="対応モデル名",
    max_tokens=16000,
    betas=["skills-2025-10-02"],
    container={
        "skills": [
            {
                "type": "anthropic",
                "skill_id": "xlsx",
                "version": "latest"
            }
        ]
    },
    messages=[
        {
            "role": "user",
            "content": "四半期ごとの売上集計表をExcelで作成してください"
        }
    ],
    tools=[
        {
            "type": "現在のCode Execution Toolバージョン",
            "name": "code_execution"
        }
    ]
)

重要なのは、Skills APIでSkillを管理する処理と、Messages APIでSkillを実行する処理が分かれている点です。

/v1/skillsへSkillを登録しただけでは実行されません。Messages APIのcontainer.skillsで、利用可能なSkillを指定する必要があります。

Code Execution Toolが必要

Claude APIでAgent Skillsを利用するには、Code Execution Toolが必要です。

Skillの指示や関連ファイルはコード実行用コンテナへマウントされ、Claudeはその環境内でファイルの読み取りやスクリプトの実行を行います。

リクエストには、次の設定が必要です。

  • Skills用のベータヘッダー
  • Skillsを指定するcontainer.skills
  • 対応するCode Execution Tool
  • Code Execution Toolを利用できるモデル

Code Execution Toolのバージョンや必要なヘッダーは変更される可能性があります。実装時は、固定された古いサンプルをコピーするのではなく、公式ドキュメントの最新例を確認してください。

生成ファイルはFiles APIから取得する

Excel、Word、PowerPoint、PDFなどを生成した場合、ファイルはコード実行環境内に作成されます。

APIレスポンスには生成ファイルを示すファイルIDが含まれるため、そのIDを取得してFiles APIからダウンロードします。

処理の流れは次のようになります。

text
Messages APIへリクエスト
        ↓
Skillがファイルを生成
        ↓
レスポンスからfile_idを取得
        ↓
Files APIでファイルを取得
        ↓
ストレージへの保存やユーザーへの提供

ファイル生成を自動化する場合は、Skillの実行だけでなく、ファイルIDの抽出、保存先、保存期間、アクセス制御まで設計する必要があります。

APIでSkillsを使う場合のバージョン戦略

Skillsを業務システムへ組み込む場合は、Skillそのものをアプリケーションの依存コンポーネントとして管理します。

例えば、次のような運用が考えられます。

text
開発環境
  └── latestを使用して変更を確認

検証環境
  └── リリース候補のSkillバージョンへ固定

本番環境
  └── 動作確認済みのSkillバージョンへ固定

Skillを更新すると、同じプロンプトでも出力や処理手順が変わる可能性があります。

そのため、次の情報を記録しておくと障害調査がしやすくなります。

  • Skill ID
  • Skillバージョン
  • 使用モデル
  • Code Execution Toolのバージョン
  • 実行日時
  • 入力データ
  • 出力ファイルID
  • エラー内容

CI/CDや自動化パイプラインへ組み込む例

Claude CodeやAPIのSkillsは、定型的な開発作業の自動化に利用できます。

プルリクエストのレビュー

チームのレビュー基準をSkill化し、変更内容に対して次の項目を確認します。

  • コーディング規約
  • セキュリティ上の問題
  • テスト不足
  • 例外処理
  • 既存設計との整合性

リリースノートの生成

Gitの差分やコミット履歴から、チームの書式に沿ったリリースノートを作成します。

障害ログの一次分析

ログの確認順序、既知のエラーパターン、切り分け手順をSkillとして定義します。

API仕様書の生成

ソースコードやOpenAPI定義から、社内テンプレートに沿ったWordやPDFを生成します。

テスト結果の集計

CIのテスト結果を集計し、失敗傾向や前回との差分をExcelレポートへまとめます。

自動化するときの注意点

最小権限で実行する

Skillが必要とするコマンドやファイルだけにアクセスできるようにします。

外部入力を信頼しない

プルリクエスト本文、Issue、ログ、アップロードファイルなどには、意図しない指示が含まれる可能性があります。

外部入力をSkillの指示として扱わず、処理対象のデータとして明確に分離する必要があります。

本番変更を直接実行させない

デプロイ、削除、データ更新などの破壊的操作は、人の承認や別の制御を挟む設計が安全です。

出力を検証する

Claudeが生成したコード、SQL、設定ファイル、ドキュメントを無条件で採用せず、テストやスキーマ検証を行います。

Skillと実行環境を分けて考える

Skillは作業手順を定義しますが、権限管理やネットワーク制御、秘密情報の管理まで自動的に安全になるわけではありません。

実行環境側でも適切なセキュリティ設計が必要です。

Claude CodeとAPIの違い

Claude CodeとClaude APIでは、Skillsの基本的な考え方は共通していますが、管理方法が異なります。

比較項目Claude CodeClaude API
Skillの保存先ローカルまたはプロジェクトのファイルシステムAnthropicのワークスペース
追加方法フォルダ配置またはプラグインSkills APIでアップロード
共有方法GitまたはプラグインマーケットプレイスSkill IDとバージョンを共有
実行方法Claude Codeが自動選択、またはスラッシュコマンドMessages APIのcontainer.skillsで指定
バージョン管理GitのコミットやタグSkills APIのバージョン
主な用途ローカル開発、チーム開発Webサービス、バッチ、業務システム
実行環境Claude Codeが動作する端末Code Execution Toolのコンテナ

Claude Code用SkillとAPI用Skillは、同じSKILL.md形式を基盤として再利用しやすい設計です。

ただし、保存場所、利用可能なツール、実行権限、アップロード方法は異なります。単純に同じフォルダを置くだけで完全に移行できるとは限らないため、環境ごとの検証が必要です。

Skillsシリーズのまとめ

このシリーズでは、Claude Skillsについて次の3段階で解説しました。

① Claude Skillsの基本

Skillsの仕組み、利用できる環境、設定方法、基本的な使い方を紹介しました。

② カスタムSkillの作成

skill-creatorを使ったSkill作成、SKILL.mdの書き方、テストと改善方法を紹介しました。

③ Claude Code・APIでの活用

個人用・プロジェクト用Skillの配置、Gitやプラグインによる共有、Skills APIとMessages APIによるシステム組み込みを紹介しました。

個人で試す場合は、まずClaudeアプリやClaude Codeへ小さなSkillを一つ追加するところから始めるのがよいでしょう。

同じ作業を繰り返すようになったら、入力条件、処理手順、エラー処理、完了条件を整理してカスタムSkill化します。

チームで利用する段階では、GitやプラグインでSkillを共有し、レビューとバージョン管理の対象にします。

さらにWebサービスやバッチ処理へ組み込む場合は、Skills API、Messages API、Code Execution Toolを使い、Skillのバージョンと実行環境を明示的に管理します。

Skillsは単なる長いプロンプトではなく、開発チームの作業手順や専門知識を、再利用可能なソフトウェア資産として扱うための仕組みです。

参考資料

  • Anthropic「Extend Claude with skills」
  • Anthropic「Agent Skills」
  • Anthropic「Get started with Agent Skills in the API」
  • Anthropic「Skills API Reference」
  • Anthropic公式GitHub「anthropics/skills」
  • Anthropic「Claude Agent SDK」