Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add actionbook/rust-skills --skill "rust-router"
Install specific skill from multi-skill repository
# Description
"CRITICAL: Use for ALL Rust questions including errors, design, and coding.
# SKILL.md
name: rust-router
description: "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"
globs: ["/Cargo.toml", "/*.rs"]
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 Signal | Entry Layer | Direction | First Skill |
|---|---|---|---|
| E0xxx error | Layer 1 | Trace UP โ | m01-m07 |
| Compile error | Layer 1 | Trace UP โ | Error table below |
| "How to design..." | Layer 2 | Check L3, then DOWN โ | m09-domain |
| "Building [domain] app" | Layer 3 | Trace DOWN โ | domain-* |
| "Best practice..." | Layer 2 | Both directions | m09-m15 |
| Performance issue | Layer 1 โ 2 | UP then DOWN | m10-performance |
CRITICAL: Dual-Skill Loading
When domain keywords are present, you MUST load BOTH skills:
| Domain Keywords | L1 Skill | L3 Skill |
|---|---|---|
| Web API, HTTP, axum, handler | m07-concurrency | domain-web |
| ไบคๆ, ๆฏไป, trading, payment | m01-ownership | domain-fintech |
| CLI, terminal, clap | m07-concurrency | domain-cli |
| kubernetes, grpc, microservice | m07-concurrency | domain-cloud-native |
| embedded, no_std, MCU | m02-resource | domain-embedded |
INSTRUCTIONS FOR CLAUDE
CRITICAL: Negotiation Protocol Trigger
BEFORE answering, check if negotiation is required:
| Query Contains | Action |
|---|---|
| "ๆฏ่พ", "ๅฏนๆฏ", "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:
## 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:
[package]
edition = "2024" # ALWAYS use latest stable edition
rust-version = "1.85"
[lints.rust]
unsafe_code = "warn"
[lints.clippy]
all = "warn"
pedantic = "warn"
Layer 1 Skills (Language Mechanics)
| Pattern | Route To |
|---|---|
| move, borrow, lifetime, E0382, E0597 | m01-ownership |
| Box, Rc, Arc, RefCell, Cell | m02-resource |
| mut, interior mutability, 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 |
Layer 2 Skills (Design Choices)
| Pattern | Route To |
|---|---|
| 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 |
Layer 3 Skills (Domain Constraints)
| Domain Keywords | Route To |
|---|---|
| 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, command line, clap, terminal | domain-cli |
| no_std, microcontroller, firmware | domain-embedded |
Error Code Routing
| Error Code | Route To | Common Cause |
|---|---|---|
| E0382 | m01-ownership | Use of moved value |
| E0597 | m01-ownership | Lifetime too short |
| E0506 | m01-ownership | Cannot assign to borrowed |
| E0507 | m01-ownership | Cannot move out of borrowed |
| E0515 | m01-ownership | Return local reference |
| E0716 | m01-ownership | Temporary value dropped |
| E0106 | m01-ownership | Missing lifetime specifier |
| E0596 | m03-mutability | Cannot borrow as mutable |
| E0499 | m03-mutability | Multiple mutable borrows |
| E0502 | m03-mutability | Borrow conflict |
| E0277 | m04/m07 | Trait bound not satisfied |
| E0308 | m04-zero-cost | Type mismatch |
| E0599 | m04-zero-cost | No method found |
| E0038 | m04-zero-cost | Trait not object-safe |
| E0433 | m11-ecosystem | Cannot find crate/module |
Functional Routing Table
| Pattern | Route To | Action |
|---|---|---|
| latest version, what's new | rust-learner | Use agents |
| API, docs, documentation | docs-researcher | Use agent |
| code style, naming, clippy | coding-guidelines | Read skill |
| unsafe code, FFI | unsafe-checker | Read skill |
| code review | os-checker | See integrations/os-checker.md |
Priority Order
- Identify cognitive layer (L1/L2/L3)
- Load entry skill (m0x/m1x/domain)
- Trace through layers (UP or DOWN)
- Cross-reference skills as indicated in "Trace" sections
- Answer with reasoning chain
Keyword Conflict Resolution
| Keyword | Resolution |
|---|---|
unsafe |
unsafe-checker (more specific than m11) |
error |
m06 for general, m13 for domain-specific |
RAII |
m12 for design, m01 for implementation |
crate |
rust-learner for version, m11 for integration |
tokio |
tokio- for API, m07* for concepts |
Priority Hierarchy:
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
Sub-Files Reference
| File | Content |
|---|---|
patterns/negotiation.md |
Negotiation protocol details |
examples/workflow.md |
Workflow examples |
integrations/os-checker.md |
OS-Checker integration |
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.