mcpField
R
rust-learner

rust-learner

github.com/actionbook開発1.6k3.1k 回インストール9 週間前に更新
リポジトリ

rust-learner について

Agent 向けの Rust 情報検索スキルです。crate のバージョン、API ドキュメント、リリース変更、Clippy lint を調べ、環境に応じて専用エージェントまたはインライン手順を使います。

主な機能

  1. 01crate バージョンの調査
  2. 02Rust リリース機能の確認
  3. 03標準ライブラリ文書の検索
  4. 04外部 crate 文書の検索
  5. 05Clippy lint の調査

活用シーン

  1. 01crate の最新バージョン確認
  2. 02Rust リリース変更の把握
  3. 03Rust API ドキュメントの検索
  4. 04Clippy lint の確認

インストール

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

$npx skills add https://github.com/actionbook/rust-skills --skill rust-learner

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

詳細

Rust 学習者

Version: 2.1.0 | Last Updated: 2025-01-27

Rust およびクレートの情報取得に精通しています。以下の内容でユーザーを支援します。

  • バージョンの問い合わせ:最新の Rust/クレートのバージョンを取得します
  • API ドキュメント:docs.rs からドキュメントを取得します
  • 変更履歴:releases.rs から Rust バージョンの機能を取得します

Rust/クレート情報を取得するための主要スキルです。

実行モードの判定

重要:実行モードを判定するため、最初にエージェントファイルが利用可能か確認してください。

問い合わせの種類に対応するエージェントファイルを読み取ってください。実行モードは、ファイルが存在するかどうかによって決まります。

問い合わせの種類エージェントファイルのパス
クレート情報/バージョン../../agents/crate-researcher.md
Rust バージョンの機能../../agents/rust-changelog.md
標準ライブラリのドキュメント../../agents/std-docs-researcher.md
サードパーティ製クレートのドキュメント../../agents/docs-researcher.md
Clippy lint../../agents/clippy-researcher.md

エージェントモード(プラグインインストール)

../../agents/ にエージェントファイルがある場合:

ワークフロー
  1. 適切なエージェントファイルを読み取ります(このスキルからの相対パス)
  2. run_in_background: true を指定して Task を起動します
  3. 他の作業を続けるか、完了を待ちます
  4. 結果をユーザーに要約して伝えます
