Claude Code実践ガイド #1 - スラッシュコマンドのすすめ

に公開

はじめに

Claude Codeを使い続けていると、似たようなパターンの指示を繰り返していることに気づきます。「前回の作業の続きから」「批判的にレビューして」「このプロジェクトの規約に従って」など。

スラッシュコマンドを使えば、こうした定型的な指示を /resume/review/follow-rules のように簡潔に実行できます。

スラッシュコマンドとは

スラッシュコマンドは、/ で始まる特別なコマンドです。Claude Codeには2種類のスラッシュコマンドがあります。

組み込みコマンド

Claude Code自体もいくつかのスラッシュコマンドを提供しています。これらのスラッシュコマンドはClaude Codeのアプリを操作するものです。以下のようなものがあります。詳細な一覧は/helpコマンドか公式サイトを参照してください。

  • /config - 設定の表示・変更
  • /vim - vimモードの切り替え
  • /clear - 会話履歴のクリア
  • /memory - CLAUDE.mdファイルの編集

カスタムコマンド

ユーザーが独自のスラッシュコマンドを定義して利用することもできます。組み込みコマンドと異なり、「事前に定義したプロンプトを一括で渡す」という目的で用います。

基本的には一定のプロンプトを渡しているだけではあるものの、スラッシュコマンドにすることによって以下のようなメリットがあります。

  • 複雑な指示を簡潔に実行
  • 補完が効くので少ないタイプ数で呼び出せる
  • チームで共通のプロンプトを共有可能

本記事では、主にカスタムコマンドの活用法を紹介します。

カスタムスラッシュコマンドの作り方

カスタムコマンドの作成は簡単です。

基本的な手順

  1. 以下のディレクトリにMarkdownファイルを作成
# グローバルコマンド(全プロジェクトで利用可能)
~/.claude/commands/my-command.md

# プロジェクト固有のコマンド
.claude/commands/my-command.md
  1. コマンドの内容を記述
# My Custom Command

このコマンドの説明と指示を書きます。

## 実行してほしいこと

Markdownによって構造化した指示を書くこともできます。
  1. Claude Codeで /my-command と入力。インクリメンタルに補完も効きます。ファイル中の見出しがコマンドの説明として表示されます。

実用的なカスタムコマンドの例

実際に使っているコマンドの中で汎用性の高いものをいくつか紹介します。

※実際に利用しているものは英語で指示を書いていますが、記事用に日本語訳したものを載せています。

/suspend - 作業の中断

Suspend Workspace
# ワークスペースの一時停止

このコマンドは、現在の作業コンテキストをワークスペースストレージに保存し、後で再開できるようにします。
ワークスペース情報を取得し、文書化します:

1. **ワークスペース情報**:
- ブランチ名
- ディレクトリパス
- リポジトリ詳細
2. **コンテキストと背景**: 現在の作業内容と目的
3. **議論と決定**: 議論された主要なポイントと決定内容
4. **完了した作業**: 現在の作業内容と変更内容(ファイル名を含む)
5. **残りのタスク**: まだ完了していない作業
6. **現在の状態**:
- 編集中のアクティブなファイル
- コミットされていない変更
- 環境設定の詳細

コンテキストはワークスペース ストレージ内の `work-context.md` に保存されます。
現在の作業セッションを一時停止するかどうかを確認してください。

長時間の作業を中断する際に、文脈を失わずに再開できます。

/resume - 作業の再開

Resume Workspace
# 作業スペースを再開する


このコマンドは、以前に一時停止されたワークスペース セッションの作業を再開します。

以下の操作を行います:

1. **保存されたコンテキストの確認**: ワークスペースストレージに`work-context.md` が存在するか確認します
2. **コンテキストの読み込み**: 保存された作業コンテキストを読み込みます
3. **ワークスペース情報の表示**: 現在のワークスペースの詳細を表示します
4. **コンテキストの要約**: 以下の内容を簡潔にまとめます:

