Crate Publishing Skill
Project scaffolding and crates.io releases - an Agent Skill for Rust 1.97.0 and workspace publishing.
What This Skill Does
Creates library crate skeletons with lib.rs, examples/, tests/, README.md, LICENSE, and Cargo.toml metadata (description, repository, keywords, categories, rust-version). Runs cargo publish --dry-run and doc test validation.
When to Invoke
- Open-sourcing internal utility crate
- Preparing first
0.1.0publish - Reviewing publish PR for metadata and semver
- Splitting module from monolith into standalone crate
Inputs
| Input | Why |
|---|---|
| Crate name | crates.io availability |
| License | SPDX identifier |
| MSRV | rust-version field |
| Public API scope | pub surface minimization |
Outputs
Cargo.tomlwith workspace-ready depssrc/lib.rswith crate-level docsexamples/basic.rsCHANGELOG.mdstub- Publish checklist commands
Guardrails
cargo publish --dry-runmust pass before real publish.- No path/git deps in published manifest unless versioned on crates.io.
- docs.rs builds -
package.metadata.docs.rsfeatures set. - SemVer on 0.x - document breaking minor policy.
- Crate name matches repo - discoverability and trust.
Recipe
cargo test --all-features
cargo doc --no-deps
cargo publish --dry-run
cargo package --list
# cargo publish when readyWorking Example
[package]
name = "acme-utils"
version = "0.1.0"
edition = "2024"
rust-version = "1.97"
license = "MIT OR Apache-2.0"
description = "Shared utilities for Acme Rust services"
repository = "https://github.com/acme/acme-utils"FAQs
Workspace publish order?
Publish dependency crates first; use cargo release or release-plz for ordering.
Include binaries on crates.io?
Libraries yes; application binaries usually ship via git tags and containers, not crates.io.
Yank policy?
Yank only broken releases; document replacement version in README.
Related
Stack versions: This page was written for Rust 1.97.0 (edition 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, and Polars 0.46+.