はじめに
Claude Codeを使っていて、毎回同じような指示を出していませんか?
- 「新しいIssueを作成して、内容は〇〇機能の実装」
- 「このIssueのPRブランチを作成して」
- 「現在のコンテキスト使用量を教えて」
こんな繰り返し作業をカスタムスラッシュコマンドで自動化すれば、開発効率が劇的に向上します。
本記事では、実際の開発フローに即したカスタムスラッシュコマンドの作成方法を紹介します。
カスタムスラッシュコマンドとは?
Claude Codeでは、Markdownファイルを作成するだけで独自のスラッシュコマンドを定義できます。
.claude/commands/
├── git/
│ ├── new-issue.md # /git:new-issue
│ └── create-pr.md # /git:create-pr
└── deploy/
└── staging.md # /deploy:staging
実装例1: AI生成Issue作成コマンド
従来の方法
「新規Issueを作成。内容は、タブ表示を可能にする」
→ Claudeが考えて、タイトルや詳細内容を生成
→ 手動でgh issue createを実行
スラッシュコマンド化
.claude/commands/git/new-issue.md
---
description: "Claudeが内容を考えて新規GitHub Issueを作成する"
allowed-tools: ["Bash"]
argument-hint: "要件の簡単な説明"
---
# 新規Issue自動作成
要件の簡単な説明から、Claudeが適切なIssueタイトルと詳細内容を生成してGitHub Issueを作成します。
## 要件
$ARGUMENTS
## 実行手順
1. **要件分析**: 上記の要件を分析し、適切な機能要件を整理
2. **タイトル生成**: 簡潔で分かりやすいIssueタイトルを作成
3. **内容生成**: 以下の構造でIssue本文を作成
- 概要(Overview)
- 詳細説明(Description)
- Phase別実装TODO
- Phase 1: 基本実装
- Phase 2: 機能拡張
- Phase 3: 最適化・改善
- 受入条件(Acceptance Criteria)
4. **Issue作成**: `gh issue create`でGitHub Issueを作成
5. **結果表示**: 作成されたIssueのURLと概要を表示
## 出力形式
- 生成したタイトルと内容を先に表示
- 確認後、実際にGitHub Issueを作成
- 作成完了後、IssueのURLを表示
使用方法
# 従来
「新規Issueを作成。内容は、タブ表示を可能にする」
# スラッシュコマンド化後
/git:new-issue タブ表示を可能にする
たったこれだけで、Claudeが自動的に:
- 適切なタイトルを生成
- Phase別のTODOを作成
- GitHub Issueとして実際に作成
してくれます。
実装例2: 効率的なPRブランチ作成
従来の問題点
git checkout main
git pull origin main
git checkout -b feature/issue-123
作業中のブランチから一度mainに戻る必要があり、非効率でした。
改良版コマンド
.claude/commands/git/create-pr.md
---
description: "IssueのPRをorigin/mainベースで作成"
allowed-tools: ["Bash"]
argument-hint: "issue番号 [phase名]"
---
# Issue PR作成
指定されたIssue番号のPRをorigin/mainブランチベースで作成します。
現在のブランチを変更せずに新しいブランチを作成します。
## 手順
1. Issue番号: $1
2. Phase指定: $2(省略時は全体)
3. ブランチ名を生成: `feature/issue-$1` または `feature/issue-$1-$2`
4. 以下のコマンドを実行:
```bash
# リモートの最新情報を取得
git fetch origin
# origin/mainベースで新しいブランチを作成・切り替え
git checkout -b feature/issue-$1$([ -n "$2" ] && echo "-$2") origin/main
# Issue情報を取得
gh issue view $1 --json title,body
- Issue情報を表示してPR準備完了を通知
- Phase指定がある場合は、そのPhase固有の作業範囲を説明
### 使用方法
```bash
# Issue全体のPR作成
/git:create-pr 123
# 特定PhaseのPR作成
/git:create-pr 123 frontend
/git:create-pr 123 phase1
メリット:
- 現在の作業を中断しない
- 常に最新のmainから分岐
- 統一されたブランチ命名規則
名前空間の活用
サブディレクトリを使用することで、コマンドを整理できます:
.claude/commands/
├── git/ # /git:xxx
├── deploy/ # /deploy:xxx
├── test/ # /test:xxx
└── docs/ # /docs:xxx
高度な機能
フロントマター設定
---
description: "コマンドの説明"
allowed-tools: ["Bash", "FileEdit"]
argument-hint: "期待する引数の説明"
model: "claude-3-5-sonnet-20241022"
---
引数の活用
-
$ARGUMENTS: すべての引数 -
$1,$2: 個別の引数 -
$([ -n "$2" ] && echo "-$2"): 条件付き引数展開
実際の効果
Before(従来)
- 長い説明文を毎回入力
- 手動でGitコマンド実行
- Issue情報の手動確認
- 繰り返し作業による時間の浪費
After(スラッシュコマンド化)
-
/git:new-issue 要件→ 自動でIssue作成 -
/git:create-pr 123→ 効率的なブランチ作成 - 開発に集中できる時間が大幅増加
まとめ
カスタムスラッシュコマンドの導入により:
- 作業時間の短縮: 繰り返し作業の自動化
- 一貫性の向上: 統一されたワークフロー
- 集中力の維持: 単純作業からの解放
-
チーム共有:
.claude/commands/をGitで管理
Claude Codeを使っているなら、ぜひカスタムスラッシュコマンドを活用して開発効率を向上させてください!