mybook

第6章 — Skills と Commands: 手順書の力

繰り返す悪夢

「また同じこと説明してる……」

ユウキは Claude Code に3回目の「PR を作って」を頼んでいた。毎回、同じ注意事項を伝えなければならない。

  • Conventional Commits 形式でコミットメッセージを書くこと
  • PR のタイトルは70文字以内
  • テストが通ることを確認してから PR を作ること
  • PR 本文にテスト計画を含めること

「毎回これを打つのか……」

ミサキが横から覗き込んだ。「その手順、Skill にすれば? 一度書けば /pr で呼び出せるよ」

Skills とは

Skills は、Claude Code に対する再利用可能な指示書だ。Markdown ファイルとして保存し、スラッシュコマンドで呼び出す。

Loading diagram...

Skill ファイルの配置場所

場所スコープ用途
~/.claude/commands/*.md全プロジェクト個人の汎用コマンド
.claude/commands/*.mdプロジェクトチーム共有のコマンド

ファイル名がそのままコマンド名になる。commit.md/commitpr.md/pr

実践: /commit コマンド

ユウキが最初に作った Skill は、Conventional Commits 形式でコミットするための /commit だ。

<!-- .claude/commands/commit.md -->
 
変更を論理単位に分けて Conventional Commits 形式でコミットする。
 
## 手順
 
1. `git status``git diff --staged` で変更内容を確認
2. 変更を論理的な単位に分割(1コミット = 1つの意図)
3. 各単位ごとに:
   - 適切なファイルを `git add` でステージ
   - Conventional Commits 形式でコミットメッセージを作成
   - `git commit` を実行
 
## Conventional Commits の形式
 
type(scope): description
 
- type: feat, fix, docs, style, refactor, test, chore
- scope: 省略可。変更の影響範囲
- description: 命令形、50文字以内
 
## 注意
 
- push はしない(ユーザーが確認してから push する)
- secret が含まれていないか確認する
- 1つのコミットに無関係な変更を混ぜない

これにより、/commit と打つだけで、毎回一貫した品質のコミットが作られる。

実践: /pr コマンド

<!-- .claude/commands/pr.md -->
 
現在のブランチの変更を要約し PR を作成する。
 
## 手順
 
1. 並列で実行:
   - `git status` で未追跡ファイルを確認
   - `git diff` でステージ済み・未ステージの変更を確認
   - `git log main..HEAD` でコミット履歴を確認
   - `git diff main...HEAD` で差分全体を確認
 
2. すべてのコミットを分析し、PR タイトルと要約を作成:
   - タイトルは70文字以内
   - 要約は箇条書き3点以内
 
3. 並列で実行:
   - 必要なら新ブランチを作成
   - リモートに push(-u フラグ付き)
   - `gh pr create` で PR を作成
 
## PR 本文のフォーマット
 
## Summary
- 変更点1
- 変更点2
 
## Test plan
- [ ] テスト項目1
- [ ] テスト項目2

Skills vs CLAUDE.md: 使い分け

初学者がよく混乱するのが、「CLAUDE.md に書くべきか、Skill に書くべきか」という判断だ。

Loading diagram...
指示の性質置き場所
常に守るべきルールCLAUDE.md「any 型禁止」「日本語で回答」
特定の操作の手順書Skills/commit/pr/deploy
特定ファイル種別のルールrules/*.md「テストファイルの書き方」

高度な Skill: 引数付きコマンド

Skills は引数を受け取ることもできる。

<!-- .claude/commands/review.md -->
 
指定されたファイルまたは変更をレビューする。
 
## 引数
$ARGUMENTS — レビュー対象(ファイルパス、PR番号、または "diff")
 
## 手順
 
1. 引数に応じてレビュー対象を特定:
   - ファイルパスの場合: そのファイルを読む
   - PR番号の場合: `gh pr diff <番号>` で差分を取得
   - "diff" の場合: `git diff` で現在の変更を取得
 
2. 以下の観点でレビュー:
   - バグの可能性
   - セキュリティリスク
   - パフォーマンス問題
   - 可読性・保守性
 
3. 問題を重要度順に報告

使い方: /review src/api/users.ts/review 42(PR #42)。

Skill の設計原則

1. 一つのことをうまくやれ(Unix 哲学)

<!-- ❌ 詰め込みすぎ -->
# deploy.md
テストを実行し、ビルドし、デプロイし、Slack に通知する
 
<!-- ✅ 分割 -->
# test.md — テストを実行
# build.md — ビルドを実行
# deploy.md — デプロイを実行(テストとビルドが通っていることを前提)
# notify.md — Slack に通知

2. 手順を具体的に

<!-- ❌ 曖昧 -->
コードをレビューしてください
 
<!-- ✅ 具体的 -->
以下の順序でレビュー:
1. `git diff main...HEAD` で変更差分を取得
2. 変更されたファイルを1つずつ読む
3. バグ → セキュリティ → パフォーマンス → 可読性の順で問題を報告
4. 各問題に severity (high/medium/low) を付与

3. 出力フォーマットを指定

## 出力フォーマット
 
### 発見事項
- **[HIGH]** ファイル:行番号 — 問題の説明
- **[MED]** ファイル:行番号 — 問題の説明
 
### サマリー
- HIGH: N件
- MEDIUM: N件
- LOW: N件

チームでの Skill 共有

Skills を .claude/commands/ に置いて Git で管理すれば、チーム全体で同じコマンドを使える。

Loading diagram...

「これはチームの"暗黙知"を"形式知"にする作業だ」とミサキ。「新しいメンバーが入っても、/commit/pr を使うだけで、チームの品質基準を満たせる」

ユウキのコマンド一覧

1ヶ月後、ユウキのプロジェクトには以下の Skill が揃っていた。

Loading chart...

「1ヶ月で累計40時間以上の節約。でもそれ以上に、品質のばらつきがなくなったのが大きい」

ユウキは確信した。Skills は単なる便利ツールではない。チームの開発文化を形作る道具だ。

次の章では、もっと強力な武器——サブエージェント——に踏み込む。AI に「チーム」を持たせる技術だ。