关于 rust-router
用于 Rust 问题分流的技能,可根据错误、概念和应用领域定位相关技能。它引导分层分析,并在涉及领域关键词时要求同时加载语言层与领域层技能。
主要功能
- 01按编译错误和概念分流
- 02将问题映射到认知层级
- 03指定领域需加载配套技能
- 04比较类问题触发协商流程
- 05分流 Crate 与任务相关问题
适用场景
- 01查找 Rust 编译错误对应技能
- 02结合领域约束分析设计问题
- 03分流比较或最佳实践问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ actionbook/ rust-skills --skill rust-router安装后在 Claude Code 中输入/rust-router确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples/workflow.mdintegrations/os-checker.mdpatterns/negotiation.md详细介绍
Rust 问题路由器
版本: 2.0.0 | 最后更新: 2025-01-22
v2.0: 优化上下文——详细示例已移至子文件
元认知框架
核心原则
不要直接回答。先逐层追溯认知层级。
Layer 3: Domain Constraints (WHY)
├── Business rules, regulatory requirements
├── domain-fintech, domain-web, domain-cli, etc.
└── "Why is it designed this way?"
Layer 2: Design Choices (WHAT)
├── Architecture patterns, DDD concepts
├── m09-m15 skills
└── "What pattern should I use?"
Layer 1: Language Mechanics (HOW)
├── Ownership, borrowing, lifetimes, traits
├── m01-m07 skills
└── "How do I implement this in Rust?"
按入口路由
| 用户信号 | 入口层 | 方向 | 首选技能 |
|---|---|---|---|
| E0xxx 错误 | 第 1 层 | 向上追溯 ↑ | m01-m07 |
| 编译错误 | 第 1 层 | 向上追溯 ↑ | 下方错误表 |
| “如何设计……” | 第 2 层 | 检查第 3 层,然后向下 ↓ | m09-domain |
| “构建 [领域] 应用” | 第 3 层 | 向下追溯 ↓ | domain-* |
| “最佳实践……” | 第 2 层 | 双向 | m09-m15 |
| 性能问题 | 第 1 层 → 第 2 层 | 先向上,再向下 | m10-performance |
关键:加载双重技能
出现领域关键词时,必须同时加载两项技能:
| 领域关键词 | 第 1 层技能 | 第 3 层技能 |
|---|---|---|
| Web API、HTTP、axum、handler | m07-concurrency | domain-web |
| 交易、支付、trading、payment | m01-ownership | domain-fintech |
| CLI、终端、clap | m07-concurrency | domain-cli |
| kubernetes、grpc、microservice | m07-concurrency | domain-cloud-native |
| embedded、no_std、MCU | m02-resource | domain-embedded |
给 CLAUDE 的说明
关键:协商协议触发条件
回答前,先检查是否需要协商:
| 查询包含 | 操作 |
|---|---|
| “比较”、“对比”、“compare”、“vs”、“versus” | 必须进行协商 |
| “最佳实践”、“best practice” | 必须进行协商 |
| 领域 + 错误(例如,“交易系统 E0382”) | 必须进行协商 |
| 范围不明确(例如,“tokio 性能”) | 应进行协商 |
需要协商时,请包含:
## Negotiation Analysis
**Query Type:** [Comparative | Cross-domain | Synthesis | Ambiguous]
**Negotiation:** Enabled
### Source: [Agent/Skill Name]
**Confidence:** HIGH | MEDIUM | LOW | UNCERTAIN
**Gaps:** [What's missing]
## Synthesized Answer
[Answer]
**Overall Confidence:** [Level]
**Disclosed Gaps:** [Gaps user should know]
详见协议:
patterns/negotiation.md
默认项目设置
创建新的 Rust 项目或 Cargo.toml 文件时,始终使用:
[package]
edition = "2024" # ALWAYS use latest stable edition
rust-version = "1.85"
[lints.rust]
unsafe_code = "warn"
[lints.clippy]
all = "warn"
pedantic = "warn"
第 1 层技能(语言机制)
| 模式 | 路由至 |
|---|---|
| move、borrow、lifetime、E0382、E0597 | m01-ownership |
| Box、Rc、Arc、RefCell、Cell | m02-resource |
| mut、内部可变性、E0499、E0502、E0596 | m03-mutability |
| generic、trait、inline、monomorphization | m04-zero-cost |
| type state、phantom、newtype | m05-type-driven |
| Result、Error、panic、?、anyhow、thiserror | m06-error-handling |
| Send、Sync、thread、async、channel | m07-concurrency |
| unsafe、FFI、extern、raw pointer、transmute | unsafe-checker |
第 2 层技能(设计选择)
| 模式 | 路由至 |
|---|---|
| domain model、business logic | m09-domain |
| performance、optimization、benchmark | m10-performance |
| integration、interop、bindings | m11-ecosystem |
| resource lifecycle、RAII、Drop | m12-lifecycle |
| domain error、recovery strategy | m13-domain-error |
| mental model、how to think | m14-mental-model |
| anti-pattern、common mistake、pitfall | m15-anti-pattern |
第 3 层技能(领域约束)
| 领域关键词 | 路由至 |
|---|---|
| fintech、trading、decimal、currency | domain-fintech |
| ml、tensor、model、inference | domain-ml |
| kubernetes、docker、grpc、microservice | domain-cloud-native |
| embedded、sensor、mqtt、iot | domain-iot |
| web server、HTTP、REST、axum、actix | domain-web |
| CLI、命令行、clap、终端 | domain-cli |
| no_std、microcontroller、firmware | domain-embedded |
错误代码路由
| 错误代码 | 路由到 | 常见原因 |
|---|---|---|
| E0382 | m01-ownership | 使用了已移动的值 |
| E0597 | m01-ownership | 生命周期过短 |
| E0506 | m01-ownership | 无法对借用的值赋值 |
| E0507 | m01-ownership | 无法移出借用的值 |
| E0515 | m01-ownership | 返回局部引用 |
| E0716 | m01-ownership | 临时值已被丢弃 |
| E0106 | m01-ownership | 缺少生命周期说明符 |
| E0596 | m03-mutability | 无法进行可变借用 |
| E0499 | m03-mutability | 存在多个可变借用 |
| E0502 | m03-mutability | 借用冲突 |
| E0277 | m04/m07 | 未满足 Trait 约束 |
| E0308 | m04-zero-cost | 类型不匹配 |
| E0599 | m04-zero-cost | 找不到方法 |
| E0038 | m04-zero-cost | Trait 不满足对象安全要求 |
| E0433 | m11-ecosystem | 找不到 crate/模块 |
功能路由表
| 模式 | 路由到 | 操作 |
|---|---|---|
| 最新版本、新功能 | rust-learner | 使用 Agent |
| API、文档 | docs-researcher | 使用 Agent |
| 代码风格、命名、clippy | coding-guidelines | 阅读技能 |
| unsafe 代码、FFI | unsafe-checker | 阅读技能 |
| 代码审查 | os-checker | 查看 integrations/os-checker.md |
优先级顺序
- 识别认知层级(L1/L2/L3)
- 加载入口技能(m0x/m1x/领域)
- 按层追踪(向上或向下)
- 按照“追踪”部分的说明交叉引用技能
- 给出推理链
关键词冲突解决
| 关键词 | 解决方式 |
|---|---|
unsafe | unsafe-checker(比 m11 更具体) |
error | 一般情况使用 m06,特定领域使用 m13 |
RAII | 设计使用 m12,实现使用 m01 |
crate | 版本使用 rust-learner,集成使用 m11 |
tokio | API 使用 tokio-*,概念使用 m07 |
优先级层级:
1. Error codes (E0xxx) → Direct lookup, highest priority
2. Negotiation triggers (compare, vs, best practice) → Enable negotiation
3. Domain keywords + error → Load BOTH domain + error skills
4. Specific crate keywords → Route to crate-specific skill if exists
5. General concept keywords → Route to meta-question skill
子文件参考
| 文件 | 内容 |
|---|---|
patterns/negotiation.md | 协商协议详情 |
examples/workflow.md | 工作流示例 |
integrations/os-checker.md | OS-Checker 集成 |
评论
支持 Markdown