Provides tools for installing and managing context files from Ruby gems for AI agents, and generating agent.md
files following the https://agent.md specification.
This gem allows you to install and manage context files from other gems. Gems can provide context files in a context/
directory in their root, which can contain documentation, configuration examples, migration guides, and other contextual information for AI agents.
When you install context from gems, they are placed in the .context/
directory and an agent.md
file is generated or updated to provide a comprehensive overview for AI agents.
Add the gem to your project and install context from all available gems:
$ bundle add agent-context
$ bake agent:context:install
This workflow:
- Adds the
agent-context
gem to your project. - Installs context files from all gems into
.context/
. - Generates or updates
agent.md
with a comprehensive overview. - Follows the https://agent.md specification for agentic coding tools.
This gem provides its own context files in the context/
directory, including:
usage.md
- Comprehensive guide for using and providing context files.
When you install context from other gems, they will be placed in the .context/
directory and referenced in agent.md
.
Add the agent-context
gem to your project:
$ bundle add agent-context
Install context from all available gems and update agent.md
:
$ bake agent:context:install
Install context from a specific gem:
$ bake agent:context:install --gem async
List all gems that have context available:
$ bake agent:context:list
List context files for a specific gem:
$ bake agent:context:list --gem async
Show the content of a specific context file:
$ bake agent:context:show --gem async --file thread-safety
Both .context/
and agent.md
should be committed to git:
agent.md
is user-facing documentation that should be versioned..context/
files are referenced byagent.md
and needed for AI agents to function properly.- This ensures AI agents in CI have access to the full context.
To provide context files in your gem, create a context/
directory in your gem's root:
your-gem/
├── context/
│ ├── getting-started.md
│ ├── usage.md
│ ├── configuration.md
│ └── index.yaml (optional)
├── lib/
└── your-gem.gemspec
You can provide a custom index.yaml
file to control ordering and metadata:
description: "Your gem description from gemspec"
version: "1.0.0"
files:
- path: getting-started.md
title: "Getting Started"
description: "Quick start guide"
- path: usage.md
title: "Usage Guide"
description: "Detailed usage instructions"
If no index.yaml
is provided, one will be generated automatically from your gemspec and markdown files.
The generated agent.md
file can be integrated with various AI coding tools by creating symbolic links to their expected locations:
ln -s agent.md .clinerules
ln -s agent.md CLAUDE.md
First, create the .cursor/rules
directory:
mkdir -p .cursor/rules
Then create .cursor/rules/agent.mdc
with:
---
alwaysApply: true
---
Read the `agent.md` file in the project root directory for detailed context relating to this project and external dependencies.
This approach uses Cursor's proper front-matter format and directs the AI to consult the main agent.md
file.
ln -s agent.md AGENTS.md
ln -s ../../agent.md .github/copilot-instructions.md
ln -s agent.md .replit.md
ln -s agent.md .windsurfrules
- Bake — The bake task execution tool.
We welcome contributions to this project.
- Fork it.
- Create your feature branch (
git checkout -b my-new-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin my-new-feature
). - Create new Pull Request.
In order to protect users of this project, we require all contributors to comply with the Developer Certificate of Origin. This ensures that all contributions are properly licensed and attributed.
This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.