Rust Best Practices

Oriente le code Rust vers des pratiques idiomatiques de gestion d'erreurs, d'emprunt, d'itérateurs et de patterns asynchrones

par majiayu000 · majiayu000/spellbook

Testé · Fonctionne ★ 8.8/10

Rust Best Practices — Oriente le code Rust vers des pratiques idiomatiques de gestion d'erreurs, d'emprunt, d'itérateurs et de patterns asynchrones

Ce que fait

Compétence de guidance qui oriente le code Rust vers des patterns idiomatiques : gestion d'erreurs Result/thiserror, emprunt plutôt que propriété, itérateurs, pas de unwrap, et conventions cargo/clippy/tokio. Se déclenche lors de l'écriture, de la révision ou de l'optimisation de code Rust ou lors de la gestion des durées de vie, du borrow checker et de Rust asynchrone.

Rapport de test

SKILL.md récupéré en brut (HTTP 200) ; le frontmatter est parsé avec name+description et allowed-tools. Le corps est entièrement autonome — pas de références de fichiers/scripts à vérifier ponctuellement, pas de failles de sécurité (pas de curl|sh, base64, exfiltration ou texte d'injection), pas de chemins codés en dur. Formulations de déclenchement — DEVRAIT (toutes jugées chargées) : "fix this borrow checker error in my Rust struct", "write an async tokio function to download files concurrently in Rust", "review my Rust crate's error handling and make it more idiomatic" ; NE DEVRAIT PAS (toutes deux jugées ignorées) : "optimize my Python script's memory usage" (memory/optimize mais pas Rust), "explain the history of the Rust programming language" (Rust nommé mais pas écriture/révision/optimisation de code) — 5/5. Test de sortie : a écrit un parseur de configuration get_port de deux manières dans un bloc-notes /tmp (baseline.rs, skill.rs). La référence panique sur une entrée malformée (index parts[1] + parse().unwrap()) et renvoie silencieusement 0 sur un port manquant ; la version de la compétence — suivant strictement le corps — prend &str, renvoie Result<u16, ConfigError> via un enum thiserror, utilise des itérateurs split_once/find_map, pas de unwrap, et ajoute 3 tests #[cfg(test)]. Six différences concrètes, chacune traçable à une règle de compétence. Pas de rustc/cargo disponible donc je n'ai pas compilé (la version de la compétence utilise thiserror) ; logique vérifiée par traçage. La documentation est globalement précise mais l'attribution "Microsoft Pragmatic Rust Guidelines" survend les conseils génériques idiomatiques de Rust, coûtant un point de documentation.

Testé le: 2026-07-31 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/majiayu000/spellbook.git /tmp/rust-best-practices-src
mkdir -p ~/.claude/skills/rust-best-practices
cp /tmp/rust-best-practices-src/plugins/rust-dev/skills/rust-best-practices.SKILL.md ~/.claude/skills/rust-best-practices/SKILL.md
# NOTE: nonstandard layout in repo — the skill is a flat file `rust-best-practices.SKILL.md`
#       (not a directory), so the cp above renames it to SKILL.md at the correct path.
# Self-contained: no scripts, references, or external deps. Guidance-only skill.
# Plugin-marketplace alternative: the repo ships a `rust-dev` plugin
#   (plugins/rust-dev/.claude-plugin/plugin.json) that also bundles this skill.

Commandes et exemples de prompts

  • /rust-best-practicesOriente le code Rust vers des pratiques idiomatiques de gestion d'erreurs, d'emprunt, d'itérateurs et de patterns asynchrones

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

  • Review this Rust code for idiomatic patterns
  • Fix this borrow checker error in my function
  • Optimize this async Rust code for performance