Rust Router

by actionbook5c40d3ad7851No license1.5K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 6 weeks ago

CRITICAL: Use for ALL Rust questions including errors, design, and coding. HIGHEST PRIORITY for: 比较, 对比, compare, vs, versus, 区别, difference, 最佳实践, best practice, tokio vs, async-std vs, 比较 tokio, 比较 async, Triggers on: Rust, cargo, rustc, crate, Cargo.toml, 意图分析, 问题分析, 语义分析, analyze intent, question analysis, compile error, borrow error, lifetime error, ownership error, type error, trait error, value moved, cannot borrow, does not live long enough, mismatched types, not satisfied, E0382, E0597, E0277, E0308, E0499, E0502, E0596, async, await, Send, Sync, tokio, concurrency, error handling, 编译错误, compile error, 所有权, ownership, 借用, borrow, 生命周期, lifetime, 类型错误, type error, 异步, async, 并发, concurrency, 错误处理, error handling, 问题, problem, question, 怎么用, how to use, 如何, how to, 为什么, why, 什么是, what is, 帮我写, help me write, 实现, implement, 解释, explain

AI-generated overview

Routes Rust questions to the right skill layer, from language mechanics to domain constraints.

What it does
This skill acts as a router for Rust-related questions. It classifies a query by cognitive layer (language mechanics, design choices, or domain constraints), maps error codes and keywords to specific sub-skills, and specifies when a negotiation protocol or dual-skill loading should be used. It produces routing decisions and answer-format guidance rather than Rust code itself.
When to use it
Use it when a Rust question arrives and you need to decide which skill or layer should handle it. It is suited to compile errors, ownership and lifetime issues, async and concurrency questions, design and best-practice questions, and domain-specific Rust work.
Requirements
No scripts; instructions only. It references sub-files (patterns/negotiation.md, examples/workflow.md, integrations/os-checker.md) and named companion skills, but requires no packages, credentials, or network access beyond the agent.

Rust Question Router

Version: 2.0.0 | Last Updated: 2025-01-22

v2.0: Context optimized - detailed examples moved to sub-files

Meta-Cognition Framework

Core Principle

Don't answer directly. Trace through the cognitive layers first.

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?"

Routing by Entry Point

User SignalEntry LayerDirectionFirst Skill
E0xxx errorLayer 1Trace UP ↑m01-m07
Compile errorLayer 1Trace UP ↑Error table below
"How to design..."Layer 2Check L3, then DOWN ↓m09-domain
"Building [domain] app"Layer 3Trace DOWN ↓domain-*
"Best practice..."Layer 2Both directionsm09-m15
Performance issueLayer 1 → 2UP then DOWNm10-performance

CRITICAL: Dual-Skill Loading

When domain keywords are present, you MUST load BOTH skills:

Domain KeywordsL1 SkillL3 Skill
Web API, HTTP, axum, handlerm07-concurrencydomain-web
交易, 支付, trading, paymentm01-ownershipdomain-fintech
CLI, terminal, clapm07-concurrencydomain-cli
kubernetes, grpc, microservicem07-concurrencydomain-cloud-native
embedded, no_std, MCUm02-resourcedomain-embedded

INSTRUCTIONS FOR CLAUDE

CRITICAL: Negotiation Protocol Trigger

BEFORE answering, check if negotiation is required:

Query ContainsAction
"比较", "对比", "compare", "vs", "versus"MUST use negotiation
"最佳实践", "best practice"MUST use negotiation
Domain + error (e.g., "交易系统 E0382")MUST use negotiation
Ambiguous scope (e.g., "tokio 性能")SHOULD use negotiation

When negotiation is required, include:

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


Default Project Settings

When creating new Rust projects or Cargo.toml files, ALWAYS use:

toml
[package]edition = "2024"  # ALWAYS use latest stable editionrust-version = "1.85"
[lints.rust]unsafe_code = "warn"
[lints.clippy]all = "warn"pedantic = "warn"

Layer 1 Skills (Language Mechanics)

PatternRoute To
move, borrow, lifetime, E0382, E0597m01-ownership
Box, Rc, Arc, RefCell, Cellm02-resource
mut, interior mutability, E0499, E0502, E0596m03-mutability
generic, trait, inline, monomorphizationm04-zero-cost
type state, phantom, newtypem05-type-driven
Result, Error, panic, ?, anyhow, thiserrorm06-error-handling
Send, Sync, thread, async, channelm07-concurrency
unsafe, FFI, extern, raw pointer, transmuteunsafe-checker

Layer 2 Skills (Design Choices)

PatternRoute To
domain model, business logicm09-domain
performance, optimization, benchmarkm10-performance
integration, interop, bindingsm11-ecosystem
resource lifecycle, RAII, Dropm12-lifecycle
domain error, recovery strategym13-domain-error
mental model, how to thinkm14-mental-model
anti-pattern, common mistake, pitfallm15-anti-pattern

Layer 3 Skills (Domain Constraints)

Domain KeywordsRoute To
fintech, trading, decimal, currencydomain-fintech
ml, tensor, model, inferencedomain-ml
kubernetes, docker, grpc, microservicedomain-cloud-native
embedded, sensor, mqtt, iotdomain-iot
web server, HTTP, REST, axum, actixdomain-web
CLI, command line, clap, terminaldomain-cli
no_std, microcontroller, firmwaredomain-embedded

Error Code Routing

Error CodeRoute ToCommon Cause
E0382m01-ownershipUse of moved value
E0597m01-ownershipLifetime too short
E0506m01-ownershipCannot assign to borrowed
E0507m01-ownershipCannot move out of borrowed
E0515m01-ownershipReturn local reference
E0716m01-ownershipTemporary value dropped
E0106m01-ownershipMissing lifetime specifier
E0596m03-mutabilityCannot borrow as mutable
E0499m03-mutabilityMultiple mutable borrows
E0502m03-mutabilityBorrow conflict
E0277m04/m07Trait bound not satisfied
E0308m04-zero-costType mismatch
E0599m04-zero-costNo method found
E0038m04-zero-costTrait not object-safe
E0433m11-ecosystemCannot find crate/module

Functional Routing Table

PatternRoute ToAction
latest version, what's newrust-learnerUse agents
API, docs, documentationdocs-researcherUse agent
code style, naming, clippycoding-guidelinesRead skill
unsafe code, FFIunsafe-checkerRead skill
code reviewos-checkerSee integrations/os-checker.md

Priority Order

  1. Identify cognitive layer (L1/L2/L3)
  2. Load entry skill (m0x/m1x/domain)
  3. Trace through layers (UP or DOWN)
  4. Cross-reference skills as indicated in "Trace" sections
  5. Answer with reasoning chain

Keyword Conflict Resolution

KeywordResolution
unsafeunsafe-checker (more specific than m11)
errorm06 for general, m13 for domain-specific
RAIIm12 for design, m01 for implementation
craterust-learner for version, m11 for integration
tokiotokio-* for API, m07 for concepts

Priority Hierarchy:

1. Error codes (E0xxx) → Direct lookup, highest priority2. Negotiation triggers (compare, vs, best practice) → Enable negotiation3. Domain keywords + error → Load BOTH domain + error skills4. Specific crate keywords → Route to crate-specific skill if exists5. General concept keywords → Route to meta-question skill

Sub-Files Reference

FileContent
patterns/negotiation.mdNegotiation protocol details
examples/workflow.mdWorkflow examples
integrations/os-checker.mdOS-Checker integration

Source and attribution

Source:actionbook/rust-skillsinskills/rust-routerat commit5c40d3a

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal