Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when Rust code fails to compile, Clippy reports lints, borrow checker errors appear, lifetimes are unclear, or cargo diagnostics need systematic triage.
.claude/skills/mkurman-rust-compiler-diagnostics/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | 114% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-10 | ✓→✓ | = Same ✓ | -7% | 0% |
| case-16 | ✓→✓ | = Same ✓ | 20% | 0% |
Use this skill to resolve Rust compiler and Clippy diagnostics without guessing.
cargo check -p <crate> or a focused test.rust// Avoid: `self.items` is immutably borrowed while mutating `self`. if let Some(item) = self.items.get(id) { self.record_access(item.name()); } // Prefer: extract the needed owned value, ending the borrow. let name = self.items.get(id).map(|item| item.name().to_owned()); if let Some(name) = name { self.record_access(&name); }
rustif let Some(task) = self.pending_task.take() { task.cancel().await; }
Use Option::take when a field must be moved out while leaving the struct in a valid state.
rust// Avoid: `&self` cannot be moved into a 'static task. tokio::spawn(async move { self.refresh().await; }); // Prefer: clone the owned handle needed by the task. let client = self.client.clone(); tokio::spawn(async move { client.refresh().await; });
#[allow(...)] only near the smallest scope and include a short reason when the lint is intentionally violated.unwrap_used, expect_used, panic, or lossy conversion lints in production paths without confirming the project policy.rust#[allow(clippy::too_many_arguments, reason = "constructor mirrors the wire protocol fields")] pub fn from_wire(/* fields */) -> Self { // ... }
Read references/error-triage.md for common diagnostic families and repair patterns.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-10 | pass→pass | 14,988 | 9,033 | -40% | 1 | 1 | 0% | 2,173 | 2,027 | -7% | 0 | 0 | — |
case-15 | fail→pass | 3,965 | 3,185 | -20% | 1 | 1 | 0% | 562 | 1,201 | +114% | 0 | 0 | — |
case-16 | pass→pass | 15,956 | 14,559 | -9% | 1 | 1 | 0% | 2,314 | 2,787 | +20% | 0 | 0 | — |
case-17 | fail→pass | 12,138 | 9,643 | -21% | 1 | 1 | 0% | 2,026 | 2,349 | +16% | 0 | 0 | — |
case-01 | fail→pass | 10,333 | 5,436 | -47% | 1 | 1 | 0% | 1,748 | 1,607 | -8% | 0 | 0 | — |
case-02 | pass→pass | 10,245 | 6,797 | -34% | 1 | 1 | 0% | 1,718 | 1,791 | +4% | 0 | 0 | — |
case-03 | pass→pass | 8,350 | 3,579 | -57% | 1 | 1 | 0% | 1,398 | 1,231 | -12% | 0 | 0 | — |
case-04 | pass→pass | 12,645 | 6,904 | -45% | 1 | 1 | 0% | 2,282 | 1,895 | -17% | 0 | 0 | — |
case-05 | pass→pass | 6,097 | 4,656 | -24% | 1 | 1 | 0% | 1,315 | 1,592 | +21% | 0 | 0 | — |
case-06 | pass→pass | 12,339 | 7,649 | -38% | 1 | 1 | 0% | 2,211 | 1,931 | -13% | 0 | 0 | — |
case-07 | pass→pass | 18,369 | 11,054 | -40% | 1 | 1 | 0% | 3,069 | 2,579 | -16% | 0 | 0 | — |
case-08 | pass→pass | 13,268 | 8,943 | -33% | 1 | 1 | 0% | 2,312 | 2,121 | -8% | 0 | 0 | — |
case-09 | fail→fail | 17,135 | 10,882 | -36% | 1 | 1 | 0% | 2,747 | 2,472 | -10% | 0 | 0 | — |
case-11 | pass→pass | 15,077 | 23,444 | +55% | 1 | 1 | 0% | 2,363 | 2,876 | +22% | 0 | 0 | — |
case-12 | fail→fail | 13,093 | 7,371 | -44% | 1 | 1 | 0% | 2,025 | 1,861 | -8% | 0 | 0 | — |
case-13 | pass→pass | 8,436 | 3,198 | -62% | 1 | 1 | 0% | 1,449 | 1,121 | -23% | 0 | 0 | — |
case-14 | pass→pass | 13,247 | 10,708 | -19% | 1 | 1 | 0% | 2,219 | 2,483 | +12% | 0 | 0 | — |
case-18 | pass→pass | 8,316 | 5,246 | -37% | 1 | 1 | 0% | 1,360 | 1,515 | +11% | 0 | 0 | — |
case-19 | pass→pass | 7,117 | 4,311 | -39% | 1 | 1 | 0% | 1,151 | 1,452 | +26% | 0 | 0 | — |
case-20 | pass→pass | 10,675 | 8,960 | -16% | 1 | 1 | 0% | 1,930 | 2,334 | +21% | 0 | 0 | — |
case-21 | pass→pass | 5,886 | 5,546 | -6% | 1 | 1 | 0% | 967 | 1,470 | +52% | 0 | 0 | — |
case-22 | pass→pass | 3,481 | 2,711 | -22% | 1 | 1 | 0% | 587 | 1,097 | +87% | 0 | 0 | — |
case-23 | pass→pass | 6,031 | 4,204 | -30% | 1 | 1 | 0% | 984 | 1,190 | +21% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +13 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.