Claude Codeのスキル(Skills)は、毎回チャットで伝えている手順を、SKILL.mdというファイルにしてClaudeに持たせる仕組みです。業務で使うときは、次の4点を押さえれば迷いません。
- 何か:SKILL.mdに手順を書いたフォルダです。Claudeは関係する場面で自分で読み込むか、/スキル名で呼び出されます。本文は使うときだけ読み込まれます
- いつ作るか:同じ指示や手順をチャットに何度も貼っているとき、CLAUDE.mdの一部が手順になってきたときです
- どこに置くか:自分だけで使うなら
~/.claude/skills/、チームで共有するならリポジトリの.claude/skills/に置きます - 何に気をつけるか:公開・送信・デプロイのように外に影響する手順は、Claudeが自分で動かせない設定にします。他人のスキルは中身を読んでから入れます
この記事は、Claude Codeを使い始めた会社の担当者(エンジニアでない人も含む)が、「どの仕事をスキルにするか」「どう書けば実務で使えるか」を決めるための記事です。当社はこのサイトの更新にClaude Codeを使っており、記事の例は実際の運用で回している手順をもとにしています。内容は、Claude Codeの公式ドキュメントを2026年10月18日に確かめたものです。Claude Code自体のはじめ方は、Claude Code 初期設定おすすめ4ステップで扱っています。
Claude Code Skillsとは:手順書をClaudeの道具にする仕組み
スキルは、SKILL.md というファイルに指示を書いたフォルダです。Claudeはそれを道具の1つとして持ち、関係する場面で読み込みます。自分で /スキル名 と打って呼び出すこともできます。
Anthropicは2025年10月16日にスキル(Agent Skills)を発表し、2025年12月18日(米国時間)に、Agent Skillsを公開の標準にしました。Claude Codeのスキルはこの標準に沿っており、そのうえで次のような機能が足されています。
- 呼び出す人の制限(自分だけが呼べる、Claudeだけが使う、を決められる)
- 別のエージェント(サブエージェント)での実行
- コマンドの結果の差し込み(読み込む前にコマンドを動かし、その結果を手順に入れる)
ふだんClaudeが読み込むのは、スキルの名前と説明だけです。本文は使うときに読み込まれるので、長い手順や参考資料を置いても、使わない間の負担はほとんどありません。ここがCLAUDE.mdとのいちばんの違いです。
CLAUDE.md・スキル・サブエージェント・フック・MCPの使い分け
公式ドキュメントの整理をもとに、5つの仕組みを並べます。
| 仕組み | 何をするか | 向いている使い方 | 例 |
|---|---|---|---|
| CLAUDE.md | 毎回の会話で読み込まれる前提 | プロジェクトの決まり、いつも効いてほしいルール | 「npmではなくpnpmを使う。コミットの前にテストを回す」 |
| スキル | Claudeが使える指示・知識・手順 | 繰り返す作業、参照する資料 | /deploy でデプロイのチェックリストを回す |
| サブエージェント | 別の文脈で作業し、要約だけを返す | 文脈を分けたい作業、並行する作業 | 多くのファイルを読む調べもの |
| フック | 決まった出来事のたびに動く処理 | 毎回、例外なく動かしたい自動化 | ファイルを編集するたびにESLintを回す |
| MCP | 外部のサービスにつなぐ | 外部のデータや操作 | データベースの照会、Slackへの投稿 |
どれを足すかの目安も、公式ドキュメントに示されています。
| こうなったら | 足すもの |
|---|---|
| Claudeが同じ決まりやコマンドを2回間違えた | CLAUDE.mdに書く |
| 作業を始めるとき、毎回同じプロンプトを打っている | 自分で呼び出すスキルにする |
| 同じ手順書を3回目にチャットに貼った | スキルにする |
| ブラウザーで見ているデータを毎回コピーして渡している | MCPでつなぐ |
| 毎回頼まなくても、決まったときに動いてほしい | フックにする |
組み合わせることもできます。CLAUDE.mdには「社内のAPIの決まりに従う」とだけ書き、決まりの全文はスキルに置く、という分け方です。毎回の読み込みを軽くしたまま、必要なときだけ全文を読ませられます。
SKILL.mdの書き方:公開前の検査を例に
当社のこのサイトでは、記事やページを公開する前に、料金と実績の表記・リンク切れ・目次・太字の崩れ・型の5つの検査を回しています。毎回「この5つを順に回して、失敗したものだけ教えて」と頼む作業なので、スキルに向いています。スキルにすると次のようになります。
フォルダの形:
.claude/skills/pre-publish/
└── SKILL.md
SKILL.md の中身:
---
name: pre-publish
description: サイトを公開する前に5つの検査を回し、失敗した項目だけを報告する。公開前の確認を頼まれたときに使う。
disable-model-invocation: true
allowed-tools: Bash(npm run *) Bash(node scripts/*) Bash(npx tsc *)
---
## 今回変わったファイル
!`git status --short`
## 手順
次の検査を順に実行し、失敗した項目だけを「項目・ファイル・直し方の案」の表で報告する。
すべて通ったら「5項目すべて通過」とだけ書く。
1. 料金と実績の表記:npm run check:claims
2. リンク切れ:node scripts/check-links.mjs
3. 目次:npm run check:toc
4. 太字の崩れ:node scripts/check-bold.mjs --all
5. 型:npx tsc --noEmit -p .
自分では直さない。直すかどうかは、報告を見て人が決める。
使うときは、Claude Codeで /pre-publish と打ちます。それぞれの行の意味は次のとおりです。
name:呼び出すときの名前です。省くとフォルダ名になりますdescription:何をするスキルか、いつ使うかを書きます。ふだんはClaudeがこれを見て使うかどうかを決めるので、いちばん大事な使い道を先に書きます。この例のようにdisable-model-invocation: trueを付けたスキルでは、説明はClaudeの文脈に入らず、人が見分けるための説明になりますdisable-model-invocation: true:Claudeが自分の判断でこのスキルを動かさないようにします。公開のように「いつやるか」を人が決めたい手順に付けますallowed-tools:このスキルを呼び出した回に限って、確認なしで使ってよい道具です。次のメッセージを送ると許可は消えます!`git status --short`:Claudeが読む前にコマンドを動かし、その結果で置き換えます。毎回「何が変わったか」を最新の状態で渡せます
! で動かすコマンドが失敗する(終了コードが0以外になる)と、スキルの呼び出し全体が止まります。結果が空なだけなら失敗ではありません。問題を見つけると1を返す検査スクリプトのように、0以外で終わることがあるコマンドには、末尾に || true を付けます。
置き場所と、誰が使えるか
| 置き場所 | パス | 使える範囲 |
|---|---|---|
| 個人 | ~/.claude/skills/スキル名/SKILL.md | そのパソコンでの、自分のすべてのプロジェクト |
| プロジェクト | .claude/skills/スキル名/SKILL.md | そのリポジトリでの作業。コミットすればチームで共有できる |
| 企業 | 管理用の設定のフォルダの .claude/skills/ | 組織が配った端末のすべての利用者 |
| プラグイン | プラグインの skills/ | プラグインを有効にした場所(/プラグイン名:スキル名 で呼ぶ) |
| claude.aiのアカウント | アカウントで有効にしたスキル | Cowork、クラウドのセッション、ログインしたターミナル |
同じ名前のスキルがあるときは、企業が個人より、個人がプロジェクトより優先されます。プラグインのスキルは名前の前にプラグイン名が付くので、ぶつかりません。
実務でつまずきやすいのは、クラウドで動かすときです。クラウドのセッションや、定期実行のroutinesは、自分のパソコンの ~/.claude/skills/ を読みません。クラウドで使うスキルは、リポジトリの .claude/skills/ にコミットするか、claude.aiのアカウントで有効にします。
自動で使わせるか、手で呼ぶか
| 設定 | 自分で呼べるか | Claudeが自分で使うか | 向いているもの |
|---|---|---|---|
| 何も付けない | 呼べる | 使う | 調べ方、書き方、確認の手順など、Claudeに判断させてよいもの |
disable-model-invocation: true | 呼べる | 使わない | 公開・送信・デプロイ・コミットなど、外に影響する手順 |
user-invocable: false | 呼べない | 使う | 古いシステムの説明のような、背景の知識 |
公式ドキュメントにも、コードが整ったように見えたからといってClaudeにデプロイを判断させたくはない、という趣旨の説明があります。外に影響する手順は、手で呼ぶ形にするのが基本です。
実務で使う5つの例
ここからは、手順と判断の基準が決まっている仕事を、現実的なスキルの形にした例です。
例1:公開前の検査(手で呼ぶ)
上の pre-publish がこれに当たります。ポイントは、検査は自動で回すが、直すかどうかは人が決めることです。「自分では直さない」と書いておかないと、Claudeが検査を通すために中身を変えてしまうおそれがあります。
例2:週次の数字の集計とレポートの下書き(スクリプトを同梱する)
毎週、管理画面から書き出したCSVを集計して、週報の下書きを作る作業です。計算はスクリプトに任せ、Claudeには文章だけを書かせます。
.claude/skills/weekly-report/
├── SKILL.md
├── template.md (週報の書式)
└── scripts/
└── summarize.py (CSVを集計して、先週と前の週の数字を出す)
---
name: weekly-report
description: 週次の数字を集計し、週報の下書きを作る。週報、先週の数字、週次レポートを頼まれたときに使う。
argument-hint: "[CSVのフォルダ]"
allowed-tools: Bash(python3 ${CLAUDE_SKILL_DIR}/scripts/summarize.py *)
---
1. python3 ${CLAUDE_SKILL_DIR}/scripts/summarize.py $ARGUMENTS を実行し、先週と前の週の数字を出す
2. template.md の書式で下書きを作る
3. 数字はスクリプトの出力だけを使い、自分で計算し直さない
4. 増減の理由は「推測」と書き分け、事実と混ぜない
scripts/ のファイルは、読み込まれずに実行されます。そのため、集計の処理が長くてもClaudeの文脈を圧迫しません。${CLAUDE_SKILL_DIR} はSKILL.mdのあるフォルダに置き換わり、allowed-tools と同じ書き方にしておくと、確認なしでスクリプトを動かせます。
例3:お客様向けの文章の表記の決まり(Claudeだけが使う)
記事、提案書、メールを書くときの決まりです。人が / で呼ぶものではないので、user-invocable: false にして、Claudeが文章を書く場面で読み込ませます。
---
name: writing-rules
description: お客様向けの文章(記事・提案書・メール)を書くとき、直すときの表記と言葉の決まり。
user-invocable: false
paths: "content/**/*.mdx, docs/proposals/**"
---
- 使わない言葉の一覧は banned-words.md を見る
- 料金は pricing.md の値だけを書く。自分で計算した金額を書かない
- 結果を約束する言い方をしない
- お客様の社名や、数字の実績は、根拠の資料があるものだけを書く
paths を付けると、そのパターンに合うファイルを扱うときだけ、Claudeが自分で読み込みます。当社でも、お客様向けの文章で使わない言葉を決めて運用しています。こうした決まりは、人が毎回伝えるより、スキルに置いたほうが漏れにくくなります。
例4:見積もりの下書き(引数を使う)
料金表の値だけを使って、見積書の下書きを作るスキルです。送るのは人なので、手で呼ぶ形にします。
---
name: estimate-draft
description: 料金表の値だけで見積書の下書きを作る
disable-model-invocation: true
argument-hint: "[お客様名] [依頼内容]"
arguments: [client, request]
---
$client 様の「$request」の見積書の下書きを作る。
- 単価と条件は pricing.md の値だけを使う。載っていない作業は「別途お見積もり」と書く
- 下書きはファイルに保存するだけにし、メールで送らない
/estimate-draft "株式会社サンプル" "研修の追加2回" のように呼ぶと、1つ目の引数が $client、2つ目が $request に入ります。空白を含む引数は、引用符で囲みます。
例5:調べものを別のエージェントに任せる(context: fork)
「料金を表示している箇所をすべて洗い出す」のように、たくさんのファイルを読む調べものは、別のエージェントに任せると、今の会話が読み込んだ内容で埋まりません。
---
name: find-usages
description: 指定した言葉や値が、コードや文書のどこで使われているかを洗い出す
context: fork
agent: Explore
background: false
---
「$ARGUMENTS」がリポジトリのどこで使われているかを探し、ファイル名と行番号の一覧にまとめる。
直さずに、一覧だけを返す。
context: fork を付けると、スキルは別のサブエージェントで動きます。サブエージェントは今の会話の履歴を見ないので、指示はスキルの中だけで完結させます。既定では裏で動くため、結果を待ってから次に進みたいときは background: false を付けます。
スキルを作るときにつまずく点
| つまずき | 起きること | 直し方 |
|---|---|---|
| 説明が曖昧 | 使ってほしいときに読み込まれない、関係ない場面で読み込まれる | 「何をするか」と「いつ使うか」を、いちばん大事な使い道から書く。説明と when_to_use は合わせて1,536字で切られる |
| スキルを増やしすぎる | 名前と説明の一覧が毎回の文脈を使う | /skill-doctor で、それぞれの負担と使われた回数を見て、使っていないものを止める |
| SKILL.mdが長すぎる | 一度読み込むと会話の間ずっと残り、文脈を圧迫する | SKILL.mdは500行以内にし、詳しい資料は別のファイルに分ける |
| 途中で手順を変えたのに反映されない | 読み込んだ後のSKILL.mdは、ファイルから読み直されない | 作業の途中で直したら、もう一度呼び出す。ずっと効かせたい指示は、手順ではなく決まりとして書く |
| 新しく作ったフォルダが読まれない | 会話の開始後に作った最上位のskillsフォルダは見張られていない | /reload-skills を実行する |
| frontmatterの書き方の誤り | YAMLとして読めないと、スキルは項目なしで読み込まれる。disable-model-invocation も効かなくなる | [ で始まる値や、記号を含む値は引用符で囲む(例:argument-hint: "[お客様名] [依頼内容]") |
会話が長くなって自動で要約されたあとは、呼び出したスキルごとに先頭の5,000トークンまでが引き継がれ、全体では25,000トークンまでです。大事な指示はSKILL.mdの前のほうに書きます。
安全に使うための3つの決まり
- 他人のスキルは中身を読んでから入れる:スキルはスクリプトを含められます。Anthropicも、信頼できる提供元のスキルに限るよう呼びかけています。リポジトリに入っているスキルの
allowed-toolsは、フォルダを信頼するかの確認では止まらないと公式ドキュメントに書かれているので、知らないリポジトリでClaude Codeを動かす前に確かめます - 秘密の情報を書かない:プロジェクトのスキルはリポジトリにコミットして共有します。APIキー、パスワード、お客様の情報は、SKILL.mdにも補助のファイルにも書きません
- 組織で止めたいものは設定で止める:権限の拒否のルールに
Skill(deploy *)のように書くと、Claudeがそのスキルを呼び出せないようにできます。Skillを拒否すれば、Claudeはどのスキルも使えません。人が/で呼ぶことも含めて止めたいときは、設定のskillOverridesでそのスキルを"off"にします。コマンドの結果の差し込みを止めたいときは、設定でdisableSkillShellExecutionを有効にします
claude.aiやAPIでも使うとき
スキルの形式は公開の標準なので、Claude Codeで作ったスキルを、claude.aiやAPIで使うこともできます。2025年12月の報道では、GitHub Copilotなど、Claude以外のツールでも対応が始まっています。
ただし、claude.aiへのアップロードとSkills APIで受け付けるfrontmatterの項目は、name・description・license・compatibility・metadata・allowed-tools の6つだけです。ほかの項目があると、アップロードがエラーになります。コマンドの結果の差し込みのように、Claude Codeだけの機能は、claude.aiのチャットやAPIでは動きません。両方で使うスキルは6つの項目だけで書き、Claude Codeだけの機能を使うスキルは分けておきます。
当社が手伝えること
- 1人で使うスキルを数本作るだけなら、この記事と公式ドキュメントで足ります
- チームでスキルを共有し、外に影響する手順の扱いや、使わせる道具の範囲をそろえたい場合は、研修と設定の代行が向きます
- スキルの先にある、社内の業務を仕組みとして自動化する開発は、AI開発・業務自動化で扱っています
Claude Code業務導入研修
¥330,000〜(税抜・合計10〜20時間)
- 4つの研修(環境構築・MCP連携・業務別プロンプト設計・チーム展開とセキュリティ。合計10〜20時間)
- settings.json 設定代行(業務要件ヒアリング込み)
- 業務プロンプト集(テンプレート)
- 主要MCP接続テスト・初期設定
- 3ヶ月フォローアップ
相談のときに伝えるとよいこと
- Claude Codeを使っている人数と、使っている部署
- 毎回チャットで頼んでいる作業と、その頻度
- 公開・送信・デプロイなど、外に影響する操作があるか
- 使っているリポジトリの数と、チームで共有したい決まり
関連記事
- Claude Code 初期設定おすすめ4ステップ|使い方を15分で
- Claude Code実践活用術|業務に組み込む15の使い方
- Claude Code受託開発とは|作れるもの・向く業務・費用感を解説
- ChatGPT dotsとは|現実的な使い方と任せる範囲
- AIエージェントの安全設計(ガードレール)|社内導入の権限設計
出典
この記事で参照した外部の文書です。確認日はいずれも2026-10-18です。
- Claude Code Docs「Extend Claude with skills」。スキルの定義、Agent Skillsの標準に沿っていること、作るきっかけ、置き場所と優先順位、クラウドのセッションとroutinesが個人のスキルを読まないこと、frontmatterの各項目、呼び出しの制御、引数、コマンドの結果の差し込みと失敗時の動き、context: forkとbackground、allowed-toolsの許可が次のメッセージで消えること、リポジトリのスキルのallowed-toolsがフォルダの信頼の確認で止まらないこと、説明の1,536字の上限、SKILL.mdを500行以内にすること、要約後に引き継がれる5,000トークンと25,000トークン、/skill-doctor と /reload-skills、Skill(name *) の拒否のルール、disableSkillShellExecution、claude.aiとSkills APIで使える6つの項目、カスタムコマンドがスキルに統合されたこと
- Claude Code Docs「Extend Claude Code」。CLAUDE.md・スキル・サブエージェント・MCP・フックの役割と例、どれを足すかの目安、CLAUDE.mdとスキルの組み合わせ方
- Anthropic「Introducing Agent Skills」(2025年10月16日、2025年12月18日更新)。スキルが指示・スクリプト・資料のフォルダであること、Claudeのアプリ・Claude Code・APIで使えること、信頼できる提供元のスキルに限るよう呼びかけていること
- gihyo.jp「Anthropic、エージェントスキルをオープンスタンダードとして公開」(2025年12月19日)。Agent Skillsが2025年10月にプレビューとして公開され、12月に公開の標準になったこと、GitHub Copilotでの採用
- Agent Skills「agentskills.io」。公開の標準の仕様