Rust-Skills 功能概览

January 17, 2026 · View on GitHub

按功能分类的能力总结

三大功能分类

中文英文作用
元认知类Meta-Cognition提升语义识别,追溯问题本质
动态 Skills 类Dynamic Skills按需生成 Skills,热加载 crate skills
信息获取类Info Fetching获取最新信息,紧跟 Rust 前沿

1. 元认知类 (Meta-Cognition)

核心价值

提升 Claude Code 对 Rust 学习和实践中遇到问题的语义识别能力,从表面错误追溯到问题本质。

解决的问题

问题传统 AI元认知 AI
E0382 错误"加 .clone()"追溯所有权设计,给出领域正确方案
类型选择泛泛建议基于领域约束的决策
设计问题通用模式符合领域最佳实践

Skills 组成

路由与框架

Skill功能
rust-router入口路由,识别问题层级和领域
_meta/reasoning-framework三层追溯方法论
_meta/layer-definitionsL1/L2/L3 定义

Layer 1: 语言机制 (HOW)

识别 Rust 语言层面的问题类型:

Skill元问题识别信号
m01-ownership谁应该拥有这个数据?E0382, E0597, move, borrow
m02-resource需要什么所有权模型?Box, Rc, Arc, 智能指针
m03-mutability可变性边界在哪里?E0499, E0502, mut, Cell
m04-zero-cost编译器能优化什么?E0277, generic, trait
m05-type-driven类型如何编码约束?newtype, PhantomData
m06-error-handling失败是预期还是异常?Result, Error, panic
m07-concurrency如何保证编译期安全?Send, Sync, async

Layer 2: 设计选择 (WHAT)

识别架构和设计层面的问题:

Skill元问题
m09-domain领域规则如何变成类型?
m10-performance性能瓶颈在哪里?
m11-ecosystem如何与现有系统集成?
m12-lifecycle资源生命周期模式?
m13-domain-error失败恢复策略?
m14-mental-model正确的心智模型?
m15-anti-pattern常见认知陷阱?

Layer 3: 领域约束 (WHY)

识别领域特定的约束和规则:

Skill领域核心约束
domain-fintech金融审计追踪、精度、不可变
domain-webWeb无状态、线程安全、异步
domain-cli命令行单线程、用户交互
domain-embedded嵌入式no_std、资源限制
domain-cloud-native云原生分布式、可观测
domain-iot物联网低资源、遥测
domain-ml机器学习张量、推理优化

工作流程

用户问题: "Web API 报错 Rc cannot be sent"


┌─────────────────────────────────────────┐
│ rust-router 语义识别                     │
│ ├─ 检测: "Web API" → 领域: domain-web   │
│ ├─ 检测: "Send" 错误 → 机制: m07        │
│ └─ 决策: 双技能加载                      │
└─────────────────────────────────────────┘


┌─────────────────────────────────────────┐
│ 三层追溯                                 │
│ L1: Rc 不是 Send (表面)                 │
│  ↑                                       │
│ L3: Web handlers 在任意线程运行 (约束)   │
│  ↓                                       │
│ L2: 使用 Arc + State extractor (设计)   │
└─────────────────────────────────────────┘


领域正确的架构方案

2. 动态 Skills 类 (Dynamic Skills)

核心价值

Rust 生态中有大量 crate,无法为每个都预置 skills。利用 Claude Code 的热加载特性,按需生成 crate 专属 skills。

解决的问题

问题解决方案
Crate 数量庞大按需生成,而非预置
版本频繁更新从最新文档生成
项目依赖各异支持全局和项目级

存储策略

~/.claude/skills/           ← 全局 (常用 crate)
├── tokio/
│   ├── SKILL.md
│   └── references/
├── serde/
├── ratatui/
└── std/                    ← 标准库

项目/.claude/skills/        ← 项目级 (特定依赖)
├── sqlx/
├── sea-orm/
└── my-company-crate/

使用场景

场景存储位置示例
常用 crate全局 ~/.claude/skills/tokio, serde, ratatui, std
项目特定依赖项目 .claude/skills/sqlx, 业务 crate
临时学习项目级,用完删除试用新 crate

Skills 组成

Skill功能
core-dynamic-skills动态 skills 生成框架
rust-skill-creator从文档生成 skills

命令

命令功能
/sync-crate-skills从 Cargo.toml 批量生成
/update-crate-skill <crate>更新指定 crate
/clean-crate-skills清理动态 skills
/create-llms-for-skills <urls>从 URL 生成 llms.txt
/create-skills-via-llms <crate> <path>从 llms.txt 创建 skill

