---
session: S04
exercise: B-5
title: skill-creator で自分の Skill を作る
duration: 8min
difficulty: 2
prerequisite: [B-4]
phases:
  作らせる: 3min
  SKILL.md を読む: 2min
  発火を試す: 3min
files_to_edit:
  - .claude/skills/〈自分で付けた名前〉/SKILL.md  # skill-creator に作らせます
hints: hints/step07_skill_and_threat.md
challenge: true
tags: [skill-creator, description, 発火条件, clear]
---

# 演習B-5 skill-creator で自分の Skill を作る

| 項目 | 内容 |
|---|---|
| 所要時間 | 8分 |
| 難易度 | 中 |
| 使うもの | Claude Code パネル ／ `skill-creator` Skill ／ `/clear` |
| 前提 | [B-4](exB4_fix_and_test.md) でバグを2件直していること（作る Skill の材料になります） |
| 次のステップ | [B-6 脅威モデリングを回す](exB6_threat_model.md) |

---

## 目的

自分のバグの探し方を Skill として書き出し、**次のセッションでそれが自動で使われる**ことを確かめます。

B-2 でやったことを思い出してください。画面・データ・業務ルールの3つを突き合わせて、食い違いを探しました。この手順は、あなたが AI に説明したから実行されたものです。明日また同じことをするなら、また同じ説明をすることになります。

**毎回説明していたことを、ファイルに固定する。** それが Skill です。このステップでは、作るところと、作ったものが実際に呼ばれるところの両方を確認します。

---

## 操作

### 1. Skill を作らせる

Claude Code パネルで送ります。

```
いま kadaiB で見つけたバグの探し方を、次から自動で使える Skill にしたいです。Skill を作ってください。
```

`skill-creator` が発火します。応答の中か、実行サマリーの「従った設定」欄に名前が出ます。

### 2. 3つの質問に答える

`skill-creator` は、まとめて3つ聞いてきます。

| 聞かれること | 答え方の例 |
|---|---|
| この Skill は何をするものですか | 業務ルールの記述と実装の食い違いを探すもの |
| どういうときに使いたいですか（実際に打ちそうな言い方を2つか3つ） | 「ルールと実装が合っているか調べて」「仕様と違う挙動を探して」「業務ルールと突き合わせて」 |
| 手順は何ステップですか | 1. 仕様が書かれたファイルを読む 2. 該当する実装を読む 3. 項目ごとに突き合わせて表にする 4. 食い違いを画面で確認する手順を添える |

**2つ目の質問がいちばん重要です。** ここで挙げた言い方が、あとで Skill が選ばれる手がかりになります。**あなたが実際に打ちそうな言葉**で答えてください。かしこまった言い回しに直さないでください。

### 3. できた SKILL.md を読む

`handson/.claude/skills/〈名前〉/SKILL.md` が作られます。開いて、特に**先頭の `description` 欄**を読んでください。

`SKILL.md` の先頭には、`---` の行に挟まれた数行があります。ここは本文ではなく、Claude Code が読む札のようなものです。`name` が Skill の名前、`description` が「何をするもので、どういうときに使うか」の説明です。**Claude Code は、あなたが打った文章とこの `description` を見比べて、どの Skill を使うかを決めます。** だから2つ目の質問がいちばん重要でした。

```
---
name: rule-mismatch-hunter
description: 業務ルールの記述と実装の食い違いを探します。「ルールと実装が合っているか調べて」「仕様と違う挙動を探して」「業務ルールと突き合わせて」のときに使います。
---
```

手順2で答えた言い方が、そのまま入っているはずです。入っていない場合は、いま書き足してください。手で直してかまいません。

### 4. 文脈をリセットする

パネルで送ります。

```
/clear
```

これまでの会話がすべて忘れられます。**さっき Skill を作った記憶も消えます。** ここからは、Skill を作ったことを知らない状態の AI に話しかけることになります。

### 5. Skill の名前を出さずに依頼する

```
このプロジェクトの中で、業務ルールと実装が食い違っていそうな箇所を探してください。
```

Skill の名前も、ファイルのパスも書いていません。

### 6. 発火したかを確認する

応答のいちばん最後、実行サマリーの「従った設定」欄を見てください。**さっき作った Skill の名前が出ていれば発火しています。**

出ていない場合も、この演習では失敗ではありません。理由は「追加と考察」で扱います。

---

## 自分で考える

手順5の文面には、Skill の名前を一度も書いていません。

**それでも Skill が選ばれたとしたら、AI は何を手がかりに選んだのでしょうか。**

