Use when writing, modifying, or reviewing Rust code. ALWAYS invoke before Rust edits; covers Microsoft Pragmatic Rust guidance for error handling, API design, performance, and idiomatic patterns.
SkillScore96Maintained
Automatic
◆Coding pack
Last verified 8/24/2026
What it changes
Passed 24 of 25 test cases with the skill, and 18 of 25 without it.
Without skill72%
With skill96%
Checks it passed that the model alone missed
Custom error enums derive thiserror::Error.
Error propagation calls the .context() method.
The CLI binary error handling uses anyhow::Result.
and 4 more in the full report
6 fixed18 passed either way1 still failing0 broke
Pass-rate lift
+24 pp
Tokens
+23%
Agent turns
0%
Response time
-25%
Model gemini-3.6-flashMeasured 8/24/2026v124 of 25 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 6 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 6
Prompt
I am writing a helper function in Rust that prints a list of tags. I want callers to be able to pass a `&[&str]`, `Vec<String>`, or custom iterator of string references without allocating memory or converting types. How should the function parameter be declared?
What was checked, without and with the skill
Checked
Without skill
With skill
The helper function parameter is typed as impl IntoIterator<Item = impl AsRef<str>>.
Missed
Passed
case-25 · gemini-3.6-flash · 8/24/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md155 lines2 files
Rust Best Practices
Based on Microsoft Pragmatic Rust Guidelines and Rust community standards.
Core Principles
Leverage the type system — Use types to make invalid states unrepresentable
Embrace ownership — Work with the borrow checker, not against it
Explicit over implicit — Be clear about fallibility, mutability, and lifetimes
Zero-cost abstractions — Use iterators, generics, and traits without runtime cost