工作流程

方式一:从 Cargo.toml 自动生成
┌─────────────────────────────────────────┐
│ /sync-crate-skills                      │
│     │                                    │
│     ▼                                    │
│ 解析 Cargo.toml 依赖                     │
│     │                                    │
│     ▼                                    │
│ 检查 actionbook 是否有 llms.txt         │
│     │                                    │
│     ├─ 有 → 直接生成 skill              │
│     └─ 无 → 从 docs.rs 抓取生成         │
│     │                                    │
│     ▼                                    │
│ 写入 ~/.claude/skills/{crate}/          │
└─────────────────────────────────────────┘

方式二:手动为特定 crate 生成
┌─────────────────────────────────────────┐
│ /create-llms-for-skills <docs_url>      │
│     │                                    │
│     ▼                                    │
│ 抓取文档,生成 llms.txt                  │
│     │                                    │
│     ▼                                    │
│ /create-skills-via-llms tokio ./llms.txt│
│     │                                    │
│     ▼                                    │
│ 生成高质量 skill                         │
└─────────────────────────────────────────┘

生成的 Skill 结构

~/.claude/skills/tokio/
├── SKILL.md              # 主 skill 文件
│   ├── 触发关键词
│   ├── 核心概念
│   ├── 常用模式
│   └── 文档引用
└── references/           # 详细参考
    ├── runtime.md
    ├── task.md
    ├── sync.md
    └── io.md

Skill 继承模式

对于复杂 crate,采用父子结构

~/.claude/skills/
├── tokio/                 # 父 Skill: 广泛触发,概览
│   ├── SKILL.md
│   └── references/
│       └── rust-defaults.md  ← 共享规则

├── tokio-task/            # 子 Skill: 精确触发,深入
│   └── references/ → symlink
├── tokio-sync/
└── tokio-time/

优势:

  • 触发精度:父广泛匹配,子精确匹配
  • 规则复用:共享 rust-defaults.md
  • 上下文节省:只加载需要的子 Skill

详见 docs/architecture-zh.md 中的"Skill 继承模式"章节。


3. 信息获取类 (Info Fetching)

核心价值

让 Claude Code 精准获取 Rust 语言和生态的最新信息,让用户紧跟 Rust 最前沿。

解决的问题

问题解决方案
AI 知识截止日期实时抓取最新信息
版本更新频繁后台 agents 定期获取
信息源分散聚合多个权威来源

Skills 组成

Skill功能
rust-learner版本和 crate 信息路由
rust-dailyRust 生态新闻聚合

Agents (后台研究员)

Agent数据源获取内容
rust-changelogreleases.rsRust 版本特性、破坏性变更
crate-researcherlib.rs, crates.ioCrate 版本、features、依赖
docs-researcherdocs.rs第三方 crate API 文档
std-docs-researcherdoc.rust-lang.org标准库文档
clippy-researcherrust-clippyLint 规则解释
rust-daily-reporterReddit, TWIR, Blog生态动态新闻

命令

命令功能
/rust-features [version]查询 Rust 版本特性
/crate-info <crate>查询 crate 信息
/docs <crate> [item]获取 API 文档
/rust-daily [day|week|month]Rust 生态新闻

信息源

┌─────────────────────────────────────────────────────────┐
│                    信息获取网络                          │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  Rust 官方                    Rust 生态                  │
│  ┌──────────────┐            ┌──────────────┐           │
│  │ releases.rs  │            │ crates.io    │           │
│  │ 版本发布     │            │ lib.rs       │           │
│  └──────┬───────┘            └──────┬───────┘           │
│         │                           │                    │
│  ┌──────┴───────┐            ┌──────┴───────┐           │
│  │doc.rust-lang │            │ docs.rs      │           │
│  │标准库文档     │            │ crate 文档   │           │
│  └──────────────┘            └──────────────┘           │
│                                                          │
│  社区动态                                                │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐   │
│  │ Reddit       │  │ TWIR         │  │ Blog         │   │
│  │ r/rust       │  │ This Week    │  │ 官方博客     │   │
│  └──────────────┘  └──────────────┘  └──────────────┘   │
│                                                          │
└─────────────────────────────────────────────────────────┘

缓存策略

数据类型TTL说明
Rust 版本168h发布不频繁
Crate 信息24h更新较频繁
API 文档72h相对稳定
Clippy Lints168h跟随 Rust 版本

工作流程

用户: "tokio 最新版本有什么新特性?"


