第6章 · Claude Code Advanced

Slash Commands (スラッシュコマンド)

Slash Commands
→ で次のスライド · F でフルスクリーン · N で講師ノート · Esc で終了

重要キーワード

Slash Command
スラッシュコマンド
/ で始まる定型タスク呼び出し
Frontmatter
フロントマター
Markdown 冒頭の YAML メタデータ
$ARGUMENTS
引数変数
コマンド呼び出し時の引数を展開する変数

Slash Commands

/ で始まるコマンドで、よく使うタスクをショートカット化できます。

組み込みコマンド (一部)

コマンド 機能
/help ヘルプ
/clear コンテキストクリア
/model モデル切替
/init CLAUDE.md 雛形生成
/review PR レビュー
/security-review セキュリティ観点でのレビュー
/config 設定
/agents サブエージェント一覧
/permissions 権限ルール編集
/cost セッションのトークン消費表示
/compact 会話の要約圧縮

カスタムコマンド

.claude/commands/<name>.md を作るだけで自分の slash command を定義できます。

例: .claude/commands/test.md

---
description: プロジェクトの全テストを実行する
---

このプロジェクトの自動テストを実行し、失敗があれば原因を分析してください。
- Python: `pytest -q`
- Node: `npm test`
失敗したテスト名と原因の要約を箇条書きでまとめてください。

$ARGUMENTS

引数を受け取れます。

---
description: 指定したファイルを要約
---

@$ARGUMENTS の内容を 5 行で要約してください。

呼び出し:

/summarize src/server.py

階層

  • ~/.claude/commands/... ユーザーグローバル
  • <repo>/.claude/commands/... プロジェクト固有

チームでカスタムコマンドを共有するなら、リポジトリにコミットしましょう。

よく使われる自作コマンド例

コマンド 用途
/lint-fix フォーマッタ + 自動修正 + テスト
/changelog 直前のコミット群から CHANGELOG エントリを生成
/migrate-test DB マイグレーションのテスト
/triage 直近の Issues を優先度順にトリアージ
/release-notes リリースノートを下書き

Frontmatter の主な項目

---
description: コマンドの説明 (必須)
allowed-tools: Read, Edit, Bash    # 利用可能ツールを限定 (任意)
argument-hint: <file path>          # 引数のヒント (任意)
---

Plugin としての配布

カスタムコマンド・スキル・MCP を一括配布する Plugin という仕組みもあります。 GitHub に公開して、claude plugin install <user>/<repo> のように受講者全員に配るのに便利。


実用例: 5 つの自作コマンド完全版

すぐコピペで使える 本格的な自作コマンド集.claude/commands/ に置くだけで動きます。

/review — git diff レビュー

.claude/commands/review.md

```markdown

description: 現在の git diff をレビューし、問題点と改善提案を出す allowed-tools: Bash, Read, Grep


現在のブランチの未コミット変更 (git diff) と、main からの差分 (git diff main...HEAD) をレビューしてください。

レビュー観点

  1. バグの可能性 - off-by-one、null チェック漏れ、例外処理の抜け
  2. セキュリティ - SQL injection、XSS、シークレットのハードコーディング
  3. パフォーマンス - N+1 クエリ、不要なループ、巨大コピー
  4. 可読性 - 命名、関数の長さ、コメントの過不足
  5. テスト - 変更箇所に対応するテストが追加されているか

出力フォーマット

  • 🔴 Critical: 必ず直すべき
  • 🟡 Warning: 直したほうが良い
  • 🟢 Nit: 好み・スタイル
  • ✅ Good: 褒めるべき改善点

各指摘にファイル名と行番号 (file:line 形式) を必ず添えてください。 ```

呼び出し: /review

/ship — テスト → コミット → push の連鎖

.claude/commands/ship.md

```markdown

description: テスト→コミット→push を自動化 (失敗時は中断) allowed-tools: Bash, Read, Edit argument-hint:


以下を順に実行してください。いずれかが失敗したら即座に停止し、原因を報告してください。

  1. git status で現在の変更を確認
  2. pytest -q (Python) または npm test (Node) でテスト実行
  3. ruff check または eslint . で lint
  4. すべて緑なら git add -A && git commit -m "$ARGUMENTS"
  5. git push origin HEAD で push
  6. もし PR がまだなら gh pr create --fill で PR 作成

中断時の対応

  • テスト失敗: 失敗テスト名と原因を報告し、修正提案
  • lint 失敗: ファイル名と違反内容を報告
  • コミット拒否 (pre-commit hook): フックの出力を要約

途中で中断する時は 絶対に push しない。 ```

