/rust-core-language
Use when writing or reviewing idiomatic Rust — edition 2024 ownership/borrowing design, or fixing LLM pitfalls (clone tax, unwrap infestation, indexed loops). Not for error-type design (rust-error-handling) or SOLID layout (solid-rust).
$ npx -y skills add fusengine/agents --skill rust-core-language --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/rust-core-language
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when writing or reviewing idiomatic Rust — edition 2024 ownership/borrowing design, or fixing LLM pitfalls (clone tax, unwrap infestation, indexed loops). Not for error-type design (rust-error-handling) or SOLID layout (solid-rust).
SKILL.md
rust-core-language.SKILL.mdname: rust-core-language
description: Use when writing or reviewing idiomatic Rust — edition 2024 ownership/borrowing design, or fixing LLM pitfalls (clone tax, unwrap infestation, indexed loops). Not for error-type design (rust-error-handling) or SOLID layout (solid-rust).
versions:
rust: "1.96.1"
edition: "2024"
references: references/edition-2024.md, references/ownership-borrowing.md, references/llm-pitfalls.md, references/templates/idiomatic-code.md
related-skills: rust-error-handling, fuse-solid:solid-rust
<objective> This skill covers idiomatic Rust for stable 1.96.1, edition 2024: designing function signatures and data flow around ownership and borrowing, and using edition-2024 features (let chains, async closures) correctly.
It also covers correcting the recurring failure modes of machine-generated Rust: the clone tax (cloning to silence the borrow checker instead of redesigning ownership), unwrap/expect infestation, String vs &str misuse, indexed loops instead of iterators, and over-annotated lifetimes the compiler could elide.
Out of scope: error-type design (thiserror vs anyhow) belongs to rust-error-handling; async runtime questions belong to rust-async-concurrency; SOLID/file-layout rules belong to fuse-solid:solid-rust. </objective>
Rust Core Language
Idiomatic Rust for stable **1.96.1**, **edition 2024**. This skill covers what the compiler will not catch for you: ownership design that avoids gratuitous cloning, and the recurring failure modes of machine-generated Rust.
Agent Workflow (MANDATORY)
1. **fuse-ai-pilot:research-expert** — confirm the current stable version and any feature's stabilization release before relying on it (versions move fast). 2. **fuse-ai-pilot:explore-codebase** — read the crate's `edition` in `Cargo.toml` and its existing ownership conventions before adding code. 3. After writing code, run **fuse-ai-pilot:sniper** and `cargo clippy`.
Never state a stabilization version from memory — verify against `doc.rust-lang.org/releases.html`.
Overview
| Topic | When | |-------|------| | Edition 2024 features | Setting up a crate, using let chains / async closures | | Ownership & borrowing | Designing function signatures and data flow | | LLM pitfalls | Reviewing or repairing generated Rust before merge |
Critical Rules
1. **Borrow before you own.** Take `&T` / `&str` / `&[T]` in parameters unless the function must keep the value. See [ownership-borrowing.md](references/ownership-borrowing.md). 2. **`.clone()` needs a reason.** A clone to silence a borrow-checker error is a design smell (the "clone tax"). Redesign ownership first; clone only when a second owner genuinely exists. 3. **No `.unwrap()` / `.expect()` on fallible values without a written justification.** Grep for them before merge. Prefer `?`, `match`, or a documented invariant. 4. **`Arc::clone(&x)` over `x.clone()`** for reference-counted handles — it makes the cheap pointer-copy explicit and distinguishes it from a deep clone. 5. **Iterators over indexed loops.** Prefer `iter()/map()/filter()/collect()` to `for i in 0..len { v[i] }` — no bounds-check noise, no off-by-one. 6. **Let elision work.** Do not annotate lifetimes the compiler can infer.
Verified Facts (source-checked)
- **Edition 2024** stabilized in Rust **1.85.0** (2025-02-20), RFC #3501.
- **Let chains** (`if let A = x && let B = y && cond`) stabilized in **1.88.0**
(2025-06-26), **edition 2024 only** — depends on the `if let` temporary-scope change.
- **Async closures** (`async || { .. }`) stabilized in **1.85.0**.
- **`gen` blocks are UNSTABLE** — feature gate `#![feature(gen_blocks)]`, tracking
issue rust-lang/rust#117078, RFC #3513. Do NOT use on stable; the returned iterators are not yet fused and the syntax may still change.
Reference Guide
Concepts
| Topic | Reference | Load when | |-------|-----------|-----------| | Edition 2024 | [edition-2024.md](references/edition-2024.md) | Configuring `edition`, using let chains / async closures, checking feature stability | | Ownership & borrowing | [ownership-borrowing.md](references/ownership-borrowing.md) | Choosing owned vs borrowed params, designing lifetimes, sharing with Rc/Arc | | LLM pitfalls | [llm-pitfalls.md](references/llm-pitfalls.md) | Reviewing generated Rust for clone tax, unwrap infestation, String/&str, indexed loops |
Templates
| Template | Load when | |----------|-----------| | [idiomatic-code.md](references/templates/idiomatic-code.md) | Need copy-paste examples of borrow-first signatures, iterator chains, and let chains |
Validation Checklist
- [ ] `Cargo.toml` declares `edition = "2024"` if edition-2024 features are used
- [ ] No `.clone()` added purely to satisfy the borrow checker
- [ ] Every `.unwrap()`/`.expect()` has a justifying comment or is provably infallible
- [ ] Parameters take references unless ownership is required
- [ ] No lifetime annotations the compiler can elide
- [ ] `cargo clippy` clean, sniper passed
Read more
name: rust-core-language description: Use when writing or reviewing idiomatic Rust — edition 2024 ownership/borrowing design, or fixing LLM pitfalls (clone tax, unwrap infestation, indexed loops). Not for error-type design (rust-error-handling) or SOLID layout (solid-rust). versions: rust: "1.96.1" edition: "2024" references: references/edition-2024.md, references/ownership-borrowing.md, references/llm-pitfalls.md, references/templates/idiomatic-code.md related-skills: rust-error-handling, fuse-solid:solid-rust
<objective> This skill covers idiomatic Rust for stable 1.96.1, edition 2024: designing function signatures and data flow around ownership and borrowing, and using edition-2024 features (let chains, async closures) correctly.
It also covers correcting the recurring failure modes of machine-generated Rust: the clone tax (cloning to silence the borrow checker instead of redesigning ownership), unwrap/expect infestation, String vs &str misuse, indexed loops instead of iterators, and over-annotated lifetimes the compiler could elide.
Out of scope: error-type design (thiserror vs anyhow) belongs to rust-error-handling; async runtime questions belong to rust-async-concurrency; SOLID/file-layout rules belong to fuse-solid:solid-rust. </objective>
Rust Core Language
Idiomatic Rust for stable **1.96.1**, **edition 2024**. This skill covers what the compiler will not catch for you: ownership design that avoids gratuitous cloning, and the recurring failure modes of machine-generated Rust.
Agent Workflow (MANDATORY)
1. **fuse-ai-pilot:research-expert** — confirm the current stable version and any feature's stabilization release before relying on it (versions move fast). 2. **fuse-ai-pilot:explore-codebase** — read the crate's `edition` in `Cargo.toml` and its existing ownership conventions before adding code. 3. After writing code, run **fuse-ai-pilot:sniper** and `cargo clippy`.
Never state a stabilization version from memory — verify against `doc.rust-lang.org/releases.html`.
Overview
| Topic | When | |-------|------| | Edition 2024 features | Setting up a crate, using let chains / async closures | | Ownership & borrowing | Designing function signatures and data flow | | LLM pitfalls | Reviewing or repairing generated Rust before merge |
Critical Rules
1. **Borrow before you own.** Take `&T` / `&str` / `&[T]` in parameters unless the function must keep the value. See [ownership-borrowing.md](references/ownership-borrowing.md). 2. **`.clone()` needs a reason.** A clone to silence a borrow-checker error is a design smell (the "clone tax"). Redesign ownership first; clone only when a second owner genuinely exists. 3. **No `.unwrap()` / `.expect()` on fallible values without a written justification.** Grep for them before merge. Prefer `?`, `match`, or a documented invariant. 4. **`Arc::clone(&x)` over `x.clone()`** for reference-counted handles — it makes the cheap pointer-copy explicit and distinguishes it from a deep clone. 5. **Iterators over indexed loops.** Prefer `iter()/map()/filter()/collect()` to `for i in 0..len { v[i] }` — no bounds-check noise, no off-by-one. 6. **Let elision work.** Do not annotate lifetimes the compiler can infer.
Verified Facts (source-checked)
- **Edition 2024** stabilized in Rust **1.85.0** (2025-02-20), RFC #3501.
- **Let chains** (`if let A = x && let B = y && cond`) stabilized in **1.88.0**
(2025-06-26), **edition 2024 only** — depends on the `if let` temporary-scope change.
- **Async closures** (`async || { .. }`) stabilized in **1.85.0**.
- **`gen` blocks are UNSTABLE** — feature gate `#![feature(gen_blocks)]`, tracking
issue rust-lang/rust#117078, RFC #3513. Do NOT use on stable; the returned iterators are not yet fused and the syntax may still change.
Reference Guide
Concepts
| Topic | Reference | Load when | |-------|-----------|-----------| | Edition 2024 | [edition-2024.md](references/edition-2024.md) | Configuring `edition`, using let chains / async closures, checking feature stability | | Ownership & borrowing | [ownership-borrowing.md](references/ownership-borrowing.md) | Choosing owned vs borrowed params, designing lifetimes, sharing with Rc/Arc | | LLM pitfalls | [llm-pitfalls.md](references/llm-pitfalls.md) | Reviewing generated Rust for clone tax, unwrap infestation, String/&str, indexed loops |
Templates
| Template | Load when | |----------|-----------| | [idiomatic-code.md](references/templates/idiomatic-code.md) | Need copy-paste examples of borrow-first signatures, iterator chains, and let chains |
Validation Checklist
- [ ] `Cargo.toml` declares `edition = "2024"` if edition-2024 features are used
- [ ] No `.clone()` added purely to satisfy the borrow checker
- [ ] Every `.unwrap()`/`.expect()` has a justifying comment or is provably infallible
- [ ] Parameters take references unless ownership is required
- [ ] No lifetime annotations the compiler can elide
- [ ] `cargo clippy` clean, sniper passed
A plugin ecosystem that turns Claude Code into a supervised, multi-agent development environment.
Repo: fusengine/agents
Other skills on fusengine-agents.
- /agent-creator
Use when creating expert agents. Generates agent.md with frontmatter, hooks, required sections, and skill references.
Open skill - /apex-methodology
Use when starting ANY development task -- feature, bug fix, refactor, hotfix (triggers: implement, create, build, fix, add feature, refactor, develop).
Open skill - /brainstorming
Use when creating a feature/component or adding functionality. Fires BEFORE APEX Analyze to refine requirements via structured questioning.
Open skill - /challenge
Use before a root-cause, done/verified claim, irreversible action, or 2nd-time fix reaches the owner (APEX or plain conversation); also fires at every eLicit/Verify gate. Not for code correctness (use sniper).
Open skill - /code-quality
Use when validating code quality after modifications -- SOLID compliance, DRY duplication, linter errors, architecture violations. Do NOT use for functional verification (run verification FIRST, then code-quality).
Open skill - /elicitation
Use when an expert agent self-reviews and self-corrects code after the Execute phase, before sniper validation (BMAD-METHOD elicitation techniques).
Open skill

