skill-creatorを使って障害対応用のAgent Skillを作ってみる
TRUSTART株式会社でエンジニアとして働いているnagashunです!
Claude Codeを使っていると、「毎回同じような指示を出しているな」と感じることはありませんか?
例えば、Sentryからエラー通知が来るたびに「エラーの原因を分析して、影響範囲と緊急度を教えて」と毎回お願いしている、など。
こういった繰り返しの指示をSkillとして定義しておけば、Claudeが自動的に認識して適切なフォーマットで対応してくれます。
今回は、Anthropic公式の skill-creator を使って、実際に業務で使える「障害対応用のエラー分析Skill」を作成してみたので、その過程を紹介したいと思います!
Agent Skills とは
まずはAgent Skillsについて簡単に説明します!
Agent Skillsは、Claudeの能力を拡張するための仕組みです。2025年10月にリリースされ、12月にはオープンスタンダードとして公開されました。
公式の説明を借りると:
Skills are modular, self-contained packages that extend Claude's capabilities by providing specialized knowledge, workflows, and tools.
(Skillはモジュール式の自己完結型パッケージで、専門知識・ワークフロー・ツールを提供することでClaudeの能力を拡張する)
簡単に言えば、Claudeに対する「業務マニュアル」 のようなものですね。
Skillの構造
最小構成は SKILL.md ファイル1つだけです。
my-skill/
└── SKILL.md # 必須: スキルの定義
より複雑なSkillでは、以下のようなリソースを追加することもできます。
my-skill/
├── SKILL.md # 必須
├── scripts/ # 実行可能なコード(Python/Bashなど)
├── references/ # 参照用ドキュメント
└── assets/ # 出力に使うファイル(テンプレートなど)
配置場所
| 場所 | 範囲 |
|---|---|
~/.claude/skills/ |
全プロジェクトで利用(個人用) |
.claude/skills/ |
そのプロジェクト内のみ(チーム共有可) |
skill-creator とは
Anthropicが公式リポジトリ(anthropics/skills)で提供しているSkill作成用のスキルです。
Skill作成のベストプラクティスに沿ったガイドや、初期化スクリプト・バリデーションスクリプトが含まれており、初めてのSkill作成でも迷わず進められるようになっています!
実際にSkillを作ってみる
それでは、実際にSkillを作っていきましょう!
作るもの
Sentryからエラー通知が来た際に、エラーログを渡すだけで以下を構造化して出力してくれるSkillを作ってみたいと思います。
- エラー種別・発生箇所
- ユーザー影響の有無
- 緊急度(高/中/低)
- 修正方針
Step 1: skill-creator のインストール
npx skills add https://github.com/anthropics/skills --skill skill-creator
対話式のインストーラーが起動するので、以下のように選択していきます。
◆ Which agents do you want to install to?
│ Claude Code (.claude/skills)
│
◇ Installation scope
│ Global
│
◇ Installation method
│ Symlink (Recommended)
- エージェント: Claude Codeを選択
- スコープ: Global(全プロジェクトで使えるように)
- インストール方法: Symlink(更新が自動反映されるため)
Step 2: Skillの初期化
次に、skill-creatorに含まれる init_skill.py でテンプレートを生成します。
python3 ~/.agents/skills/skill-creator/scripts/init_skill.py error-analyzer --path ~/.claude/skills/
以下のような構造が自動生成されるので、ここから編集していく形になります。
error-analyzer/
├── SKILL.md # テンプレート(TODO付き)
├── scripts/
│ └── example.py # サンプルスクリプト
├── references/
│ └── api_reference.md # サンプルリファレンス
└── assets/
└── example_asset.txt # サンプルアセット
Step 3: 不要ファイルの削除
今回のSkillはテキスト指示のみで完結するため、サンプルのディレクトリは削除してしまいましょう。
rm -rf ~/.claude/skills/error-analyzer/scripts
rm -rf ~/.claude/skills/error-analyzer/assets
rm -rf ~/.claude/skills/error-analyzer/references
skill-creatorのガイドでは、Skillの自由度を3段階で定義しています。
| 自由度 | 形式 | 適した場面 |
|---|---|---|
| 高 | テキスト指示 | 判断がコンテキストに依存する(今回のケース) |
| 中 | 擬似コード・パラメータ付きスクリプト | パターンはあるが多少の変動がある |
| 低 | 固定スクリプト | 毎回同じ処理を確実に実行する(PDF変換など) |
エラー分析は毎回異なるエラーに対して判断するため、高い自由度が適切ですね。
Step 4: SKILL.md の編集
テンプレートの TODO を埋めて、実際のSkillに仕上げていきましょう!
---
name: error-analyzer
description: エラーログの分析と障害対応を支援するスキル。Sentryなどの監視ツールからのエラー通知、コンソールエラー、スタックトレースを受け取り、原因特定・ユーザー影響・緊急度・修正方針を構造化して出力する。「エラーを分析して」「このエラーの原因は?」「障害対応をお願い」「Sentryでこのエラーが来た」などのリクエストで使用する。フロントエンド・バックエンド問わず対応可能。
---
# Error Analyzer
エラーログを受け取り、構造化された分析結果を出力する。
## 分析手順
1. エラーメッセージとスタックトレースを読み取る
2. プロジェクト内の該当コードを特定し確認する
3. エラーの根本原因を特定する
4. 以下のフォーマットで分析結果を出力する
5. 修正方針には具体的なコード変更を含める
6. 分析結果の出力後、コードの修正には進まず、ユーザーに次のアクションを確認する
## 出力フォーマット
(中略)
## 重要: 分析後の振る舞い
分析結果を出力した後、コードの修正を自動的に行わないこと。
必ずユーザーに次のアクションを確認する。
ユーザーが明示的に修正を依頼した場合のみ、コード修正に進む。
SKILL.md を書く際のポイント
実際に書いてみて気づいたポイントを共有します!
1. description フィールドが最重要
description はClaudeがSkillをいつ使うか判断するためのトリガーです。「何をするか」だけでなく「いつ使うか」「どんな言葉で呼び出されるか」を含めるのがコツです。
2. 振る舞いの制御を明示する
最初のバージョンでは、分析後にClaudeが勝手にコード修正まで進んでしまいました。「分析だけで止まってユーザーに確認する」という指示を追加して解決しました。Skillは使ってみて初めて分かる改善点があるので、反復改善が大事ですね。
3. 500行以内に収める
skill-creatorのガイドでは、SKILL.md本体は500行以内を推奨しています。それ以上になる場合は references/ に分割しましょう。
動作確認
それでは、実際に動かしてみましょう!
新しいClaude Codeのセッションで、エラーログを渡してみます。
このエラーを分析して
TypeError: Cannot read properties of undefined (reading 'map')
at ContactFormDialog (src/features/contact/components/ContactFormDialog.tsx:45:23)
at renderWithHooks (node_modules/react-dom/cjs/react-dom.development.js:14985:18)
すると、定義したフォーマットに従って構造化された分析結果が返ってきました!
## エラー分析
### 概要
- エラー種別: TypeError (Cannot read properties of undefined (reading 'map'))
- 発生箇所: ContactFormDialog.tsx:342 — categories.map(...) の呼び出し
- 再現条件: ダイアログの初回マウント時、data が undefined のタイミングで発生
### ユーザー影響
- 影響あり
- お問い合わせフォームダイアログが開けず、ユーザーがお問い合わせを送信できない
### 緊急度
- 中
- お問い合わせ機能が使えない状態だが、アプリの主要機能には影響しない
### 修正方針
1. categories.map の前にガードを追加: categories?.map(...)
2. または useContactCategories フック側でデフォルト値を保証する
修正を進めますか? それとも他に確認したいことはありますか?
エラーの原因分析から影響範囲の判断、修正方針の提案まで一発で出力され、かつ修正はユーザーの指示を待つという振る舞いになっていますね。いい感じです!
まとめ
今回は、Anthropic公式のskill-creatorを使って、Agent Skillを作ってみました!
改めて流れを振り返ると:
-
skill-creatorをインストール —
npx skills addで一発 - init_skill.py でテンプレート生成 — 構造を覚える必要なし
-
SKILL.md を編集 —
descriptionと本文を書くだけ - 使ってみて改善 — 実際の動作を見てイテレーション
Skillの本体は SKILL.md というMarkdownファイル1つ です。「毎回Claudeに同じことを説明している」と感じたら、ぜひSkillにしてみてください!一度作れば、プロジェクトをまたいで使い回すこともできます。
参考
- GitHub - anthropics/skills
- Equipping agents for the real world with Agent Skills | Anthropic
- Agent Skills - Claude API Docs
最後に
TRUSTART株式会社は、一緒に働くメンバーを募集しています!
インターンメンバーも大募集中です!
興味を持っていただいた方は、ぜひ弊社のページをご確認ください!
「人とデータで全てを可能にする」 不動産領域に関連する、あらゆるビジネスのDX化にチャレンジし、「テクノロジー×人」の力で社会課題を解決するTRUSTART株式会社のテックブログです! 採用情報はこちら:trustart.co.jp/recruit/
Discussion