From beagle-rust
Guides scaffolding of new Rust projects with Cargo.toml best practices, clippy/rustfmt linting, GitHub Actions CI, multi-crate workspaces, and project structures.
npx claudepluginhub existential-birds/beagle --plugin beagle-rustThis skill uses the workspace's default tool permissions.
Step-by-step guidance for setting up new Rust projects with proper configuration, linting, and CI.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Step-by-step guidance for setting up new Rust projects with proper configuration, linting, and CI.
| Topic | Reference |
|---|---|
| Cargo.toml configuration, profiles, dependencies | references/cargo-config.md |
| Workspace organization, member layout, shared deps | references/workspace-layout.md |
| GitHub Actions CI, caching, MSRV checks | references/ci-setup.md |
# Binary
cargo init my-app
# Library
cargo init --lib my-lib
# Workspace (create Cargo.toml manually)
mkdir my-workspace && cd my-workspace
Set edition, rust-version (MSRV), and metadata:
[package]
name = "my-app"
version = "0.1.0"
edition = "2024"
rust-version = "1.85"
Add clippy and rustfmt configuration:
# Cargo.toml
[lints.clippy]
all = { level = "deny", priority = 10 }
pedantic = { level = "warn", priority = 3 }
[lints.rust]
future-incompatible = "warn"
nonstandard_style = "deny"
# rustfmt.toml
edition = "2024"
reorder_imports = true
imports_granularity = "Crate"
group_imports = "StdExternalCrate"
[profile.release]
lto = true
codegen-units = 1
strip = true
Add GitHub Actions workflow for check, clippy, test, and fmt. See references/ci-setup.md.
Cargo.lock (reproducible builds)Cargo.lock (consumers resolve their own versions).gitignore for libraries: Cargo.lockFor library crates, enable doc lints:
// src/lib.rs
#![deny(missing_docs)]
| Use | When |
|---|---|
| Single crate | Small project, CLI tool, simple library |
| Workspace | Multiple related crates, shared dependencies, separate compile targets |
Workspaces reduce compile times by sharing dependencies and build artifacts across members.
my-app/
Cargo.toml
rustfmt.toml
src/
main.rs
lib.rs # separate logic from entry point
tests/
integration_test.rs
my-lib/
Cargo.toml
rustfmt.toml
src/
lib.rs
module_a.rs
module_b/
mod.rs
types.rs
tests/
api_test.rs
examples/
basic_usage.rs
my-workspace/
Cargo.toml # [workspace] definition
rustfmt.toml # shared formatting
crates/
core/ # shared types and logic
api/ # HTTP server
cli/ # command-line interface
serde = "=1.0.210"serde = "1"tokio = { version = "1", features = ["rt-multi-thread", "macros"] }[dev-dependencies] for test-only cratescargo tree for duplicate versionscargo audit for security vulnerabilities