💻 Claude Code入門
📖 約16分で読めます
カスタムスラッシュコマンドの作り方 ― 自分だけのワークフローを構築
.claude/commands/ディレクトリで独自コマンドを定義する方法
はじめに
Claude Codeのカスタムスラッシュコマンドは、よく使うワークフローを.claude/commands/ディレクトリ内のMarkdownファイルとして定義し、/コマンド名で呼び出せる機能です。チームの開発規約を標準化したり、繰り返しの作業を効率化したりするのに非常に有効です。
この記事では、カスタムコマンドの作り方から、実用的なコマンド例5選以上までを解説します。
.claude/commands/ディレクトリの構成
カスタムスラッシュコマンドは、特定のディレクトリにMarkdownファイルを配置することで定義します。
コマンドの配置場所
| 場所 | スコープ | 用途 |
|---|---|---|
.claude/commands/ または .claude/skills/ | プロジェクト単位 | プロジェクト固有のコマンド(チーム共有可能) |
~/.claude/commands/ または ~/.claude/skills/ | ユーザー単位 | 全プロジェクトで使うグローバルなコマンド |
ディレクトリ構成例
my-project/
├── .claude/
│ └── commands/
│ ├── deploy.md → /deploy で呼び出し
│ ├── create-component.md → /create-component で呼び出し
│ ├── db-migrate.md → /db-migrate で呼び出し
│ ├── generate-tests.md → /generate-tests で呼び出し
│ └── update-docs.md → /update-docs で呼び出し
├── src/
├── tests/
└── CLAUDE.md
命名ルール
- ファイル名がそのままコマンド名になる(拡張子.mdを除く)
- ケバブケース(ハイフン区切り)を推奨:
create-component.md - サブディレクトリで分類も可能:
commands/db/migrate.md→/db:migrate
コマンドファイルの作り方
コマンドファイルはMarkdown形式で、Claude Codeへの指示をそのまま記述します。
基本構造
.claude/commands/format.md
プロジェクト内の変更されたファイルをフォーマットしてください。
手順:
1. `git diff --name-only`で変更されたファイルを特定する
2. PHPファイルには`php-cs-fixer fix`を実行する
3. JavaScriptファイルには`npx prettier --write`を実行する
4. CSSファイルには`npx prettier --write`を実行する
5. フォーマット結果を報告する
このファイルを配置すると、Claude Codeのセッション中に/formatと入力するだけで上記の手順が実行されます。
効果的なコマンドファイルの書き方
ポイント
- 目的を明確に:最初の1〜2行で何をするコマンドかを説明
- 手順を具体的に:番号付きリストで手順を明確にする
- 条件分岐を含める:「もし〜なら」の条件も記述
- エラーハンドリング:エラー時の対応も記述
- 出力形式を指定:結果をどう表示するか指定
パラメータ付きコマンド
コマンドに引数を渡すことで、柔軟な操作が可能です。
$ARGUMENTSの使い方
.claude/commands/create-component.md
以下の名前でコンポーネントを作成してください: $ARGUMENTS
作成するファイル:
1. `src/components/$ARGUMENTS/$ARGUMENTS.php` - メインコンポーネント
2. `src/components/$ARGUMENTS/$ARGUMENTS.css` - スタイルシート
3. `tests/components/$ARGUMENTS.test.php` - テストファイル
テンプレート要件:
- PHPファイルにはクラス定義とrender()メソッドを含める
- CSSファイルにはBEM命名規則でベースクラスを定義
- テストファイルにはrender、props、イベントの基本テストを含める
- コーディング規約はCLAUDE.mdに従うこと
# 使い方
/create-component UserProfile
# $ARGUMENTSが "UserProfile" に置換される
複数パラメータの活用
.claude/commands/create-api.md
以下の仕様でREST APIエンドポイントを作成してください。
引数: $ARGUMENTS
(形式: リソース名 [オプション])
例: /create-api products --with-auth --with-pagination
手順:
1. 引数からリソース名を解析する
2. 以下のファイルを作成する:
- api/{リソース名}.php - APIエンドポイント
- includes/{リソース名}_handler.php - ビジネスロジック
3. CRUDエンドポイント(GET一覧、GET単体、POST、PUT、DELETE)を実装
4. --with-authが指定されていれば認証チェックを追加
5. --with-paginationが指定されていればページネーションを追加
6. レスポンスはJSON形式
7. エラーハンドリングを含める
チームでのコマンド共有
プロジェクトの.claude/commands/ディレクトリをGitで管理すれば、チーム全員が同じカスタムコマンドを使えます。
チーム共有の手順
.claude/commands/ディレクトリを作成- コマンドファイル(.md)を配置
- Gitにコミット&プッシュ
- チームメンバーがプル後、すぐにコマンドが利用可能
# .gitignoreに.claudeを除外していないことを確認
# 以下のように設定を追加
# .gitignore
.claude/settings.json # 個人設定は除外
!.claude/commands/ # コマンドは共有する
共有時のベストプラクティス
- コマンドファイルの先頭にコメントで用途を説明する
- チームのコーディング規約をコマンドに組み込む
- プロジェクト固有の技術スタック情報を含める
- 新メンバーのオンボーディングにもなる
実用コマンド例5選+
コマンド1: /deploy(デプロイ)
.claude/commands/deploy.md
デプロイを実行してください。
対象環境: $ARGUMENTS(指定がなければ staging)
手順:
1. `git status`で未コミットの変更がないか確認する
- 変更がある場合はデプロイを中止し、先にコミットするよう提案
2. `git log --oneline -5`で最近のコミットを表示して確認
3. 対象環境に応じたデプロイコマンドを実行:
- staging: `./scripts/deploy-staging.sh`
- production: 本番デプロイ前に変更内容のサマリーを表示し、確認を求める
4. デプロイ後に `curl -s -o /dev/null -w "%{http_code}" https://対象URL/health` でヘルスチェック
5. 結果を報告する
注意:
- productionデプロイ前には必ず確認を求めること
- エラーが発生した場合はログを表示して対処法を提案すること
コマンド2: /generate-tests(テスト生成)
.claude/commands/generate-tests.md
以下のファイルのテストを生成してください: $ARGUMENTS
手順:
1. 指定されたファイルを読み込む
2. ファイル内のすべてのパブリックメソッドを列挙する
3. 各メソッドに対して以下のテストケースを生成する:
- 正常系(期待される入力での動作)
- 異常系(不正な入力、エッジケース)
- 境界値(最小値、最大値、空値)
4. テストファイルを tests/ ディレクトリに配置する
- ファイルパスに対応する構造で配置
- 例: src/Services/UserService.php → tests/Services/UserServiceTest.php
5. テストを実行して全てパスすることを確認する
テストの規約:
- PHPUnit使用
- テストメソッド名は test_メソッド名_条件_期待結果 形式
- 日本語コメントで各テストの目的を記述
- setUp()で共通の初期化処理をまとめる
コマンド3: /db-migrate(データベースマイグレーション)
.claude/commands/db-migrate.md
データベースマイグレーションを作成・実行してください。
操作: $ARGUMENTS
(例: /db-migrate create users_add_email, /db-migrate run, /db-migrate rollback)
引数の解析:
- "create [名前]": 新しいマイグレーションファイルを作成
- "run": 未実行のマイグレーションを実行
- "rollback": 最後のマイグレーションを取り消す
- "status": マイグレーションの状態を確認
マイグレーションファイルの配置先: db/migrations/
ファイル名形式: YYYYMMDD_HHMMSS_名前.sql
マイグレーションファイルには以下を含める:
- -- UP: セクション(適用するSQL)
- -- DOWN: セクション(取り消すSQL)
データベースはSQLite3を使用。
既存のスキーマはdb/schema.sqlを参照すること。
コマンド4: /update-docs(ドキュメント更新)
.claude/commands/update-docs.md
コードの変更に合わせてドキュメントを更新してください。
対象: $ARGUMENTS(指定がなければ直近のコミット)
手順:
1. 対象のコード変更を確認する
- 指定がなければ `git diff HEAD~1` で確認
- ファイルパスが指定されていればそのファイルを確認
2. 変更に関連するドキュメントを特定する:
- CLAUDE.md内の関連セクション
- API仕様に関わる場合はAPI docを更新
- 設定変更の場合はセットアップ手順を更新
3. ドキュメントを更新する
4. 変更箇所の差分を表示して確認を求める
注意:
- 既存のドキュメントスタイルに合わせること
- 日本語で記述すること
- コードブロックには適切な言語指定を付けること
コマンド5: /security-check(セキュリティチェック)
.claude/commands/security-check.md
プロジェクトのセキュリティチェックを実行してください。
対象: $ARGUMENTS(指定がなければプロジェクト全体)
チェック項目:
1. **SQLインジェクション**: プリペアドステートメントを使用していないクエリを検出
2. **XSS**: htmlspecialchars()なしの出力を検出
3. **CSRF**: フォームにCSRFトークンが含まれているか確認
4. **認証**: 管理画面のルートに認証チェックがあるか確認
5. **機密情報**: ハードコードされたパスワードやAPIキーを検出
6. **ファイルパーミッション**: 設定ファイルへのアクセス制御を確認
7. **入力バリデーション**: ユーザー入力の検証が適切か確認
出力形式:
- 各チェック項目ごとに結果を表示
- 問題が見つかった場合はファイル名と行番号を表示
- 重大度を「高」「中」「低」で分類
- 各問題に対する修正案を提示
注意:
- 誤検知の可能性がある場合はその旨を記載すること
- CLAUDE.mdのセキュリティ要件も参照すること
コマンド6: /create-page(ページ生成)
.claude/commands/create-page.md
新しいページを作成してください: $ARGUMENTS
作成するファイル:
1. ページ本体のPHPファイル
2. 必要に応じてCSSの追記
3. ナビゲーションへのリンク追加
テンプレートに含める要素:
- 共通ヘッダー(includes/header.php)
- 共通フッター(includes/footer.php)
- メタタグ(title, description, OGP)
- パンくずリスト
- レスポンシブ対応のレイアウト
CLAUDE.mdのデザイン要件に従うこと。
既存ページのスタイルと一貫性を保つこと。
高度なテクニック
コンテキスト情報の活用
コマンドファイル内でプロジェクトの情報を参照するよう指示できます。
# コマンド内でCLAUDE.mdを参照させる
CLAUDE.mdのコーディング規約に従って作業してください。
# Git情報を活用させる
git logから最近のコミットスタイルを参照して、
同じ形式でコミットメッセージを生成してください。
条件分岐を含むコマンド
# ファイルの種類に応じた処理
引数で指定されたファイルの拡張子に応じて以下を実行:
- .php → PHPUnitテストを生成
- .js → Jestテストを生成
- .py → pytestテストを生成
- それ以外 → 対応していない旨を通知
まとめ
カスタムスラッシュコマンドのポイントを振り返ります。
- 配置場所:
.claude/commands/(プロジェクト)または~/.claude/commands/(グローバル)にMarkdownファイルを配置 - 命名:ファイル名がコマンド名になる。ケバブケースを推奨
- パラメータ:
$ARGUMENTSプレースホルダーで引数を受け取れる - チーム共有:
.claude/commands/をGitで管理すれば全員が使える - 実用例:deploy、テスト生成、DBマイグレーション、ドキュメント更新、セキュリティチェック等
- コツ:目的・手順・条件・エラーハンドリングを明確に記述する
まずは自分が繰り返している作業を1つ選んで、カスタムコマンドとして定義してみましょう。チームで共有すれば、開発ワークフローの標準化にもつながります。
Claude Code入門の他のガイド
Claude Code導入ガイド ― Windows/Mac完全対応
Claude Codeのインストールから初回起動まで、OS別に完全対応 ・ 約30分
Claude Codeの主要スラッシュコマンドと活用法
16個のスラッシュコマンドを完全網羅。使い方・実行例・組み合わせテクニックまで ・ 約15分
Claude Codeの権限設定(パーミッション)完全ガイド
セキュリティと利便性を両立する権限管理の全知識 ・ 約18分
Claude Codeのモデル切り替え活用術 ― Opus・Sonnet・Haikuの使い分け
タスクに応じた最適なモデル選択でコストと品質を両立する方法 ・ 約15分
Claude Codeのセッション管理術 ― 効率的な作業の進め方
セッションの開始・継続・再開を使いこなして、長期プロジェクトを効率的に進める ・ 約12分
Claude Codeのコマンドラインオプション完全リファレンス
全CLIオプションを網羅。起動時に使える引数を徹底解説 ・ 約20分
Claude Codeのプロジェクト設定(.claude/)完全ガイド
.claudeディレクトリとCLAUDE.mdを使いこなしてチーム開発を効率化 ・ 約15分
Claude Codeの出力フォーマットとパイプ活用術
--printモードとパイプを使った自動化・スクリプト連携の実践テクニック ・ 約15分
Claude Codeのキーボードショートカットと操作効率化
知っておくべきショートカットキーと入力テクニックで作業速度を2倍に ・ 約12分
Claude Codeのアップデートとバージョン管理
最新版への更新方法からダウングレード、トラブル対処まで ・ 約10分
Claude Codeの/doctorコマンドとトラブル診断
問題発生時の診断フローとよくあるエラーの解決方法 ・ 約12分
CLAUDE.mdの書き方完全ガイド ― プロジェクト指示書のベストプラクティス
プロジェクトの文脈をAIに正確に伝える設定ファイルの書き方 ・ 約20分
Claude Codeのメモリ機能 ― 会話をまたいだ記憶の活用法
プロジェクト固有の知識を永続化して効率を最大化する ・ 約18分
.claude/settings.jsonの設定項目一覧と活用法
Claude Codeの動作を細かく制御する設定ファイルの全貌 ・ 約15分
プロジェクト別CLAUDE.mdテンプレート集 ― コピペで使える10パターン
React・Next.js・Python・PHP・WordPress等、主要技術スタック別テンプレート ・ 約25分
チーム開発でのCLAUDE.md運用術
チーム全員がAIを最大限活用するための共有設定と運用ルール ・ 約20分
Claude CodeでGitを使いこなす ― 基本操作編
自然な日本語でGitを操作する方法を基本から解説 ・ 約20分
Claude Codeでコミットメッセージを自動生成する
変更内容を分析して最適なコミットメッセージを提案してくれるAI活用術 ・ 約18分
Claude CodeでPR(プルリクエスト)を作成・レビューする
AI支援によるPR作成からコードレビューまでの実践的ワークフロー ・ 約20分
Claude Codeでブランチ戦略を実践する
Git Flow・GitHub Flow・トランクベースを理解し、AIで効率的にブランチを管理 ・ 約20分
Claude Codeでコンフリクト解決をAIに任せる
マージの衝突が起きても慌てない。AIによるコンフリクト解決の実践ガイド ・ 約18分
Claude Codeでgit logを分析して変更履歴を理解する
コミット履歴からバグの原因特定やプロジェクトの変遷を把握する ・ 約22分
Claude Codeでリリースノートを自動生成する
コミット履歴からユーザー向け・開発者向けリリースノートを作成する ・ 約20分
Claude Codeのコンテキスト節約術 ― トークンを無駄にしない10の方法
コンテキストウィンドウを理解し、トークン消費を最適化するテクニック集 ・ 約18分
/compactコマンド徹底解説 ― 会話を圧縮して作業を続ける
/compactの仕組み・使いどころ・カスタム指示を完全網羅 ・ 約15分
大規模プロジェクトでのClaude Code活用戦略
大規模コードベースでの効率的なAI活用パターンとベストプラクティス ・ 約20分
.gitignoreとClaude Code ― 読み込みファイルの最適制御
ファイル探索の仕組みを理解し、ノイズを減らして精度を上げる ・ 約14分
効率的なタスク分割術 ― 1セッションの最適な使い方
タスク境界の見極めとセッション計画で生産性を最大化 ・ 約16分
Claude CodeのSkills機能入門 ― カスタムコマンドで作業を効率化
組み込みスキルからカスタムワークフローまで完全ガイド ・ 約15分
Claude Codeのフック(Hooks)でワークフローを自動化する
PreToolUse・PostToolUseフックで品質と安全性を自動で担保 ・ 約18分
MCPサーバーでClaude Codeを拡張する ― 外部ツール連携ガイド
Model Context Protocolで無限の拡張性を手に入れる ・ 約18分
Claude CodeとVS Code・JetBrainsの連携活用法
ターミナルAIとIDEを組み合わせた最強の開発環境構築 ・ 約15分
Claude Codeでウェブサイトを0から作る実践ガイド
プロジェクト作成からデプロイまでの完全チュートリアル ・ 約20分
Claude Codeでテストコードを書かせるテクニック
単体テストからE2Eテストまで、AIによるテスト自動生成 ・ 約22分
Claude Codeでリファクタリングを効率化する
安全なコード改善をAIと一緒に進める方法 ・ 約22分
Claude Codeでドキュメントを自動生成する
README・API文書・コードコメントを効率的に作成 ・ 約20分
Claude Codeでバグを素早く見つけて修正するテクニック
エラー解析からホットフィックスまでのデバッグワークフロー ・ 約20分
Claude CodeでREST APIを設計・実装する
要件定義からテストまでAPI開発の全工程をAIと進める ・ 約25分
Claude Codeでデータベース設計を相談・実装する
ER図からマイグレーションまでDB設計をAIに相談 ・ 約22分
Claude Codeで既存プロジェクトを分析・理解する
新しいコードベースのオンボーディングをAIで加速 ・ 約22分