Bake tasks for discovering and installing context files shipped by Cargo dependencies. It is the Rust counterpart to the Ruby agent-context gem.
Add the task library to the unpublished bake/ crate in your project, then link it once from that crate's main.rs:
[dependencies]
bake = "0.17"
bake-agent-context = "0.1"use bake_agent_context as _;
fn main() -> bake::Result<()> {
bake::Registry::discover()?.run()
}Install context and skills from all resolved dependencies and update the generated context index:
cargo bake agent:context:install
cargo bake agent:context:indexOther tasks:
cargo bake agent:context:list
cargo bake agent:context:list --package socketry-executor
cargo bake agent:context:show --package socketry-executor --file getting-started
cargo bake agent:context:install --package socketry-executor
cargo bake agent:context:skill:list
cargo bake agent:context:skill:install
cargo bake agent:context:skill:install --package socketry-executor --skill socketry-executor-initial-gem-setupcargo bake agent:context:install writes .agents/context/index.md and maintains a marked section in the local Git exclude file (.git/info/exclude) for generated context, the skill registry, and dependency-installed skill directories. These exclusions stay in the checkout and are not committed. Project-owned skill directories remain trackable. The task does not create or modify the repository owner's agents.md; a project can add a stable link to the generated index if desired.
Context documents marked with type: skill are installed only under .agents/skills/, along with their companion resources. Their installed names are prefixed with the provider crate name, and they are omitted from .agents/context/ and its generated index. Use agent:context:install --package CRATE to install both context and skills from one provider. The separate skill tasks are useful for listing skills or installing a selected skill. Project-owned skills can live in .agents/skills/ and remain version controlled.
Add a top-level context/ directory to the crate and ensure Cargo packages it. When using an explicit include list in Cargo.toml, include context/**:
my-crate/
├── Cargo.toml
├── context/
│ └── getting-started.md
└── src/
Bake Agent Context uses the crate description from Cargo.toml and extracts each Markdown file's title and first sentence for .agents/context/index.md. Ordinary context files need no Markdown front matter. A context document can opt into skill installation with YAML front matter; see Using and Providing Context, which is installed as the bake-agent-context-usage skill.
This crate includes guides for its users and for other crate authors:
- Getting Started explains how to add and run the Bake tasks.
- Using and Providing Context describes dependency context and how to publish context from a crate.
- Agent Context explains how to organize package guidance and repository-only instructions.
- Agent Context Specification defines the language-agnostic context directory and installation conventions.
- Rust Context provides shared development guidance for Socketry's Rust crates.
Prepare a release with cargo bake cargo:version:patch (or minor, major,
or bump --version X.Y.Z), 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. See the
Cargo publishing guide.
See releases.md for the full release history.
- Write the context index to
.agents/context/index.mdwithout creating or modifying the repository owner'sagents.md. - Install the usage guide as the
bake-agent-context-usageskill. - Keep generated context and dependency-provided skills out of Git using local excludes, while allowing projects to track their own skills.
- Explain how to organize reusable package context and repository-only agent instructions.
- Install dependency-provided Agent Skills from context documents with YAML front matter.
- Install context and skills together with
agent:context:install, keeping skill documents and resources out of the context index. - Prefix installed skill names with their provider's Cargo package name.
Please open an issue or pull request on GitHub.
Before contributing, follow agents.md if present, then read relevant guides linked from .agents/context/index.md and apply any matching skills. If the index or context files are missing or out of date, run cargo bake agent:context:install to refresh them.