跳到正文
cccskills
免费在 GitHub 公开

rust

Provides Rust coding best practices for structure, patterns, performance, and error handling. Use when writing or reviewing Rust code, or when the user asks for Rust style guidance.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(11)

  • SKILL.md4.1 KB
  • agent-friendly-cli/SKILL.md5.5 KB
  • anti-patterns/SKILL.md2.9 KB
  • coding-guidelines/SKILL.md3.0 KB
  • concurrency/SKILL.md3.8 KB
  • error-handling/SKILL.md3.1 KB
  • ownership/SKILL.md3.1 KB
  • performance/SKILL.md2.8 KB
  • rust.mdc9.1 KB
  • type-driven-design/SKILL.md3.2 KB
  • zero-cost-abstractions/SKILL.md3.2 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Rust Best Practices

Quick Start

Apply these rules by default when touching Rust:

  1. Organize code by feature/module, not by file type
  2. Keep structs small and focused; split large data into composable types
  3. Prefer Result<T, E> for recoverable errors, avoid panic!
  4. Document every unsafe block with a // SAFETY: rationale
  5. Default to Vec/HashMap; pre-allocate when size is known
  6. For CLIs, expose non-interactive flags, stdin/file input, actionable errors, and example-rich help

Workflow (use this order)

  1. Clarify scope: new module, refactor, or review.
  2. Organize by feature/module; keep type + impls together.
  3. Ensure error handling uses Result (avoid panic! except invariants).
  4. Document unsafe blocks with // SAFETY: and minimal scope.
  5. Choose data structures intentionally and pre-allocate when size is known.
  6. For binaries, define the automation contract: flags, stdin, output format, exit codes, and dry-run behavior.
  7. Add or update tests (unit tests + rustdoc examples for public APIs; CLI help/error tests for binaries).

Review Checklist

  • Module layout is feature-driven and cohesive.
  • Result used for recoverable errors; panic! justified.
  • All unsafe blocks have explicit // SAFETY: rationale.
  • No oversized structs; data is composed cleanly.
  • Collections pre-allocated when size is known.
  • CLI surfaces can run unattended and explain retry commands on usage errors.
  • Tests and doc examples cover edge cases.

Sub-Skills

Load these for focused guidance on specific topics:

SkillWhen to Use
ownershipOwnership/borrow errors (E0382, E0597), lifetime design
error-handlingResult vs Option, anyhow vs thiserror, custom error types
concurrencySend/Sync errors, threads vs async, shared state design
zero-cost-abstractionsGenerics vs dyn Trait, object safety, dispatch choice
type-driven-designNewtypes, type state, PhantomData, invalid states
performanceProfiling, allocation reduction, cache, parallelism
agent-friendly-cliRust binaries, clap command trees, diagnostics/codegen tools
anti-patternsCode review, clone/unwrap overuse, idiomatic rewrites
coding-guidelinesNaming, style, modern crate recommendations

Local Resources

  • rust.mdc — authoritative Rust rule file (always applied)

Code Organization

  • Feature-driven modules: Keep a struct, its enums, and impl blocks together
  • Small, cohesive types: Split large structs into composable pieces

Common Patterns

  • Newtype for type safety: Wrap primitives to avoid ID/value mixups
  • Builder for complex construction: Use builders for many optional fields
  • Minimal generic bounds: Put bounds on impl/functions, not the type
  • CLI contracts for binaries: Make command inputs, outputs, exit codes, and destructive behavior explicit

Performance Guidance

  • Default to Vec and HashMap; switch only with evidence or requirements
  • Pre-allocate capacity when the approximate size is known

Error Handling and Safety

  • Use Result<T, E> for recoverable errors
  • Reserve panic! for invariants or unrecoverable bugs
  • Add a // SAFETY: rationale before every unsafe block

Agent-Friendly CLIs

  • Prefer clap command trees with real examples in top-level and subcommand help
  • Accept stdin (--stdin or --input -) when callers may pipe generated code
  • Provide structured output such as --json for automation
  • Validate usage before expensive work and return actionable retry examples
  • Put destructive writes behind --dry-run plus explicit confirmation

Testing

  • Prefer unit tests with #[test] in a tests module
  • Use rustdoc examples for public APIs to keep docs executable
  • Test CLI help text, usage errors, and structured output for binaries

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Add an iOS App Clip target to an Expo app. Use when the user mentions App Clip, AASA, apple-app-site-association, appclips, smart app banner, or wants to ship a lightweight iOS Clip invoked from a URL alongside their parent app.

中文简介正在准备中。当前显示原文说明。

heyAyushh/stacc32026年9月21日 更新

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

中文简介正在准备中。当前显示原文说明。

heyAyushh/stacc32026年9月21日 更新

Add Agentation visual feedback toolbar to a Next.js project

中文简介正在准备中。当前显示原文说明。

heyAyushh/stacc32026年9月21日 更新

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

中文简介正在准备中。当前显示原文说明。

heyAyushh/stacc32026年9月21日 更新

Derive and implement first-principles audio-coupled haptic and kinetic UI feedback. Use when designing, reviewing, or coding haptics/audio for mobile apps, native iOS/Android, React Native/Expo, SwiftUI, games, detent pickers, toggles, sliders, page curls, scroll gestures, wallet/signature flows, Solana transactions, backend/realtime state changes, confirmations, settlements, and semantic UI events where feedback should follow signal math instead of ad hoc vibration calls.

中文简介正在准备中。当前显示原文说明。

heyAyushh/stacc32026年9月21日 更新

Babysit a GitHub pull request during a user-approved monitoring window by polling review comments, CI checks/workflow runs, and mergeability state. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and report fresh review feedback. Use when the user asks Codex to monitor a PR, watch CI, handle review comments, or keep an eye on failures and feedback on an open PR.

中文简介正在准备中。当前显示原文说明。

heyAyushh/stacc32026年9月21日 更新

查看 heyAyushh 的全部技能

报告此技能的问题