skill-extractor について
作業セッションで得た、検証済みで再利用できる知見をClaude Codeのスキルとして保存するスキルです。既存スキルとの重複を確認し、知見の評価から作成・検証までを案内します。
主な機能
- 01セッションから再利用可能な知見を抽出
- 02関連する既存スキルの確認
- 03再利用性と検証状況の評価
- 04スキル作成と検証の案内
- 05ユーザー単位またはプロジェクト単位で保存
活用シーン
- 01検証済みのデバッグ手順の保存
- 02今後のセッション向けのプロジェクトパターンの記録
- 03関連スキルへの新たなエッジケースの追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ trailofbits/ skills-curated --skill skill-extractorインストール後、Claude Code で/skill-extractorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/quality-guide.mdskill-lifecycle.mdskill-template.md詳細
スキル抽出ツール
作業セッションから再利用可能な知識を抽出し、Claude Code のスキルとして保存します。
使用するタイミング
- 調査を通じて、すぐには分からない問題を解決した
- 試行錯誤が必要な回避策を見つけた
- 同様の状況で役立つデバッグ手法を見つけた
- 保存する価値のある、プロジェクト固有のパターンを学んだ
- 根本原因がすぐには分からなかったエラーを修正した
使用しないタイミング
- 簡単なドキュメント検索(ドキュメントをブックマークしてください)
- 些細な修正(誤字や明らかなエラー)
- 一度限りのプロジェクト固有の設定
- すでに他の場所で十分に文書化されている知識
- 未検証の解決策(実際に動作するまで待ってください)
抽出候補を見つける
次のプロンプトを使って、抽出する価値のある知識を特定します。
- 「始める前には分からなかったことで、今学んだことは何ですか?」
- 「まったく同じ問題にもう一度直面したら、何を知っておきたいですか?」
- 「ここにたどり着くきっかけとなったエラーメッセージや症状は何で、実際の原因は何でしたか?」
- 「このパターンはこのプロジェクトに固有のものですか、それとも同様のプロジェクトでも役立ちますか?」
- 「同じ問題に直面した同僚に、何を伝えますか?」
少なくとも2つの質問に対して、重要な答えを出せない場合は、おそらく抽出する価値はありません。
コマンド
/skill-extractor [--project] [context hint]
- デフォルト:
~/.claude/skills/[name]/SKILL.mdに保存します --project:.claude/skills/[name]/SKILL.mdに保存します- コンテキストヒントを指定すると、抽出の対象を絞り込めます(例:
/skill-extractor the cyclic data DoS fix)
抽出プロセス
ステップ 0:既存のスキルを確認する
新しいスキルを作成する前に、同じ内容を扱っている可能性のある既存のスキルを検索します。
# Check user skills
ls ~/.claude/skills/
# Check project skills
ls .claude/skills/
# Search by keyword
grep -r "keyword" ~/.claude/skills/ .claude/skills/ 2>/dev/null
関連するスキルがある場合は、新しく作成するのではなく、更新することを検討してください。更新するか新しく作成するかの指針については、skill-lifecycle.md を参照してください。
ステップ 1:学びを特定する
$ARGUMENTS にコンテキストヒント(例:「循環データの DoS 修正」)が含まれている場合は、その特定のトピックに抽出の対象を絞ります。
会話を分析して、以下を特定します。
- どのような問題を解決しましたか?
- 解決策のどこがすぐには分かりにくかったですか?
- 次回、より早く解決するために、何を知っておく必要がありますか?
- 正確な発生条件(エラーメッセージ、症状)は何ですか?
ユーザーに簡単な概要を提示します。
I identified this potential skill:
**Problem:** [Brief description]
**Key insight:** [What made it non-obvious]
**Triggers:** [Error messages or symptoms]
ステップ 2:品質を評価する
候補となるスキルを、次の基準に照らして評価します。
| 基準 | 合格? | 根拠 |
|---|---|---|
| 再利用可能 - 今回だけでなく、今後のタスクにも役立つ | [理由] | |
| 重要性がある - ドキュメント検索ではなく、調査や発見を必要とした | [理由] | |
| 検証済み - 解決策が実際に機能した | [証拠] | |
| 具体的なトリガー - 正確なエラーメッセージや状況がある | [内容] | |
| 理由を説明する - 手順だけでなく、トレードオフや判断を説明する | [方法] | |
| 付加価値がある - Claude が調べれば分かる事実ではなく、判断の仕方を教える | [方法] |
評価をユーザーに提示し、次のように尋ねます。「抽出を進めますか?[yes/no]」
合格した基準の数にかかわらず、続行するかどうかはユーザーが決定します。ユーザーの判断を尊重してください。「yes」と答えた場合は抽出し、「no」と答えた場合はスキップします。
ステップ 3:詳細を収集する
ユーザーに次の内容を尋ねます。
- スキル名 - コンテキストに基づいてケバブケースの名前を提案し、変更も可能にします
- スコープ - ユーザーレベル(デフォルト)またはプロジェクトレベル(
--project)
ステップ 4:任意の調査
トピックに特定のライブラリやフレームワークが関係する場合:
- ウェブ検索で最新のベストプラクティスを確認します
- 利用可能であれば Context7 MCP を使って公式ドキュメントを確認します
- 関連する情報源を「参考資料」セクションに含めます
次の場合は調査を省略します。
- プロジェクト固有の内部パターン
- 一般的なプログラミングの概念
- 時間の経過に影響されやすい抽出内容
ステップ 5:スキルを生成する
skill-template.md のテンプレートを使用します。
品質基準: スキルが長期的な価値を提供できるよう、quality-guide.md に従ってください。重要なポイント:
- 参考情報を羅列するのではなく、行動の指針を示す
- 何をするかだけでなく、なぜそうするかを説明する
- 他のスキルより優先して適用されるよう、具体的なトリガーを示す
ステップ 6:保存前に検証する
skill-template.md の検証チェックリストに沿って確認します。検証に失敗した場合は、保存する前に問題を修正します。
ステップ 7:スキルを保存する
ディレクトリを作成して保存します。
- ユーザーレベル:
~/.claude/skills/[name]/SKILL.md - プロジェクトレベル:
.claude/skills/[name]/SKILL.md
成功を報告します。
Skill saved to: [path]
The skill will be available in future sessions when the context matches:
"[first line of description]"
メモリの統合
抽出するときは、新しい知識と既存のスキルとの関係を検討します。
統合するか、分けるか?
- 新しい知識が既存のスキルのバリエーションまたはエッジケースであれば、統合します
- 明確に異なるトリガー条件がある、または根本的に異なる問題を解決する場合は、分けます
- 判断に迷う場合は、まず別にします。後からいつでも統合できます
更新するか、新規作成するか:
- エッジケースの追加、より良い解決策、または訂正を発見した場合は、既存のスキルを更新します
- 関連する分野であっても、知識のトリガー条件が異なる場合は、新しいスキルを作成します
相互参照:
- 関連はあるものの別々のスキルであれば、それらにリンクする「関連項目」セクションを追加します
- 例:「接続プールの枯渇をデバッグする」スキルから、「サーバーレスのコールドスタートを最適化する」スキルにリンクできます
スキルのライフサイクル
スキルは永久に使い続けるものではありません。以下については、skill-lifecycle.md を参照してください。
- 新たな発見を反映してスキルを更新する
- ツールやパターンが変わったときにスキルを非推奨にする
- 関連性がなくなったスキルをアーカイブする
却下すべき合理化
次のように考えていることに気づいたら、抽出してはいけません。
- 「いつか役に立つかもしれない」—検証済みで再利用可能な知識だけを抽出します
- 「とりあえず全部保存しよう」—量より質を重視します
- 「ユーザーの確認はないけれど、価値がありそう」—必ず明示的な確認を得ます
- 「『使用しない場合』のセクションは省略しよう」—優れたスキルには必須です
- 「説明は曖昧でもかまわない」—発見されるためには、具体的なトリガーが不可欠です
抽出例
シナリオ: ユーザーが、自己参照するリストなど、循環参照を含むシリアライズ済みファイルを解析すると AST ビジターが RecursionError でクラッシュすることを発見しました。
特定した学び:
- 循環データ構造は循環 AST を作り出します
- 循環を追跡しないビジターパターンは無限再帰を引き起こします
- 訪問済みノードを追跡するか、深度制限を設ける必要があります
生成されたスキル名: cyclic-ast-visitor-hardening
主なセクション:
- 使用する場合:「AST ビジターで RecursionError が発生する」「信頼できないシリアライズ済み入力を解析する」
- 使用しない場合:「循環していないものの、深くネストされた構造による再帰」
- 問題:ビジターが訪問済みノードを追跡せず、循環で無限ループに入る
- 解決策:
visited: setパラメーターを追加し、再帰する前に確認する - 検証:循環テストケースが RecursionError を発生させずに完了する