概要
インストール
ツールリスト
コンテンツ詳細
代替品
Skill Retrieverとは?
Skill Retrieverは、Claude Codeのスマートなコンポーネント検索システムです。コミュニティコンポーネントの断片化問題を解決します。現在、56のGitHubリポジトリに2,500以上のコンポーネントが分散しています。特定のタスクを完了する必要がある場合、Skill Retrieverは最も関連性の高いコンポーネントセットをスマートに見つけ、依存関係を自動的に処理し、Claude Code環境に安全にインストールします。Skill Retrieverの使い方は?
Skill RetrieverはMCPサーバーとしてClaude Codeに統合されています。Claude Codeで必要なことを説明するだけで(例:「Gitコミットの自動化を設定したい」)、システムが関連するコンポーネントを検索し、依存関係と競合をチェックして、ワンクリックでインストールします。すべてのプロセスはClaude Codeのインターフェース内で完了し、手動での検索と設定は必要ありません。適用シーン
Skill Retrieverは以下のシーンに特に適しています: 1. Claude Codeの機能を拡張したいが、利用可能なコンポーネントがわからない場合 2. 複雑なタスクを完了する必要があり、複数のコンポーネントの協調動作が必要な場合 3. コンポーネントの互換性とセキュリティの問題が心配な場合 4. コンポーネントライブラリを自動的に最新の状態に保ちたい場合 5. コンポーネント内の潜在的なリスクを安全にスキャンする必要がある場合主要機能
使い方
使用例
よくある質問
関連リソース
インストール
{
"mcpServers": {
"skill-retriever": {
"command": "uv",
"args": ["run", "--directory", "/path/to/skill-retriever", "skill-retriever"]
}
}
}
{
"mcpServers": {
"skill-retriever": {
"command": "uv",
"args": ["run", "--directory", "/path/to/skill-retriever", "skill-retriever"]
}
}
}🚀 Skill Retriever
Claude Codeのコンポーネント検索用のグラフベースのMCPサーバーです。タスクの説明を受け取り、すべての依存関係を解決した上で、最小限の正しいコンポーネントセット(エージェント、スキル、コマンド、フック、MCP)を返します。
🚀 クイックスタート
Claude CodeのMCPサーバーとしてSkill Retrieverを利用するには、以下の手順を実行します。
- Claude CodeのMCP設定に追加 (
~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"skill-retriever": {
"command": "uv",
"args": ["run", "--directory", "/path/to/skill-retriever", "skill-retriever"]
}
}
}
- Claude Codeを再起動 して、MCPサーバーを読み込みます。
✨ 主な機能
- コンポーネントの自動発見と同期:GitHubのリポジトリから高品質なスキルリポジトリを自動的に発見し、1時間ごとに更新をポーリングします。
- コンポーネントの検索とインストール:タスクの説明に基づいて、必要なコンポーネントを検索し、
.claude/ディレクトリにインストールします。 - 依存関係の解決:コンポーネント間の依存関係を理解し、必要なすべてのコンポーネントを自動的にインストールします。
- セキュリティスキャン:コンポーネントのインジェスト時とオンデマンドで、セキュリティ脆弱性をスキャンします。
- フィードバックループ:実行結果をグラフにフィードバックし、将来の推薦を改善します。
📦 インストール
# インストール
uv sync
💻 使用例
基本的な使用法
# タスクの説明に基づいてコンポーネントを検索する例
from claude_api import Client
claude = Client("YOUR_API_KEY")
response = claude.search_components(query="git commit automation with conventional commits")
print(response)
高度な使用法
# コンポーネントをインストールする例
from claude_api import Client
claude = Client("YOUR_API_KEY")
response = claude.install_components(component_ids=["davila7/commit-command", "davila7/git-utils"])
print(response)
📚 詳細ドキュメント
現在のインデックス
56のリポジトリから2,561個のコンポーネントが自動的に発見され、1時間ごとに同期されています。
| タイプ | 数 | 説明 |
|---|---|---|
| スキル | 1,952 | ドメインの専門知識と手続き的な知識をパッケージ化したポータブルな命令セット |
| エージェント | 492 | 孤立したコンテキストと細かいパーミッションを持つ特殊なAIペルソナ |
| コマンド | 40 | スラッシュコマンド (/commit, /review, など) |
| フック | 37 | イベントハンドラー (SessionStart, PreCompact, など) |
| MCP | 37 | 外部統合用のモデルコンテキストプロトコルサーバー |
| 設定 | 3 | 構成プリセット |
トップリポジトリ
| リポジトリ | コンポーネント | 説明 |
|---|---|---|
| sickn33/antigravity-awesome-skills | 722 | 複数のドメインにわたる大規模なスキルコレクション |
| VoltAgent/awesome-agent-skills | 232 | Codex、Gemini CLIと互換性のある200以上のスキル |
| wshobson/agents | 226 | 129のスキルを持つマルチエージェントオーケストレーション |
| davepoon/buildwithclaude | 158 | フルスタック開発スキル |
| hesreallyhim/awesome-claude-code | 155 | 包括的なClaude Codeスキルコレクション |
| K-Dense-AI/claude-scientific-skills | 123 | 科学計算と研究スキル |
| zhayujie/chatgpt-on-wechat | 113 | マルチプラットフォームエージェントスキルを持つWeChatボット |
| ComposioHQ/awesome-claude-skills | 85 | Rube MCP統合(Gmail、Slack、カレンダー)を持つ自動化スキル |
| Orchestra-Research/AI-Research-SKILLs | 80 | AI研究スキル(微調整、解釈可能性、分散トレーニング、MLOps) |
| assafelovic/gpt-researcher | 78 | 深い研究エージェントスキル |
| BehiSecc/awesome-claude-skills | 61 | ドキュメント処理、セキュリティ、科学スキル |
| jeffallan/claude-skills | 56 | コミュニティClaudeスキルコレクション |
| trailofbits/skills | 46 | Trail of Bitsのセキュリティに焦点を当てたスキル |
| remotion-dev/skills | 35 | Remotionビデオレンダリングスキル |
| anthropics/skills | 17 | 公式のAnthropicスキル(Excel、PowerPoint、PDF、スキルクリエーター) |
解決する問題
Claude Codeは、.claude/ディレクトリに保存されたカスタムコンポーネントをサポートしています。Skill Retrieverは、GitHubのリポジトリに散在する1,000以上のコミュニティコンポーネントから、タスクに適したコンポーネントを見つけ、その依存関係を理解し、互換性を確保するという問題を解決します。
アーキテクチャ
┌─────────────────────────────────────────────────────────────────┐
│ Claude Code │
│ │
│ "I need to add git commit automation" │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ MCP Client (built into Claude Code) │ │
│ │ │ │
│ │ tools/call: search_components │ │
│ │ tools/call: install_components │ │
│ │ tools/call: check_dependencies │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
│ stdio (JSON-RPC)
▼
┌─────────────────────────────────────────────────────────────────┐
│ Skill Retriever MCP Server │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ Vector │ │ Graph │ │ Metadata │ │
│ │ Store │ │ Store │ │ Store │ │
│ │ (FAISS) │ │(FalkorDB/NX)│ │ (JSON) │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
│ │ │ │ │
│ └────────────────┼────────────────────┘ │
│ ▼ │
│ ┌───────────────────────┐ │
│ │ Retrieval Pipeline │ │
│ │ │ │
│ │ 1. Vector Search │ │
│ │ 2. Graph PPR │ │
│ │ 3. Score Fusion │ │
│ │ 4. Dep Resolution │ │
│ │ 5. Conflict Check │ │
│ │ 6. Context Assembly │ │
│ └───────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
動作原理
1. インジェスト(リポジトリのインデックス作成)
コンポーネントリポジトリをインジェストするときの流れは以下の通りです。
Repository (GitHub)
│
▼
┌──────────────────┐
│ Clone to temp │
└──────────────────┘
│
▼
┌──────────────────┐ Strategies (first match wins):
│ Crawler │ 1. Davila7Strategy: cli-tool/components/{type}/
│ (Strategy-based)│ 2. PluginMarketplaceStrategy: plugins/{name}/skills/
└──────────────────┘ 3. FlatDirectoryStrategy: .claude/{type}/
│ 4. GenericMarkdownStrategy: Any *.md with name frontmatter
│ 5. AwesomeListStrategy: README.md curated lists
│ 6. PythonModuleStrategy: *.py with docstrings
▼
┌──────────────────┐
│ Entity Resolver │ Deduplicates similar components using:
│ (Fuzzy + Embed) │ - RapidFuzz token_sort_ratio (Phase 1)
└──────────────────┘ - Embedding cosine similarity (Phase 2)
│
▼
┌──────────────────┐
│ Index into: │
│ - Graph nodes │ Component → Node with type, label
│ - Graph edges │ Dependencies → DEPENDS_ON edges
│ - Vector store │ Embeddings for semantic search
│ - Metadata │ Full content for installation
└──────────────────┘
2. 検索(コンポーネントの検索)
コンポーネントを検索するときの流れは以下の通りです。
Query: "git commit automation with conventional commits"
│
▼
┌───────────────────────────────────────────────────────────────┐
│ Query Planning │
│ │
│ - Extract entities (keywords, component names) │
│ - Determine complexity (simple/medium/complex) │
│ - Decide: use PPR? use flow pruning? │
│ - Detect abstraction level (agent vs command vs hook) │
└───────────────────────────────────────────────────────────────┘
│
┌───────────┴───────────┐
▼ ▼
┌───────────────┐ ┌───────────────────────┐
│ Vector Search │ │ Graph PPR (PageRank) │
│ │ │ │
│ Semantic │ │ Follows dependency │
│ similarity │ │ edges to find │
│ via FAISS │ │ related components │
└───────────────┘ └───────────────────────┘
│ │
└───────────┬───────────┘
▼
┌───────────────────────────────────────────────────────────────┐
│ Score Fusion │
│ │
│ Combined score = α × vector_score + (1-α) × graph_score │
│ Filtered by component type if specified │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ Transitive Dependency Resolution │
│ │
│ If "commit-command" depends on "git-utils" which depends │
│ on "shell-helpers" → all three are included │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ Conflict Detection │
│ │
│ Check CONFLICTS_WITH edges between selected components │
│ Warn if incompatible components would be installed │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ Context Assembly │
│ │
│ - Sort by type priority (agents > skills > commands) │
│ - Estimate token cost per component │
│ - Stay within token budget │
│ - Generate rationale for each recommendation │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ Results │
│ │
│ [ │
│ { id: "davila7/commit-command", score: 0.92, │
│ rationale: "High semantic match + 3 dependents" }, │
│ { id: "davila7/git-utils", score: 0.85, │
│ rationale: "Required dependency of commit-command" } │
│ ] │
└───────────────────────────────────────────────────────────────┘
3. インストール
コンポーネントをインストールするときの流れは以下の通りです。
install_components(["davila7/commit-command"])
│
▼
┌───────────────────────────────────────────────────────────────┐
│ Resolve Dependencies │
│ │
│ commit-command → [git-utils, shell-helpers] │
│ Total: 3 components to install │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ Write to .claude/ │
│ │
│ .claude/ │
│ ├── commands/ │
│ │ └── commit.md ← commit-command │
│ └── skills/ │
│ ├── git-utils.md ← dependency │
│ └── shell-helpers.md ← transitive dependency │
└───────────────────────────────────────────────────────────────┘
4. 発見パイプライン(OSS-01, HEAL-01)
GitHubから高品質なスキルリポジトリを自動的に発見し、インジェストします。
┌─────────────────────────────────────────────────────────────────┐
│ Discovery Pipeline │
│ │
│ ┌──────────────────┐ │
│ │ OSS Scout │ Searches GitHub for skill repos: │
│ │ │ - 8 search queries (claude, skills, etc) │
│ │ discover() │ - MIN_STARS: 5 │
│ │ ─────────────▶ │ - Recent activity: 180 days │
│ └────────┬─────────┘ - Quality scoring (stars, topics, etc) │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Filter & Score │ Score = stars (40) + recency (20) │
│ │ │ + topics (20) + description (10) │
│ │ min_score: 30 │ + forks (10) │
│ └────────┬─────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Ingest New │ Clone → Crawl → Dedupe → Index │
│ │ (max 10/run) │ Uses same pipeline as ingest_repo │
│ └────────┬─────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Auto-Healer │ Tracks failures: │
│ │ │ - CLONE_FAILED, NO_COMPONENTS │
│ │ MAX_RETRIES: 3 │ - NETWORK_ERROR, RATE_LIMITED │
│ └──────────────────┘ Automatically retries healable failures │
└─────────────────────────────────────────────────────────────────┘
5. 自動同期(SYNC-01, SYNC-02)
リポジトリは1時間ごとに自動的に更新をポーリングされます。ポーラーは最初のツール呼び出しで起動し、手動でのアクティベーションは必要ありません。
┌─────────────────────────────────────────────────────────────────┐
│ Sync Manager │
│ │
│ ┌──────────────────┐ ┌──────────────────────────────┐ │
│ │ Webhook Server │ │ Repo Poller │ │
│ │ (port 9847) │ │ (hourly by default) │ │
│ │ │ │ │ │
│ │ POST /webhook │ │ GET /repos/{owner}/{repo} │ │
│ │ ← GitHub push │ │ → GitHub API │ │
│ └────────┬─────────┘ └──────────────┬───────────────┘ │
│ │ │ │
│ └─────────────┬─────────────────────┘ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Change Detected? │ │
│ │ (new commit SHA) │ │
│ └──────────┬──────────┘ │
│ │ yes │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Re-ingest Repo │ │
│ │ (incremental) │ │
│ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
6. フィードバックループ(LRNG-04, LRNG-05, LRNG-06)
実行結果をグラフにフィードバックし、将来の推薦を改善します。
┌─────────────────────────────────────────────────────────────────┐
│ Feedback Loop │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Outcome Tracking (LRNG-05) │ │
│ │ │ │
│ │ install_components() │ │
│ │ │ │ │
│ │ ├── success → INSTALL_SUCCESS + bump usage │ │
│ │ └── failure → INSTALL_FAILURE + track context │ │
│ │ │ │
│ │ report_outcome() │ │
│ │ ├── USED_IN_SESSION → usage count++ │ │
│ │ ├── REMOVED_BY_USER → negative feedback │ │
│ │ └── DEPRECATED → deprecation flag │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Usage-Based Boosting (LRNG-04) │ │
│ │ │ │
│ │ Selection Rate Boost: │ │
│ │ high_selection_rate → +50% score boost │ │
│ │ low_selection_rate → no boost │ │
│ │ │ │
│ │ Co-Selection Boost: │ │
│ │ frequently_selected_together → +10% each (max 30%) │ │
│ │ │ │
│ │ Final score = base_score × boost_factor │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Feedback Engine (LRNG-06) │ │
│ │ │ │
│ │ analyze_feedback() discovers patterns: │ │
│ │ │ │
│ │ Co-selections (≥3) → suggest BUNDLES_WITH edge │ │
│ │ Co-failures (≥2) → suggest CONFLICTS_WITH edge │ │
│ │ │ │
│ │ Human reviews suggestions via review_suggestion() │ │
│ │ Accepted suggestions → apply_feedback_suggestions() │ │
│ │ New edges added to graph with confidence scores │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
7. セキュリティスキャン(SEC-01)
コンポーネントのインジェスト時とオンデマンドで、セキュリティ脆弱性をスキャンします。
┌─────────────────────────────────────────────────────────────────┐
│ Security Scanner │
│ │
│ Based on Yi Liu et al. "Agent Skills in the Wild" research: │
│ - 26.1% of skills contain vulnerable patterns │
│ - 5.2% show malicious intent indicators │
│ - Skills with scripts are 2.12x more likely to be vulnerable │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Vulnerability Detection │ │
│ │ │ │
│ │ Data Exfiltration (13.3%) │ │
│ │ - HTTP POST with data payload │ │
│ │ - File read + external request │ │
│ │ - Webhook endpoints │ │
│ │ │ │
│ │ Credential Access │ │
│ │ - Environment variable harvesting │ │
│ │ - SSH key / AWS credential access │ │
│ │ - Sensitive env vars (API_KEY, SECRET, TOKEN) │ │
│ │ │ │
│ │ Privilege Escalation (11.8%) │ │
│ │ - Shell injection via variable interpolation │ │
│ │ - Dynamic code execution (eval/exec) │ │
│ │ - sudo execution, chmod 777 │ │
│ │ - Download and execute patterns │ │
│ │ │ │
│ │ Obfuscation (malicious intent) │ │
│ │ - Hex-encoded strings │ │
│ │ - Unicode escapes │ │
│ │ - String concatenation obfuscation │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Risk Assessment │ │
│ │ │ │
│ │ Risk Levels: safe → low → medium → high → critical │ │
│ │ │ │
│ │ Risk Score (0-100): │ │
│ │ Base = sum of finding weights │ │
│ │ Script multiplier = 1.5x if has_scripts │ │
│ │ │ │
│ │ Each component stores: │ │
│ │ - security_risk_level │ │
│ │ - security_risk_score │ │
│ │ - security_findings_count │ │
│ │ - has_scripts │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Integration Points │ │
│ │ │ │
│ │ Ingestion: scan during ingest_repo() │ │
│ │ Retrieval: include SecurityStatus in search results │ │
│ │ On-demand: security_scan() and security_audit() tools │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
8. LLMによるセキュリティ分析(SEC-02)
正規表現によるスキャンに加えて、Claudeを使用して誤検知を減らすオプションのレイヤーです。
┌─────────────────────────────────────────────────────────────────┐
│ LLM Security Analyzer (SEC-02) │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ When to Use │ │
│ │ │ │
│ │ - Component flagged HIGH/CRITICAL by regex scanner │ │
│ │ - Suspected false positives (shell commands in docs) │ │
│ │ - Need confidence before installing critical component │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Analysis Process │ │
│ │ │ │
│ │ 1. Run regex scan (SEC-01) to get findings │ │
│ │ 2. Send findings + component content to Claude │ │
│ │ 3. Claude analyzes each finding: │ │
│ │ - Is it in documentation vs executable code? │ │
│ │ - Is it legitimate functionality (JWT accessing env)?│ │
│ │ - Context: webhook in notification skill = expected │ │
│ │ 4. Returns verdict per finding: │ │
│ │ - TRUE_POSITIVE: Real security concern │ │
│ │ - FALSE_POSITIVE: Safe, incorrectly flagged │ │
│ │ - CONTEXT_DEPENDENT: Depends on usage │ │
│ │ - NEEDS_REVIEW: Cannot determine, human review │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Adjusted Risk Score │ │
│ │ │ │
│ │ Original score = 75 (CRITICAL, 5 findings) │ │
│ │ │ │
│ │ LLM analysis: │ │
│ │ - 3 × FALSE_POSITIVE (bash in markdown) │ │
│ │ - 1 × TRUE_POSITIVE (env var harvesting) │ │
│ │ - 1 × CONTEXT_DEPENDENT │ │
│ │ │ │
│ │ Adjusted score = 75 × (1 + 0.5) / 5 = 22.5 (MEDIUM) │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Claude Codeとの統合
セットアップ
- Claude CodeのMCP設定に追加 (
~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"skill-retriever": {
"command": "uv",
"args": ["run", "--directory", "/path/to/skill-retriever", "skill-retriever"]
}
}
}
- Claude Codeを再起動 して、MCPサーバーを読み込みます。
利用可能なツール
設定後、Claude Codeは以下のツールを使用できます。
| ツール | 目的 |
|---|---|
| 検索とインストール | |
search_components |
タスクの説明に適したコンポーネントを検索 |
get_component_detail |
特定のコンポーネントの詳細情報を取得 |
install_components |
コンポーネントを.claude/ディレクトリにインストール(結果を自動記録) |
check_dependencies |
インストール前に依存関係と競合を確認 |
| インジェスト | |
ingest_repo |
新しいコンポーネントリポジトリをインデックス化 |
| 同期管理 | |
register_repo |
自動同期のためにリポジトリを追跡 |
unregister_repo |
リポジトリの追跡を停止 |
list_tracked_repos |
追跡中のすべてのリポジトリをリスト表示 |
sync_status |
同期システムの状態を取得 |
start_sync_server |
ウェブフックとポーラーを起動 |
stop_sync_server |
同期サービスを停止 |
poll_repos_now |
即時ポーリングをトリガー |
| 発見パイプライン | |
run_discovery_pipeline |
GitHubから新しいスキルリポジトリを発見してインジェスト |
discover_repos |
GitHubでスキルリポジトリを検索 |
get_pipeline_status |
発見パイプラインの設定を取得 |
get_heal_status |
自動修復の失敗と状態を表示 |
clear_heal_failures |
追跡された失敗をクリア |
| 結果追跡 | |
report_outcome |
使用結果(使用、削除、非推奨)を記録 |
get_outcome_stats |
コンポーネントの成功/失敗統計を取得 |
get_outcome_report |
問題のあるコンポーネントと競合を表示 |
| フィードバックエンジン | |
analyze_feedback |
パターンを分析してグラフの改善を提案 |
get_feedback_suggestions |
保留中のエッジ提案を表示 |
review_suggestion |
提案されたエッジを承認または拒否 |
apply_feedback_suggestions |
承認された提案をグラフに適用 |
| セキュリティスキャン | |
security_scan |
特定のコンポーネントの脆弱性をスキャン(正規表現) |
security_scan_llm |
LLMによる誤検知削減を伴うスキャン(APIキーが必要) |
security_audit |
すべてのコンポーネントを監査し、リスクレベル別に報告 |
backfill_security_scans |
未スキャンの既存コンポーネントをスキャン |
会話例
User: I need to set up git commit automation with conventional commits
Claude: Let me search for relevant components.
[Calls search_components with query="git commit automation conventional commits"]
I found 3 components that would help:
1. **commit-command** (command) - Automated git commits with conventional format
- Score: 0.92
- Health: active (updated 2 days ago)
- Token cost: 450
2. **git-utils** (skill) - Git helper functions
- Score: 0.85
- Required by: commit-command
3. **conventional-commits-hook** (hook) - Pre-commit validation
- Score: 0.78
- Health: active
Would you like me to install these?
User: Yes, install them
Claude: [Calls install_components with ids=["davila7/commit-command", "davila7/conventional-commits-hook"]]
Installed 4 components to .claude/:
- commands/commit.md
- skills/git-utils.md
- skills/shell-helpers.md (dependency)
- hooks/conventional-commits.md
You can now use `/commit` to create conventional commits!
セキュリティ統合のワークフロー
┌─────────────────────────────────────────────────────────────────┐
│ Claude Code + Skill Retriever Workflow │
│ │
│ 1. USER: "I need JWT authentication" │
│ │ │
│ ▼ │
│ 2. CLAUDE: search_components("JWT authentication") │
│ │ │
│ ▼ │
│ 3. SKILL RETRIEVER returns: │
│ ┌────────────────────────────────────────────────────┐ │
│ │ auth-jwt-skill │ │
│ │ Score: 0.89 │ │
│ │ Health: active (2 days ago) │ │
│ │ Security: ⚠️ MEDIUM (env_sensitive_keys) │ │
│ │ Tokens: 320 │ │
│ │ │ │
│ │ crypto-utils │ │
│ │ Score: 0.72 │ │
│ │ Health: active │ │
│ │ Security: ✅ SAFE │ │
│ │ Tokens: 180 │ │
│ └────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 4. CLAUDE: "auth-jwt-skill has MEDIUM security risk │
│ (accesses JWT_SECRET from env). Proceed?" │
│ │ │
│ ▼ │
│ 5. USER: "Yes, that's expected for JWT" │
│ │ │
│ ▼ │
│ 6. CLAUDE: install_components(["auth-jwt-skill"]) │
│ │ │
│ ▼ │
│ 7. SKILL RETRIEVER: │
│ - Resolves dependencies (adds crypto-utils) │
│ - Writes to .claude/skills/ │
│ - Records INSTALL_SUCCESS outcome │
│ │ │
│ ▼ │
│ 8. CLAUDE: "Installed auth-jwt-skill + crypto-utils. │
│ Note: Requires JWT_SECRET env variable." │
└─────────────────────────────────────────────────────────────────┘
セキュリティ対応の検索
search_componentsが結果を返すとき、各コンポーネントには以下の情報が含まれます。
{
"id": "owner/repo/skill/auth-jwt",
"name": "auth-jwt",
"type": "skill",
"score": 0.89,
"rationale": "High semantic match + required dependency",
"token_cost": 320,
"health": {
"status": "active",
"last_updated": "2026-02-02T10:30:00Z",
"commit_frequency": "high"
},
"security": {
"risk_level": "medium",
"risk_score": 25.0,
"findings_count": 1,
"has_scripts": false
}
}
データフローの概要
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ GitHub │────▶│ Ingestion │────▶│ Graph Store │
│ Repos │ │ Pipeline │ │ (FalkorDB/NX) │
└─────────────┘ └──────────────┘ └─────────────────┘
│
▼
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Claude │◀───▶│ MCP │◀───▶│ Retrieval │
│ Code │ │ Server │ │ Pipeline │
└─────────────┘ └──────────────┘ └─────────────────┘
│ │
▼ ▼
┌──────────────┐ ┌─────────────────┐
│ .claude/ │ │ Vector Store │
│ directory │ │ (FAISS) │
└──────────────┘ └─────────────────┘
パフォーマンス
| メトリック | 値 |
|---|---|
| MCPサーバーの起動時間 | ~1s (遅延読み込み、非ブロッキング) |
| 最初の検索(コールドスタート) | ~7s (埋め込みモデルは一度だけ読み込まれる) |
| その後の検索 | ~120ms (ベクトル + グラフ + スコア融合) |
| キャッシュされた検索 | <0.1ms (LRUキャッシュ) |
| 自動同期間隔 | 1時間 (56のリポジトリがGitHub APIを介してポーリングされる) |
主要な設計決定
- ハイブリッド検索(ベクトル + グラフ)— セマンティックな類似性だけでは依存関係を見逃す可能性があるため、グラフ検索も併用します。
- インクリメンタルなインジェスト — 変更されたファイルのみを再インデックス化し、リポジトリ全体を再インデックス化する必要はありません。
- エンティティ解決 — リポジトリ間で類似するコンポーネントを重複排除します。
- トークン予算 — Claudeのコンテキストウィンドウを圧迫しないように、トークンコストを考慮します。
- ヘルスシグナル — 古くなったり放棄されたコンポーネントを明示的に表示します。
- MCPプロトコル — Claude Codeとネイティブに統合されており、プラグインは必要ありません。
- セキュリティ第一のスキャン — 26%のスキルに脆弱性が含まれているため、インストール前にスキャンします。
要件のカバレッジ
v1(完了)
- インジェスト:任意のリポジトリ構造をクロールし、メタデータとGitシグナルを抽出します。
- 検索:セマンティック検索 + グラフトラバーサル + スコア融合
- 依存関係:推移的な解決 + 競合検出
- 統合:MCPサーバー + コンポーネントのインストール
v2(実装済み)
- SYNC-01:GitHubのプッシュイベント用のウェブフックサーバー
- SYNC-02:検出された変更に対する自動再インジェスト
- SYNC-03:インクリメンタルなインジェスト
- OSS-01:GitHubベースのリポジトリ発見(OSS Scout)
- HEAL-01:失敗したインジェストの自動修復とリトライロジック
- RETR-06:抽象化レベルの認識
- RETR-07:RapidFuzzによるファジーエンティティ抽出と同義語拡張
- LRNG-03:共起トラッキング
- LRNG-04:使用頻度に基づくスコアブースト(選択率 + 共選択)
- LRNG-05:結果追跡(インストール成功/失敗、使用、削除)
- LRNG-06:暗黙的なエッジ発見のためのフィードバックエンジン
- HLTH-01:コンポーネントのヘルスステータス
- SEC-01:セキュリティ脆弱性スキャン(Yi Liuらの研究に基づく)
- SEC-02:セキュリティスキャンのLLMによる誤検知削減
延期された機能
- RETR-05:LLMによるクエリ書き換え
- LRNG-01/02:使用パターンからの協調フィルタリング
- HLTH-02:非推奨警告
- SEC-02:セキュリティスキャンのLLMによる誤検知削減 ✅ 実装済み
- SEC-03:インストールされたコンポーネントのリアルタイム再スキャン
トラブルシューティング
インジェスト失敗
# 自動修復の状態を確認
get_heal_status()
| 失敗の種類 | 原因 | 解決策 |
|---|---|---|
CLONE_FAILED |
ネットワークタイムアウト、認証が必要 | URLを確認し、パブリックアクセスを検証 |
NO_COMPONENTS |
リポジトリにClaude Codeコンポーネントがない | スキル以外のリポジトリでは正常 |
RATE_LIMITED |
GitHub APIの制限を超えた | 1時間待ってから再試行 |
PARSE_ERROR |
不正なMarkdown/YAML | ソースリポジトリに問題を報告 |
失敗したインジェストを再試行するには:
clear_heal_failures()
ingest_repo(repo_url="https://github.com/owner/repo", incremental=False)
検索結果が空の場合
- インデックスが読み込まれていることを確認:
sync_status() # 追跡されているリポジトリが0より大きいことを確認 - コンポーネントが存在するか確認:
get_component_detail(component_id="owner/repo/skill/name") - より広い検索用語を試す:
- "auth" の代わりに "JWT RS256 authentication"
- 特定の技術の言及を削除
- タイプフィルターが制限的でないことを確認:
search_components(query="auth", component_type=None) # フィルターを削除
インストール失敗
# 常に依存関係を事前に確認
check_dependencies(component_ids=["id1", "id2"])
| エラー | 原因 | 解決策 |
|---|---|---|
| コンポーネントが見つからない | メタデータストアに存在しない | ソースリポジトリを ingest_repo() でインデックス化 |
| 競合が検出された | 互換性のないコンポーネント | 1つを選択するか、conflicts フィールドを確認して理解する |
| 書き込み権限が拒否された | ターゲットディレクトリに書き込み権限がない | .claude/ が存在し、書き込み可能であることを確認 |
セキュリティスキャンの誤検知
shell_injection パターンは多くの正当なbash例を誤検知します。
# これは誤検知されますが安全です(Markdown内のbashコード):
gh pr view $PR_NUMBER
# これは実際に危険です:
eval "$USER_INPUT"
誤検知を確認するには:
security_scan(component_id="owner/repo/skill/name")
# 各検出結果の一致テキストを確認
MCPサーバーが起動しない場合
- Pythonバージョンを確認:3.13以上が必要です。
- 依存関係を確認:
uv sync - ポートの競合を確認:ウェブフックサーバーはポート9847を使用します。
- Claude Codeの設定を確認:
{
"mcpServers": {
"skill-retriever": {
"command": "uv",
"args": ["run", "--directory", "/path/to/skill-retriever", "skill-retriever"]
}
}
}
データ破損の場合
インデックスが破損しているような場合は、以下の手順でデータをバックアップし、再インデックス化します。
# 既存のデータをバックアップ
cp -r ~/.skill-retriever/data ~/.skill-retriever/data.bak
# データをクリアして再インジェスト
rm ~/.skill-retriever/data/*.json
rm -rf ~/.skill-retriever/data/vectors/
# 発見パイプラインを再実行
run_discovery_pipeline(dry_run=False, max_new_repos=50)
開発
# インストール
uv sync
# MCPサーバーを実行
uv run skill-retriever
# テストを実行
uv run pytest
# 型チェック
uv run pyright
# リント
uv run ruff check
関連リソース
- DeepLearning.AI Agent Skills Course — スキル作成、Claude API、Claude Code、およびAgent SDKをカバーする公式コース
- anthropics/skills — 公式のAnthropicスキルリポジトリ
- Agent Skills Specification — オープンスタンダードのドキュメント
📄 ライセンス
MIT
代替品










