Rust-Skills 能力总结

2026-08-30 浏览 (11)

Rust-Skills 能力总结

rust-skills Claude Code 插件的完整能力清单

概览

指标数量
Skills 总数31
后台 Agents8
斜杠命令18
Unsafe 规则47
编码规范80+
触发关键词400+

核心架构:元认知框架

三层认知模型

┌─────────────────────────────────────────────────────┐
│ Layer 3: 领域约束 (WHY)                              │
│ ├── domain-fintech: 审计、精度、不可变性              │
│ ├── domain-web: 无状态、线程安全、异步                │
│ ├── domain-cli: 单线程、用户交互                     │
│ ├── domain-embedded: no_std、资源约束                │
│ ├── domain-cloud-native: 分布式、可观测性            │
│ ├── domain-iot: 低资源、遥测                         │
│ └── domain-ml: 张量运算、推理优化                    │
├─────────────────────────────────────────────────────┤
│ Layer 2: 设计选择 (WHAT)                             │
│ ├── m09-domain: DDD、实体 vs 值对象                  │
│ ├── m10-performance: 基准测试、优化                  │
│ ├── m11-ecosystem: Crate 选择、集成                  │
│ ├── m12-lifecycle: RAII、Drop、资源模式              │
│ ├── m13-domain-error: 重试、熔断器                   │
│ ├── m14-mental-model: 学习、心智模型                 │
│ └── m15-anti-pattern: 代码异味、陷阱                 │
├─────────────────────────────────────────────────────┤
│ Layer 1: 语言机制 (HOW)                              │
│ ├── m01-ownership: 所有权、借用、生命周期            │
│ ├── m02-resource: Box、Rc、Arc、智能指针             │
│ ├── m03-mutability: mut、Cell、RefCell、内部可变性   │
│ ├── m04-zero-cost: 泛型、trait、分发                 │
│ ├── m05-type-driven: Newtype、PhantomData、状态      │
│ ├── m06-error-handling: Result、Error、panic         │
│ └── m07-concurrency: Send、Sync、async、channel      │
└─────────────────────────────────────────────────────┘

路由流程

用户问题
    │
    ▼
┌─────────────────┐
│ Hook 触发       │ ← 400+ 关键词 (中英文/错误码)
│ (UserPromptSubmit)
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ rust-router     │ ← 识别入口层 + 领域
└────────┬────────┘
         │
    ┌────┴────┐
    │         │
    ▼         ▼
┌───────┐ ┌────────┐
│ L1    │ │ L3     │  ← 双技能加载
│ Skill │ │ Domain │
└───┬───┘ └────┬───┘
    │          │
    └────┬─────┘
         │
         ▼
┌─────────────────┐
│ 追溯 UP/DOWN    │ ← 跨层推理
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 上下文感知的    │ ← 领域最佳实践
│ 答案            │
└─────────────────┘

Skills 清单 (共 31 个)

Layer 1: 语言机制 (7 个)

Skill核心问题触发条件
m01-ownership谁应该拥有这个数据?E0382, E0597, E0506, E0507, E0515, E0716, move, borrow, lifetime
m02-resource需要什么所有权模型?Box, Rc, Arc, Weak, RefCell, Cell, 智能指针
m03-mutability不可变性边界在哪里?E0596, E0499, E0502, mut, 内部可变性
m04-zero-cost编译器能优化什么?E0277, E0308, E0599, generic, trait, 单态化
m05-type-driven类型如何编码约束?PhantomData, newtype, 类型状态, 建造者模式
m06-error-handling失败是预期还是异常?Result, Option, Error, panic, anyhow, thiserror
m07-concurrency如何在编译期保证安全?Send, Sync, thread, async, await, Mutex, channel

Layer 2: 设计选择 (7 个)