`SKILL.md` の `description` 欄をもう一度読んで、手順5で打った文章と見比べてください。共通している言葉はありますか。

<details>
<summary>考えた後で開いてください</summary>

手がかりは `description` の文章だけです。Skill 本体（手順の部分）は、選ばれるまで読まれません。

つまり Skill は、次の2段構えで動いています。

1. すべての Skill の `description` を見て、いまの依頼に合うものを選ぶ
2. 選ばれた Skill の中身を読んで、そのとおりに実行する

`description` が薄いと、どんなに中身が良くても呼ばれません。逆に `description` が広すぎると、関係ない依頼でも呼ばれます。**Skill を育てる作業の大半は、この1文の調整です。**

</details>

---

## 生成物の名前と場所

`handson/.claude/skills/〈自分で付けた名前〉/SKILL.md`

名前は英小文字とハイフンだけを使います（例: `rule-mismatch-hunter`）。フォルダ名とファイル名の両方が正しくないと読み込まれません。

---

## OK基準

- `SKILL.md` が作られ、先頭に `name` と `description` の2行がある
- `description` に、自分が実際に打ちそうな言い方が2つ以上入っている
- `/clear` を実行した
- リセット後の質問で、その Skill が使われた。または、**使われなかった理由を自分の言葉で説明できる**

---

## 追加と考察

発火しなかった場合も失敗ではありません。`description` に書いた言葉と、あなたが打った質問の言葉が離れていた、ということです。

たとえば `description` に「仕様書との整合性を検証します」と書いて、質問で「ルールと違うところ探して」と打つと、離れています。**Skill が発火する条件は `description` の文章です。** ここを直すのが、Skill を育てる作業の中心になります。

実務での使いどころを挙げます。

- レビューで毎回同じ指摘をしている → 指摘の観点を Skill にする
- 書式が決まった報告書を毎週書いている → 書式と手順を Skill にする
- 新しく入った人に毎回同じ説明をしている → 説明ではなく Skill を渡す

いずれも共通しているのは、**すでに人間の頭の中にある手順を、外に出す作業**だという点です。新しい技術を覚えるのではなく、いまやっていることを書き出すだけです。今日作った Skill も、B-2 でやったことをそのまま書き出しただけでした。

演習Aで配置した `kadaia-review` も、講師が同じ作業をして作ったものです。**配られる側から、作る側に回れる**ことが、このステップで確かめたかったことです。

---

## 発展課題

**発火しなかった場合**

`description` を書き直して、もう一度 `/clear` して試してください。書き直すときは、手順5で実際に打った文章に含まれる言葉を、`description` にそのまま入れてください。

**発火した場合**

逆に、発火してほしくない質問でも発火してしまわないかを確かめます。`/clear` してから、次のように打ってください。

```
このコードを整形してください。
```

ここで作った Skill が呼ばれてしまうなら、`description` が広すぎます。**広すぎる description は誤発火します。** 誤発火した Skill は、関係ない作業に余計な手順を持ち込み、時間を食います。対象を絞る語（「業務ルールと」「仕様の記述と」など）を足して、もう一度試してください。

さらに余裕があれば、2本目の Skill を作ってください。題材は B-3 の Issue の書き方です。5見出しを埋める手順を Skill にすると、次から起票が速くなります。

---

## 詰まったときは

**`skill-creator` が発火しない**

依頼の言い方を変えてください。

```
この手順を次から自動で使える Skill にしてください。SKILL.md を作ってください。
```

それでも発火しない場合は、`handson/.claude/skills/skill-creator/SKILL.md` があるか確認し、パネルを開き直してください。

**質問が1つずつ小分けに来て時間がかかる**

まとめて答えてしまってかまいません。3つの答えを一度に書いて送ってください。

**`/clear` を押すのが怖い（作業が消えないか）**

消えるのは会話だけです。**ファイルは消えません。** 直したコードも、作った Skill も、Issue もそのまま残ります。

**`/clear` 後に、プロジェクトのことを何も知らない状態になった**

正常です。`CLAUDE.md` は毎回読み込まれるので、技術スタックや業務ルールは引き継がれます。引き継がれないのは、会話でやりとりした内容だけです。**引き継ぎたいことは会話ではなくファイルに書く**、というのが今日通しての要点です。

**作った Skill が読み込まれない**

フォルダ名かファイル名を確認してください。`.claude/skills/〈名前〉/SKILL.md` の形が必要です。`SKILL.md` が大文字であること、フォルダを1階層挟んでいることの2点をよく間違えます。