┌─────────────────────────────────────────┐
│ rust-learner 路由                        │
│ 识别: crate 版本查询 → crate-researcher │
└─────────────────────────────────────────┘


┌─────────────────────────────────────────┐
│ crate-researcher agent                   │
│ 1. 检查缓存 (24h TTL)                   │
│ 2. 若过期,从 lib.rs 获取               │
│ 3. 返回: 版本、features、changelog      │
└─────────────────────────────────────────┘


最新、准确的 crate 信息

rust-learner 详解

rust-learner 是信息获取类的核心路由 Skill,负责调度后台 Agents 获取实时信息。

用户问题 (版本/文档/特性)


┌───────────────────────────────────────────┐
│           rust-learner (路由层)            │
│                                            │
│  识别查询类型 → 选择对应 Agent → 后台执行  │
└───────────────────────────────────────────┘

        ├──────────────────┬──────────────────┐
        ▼                  ▼                  ▼
┌──────────────┐  ┌──────────────┐  ┌──────────────┐
│rust-changelog│  │crate-        │  │docs-         │
│              │  │researcher    │  │researcher    │
│ releases.rs  │  │ lib.rs       │  │ docs.rs      │
└──────────────┘  └──────────────┘  └──────────────┘

Agent 路由表:

查询类型调度的 Agent数据源
Rust 版本特性rust-changelogreleases.rs
Crate 版本/信息crate-researcherlib.rs, crates.io
标准库文档 (Send, Arc...)std-docs-researcherdoc.rust-lang.org
第三方 crate 文档docs-researcherdocs.rs
Clippy lint 规则clippy-researcherrust-clippy
Rust 生态新闻rust-daily-reporterReddit, TWIR

触发关键词:

# 英文
latest version, what's new, changelog, Rust 1.x,
crate info, docs.rs, API documentation, which crate

# 中文
最新版本, 版本号, 新特性, crate 信息, 文档, 依赖

关键设计原则:

原则说明
后台执行所有 Agent 用 run_in_background: true
不猜版本永远通过 Agent 获取真实数据
禁用 WebSearch不用 WebSearch 查 crate 信息
Fallback 机制actionbook → agent-browser → WebFetch

核心依赖:Actionbook MCP

Actionbook 是 rust-skills 的核心基础设施,提供预计算的网页选择器。

为什么 Actionbook 是核心依赖?

传统方式 (无 Actionbook):
┌─────────────────────────────────────────────────────────┐
│ 1. 访问 lib.rs                                           │
│ 2. 获取整个 HTML (可能 100KB+)                           │
│ 3. 解析 DOM,猜测选择器                                  │
│ 4. 提取数据 (可能失败,选择器不对)                        │
│ 5. 重试... 消耗大量 tokens 和时间                        │
└─────────────────────────────────────────────────────────┘

有 Actionbook:
┌─────────────────────────────────────────────────────────┐
│ 1. 查询 actionbook: "lib.rs crate info"                 │
│ 2. 获得精确选择器:                                       │
│    {                                                     │
│      "version": ".crate-version",                       │
│      "description": ".crate-description",               │
│      "features": ".crate-features li"                   │
│    }                                                     │
│ 3. 直接用选择器提取数据                                  │
│ 4. 一次成功,高效准确                                    │
└─────────────────────────────────────────────────────────┘

Actionbook 工作机制

┌─────────────────────────────────────────────────────────┐
│                    Actionbook MCP                        │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  预计算选择器数据库                                       │
│  ┌─────────────────────────────────────────────────┐    │
│  │ lib.rs:                                          │    │
│  │   version: ".crate-version"                      │    │
│  │   features: ".crate-features li"                 │    │
│  │                                                  │    │
│  │ docs.rs:                                         │    │
│  │   signature: ".fn-signature"                     │    │
│  │   description: ".docblock"                       │    │
│  │                                                  │    │
│  │ releases.rs:                                     │    │
│  │   changelog: ".release-notes"                    │    │
│  │   features: ".language-features li"              │    │
│  └─────────────────────────────────────────────────┘    │
│                                                          │
│  MCP 接口                                                │
│  ├── search_actions(query) → 搜索匹配的站点             │
│  └── get_action_by_id(id) → 获取完整选择器              │
│                                                          │
└─────────────────────────────────────────────────────────┘

MCP 工具:

工具参数返回
search_actionsquery, type, limitaction IDs, 预览, 相关度
get_action_by_ididURL, 选择器, 元素类型

为什么是"核心依赖"?