Skill核心问题关注点
m09-domain领域规则如何变成类型?DDD, 实体, 值对象, 聚合, 仓储
m10-performance性能瓶颈在哪里?基准测试, 性能分析, flamegraph, criterion
m11-ecosystem如何与现有系统集成?Crate 选择, FFI, PyO3, WASM, feature flags
m12-lifecycle领域资源模式是什么?RAII, Drop, 连接池, OnceCell
m13-domain-error失败恢复策略是什么?重试, 熔断器, 优雅降级
m14-mental-model正确的心智模型是什么?学习 Rust, 可视化内存, 类比
m15-anti-pattern常见认知陷阱有哪些?代码异味, 新手错误, 惯用写法

Layer 3: 领域约束 (7 个)

Skill领域关键约束
domain-fintech金融审计追踪, 小数精度, 不可变交易
domain-webWeb 服务无状态 HTTP, 线程安全状态, 异步处理器
domain-cli命令行参数解析, TUI, 进度条, 配置文件
domain-embedded嵌入式/no_stdMCU, 裸机, HAL, 中断, 资源限制
domain-cloud-native云原生Kubernetes, gRPC, 可观测性, 分布式追踪
domain-iot物联网MQTT, 传感器, 边缘计算, 低资源
domain-ml机器学习张量, 推理, 模型优化

核心与工具 Skills (10 个)

Skill用途
rust-router路由所有 Rust 问题,实现元认知
rust-learner通过 agents 获取最新 Rust/crate 版本
coding-guidelines80+ Rust 编码规则 (命名, 风格, 模式)
unsafe-checker47 条 unsafe 规则, SAFETY 注释, FFI 审查
rust-daily聚合 Reddit, TWIR, 博客的 Rust 新闻
rust-skill-creator从文档生成新 skills
core-actionbook预计算的网站选择器
core-agent-browser浏览器自动化基础设施
core-dynamic-skills从 Cargo.toml 动态生成 skills
core-fix-skill-docsSkill 文档维护

Agents (8 个后台研究员)

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生态新闻 (日/周/月)
browser-fetcherWebFetch通用网页内容回退

工具链优先级

1. actionbook MCP    → 预计算选择器
2. agent-browser CLI → 浏览器自动化
3. WebFetch          → 最后回退

命令 (18 个斜杠命令)

查询命令

命令用途
/rust-router将问题路由到合适的 skill
/guideline [--clippy] rule查询编码规范
/skill-index category按分类搜索 skills
/docs crate [item]获取 API 文档

版本与信息命令

命令用途
/rust-features [version]Rust 更新日志/特性
/crate-info crateCrate 元数据
/rust-daily [day|week|month]生态新闻

审计命令

命令用途
/unsafe-check file分析文件的 unsafe 问题
/unsafe-review file交互式 unsafe 审查
/rust-review file轻量级 clippy 审查
/audit [security|safety|concurrency|full]重量级审计

缓存命令

命令用途
/cache-status [--verbose]显示缓存状态
/cache-clean [--all|--expired|crate]清理缓存

动态 Skill 命令

命令用途
/sync-crate-skills [--force]从 Cargo.toml 生成 skills
/update-crate-skill crate更新特定 crate skill
/clean-crate-skills [--all]删除动态 skills
/create-skills-via-llms crate path从 llms.txt 创建 skill
/create-llms-for-skills urls从 URL 生成 llms.txt
/fix-skill-docs [--check-only]修复 skill 文档

Unsafe 检查器 (47 条规则)

分类

类别规则数关注点
内存安全12指针有效性, 对齐, 初始化
FFI 安全10C 互操作, ABI, extern 函数
并发8Send/Sync 实现, 数据竞争
未定义行为10Transmute, union, 别名
文档7SAFETY 注释, 不变量

SAFETY 注释要求

// SAFETY: [前置条件] 满足,因为 [理由]
unsafe {
    // 代码
}

编码规范 (80+ 条规则)

分类

类别规则数示例
命名15snake_case, PascalCase, SCREAMING_SNAKE
数据类型12优先 &str 而非 String, 使用 newtype
错误处理10库中禁止 unwrap, 使用 thiserror
内存8避免不必要的分配
并发10优先 channel 而非共享状态
异步8异步中不要阻塞, 限制锁范围
5优先函数而非宏
文档12文档示例, # Panics, # Errors

