archive/upstream/chasebuild-agent-skills/rust/skills/coding-guidelines/SKILL.md
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, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名
npx skillsauth add 0xharryriddle/codex-field-kit coding-guidelinesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
4 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| 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 |
| 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 |
| 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) |
| Rule | Guideline |
|------|-----------|
| Use ? propagation | Not try!() macro |
| expect() over unwrap() | When value guaranteed |
| Assertions for invariants | assert! at function entry |
| Rule | Guideline |
|------|-----------|
| Meaningful lifetimes | 'src, 'ctx not just 'a |
| try_borrow() for RefCell | Avoid panic |
| Shadowing for transformation | let x = x.parse()? |
| Rule | Guideline | |------|-----------| | Identify lock ordering | Prevent deadlocks | | Atomics for primitives | Not Mutex for bool/usize | | Choose memory order carefully | Relaxed/Acquire/Release/SeqCst |
| Rule | Guideline | |------|-----------| | Sync for CPU-bound | Async is for I/O | | Don't hold locks across await | Use scoped guards |
| Rule | Guideline | |------|-----------| | Avoid unless necessary | Prefer functions/generics | | Follow Rust syntax | Macro input should look like Rust |
| 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 |
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.
development
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.
testing
[EXPLICIT INVOCATION ONLY] Creates dependency-aware implementation plans optimized for parallel multi-agent execution.
testing
Only to be triggered by explicit super-swarm-spark commands.
development
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).