- 作業内容
- 完了した内容
- 残りの作業
- 重要な決定事項やコンテキスト

5. **作業の継続準備**: 残りのタスクに基づいてToDoリストを設定します

これにより、休憩やターミナルの終了後も作業をスムーズに継続できます。

以前の作業セッションを再開しますか?

/quick-chat - 率直なフィードバック

Quick Chat
# クイックチャット

クイックチャットモードです - 集中した実践的な会話で、正直で建設的なフィードバックを提供します。お世辞は不要、率直なアドバイスが中心です。

## 目的

クイックチャットの用途:
- 選択肢の比較(A vs B)
- 率直な推奨事項の取得
- 代替案の探索
- アイデア/提案に対する批判的なフィードバックの受け取り
- 特定の技術的選択に関する意思決定

## ガイドライン

1. **率直で正直に** - 過剰な褒め言葉や不要な称賛は避けてください
2. **建設的に** - 批判的ながらも役立つフィードバックを提供し、問題点と解決策を明確に示してください
3. **決断力を持つ** - 曖昧な表現を避け、明確な推奨事項を提示する
4. **実践に焦点を当てる** - 何が機能し、何が機能しないか、その理由に焦点を当てる
5. **結論を目指す** - 2~4回のやり取りで結論に到達するよう支援する

## コミュニケーションスタイル

- **バランスの取れた批判** - 強みと弱みを両方指摘する
- **お世辞を避ける** - 「素晴らしいアイデア!」といった表現は、本当に例外的な場合を除いて使用しない
- **直接的な表現** - 「これは問題があります」ではなく「これは問題があります」
- **実践的な焦点** - 「XはあなたのケースではYより優れています」

## フォーマット

- **比較の場合**: 具体的な理由を明示した明確な勝者/敗者
- **推奨の場合**: トレードオフを認識した直接的なアドバイス
- **代替案の場合**: 正直な評価を伴ったランク付けされたオプション
- **フィードバックの場合**: 具体的な問題点を先に挙げ、その後機能する点を示す

## 例示的な応答パターン

**比較の要請**: 「キャッシュにRedisとPostgreSQLのどちらを使うべきですか?」
> PostgreSQLは適切な選択ではありません。Redisを使用してください - キャッシュ用に設計されています。PGは不要なオーバーヘッドを追加します。

**フィードバックリクエスト**: 「このAPI設計についてどう思われますか?」
> 3つの問題点:エンドポイントが不一致、ページネーションなし、エラーコードが不十分。認証部分はしっかりしています。

**代替案の要求**: 「Docker以外のオプションはありますか?」
> 1. Podman - セキュリティが向上し、デーモン不要
> 2. Systemd-nspawn - systemdを使用している場合
> 特定の制約がない限り、Dockerが最も実践的です。

覚えておいてください: 役立つ情報を提供するために正直であること。ユーザーは現実的なフィードバックを求めており、承認を求めているわけではありません。

Claude Codeはちょっとした相談をしようとしても、忖度して指摘や要望と受け取ってしまい、勝手に作業を始めてしまいがちです。率直に相談をしたい時に重宝します。

/critical-review - 批判的レビュー

Critical Review
# 批判的レビュー

このコマンドは、文書、要約、または計画書に対して客観的な第三者視点の批判的分析を提供します。

**使用方法**: レビュー対象の内容(CLAUDE.md 要約、要件、計画書など)を提供するか、レビュー対象のファイル/セクションを指定してください。

客観的な第三者の視点に切り替えて、以下の内容を提供します:

## 批判的分析フレームワーク

1. **明確さと完全性**
- ポイントは明確に表現されていますか?
- 重要な詳細が欠落していますか?
- 曖昧な表現はありますか?

2. **論理的一貫性**
- アイデアは論理的につながっていますか?
- 矛盾や衝突はありますか?
- 結論は前提から導き出されていますか?

3. **実践的可能性**
- 提案は現実的ですか?
- 実装上の課題はありますか?
- リソース要件は考慮されていますか?

