Claude Code Skills の使い方|カスタムスラッシュコマンドで作業を自動化
「毎回同じような指示を Claude Code に出している」「チームメンバーが各自バラバラの使い方をしていて品質にムラがある」――そんな悩みを抱えている方は多いのではないでしょうか。
Claude Code Skills は、繰り返し行う作業をカスタムスラッシュコマンドとして定義し、ワンコマンドで呼び出せるようにする仕組みです。プロジェクト固有のワークフローを Markdown ファイルに記述しておけば、チーム全員が同じ品質・同じ手順で作業を進められるようになります。
本記事では、Skills の基本概念から作成方法、実践的な活用例、チームでの共有パターンまでを網羅的に解説します。この記事を読み終えるころには、自分のプロジェクトに最適な Skills を設計・運用できるようになっているはずです。
Skills とは何か
Skills は、Claude Code に対する「定型の指示セット」をファイルとして保存し、スラッシュコマンドで呼び出せるようにする機能です。
通常、Claude Code に複雑な作業を依頼する場合、毎回詳細な指示を入力する必要があります。たとえば「コードレビューをして」と依頼するたびに、レビュー観点やチェック項目、出力フォーマットを伝えなければなりません。Skills を使えば、これらの指示をあらかじめファイルに定義しておき、/review のようなコマンド一つで呼び出せます。
Skills の主な特徴は以下の通りです。
- 再利用可能: 一度定義すれば何度でも呼び出せる
- 共有可能: Git で管理してチーム全体で同じ Skills を使える
- カスタマイズ可能: プロジェクトの技術スタック・コーディング規約に合わせた指示を書ける
- 引数対応: 実行時にパラメータを渡して動的に動作を変えられる
CLAUDE.md がプロジェクト全体の「ルールブック」だとすれば、Skills は特定のタスクに対する「手順書」です。この違いを理解しておくことが、効果的な運用の第一歩になります。
Skills の作成方法
Skills はプロジェクトの .claude/skills/ ディレクトリに Markdown ファイルとして配置します。ファイル名がそのままスラッシュコマンドの名前になります。
ディレクトリ構成
my-project/
.claude/
skills/
review.md -> /review で呼び出し
test.md -> /test で呼び出し
deploy.md -> /deploy で呼び出し
pr.md -> /pr で呼び出し
settings.json
CLAUDE.md
src/
...
.claude/skills/ ディレクトリが存在しない場合は、手動で作成してください。
mkdir -p .claude/skills
Skills ファイルの基本構造
Skills ファイルは通常の Markdown 形式で記述します。特別な構文は不要で、Claude Code に対する指示をそのまま書けば動作します。
# コードレビュー
以下の観点で現在の差分をレビューしてください。
## レビュー観点
1. ロジックの正しさ: バグや境界値の見落としがないか
2. 可読性: 変数名・関数名が適切か、コメントが必要な箇所はないか
3. パフォーマンス: 不要な再レンダリングやN+1クエリがないか
4. セキュリティ: インジェクションや認可漏れがないか
5. テスト: テストが追加・更新されているか
## 出力フォーマット
- 問題の深刻度を [Critical] [Warning] [Info] で分類
- 該当ファイルと行番号を明示
- 修正案を具体的なコードで提示
このファイルを .claude/skills/review.md として保存すると、Claude Code のセッション内で /review と入力するだけで、定義した観点に基づくコードレビューが実行されます。
引数を受け取る Skills
Skills は実行時に引数を受け取ることもできます。スラッシュコマンドの後に続けてテキストを入力すると、それが Skills の指示に追加のコンテキストとして渡されます。
# テスト生成
指定されたファイルに対してユニットテストを生成してください。
## テスト方針
- テストフレームワーク: Vitest を使用
- カバレッジ目標: 正常系・異常系・境界値を網羅
- モック: 外部依存はすべてモック化
- 命名規則: 「〜の場合、〜であること」形式の日本語
## ファイル配置
- テスト対象が `src/lib/xxx.ts` なら `src/lib/__tests__/xxx.test.ts` に配置
- テスト対象が `src/components/xxx.tsx` なら `src/components/__tests__/xxx.test.tsx` に配置
この Skills を /test src/lib/validators.ts のように引数付きで呼び出すと、validators.ts に対して定義済みの方針に基づくテストが生成されます。
実践的な Skills 例
ここからは、実際の開発で役立つ Skills の具体例を紹介します。それぞれのプロジェクトに合わせてカスタマイズしてください。
1. コードレビュー Skills
チーム全体で統一したレビュー基準を適用するための Skills です。
# コードレビュー
git diff でステージされた変更、またはコミット済みの最新の変更を
レビューしてください。
## 必須チェック項目
- [ ] 型安全性: any の使用がないか、型が適切に定義されているか
- [ ] エラーハンドリング: try-catch が適切か、ユーザーへのフィードバックがあるか
- [ ] セキュリティ: ユーザー入力のサニタイズ、認可チェック
- [ ] パフォーマンス: 不要な再計算、N+1クエリ、メモリリーク
- [ ] アクセシビリティ: ARIA属性、キーボード操作、スクリーンリーダー対応
- [ ] テスト: 変更に対応するテストが追加されているか
## 出力形式
問題ごとに以下の形式で出力:
**[深刻度]** ファイル名:行番号
- 問題: 何が問題か
- 理由: なぜ問題か
- 修正案: どう直すべきか(コードブロック付き)
深刻度は Critical / Warning / Suggestion の3段階。
## 最後に
全体の所感を3行以内でまとめてください。
2. PR 作成 Skills
コミット履歴と差分から、一貫したフォーマットの Pull Request を作成する Skills です。
# PR 作成
現在のブランチの変更内容から Pull Request を作成してください。
## 手順
1. `git log main..HEAD` でコミット履歴を確認
2. `git diff main...HEAD` で変更差分を確認
3. 変更内容を分析して PR を作成
## PR フォーマット
タイトル: 変更の種類を接頭辞として付ける
- feat: 新機能
- fix: バグ修正
- refactor: リファクタリング
- docs: ドキュメント
- chore: その他
本文:
概要
[変更の目的と背景を2-3文で]
変更内容
- [主要な変更点を箇条書き]
テスト
- [テスト方法・確認事項]
スクリーンショット
[UI変更がある場合のみ]
## 注意事項
- `gh pr create` コマンドで実際に PR を作成する
- ドラフト PR として作成する(`--draft` フラグ)
- レビュアーの自動アサインはしない
3. データベースマイグレーション Skills
スキーマ変更を安全に行うための手順を定義した Skills です。
# DBマイグレーション
指定されたスキーマ変更に対して、安全なマイグレーションを作成してください。
## 手順
1. 現在のスキーマを確認
2. マイグレーションファイルを生成
3. ロールバック手順も併記
## マイグレーション方針
- カラム追加: NOT NULL の場合はデフォルト値を設定してから制約追加
- カラム削除: まずアプリケーションコードの参照を削除し、次のリリースで削除
- インデックス追加: CONCURRENTLY オプションを使用
- テーブル名変更: ビューを作成して移行期間を設ける
## チェックリスト
- [ ] 既存データの整合性が保たれるか
- [ ] ロールバック可能か
- [ ] 大量データのテーブルでロックが発生しないか
- [ ] 関連する sqlc クエリが更新されているか
4. コンポーネント作成 Skills
プロジェクトのコンポーネント規約に沿った新規コンポーネントを生成する Skills です。
# コンポーネント作成
指定された名前と仕様でReactコンポーネントを作成してください。
## ファイル構成
コンポーネント名が `UserProfile` の場合:
- `src/components/user-profile.tsx` - コンポーネント本体
- `src/components/__tests__/user-profile.test.tsx` - テスト
## コーディング規約
- 関数コンポーネント + TypeScript
- Props の型は `type Props = { ... }` で定義(interface ではなく type)
- export は名前付きエクスポート(default export 禁止)
- スタイリングは Tailwind CSS
- フォーム部品は @blueai/ui の FormInput / FormButton を使用
- アイコンは @blueai/icons/duotone から import
## テンプレート
```tsx
import type { ReactNode } from "react";
type Props = {
// props の定義
};
export function ComponentName({ ...props }: Props) {
return (
// JSX
);
}
### 5. デプロイ Skills
デプロイ前のチェックと実行手順を標準化する Skills です。
```markdown
# デプロイ
本番環境へのデプロイを実行してください。
## 事前チェック
1. 現在のブランチが main であることを確認
2. ローカルの変更がすべてコミット済みであることを確認
3. `git pull origin main` で最新の状態に更新
4. テストを実行して全件パスすることを確認
5. ビルドが成功することを確認
## チェック結果
各項目の結果を以下の形式で報告:
- [PASS] または [FAIL] + 詳細
## デプロイ実行
全チェックが PASS の場合のみ、デプロイコマンドを実行。
1つでも FAIL がある場合は、デプロイを中止して問題を報告。
## 注意
- FAIL 時は絶対にデプロイしない
- デプロイ完了後、ヘルスチェックエンドポイントで疎通確認
プロジェクト固有の Skills 設計パターン
Skills の効果を最大化するには、プロジェクトの特性に合わせた設計が重要です。以下に、よくある設計パターンを紹介します。
パターン1: レイヤー別 Skills
アプリケーションのレイヤー(プレゼンテーション・ビジネスロジック・データアクセス)ごとに Skills を分ける手法です。各レイヤーの規約や慣習が異なるプロジェクトに適しています。
.claude/skills/
new-handler.md # HTTP ハンドラーの追加手順
new-service.md # サービスレイヤーの追加手順
new-repository.md # リポジトリの追加手順
new-route.md # フロントエンドのルート追加手順
パターン2: ワークフロー Skills
開発の一連の流れ(機能開発、バグ修正、リリースなど)をワークフローとして定義する手法です。
.claude/skills/
feature-start.md # 機能開発の開始(ブランチ作成、雛形生成)
feature-finish.md # 機能開発の完了(テスト、PR 作成)
hotfix.md # ホットフィックスの手順
release.md # リリース手順
ワークフロー Skills では、手順を段階的に定義し、各段階での確認ポイントを明記しておくのがコツです。
パターン3: 品質ゲート Skills
品質チェックをカテゴリ別に分けて定義する手法です。CI/CD パイプラインの各段階で異なるチェックを実行したい場合に有効です。
.claude/skills/
lint-check.md # 静的解析チェック
security-check.md # セキュリティチェック
perf-check.md # パフォーマンスチェック
a11y-check.md # アクセシビリティチェック
設計のヒント
Skills を設計する際に意識すべきポイントをまとめます。
- 1 Skill = 1 タスク: 一つの Skills に複数の無関係なタスクを詰め込まない。「コードレビューとデプロイ」のような Skills は分割する
- 冪等性を意識する: 同じ Skills を2回実行しても問題が起きないように設計する
- 明示的な出力形式: 出力のフォーマットを指定しておくと、結果が安定する
- エスケープハッチを用意する: 「判断に迷った場合はユーザーに確認する」のような指示を含めておく
- 段階的に育てる: 最初からすべてを定義しようとせず、実際に使いながら改善していく
チームでの Skills 共有方法
Skills はプロジェクトの .claude/skills/ ディレクトリに配置されるため、Git リポジトリにコミットすればチーム全体で共有できます。
Git での管理
# Skills ファイルを作成
mkdir -p .claude/skills
vim .claude/skills/review.md
# Git にコミット
git add .claude/skills/
git commit -m "feat: コードレビュー Skills を追加"
git push
チームメンバーが git pull するだけで、同じ Skills が全員の環境で利用可能になります。新メンバーがプロジェクトに参加した際も、Skills が「このプロジェクトではどうやって作業するか」のガイドとして機能します。
個人用 Skills とプロジェクト Skills の使い分け
Skills はプロジェクト単位(.claude/skills/)だけでなく、ユーザーのホームディレクトリ(~/.claude/skills/)にも配置できます。
| 配置場所 | スコープ | Git 管理 | 用途 |
|---|---|---|---|
.claude/skills/ | プロジェクト | される | チーム共有の標準手順 |
~/.claude/skills/ | 全プロジェクト | されない | 個人の汎用的な作業 |
プロジェクト Skills にはチームで合意した標準手順を、個人 Skills には自分だけの便利ショートカットを定義するのが一般的です。
運用のベストプラクティス
チームで Skills を運用する際のベストプラクティスを紹介します。
命名規則を統一する
# 良い例: 動詞で始まる、何をするかが明確
review.md
create-component.md
run-migration.md
# 避ける例: 曖昧、重複しやすい
check.md
do-stuff.md
misc.md
Skills の変更は PR でレビューする
Skills の変更はチーム全体のワークフローに影響します。通常のコード変更と同様に PR を作成し、チームでレビューしてからマージしましょう。
定期的な棚卸し
使われなくなった Skills や、内容が古くなった Skills は定期的に見直します。不要な Skills が残っているとスラッシュコマンドの補完に表示されてノイズになります。
Skills と CLAUDE.md の使い分け
Skills と CLAUDE.md はどちらも Claude Code の動作をカスタマイズする仕組みですが、役割が異なります。
CLAUDE.md の役割
CLAUDE.md はセッション開始時に自動的に読み込まれる設定ファイルです。プロジェクト全体に適用される「常時有効なルール」を記述します。
# CLAUDE.md
## コーディング規約
- TypeScript strict モードを使用
- ESLint + Prettier でフォーマット
- テストは Vitest
## ディレクトリ構成
- src/routes/ - ページ
- src/components/ - コンポーネント
- src/lib/ - ユーティリティ
## 命名規則
- ファイル名: kebab-case
- 型名: PascalCase
Skills の役割
Skills は明示的に呼び出されるタスク固有の指示セットです。特定の作業を実行するときだけ使います。
判断基準
| 特性 | CLAUDE.md | Skills |
|---|---|---|
| 読み込み | 自動(セッション開始時) | 手動(コマンド実行時) |
| 適用範囲 | 全セッション共通 | 特定タスクのみ |
| 内容の性質 | ルール・制約・規約 | 手順・ワークフロー |
| 更新頻度 | 低い(基盤が変わるとき) | 中程度(手順改善時) |
| 文量の目安 | 簡潔に(トークン節約) | 詳細に(タスクごとの精度向上) |
CLAUDE.md に書くべきもの:
- コーディング規約
- ディレクトリ構成
- 命名規則
- 使用するライブラリとバージョン
- やってはいけないこと(禁止ルール)
Skills に書くべきもの:
- 特定の作業手順(レビュー、テスト、デプロイ)
- 出力フォーマットの指定
- 複数ステップのワークフロー
- チェックリスト
両者を適切に使い分けることで、CLAUDE.md のトークン消費を抑えながら、必要なときだけ詳細な指示を読み込ませるという効率的な運用が実現します。
CLAUDE.md の設定方法について詳しくは、以下の記事を参考にしてください。
Skills を活用した高度なワークフロー
Skills の基本を押さえたら、さらに高度な活用方法にも挑戦してみましょう。
非対話モードとの組み合わせ
Skills は -p フラグを使った非対話モードでも利用できます。これにより、CI/CD パイプラインやシェルスクリプトから Skills を自動実行できます。
# CI/CD でコードレビューを自動実行
claude -p "/review"
# テスト生成を自動実行
claude -p "/test src/lib/validators.ts"
シェルスクリプトとして定義しておけば、Git フックやデプロイスクリプトに組み込むこともできます。
サブエージェントとの連携
Claude Code のサブエージェント機能と Skills を組み合わせると、複雑なタスクを並列で効率的に処理できます。たとえば、Skills 内でサブエージェントに調査タスクを委譲し、その結果を元に次のアクションを実行するような構成が可能です。
サブエージェントの詳細については、以下の記事で解説しています。
エージェント的な運用
Skills を充実させていくと、Claude Code をより自律的なエージェントとして運用できるようになります。定型作業の大部分を Skills で標準化し、Claude Code が自律的に判断・実行する範囲を段階的に広げていくアプローチです。
エージェントとしての活用方法については、以下の記事で詳しく解説しています。
セキュリティを意識した Skills 設計
Skills が強力になるほど、セキュリティへの配慮も重要になります。特に本番環境への操作を含む Skills では、確認ステップやガードレールを組み込んでおくべきです。
## 安全確認
- 本番データベースへの直接操作は禁止
- デプロイは必ず事前チェックを通過してから実行
- 機密情報(API キー、パスワード)をログに出力しない
セキュリティ対策の詳細については、以下の記事を参照してください。
まとめ
本記事では、Claude Code Skills の概念から作成方法、実践的な活用例、チームでの運用方法までを解説しました。ポイントを振り返ります。
- Skills はカスタムスラッシュコマンド:
.claude/skills/に Markdown ファイルを配置するだけで利用可能 - 1 Skill = 1 タスク: 再利用性と明確さのために、タスクを適切な粒度で分割する
- CLAUDE.md との使い分け: 常時有効なルールは CLAUDE.md に、タスク固有の手順は Skills に
- Git で共有: プロジェクトの
.claude/skills/をコミットすれば、チーム全員が同じ Skills を利用可能 - 段階的に育てる: 最初から完璧を目指さず、使いながら改善を重ねる
- 高度な活用: 非対話モードやサブエージェントと組み合わせることで、自動化の幅が広がる
Skills を効果的に活用することで、Claude Code は単なる AI アシスタントから「チームの開発プロセスを標準化・自動化するプラットフォーム」へと進化します。まずはコードレビューや PR 作成など、日常的に繰り返す作業から Skills 化を始めてみてください。
より体系的にスラッシュコマンドと Skills の活用方法を学びたい方は、以下のレッスンも参考にしてください。