rust-review
Skill1.8k starsChanged 12 days agoMITView on GitHub
Review existing Rust code for idiom, API design, error handling, safety, and maintainability, and produce a prioritized report where every finding cites the rule it breaks and gives a concrete fix. Use this whenever the user asks to review, audit, critique, grade, or "check" Rust code, a crate, a module, a .rs file, a diff, or a pull request, or asks what is wrong with their Rust or how to make it more idiomatic, even if they don't say "review". Pairs with the rust-best-practices skill, which covers writing new code.
13 other projects use a version of this, 3 of them edited; 2 new projects in the last 4 weeks, against 0 the 4 before.
Adopted by
Surging: 2 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- XGENT-ai/skillsedited, first seen Nov 8, 2026
- po4yka/rust-skillstheir own version, first seen Nov 8, 2026
- inference-gateway/skillstheir own version, first seen Nov 5, 2026
- kabudu/engineering-agent-skillstheir own version, first seen Nov 1, 2026
- fedemelo/agent-configedited, first seen Nov 1, 2026
- tuan3w/herdr-mobileedited, first seen Nov 1, 2026
Who's talking about morganlinton/BeautifulRust
- Beeknoee AI“Beautiful Rust: repo 3 ngày hơn 1.000 sao dạy AI viết Rust chuẩn — và người viết nó là Claude”YouTube · Oct 27, 2026 · 3.1k views
- Daksh“AI Now Writes Perfect Rust Code #shorts”YouTube · Oct 29, 2026 · 975 views
- 오늘 뜬 레포“AI는 면허만 있고 연수가 없다 | BeautifulRust”YouTube · Oct 30, 2026 · 943 views
- No Short Answers“Can AI write beautiful Rust? #shorts”YouTube · Oct 27, 2026 · 181 views
- Alex Hitt“BeautifulRust GitHub Explained: Agent Skills for Idiomatic Rust Code”YouTube · Oct 27, 2026 · 180 views
The biggest 5 of 51 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 51
Talked about on GitHub, YouTube and the web (51 times).
On GitHub · 34
- Nov 9, 2026codex-plugins.github.morganlinton.beautifulrust: init at 1.6.0 — sudosubin/agents.nix0 reactions
- Nov 8, 2026codex-marketplaces.github.morganlinton.beautifulrust: 1.5.0 → 1.6.0 — sudosubin/agents.nix0 reactions
- Nov 8, 2026agent-skills.github.morganlinton.beautifulrust: 1.5.0 → 1.6.0 — sudosubin/agents.nix0 reactions
- Nov 8, 2026claude-code-marketplaces.github.morganlinton.beautifulrust: 1.5.0 → 1.6.0 — sudosubin/agents.nix0 reactions
- Nov 8, 2026claude-code-plugins.github.morganlinton.beautifulrust: 1.5.0 → 1.6.0 — sudosubin/agents.nix0 reactions
29 more on GitHub
- Nov 8, 2026agent-plugins.github.morganlinton.beautifulrust: 1.5.0 → 1.6.0 — sudosubin/agents.nix0 reactions
- Nov 7, 2026Import: Trail of Bits rust-review and BeautifulRust — LeszekKantorek/skills-library0 reactions
- Nov 6, 2026Simplify code to follow Rust idioms — dwim-sh/dwim0 reactions
- Nov 2, 2026flake: bump the flake-inputs group across 1 directory with 16 updates — vidhanio/vidhanix0 reactions
- Nov 2, 2026Promo kit — week of 02 Nov 2026 — pahadiji/star-catcher0 reactions
- Nov 1, 2026agent-plugins.github.morganlinton.beautifulrust: init at 1.5.0 — sudosubin/agents.nix0 reactions
- Nov 1, 2026codex-marketplaces.github.morganlinton.beautifulrust: init at 1.5.0 — sudosubin/agents.nix0 reactions
- Oct 30, 2026flake: bump the flake-inputs group across 1 directory with 8 updates — vidhanio/vidhanix0 reactions · 1 comment
- Oct 30, 2026Investigate the Beautiful Rust Claude skills for Rust workers — Glubiz/zirv-cli0 reactions
- Oct 30, 2026claude-code-plugins.github.morganlinton.beautifulrust: 1.4.0 → 1.5.0 — sudosubin/agents.nix0 reactions
- Oct 30, 2026agent-skills.github.morganlinton.beautifulrust: 1.4.0 → 1.5.0 — sudosubin/agents.nix0 reactions
- Oct 30, 2026claude-code-marketplaces.github.morganlinton.beautifulrust: 1.4.0 → 1.5.0 — sudosubin/agents.nix0 reactions
- Oct 30, 2026Update Rust coding guidelines — Cosmian/kms0 reactions · 1 comment
- Oct 29, 2026[m23] Idiomatic Rust lints — fahchen/pbeam0 reactions
- Oct 28, 2026claude-code-plugins.github.morganlinton.beautifulrust: init at 1.4.0 — sudosubin/agents.nix0 reactions
- Oct 28, 2026claude-code-marketplaces.github.morganlinton.beautifulrust: init at 1.4.0 — sudosubin/agents.nix0 reactions
- Oct 28, 2026flake: bump the flake-inputs group across 1 directory with 16 updates — vidhanio/vidhanix0 reactions · 2 comments
- Oct 27, 2026flake: bump the flake-inputs group across 1 directory with 14 updates — vidhanio/vidhanix0 reactions · 1 comment
- Oct 27, 2026flake: bump the flake-inputs group across 1 directory with 13 updates — vidhanio/vidhanix0 reactions · 1 comment
- Oct 27, 2026scan: 2026-10-27 daily discovery — mattbutlerengineering/ai-tooling0 reactions
- Oct 26, 2026Adopt BeautifulRust's clippy configuration and rust-review skill — imaimai17468/hypersig0 reactions
- Oct 26, 2026chore: adopt the BeautifulRust lint config — wormholesystems/wormholesystems0 reactions
- Oct 26, 2026Promo kit — week of 26 Oct 2026 — pahadiji/star-catcher0 reactions
- Oct 26, 2026agent-skills.github.morganlinton.beautifulrust: 1.2.0 → 1.4.0 — sudosubin/agents.nix0 reactions
- Oct 26, 2026[Candidate] morganlinton/beautifulrust/skills/rust-port - rust-port — ProSkillsMD/proskills0 reactions · 1 comment
- Oct 25, 2026Make exported note filenames safe on macOS, Linux and Windows — qoodeng/dahlia0 reactions
- Oct 25, 2026agent-skills.github.morganlinton.beautifulrust: init at 1.2.0 — sudosubin/agents.nix0 reactions
- Oct 25, 2026[Candidate] morganlinton/beautifulrust/skills/rust-review - rust-review — ProSkillsMD/proskills0 reactions · 1 comment
- Oct 24, 2026[Candidate] morganlinton/beautifulrust/skills/rust-best-practices - rust-best-practices — ProSkillsMD/proskills0 reactions · 1 comment
On YouTube · 15
- Oct 27, 2026Beautiful Rust: repo 3 ngày hơn 1.000 sao dạy AI viết Rust chuẩn — và người viết nó là Claude — Beeknoee AI3.1k views · 4 comments
- Oct 29, 2026AI Now Writes Perfect Rust Code #shorts — Daksh975 views
- Oct 30, 2026AI는 면허만 있고 연수가 없다 | BeautifulRust — 오늘 뜬 레포943 views
- Oct 27, 2026Can AI write beautiful Rust? #shorts — No Short Answers181 views · 1 comment
- Oct 27, 2026BeautifulRust GitHub Explained: Agent Skills for Idiomatic Rust Code — Alex Hitt180 views
10 more on YouTube
- Oct 27, 2026🔥 ИИ проверяет решения, идиоматичный Rust с ИИ и картинки из узлов - находки GitHub #shorts #github — GitHub HighLights172 views
- Oct 26, 2026Your agent writes Rust that compiles, with public struct fields and unwrap inside the doc examples. — gitpeek119 views
- Oct 26, 2026Make Claude write idiomatic Rust instantly 🤖 — LookOnThisGit112 views · 1 comment
- Oct 29, 2026Uncle Bob ki AI Skill: Claude Code ab Clean Code likhega | ub-mode, tstack, Beautiful Rust (Hindi) — tech how it works44 views
- Nov 1, 2026Your AI writes bad Rust. This free skill fixes it (Beautiful Rust) — RocketLauncher Code42 views
- Oct 30, 2026【BeautifulRust】Codex に Rust 作法スキルを置くだけで自分から読んで作法の警告が 17→6 に減った|テストと素の clippy は入れなくても満点だった — さつきのOSS研究室32 views · 1 comment
- Oct 26, 2026【GitHub AIデイリー】2026-10-27(火) 首位は2日連続/magpieが2位 — シンオン株式会社 (Synon,Inc) 公式31 views
- Oct 31, 2026Esta skill de Claude escribe Rust bonito y sin unwrap 🦀 Beautiful Rust — BarbuPrime IA | Claude Code Vs Codex21 views · 1 comment
- Nov 1, 2026Beautiful Rust: skills que ensinam agentes a escrever Rust idiomático — Byte Cortes9 views
- Oct 25, 2026【GitHub AIデイリー】2026-10-26(月) 首位が交代/opuscarが2位に — シンオン株式会社 (Synon,Inc) 公式8 views
On the web · 2
- Nov 3, 2026Beautiful Rust: Claude Skills for Idiomatic Rust Code — prompthackers.co
- Oct 27, 2026BeautifulRust: 3 Agent Skills for Idiomatic Rust (2026) | explainx.ai Blog | explainx.ai — explainx.ai
Used with
Projects with it also use python-review and tdd.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
kingsidharthSkillpython-review
Also in 3 projects that use this
GoogleSkilltdd
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
Also in 3 projects that use this
Other versions13 projects use a version of this.
Word for word · 0
None found.
Edited · 3
- tuan3w/herdr-mobile★ 2999% same
- fedemelo/agent-config★ 497% same
- XGENT-ai/skills★ 1100% same
Wrote their own version · 10
- cloudflare/workerd★ 9.1ksame name
- fallow-rs/fallow★ 5.3ksame name
- po4yka/rust-skills★ 5same name
- jscott3201/yet-more-skills★ 4same name
- inference-gateway/skills★ 3same name
- kabudu/engineering-agent-skills★ 3same name
- BenSchZA/skills★ 1same name
- hdprajwal/agent-skills★ 1same name
- TheKREATORS/my-claude-skills★ 1same name
- tslateman/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository2 other files it gives its agents.
- rust-best-practicesSkill
- rust-portSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 3 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 24
Library or application: Check for a lib.rs, pub items used by other crates, or a published Cargo.toml.
- Very specific: line 30
Frameworks: If the crate depends on bevy or bevy_ecs, read the Bevy digest (bevy.md) in the rust-best-practices skill's references first.
- Distinctive: line 37
If a Rust toolchain is available, run these from the crate root and fold the results into the report.
- Distinctive: line 46
Don't paste raw clippy output.
- Very specific: line 100
Check-then-unwrap (if x.is_some() { x.unwrap() }), and match where a combinator is clearer, or the reverse.
- Distinctive: line 167
Respect intent: If something looks deliberate, such as a documented quirk or a comment explaining it, mention it under Consider with the …
- Very specific: line 177
If the project lacks a [lints] table, end the report by suggesting the BeautifulRust lints config (lints/lints.toml and lints/clippy.toml …
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Rust review
Review Rust code against the same rules the rust-best-practices skill uses for writing
it, and report what to change. The output is a review, not a rewrite: the reader decides
what to fix. Only rewrite code when the user asks for that.
1. Decide the scope
- What to read. Review exactly what the user pointed at: a file, a module, a crate, or a diff. For a diff, review the changed lines and anything they break, not the whole file.
- Library or application. Check for a
lib.rs,pubitems used by other crates, or a publishedCargo.toml. Library code is held to the API-design rules strictly. Application code gets the simplicity rules instead: concrete types,anyhow-style errors, and no speculative generality. Say which you assumed at the top of the report. - The edition and MSRV, from
Cargo.toml, so you don't recommend features the project can't use. - Frameworks. If the crate depends on
bevyorbevy_ecs, read the Bevy digest (bevy.md) in therust-best-practicesskill's references first. It lists the Bevy conventions to leave alone (by-value system parameters, the prelude, plain-data components) and the ECS bugs to look for.
2. Run the tools first, if you can
If a Rust toolchain is available, run these from the crate root and fold the results into the report. They catch the mechanical issues, which leaves you free for design.
cargo fmt --check
cargo clippy --all-targets --all-features -- -W clippy::pedantic
cargo testDon't paste raw clippy output. Group repeated warnings into one finding, and skip pedantic lints that don't matter for this code. If the tools aren't available, say so in the report and review by reading.
3. What to look for, in priority order
Work through these in order. The first two categories are where real bugs live.
Correctness and soundness
- Undefined behavior: an
unsafeblock without a// SAFETY:comment,transmuteto cast enums or extend lifetimes,unsafe impl Send/Syncused to silence the compiler, or a safe function that can cause UB through safe calls (unsound). - Panics on reachable paths:
unwrap(),expect(), indexing,ascasts that wrap, or integer overflow, wherever input from outside can reach them. - Trait contracts: a hand-written
Ordwith a derivedPartialEq, orHashthat disagrees withEq. These silently corruptBTreeMap,HashMap,sort, anddedup. - Lock hazards: a
MutexGuardheld across.awaitor returned to a caller, user closures called under a lock, or a poisoned lock recovered withinto_inner. - ECS bugs in Bevy code: two queries that can reach the same component mutably (a
B0001 panic on the first frame), systems that read each other's results with no
order between them, and deferred
Commandsread back before they apply. - Destructors that panic, block, or can fail.
Error handling
- Errors that callers can't use:
(),String, orBox<dyn Error>as a library's public error type, an error enum withoutDisplayandstd::error::Error, oranyhow::Errorin a library's public API. - Errors that lose information:
map_err(|_| ...), nosource(), or messages without the path, line, or value that failed. - Panics used for expected failures, or
catch_unwindused as control flow.
API design (strict for libraries)
- Parameters:
&String,&Vec<T>, or&Box<T>instead of&str,&[T], or&T; aboolparameter in a public signature; ownership taken and then cloned, or a borrow cloned internally to get ownership;impl Into<T>in application code, or on a library function too rarely called to justify a copy per argument type. - Return types: a library function that collects into a
Veconly to return it, when an iterator would do. Owned results are fine when callers need ownership or random access, or when building the collection is the function's job. - Visibility: public fields that should be private,
Rc,RefCell, orArcin public signatures, or third-party types leaking into the API. - Missing standard traits:
Debugon public types,Displayon errors,Defaultnext to a zero-argumentnew(), andFromStrinstead of an ad-hocfrom_strmethod. - Naming:
get_prefixes on getters,as_/to_/into_that don't match their cost and ownership, andManager/Service/Utilnames. - Evolution: public enums or structs that should be
#[non_exhaustive], or traits that should be sealed.
Idiom and clarity
- Clones that exist only to satisfy the borrow checker.
- Check-then-unwrap (
if x.is_some() { x.unwrap() }), andmatchwhere a combinator is clearer, or the reverse. - String building with
+, hand loops that are clearer as iterators, or iterator chains long enough to need a loop. HashMapiteration order leaking into output or tests.#![deny(warnings)]in source,#[allow]without a reason, and glob imports of external crates (a framework's documented prelude, such asbevy::prelude, is fine).
Documentation and tests
- Public items without docs, and docs that restate the name.
- Missing
# Errors,# Panics, or# Safetysections where they apply. - Doc examples that use
unwrap()instead of?. - Logic with no tests, or tests that only restate constants.
The rust-best-practices skill and its references/ folder hold the full rules and their
reasoning. If it is installed, read the relevant reference when a finding needs a rule
you're unsure of. Otherwise, rely on the summary above.
4. Write the report
Use this structure:
# Rust review: <what was reviewed>
<One paragraph: what the code does, library or application, overall verdict, and the
single most important thing to fix. Say whether clippy and tests were run.>
## Must fix
### 1. <Short title> (`src/file.rs:42`)
**Rule:** <rule name and source, e.g. "Errors implement std::error::Error (C-GOOD-ERR,
Rust API Guidelines)">
**Problem:** <what is wrong and the concrete consequence, one or two sentences>
**Fix:**
```rust
<the smallest code change that fixes it>
```
## Should fix
### 2. ...
## Consider
### 3. ...
## What's already good
- <2 to 4 specific things the code does well>How to sort findings:
- Must fix means a bug, a soundness hole, a reachable panic, or an API mistake that becomes a breaking change once published.
- Should fix means it works but violates a rule with a real cost, such as worse error messages, harder testing, or a confusing API.
- Consider means style, naming, and polish.
Rules for each finding:
- Cite a location as
file:linefor every finding (writewhole filefor a finding that has no single location, such as missing tests), and cite the rule with its source: an API Guidelines code such asC-GETTER, an Effective Rust item number, a Microsoft guideline code such asM-PANIC-ON-BUG, a clippy lint name, or "Google Rust Style Guide". A reader should be able to look the rule up. - Show the fix as code, kept to the lines that change. Don't rewrite whole functions.
- Group repeats. One finding for "eight
unwrap()calls on parse results", listing the lines, rather than eight findings. - Respect intent. If something looks deliberate, such as a documented quirk or a comment explaining it, mention it under Consider with the trade-off. Don't mark it Must fix.
- Keep it proportionate. For a short file, five to ten findings is plenty. Don't pad the list, and don't hide a real bug among style nits.
- "What's already good" is required. It tells the author what to keep and makes the rest credible.
5. Offer the lints
If the project lacks a [lints] table, end the report by suggesting the BeautifulRust
lints config (lints/lints.toml and lints/clippy.toml in the BeautifulRust repo,
https://github.com/morganlinton/BeautifulRust). It makes clippy catch most of the
mechanical findings above automatically. Name two or three findings from this review that
it would have caught.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

