Claude-skill-registry 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, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/coding-guidelines" ~/.claude/skills/majiayu000-claude-skill-registry-coding-guidelines && rm -rf "$T"
manifest:
skills/data/coding-guidelines/SKILL.mdsource content
Rust Coding Guidelines (50 Core Rules)
Naming (Rust-Specific)
| Rule | Guideline |
|---|---|
No prefix | not |
| Iterator convention | / / |
| Conversion naming | (cheap &), (expensive), (ownership) |
| Static var prefix | for , no prefix for |
Data Types
| Rule | Guideline |
|---|---|
| Use newtypes | for domain semantics |
| Prefer slice patterns | |
| Pre-allocate | , |
| Avoid Vec abuse | Use arrays for fixed sizes |
Strings
| Rule | Guideline |
|---|---|
| Prefer bytes | over when ASCII |
Use | When might modify borrowed data |
Use | Over string concatenation with |
| Avoid nested iteration | on string is O(n*m) |
Error Handling
| Rule | Guideline |
|---|---|
Use propagation | Not macro |
over | When value guaranteed |
| Assertions for invariants | at function entry |
Memory
| Rule | Guideline |
|---|---|
| Meaningful lifetimes | , not just |
for RefCell | Avoid panic |
| Shadowing for transformation | |
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 |
|---|---|---|
| | 1.70 |
| | 1.80 |
| | - |
| | - |
/ | / | - |
| 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.