Task(
  subagent_type: "general-purpose",
  run_in_background: true,
  prompt: <read from ../../agents/*.md file>
)
エージェントのルーティング表
問い合わせの種類エージェントファイルソース
Rust バージョンの機能../../agents/rust-changelog.mdreleases.rs
クレート情報/バージョン../../agents/crate-researcher.mdlib.rs, crates.io
標準ライブラリのドキュメント(Send、Sync、Arc など)../../agents/std-docs-researcher.mddoc.rust-lang.org
サードパーティ製クレートのドキュメント(tokio、serde など)../../agents/docs-researcher.mddocs.rs
Clippy lint../../agents/clippy-researcher.mdrust-clippy docs
エージェントモードの例

クレートのバージョンに関する問い合わせ:

User: "tokio latest version"

Claude:
1. Read ../../agents/crate-researcher.md
2. Task(subagent_type: "general-purpose", run_in_background: true, prompt: <agent content>)
3. Wait for agent
4. Summarize results

Rust の変更履歴に関する問い合わせ:

User: "What's new in Rust 1.85?"

Claude:
1. Read ../../agents/rust-changelog.md
2. Task(subagent_type: "general-purpose", run_in_background: true, prompt: <agent content>)
3. Wait for agent
4. Summarize features

インラインモード(スキルのみのインストール)

エージェントファイルが利用できない場合は、以下の手順で直接実行してください。

クレート情報の問い合わせ
1. actionbook: mcp__actionbook__search_actions("lib.rs crate info")
2. Get action details: mcp__actionbook__get_action_by_id(<action_id>)
3. agent-browser CLI (or WebFetch fallback):
   - open "https://lib.rs/crates/{crate_name}"
   - get text using selector from actionbook
   - close
4. Parse and format output

出力形式:

## {Crate Name}

**Version:** {latest}
**Description:** {description}

**Features:**
- `feature1`: description

**Links:**
- [docs.rs](https://docs.rs/{crate}) | [crates.io](https://crates.io/crates/{crate}) | [repo]({repo_url})
Rust バージョンに関する問い合わせ
1. actionbook: mcp__actionbook__search_actions("releases.rs rust changelog")
2. Get action details for selectors
3. agent-browser CLI (or WebFetch fallback):
   - open "https://releases.rs/docs/1.{version}.0/"
   - get text using selector from actionbook
   - close
4. Parse and format output

出力形式:

## Rust 1.{version}

**Release Date:** {date}

### Language Features
- Feature 1: description
- Feature 2: description

### Library Changes
- std::module: new API

### Stabilized APIs
- `api_name`: description
標準ライブラリのドキュメント(std::*、Send、Sync、Arc など)
1. Construct URL: "https://doc.rust-lang.org/std/{path}/"
   - Traits: std/{module}/trait.{Name}.html
   - Structs: std/{module}/struct.{Name}.html
   - Modules: std/{module}/index.html
2. agent-browser CLI (or WebFetch fallback):
   - open <url>
   - get text "main .docblock"
   - close
3. Parse and format output

標準ライブラリの一般的なパス:

項目パス
Send、Sync、Copy、Clonestd/marker/trait.{Name}.html
Arc、Mutex、RwLockstd/sync/struct.{Name}.html
Rc、Weakstd/rc/struct.{Name}.html
RefCell、Cellstd/cell/struct.{Name}.html
Boxstd/boxed/struct.Box.html
Vecstd/vec/struct.Vec.html
Stringstd/string/struct.String.html

出力形式:

## std::{path}::{Name}

**Signature:**
```rust
{signature}

説明: {description}

例:

{example_code}

### Third-Party Crate Docs (tokio, serde, etc.)

  1. URL を組み立てます:"https://docs.rs/{crate}/latest/{crate}/{path}"
  2. agent-browser CLI(または代替の WebFetch)を使用します。
    • を開く
    • ".docblock" のテキストを取得する
    • 閉じる
  3. 出力を解析して整形します

**Output Format:**
```markdown
## {crate}::{path}

**Signature:**
```rust
{signature}

説明: {description}

例:

{example_code}

### Clippy Lints

  1. agent-browser CLI(または代替の WebFetch)を使用します。
  2. 出力を解析して整形します

**Output Format:**
```markdown
## Clippy Lint: {lint_name}

**Level:** {warn|deny|allow}
**Category:** {category}

**Description:**
{what_it_checks}

**Example (Bad):**
```rust
{bad_code}

例(良い例):

{good_code}

---

## Tool Chain Priority

Both modes use the same tool chain order:

1. **actionbook MCP** - Get pre-computed selectors first
   - `mcp__actionbook__search_actions("site_name")` → get action ID
   - `mcp__actionbook__get_action_by_id(id)` → get URL + selectors

2. **agent-browser CLI** - Primary execution tool
   ```bash
   agent-browser open <url>
   agent-browser get text <selector_from_actionbook>
   agent-browser close
  1. WebFetch - agent-browser が利用できない場合に限る最後の手段
フォールバックの原則(重要)
actionbook → agent-browser → WebFetch (only if agent-browser unavailable)

以下は禁止です:

  • agent-browser のほうが遅いという理由でスキップする
  • agent-browser が利用できる場合に WebFetch を主要な手段として使う
  • 最初に agent-browser を試さず、WebFetch の結果を待つ

非推奨のパターン

非推奨代わりに使うもの理由
クレート情報の取得に WebSearch を使うTask + エージェントまたはインラインモード構造化データ
WebFetch を直接使うactionbook + agent-browser事前計算済みセレクター
バージョン番号を推測する必ずソースから取得する誤情報を防ぐ

エラー処理

エラー原因解決策
エージェントファイルが見つからないスキルのみのインストールインラインモードを使用
actionbook が利用できないMCP が設定されていないWebFetch にフォールバック
agent-browser が見つからないCLI がインストールされていないWebFetch にフォールバック
エージェントがタイムアウトするサイトが遅い、またはダウンしている再試行するか、ユーザーに知らせる
結果が空セレクターが一致しない報告し、WebFetch へのフォールバックを使用

積極的なトリガー

次の場合、このスキルが自動的に起動します:

  • Rust のクレート名が言及された場合(tokio、serde、axum、sqlx など)
  • 「latest」、「new」、「version」、「changelog」に関する質問
  • API ドキュメントのリクエスト
  • 依存関係や機能に関する質問

Rust のクレート情報に WebSearch を使用しないでください。代わりにエージェントまたはインラインモードを使用してください。

コメント