Bootstrap or guide a reproducible Rust Cargo project with explicit package or workspace shape, cargo new or cargo init usage, edition and MSRV checks, rust-toolchain handling, test layout, and initial validation commands. Use after the Rust project shape is settled or when adding a new Cargo package to an existing repository.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add gaelic-ghost/socket --skill bootstrap-cargo-project --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bootstrap Cargo Project?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gaelic-ghost-bootstrap-cargo-project)More formats (shields.io, HTML) on the badges page.
---
name: bootstrap-cargo-project
description: Bootstrap or guide a reproducible Rust Cargo project with explicit package or workspace shape, cargo new or cargo init usage, edition and MSRV checks, rust-toolchain handling, test layout, and initial validation commands. Use after the Rust project shape is settled or when adding a new Cargo package to an existing repository.
license: Apache-2.0
metadata:
owner: gaelic-ghost
repo: socket
category: rust-bootstrap
allowed-tools: Read Bash(rg:*) Bash(git:*) Bash(cargo:*) Bash(rustc:*) Bash(rustup:*)
---
# Bootstrap Cargo Project
## Purpose
Create or guide a reproducible Rust project scaffold without hiding important Cargo, edition, MSRV, or workspace decisions.
The user should leave with a clear package or workspace layout and validation commands that prove the scaffold works.
## Source Check
Use repo-local Rust files, checked-out dependency sources, Dash MCP or Dash HTTP for installed Rust docsets, and then official Rust documentation when Dash/local coverage is missing or stale:
- [The Cargo Book](https://doc.rust-lang.org/cargo/)
- [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html)
- [`cargo init`](https://doc.rust-lang.org/cargo/commands/cargo-init.html)
- [Cargo package layout](https://doc.rust-lang.org/cargo/guide/project-layout.html)
- [The rustup book](https://rust-lang.github.io/rustup/)
- [Rust editions](https://doc.rust-lang.org/edition-guide/editions/)
Cargo currently defaults new packages to the current Rust edition documented by Cargo. Do not hard-code an older edition in new scaffolds unless the repository compatibility policy calls for it.
## Required Inputs
- target path
- package or workspace name
- project shape
- binary, library, or workspace expectation
- edition expectation
- MSRV expectation
- test expectation
- toolchain pinning expectation
- git initialization or commit expectation
If the user has not selected a package or workspace shape, use `rust:choose-project-shape` first.
## Guidance Workflow
1. Inspect the target:
- existing files
- git state
- `Cargo.toml`
- `Cargo.lock`
- `rust-toolchain.toml` or `rust-toolchain`
- `.cargo/config.toml`
- CI workflows
2. Confirm the project shape and target path.
3. Choose Cargo creation command:
- use `cargo new` for a new package directory
- use `cargo init` for an existing directory
- use `--bin` for executable packages
- use `--lib` for library packages
- use `--vcs none` when inside an existing repository
4. Choose edition and MSRV behavior:
- preserve existing edition in established repos
- use Cargo's current default for new standalone packages unless the user asks for a specific edition
- add `rust-toolchain.toml` only when reproducibility or contributor setup needs it
- do not invent an MSRV without a repository or user decision
5. Add test layout:
- unit tests near implementation for private behavior
- `tests/` for integration tests that use the crate externally
- doctests when public examples should compile
6. Run validation appropriate to the scaffold.
7. Report generated paths and exact commands.
## Command Recipes
Binary package:
```bash
cargo new my-tool --bin
cd my-tool
cargo test
```
Library package:
```bash
cargo new my-library --lib
cd my-library
cargo test
```
Package inside an existing Git repository:
```bash
cargo new crates/my-crate --lib --vcs none
cargo test -p my-crate
```
Existing directory:
```bash
cargo init --lib --vcs none
cargo test
```
Minimal workspace root:
```toml
[workspace]
resolver = "3"
members = [
"crates/my-crate",
]
```
Check the resolver against the repository's edition and Cargo policy before adding it.
## Validation
Prefer the smallest validation that proves the scaffold:
```bash
cargo fmt --check
cargo clippy --all-targets --all-features
cargo test
```
Use `cargo build` when tests are intentionally absent. Use `cargo package` only for publishable crate surfaces.
## Output Shape
Return:
1. `Created or planned layout`: package, crate targets, workspace members, tests, and examples.
2. `Cargo commands`: exact commands run or recommended.
3. `Compatibility behavior`: edition, MSRV, toolchain, and feature constraints.
4. `Validation`: format, lint, build, test, or package results.
5. `Next skill`: implementation, testing, or tooling handoff.
## Guardrails
- Do not scaffold into a non-empty directory without checking the user's intent.
- Do not initialize nested Git repositories inside an existing repository unless the user explicitly asks for that.
- Do not add `rust-toolchain.toml` or pin nightly without a concrete reproducibility reason.
- Do not add dependencies before the project shape and validation path are clear.
- Do not commit generated files unless the user asks for a commit or the active repo workflow calls for one.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!