Agent Skills で暗黙知を形式知に変えていこう

こんにちは、CTO室の丸山です。

弊社のエンジニアは全員業務で Claude Code が使えるようにルール整備されているのですが、私はというと普段の開発をClaude Codeと壁打ちしながら進める傍ら、CTOからの無茶振りを打ち返すAgent Skillsを試行錯誤しながら作る日々を過ごしております。

そんな私も、Agent Skillsが登場した当初はどう使ったらよいかわからず、ひとまず日々の小さな繰り返し作業をSkill化することから試して理解していきました。今日はそのあたりの試行錯誤について簡単に触れてみたいと思います。

きちんと学ぶならぜひ The Complete Guide to Building Skills for Claude に目を通しておきたいところですが、まずは日々の業務に小さく適用するところから始めることで価値を実感するのがよいと思います。

最初の1個を作ってみる

私が最初に作ったAgent Skillは、自分で実装したコードをコミットするSkillです。

作り方はとてもシンプルで、普段Claude Codeに繰り返し出している指示をベースに「これをSkillにして」と頼むだけ。Claude Codeが会話の文脈からSKILL.mdを生成してくれます。実際に出来上がったのがこちらです。

---
description: "変更をステージしてコミットする"
user-invocable: true
---

変更内容をステージし、コミットしてください。

## 手順

### ステップ1: ステージング

**引数あり(`$ARGUMENTS`)の場合:**
- 指定されたファイルを `git add` する

**引数なしの場合:**
1. `git status` で変更のあるファイル一覧を表示する
2. ユーザーに add 対象を確認する
3. 選択に従い `git add` を実行する

### ステップ2: 差分確認

1. `git diff --cached` でステージ済みの変更内容を表示する

### ステップ3: コミット

1. `git log --oneline -5` で直近のコミットメッセージのスタイルを確認する
2. 変更内容を分析し、リポジトリのスタイルに合わせたコミットメッセージを作成する
3. `git commit` を実行する

こうしてみるとただの手順書です。特別な構文もなく、普段やっていることをMarkdown形式で書き出しただけのものになります。それでも /commit と打つだけで毎回同じ品質で動いてくれます。

さらに便利だなと思ったことは、過去の会話の文脈から暗黙のルールも読み取って、規約として明示してくれたことです。

## コミットメッセージの規約

- 接頭辞: feat / fix / refactor / docs / chore 等を使用
- 日本語で記述
- 1行目は簡潔な要約、必要に応じて空行の後に詳細を記述
- Co-Authored-By 行は不要

## 注意事項

- .env やクレデンシャルファイルなど機密情報を含むファイルは add しない
  検出した場合はユーザーに警告する

自分でも意識していなかった「いつもの作業」が形式知として書き出されることが、Skill化の強みだと感じました。

小さく始めて、広げていく

これを皮切りに、PR作成など徐々に範囲を広げていくことで、自分の開発スタイルをそのままSkill化できることがわかりました。

また、Skill化の対象は何も実装に限りません。週報の作成、1on1の話題の整理、採用面談の質問準備など、「手順が言語化できるもの」なら何でもいけそうです。

やってみて気づいたこと

Skill化は、自分の業務を言語化する作業でもあります。結果として引き継ぎやノウハウ共有がしやすくなりましたし、日々の業務の中にある繰り返し作業に自然と目がいくようになりました。

汎用的なSkillもたくさん出回っていますが、まずは自分の手触りで小さく1個作ってみるのがおすすめです。「毎日やっているけど、毎回同じことを指示しているな」という作業を1つ選んで、Claude Codeに「これSkillにして」と言うところから始めてみるとよいでしょう。