coding-guidelines
Use when asking about Rust code style or best practices. Keywords: naming, formatting, comment, clippy, rustfmt, lint, code style, best practice, P.NAM, G.FMT, code review, naming convention, variable naming, function naming, type naming, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名
- License 许可
- MIT
- 最近更新
- 2026-04-11
- Stars
- ★ 3
- Forks
- 0
01 前言 Front Matter
- name
- coding-guidelines
- source
- https://rust-coding-guidelines.github.io/rust-coding-guidelines-zh/
- description
- Use when asking about Rust code style or best practices. Keywords: naming, formatting, comment, clippy, rustfmt, lint, code style, best practice, P.NAM, G.FMT, code review, naming convention, variable naming, function naming, type naming, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名
- user-invocable
- false
03 SKILL.md 正文
Rust Coding Guidelines (50 Core Rules)
Naming (Rust-Specific)
| Rule |
Guideline |
No get_ prefix |
fn name() not fn get_name() |
| Iterator convention |
iter() / iter_mut() / into_iter() |
| Conversion naming |
as_ (cheap &), to_ (expensive), into_ (ownership) |
| Static var prefix |
G_CONFIG for static, no prefix for const |
Data Types
| Rule |
Guideline |
| Use newtypes |
struct Email(String) for domain semantics |
| Prefer slice patterns |
if let [first, .., last] = slice |
| Pre-allocate |
Vec::with_capacity(), String::with_capacity() |
| Avoid Vec abuse |
Use arrays for fixed sizes |
Strings
| Rule |
Guideline |
| Prefer bytes |
s.bytes() over s.chars() when ASCII |
Use Cow<str> |
When might modify borrowed data |
Use format! |
Over string concatenation with + |
| Avoid nested iteration |
contains() on string is O(n*m) |
Error Handling
| Rule |
Guideline |
Use ? propagation |
Not try!() macro |
expect() over unwrap() |
When value guaranteed |
| Assertions for invariants |
assert! at function entry |
Memory
| Rule |
Guideline |
| Meaningful lifetimes |
'src, 'ctx not just 'a |
try_borrow() for RefCell |
Avoid panic |
| Shadowing for transformation |
let x = x.parse()? |
Concurrency
| Rule |
Guideline |
| Identify lock ordering |
Prevent deadlocks |
| Atomics for primitives |
Not Mutex for bool/usize |
| Choose memory order carefully |
Relaxed/Acquire/Release/SeqCst |
Async
| Rule |
Guideline |
| Sync for CPU-bound |
Async is for I/O |
| Don't hold locks across await |
Use scoped guards |
Macros
| Rule |
Guideline |
| Avoid unless necessary |
Prefer functions/generics |
| Follow Rust syntax |
Macro input should look like Rust |
Deprecated → Better
| Deprecated |
Better |
Since |
lazy_static! |
std::sync::OnceLock |
1.70 |
once_cell::Lazy |
std::sync::LazyLock |
1.80 |
std::sync::mpsc |
crossbeam::channel |
- |
std::sync::Mutex |
parking_lot::Mutex |
- |
failure/error-chain |
thiserror/anyhow |
- |
try!() |
? operator |
2018 |
Quick Reference
Naming: snake_case (fn/var), CamelCase (type), SCREAMING_CASE (const)
Format: rustfmt (just use it)
Docs: /// for public items, //! for module docs
Lint: #![warn(clippy::all)]
Claude knows Rust conventions well. These are the non-obvious Rust-specific rules.
04 同仓库更多 Skills
0xharryriddle/codex-field-kit vercel-react-best-practices
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
0xharryriddle/codex-field-kit swarm-planner
[EXPLICIT INVOCATION ONLY] Creates dependency-aware implementation plans optimized for parallel multi-agent execution.
0xharryriddle/codex-field-kit super-swarm-spark
Only to be triggered by explicit super-swarm-spark commands.
0xharryriddle/codex-field-kit role-creator
Create and install Codex custom agent roles in ~/.codex/config.toml, generate role config files, enforce supported keys, and guide users through required role inputs (model, reasoning effort, developer_instructions).
0xharryriddle/codex-field-kit read-github
Read and search GitHub repository documentation via gitmcp.io MCP service.
**WHEN TO USE:**
- User provides a GitHub URL
- User mentions a specific repo in owner/repo format
- User asks "what does this repo do?", "read the docs for X repo", or similar
- User wants to search code or docs within a repo
0xharryriddle/codex-field-kit planner
Create comprehensive, phased implementation plans with sprints and atomic tasks. Use when user says: "make a plan", "create a plan", "plan this out", "plan the implementation", "help me plan", "design a plan", "draft a plan", "write a plan", "outline the steps", "break this down into tasks", "what's the plan for", or any similar planning request. Also triggers on explicit "/planner" or "/plan" commands.