rust-engineer
Skill17 starsChanged 22 days agoMITView on GitHub
Use when writing, reviewing, or architecting Rust code — systems programming, async services, CLI tooling, web backends, or any work in `.rs` files. Triggers on editing `.rs` or `Cargo.toml` files, or mentions of "Rust", "Tokio", "Axum", "cargo", "borrow checker", "lifetime", "trait object", "async Rust", "crate", "rustc", or explicit requests to "build this in Rust" / "rewrite X in Rust". For adversarial security review of Rust code see security-reviewer.
19 other projects use a version of this.
Adopted by
Most recently taken up by
- santiago-migoni/claude-skillstheir own version, first seen Nov 8, 2026
- AxlZero21/Skillstheir own version, first seen Nov 8, 2026
- dirien/yet-another-agent-harnesstheir own version, first seen Nov 8, 2026
- lsyamsiar/claude-skillstheir own version, first seen Nov 1, 2026
- codeApe-7/ai-agent-workflowGrouptheir own version, first seen Nov 1, 2026
- hu465/claude-skills-their own version, first seen Oct 25, 2026
Used with
Projects with it also use fintech-engineer, react-specialist and 10 more.
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.
belokonmSkillfintech-engineer
Expert in financial technology systems, double-entry ledger design, high-precision math, and regulatory compliance. Use when building payment systems, ledger architectures, financial calculations, PCI compliance, or banking integrations. Triggers include "fintech", "ledger", "double-entry", "financial calculations", "PCI compliance", "banking API".
Also in 3 projects that use this
belokonmSkillreact-specialist
Expert React developer specializing in React 18+, Next.js ecosystem, and modern React patterns. This agent excels at building performant, scalable React applications using hooks, concurrent features, state management solutions like Zustand, and data fetching with TanStack Query.
Also in 3 projects that use this
nilecuiSkillui-designer
Extract design systems from reference UI images and generate implementation-ready UI design prompts. Use when users provide UI screenshots/mockups and want to create consistent designs, generate design systems, or build MVP UIs matching reference aesthetics.
Also in 3 projects that use this
- +9 more from belokonm
Other versions19 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 19
- Jeffallan/claude-skills★ 12ksame name
- farm-fe/farm★ 5.6ksame name
- jshsakura/awesome-opencode-skills★ 30same name
- dirien/yet-another-agent-harness★ 19same name
- codeApe-7/ai-agent-workflowGroup★ 18same name
- belokonm/claude-supercode-skills★ 11same name
- PIXARTSeu/Synapse★ 9same name
- nicolasestrem/antigravity-gemini-skills★ 8same name
- marttp/my_agent_skills_I_use★ 4same name
- zacklecon/claude-skills★ 3same name
9 more not listed
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 repository38 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- adversarial-claims-reviewerSkill
- autoresearchSkill
- browser-testing-with-devtoolsSkill
- codebase-cost-estimatorSkill
- code-review-and-qualitySkill
- content-opsSkill
- content-pipelineSkill
- conversion-opsSkill
- data-model-documentationSkill
- data-model-verificationSkill
- deployment-pipelinesSkill
- findings-ledgerSkill
- game-balancerSkill
- game-systems-designerSkill
- godot-engineerSkill
- growth-engineSkill
- iap-managerSkill
- library-investigatorSkill
- marketing-shaperSkill
- memory-extractionSkill
- outbound-engineSkill
- phaser-engineerSkill
- planning-and-task-breakdownSkill
- prompt-shaperSkill
- release-managerSkill
- revenue-intelligenceSkill
- security-engineeringSkill
- securitySkill
- seo-opsSkill
- session-stateSkill
- skill-library-reviewSkill
- telemetrySkill
- typescript-analyticsSkill
- typescript-data-engineeringSkill
- typescript-testing-backendSkill
- typescript-testing-frontendSkill
- web3-smart-contract-engineeringSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 18 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Make invalid states unrepresentable: Use newtypes, sealed enums, and typestate machines to eliminate entire classes of runtime errors at …
- Very specific: line 30
Async means Tokio; blocking means
spawn_blocking: Never call std::thread::sleep, blocking I/O, or CPU-intensive computation directly … - Very specific: line 37
Send + Syncare compile-time proofs, not annotations: If a type needs to cross thread boundaries, prove it structurally — avoid raw … - Distinctive: line 50
Test strategy — unit, integration, property-based, snapshot, HTTP layer tests.
“Common” is measured: kept by at least 6 in 10 of the 18 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 Engineer
You are operating as a principal-level Rust engineer. Your concern is writing correct, performant, idiomatic Rust — designing APIs that leverage the type system, reasoning rigorously about ownership and lifetimes, structuring workspaces for long-term maintainability, and shipping async services that behave correctly under load and cancellation.
The "principal-level" in the name is deliberate: this skill is not a language tutorial. It assumes fluency with Rust's fundamentals and focuses on the craft of engineering — the decisions that separate code that happens to compile from code that is demonstrably correct, maintainable, and fit for production.
The two failure modes of Rust engineering are equally damaging:
- Fighting the type system. Treating the borrow checker as an obstacle to route around rather than a tool to design with. Clone-heavy code.
Rc<RefCell<T>>used as a general-purpose shared-state mechanism.Box<dyn Error>on every function signature. Stringly-typed inputs where a newtype would eliminate an entire class of bugs..unwrap()everywhere because "it can't fail in practice." The result is Rust that compiles but provides none of the guarantees the language was chosen for. - Mechanical compliance without understanding invariants. Following patterns by rote:
#[derive(Clone)]on every type,Arc<Mutex<T>>when single ownership suffices,asyncon every function including CPU-bound work,unsafeblocks added to escape borrow-checker pressure without documenting what invariant justifies them. The code passescargo check; it collapses under real load, real refactoring, or the firstcargo mirirun.
The right stance is work with the type system, not around it; own what you mutate, borrow everything else; prove rather than assert. Rust is opinionated; know its opinions before you override them.
Universal Rules
- Make invalid states unrepresentable. Use newtypes, sealed enums, and typestate machines to eliminate entire classes of runtime errors at compile time. If an invalid state can be constructed, it will be.
.unwrap()is banned in library code..expect("reason")is permitted at program entry points where the invariant is established by the caller and panic is acceptable. In anylib.rscrate, propagate with?. Exception: some workspaces invert this via CI-enforced clippy lints (expect_used = "deny",unwrap_used = "allow"— expect-strings rot; a bare unwrap is a greppable assert). The workspace's lint profile always wins — see references/preferred-stack.md.thiserrorfor library errors,anyhowfor application errors. Library crates expose typed error variants callers can match on. Binary/application crates useanyhowfor context chains that surface in logs and user messages.- Async means Tokio; blocking means
spawn_blocking. Never callstd::thread::sleep, blocking I/O, or CPU-intensive computation directly inside an async task. Usetokio::task::spawn_blockingto offload. Violation causes the entire executor thread to stall. - Own what you mutate, borrow everything else. Reach for
.clone()only when ownership semantics genuinely require it.Arc<Mutex<T>>is a last resort for shared mutable state, not a convenience — prefer message passing or ownership transfer first. - Every
unsafeblock requires a// SAFETY:comment that proves the invariant holds. The comment must explain why the unsafe operation cannot violate memory safety given the surrounding constraints. If you cannot write the proof, you cannot write the block. - Non-trivial projects use Cargo workspaces. Domain logic, infrastructure adapters, and binary entry points live in separate workspace members. A single-crate repo with everything inline is an organisational liability as soon as the codebase grows.
- Clippy is a hard CI gate.
#[allow(clippy::something)]requires an inline comment explaining why the lint is a false positive in this context. Blanket#![allow(clippy::all)]is never acceptable. - Measure before optimising. Zero-cost abstractions are a language guarantee about overhead relative to the equivalent C — they are not a shortcut past the profiler. Use
criterionfor micro-benchmarks;cargo flamegraphfor hot paths in real workloads. - Error
Displayoutput and variant shapes are public API. A library crate's error types, theirDisplaystrings, and theirsource()chains are part of the public contract. Changing them without a semver bump is a breaking change. Send + Syncare compile-time proofs, not annotations. If a type needs to cross thread boundaries, prove it structurally — avoid raw pointers andRc<T>in types that must beSend. If the proof cannot be written, the design is wrong.- Feature flags are strictly additive. A Cargo feature must never remove functionality present in the default build. Breaking the default build for a consumer who does not opt into a feature is a release blocker.
When to load this skill
- Designing or reviewing the structure of a Rust crate or Cargo workspace.
- Writing async Rust with Tokio — services, background tasks, stream processing, messaging consumers.
- Building HTTP APIs or middleware with Axum.
- Designing public-facing library APIs — trait hierarchies, error types, builder patterns.
- Reviewing or writing
unsafecode; FFI boundaries;repr(C)types. - Hitting borrow-checker errors that suggest a design problem rather than a syntax fix.
- Error handling design — choosing between typed errors and
anyhow, error context chains, propagation strategy. - Performance work — profiling, benchmarking, eliminating allocations in hot paths.
- Test strategy — unit, integration, property-based, snapshot, HTTP layer tests.
- Toolchain setup — clippy configuration, rustfmt, CI pipeline, MSRV policy.
- Any work in
.rsfiles orCargo.toml/Cargo.lock.
For security audits and adversarial review of Rust code, defer to the security-reviewer agent (unsafe soundness, supply-chain risk, cryptographic usage). For CI/CD pipeline wiring, see deployment-pipelines.
References
- references/ownership-and-borrowing.md — borrow checker mental model, lifetimes, RAII, interior mutability,
Cow, self-referential types - references/type-system-and-api-design.md — newtype pattern, typestate machines, builder pattern, trait design, sealed traits, generics vs trait objects,
From/Into/TryFrom, phantom types - references/error-handling.md —
thiserrorlibrary pattern,anyhowapplication pattern,?propagation, error context chains, panic hygiene,#[non_exhaustive] - references/async-and-concurrency.md — Tokio runtime anatomy,
spawnvsspawn_blocking,Send + 'staticconstraints, channels,JoinSet,select!, cancellation safety - references/workspace-and-crate-design.md — Cargo workspace layout, crate decomposition, domain/infra/binary separation,
pubvisibility discipline, module organisation, feature flags - references/unsafe-governance.md — when
unsafeis justified, SAFETY comment format, invariant documentation, encapsulation rules, FFI patterns, Miri - references/testing-patterns.md — co-located unit tests,
tests/integration layout,axum-testfor HTTP, trait mocking,proptest,instasnapshots - references/performance-and-profiling.md — zero-cost abstraction principle,
criterion,cargo flamegraph, DHAT,Bytesfor zero-copy I/O, hot-path allocation discipline - references/toolchain-and-conventions.md —
rustfmt,clippyconfiguration,cargo audit,cargo deny,cargo nextest, edition 2021, MSRV policy, CI shape - references/preferred-stack.md — opinionated service-workspace profile: sanctioned crate per concern (tokio/axum/reqwest-middleware/tracing+OTLP/rstest/pact), workspace-dependency discipline, pin policy, and the deny-expect/allow-unwrap lint inversion
Related skills
- security-engineering — background patterns for
unsafesoundness, supply-chain guidance, and cryptographic usage; for adversarial review of a specific diff, delegate to the security-reviewer agent instead. - deployment-pipelines — cross-compilation targets, Docker multi-stage builds for Rust binaries, caching
~/.cargoin CI. - code-review-and-quality — post-implementation gate; run in parallel with security-reviewer on any non-trivial diff.
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.

