Claude Codeを使い始めた開発者の多くは、その便利さに驚くはずだ。しかし、しばらくすると「この指示、毎回書くべきなのか?」「同じような作業なのに、なぜかAIの振る舞いが安定しない」といった疑問にぶつかる場面がある。その原因の一つに、Skillsの設計とSKILL.mdの書き方が挙げられるだろう。(出典: anthropic.com)
この記事では、Claude CodeのSkillsを効果的に活用するために、SKILL.mdの具体的な記述方法と、スキルファイルをどこに配置し、どのように整理すべきかを掘り下げる。特に、初級から中級のエンジニアが、日々の開発ワークフローにAIコーディングを安全かつ効率的に組み込むための実践的なヒントを伝えるつもりだ。読み終える頃には、AIがあなたの意図を正確に理解し、再現性の高い作業を任せられるようになるだろう。(出典: Anthropic)
なぜSkillsの整理が重要なのか:コンテキストの効率化と信頼性

Claude CodeにおけるSkillsは、特定のタスクの実行方法をClaudeに教えるための「専門知識パッケージ」と捉えると分かりやすい。単なるプロンプトの保存ではなく、判断基準や実行フローまで含めて設計できるのが特徴だ。しかし、このSkillsを適切に設計・配置しないと、AIの挙動が不安定になったり、無駄なコンテキスト消費につながったりする可能性がある。(出典: Claude Code)
Claude Codeは、セッション開始時に全てのスキルの名前と説明(YAMLフロントマター)だけを読み込む仕組みを持つ。そして、ユーザーの指示と関連があると判断したときに初めて、そのSKILL.mdの本文を読み込んで実行する「段階的開示(Progressive Disclosure)」という仕組みを採用している。これにより、大量のスキルがインストールされていても、実際にロードされるのは必要なものだけになり、コンテキストウィンドウの効率的な利用が可能になる。逆に言えば、descriptionが曖昧だとClaudeは適切なスキルを発動できない可能性が高まる。これは、AIがあなたの意図を正確に汲み取れないだけでなく、無関係なスキルを誤って発動したり、あるいは必要なスキルを見過ごしたりする原因にもなりかねない。結果として、AIの出力品質が低下し、信頼性が損なわれる事態も考えられる。(出典: qiita.com)
Claude Codeがユーザーの指示を受け、Skillsを読み込み、実行するまでの流れは次の図のように進むと見ている。
想定ケース: Claude Codeを初めてチームのリポジトリへ入れる場面を想定します。読者が持ち帰る成果物は、CLAUDE.md、.claude/skills、.mcp.json、hooksの置き場所を決める小さな設計メモです。(出典: zenn.dev)
使う判断: 繰り返す手順の整理、設定ファイルの下書き、差分の説明はClaude Codeに任せやすい作業です。
止める判断: 秘密情報、広い外部権限、破壊的なhooks、未確認のMCP接続は、人間が差分とログを見てから進めます。
人間がMCPとSkillsの範囲を決める
↓
Claude Codeに対象ファイルと制約を渡す
↓
Claude Codeが差分と実行ログを作る
↓
人間が権限、秘密情報、戻し方を確認する
↓
問題なければ反映する
| 置き場所 | 入れる内容 | 人間の確認 |
|---|---|---|
| CLAUDE.md | 共通ルール | 長すぎないか |
| .claude/skills | 繰り返す手順 | 実行条件が明確か |
| .mcp.json | 外部接続 | 権限が最小か |
SKILL.mdの基本構造と効果的な記述のポイント
SKILL.mdは、YAMLフロントマターとMarkdown本文で構成される。この二つの要素をどう書くかが、スキルの品質を大きく左右するポイントだ。
YAMLフロントマター:Claudeへの「自己紹介」
フロントマターは、スキルの名前(name)と説明(description)を定義する必須項目だ。特にdescriptionは、Claudeが「いつこのスキルを使うべきか」を判断する唯一の手がかりとなるため、具体的かつ明確に記述する必要がある。(出典: qiita.com)
目的
このスキルが達成する具体的な目標を記述する。
入力
Claude Codeへの依頼時に必要な情報やファイル、引数などを明確にする。
手順

タスクをステップバイステップで記述する。必要に応じてサブステップも加える。
-
ステップ1の具体的な指示。
-
ステップ2の具体的な指示。
完了条件
タスクが成功したと判断するための基準(例: 特定のファイルが生成された、テストが成功した)。
制約事項
このスキルを使用する上での注意点や制限(例: ネットワークアクセスが必要、特定のフォーマット厳守)。
参照
詳細な情報が記載された外部ファイルやドキュメントへのリンク(例: references/coding-guidelines.md)。
各項目について、もう少し掘り下げてみよう。
* 目的: スキルの存在意義を明確にする。Claudeがタスクの全体像を理解し、最終的な成果物の品質を高めるために不可欠な要素だ。
Skillsの最適な置き場所とファイル整理のコツ

