Claude Codeでカスタム挙動を作りたい人向け(CLAUDE.md を編集した経験があれば読めます)
特定の作業(記事執筆、コードレビュー等)で守らせたいルール集を、毎回プロンプトに書かずに済ませたいとき。
「Claudeに毎回守らせたいルールや手順」をMarkdown(=見出し・箇条書きが書ける軽量テキスト記法)ファイルにまとめて、起動時に自動で読み込ませる仕組み。プロジェクトの .claude/skills/ 配下に置いた SKILL.md がClaudeのコンテキスト(=会話で参照される情報の枠)に自動注入される。
噛み砕くと
仕事で「これ作るときの手順、毎回同じだな」と気づいたら、手順書を1枚にまとめてデスクの引き出しに入れておくはず。次から「あの手順書ちょっと出して」で済むようになる。スキルはその「引き出しの手順書」を自動でClaudeに渡す仕組み。
使う側は「.claude/skills/<名前>/SKILL.md を作る」だけでOK。Claudeが起動するたびに該当の手順書を勝手に開いて読む。
具体的に何ができる?
- プロジェクト固有のルール・手順・文体ガイドを永続化する
- frontmatter(=ファイル冒頭の設定欄)の
descriptionでClaudeに「いつこのスキルを使うべきか」を伝える - スキル内で関連ファイル(テンプレ、JSONデータ、補助スクリプト)を同梱できる
- スキルからスキルを参照する階層構造も作れる(Progressive Disclosure、=必要になったら次の詳細を読む段階的開示)
使いどころ3シナリオ
シナリオ1: 自社の文体・スタイルガイドをClaudeに守らせる
.claude/skills/our-style/SKILL.md に「一人称は『私』」「冗長な敬語禁止」「絵文字禁止」みたいな文体ルールを書いておくと、記事を書く全タスクで自動適用される。Aisola Lab自体も .claude/skills/aifreak-style/ でこの仕組みを使っている。
シナリオ2: 定型的な作業を1コマンドにまとめる
「PR(=コードレビュー単位)レビューでよく見る観点を毎回チェックさせたい」みたいな作業を .claude/skills/pr-review/SKILL.md としてスキル化。/pr-review で呼ぶだけで決まった観点で差分を見てくれる。
シナリオ3: チームで標準化したいワークフロー(=作業の流れ)を共有する
「新規エンドポイントを追加する時の手順(OpenAPI(=API仕様書の規格)→ハンドラ(=リクエストを処理する関数)→テスト→ドキュメント)」をスキルにして git で共有。チーム全員のClaudeが同じ手順で動く。
初心者が踏みやすい落とし穴
- frontmatter の
descriptionが雑だと自動発火しない。「いつ使うか」「何のキーワードで起動するか」を具体的に書く - スキルは起動時に1回しか読まれない。スキルファイルを編集した後は Claude Code を再起動しないと反映されない(粘らずに再起動が早い)
- スキル間で矛盾するルールを書くと最後に読まれた方が勝つ。複数スキルを混ぜる時は優先順位を整理しておく
- スキルとサブエージェントは別物。スキルは「自動注入される指示書」、サブエージェントは「呼び出されるロール」。混同しがち
書き方
.claude/skills/<skill-name>/SKILL.md
やってみるとこうなる
入力
.claude/skills/aifreak-style/SKILL.md を作成
出力例
Claude起動時に自動的にコンテキストへ注入される。/<skill-name> で明示呼び出しも可能。
このページに出てきた言葉
- Markdown
- 見出し・箇条書き・コードブロックなどを書ける軽量テキスト記法。<code>.md</code> 拡張子。
- frontmatter
- Markdownファイル冒頭に <code>---</code> で囲って書くメタ情報の領域。
- コンテキスト
- Claudeが今の会話で参照できる情報の枠。スキルやCLAUDE.md・読み込んだファイル等が入る。
- Progressive Disclosure
- 必要になった段階で詳細情報を順に開示する設計。スキルの中から別スキルや別ファイルを参照する形。
- OpenAPI
- REST API の仕様を機械可読な形式で書く規格。Swagger とも呼ばれる。
- ハンドラ
- API等でリクエストを受け取って処理する関数。エンドポイントの実装本体。
- ワークフロー
- 作業の流れ・手順の連なり。