元认知框架 (_meta/)

文件用途
reasoning-framework.md三层追溯方法论
layer-definitions.mdL1/L2/L3 范围和信号
error-protocol.md3-Strike 升级规则
externalization.md文件系统作为外部记忆
hooks-patterns.md认知触发器模式

Hook 系统

触发关键词 (400+)

类别示例
错误码E0382, E0597, E0277, E0499, E0502, E0596
所有权ownership, borrow, lifetime, move, clone
并发async, await, Send, Sync, thread, spawn
智能指针Box, Rc, Arc, RefCell, Cell, Mutex
领域Web API, HTTP, axum, payment, trading, CLI
中文所有权, 借用, 生命周期, 异步, 并发, 智能指针
问题词how to, why, what is, 怎么, 为什么, 如何

Hook 行为

  1. 检测领域关键词 → 同时加载 L1 和 L3 skills
  2. 强制输出格式 → 要求推理链
  3. 强制追溯 → 必须追溯相关层级

缓存系统

配置

缓存TTL用途
Crates24hCrate 元数据
Rust 版本168h发布信息
文档72hAPI 文档
Clippy Lints168hLint 数据

特性

  • 自动清理过期条目
  • Stale-while-revalidate 策略
  • 每类别大小限制

项目配置

默认 Rust 项目设置

[package]
edition = "2024"
rust-version = "1.85"

[lints.rust]
unsafe_code = "warn"

[lints.clippy]
all = "warn"
pedantic = "warn"

插件清单

{
  "name": "rust-skills",
  "version": "1.0.0",
  "skills": "./skills/",
  "hooks": "./hooks/hooks.json"
}

独特能力

1. 元认知路由

不只是回答问题,而是追溯认知层级提供领域感知的方案。

2. 双技能加载

检测到领域上下文时,自动加载两个技能:

  • Layer 1 skill (语言机制)
  • Layer 3 skill (领域约束)

3. 动态 Skill 生成

从 Cargo.toml 依赖自动生成 crate 专属 skills。

4. 后台研究 Agents

8 个专业 agents 在后台获取实时数据,不阻塞对话。

5. 全面 Unsafe 审计

47 条规则覆盖内存安全、FFI、并发和文档。

6. 双语支持

400+ 触发关键词支持中英文。


示例:元认知实战

问题: "我的 Web API 报错 Rc cannot be sent between threads"

传统回答:

用 Arc 替代 Rc。

元认知回答:

### 推理链
+-- Layer 1: Send/Sync 错误
|   问题: Rc<T> 不能跨线程传递
|       ^
+-- Layer 3: Web 领域 (domain-web)
|   约束: Handlers 在任意线程运行
|   规则: 共享状态必须线程安全
|       v
+-- Layer 2: 设计选择
    决策: 使用 Arc<T> + State extractor

### 领域约束分析
来自 domain-web:
- "Rc in state" 被列为常见错误
- Web handlers 需要 Send + Sync 约束
- 推荐模式: axum State<Arc<T>>

### 推荐方案
[使用 axum State extractor 和 Arc 的完整代码,
遵循 Web 领域最佳实践]

总结

rust-skills 将 Claude 从 Rust 知识库转变为领域感知的 Rust 架构师

  1. 路由 问题通过合适的认知层级
  2. 追溯 找到底层领域约束
  3. 推荐 符合领域最佳实践的方案
  4. 研究 通过后台 agents 获取实时数据
  5. 审计 代码的安全性和风格合规性

目标: 表面修复 → 架构合理、领域感知的方案

你可能感兴趣的文章

Meta-Cognition 示例: E0382 交易系统

Rust-Skills 功能概览

Skills Design Lessons Learned

Hook 机制详解

Context Optimization Guide

Claude Code 配置优先级

Prompt 约束技巧

Skill 继承机制

Skills 编写最佳实践

What Is a Skill?

  • 所属分类: AI
  • 本文标签: rust
  • 版权声明: 本文链接 https://seaxiang.com/blog/ytL8iNOP