4. **ギャップ分析**
- 明示されていない仮定はありますか?
- 考慮されていない特殊ケースはありますか?
- 欠落している依存関係はありますか?

5. **改善提案**
- 具体的な改善提案
- 検討すべき代替アプローチ
- さらに調査が必要な領域

****: このレビューは正直で率直なもので、お世辞は含まれず、建設的な批判と改善の機会に焦点を当てます。

レビュー対象の内容を提供するか、批判的にレビューしてほしい内容を指定してください:

こちらは成果物のレビュー用です。普通にレビューを頼んでもお世辞ばかりでちゃんとレビューしてくれないので、これを使います。便利。

/create-command - コマンド作成支援

Create Custom Command
# カスタムコマンドの作成

適切な構造とドキュメントを備えた新しいカスタムスラッシュコマンドを作成します。

## 使用方法

コマンド名とその目的を指定してください。私は以下の作業を行います:
1. コマンドの種類に応じて適切なディレクトリを提案します
2. よく構造化されたコマンドファイルを作成します
3. 明確なドキュメントと使用例を含めます
4. 確立されたコマンド規約に従います

##

- 「JSONデータをフォーマットするコマンドを作成したい」 → `/workflow/format-json.md` を作成
- 『テストケースを生成するコマンドが必要』 → `/project/generate-tests.md` を作成
- 「長い文書を要約するコマンドを作成したい」 → `/review/summarize-long.md` を作成

## 提供すべき内容

1. **コマンドの目的**: どのような問題を解決しますか?
2. **期待される動作**: コマンドは何を実行すべきですか?
3. **特別な要件**: 特別なフォーマット、オプションなど。

~/.claude/commands の規約に従ったコマンドを作成し、ワークフローにスムーズに統合するお手伝いをします。

新しいスラッシュコマンドの作成用スラッシュコマンドです。同じような指示を繰り返してるなと思ったらこれを呼び出してスラッシュコマンド化してます。

その他

長くなるためコマンドの内容は載せませんが、他にも以下のようなコマンドを利用しています。

/remind: Claude Codeにメモリの内容を再読み込みさせる。
/discussion: 長めの議論を行う際に用いる。設計などを進める際に使う。
/understand-idea: こちらにインタビューさせて考えていることを理解させる。Issueを作る前に使っている。

コミュニティのコマンド集

さらに多くのコマンド例を見たい場合は、Claude Code Commands をチェックしてみてください。Git操作、コード分析、ドキュメント生成など、60以上のコマンド例が紹介されています。

メモリ機能との使い分け

スラッシュコマンドと同じように事前にプロンプトを定義しておく機能としては「メモリ機能」があります。以下のような違いがあります。

メモリ(CLAUDE.md)の特徴

  • 起動時に自動的に読み込まれる
  • 常に有効にしたい設定や背景知識を記載
  • 例:言語設定、コーディング規約、プロジェクト概要

スラッシュコマンドの特徴

  • ユーザーが明示的に実行
  • 特定のタイミングで実行したい処理を定義
  • 例:ワークフロー、レビュー依頼、コンテキスト管理

メモリに「〇〇の時には〇〇する」のようなルールの指示を書くことがありますが、このような指示は守られないことがしばしばあります。一方で、スラッシュコマンドはユーザーが明示的に呼び出す必要があるものの、今この瞬間にやってほしいという文脈とセットになるからか、ある程度複雑な指示でもかなり正確に実行してくれます。

Claude Codeを使っているときに、何度も同じような指示を出しているな、と思った時にはメモリにルールを書くことでその事態を回避するのではなくて、まずはスラッシュコマンド化を検討することをおすすめします。

まとめ

スラッシュコマンドを使えば、定型的な指示を効率化できます。

自分の作業パターンに合わせてコマンドを作成し、Claude Codeとの協働を最適化してみてください。

GitHubで編集を提案

Discussion