维度无 Actionbook有 Actionbook
准确性选择器可能失效预计算,经过验证
效率解析整页 HTML精确选择器提取
Token 消耗高 (传输大量 HTML)低 (只传选择器)
可靠性网站改版就失败集中维护,快速更新
可扩展性每个站点单独适配统一接口,一次接入

rust-skills 依赖 Actionbook 的场景:

rust-learner
    ├── crate-researcher → actionbook: lib.rs 选择器
    ├── docs-researcher → actionbook: docs.rs 选择器
    ├── rust-changelog → actionbook: releases.rs 选择器
    └── std-docs-researcher → actionbook: doc.rust-lang.org 选择器

agent-browser 浏览器自动化

agent-browser 是执行层工具,配合 Actionbook 的选择器进行数据提取。

# 基本工作流
agent-browser open <url>           # 打开页面
agent-browser get text <selector>  # 用 actionbook 选择器提取
agent-browser close                # 关闭

核心命令:

命令功能
open <url>导航到页面
snapshot -i获取可交互元素 (带 ref)
get text <selector>提取文本
click @ref点击元素
fill @ref "text"填充输入
screenshot截图

工具链协作

三层工具链形成完整的信息获取管道:

┌─────────────────────────────────────────────────────────┐
│                     信息获取管道                          │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  Layer 1: 路由决策 (rust-learner)                        │
│  ┌─────────────────────────────────────────────────┐    │
│  │ 用户: "tokio 最新版本"                            │    │
│  │ 决策: crate 查询 → crate-researcher agent        │    │
│  └─────────────────────────────────────────────────┘    │
│                          │                               │
│                          ▼                               │
│  Layer 2: 选择器获取 (Actionbook MCP)                    │
│  ┌─────────────────────────────────────────────────┐    │
│  │ search_actions("lib.rs crate")                   │    │
│  │ get_action_by_id("lib.rs/crates")               │    │
│  │ 返回: { version: ".crate-version", ... }        │    │
│  └─────────────────────────────────────────────────┘    │
│                          │                               │
│                          ▼                               │
│  Layer 3: 数据提取 (agent-browser)                       │
│  ┌─────────────────────────────────────────────────┐    │
│  │ agent-browser open lib.rs/crates/tokio          │    │
│  │ agent-browser get text ".crate-version"         │    │
│  │ 返回: "1.49.0"                                   │    │
│  └─────────────────────────────────────────────────┘    │
│                          │                               │
│                          ▼                               │
│  输出: tokio 1.49.0, features, 文档链接                  │
│                                                          │
└─────────────────────────────────────────────────────────┘

优先级 Fallback:

actionbook MCP → agent-browser CLI → WebFetch (仅备用)
     │                  │                │
     ▼                  ▼                ▼
获取预计算选择器   执行浏览器抓取    最后手段 (无选择器)

为什么这个顺序?

工具优点缺点
Actionbook + agent-browser精确、高效、可靠需要预计算选择器
WebFetch简单、无依赖获取整页、解析困难

功能协作

三类功能相互配合:

┌─────────────────────────────────────────────────────────┐
│                     用户问题                             │
└─────────────────────────┬───────────────────────────────┘

          ┌───────────────┼───────────────┐
          │               │               │
          ▼               ▼               ▼
    ┌───────────┐   ┌───────────┐   ┌───────────┐
    │ 元认知类   │   │ 动态 Skills│   │ 信息获取类 │
    │           │   │           │   │           │
    │ 语义识别   │   │ crate 知识 │   │ 最新信息   │
    │ 追溯本质   │   │ 按需加载   │   │ 实时获取   │
    └─────┬─────┘   └─────┬─────┘   └─────┬─────┘
          │               │               │
          └───────────────┼───────────────┘


            ┌─────────────────────────┐
            │ 领域正确 + 最新准确的   │
            │ 架构方案                │
            └─────────────────────────┘

协作示例

问题: "用 tokio 1.40 写一个 Web 服务,处理并发请求"

1. 元认知类: 识别 Web + 并发 → 加载 domain-web + m07
2. 动态 Skills: 加载 tokio skill (最新 API 模式)
3. 信息获取类: 确认 tokio 1.40 特性和最佳实践

→ 输出: 基于最新 tokio 版本、符合 Web 领域约束的方案

总结

功能类核心价值Skills/Agents
元认知语义识别,追溯本质rust-router, m01-m15, domain-*
动态 Skills按需生成,热加载core-dynamic-skills, rust-skill-creator
信息获取最新信息,紧跟前沿rust-learner, 8 个 agents

rust-skills 的目标

让 Claude Code 成为一个理解问题本质掌握最新生态按需扩展知识的 Rust 开发助手。