Article

Conversation

Image
Claude Code Skillsを1時間で自作する完全手順
いいね1500超え、ブックマーク3600超え。
「Claude Skills 67選」って記事、見ましたか。

めちゃくちゃバズってましたよね。僕も読みました。
便利なSkillsが67個もまとまってて、確かにすごい。

でも正直、思ったんです。
「これ、入れるだけで終わらせたらもったいないな」って。

だって67個全部入れたとして、あなたの仕事に本当にピッタリなSkillがその中にいくつあるか。
たぶん、5個もあれば良い方です。

それよりも「自分の業務に完全フィットするSkill」を1個作れる人の方が、Claude Codeの恩恵を圧倒的に受けられる。

その差は、たった1時間。
今日はその1時間で何をすればいいか、全部書きます。

Skillsとは何か——CLAUDE.mdとどう違うのか

まず前提から。
Claude Codeを使ってる人なら、CLAUDE.mdは知ってると思います。
プロジェクトのルートに置いて、コードの書き方とかディレクトリ構造とか、Claudeに覚えておいてほしいことを書くファイルですよね。

で、Skillsって何が違うの?という話。

一番大きな違いは「コンテキストの使い方」です。

CLAUDE.mdは、セッションが始まるたびに全文がコンテキストに読み込まれます。
そこに書いてあること全部が、毎回トークンを消費するんです。
一方でSkillsは「必要なときだけ」読み込まれる。

Anthropicの公式ドキュメントにはっきり書いてあります。
「In a regular session, skill descriptions are loaded into context so
Claude knows what's available, but full skill content only loads when
invoked.」

普段はSkillの「名前」と「説明文」だけがコンテキストにある状態。
Claudeが「あ、このSkill今の作業に関係あるな」と判断したら、そこで初めて中身が全部ロードされる。

これ、何がいいかというと。
CLAUDE.mdに手順書とかチェックリストを全部詰め込むと、どんどん膨らんでいくんですよね。
200行とか超えてくると、毎回そのトークンを食うわけで。
Skillsなら、使わないときはゼロコスト。

整理すると、こう。
CLAUDE.mdは「Claudeにどう振る舞ってほしいか」を書く場所。
Skillsは「Claudeに何をしてほしいか」を書く場所。

コーディング規約やディレクトリ構造はCLAUDE.md。
デプロイ手順やコードレビューのチェックリストはSkills。

この使い分けが、Claude Codeを上手く使いこなす鍵になります。

自分専用Skillが必要な3つのサイン

じゃあ、どんな人がSkillを自作すべきなのか。
以下の3つに1つでも当てはまるなら、今日から作り始めた方がいいです。

1つ目。「毎回同じ説明を繰り返している」
「この記事は初心者向けで、文体はです・ます調で、500文字以上で...」
みたいな前提条件を、毎セッション打ち込んでませんか。
Skillにしてしまえば /write-article って打つだけで全部伝わります。

2つ目。「CLAUDE.mdが200行を超えてきた」
最初は便利なCLAUDE.mdも、あれもこれもと追記していくと手順書の塊になる。
毎回全文ロードされるので、コンテキストの無駄遣いです。
手順系は切り出してSkillにすると、CLAUDE.mdがスッキリします。

3つ目。「公開されているSkillが微妙にフィットしない」
67選とかの既製品は汎用性を重視して作られてるんですよね。
だから自分のワークフローとは微妙にズレることが多い。
「あと一歩こうだったら完璧なのに」って思ったことがあるなら、自分で作った方が早いです。

STEP1: 最小限のSKILL.mdを15分で書く

ここから実践パートです。

Skillの実体は、SKILL.mdっていうマークダウンファイル1つだけ。
構造もシンプルで、YAMLのフロントマターとMarkdownの本文で構成されます。
最小限のSKILL.mdはこんな感じ。
---
name: write-article
description: Note記事を執筆する。文体はです・ます調、500文字以上、読者は初心者向け。「記事を書いて」「Note記事を作って」と言われたときに使用。
---

## 記事執筆ルール

- 一人称は「僕」
- です・ます調で統一
- 一文は50文字以内を心がける
- 冒頭3行で「自分に関係ある」と思わせるフックを入れる
- 最低500文字以上
ここでめちゃくちゃ大事なポイントが1つあります。

descriptionの書き方です。
Claudeは、このdescriptionを見て「このSkillを今使うべきかどうか」を自動で判断します。

freeCodeCampの解説記事でも「the agent decides whether to load your skill based entirely on the description field」と明言されてます。

だからdescriptionには、こう書くのがコツ。
「このSkillが何をするか」だけじゃなく、「どんなときに使うか」「ユーザーがどんな言葉で依頼しそうか」まで含める。

弱い例 description: 記事を書く
強い例 description: Note記事を執筆する。文体はです・ます調、500文字以上。「記事を書いて」「Note向けの記事を作って」と依頼されたときに使用。

この差が、自動発動の精度を大きく左右します。
あと、フロントマターにはdescription以外にもいろいろ設定できます。

disable-model-invocation: true にすると、手動でしか起動しなくなる。デプロイみたいな「勝手に動かれたら困る」系に便利です。
allowed-tools で、そのSkill実行中に自動許可するツールを指定できる。
context: fork で、メインの会話とは別のサブエージェントとして実行できる。

でも最初は name と description だけで十分です。
まずは動くものを15分で作ること。それが大事。

STEP2: Skillを配置してテストする(10分)

SKILL.mdを書いたら、次は置き場所。
選択肢は2つあります。

1つ目。~/.claude/skills/スキル名/SKILL.md
これは「全プロジェクト共通」で使えるスキル。
どのプロジェクトを開いても使える、いわば個人ツールです。

