Agent::Context
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.
Overview
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.
Quick Start
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.
Context
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
.
Usage
Please browse the source code index or refer to the guides below.
Installation
Add the agent-context
gem to your project:
$ bundle add agent-context
Commands
Install Context (Primary Command)
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 available context
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 context content
Show the content of a specific context file:
$ bake agent:context:show --gem async --file thread-safety
Version Control
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.
Providing Context in Your Gem
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
Optional: Custom Index File
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.
AI Tool Integration
The generated agent.md
file can be integrated with various AI coding tools by creating symbolic links to their expected locations:
Cline
ln -s agent.md .clinerules
Claude Code
ln -s agent.md CLAUDE.md
Cursor
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.
Gemini CLI, OpenAI Codex, OpenCode
ln -s agent.md AGENTS.md
GitHub Copilot
ln -s ../../agent.md .github/copilot-instructions.md
Replit
ln -s agent.md .replit.md
Windsurf
ln -s agent.md .windsurfrules
See Also
- Bake — The bake task execution tool.
Gems With Context Files
Contributing
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.
Developer Certificate of Origin
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.
Community Guidelines
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.