3

Skills

User Message/skill or patternSkill MatchingName + DescriptionSkill File.claude/skills/*.mdPrompt ExpansionTemplate -> Full promptBuilt-in Skillscommit, review...Claude ExecutionWith skill contextResultCode + Text output

Skillsとは

Skillsは、Claude Codeの機能を拡張するカスタムプロンプトである。 繰り返し行うワークフローや、ドメイン固有の知識をスキルとして定義し、 一貫した品質で再利用できる。

スキルの種類

種類説明
ドメイン知識型特定の技術やパターンの知識を提供API設計規約、コーディング標準
ワークフロー型複数ステップの作業手順を定義Issue修正フロー、レビュー手順

ファイル形式

スキルは .claude/skills/ ディレクトリに .md ファイルとして配置する。

.claude/
  skills/
    fix-issue.md
    api-conventions.md
    code-review.md

SKILL.md のフォーマット

---
name: fix-issue
description: GitHubのIssueを分析し、修正PRを作成する
disable-model-invocation: false
---

# Issue修正スキル

## 手順

1. Issueの内容を読み取る: $ARGUMENTS
2. 関連するコードを検索する
3. テストを先に書く(TDD)
4. 修正を実装する
5. テストが通ることを確認する
6. Conventional Commitsでコミットする

Frontmatter

フィールド必須説明
nameはいスキルの識別名
descriptionはいスキルの説明(自動マッチングに使用)
disable-model-invocationいいえtrueでLLM呼び出しを無効化(テンプレート専用)

トリガーパターン

スキルは2つの方法で呼び出される。

1. 明示的な呼び出し

スラッシュコマンドでスキル名を指定する。

> /fix-issue #42のバグを修正して

2. 自動マッチング

ユーザーの入力が description と一致する場合、Claudeが自動的にスキルを選択する。 たとえば「Issueを修正して」という入力で fix-issue スキルが自動選択される可能性がある。

$ARGUMENTS 変数

$ARGUMENTS はスキル呼び出し時にユーザーが渡した引数で置換される。

---
name: explain
description: 指定されたコードやコンセプトを解説する
---

以下について詳しく解説してください:

$ARGUMENTS

## 解説の方針
- 初心者にもわかりやすく
- コード例を含める
- 関連する概念も紹介する

呼び出し例:

> /explain ReactのuseEffectフック

この場合 $ARGUMENTSReactのuseEffectフック に置換される。

スキルの設計例

コードレビュースキル

---
name: code-review
description: コードの品質をレビューし改善提案を行う
---

# コードレビュー

対象: $ARGUMENTS

## チェック項目

1. **型安全性** — any型の使用、型アサーションの妥当性
2. **エラーハンドリング** — 例外処理の網羅性
3. **テストカバレッジ** — 境界値、異常系のテスト
4. **命名規約** — 変数名、関数名の明確さ
5. **パフォーマンス** — 不要な再レンダリング、N+1クエリ
6. **セキュリティ** — インジェクション、認証チェック

## 出力形式

各項目について 良好 / 要改善 / 問題あり で評価し、
改善提案がある場合はコード例とともに提示する。

API規約スキル

---
name: api-conventions
description: プロジェクトのAPI設計規約を参照する
disable-model-invocation: true
---

# API設計規約

- RESTful設計に従う
- エンドポイントは複数形名詞: `/users`, `/posts`
- レスポンスは `{ data, error, meta }` 形式
- エラーコードは RFC 7807 Problem Details に準拠
- ページネーションは cursor-based
- 認証は Bearer token (Authorization ヘッダー)

disable-model-invocation: true を指定すると、このスキルはLLM呼び出しを行わず、 テンプレートとしてコンテキストに注入されるのみとなる。

ベストプラクティス

  1. 単一責任 — 1つのスキルは1つの目的に絞る
  2. 明確な手順 — 番号付きリストで手順を明示する
  3. 具体的なdescription — 自動マッチングの精度を上げる
  4. チームで共有.claude/skills/ をリポジトリにコミットする
  5. 段階的に改善 — 使いながらプロンプトを洗練させる