rust-systems

📁 pproenca/dot-skills 📅 Jan 22, 2026
43
总安装量
43
周安装量
#4926
全站排名
安装命令
npx skills add https://github.com/pproenca/dot-skills --skill rust-systems

Agent 安装分布

claude-code 38
codex 33
opencode 33
gemini-cli 32
antigravity 30
cursor 26

Skill 文档

Rust Systems Programming Best Practices

Comprehensive Rust patterns and style conventions for systems programming, containing 52 rules across 5 categories. Designed for systems programming, CLI tools, and performance-critical applications.

When to Apply

Reference these guidelines when:

  • Writing new Rust code or modules
  • Organizing Rust project structure
  • Defining custom types, traits, or error handling
  • Reviewing Rust code for style consistency
  • Building systems tools, CLIs, or daemon processes

Rule Categories by Priority

Priority Category Impact Prefix
1 Project Organization HIGH org-
2 Module Structure HIGH mod-
3 Naming Conventions HIGH name-
4 Type & Trait Patterns HIGH type-
5 Error Handling HIGH err-

Quick Reference

1. Project Organization (HIGH)

  • org-cargo-workspace – Use Cargo Workspace for Multi-Crate Projects
  • org-directory-naming – Use snake_case for All Directory Names
  • org-binary-library-separation – Separate Binary and Library Crates
  • org-feature-domain-grouping – Group Crates by Feature Domain
  • org-common-crate – Use Dedicated Common Crate for Shared Utilities
  • org-flat-crate-structure – Keep Crate Structure Flat

2. Module Structure (HIGH)

  • mod-explicit-declarations – Use Explicit Module Declarations in lib.rs
  • mod-colocated-tests – Co-locate Tests as test.rs Files
  • mod-submodule-organization – Use mod.rs for Multi-File Modules
  • mod-types-errors-files – Separate Types and Errors into Dedicated Files
  • mod-reexport-pattern – Use pub use for Clean API Re-exports
  • mod-conditional-compilation – Use cfg Attributes for Conditional Modules

3. Naming Conventions (HIGH)

  • name-function-snake-case – Use snake_case for Functions and Methods
  • name-type-pascal-case – Use PascalCase for Types
  • name-constant-screaming – Use SCREAMING_SNAKE_CASE for Constants
  • name-getter-prefix – Prefix Getter Functions with get_
  • name-boolean-predicates – Use is_, has_, should_ for Boolean Predicates
  • name-constructor-new – Use new for Constructors
  • name-conversion-to-from – Use to_ and from_ for Conversions
  • name-type-suffixes – Use Descriptive Suffixes for Type Specialization
  • name-field-unit-suffixes – Include Unit Suffixes in Field Names
  • name-module-snake-case – Use snake_case for Module Names
  • name-generic-parameters – Use Descriptive or Single-Letter Generic Parameters
  • name-lifetime-parameters – Use Single Lowercase Letters for Lifetimes
  • name-test-files – Name Test Files as test.rs

4. Type & Trait Patterns (HIGH)

  • type-option-nullable-fields – Use Option for Nullable Fields
  • type-standard-derives – Use Consistent Derive Order for Data Structs
  • type-builder-pattern – Use Builder Pattern with Method Chaining
  • type-associated-types – Use Associated Types for Related Type Relationships
  • type-phantom-data – Use PhantomData for Unused Generic Parameters
  • type-newtype-pattern – Use Newtype Pattern for Type Safety
  • type-enum-copy-simple – Derive Copy for Simple Enums
  • type-enum-variants – Use Enums for Type-Safe Variants
  • type-trait-impl-grouping – Group Related Trait Implementations Together
  • type-bitflags – Use bitflags! for Type-Safe Bit Flags
  • type-operator-overload – Implement Operator Traits for Domain Types
  • type-public-fields – Use Public Fields for Data Structs
  • type-async-trait – Use async_trait for Async Trait Methods
  • type-boxed-trait-objects – Use Box for Runtime Polymorphism
  • type-type-aliases – Use Type Aliases for Complex Generics

5. Error Handling (HIGH)

  • err-thiserror-enum – Use thiserror for Custom Error Types
  • err-result-alias – Define Module-Local Result Type Alias
  • err-path-context – Include Path Context in IO Errors
  • err-anyhow-context – Use context() and with_context() for Error Messages
  • err-bail-validation – Use bail! for Validation Failures
  • err-graceful-degradation – Use Graceful Degradation for Non-Critical Operations
  • err-panic-unrecoverable – Reserve panic! for Unrecoverable Situations
  • err-expect-message – Use expect() with Descriptive Messages
  • err-source-attribute – Use #[source] for Error Chaining
  • err-ok-or-else – Use ok_or_else for Expensive Error Construction
  • err-two-tier-strategy – Use Two-Tier Error Strategy

How to Use

Read individual reference files for detailed explanations and code examples:

Full Compiled Document

For the complete guide with all rules expanded: AGENTS.md