呼び出し: /ship feat: add OAuth login

/debug — エラー再現と原因特定

.claude/commands/debug.md

```markdown

description: エラーログから再現手順と原因を特定 allowed-tools: Read, Grep, Glob, Bash argument-hint: <エラーメッセージ or ログファイルパス>


ユーザーが提示するエラー: $ARGUMENTS

手順

  1. エラーから関連ファイルを推定 (スタックトレース・キーワードを Grep)
  2. 関連コードを Read して現状を把握
  3. 再現スクリプト を作成 (scripts/repro_<日付>.sh 等の使い捨て)
  4. 再現を実行 して挙動を確認
  5. 根本原因を仮説 (3 つ程度)
  6. 修正案 を提示 (パッチではなく、変更すべき箇所と理由)

修正は 適用しないこと。原因特定だけが仕事。 適用するかは人が判断する。 ```

呼び出し: /debug TypeError: Cannot read property 'name' of undefined at user.js:42

/cleanup — 削除候補のスキャン

.claude/commands/cleanup.md

```markdown

description: 未使用コード・依存・ファイルの候補をスキャン allowed-tools: Bash, Read, Grep, Glob


このリポジトリから 削除候補 をスキャンしてください。

チェック項目

  1. 未使用 import (Python: ruff check --select F401, JS: eslint --rule no-unused-vars)
  2. 未使用関数/変数 (定義されているが参照ゼロ)
  3. 未使用ファイル (どこからも import/require されていない)
  4. 重複コード (3 箇所以上で似たロジック)
  5. 古い TODO/FIXME (3 ヶ月以上前の git blame)
  6. 重複依存 (package.json / requirements.txt に同種ライブラリ)
  7. 使われていない環境変数 (.env.example にあるが参照なし)

出力

| カテゴリ | パス | 提案 | リスク (高/中/低) |

勝手に削除しないこと。レポートのみ。 ```

呼び出し: /cleanup

/explain — コード解説

.claude/commands/explain.md

```markdown

description: 指定ファイルを初心者向けに解説 allowed-tools: Read argument-hint:


@$ARGUMENTS を読み、プログラミング 1 年目の人 が理解できる粒度で解説してください。

構成

  1. このファイルの役割 (1〜2 行で)
  2. 全体のフロー (時系列の箇条書き)
  3. 重要な関数 3 つ をピックアップして詳細解説
  4. 使われている設計パターン があれば名前と理由
  5. 読むときの注意点 (落とし穴・前提知識)
  6. 関連ファイル (一緒に読むと理解が進むファイル)

専門用語は初出時にカッコで日本語訳。コード断片を引用するときは file:line を添える。 ```

呼び出し: /explain src/auth/oauth.py


コマンド設計 4 原則

  1. 動詞 + 目的が一目で分かる名前 (/review ◎ vs /check △)
  2. allowed-tools で最小権限 (Read だけで済むものに Bash を渡さない)
  3. 出力フォーマットを明示 (絵文字・表・優先度ラベル)
  4. 「やってはいけないこと」を書く (/debug の「修正は適用しない」など)

💡 自分が 週 3 回以上打つフレーズ は Slash Command 化すると劇的に速くなります。

Hands-on Exercise

演習: /test カスタムコマンドを作る

あなたのプロジェクトで .claude/commands/test.md を作成し、次の動作をするようにしてください:

  1. pytest または npm test を実行
  2. 失敗があれば失敗テスト名を一覧化
  3. 失敗の根本原因を 1 行で推定

実装後、Claude Code セッションで /test を打って動作確認してください。

▶ Playground を開いて実行
Hands-on Exercise

演習: /explain $ARGUMENTS を作る

ファイル名を引数に取り、コードを 200 字以内で説明する /explain コマンドを作ってください。

呼び出し例: /explain app.py

▶ Playground を開いて実行

理解度チェック

4 問のクイズで理解度を確認しましょう。

クイズを開く
🎉

まとめ

お疲れ様でした!