Rust Orchestrator
The single entry skill for Rust work. It locates the task on the write ↔ verify axis
and delegates to one of two specialist spokes. The cross-cutting model both spokes share —
the library-vs-application error strategy (thiserror vs anyhow), the type-driven design
stance, and the standard cargo toolchain — lives in rust-core; read it before choosing an
error type or shaping a public API.
Cluster map (intent → spoke)
rust-patterns — idiomatic production code. Ownership & borrowing, Result/? error
propagation, enums + exhaustive matching, traits/generics, Arc<Mutex<T>> and async
concurrency, builder/newtype patterns, and domain-organized crate/module layout.
rust-testing — verification. TDD RED-GREEN-REFACTOR, #[cfg(test)] unit tests,
tests/ integration binaries, #[tokio::test] async tests, rstest parameterization,
proptest property tests, mockall trait mocking, doc tests, Criterion benches, and
cargo-llvm-cov coverage gates.
rust-core (shared reference) — the error-strategy decision both spokes turn on, plus
shared cargo conventions, the version/tooling matrix, and guardrails.
Folded spokes
rust-coding-skill — deep-dive authoring companion to rust-patterns. Goes
finer-grained on data modeling (struct/enum/newtype, &str vs String,
Cow/Arc ownership choices, modeling invariants with types like NonZeroU32),
impl-block organization (placement, constructor/getter/mutation grouping, builders),
macros (derive, focused declarative macros, proc-macro boundaries), and build-speed
tuning (mold linker, sccache, cargo check iteration, workspace splitting,
dev/release profiles). Route here when the ask is specifically about how to shape the
types/impls/macros or speed up compiles; route to rust-patterns for broader idiomatic
review (borrow-checker fights, concurrency, error propagation) and to rust-core for the
error-strategy and toolchain model both share.
Routing rules by intent
Writing or shaping code → rust-patterns
- "Is this idiomatic?" / code review →
rust-patterns
- Ownership, lifetimes,
Cow, "stop cloning to please the borrow checker" → rust-patterns
- Error design —
thiserror for a library, anyhow for a binary → rust-patterns (model in rust-core)
- Modeling states as enums, newtypes, builders, trait objects vs generics →
rust-patterns
- Concurrency —
Arc<Mutex<T>>, channels, async/Tokio → rust-patterns
- Crate/module structure,
pub surface, visibility → rust-patterns
- Detailed data modeling (
struct/enum/newtype, ownership of each field), impl-block
layout, writing macros, or build-speed tuning (mold, sccache, cargo check,
workspaces) → rust-coding-skill
Proving or measuring code → rust-testing
- "Write tests for this" / add coverage →
rust-testing
- TDD workflow / "test first" →
rust-testing
- Async test, integration test, mock a dependency →
rust-testing
- Property-based testing, fuzz-style invariants →
rust-testing
- Benchmarks, coverage thresholds, CI test matrix →
rust-testing
Touches the boundary between both
- Error types are designed in
rust-patterns and asserted in rust-testing
(matches!(err, …), Result-returning tests) — keep the variant shape consistent via rust-core.
Standard flow
- Locate the task on the write ↔ verify axis: shaping/refactoring code →
rust-patterns;
proving/measuring it → rust-testing.
- If it touches error types, public API shape, or the cargo toolchain, pull the model from
rust-core first — the error strategy chosen in code dictates how tests assert on it.
- Delegate to the spoke(s). A "build it the right way with tests" ask fans out in TDD order:
rust-testing (write the failing test) → rust-patterns (implement idiomatically) →
rust-testing (coverage gate).
- Return: chosen spoke(s), the error strategy implied (lib
thiserror vs app anyhow), and the
next action.
Guardrails
See rust-core. In short: let the type system do the work — ? over unwrap() in
production, model illegal states as unrepresentable, keep unsafe minimal and documented with a
# Safety comment, and expose the narrowest pub surface. Pick thiserror for libraries and
anyhow for applications, and never silently widen that boundary. Tests follow TDD, stay
independent, never sleep(), and assert on typed error variants — not panic strings — wherever
the code returns a Result.
Loading spokes on demand
To keep CLI startup context lean, this cluster's spokes are not separately registered as skills — only this orchestrator and its *-core are enumerated. When you route to a spoke named above, load it on demand by reading its file:
~/.agents/skill-clusters/skills/<spoke-name>/SKILL.md (or skills/<spoke-name>/SKILL.md inside the skill-clusters repo).
Source: Sheshiyer/skill-clusters — distributed by TomeVault.
1---2name: rust-orchestrator3description: Route a Rust task to the right skill — idiomatic patterns (ownership, errors, traits, concurrency, crate layout) versus testing (unit, integration, async, property-based, mocking, coverage, TDD). USE WHEN a user is writing, reviewing, refactoring, or testing Rust but hasn't named the specific concern. Use when this capability is needed.4---56# Rust Orchestrator78The single entry skill for Rust work. It locates the task on the **write ↔ verify** axis9and delegates to one of two specialist spokes. The cross-cutting model both spokes share —10the library-vs-application error strategy (`thiserror` vs `anyhow`), the type-driven design11stance, and the standard cargo toolchain — lives in `rust-core`; read it before choosing an12error type or shaping a public API.1314## Cluster map (intent → spoke)1516- **`rust-patterns`** — idiomatic production code. Ownership & borrowing, `Result`/`?` error17 propagation, enums + exhaustive matching, traits/generics, `Arc<Mutex<T>>` and async18 concurrency, builder/newtype patterns, and domain-organized crate/module layout.19- **`rust-testing`** — verification. TDD RED-GREEN-REFACTOR, `#[cfg(test)]` unit tests,20 `tests/` integration binaries, `#[tokio::test]` async tests, `rstest` parameterization,21 `proptest` property tests, `mockall` trait mocking, doc tests, Criterion benches, and22 `cargo-llvm-cov` coverage gates.23- **`rust-core`** *(shared reference)* — the error-strategy decision both spokes turn on, plus24 shared cargo conventions, the version/tooling matrix, and guardrails.2526## Folded spokes2728- **`rust-coding-skill`** — deep-dive authoring companion to `rust-patterns`. Goes29 finer-grained on **data modeling** (`struct`/`enum`/`newtype`, `&str` vs `String`,30 `Cow`/`Arc` ownership choices, modeling invariants with types like `NonZeroU32`),31 **impl-block organization** (placement, constructor/getter/mutation grouping, builders),32 **macros** (derive, focused declarative macros, proc-macro boundaries), and **build-speed33 tuning** (`mold` linker, `sccache`, `cargo check` iteration, workspace splitting,34 dev/release profiles). Route here when the ask is specifically about *how to shape the35 types/impls/macros* or *speed up compiles*; route to `rust-patterns` for broader idiomatic36 review (borrow-checker fights, concurrency, error propagation) and to `rust-core` for the37 error-strategy and toolchain model both share.3839## Routing rules by intent4041**Writing or shaping code → `rust-patterns`**42- "Is this idiomatic?" / code review → `rust-patterns`43- Ownership, lifetimes, `Cow`, "stop cloning to please the borrow checker" → `rust-patterns`44- Error design — `thiserror` for a library, `anyhow` for a binary → `rust-patterns` *(model in `rust-core`)*45- Modeling states as enums, newtypes, builders, trait objects vs generics → `rust-patterns`46- Concurrency — `Arc<Mutex<T>>`, channels, async/Tokio → `rust-patterns`47- Crate/module structure, `pub` surface, visibility → `rust-patterns`48- Detailed data modeling (`struct`/`enum`/`newtype`, ownership of each field), impl-block49 layout, writing macros, or **build-speed** tuning (`mold`, `sccache`, `cargo check`,50 workspaces) → `rust-coding-skill`5152**Proving or measuring code → `rust-testing`**53- "Write tests for this" / add coverage → `rust-testing`54- TDD workflow / "test first" → `rust-testing`55- Async test, integration test, mock a dependency → `rust-testing`56- Property-based testing, fuzz-style invariants → `rust-testing`57- Benchmarks, coverage thresholds, CI test matrix → `rust-testing`5859**Touches the boundary between both**60- Error *types* are designed in `rust-patterns` and *asserted* in `rust-testing`61 (`matches!(err, …)`, `Result`-returning tests) — keep the variant shape consistent via `rust-core`.6263## Standard flow64651. Locate the task on the **write ↔ verify** axis: shaping/refactoring code → `rust-patterns`;66 proving/measuring it → `rust-testing`.672. If it touches **error types, public API shape, or the cargo toolchain**, pull the model from68 `rust-core` first — the error strategy chosen in code dictates how tests assert on it.693. Delegate to the spoke(s). A "build it the right way *with* tests" ask fans out in TDD order:70 `rust-testing` (write the failing test) → `rust-patterns` (implement idiomatically) →71 `rust-testing` (coverage gate).724. Return: chosen spoke(s), the error strategy implied (lib `thiserror` vs app `anyhow`), and the73 next action.7475## Guardrails7677See `rust-core`. In short: **let the type system do the work** — `?` over `unwrap()` in78production, model illegal states as unrepresentable, keep `unsafe` minimal and documented with a79`# Safety` comment, and expose the narrowest `pub` surface. Pick `thiserror` for libraries and80`anyhow` for applications, and never silently widen that boundary. Tests follow TDD, stay81independent, never `sleep()`, and assert on typed error variants — not panic strings — wherever82the code returns a `Result`.8384## Loading spokes on demand8586To keep CLI startup context lean, this cluster's spokes are **not** separately registered as skills — only this orchestrator and its `*-core` are enumerated. When you route to a spoke named above, **load it on demand** by reading its file:8788`~/.agents/skill-clusters/skills/<spoke-name>/SKILL.md` (or `skills/<spoke-name>/SKILL.md` inside the skill-clusters repo).8990---91> Source: [Sheshiyer/skill-clusters](https://github.com/Sheshiyer/skill-clusters) — distributed by [TomeVault](https://tomevault.io).92<!-- tomevault:4.0:skill_md:2026-06-16 -->