Claude CodeのSkillsの作り方!よく使う手順をスキル化したらチームで使い回せるようになった話
👀 結論から
Claude Code には Skills という機能があって、よく使う手順やノウハウを再利用可能な形でパッケージ化できます!
.claude/skills/ 以下に Markdown ベースの定義を置いておくだけで、Claude Code が状況に応じて自動的に読み込んで使ってくれます。
実際にチームのプロジェクトに導入してみたら、属人化していた作業手順が一気に共有できるようになりました(^o^)/
💡 Skills 機能とはなにか
Skills は「特定の作業のやり方」をひとまとめにして Claude Code に教えておける仕組みです。
hooks が「イベント発火でコマンドを実行する」機能なのに対して、Skills は「こういうときはこの手順で進めて」という判断材料を渡すイメージに近いです。
SKILL.md というファイルに、いつ使うべきか・どんな手順を踏むべきかを書いておきます。
Claude Code はユーザーの依頼内容を見て、関連しそうな Skill を自動で判断して読み込んでくれるので、毎回手動で呼び出す必要はありません!
Excelのマクロに近い感覚で、「よくやる作業」をひとつのファイルに固めておく、というイメージがしっくりきます。
✨ 実際に作った Skills
自分のチームでは、まず「PRの説明文テンプレートを整える Skill」を作ってみました(^^)
.claude/skills/pr-description/SKILL.md
このファイルに、タイトルの付け方・本文の構成・レビュー観点のチェックリストを書いておくと、PRを作るたびに毎回同じフォーマットで整えてくれるようになりました!
次に作ったのは「デプロイ前の確認手順」をまとめた Skill です。
lint・型チェック・テストの実行順序と、失敗したときの切り分け方をSkill化しておいたら、新しく入ったメンバーでも同じ手順で進められるようになったのが結構大きいです。
👍 使い始めてからの変化
一番変わったのは、口頭やSlackで伝えていた「暗黙のルール」が文章として資産になったことです。
以前は「あの作業どうやるんだっけ」と聞かれるたびに、自分が説明する時間が発生していました(´・ω・`)
Skillsに手順を書いておいてからは、Claude Code に頼むだけで同じクオリティの成果が返ってくるようになって、説明コストがかなり減りました!
チームメンバーが増えても、オンボーディングの負担がだいぶ軽くなった実感があります(^_^)
🗂️ 個人用と共有用の置き場所を分けた
私が一番よく使っているのは、個人用と共有用でSkillの置き場所を分ける運用です。
Claude Codeには ~/.claude/skills/(自分のホーム配下)と .claude/skills/(リポジトリ配下)という2つの置き場所があって、後者に置いてコミットすればチーム全員に自動で行き渡ります。
最初は全部リポジトリ直下に置いていたんですが、個人的な「自分の書き方の癖」まで共有スキルに混ぜてしまうと、他のメンバーが読んだときに違和感が出ることに気づきました。
そこで、チームの合意が取れている手順だけ .claude/skills/ にコミットして、まだ自分だけで試している段階のものは ~/.claude/skills/ に置いておく、というルールに落ち着いています。
もう一つハマった点として、Skillの description を曖昧に書くと狙ったタイミングで発火しなかったり、逆に関係ないときに発火してしまうことがありました。
「〇〇と言われたときに使う」という具体的なトリガーワードを description に列挙するようにしてから、発火の精度がかなり安定しました。
🤔 気になった点
Skillの粒度をどこまで細かくするかは、正直まだ試行錯誤中です(・_・;)
粒度を細かくしすぎると管理するファイルが増えて逆に大変になるし、粗すぎると期待通りに読み込まれないこともあるかも・・・
また、Skillが自動で選ばれる仕組みなので、狙った通りに発火しているかは実際に試しながら確認する必要があります。
READMEに近い感覚で、定期的に見直して整理する運用が必要だと感じています。
🔧 勝手に呼ばれすぎないようにする設定
Skills を増やしていくと、関係ない場面で Claude が skill を読み込んでしまうことがあります(・_・;)
そこで、私が使っている設定をまとめておきます。
descriptionを具体的に書く: Claude は description を見て「今この skill を使うべきか」を判断します。「レビュー用」より「PR を出す前に、PHP の差分をセキュリティ観点でレビューするとき」のように書くと誤爆が減るdisable-model-invocation: true: 自分で/名前と打ったときだけ動くようにする。デプロイのように勝手に動いてほしくない skill に必須paths: 特定のファイルを扱うときだけ有効にする。たとえばフロントエンドの skill はresources/js/**のときだけ、といった絞り込みができる
特に disable-model-invocation は、副作用のある操作(デプロイ・データ削除・本番への反映)には必ず付けるようにしています👀
逆に、コーディング規約やチェックリストのような「読むだけ」の skill は、自動で読み込まれたほうが便利です✨
「勝手に動いて困るか?」で付けるかどうかを決めると、迷わずに済みますよ(^^)
パパ系Webエンジニア〜愛用ガジェット一覧 🛍️
AI開発・執筆に使っている作業デスク環境を楽天ROOMにまとめています ✨ デスク周りの参考にどうぞ 🙌
🙌 まとめ
Claude Code の Skills 機能を使うと、チームのノウハウを再利用可能な形で資産化できます!
.claude/skills/にSKILL.mdを置くだけでチーム共有できる- hooksが「自動実行」ならSkillsは「判断材料を渡す」機能
- PRテンプレートやデプロイ手順など定型作業と特に相性がいい
- 個人用(
~/.claude/skills/)と共有用(.claude/skills/)の使い分けがかなり便利 descriptionのトリガーワードを具体的に書くと発火精度が上がる
属人化しがちな手順をチームで使い回したい人は、ぜひ試してみてください🙌
※ 機能仕様は今後も更新される可能性があります。最新情報は公式ドキュメントをご確認ください👀