Shared conventions and development tasks for Rust projects in the base-rs organization.
Rust projects should share a small set of clear conventions and a reliable release process without repeating task wiring in every repository.
If socketry-cargo-bake is installed, run cargo uninstall socketry-cargo-bake first. Both packages provide the cargo-bake binary.
Install the launcher and create the private task package:
cargo install bake --locked
cargo bake --regenerateLet Cargo select the current dependency version:
cargo add --manifest-path bake/Cargo.toml base-projectIn bake/Cargo.toml, prefix the version selected by Cargo with >= to make it an open-ended minimum. Keep that actual minimum in the manifest and the resolved version in Cargo.lock; the setup documentation does not need a copy of either version.
Then run cargo bake --regenerate again to link the dependency's tasks. The command keeps generated links separate from task source, so no manual import in main.rs is needed. Run cargo bake --list to see the available tasks. The open-ended minimum requirement keeps this development dependency eligible for newer releases. Cargo.lock records the selected version for reproducible builds; update it deliberately when adopting a newer release.
This adds the standard Cargo, release, license, Readme, Markdown, agent-context, and testing tasks, including test and test:external. It also registers a version-bump hook that updates the project's standard files.
It also includes base-design, which provides the design/*.md convention and the base-design-author and base-design-review skills. Capture specific project requirements, consider them before implementation, and validate them during pull request review. base-design contributes guidance and skills without adding Bake tasks.
See the repository setup skill for the minimal Cargo configuration and the conventions for repository layout, documentation, and code conventions. The Rust Repository Layout explains source organization. The testing skill sets expectations and points to bake-test for task and workflow details.
Prepare a release with cargo bake cargo:version:patch (or minor, major, or bump --version X.Y.Z), commit with a Release: TAG Git trailer matching the configured release tag (for this repository, vVERSION), then run cargo bake cargo:release and open a pull request. After review and merge, GitHub Actions publishes the release when the configured crates-io environment approves it, then creates or updates the matching GitHub Release from releases.md. See the shared Releasing skill for the standard release process.
See releases.md for the full release history.
-
Publish as
base-projectin thebase-rsorganization, with package versions starting at 0.1.0. -
Require the task providers migrated to the source-backed
base-markdowndocument AST, including thebake-markdownAPI with parser types frombase-markdown. -
Include
base-designguidance and skills for project-specificdesign/*.mdrequirements, with discovery before implementation and review during pull request preparation. -
Use
base-markdownthroughout the shared task stack. -
Adopt the new agent-context installer and
metadata.type: skilldeclarations. Discover guidance withagent:context:listandagent:context:show; the index and separate skill tasks are no longer available. -
Require a
Release: vVERSIONGit trailer on the final release commit; version changes alone no longer trigger publication.
Please open an issue or pull request on GitHub.
Run cargo bake agent:context:install to install shared context and skills. Use cargo bake agent:context:list and cargo bake agent:context:show to discover relevant guides, follow agents.md if present, and apply skills under .agents/skills/. The installer preserves repository-owned agents.md; it does not create or regenerate that file.
Before planning or changing behavior, discover and read applicable design/*.md. Use base-design-review to assess plans and changes, and base-design-author when user requirements are introduced, changed, or removed. Review design compliance before opening or updating a pull request.