mcpField
E
extract

extract

github.com/alirezarezvaniエージェントワークフロー29.0k1.6k 回インストール今日更新
リポジトリ

extract について

繰り返し使うパターンやデバッグ解決策を、プロジェクト間で再利用できる独立したスキルにまとめるスキルです。パターン選定、命名、ファイル生成、品質確認を順に進めます。

主な機能

  1. 01再利用可能なパターンの特定
  2. 02スキルの範囲と名前の決定
  3. 03エージェントによるスキルファイル生成
  4. 04構成と移植性の確認
  5. 05dry-run による変更プレビュー

活用シーン

  1. 01繰り返し発生するデバッグ解決策の保存
  2. 02複数手順のワークフローの再利用
  3. 03特定プロジェクトに依存しないスキルの作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alirezarezvani/claude-skills --skill extract

インストール後、Claude Code で/extractを入力して読み込まれたか確認します。

詳細

/si:extract — パターンからスキルを作成

繰り返し発生するパターンやデバッグの解決策を、あらゆるプロジェクトにインストールできる、独立したポータブルなスキルに変換します。

使い方

/si:extract <pattern description>                  # Interactive extraction
/si:extract <pattern> --name docker-m1-fixes       # Specify skill name
/si:extract <pattern> --output ./skills/            # Custom output directory
/si:extract <pattern> --dry-run                     # Preview without creating files

抽出するタイミング

次のいずれかに当てはまる場合、その学びはスキルとして抽出する価値があります。

条件判断の目安
繰り返し発生する2つ以上のプロジェクトで同じ問題が発生している
自明ではない発見するために実際のデバッグが必要だった
幅広く適用できる特定のコードベースに限定されない
複雑な解決策忘れやすい複数ステップの修正である
ユーザーからの要望「これをスキルとして保存して」「再利用したい」

ワークフロー

ステップ 1:パターンを特定する

ユーザーの説明を読みます。関連する項目がないか、自動メモリを検索します。

MEMORY_DIR="$HOME/.claude/projects/$(pwd | sed 's|/|%2F|g; s|%2F|/|; s|^/||')/memory"
grep -rni "<keywords>" "$MEMORY_DIR/"

自動メモリに見つかった場合は、それらの項目を素材として使用します。見つからない場合は、ユーザーの説明をそのまま使用します。

ステップ 2:スキルの範囲を決める

質問は最大 2 つまでにします。

  • 「これはどのような問題を解決しますか?」(明確でない場合)
  • 「コード例を含めますか?」(該当する場合)
ステップ 3:スキル名を決める

命名規則:

  • 小文字を使い、単語間はハイフンでつなぐ
  • 内容が分かりやすく、簡潔な名前にする(2~4 語)
  • 例:docker-m1-fixes、api-timeout-patterns、pnpm-workspace-setup

予約語の断片 — スキル名に含めてはいけません。

  • claude
  • anthropic

Claude Code 自体に関するスキルには、代わりに cc- プレフィックスを使用します。

  • ❌ claude-code-settings → ✅ cc-settings
  • ❌ claude-code-maintenance → ✅ cc-maintenance
  • ❌ claude-mcp-tools → ✅ cc-mcp-tools
  • ❌ claude-plugin-development → ✅ cc-plugin-development

スキルのディレクトリを作成する前に、候補の名前がこの一覧に含まれていないか確認してください。 予約語の断片が含まれている場合は、その断片を削除するか、claude*/anthropic* プレフィックスを cc- に置き換えて修正し、ユーザーに確認します。

ステップ 4:スキルファイルを作成する

実際のファイル生成は、skill-extractor エージェントに実行させます。

エージェントが作成するもの:

<skill-name>/
├── SKILL.md            # Main skill file with frontmatter
├── README.md           # Human-readable overview
└── reference/          # (optional) Supporting documentation
    └── examples.md     # Concrete examples and edge cases
ステップ 5:SKILL.md の構成

生成される SKILL.md は、次の形式に従う必要があります。

---
name: "skill-name"
description: "<one-line description>. Use when: <trigger conditions>."
---

# <Skill Title>

> One-line summary of what this skill solves.

## Quick Reference

| Problem | Solution |
|---------|----------|
| {{problem 1}} | {{solution 1}} |
| {{problem 2}} | {{solution 2}} |

## The Problem

{{2-3 sentences explaining what goes wrong and why it's non-obvious.}}

## Solutions

### Option 1: {{Name}} (Recommended)

{{Step-by-step with code examples.}}

### Option 2: {{Alternative}}

{{For when Option 1 doesn't apply.}}

## Trade-offs

| Approach | Pros | Cons |
|----------|------|------|
| Option 1 | {{pros}} | {{cons}} |
| Option 2 | {{pros}} | {{cons}} |

## Edge Cases

- {{edge case 1 and how to handle it}}
- {{edge case 2 and how to handle it}}
ステップ 6:品質チェック

最終確定する前に、次の点を確認します。

  • SKILL.md に name と description を含む有効な YAML フロントマターがある
  • name がフォルダー名と一致している(小文字、ハイフン区切り)
  • name に予約語の断片 claude または anthropic が含まれていない(Claude Code のスキルには cc- プレフィックスを使用)
  • 説明にトリガー条件「Use when:」が含まれている
  • 解決策が自己完結している(外部のコンテキストが不要)
  • コード例が完全で、そのままコピーして実行できる
  • プロジェクト固有の値(パス、URL、認証情報)がハードコードされていない
  • 不要な依存関係がない
ステップ 7:報告する
✅ Skill extracted: {{skill-name}}

Files created:
  {{path}}/SKILL.md          ({{lines}} lines)
  {{path}}/README.md         ({{lines}} lines)
  {{path}}/reference/examples.md  ({{lines}} lines)

Install: /plugin install (copy to your skills directory)
Publish: clawhub publish {{path}}

Source: MEMORY.md entries at lines {{n, m, ...}} (retained — the skill is portable, the memory is project-specific)

例

デバッグパターンを抽出する
/si:extract "Fix for Docker builds failing on Apple Silicon with platform mismatch"

docker-m1-fixes/SKILL.md を作成します。内容は次のとおりです。

  • プラットフォーム不一致のエラーメッセージ
  • 3 つの解決策(ビルドフラグ、Dockerfile、docker-compose)
  • トレードオフの表
  • Rosetta 2 エミュレーションに関するパフォーマンス上の注意点
ワークフローパターンを抽出する
/si:extract "Always regenerate TypeScript API client after modifying OpenAPI spec"

api-client-regen/SKILL.md を作成します。内容は次のとおりです。

  • 手動で再生成する必要がある理由
  • 正確なコマンドの実行順序
  • CI 統合のスニペット
  • よくある失敗のパターン

ヒント

  • 別のプロジェクトで時間を節約できるパターンを抽出します
  • スキルの対象を絞り、1 つのスキルにつき問題を 1 つにします
  • 検索時に使われそうなエラーメッセージを含めます
  • 元のコンテキストなしで読んで意味が通じるか、スキルを確認します

コメント