actionbook/rust-skills

rust-learner

Use when asking about Rust versions or crate info.

Quelltext ansehen

Verwendung

  1. Installationsbefehl kopieren und das Quellpaket vor der Installation in der eigenen Agentenumgebung prüfen.
  2. Benötigte Werkzeuge, Zugangsdaten und Hosts im Original prüfen.
  3. Eingabe und gewünschtes Ergebnis beschreiben und die Ausgabe mit den Quellen abgleichen.
npx skills add https://github.com/actionbook/rust-skills --skill rust-learner

Vor dem Start

  • Die Installation umfasst weder Modellabo noch API-Kontingent oder Dateizugriffsrechte.
  • Sterne und Installationen zeigen Aktivität, keine unabhängige Qualitäts- oder Sicherheitsprüfung.
Originales Skill-Dokument

Aus dem Quell-Repository gerendert; Überschriften, Beispiele, Code, Tabellen, Links und Bilder bleiben erhalten.

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 TypeAgent 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

  1. Read the appropriate agent file (relative to this skill)
  2. Launch Task with run_in_background: true
  3. Continue with other work or wait for completion
  4. Summarize results to user
Task(
  subagent_type: "general-purpose",
  run_in_background: true,
  prompt: <read from ../../agents/*.md file>
)

Agent Routing Table

Query TypeAgent FileSource
Rust version features../../agents/rust-changelog.mdreleases.rs
Crate info/version../../agents/crate-researcher.mdlib.rs, crates.io
Std library docs (Send, Sync, Arc, etc.)../../agents/std-docs-researcher.mddoc.rust-lang.org
Third-party crate docs (tokio, serde, etc.)../../agents/docs-researcher.mddocs.rs
Clippy lints../../agents/clippy-researcher.mdrust-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:

markdown
## {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:

markdown
## 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:

ItemPath
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

Output Format:

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

**Signature:**

{signature}


**Description:**
{description}

**Examples:**

{example_code}

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

1. Construct URL: "https://docs.rs/{crate}/latest/{crate}/{path}"
2. agent-browser CLI (or WebFetch fallback):
   - open <url>
   - get text ".docblock"
   - close
3. Parse and format output

Output Format:

markdown
## {crate}::{path}

**Signature:**

{signature}


**Description:**
{description}

**Examples:**

{example_code}

Clippy Lints

1. agent-browser CLI (or WebFetch fallback):
   - open "https://rust-lang.github.io/rust-clippy/stable/"
   - search for lint name in page
   - get text ".lint-doc" for matching lint
   - close
2. Parse and format output

Output Format:

markdown
## 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
  1. WebFetch - Last resort only if agent-browser unavailable

Fallback Principle (CRITICAL)

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

DO NOT:

  • Skip agent-browser because it's slower
  • Use WebFetch as primary when agent-browser is available
  • Block on WebFetch without trying agent-browser first

Deprecated Patterns

DeprecatedUse InsteadReason
WebSearch for crate infoTask + agent or inline modeStructured data
Direct WebFetchactionbook + agent-browserPre-computed selectors
Guessing version numbersAlways fetch from sourcePrevents misinformation

Error Handling

ErrorCauseSolution
Agent file not foundSkills-only installUse inline mode
actionbook unavailableMCP not configuredFall back to WebFetch
agent-browser not foundCLI not installedFall back to WebFetch
Agent timeoutSite slow/downRetry or inform user
Empty resultsSelector mismatchReport and use WebFetch fallback

Proactive Triggering

This skill triggers AUTOMATICALLY when:

  • Any Rust crate name mentioned (tokio, serde, axum, sqlx, etc.)
  • Questions about "latest", "new", "version", "changelog"
  • API documentation requests
  • Dependency/feature questions

DO NOT use WebSearch for Rust crate info. Use agents or inline mode instead.

Verwandte Aufgaben

aus demselben Repository

Weitere Skills

Alle Skills
actionbook
Community

coding-guidelines

Use when asking about Rust code style or best practices. Keywords: naming, formatting, comment, clippy, rustfmt, lint, code style, best practice, P.NAM, G.FMT, code review, naming convention, variable naming, function naming, type naming, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名

Installationen
2
GitHub Stars
1538
Aktualisiert
23. Aug.
actionbook
Community

m03-mutability

CRITICAL: Use for mutability issues. Triggers: E0596, E0499, E0502, cannot borrow as mutable, already borrowed as immutable, mut, &mut, interior mutability, Cell, RefCell, Mutex, RwLock, 可变性, 内部可变性, 借用冲突

Installationen
2
GitHub Stars
1538
Aktualisiert
23. Aug.
actionbook
Community

m04-zero-cost

CRITICAL: Use for generics, traits, zero-cost abstraction. Triggers: E0277, E0308, E0599, generic, trait, impl, dyn, where, monomorphization, static dispatch, dynamic dispatch, impl Trait, trait bound not satisfied, 泛型, 特征, 零成本抽象, 单态化

Installationen
2
GitHub Stars
1538
Aktualisiert
23. Aug.
actionbook
Community

m06-error-handling

CRITICAL: Use for error handling. Triggers: Result, Option, Error, ?, unwrap, expect, panic, anyhow, thiserror, when to panic vs return Result, custom error, error propagation, 错误处理, Result 用法, 什么时候用 panic

Installationen
2
GitHub Stars
1538
Aktualisiert
23. Aug.