Individual skill
rust-skills
Comprehensive Rust coding guidelines with 265 rules across 26 categories, organized for code review, refactoring, and writing new Rust. Use when reviewing Rust code for ownership, borrow, allocation, panic, or error-handling problems; when refactoring or optimizing Rust; when idiomatic API, naming or documentation feedback is requested; or when auditing unsafe, concurrency, numeric-overflow, or macro code. Covers ownership, error handling, async, unsafe, API design, memory, performance, serde, testing, and anti-patterns.
.dsh/skills/rust-skills/SKILL.md
Source commit 3130fa95089fc5caf1f8860c1a9f5d2b9e04cd93
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Network or broad shell
- Last checked
- Nov 9, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,823
- Repository last updated
- Nov 9, 2026
- License
- GPL-3.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- engineering Derived category
- design Derived category
- writing Derived category
- testing Derived category
- docs Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
LICENSEasset · 1,075 bytesSKILL.mdcore · 40,417 bytesSKILL.mdcore · 40,417 bytesSKILL.mdcore · 40,417 bytesSKILL.mdcore · 40,417 byteschecks/validate.pyruns · 2,039 bytesrules/anti-clone-excessive.mddoc · 2,614 bytesrules/anti-collect-intermediate.mddoc · 3,230 bytesrules/anti-empty-catch.mddoc · 3,134 bytesrules/anti-expect-lazy.mddoc · 2,696 bytesrules/anti-format-hot-path.mddoc · 3,636 bytesrules/anti-index-over-iter.mddoc · 2,909 bytesrules/anti-lock-across-await.mddoc · 3,201 bytesrules/anti-over-abstraction.mddoc · 3,147 bytesrules/anti-panic-expected.mddoc · 3,428 bytesrules/anti-premature-optimize.mddoc · 3,778 bytesrules/anti-string-for-str.mddoc · 2,656 bytesrules/anti-stringly-typed.mddoc · 4,182 bytesrules/anti-type-erasure.mddoc · 3,731 bytesrules/anti-unwrap-abuse.mddoc · 3,423 bytesrules/anti-vec-for-slice.mddoc · 2,530 bytesrules/api-builder-must-use.mddoc · 3,931 bytesrules/api-builder-pattern.mddoc · 4,673 bytesrules/api-common-traits.mddoc · 4,369 bytesrules/api-default-impl.mddoc · 4,122 bytesrules/api-extension-trait.mddoc · 3,872 bytesrules/api-from-not-into.mddoc · 3,393 bytesrules/api-impl-asref.mddoc · 3,539 bytesrules/api-impl-fromiterator.mddoc · 3,484 bytesrules/api-impl-into.mddoc · 4,094 bytesrules/api-must-use.mddoc · 3,579 bytesrules/api-newtype-safety.mddoc · 4,028 bytesrules/api-non-exhaustive.mddoc · 3,975 bytesrules/api-operator-overload.mddoc · 3,383 bytesrules/api-parse-dont-validate.mddoc · 4,424 bytesrules/api-sealed-trait.mddoc · 4,641 bytesrules/api-serde-optional.mddoc · 4,305 bytesrules/api-typestate.mddoc · 4,992 bytesrules/async-async-fn-bounds.mddoc · 3,454 bytesrules/async-bounded-channel.mddoc · 4,608 bytesrules/async-broadcast-pubsub.mddoc · 4,149 bytesrules/async-cancel-safety.mddoc · 4,438 bytesrules/async-cancellation-token.mddoc · 4,913 bytesrules/async-clone-before-await.mddoc · 4,079 bytesrules/async-fn-in-trait.mddoc · 3,691 bytesrules/async-join-parallel.mddoc · 4,103 bytesrules/async-joinset-structured.mddoc · 4,620 bytesrules/async-mpsc-queue.mddoc · 4,015 bytesrules/async-no-lock-await.mddoc · 4,059 bytesrules/async-oneshot-response.mddoc · 4,567 bytesrules/async-select-racing.mddoc · 4,673 bytesrules/async-spawn-blocking.mddoc · 3,717 bytesrules/async-tokio-fs.mddoc · 4,175 bytesrules/async-tokio-runtime.mddoc · 4,576 bytesrules/async-try-join.mddoc · 4,429 bytesrules/async-watch-latest.mddoc · 4,623 bytesrules/closure-disjoint-capture.mddoc · 3,590 bytesrules/closure-fn-trait-bounds.mddoc · 2,931 bytesrules/closure-impl-fn-return.mddoc · 2,848 bytesrules/closure-move-capture.mddoc · 2,920 bytesrules/closure-static-vs-dyn.mddoc · 3,271 bytesrules/coll-binaryheap.mddoc · 3,594 bytesrules/coll-map-choice.mddoc · 3,707 bytesrules/coll-seq-choice.mddoc · 2,987 bytesrules/coll-set-membership.mddoc · 3,209 bytesrules/conc-atomic-ordering.mddoc · 3,585 bytesrules/conc-rayon-par-iter.mddoc · 2,467 bytesrules/conc-scoped-threads.mddoc · 2,805 bytesrules/conc-thread-local.mddoc · 2,637 bytesrules/const-block.mddoc · 2,962 bytesrules/const-fn.mddoc · 2,186 bytesrules/const-generics.mddoc · 2,784 bytesrules/const-vs-static.mddoc · 2,829 bytesrules/conv-asmut-mutable.mddoc · 2,151 bytesrules/conv-fromstr-parsing.mddoc · 2,591 bytesrules/conv-tryfrom-fallible.mddoc · 2,341 bytesrules/doc-all-public.mddoc · 2,730 bytesrules/doc-cargo-metadata.mddoc · 3,236 bytesrules/doc-crate-readme.mddoc · 2,137 bytesrules/doc-errors-section.mddoc · 3,319 bytesrules/doc-examples-section.mddoc · 2,925 bytesrules/doc-hidden-setup.mddoc · 3,631 bytesrules/doc-intra-links.mddoc · 3,423 bytesrules/doc-link-types.mddoc · 3,887 bytesrules/doc-module-inner.mddoc · 2,852 bytesrules/doc-panics-section.mddoc · 3,171 bytesrules/doc-question-mark.mddoc · 3,227 bytesrules/doc-safety-section.mddoc · 3,925 bytesrules/err-anyhow-app.mddoc · 4,266 bytesrules/err-context-chain.mddoc · 3,538 bytesrules/err-custom-type.mddoc · 4,080 bytesrules/err-doc-errors.mddoc · 3,928 bytesrules/err-expect-bugs-only.mddoc · 3,829 bytesrules/err-from-impl.mddoc · 3,955 bytesrules/err-lowercase-msg.mddoc · 3,365 bytesrules/err-no-unwrap-prod.mddoc · 3,209 bytesrules/err-question-mark.mddoc · 3,383 bytesrules/err-result-over-panic.mddoc · 3,482 bytesrules/err-source-chain.mddoc · 3,893 bytesrules/err-thiserror-lib.mddoc · 4,187 bytesrules/lint-cargo-metadata.mddoc · 2,880 bytesrules/lint-cfg-check.mddoc · 2,475 bytesrules/lint-clippy-nursery-selected.mddoc · 2,665 bytesrules/lint-deny-correctness.mddoc · 2,289 bytesrules/lint-missing-docs.mddoc · 3,004 bytesrules/lint-pedantic-selective.mddoc · 3,178 bytesrules/lint-rustfmt-check.mddoc · 2,791 bytesrules/lint-unsafe-doc.mddoc · 3,177 bytesrules/lint-warn-complexity.mddoc · 3,030 bytesrules/lint-warn-perf.mddoc · 3,236 bytesrules/lint-warn-style.mddoc · 2,944 bytesrules/lint-warn-suspicious.mddoc · 2,987 bytesrules/lint-workspace-lints.mddoc · 3,644 bytesrules/macro-export-crate-path.mddoc · 2,618 bytesrules/macro-fragment-specifiers.mddoc · 3,003 bytesrules/macro-prefer-functions.mddoc · 2,132 bytesrules/macro-private-helpers.mddoc · 3,035 bytesrules/macro-proc-error-spans.mddoc · 3,816 bytesrules/macro-proc-syn-quote.mddoc · 3,537 bytesrules/macro-proc-two-crate.mddoc · 3,884 bytesrules/macro-rules-hygiene.mddoc · 2,853 bytesrules/mem-arena-allocator.mddoc · 4,555 bytesrules/mem-arrayvec.mddoc · 3,706 bytesrules/mem-assert-type-size.mddoc · 3,874 bytesrules/mem-avoid-format.mddoc · 3,608 bytesrules/mem-box-large-variant.mddoc · 3,815 bytesrules/mem-boxed-slice.mddoc · 3,589 bytesrules/mem-clone-from.mddoc · 3,536 bytesrules/mem-compact-string.mddoc · 3,798 bytesrules/mem-drop-order.mddoc · 4,581 bytesrules/mem-reuse-collections.mddoc · 4,318 bytesrules/mem-smaller-integers.mddoc · 3,993 bytesrules/mem-smallvec.mddoc · 3,452 bytesrules/mem-take-replace.mddoc · 3,626 bytesrules/mem-thinvec.mddoc · 3,311 bytesrules/mem-with-capacity.mddoc · 3,835 bytesrules/mem-write-over-format.mddoc · 4,393 bytesrules/mem-zero-copy.mddoc · 4,116 bytesrules/name-acronym-word.mddoc · 2,859 bytesrules/name-as-free.mddoc · 2,340 bytesrules/name-consts-screaming.mddoc · 2,255 bytesrules/name-crate-no-rs.mddoc · 2,063 bytesrules/name-funcs-snake.mddoc · 1,981 bytesrules/name-into-ownership.mddoc · 2,801 bytesrules/name-is-has-bool.mddoc · 3,240 bytesrules/name-iter-convention.mddoc · 3,368 bytesrules/name-iter-method.mddoc · 3,376 bytesrules/name-iter-type-match.mddoc · 3,648 bytesrules/name-lifetime-short.mddoc · 2,360 bytesrules/name-no-get-prefix.mddoc · 3,117 bytesrules/name-to-expensive.mddoc · 2,998 bytesrules/name-type-param-single.mddoc · 2,347 bytesrules/name-types-camel.mddoc · 1,798 bytesrules/name-variants-camel.mddoc · 1,814 bytesrules/num-cast-try-from.mddoc · 3,154 bytesrules/num-float-compare.mddoc · 3,230 bytesrules/num-nonzero.mddoc · 3,444 bytesrules/num-overflow-explicit.mddoc · 2,759 bytesrules/num-saturating-clamp.mddoc · 3,150 bytesrules/obs-error-chain.mddoc · 3,464 bytesrules/obs-instrument-spans.mddoc · 3,301 bytesrules/obs-levels-filter.mddoc · 3,441 bytesrules/obs-library-facade.mddoc · 2,712 bytesrules/obs-no-sensitive-data.mddoc · 3,576 bytesrules/obs-structured-fields.mddoc · 2,740 bytesrules/obs-tracing-over-log.mddoc · 2,204 bytesrules/opt-bounds-check.mddoc · 4,247 bytesrules/opt-cache-friendly.mddoc · 4,652 bytesrules/opt-codegen-units.mddoc · 3,387 bytesrules/opt-cold-unlikely.mddoc · 3,577 bytesrules/opt-inline-always-rare.mddoc · 3,391 bytesrules/opt-inline-never-cold.mddoc · 4,448 bytesrules/opt-inline-small.mddoc · 3,947 bytesrules/opt-likely-hint.mddoc · 4,297 bytesrules/opt-lto-release.mddoc · 3,343 bytesrules/opt-pgo-profile.mddoc · 4,182 bytesrules/opt-simd-portable.mddoc · 4,097 bytesrules/opt-target-cpu.mddoc · 3,878 bytesrules/own-arc-shared.mddoc · 3,480 bytesrules/own-borrow-over-clone.mddoc · 2,445 bytesrules/own-clone-explicit.mddoc · 3,447 bytesrules/own-copy-small.mddoc · 3,033 bytesrules/own-cow-conditional.mddoc · 3,631 bytesrules/own-lifetime-elision.mddoc · 3,215 bytesrules/own-move-large.mddoc · 3,466 bytesrules/own-mutex-interior.mddoc · 2,829 bytesrules/own-rc-single-thread.mddoc · 3,412 bytesrules/own-refcell-interior.mddoc · 3,013 bytesrules/own-rwlock-readers.mddoc · 3,242 bytesrules/own-slice-over-vec.mddoc · 2,724 bytesrules/pat-at-bindings.mddoc · 2,972 bytesrules/pat-exhaustive-enum.mddoc · 2,737 bytesrules/pat-if-let-chains.mddoc · 2,210 bytesrules/pat-let-else.mddoc · 2,065 bytesrules/pat-matches-macro.mddoc · 2,697 bytesrules/perf-ahash.mddoc · 3,327 bytesrules/perf-black-box-bench.mddoc · 3,772 bytesrules/perf-chain-avoid.mddoc · 3,190 bytesrules/perf-collect-into.mddoc · 3,533 bytesrules/perf-collect-once.mddoc · 2,783 bytesrules/perf-drain-reuse.mddoc · 3,518 bytesrules/perf-entry-api.mddoc · 3,516 bytesrules/perf-extend-batch.mddoc · 3,488 bytesrules/perf-io-buffering.mddoc · 3,861 bytesrules/perf-iter-lazy.mddoc · 3,045 bytesrules/perf-iter-over-index.mddoc · 2,748 bytesrules/perf-profile-first.mddoc · 4,046 bytesrules/perf-release-profile.mddoc · 3,347 bytesrules/proj-bin-dir.mddoc · 2,965 bytesrules/proj-build-rs-minimal.mddoc · 3,141 bytesrules/proj-feature-additive.mddoc · 2,260 bytesrules/proj-flat-small.mddoc · 2,760 bytesrules/proj-lib-main-split.mddoc · 3,244 bytesrules/proj-mod-by-feature.mddoc · 3,333 bytesrules/proj-mod-rs-dir.mddoc · 2,776 bytesrules/proj-msrv-declare.mddoc · 2,125 bytesrules/proj-prelude-module.mddoc · 3,308 bytesrules/proj-pub-crate-internal.mddoc · 3,214 bytesrules/proj-pub-super-parent.mddoc · 2,924 bytesrules/proj-pub-use-reexport.mddoc · 3,062 bytesrules/proj-workspace-deps.mddoc · 3,824 bytesrules/proj-workspace-large.mddoc · 3,391 bytesrules/serde-custom-with.mddoc · 3,029 bytesrules/serde-default-compat.mddoc · 2,829 bytesrules/serde-deny-unknown-fields.mddoc · 2,720 bytesrules/serde-enum-representation.mddoc · 3,265 bytesrules/serde-flatten.mddoc · 3,035 bytesrules/serde-rename-all.mddoc · 2,186 bytesrules/serde-skip-empty.mddoc · 2,821 bytesrules/serde-try-from-validate.mddoc · 4,027 bytesrules/test-arrange-act-assert.mddoc · 3,710 bytesrules/test-cfg-test-module.mddoc · 2,972 bytesrules/test-criterion-bench.mddoc · 3,730 bytesrules/test-descriptive-names.mddoc · 2,698 bytesrules/test-doctest-examples.mddoc · 3,245 bytesrules/test-fixture-raii.mddoc · 3,638 bytesrules/test-integration-dir.mddoc · 3,056 bytesrules/test-loom-concurrency.mddoc · 3,409 bytesrules/test-mock-traits.mddoc · 4,582 bytesrules/test-mockall-mocking.mddoc · 4,584 bytesrules/test-proptest-properties.mddoc · 3,514 bytesrules/test-should-panic.mddoc · 2,894 bytesrules/test-snapshot-testing.mddoc · 3,169 bytesrules/test-tokio-async.mddoc · 3,430 bytesrules/test-use-super.mddoc · 2,653 bytesrules/trait-associated-type-vs-generic.mddoc · 4,017 bytesrules/trait-blanket-impl.mddoc · 3,353 bytesrules/trait-coherence-newtype.mddoc · 3,622 bytesrules/trait-default-methods.mddoc · 4,217 bytesrules/trait-dyn-vs-generic.mddoc · 3,546 bytesrules/trait-object-safety.mddoc · 3,738 bytesrules/type-deref-coercion.mddoc · 2,586 bytesrules/type-display-vs-debug.mddoc · 2,782 bytesrules/type-enum-states.mddoc · 4,106 bytesrules/type-generic-bounds.mddoc · 3,468 bytesrules/type-never-diverge.mddoc · 3,233 bytesrules/type-newtype-ids.mddoc · 3,659 bytesrules/type-newtype-validated.mddoc · 3,718 bytesrules/type-no-stringly.mddoc · 3,258 bytesrules/type-numeric-fmt.mddoc · 2,733 bytesrules/type-option-nullable.mddoc · 3,235 bytesrules/type-phantom-marker.mddoc · 3,824 bytesrules/type-repr-transparent.mddoc · 3,225 bytesrules/type-result-fallible.mddoc · 3,423 bytesrules/unsafe-extern-block.mddoc · 3,383 bytesrules/unsafe-maybeuninit.mddoc · 3,725 bytesrules/unsafe-minimize-scope.mddoc · 3,539 bytesrules/unsafe-miri-ci.mddoc · 2,934 bytesrules/unsafe-no-mangle-unsafe.mddoc · 2,865 bytesrules/unsafe-safety-comment.mddoc · 2,963 bytesrules/unsafe-send-sync-manual.mddoc · 4,313 bytes
No licensed excerpt is available. You can inspect the pinned source.