rust-learner

Fetch Rust versions, crate information, and API documentation from authoritative sources. Supports queries about Rust release features, crate versions, and standard library documentation via dedicated agent routing Operates in two modes: agent-based (when agent files available) for background task execution, or inline mode using actionbook selectors and browser automation Covers crate info from lib.rs and crates.io, Rust changelogs from releases.rs, std library docs from doc.rust-lang.org, third-party crate docs from docs.rs, and Clippy lints Automatically triggers on crate name mentions, version queries, changelog requests, and API documentation lookups

INSTALLATION
npx skills add https://github.com/zhanghandong/rust-skills --skill rust-learner
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Rust Learner

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

You are an expert at fetching Rust and crate information. Help users by:

  • Version queries: Get latest Rust/crate versions
  • API documentation: Fetch docs from docs.rs
  • Changelog: Get Rust version features from releases.rs

Primary skill for fetching Rust/crate information.

Execution Mode Detection

CRITICAL: Check agent file availability first to determine execution mode.

Try to read the agent file for your query type. The execution mode depends on whether the file exists:

Query Type

Agent File Path

Crate info/version

../../agents/crate-researcher.md

Rust version features

../../agents/rust-changelog.md

Std library docs

../../agents/std-docs-researcher.md

Third-party crate docs

../../agents/docs-researcher.md

Clippy lints

../../agents/clippy-researcher.md

Agent Mode (Plugin Install)

**When agent files exist at ../../agents/:**

Workflow

  • Read the appropriate agent file (relative to this skill)
  • Launch Task with run_in_background: true
  • Continue with other work or wait for completion
  • Summarize results to user
Task(

  subagent_type: "general-purpose",

  run_in_background: true,

  prompt: <read from ../../agents/*.md file>

)

Agent Routing Table

Query Type

Agent File

Source

Rust version features

../../agents/rust-changelog.md

releases.rs

Crate info/version

../../agents/crate-researcher.md

lib.rs, crates.io

Std library docs (Send, Sync, Arc, etc.)

../../agents/std-docs-researcher.md

doc.rust-lang.org

Third-party crate docs (tokio, serde, etc.)

../../agents/docs-researcher.md

docs.rs

Clippy lints

../../agents/clippy-researcher.md

rust-clippy docs

Agent Mode Examples

Crate Version Query:

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 Changelog Query:

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

Inline Mode (Skills-only Install)

When agent files are NOT available, execute directly using these steps:

Crate Info Query

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

Output Format:

## {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 Version Query

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

Output Format:

## 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 Library Docs (std::*, Send, Sync, Arc, etc.)

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

Common Std Library Paths:

Item

Path

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

Output Format:

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

**Signature:**

{signature}


**Description:**
{description}

**Examples:**

{example_code}

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


- Construct URL: "[https://docs.rs/{crate}/latest/{crate}/{path}](https://docs.rs/%7Bcrate%7D/latest/%7Bcrate%7D/%7Bpath%7D)"

- agent-browser CLI (or WebFetch fallback):

- open

- get text ".docblock"

- close

- Parse and format output

Output Format:


## {crate}::{path}

**Signature:**

{signature}


**Description:**
{description}

**Examples:**

{example_code}

Clippy Lints


- agent-browser CLI (or WebFetch fallback):

- open "[https://rust-lang.github.io/rust-clippy/stable/](https://rust-lang.github.io/rust-clippy/stable/)"

- search for lint name in page

- get text ".lint-doc" for matching lint

- close

- Parse and format output

Output Format:


## Clippy Lint: {lint_name}

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

**Category:** {category}

**Description:**

{what_it_checks}

**Example (Bad):**

{bad_code}


**Example (Good):**

{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

  1. agent-browser CLI - Primary execution tool

bash

agent-browser open <url>

agent-browser get text <selector_from_actionbook>

agent-browser close


- **WebFetch** - Last resort only if agent-browser unavailable

### Fallback Principle (CRITICAL)

actionbook → agent-browser → WebFetch (only if agent-browser unavailable)

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card