coding-guidelines
Use when asking about Rust code style or best practices. Keywords: naming, formatting, comment, clippy, rustfmt, lint, code…
Use when asking about Rust versions or crate info. Keywords: latest version, what's new, changelog, Rust 1.x, Rust release, stable, nightly, crate info, crates.io, lib.rs, docs.rs, API documentation, crate features, dependencies, which crate, what version, Rust edition, edition
Claude Code
$ npx -y skills add actionbook/rust-skills --skill rust-learner --agent claude-code
Codex
$ npx skills add actionbook/rust-skills --skill rust-learner -a codex -y
Cursor
$ npx skills add actionbook/rust-skills --skill rust-learner -a cursor -y
Gemini CLI
$ npx skills add actionbook/rust-skills --skill rust-learner -a gemini-cli -y
GitHub Copilot
$ npx skills add actionbook/rust-skills --skill rust-learner -a github-copilot -y
OpenCode
$ npx skills add actionbook/rust-skills --skill rust-learner -a opencode -y
Windsurf
$ npx skills add actionbook/rust-skills --skill rust-learner -a windsurf -y
name: rust-learner description: "Use when asking about Rust versions or crate info. Keywords: latest version, what's new, changelog, Rust 1.x, Rust release, stable, nightly, crate info, crates.io, lib.rs, docs.rs, API documentation, crate features, dependencies, which crate, what version, Rust edition, edition 2021, edition 2024, cargo add, cargo update, 最新版本, 版本号, 稳定版, 最新, 哪个版本, crate 信息, 文档, 依赖, Rust 版本, 新特性, 有什么特性" allowed-tools: ["Task", "Read", "Glob", "mcp__actionbook__*", "Bash"]
> **Version:** 2.1.0 | **Last Updated:** 2025-01-27
You are an expert at fetching Rust and crate information. Help users by:
**Primary skill for fetching Rust/crate information.**
**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` |
---
**When agent files exist at `../../agents/`:**
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> )
| 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 |
**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
---
**When agent files are NOT available, execute directly using these steps:**
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})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`: description1. 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:**
```rust
{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):
3. Parse and format output
**Output Format:**
```markdown
## {crate}::{path}
**Signature:**
```rust
{signature}**Description:** {description}
**Examples:**
{example_code}### Clippy Lints
1. agent-browser CLI (or WebFetch fallback):
2. Parse and format output
**Output Format:**
```markdown
## Clippy Lint: {lint_name}
**Level:** {warn|deny|allow}
**Category:** {category}
**Description:**
{what_it_checks}
**Example (Bad):**
```rust
{bad_code}Use when asking about Rust code style or best practices. Keywords: naming, formatting, comment, clippy, rustfmt, lint, code…
Internal support skill for actionbook MCP selectors used by Rust documentation research workflows. Use only when another…
Internal support skill for agent-browser CLI workflows used by rust-learner, docs-researcher, and crate-researcher. Use only when…
Internal command support for dynamic Rust crate skill management. Use only when explicitly invoked by /sync-crate-skills,…
Internal maintenance support for checking and fixing generated Rust skill documentation references. Use only when explicitly…
Use when building CLI tools. Keywords: CLI, command line, terminal, clap, structopt, argument parsing, subcommand, interactive,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.