An agentic skills framework & software development methodology that works.
Rust skill pack for Claude Code and other agents
This repo packages Rust guidance as a skill an agent can load while working on code. The rules are split into small Markdown files by topic, so the agent can read only the relevant guidance for borrowing, async, errors, tests, docs, and more.
Builders who want their coding agent to follow Rust idioms, avoid common mistakes, and keep reviews focused on the right rules.
You can get more consistent Rust code reviews and code generation without re-explaining the same language rules every time.
What it does
Rule index for fast loading
`SKILL.md` lists all rules by category so an agent can find the right guidance quickly.
One file per rule
`rules/` contains focused Markdown files such as `async-no-lock-await.md` and `err-no-unwrap-prod.md`.
Cross-agent install paths
The README shows setup paths for Claude Code, Codex, Cursor, Windsurf, Copilot, and other skill-aware agents.
Validation scripts
`checks/` includes scripts like `check.sh`, `validate.py`, and generators for keeping the rule set in sync.
Shared agent instructions
`AGENTS.md` and `CLAUDE.md` reuse the same skill content so multiple agent conventions point to one source.
How to get it
- 1Run
npx add-skill leonardomso/rust-skills
- 2After installing, just ask your agent
/rust-skills review this function
- 3Run
/rust-skills is my error handling idiomatic?
- 4Run
/rust-skills check for memory issues
- 5Run
/rust-skills is this unsafe block sound?
- 6Global (applies to all projects)
git clone https://github.com/leonardomso/rust-skills.git ~/.claude/skills/rust-skills
README
Rust Skills
265 Rust rules your AI coding agent can use to write better code. Current for Rust 1.96 (2024 edition).
Works with Claude Code, Cursor, Windsurf, Copilot, Codex, Aider, Zed, Amp, Cline, and pretty much any other agent that supports skills.
Why
Out of the box, coding agents write average Rust — they clone to dodge the borrow checker, .unwrap() everything, and reach for Box<dyn Trait> when impl Trait would do. These rules encode what expert Rust actually looks like: idiomatic, fast, and safe. Each rule is small and focused, so the agent pulls in only what's relevant to the code in front of it.
Install
npx add-skill leonardomso/rust-skills
That's it. The CLI figures out which agents you have and installs the skill to the right place.
How to use it
After installing, just ask your agent:
/rust-skills review this function
/rust-skills is my error handling idiomatic?
/rust-skills check for memory issues
/rust-skills is this unsafe block sound?
The agent loads the relevant rules and applies them to your code.
See it in action
Ask the agent to review a function like this:
// before
fn first_word(s: &String) -> String {
s.clone().split_whitespace().next().unwrap().to_string()
}
With these rules loaded, it knows to take &str instead of &String, drop the
needless clone() and allocation, and return an Option instead of panicking:
// after — applies own-slice-over-vec, own-borrow-over-clone, anti-unwrap-abuse
fn first_word(s: &str) -> Option<&str> {
s.split_whitespace().next()
}
What's in here
265 rules split into 26 categories:
| Category | Rules | What it covers |
|---|---|---|
| Ownership & Borrowing | 12 | When to borrow vs clone, Arc/Rc, lifetimes |
| Error Handling | 12 | thiserror for libs, anyhow for apps, the ? operator |
| Memory | 17 | SmallVec, arenas, avoiding allocations, mem::take, drop order |
| Unsafe Code | 7 | SAFETY: comments, Miri, MaybeUninit, 2024-edition unsafe |
| API Design | 17 | Builder pattern, newtypes, sealed traits, FromIterator |
| Async | 18 | Tokio patterns, channels, async fn in traits, cancel safety |
| Concurrency | 4 | rayon, scoped threads, atomic ordering, thread-locals |
| Optimization | 12 | LTO, inlining, PGO, SIMD |
| Numeric & Arithmetic | 5 | Overflow handling, as vs TryFrom, float compare, NonZero |
| Type Safety | 13 | Newtypes, parse don't validate, Deref, Display/Debug |
| Trait & Generics Design | 6 | dyn vs generic, associated types, blanket impls, object safety, orphan rule |
| Conversions | 3 | TryFrom, FromStr, AsMut |
| Const & Compile-Time | 4 | const fn, const vs static, const generics, const {} blocks |
| Serde | 8 | rename_all, default, flatten, enum tagging, validate-on-deserialize |
| Pattern Matching | 5 | let-else, matches!, if-let chains, exhaustive matches |
| Macros | 8 | macro_rules! hygiene, fragment specifiers, proc-macros with syn/quote |
| Closures | 5 | Fn/FnMut/FnOnce bounds, returning impl Fn, move & disjoint capture |
| Collections | 4 | HashMap/BTreeMap/IndexMap, Vec/VecDeque, sets, BinaryHeap |
| Naming | 16 | Following Rust API Guidelines |
| Testing | 15 | Proptest, mockall, criterion, loom, snapshot tests |
| Docs | 12 | Doc examples, intra-doc links, README/crate-doc unification |
| Observability | 7 | tracing over log, spans, structured fields, redacting secrets |
| Performance | 13 | Iterators, entry API, faster hashers, I/O buffering |
| Project Structure | 14 | Workspaces, module layout, features, MSRV |
| Linting | 13 | Clippy config, CI setup, unexpected_cfgs |
| Anti-patterns | 15 | Common mistakes and how to fix them |
Each rule has:
- Why it matters
- A bad code example
- A good code example
- Links to related rules and sources
How it works
The design is built for low token cost and easy auditing:
SKILL.mdis a lightweight index — every rule listed as a one-line summary, grouped by category, with a link to its file. The agent reads this first.rules/holds one Markdown file per rule (<prefix>-<name>.md). The agent opens only the handful relevant to your code instead of loading all 218 — progressive disclosure keeps context small.- Prefixes (
own-,err-,unsafe-,async-, …) map directly to categories, so an agent reviewing async code can pull justasync-,conc-, andown-rules.
CLAUDE.md and AGENTS.md are symlinks to SKILL.md, so the same content works across agent conventions.
Manual install
If add-skill doesn't work for your setup, here's how to install manually:
Claude Code
Global (applies to all projects):
git clone https://github.com/leonardomso/rust-skills.git ~/.claude/skills/rust-skills
Or just for one project:
git clone https://github.com/leonardomso/rust-skills.git .claude/skills/rust-skills
OpenCode
git clone https://github.com/leonardomso/rust-skills.git .opencode/skills/rust-skills
Cursor
git clone https://github.com/leonardomso/rust-skills.git .cursor/skills/rust-skills
Or just grab the skill file:
curl -o .cursorrules https://raw.githubusercontent.com/leonardomso/rust-skills/master/SKILL.md
Windsurf
mkdir -p .windsurf/rules
curl -o .windsurf/rules/rust-skills.md https://raw.githubusercontent.com/leonardomso/rust-skills/master/SKILL.md
OpenAI Codex
git clone https://github.com/leonardomso/rust-skills.git .codex/skills/rust-skills
Or use the AGENTS.md standard:
curl -o AGENTS.md https://raw.githubusercontent.com/leonardomso/rust-skills/master/SKILL.md
GitHub Copilot
mkdir -p .github
curl -o .github/copilot-instructions.md https://raw.githubusercontent.com/leonardomso/rust-skills/master/SKILL.md
Aider
Add to .aider.conf.yml:
read: path/to/rust-skills/SKILL.md
Or pass it directly:
aider --read path/to/rust-skills/SKILL.md
Zed
curl -o AGENTS.md https://raw.githubusercontent.com/leonardomso/rust-skills/master/SKILL.md
Amp
git clone https://github.com/leonardomso/rust-skills.git .agents/skills/rust-skills
Cline / Roo Code
mkdir -p .clinerules
curl -o .clinerules/rust-skills.md https://raw.githubusercontent.com/leonardomso/rust-skills/master/SKILL.md
Other agents (AGENTS.md)
If your agent supports the AGENTS.md standard:
curl -o AGENTS.md https://raw.githubusercontent.com/leonardomso/rust-skills/master/SKILL.md
All rules
See SKILL.md for the full list with links to each rule file.
Sources & attribution
These rules are an independent synthesis of official Rust guidance, well-known books, and patterns drawn from widely-used open-source crates. They are not affiliated with or endorsed by the Rust project or any crate author. The text and code examples are original summaries — no substantial content is copied from the sources below.
Official Rust documentation
- The Rust Reference
- Rust API Guidelines
- The Rustonomicon (unsafe code)
- Rust 2024 Edition Guide
- The Cargo Book
- Standard library docs and release notes
Books & guides
- The Rust Performance Book — Nicholas Nethercote
- Rust Design Patterns — rust-unofficial
- Rust Atomics and Locks — Mara Bos
- Effective Rust — David Drysdale
Tooling
Real-world codebases studied for idioms
- ripgrep, tokio, serde, clap, polars, axum, cargo, hyper, bevy, rayon, and dtolnay's crates (thiserror, anyhow, syn)
This project is MIT-licensed. Referenced upstream materials remain under their own licenses — the official Rust documentation and API Guidelines are dual MIT / Apache-2.0.
Contributing
PRs welcome. To add or change a rule:
- Create
rules/<prefix>-<name>.mdusing akebab-caseid with an existing category prefix (own-,err-,mem-, …). - Follow the format of existing rules: a
>one-line summary, then## Why It Matters,## Bad,## Good, and## See Also(with links that resolve). - Make sure code examples compile on current stable Rust.
- Add the rule to the index in
SKILL.md(Quick Reference list + the category count) so it stays in sync.
# prefix-rule-name
> One-line imperative summary.
## Why It Matters
Two to four sentences.
## Bad
```rust
// the anti-pattern
```
## Good
```rust
// the recommended pattern
```
## See Also
- [other-rule](other-rule.md) - why it's related
License
MIT
Files in the repo
- .github
- checks
- rules
- AGENTS.md
- CHANGELOG.md
- CLAUDE.md
- CONTRIBUTING.md
- LICENSE
- README.md
- SKILL.md
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More skills

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.
Topic in, narrated explainer video out. A Claude Code / Codex skill that turns any topic into a black-canvas motion-graphics explainer video with TTS voiceover, subtitles and a chapter progress bar. Chinese or English; every frame drawn in code with Remotion.
Public repository for Agent Skills
Open-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)

Production-grade engineering skills for AI coding agents.