Rust Question Router
Version: 2.0.0 | Last Updated: 2026-01-17
New in v2.0: Meta-Cognition Routing - Three-layer cognitive model for deeper answers
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
Example: "Web API 报错 Rc cannot be sent"
-
Load: m07-concurrency (L1 - Send/Sync error)
-
Load: domain-web (L3 - Web state management)
-
Answer must include both layers
Trace Examples
User: "My trading system reports E0382"
- Entry: Layer 1 (E0382 = ownership error)
- Load: m01-ownership skill
- Trace UP: What design led to this?
- Check: domain-fintech (trading = immutable audit data)
- Answer: Don't clone, use Arc<T> for shared immutable data
User: "How should I handle user authentication?"
- Entry: Layer 2 (design question)
- Trace UP to Layer 3: domain-web constraints
- Load: domain-web skill (security, stateless HTTP)
- Trace DOWN: m06-error-handling, m07-concurrency
- Answer: JWT with proper error types, async handlers
INSTRUCTIONS FOR CLAUDE
Default Project Settings (When Creating Rust Code)
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"
Rules:
-
ALWAYS use edition = "2024" (not 2021 or earlier)
-
Include rust-version for MSRV clarity
-
Enable clippy lints by default
-
DO NOT use WebSearch for Rust questions - use skills and agents
Meta-Cognition Routing Process
Identify Entry Layer
-
E0xxx errors → Layer 1
-
Design questions → Layer 2
-
Domain-specific → Layer 3
Load Appropriate Skill
-
Read the skill file for context
-
Note the "Trace Up" and "Trace Down" sections
Trace Through Layers
-
Don't stop at surface-level fix
-
Ask "Why?" to trace up
-
Ask "How?" to trace down
Answer with Context
-
Include the reasoning chain
-
Reference which layers/skills informed the answer
When User Requests Intent Analysis
User may say: "analyze this question" / "what type of problem is this" / "analyze intent"
Execute these steps:
-
Extract Keywords - Identify Rust concepts, error codes, crate names
-
Identify Entry Layer - Which cognitive layer is this?
-
Map to Skills - Which m0x/m1x/domain skills apply?
-
Report Analysis - Tell user the layers and suggested trace
-
Invoke Skill - Load and apply the matched skill
Layer 1 Skills (Language Mechanics)
Pattern Category Route To
move, borrow, lifetime, E0382, E0597 m01 m01-ownership
Box, Rc, Arc, RefCell, Cell m02 m02-resource
mut, interior mutability, E0499, E0502, E0596 m03 m03-mutability
generic, trait, inline, monomorphization m04 m04-zero-cost
type state, phantom, newtype m05 m05-type-driven
Result, Error, panic, ?, anyhow, thiserror m06 m06-error-handling
Send, Sync, thread, async, channel m07 m07-concurrency
unsafe, FFI, extern, raw pointer, transmute
unsafe-checker
Layer 2 Skills (Design Choices)
Pattern Category Route To
domain model, business logic m09 m09-domain
performance, optimization, benchmark m10 m10-performance
integration, interop, bindings m11 m11-ecosystem
resource lifecycle, RAII, Drop m12 m12-lifecycle
domain error, recovery strategy m13 m13-domain-error
mental model, how to think m14 m14-mental-model
anti-pattern, common mistake, pitfall m15 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 Layer Route To Common Cause
E0382 L1 m01-ownership Use of moved value
E0597 L1 m01-ownership Lifetime too short
E0506 L1 m01-ownership Cannot assign to borrowed
E0507 L1 m01-ownership Cannot move out of borrowed
E0515 L1 m01-ownership Return local reference
E0716 L1 m01-ownership Temporary value dropped
E0106 L1 m01-ownership Missing lifetime specifier
E0596 L1 m03-mutability Cannot borrow as mutable
E0499 L1 m03-mutability Multiple mutable borrows
E0502 L1 m03-mutability Borrow conflict
E0277 L1 m04/m07 Trait bound not satisfied
E0308 L1 m04-zero-cost Type mismatch
E0599 L1 m04-zero-cost No method found
E0038 L1 m04-zero-cost Trait not object-safe
E0433 L1 m11-ecosystem Cannot find crate/module
Unsafe-Specific Routing
For detailed unsafe rules, route to unsafe-checker skill:
Pattern Route To
unsafe code review, SAFETY comment unsafe-checker
FFI, extern "C", C interop, libc unsafe-checker
raw pointer, *mut, *const, NonNull unsafe-checker
transmute, union, repr(C) unsafe-checker
MaybeUninit, uninitialized memory unsafe-checker
panic safety, double-free unsafe-checker
Send impl, Sync impl, manual auto-traits unsafe-checker
Functional Routing Table
Pattern Route To Action
latest version, what's new rust-learner Use agents
API, docs, documentation docs-researcher Use agent
Cargo.toml, dependencies dynamic-skills Suggest /sync-crate-skills
code style, naming, clippy coding-guidelines Read skill
unsafe code, FFI unsafe-checker Read skill
code review os-checker Suggest /rust-review
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
Skill File Paths
Meta-Cognition Framework
_meta/reasoning-framework.md # How to trace through layers _meta/layer-definitions.md # Layer definitions _meta/externalization.md # Cognitive externalization _meta/error-protocol.md # 3-Strike escalation rule _meta/hooks-patterns.md # Automatic triggers
Layer 1 Skills (Language Mechanics)
skills/m01-ownership/SKILL.md skills/m02-resource/SKILL.md skills/m03-mutability/SKILL.md skills/m04-zero-cost/SKILL.md skills/m05-type-driven/SKILL.md skills/m06-error-handling/SKILL.md skills/m07-concurrency/SKILL.md
Layer 2 Skills (Design Choices)
skills/m09-domain/SKILL.md skills/m10-performance/SKILL.md skills/m11-ecosystem/SKILL.md skills/m12-lifecycle/SKILL.md skills/m13-domain-error/SKILL.md skills/m14-mental-model/SKILL.md skills/m15-anti-pattern/SKILL.md
Layer 3 Skills (Domain Constraints)
skills/domain-fintech/SKILL.md skills/domain-ml/SKILL.md skills/domain-cloud-native/SKILL.md skills/domain-iot/SKILL.md skills/domain-web/SKILL.md skills/domain-cli/SKILL.md skills/domain-embedded/SKILL.md
OS-Checker Integration
For code review and security auditing:
Use Case Command Tools
Daily check /rust-review
clippy
Security audit /audit security
cargo audit, geiger
Unsafe audit /audit safety
miri, rudra
Concurrency audit /audit concurrency
lockbud
Full audit /audit full
all os-checker tools
Workflow Example with Meta-Cognition
User: "Why am I getting E0382 in my trading system?"
Analysis:
- Entry: Layer 1 (E0382 = ownership/move error)
- Load: m01-ownership skill
- Context: "trading system" → domain-fintech
Trace UP ↑:
- E0382 in trading context
- Check domain-fintech: "immutable audit records"
- Finding: Trading data should be shared, not moved
Response: "E0382 indicates a value was moved when still needed. In a trading system (domain-fintech), transaction records should be immutable and shareable for audit purposes.
Instead of cloning, consider:
- Arc<TradeRecord> for shared immutable access
- This aligns with financial audit requirements
See: m01-ownership (Trace Up section), domain-fintech (Audit Requirements)"