2つ目。.claude/skills/スキル名/SKILL.md
これは「このプロジェクト専用」のスキル。
Gitにコミットすればチームで共有もできます。

例えば、記事執筆のSkillを全プロジェクトで使いたいなら。
mkdir -p ~/.claude/skills/write-article

このフォルダに先ほどのSKILL.mdを保存するだけ。
インストール完了です。

テスト方法は3つ。
まず「What skills are available?」とClaude Codeに聞く。
一覧に自分のSkillが出てればOK。

次に /write-article と直接打って呼び出す。
意図通りの動作をするか確認します。

最後に「Note記事を書いて」と自然な言葉で依頼してみる。
descriptionに書いたトリガーワードで自動発動するかのチェックです。

ここで嬉しいポイントが1つ。

ライブ変更検知という機能があって、SKILL.mdを編集したらClaude Codeを再起動しなくてもそのまま反映されます。

公式ドキュメントでも「Adding, editing, or removing a skill takes effect within the current session without restarting」と書いてある。
だから「ちょっと修正 → すぐテスト」のサイクルが超速で回せます。

STEP3: Skillを育てる——supporting filesとHooksの活用(35分)

SKILL.mdだけで事足りるなら、ここで完了です。
でも使い込んでいくと「もうちょっと細かいルールを入れたい」「サンプルも参照させたい」ってなるんですよね。

そこで supporting files の出番。
Skillのディレクトリには、SKILL.md以外のファイルも置けます。
write-article/
├── SKILL.md             ← メインの指示書(必須)
├── references/
│   └── style_guide.md   ← 文体ルールの詳細
├── examples/
│   └── sample.md        ← 良い記事のサンプル
└── scripts/
    └── check.sh         ← 品質チェックスクリプト
公式ドキュメントでは「Keep SKILL.md under 500 lines」と推奨されてます。
メインの指示は500行以内に収めて、詳細はreferences/に分離するのがベスト。

ここがまた良い設計なんですけど。
references/のファイルは、Claudeが「必要だ」と判断したときだけ読み込まれる。
常にコンテキストを食うわけじゃないんです。

SKILL.mdの中で「詳細な文体ルールは references/style_guide.md
を参照」と書いておけば、Claudeが必要なタイミングで勝手に読んでくれます。

もう1つ、上級テクニックとしてHooksの活用があります。
フロントマターにhooksを設定すると、Skill実行時に特定の処理を自動で走らせられる。
「記事を書き終わったら自動でlintをかける」みたいなことが、Skill単位で可能です。

あとdisable-model-invocation: trueで「手動専用」にする使い分けも覚えておくといい。
/deployとか/send-slackみたいな「勝手に動かれたら困るコマンド」はこれで制御します。

context: forkを使えば、メイン会話から独立したサブエージェントとしてSkillを実行できます。
重たいリサーチ系を裏で走らせたいときに便利ですね。

ただ正直、ここまでやるのは最初じゃなくていい。
まずSTEP1-2で動くSkillを作って、使いながら「ここ足りないな」と思ったタイミングでSTEP3に進む。
段階的に育てていくのが、一番ちょうどいいです。

実際に作っている5つの自分専用Skill

最後に、僕が実際に使っているSkillを5つ紹介します。

1つ目。X記事執筆Skill。
文体ルール、CTAのパターン、最低文字数、読者ターゲットを全部1つのSkillにまとめてます。
以前はこれ全部をCLAUDE.mdに書いてたんですが、Skillに移したらCLAUDE.mdが100行くらい減った。
/x-writer って打つだけで、ルールが全部適用されます。

2つ目。n8nワークフロー設計レビューSkill。
n8nのJSON構造をチェックして、ノード間の接続漏れや設定ミスを検出するスキルです。
references/にn8nのノード仕様書を入れてあるので、かなり精度の高いレビューができます。

3つ目。バズ記事テーマ候補出しSkill。
トレンドデータとペルソナ情報を読み込んで、記事テーマを20個出してくれる。
context: forkでサブエージェントとして実行してるので、メインの作業を邪魔しません。

4つ目。リプライ文生成Skill。
自分の投稿に来たリプライへの返信を、自分の文体で下書きしてくれる。
references/に過去の返信サンプルを入れてあって、トーンの再現度がかなり高いです。

5つ目。品質チェックSkill。
記事やX投稿の品質を11項目でチェックするスキル。
文字数、フックの強さ、AIっぽさ、スマホでの読みやすさなどを自動判定してくれます。

この5つに共通してるのは、全部「僕が毎回繰り返し説明していたこと」をSkillにしたという点。

ちなみにMatt Pocock氏のGitHubリポジトリ(16,400スター)では、TDD(テスト駆動開発)やPRD作成、リファクタリング計画など23個のSkillが公開されてます。
Anthropicの公式リポジトリに至っては12万スターで、ドキュメント操作やセキュリティ分析まで幅広く揃ってる。

こういう既製品を参考にしつつ、自分のワークフローに合わせてカスタムする。
それが最強の使い方だと僕は思ってます。

まとめ

Claude Code Skillsは、SKILL.md1つ書くだけで使えます。

67選を入れるのも良い。
でも「自分専用のSkill」を1つ作れる人は、もっと強い。

必要なのは1時間だけです。
STEP1で15分かけてSKILL.mdを書く。
STEP2で10分かけて配置とテスト。
STEP3は必要になったら35分で拡張。

まずは、あなたがClaude Codeに毎回説明していることを1つ思い浮かべてみてください。
それをSKILL.mdに書き出すだけで、明日からその説明は不要になります。

あなたが毎回Claudeに繰り返し説明していることは何ですか?
それがそのままSkillになります。
ぜひコメントで教えてください。
Want to publish your own Article?
Upgrade to Premium