All notable changes to this skill are documented here. The format is based on Keep a Changelog, and the project aims to follow semantic versioning for the rule set.
- Depth pass: expanded
own-rc-single-thread(breaking cycles withWeak, theRc::cloneidiom,strong_count/weak_count,!Send/!Sync) andown-refcell-interior(CellforCopytypes). - Added cross-references from ~18 foundational rules to the newer categories
(
conc-,conv-,num-,serde-,trait-,closure-,coll-,pat-) for better navigation between related rules.
- Const & Compile-Time category (
const-, 4 rules):const fn,constvsstatic, const generics, inlineconst { }blocks. - Trait & Generics Design category (
trait-, 6 rules): static vs dynamic dispatch, associated types vs generic params, default methods, blanket impls, object safety, the orphan rule + newtype. - Collections category (
coll-, 4 rules): map choice (HashMap/BTreeMap/ IndexMap), sequence choice (Vec/VecDeque), set membership,BinaryHeap. checks/gen_index.py— generatesSKILL.md's priority table and Quick Reference (and the rule counts) fromrules/so the index can't drift; CI runs it in--checkmode.CONTRIBUTING.mdand thisCHANGELOG.md.
Now 265 rules across 26 categories.
- Closures category (
closure-, 5 rules): Fn/FnMut/FnOnce bounds, returningimpl Fn,movecapture, static vs dynamic dispatch, disjoint capture.
Now 251 rules across 23 categories.
- Serde category (
serde-, 8 rules): rename_all, default, skip, flatten, enum representation, deny_unknown_fields, custom (de)serialize, validate-on- deserialize. - Numeric & Arithmetic Safety category (
num-, 5 rules): explicit overflow handling,asvsTryFrom, float comparison, clamping,NonZero.
Now 246 rules across 22 categories.
- Macros category (
macro-, 8 rules): declarative-macro hygiene and fragment specifiers, and procedural-macro design withsyn/quote. - Observability category (
obs-, 7 rules):tracing, spans, structured fields, error chains, and keeping secrets out of logs.
Now 233 rules across 20 categories.
- Unsafe Code (
unsafe-), Concurrency (conc-), Conversions (conv-), and Pattern Matching (pat-) categories, plus new rules across existing categories — 39 rules in total. - A compile-check harness (
checks/) and a GitHub Actions CI workflow that validates rule structure, links, the index, and that examples compile.
- Updated throughout for the Rust 2024 edition and current stable (Rust 1.96):
fixed
&mut Tis notCopy,impl Traitin traits,collect_intostatus,resolver = "3",env::set_varnowunsafe, and more.
Now 218 rules across 18 categories.
- Initial release: 179 rules across 14 categories.