其他
Rust 问题按 L1/L2/L3…
适用于所有 Rust 提问,尤其是编译错误、所有权/借用/生命周期、设计选择、比较/最佳实践、领域应用和性能问题。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 38/100 ×0.15
适用场景
Rust 问题按 L1/L2/L3 认知特定
解决思路
- 不要直接回答;先追踪认知层。
- Layer 3 领域约束(WHY):处理业务规则、法规要求,以及 domain-fintech、domain-web、domain-cli 等,回答“为什么这样设计?”
- Layer 2 设计选择(WHAT):处理架构模式、DDD 概念,以及 m09-m15 技能,回答“应使用什么模式?”
- Layer 1 语言机制(HOW):处理所有权、借用、生命周期、trait,以及 m01-m07 技能,回答“如何在 Rust 中实现?”
- 按入口点路由:用户信号 E0xxx 错误时,入口 Layer 1,方向 Trace UP ↑,首个技能 m01-m07。
- 编译错误:入口 Layer 1,方向 Trace UP ↑,使用错误码路由表。
- 用户信号“How to design...”:入口 Layer 2,先检查 L3,再 DOWN ↓,首个技能 m09-domain。
- 用户信号“Building [domain] app”:入口 Layer 3,Trace DOWN ↓,首个技能 domain-*。
- 用户信号“Best practice...”:入口 Layer 2,双向,首个技能 m09-m15。
- 性能问题:入口 Layer 1 → 2,先 UP 再 DOWN,首个技能 m10-performance。
- 当存在领域关键词时,必须同时加载 BOTH 技能:加载对应 L1 技能和 L3 技能。
- Web API、HTTP、axum、handler:L1 加载 m07-concurrency,L3 加载 domain-web。
- 交易、支付、trading、payment:L1 加载 m01-ownership,L3 加载 domain-fintech。
- CLI、terminal、clap:L1 加载 m07-concurrency,L3 加载 domain-cli。
- kubernetes、grpc、microservice:L1 加载 m07-concurrency,L3 加载 domain-cloud-native。
- embedded、no_std、MCU:L1 加载 m02-resource,L3 加载 domain-embedded。
- 回答前检查是否要求协商协议。
- 查询包含“比较”“对比”“compare”“vs”“versus”时,必须使用协商。
- 查询包含“最佳实践”“best practice”时,必须使用协商。
- Domain + error(例如“交易系统 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"。
- 创建新 Rust 项目或 Cargo.toml 时,始终使用 rust-version = "1.85"。
- 创建新 Rust 项目或 Cargo.toml 时,始终使用 [lints.rust] unsafe_code = "warn"。
- 创建新 Rust 项目或 Cargo.toml 时,始终使用 [lints.clippy] all = "warn"。
- 创建新 Rust 项目或 Cargo.toml 时,始终使用 [lints.clippy] pedantic = "warn"。
- Layer 1 路由:move、borrow、lifetime、E0382、E0597 路由到 m01-ownership。
- Layer 1 路由:Box、Rc、Arc、RefCell、Cell 路由到 m02-resource。
- Layer 1 路由:mut、interior mutability、E0499、E0502、E0596 路由到 m03-mutability。
- Layer 1 路由:generic、trait、inline、monomorphization 路由到 m04-zero-cost。
- Layer 1 路由:type state、phantom、newtype 路由到 m05-type-driven。
- Layer 1 路由:Result、Error、panic、?、anyhow、thiserror 路由到 m06-error-handling。
- Layer 1 路由:Send、Sync、thread、async、channel 路由到 m07-concurrency。
- Layer 1 路由:unsafe、FFI、extern、raw pointer、transmute 路由到 unsafe-checker。
- Layer 2 路由:domain model、business logic 路由到 m09-domain。
- Layer 2 路由:performance、optimization、benchmark 路由到 m10-performance。
- Layer 2 路由:integration、interop、bindings 路由到 m11-ecosystem。
- Layer 2 路由:resource lifecycle、RAII、Drop 路由到 m12-lifecycle。
- Layer 2 路由:domain error、recovery strategy 路由到 m13-domain-error。
- Layer 2 路由:mental model、how to think 路由到 m14-mental-model。
- Layer 2 路由:anti-pattern、common mistake、pitfall 路由到 m15-anti-pattern。
- Layer 3 路由:fintech、trading、decimal、currency 路由到 domain-fintech。
- Layer 3 路由:ml、tensor、model、inference 路由到 domain-ml。
- Layer 3 路由:kubernetes、docker、grpc、microservice 路由到 domain-cloud-native。
- Layer 3 路由:embedded、sensor、mqtt、iot 路由到 domain-iot。
- Layer 3 路由:web server、HTTP、REST、axum、actix 路由到 domain-web。
- Layer 3 路由:CLI、command line、clap、terminal 路由到 domain-cli。
- Layer 3 路由: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/module。
- 功能路由:latest version、what's new 路由到 rust-learner,使用 agents。
- 功能路由:API、docs、documentation 路由到 docs-researcher,使用 agent。
- 功能路由:code style、naming、clippy 路由到 coding-guidelines,阅读 skill。
- 功能路由:unsafe code、FFI 路由到 unsafe-checker,阅读 skill。
- 功能路由:code review 路由到 os-checker,见 integrations/os-checker.md。
- 优先级顺序第 1 步:识别认知层(L1/L2/L3)。
- 优先级顺序第 2 步:加载入口技能(m0x/m1x/domain)。
- 优先级顺序第 3 步:沿层追踪(UP 或 DOWN)。
- 优先级顺序第 4 步:按“Trace”部分交叉引用技能。
- 优先级顺序第 5 步:用推理链回答。
- 关键词冲突解决:unsafe 路由到 unsafe-checker(比 m11 更具体)。
- 关键词冲突解决:error 一般用 m06,领域特定用 m13。
- 关键词冲突解决:RAII 设计用 m12,实现用 m01。
- 关键词冲突解决:crate 版本用 rust-learner,集成用 m11。
- 关键词冲突解决:tokio API 用 tokio-*,概念用 m07。
- 优先级层级第 1 级:错误码(E0xxx)直接查找,最高优先级。
- 优先级层级第 2 级:协商触发(compare、vs、best practice)启用协商。
- 优先级层级第 3 级:领域关键词 + 错误时加载 BOTH 领域 + 错误技能。
- 优先级层级第 4 级:特定 crate 关键词,若存在则路由到 crate 特定技能。
- 优先级层级第 5 级:一般概念关键词,路由到元问题技能。
- 需要时查阅 examples/workflow.md 查看工作流示例。
- 需要时查阅 integrations/os-checker.md 了解 OS-Checker 集成。
适用边界 · 注意事项
- 非 Rust 问题,或没有 Cargo.toml/*.rs 上下文且与 Rust 无关时,不适用。
- 环境未安装/不具备所列子技能(m01-m15、domain-*、unsafe-checker、rust-learner、docs-researcher、coding-guidelines、os-checker)时,无法按路由表加载对应技能。
- 仅需简单事实、版本或 API 查询且无需协商/分层追踪时,可只走功能路由,不必强制完整三层追踪。