rust-learner について
Agent 向けの Rust 情報検索スキルです。crate のバージョン、API ドキュメント、リリース変更、Clippy lint を調べ、環境に応じて専用エージェントまたはインライン手順を使います。
主な機能
- 01crate バージョンの調査
- 02Rust リリース機能の確認
- 03標準ライブラリ文書の検索
- 04外部 crate 文書の検索
- 05Clippy lint の調査
活用シーン
- 01crate の最新バージョン確認
- 02Rust リリース変更の把握
- 03Rust API ドキュメントの検索
- 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/ にエージェントファイルがある場合:
ワークフロー
- 適切なエージェントファイルを読み取ります(このスキルからの相対パス)
run_in_background: trueを指定して Task を起動します- 他の作業を続けるか、完了を待ちます
- 結果をユーザーに要約して伝えます
Task(
subagent_type: "general-purpose",
run_in_background: true,
prompt: <read from ../../agents/*.md file>
)
エージェントのルーティング表
| 問い合わせの種類 | エージェントファイル | ソース |
|---|---|---|
| Rust バージョンの機能 | ../../agents/rust-changelog.md | releases.rs |
| クレート情報/バージョン | ../../agents/crate-researcher.md | lib.rs, crates.io |
| 標準ライブラリのドキュメント(Send、Sync、Arc など) | ../../agents/std-docs-researcher.md | doc.rust-lang.org |
| サードパーティ製クレートのドキュメント(tokio、serde など) | ../../agents/docs-researcher.md | docs.rs |
| Clippy lint | ../../agents/clippy-researcher.md | rust-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、Clone | std/marker/trait.{Name}.html |
| Arc、Mutex、RwLock | std/sync/struct.{Name}.html |
| Rc、Weak | std/rc/struct.{Name}.html |
| RefCell、Cell | std/cell/struct.{Name}.html |
| Box | std/boxed/struct.Box.html |
| Vec | std/vec/struct.Vec.html |
| String | std/string/struct.String.html |
出力形式:
## std::{path}::{Name}
**Signature:**
```rust
{signature}
説明: {description}
例:
{example_code}
### Third-Party Crate Docs (tokio, serde, etc.)
- URL を組み立てます:"https://docs.rs/{crate}/latest/{crate}/{path}"
- agent-browser CLI(または代替の WebFetch)を使用します。
- を開く
- ".docblock" のテキストを取得する
- 閉じる
- 出力を解析して整形します
**Output Format:**
```markdown
## {crate}::{path}
**Signature:**
```rust
{signature}
説明: {description}
例:
{example_code}
### Clippy Lints
- agent-browser CLI(または代替の WebFetch)を使用します。
- "https://rust-lang.github.io/rust-clippy/stable/" を開く
- ページ内で lint 名を検索する
- 該当する lint の ".lint-doc" のテキストを取得する
- 閉じる
- 出力を解析して整形します
**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
- 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 を使用しないでください。代わりにエージェントまたはインラインモードを使用してください。
コメント
Markdown 対応