Package workflow
Skill gaelic-ghost/socket/plugins/rust-skills/skills/package-workflow
Prepare and validate Rust Cargo package surfaces, including Cargo.toml metadata, rust-version and MSRV policy, license/readme/repository fields, include and exclude rules, path dependency restrictions, Cargo.lock policy, cargo package dry runs, and publish versus no-publish decisions. Use for publishable crates, package metadata cleanup, crates.io readiness, or release-adjacent Rust package checks.From its SKILL.md
npx -y skills add gaelic-ghost/socket --skill package-workflowAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.0 KB, 957 tokens by cl100k_base, as published. Nobody here has run it
Rust Package Workflow
Purpose
Prepare a Cargo package surface so it is honest, fetchable, and ready for the user's intended distribution path.
The practical goal is to catch package metadata drift, local-only dependencies, missing compatibility policy, and accidental publishing before a release or publication step.
Source Check
Use repo-local Cargo files, checked-out dependency sources, Dash MCP or Dash HTTP for installed Cargo docsets, and then official Cargo documentation when Dash/local coverage is missing or stale:
- Cargo manifest format
cargo packagecargo publish- Cargo workspaces
- Cargo features reference
- Cargo SemVer compatibility
Translate packaging rules into the exact package field, dependency, command, or release decision they affect.
Repository Inspection
Inspect:
Cargo.tomlCargo.lock- workspace root
Cargo.toml README.mdLICENSEorLICENSE-*- package docs and examples
.cargo/config.toml- CI workflows
- git status and ignored files if package inclusion matters
Manifest Checks
For publishable crates, check the relevant [package] fields:
nameversioneditionrust-versiondescriptionlicenseorlicense-filerepositoryhomepageordocumentationwhen appropriatereadmekeywordscategoriesincludeorexcludewhen package contents need curationpublishwhen publication should be restricted or disabled
Do not invent metadata. If a package is not meant to publish, prefer an explicit publish = false or equivalent repo policy instead of polishing crates.io metadata for a private crate.
Dependency Checks
Cargo package validation is especially useful because publishable packages cannot rely on local-only dependency paths unless version metadata makes the registry dependency usable.
Check for:
- path dependencies
- git dependencies that cannot be fetched by intended users
- optional dependencies tied to features
- dev-dependencies that are only needed for tests/examples
- workspace-inherited dependency versions
- unpublished sibling crates
Do not commit machine-local dependency paths in public or shared packages.
Lockfile Policy
Preserve the repo's existing lockfile policy.
General guidance:
- commit
Cargo.lockfor binaries, applications, examples that must reproduce, and most workspaces with executable surfaces - library-only crates may choose not to commit
Cargo.lock, but follow existing repo policy - do not delete or regenerate
Cargo.lockas package cleanup unless dependency resolution is part of the task
Validation Commands
Use dry-run package validation before publishing or release-adjacent package changes:
cargo package --dry-run
Package one workspace member:
cargo package -p package-name --dry-run
Validate publish-facing behavior with selected features when needed:
cargo package -p package-name --all-features --dry-run
Run normal validation before or alongside package checks:
cargo test -p package-name
cargo clippy -p package-name --all-targets --all-features
cargo fmt --check
Do not run cargo publish unless the user explicitly asks to publish and the repository release process is ready.
Output Shape
Return:
Package intent: publishable crate, private crate, binary distribution, workspace member, or no-publish package.Manifest state: metadata, license, repository, readme, rust-version, publish, include, and exclude findings.Dependency state: registry, git, path, optional, dev, and workspace dependency concerns.Lockfile policy: observed policy and whether it changed.Validation: exact package, test, lint, and format commands run or skipped.Release impact: whether publishing, SemVer, MSRV, or downstream compatibility is affected.
Guardrails
- Do not publish by default.
- Do not invent crates.io metadata for private crates.
- Do not hide local path dependencies behind package docs.
- Do not raise MSRV or change SemVer meaning silently.
- Do not remove lockfiles without checking repo policy and executable surfaces.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.