Claude CodeのSkillsは、特定のディレクトリ構造に従って配置される。この配置が、スキルの適用範囲と管理のしやすさに影響するため、少し頭に入れておきたい。(出典: Connect Claude Code to tools via MCP)
スキルディレクトリの基本構造
Skillsは通常、以下のいずれかの場所に配置する。どちらを選ぶかは、スキルの汎用性やプロジェクトの特性によって変わってくるだろう。
よくある失敗を回避するSkills設計と具体的な依頼例
Skillsを導入する際には、いくつかの一般的な落とし穴がある。これらを事前に理解し、回避することで、より堅牢なAIワークフローを構築できるはずだ。
長すぎるSKILL.mdを避ける
前述の通り、SKILL.mdが長すぎるとClaudeの注意が散漫になり、指示を正確に理解できなくなる可能性がある。これはコンテキストウィンドウの限界だけでなく、AIモデルの「集中力」にも関わる話だ。詳細な情報はreferences/ディレクトリ内の別のMarkdownファイルに分割し、SKILL.mdからはそのファイルを参照するようにしよう。そうすることで、SKILL.md自体はあくまで「手順の概要と指示」に徹し、Claudeが必要なときに詳細情報を参照できる状態を保てる。(出典: Best practices for Claude Code)
Claude Codeへの依頼例
依頼例1:
対象ファイル: CLAUDE.md と .claude/skills/release-check/SKILL.md
変更範囲: 共通ルールをCLAUDE.mdに残し、繰り返す確認手順をSkillへ分ける
制約: APIキー、接続文字列、社内URLの実値は書かない
確認観点: CLAUDE.mdが短く保たれ、SKILL.mdだけで実行手順が分かるか
依頼例2:
対象ファイル: .mcp.json と .claude/settings.json
変更範囲: 外部ツール接続の責務と権限範囲を整理する
制約: トークンはプレースホルダーにし、読み取り権限から始める
確認観点: MCPが必要な作業、不要な作業、人間の承認が必要な作業が分かれているか
人間が確認すべき最終チェックリスト:AI生成物の品質保証
Claude CodeがSkillsを使って生成した成果物は、必ず人間が確認する必要がある。これは揺るがない事実だ。AIはあくまでツールであり、最終的な品質保証は人間の責任だと考えてほしい。特に以下の点に注意してレビューしよう。

-
出力の正確性: 生成されたコード、ドキュメント、レポートなどが、指示通りに正確に作成されているか。事実誤認やロジックの誤りがないかを確認する。AIは時に自信満々に誤った情報を提示することがあるため、鵜呑みにせず、常にファクトチェックを怠らないようにしたい。
-
意図しない変更: コードレビューやリファクタリングの場合、意図しない副作用や変更が含まれていないか、差分を詳細に確認する習慣をつけよう。AIが生成したコードは、一見問題なさそうに見えても、既存のロジックを破壊したり、パフォーマンスを低下させたりする可能性もゼロではない。
人間が確認するリスト
- 差分に、依頼していないファイル変更が混ざっていないか。
- テスト、lint、型チェックの結果がログで確認できるか。
- .mcp.jsonやsettings.jsonに秘密情報の実値が入っていないか。
- MCPの権限が、今回の作業に必要な範囲だけになっているか。
- 問題が出たときに、Git差分を戻せる単位で作業できているか。
次に試したいこと:あなたの定型作業をSkillsに切り出す第一歩
Claude CodeのSkillsは、一度作って終わりではない。日々の開発で使いながら、改善を重ねて「育てる」視点が重要だと考える。
まずは、あなたが普段繰り返している小さな定型作業を一つ選び、それをSkillsとして切り出すことから始めてみてほしい。例えば、「新しいモジュールを作成した際のテストファイルのひな形生成」や「特定の形式でのコミットメッセージのチェック」など、何でも構わない。最初は完璧を目指す必要はない。簡単なものでも、AIに任せられる部分を見つけることが第一歩だ。
そして、そのスキルを使ってみて「もっとこうなればいいのに」と感じた点を、SKILL.mdにフィードバックとして反映させていく。descriptionをより具体的にしたり、手順を詳細にしたり、参照ファイルを追加したりと、改善の余地はいくらでもあるはずだ。この試行錯誤のプロセスこそが、AIをあなたの開発ワークフローに最適化していく鍵となる。AIを「良き相棒」として育てていくことで、開発はより効率的で、そして何より楽しくなるだろう。
参考文献
anthropic.com Anthropic Claude Code qiita.com zenn.dev qiita.com Connect Claude Code to tools via MCP Best practices for Claude Code
