/ROLES.md

Define what your AI agent is responsible for.

Read the docs

A simple, open convention for defining the responsibilities an AI agent is operating under. Where AGENTS.md provides project-specific context and instructions, this answers a different question: what role is the agent responsible for fulfilling while it works.

Roles describe responsibility, authority, and constraints rather than personality or tone. They define what the agent should focus on, what it is allowed to do, what it must avoid, and when work should be handed off.

Example

# Implementer

## Responsibilities
- Write code based on provided specifications
- Follow project conventions and patterns
- Keep changes focused and minimal

## Allowed
- Create and modify source files
- Run tests and linters
- Ask clarifying questions

## Forbidden
- Approve or merge changes
- Modify CI/CD configuration
- Make architectural decisions

## Handoff
- Pass to Reviewer when implementation is complete
- Escalate to Architect for design questions

People already use roles when working with AI agents. Prompts like "act as a reviewer" or "you are a senior engineer" are common, but they are informal, duplicated across chats, and easy to drift over time. This convention provides a dedicated place to define your own roles once, in a way that can be reused across tasks, agents, and tools.

A role is not a subagent. Subagents are autonomous entities delegated by a primary agent to handle specific tasks, each with their own context window and decision-making scope. A role is a behavioral contract that any agent operates under.

Complements existing primitives. AGENTS.md provides project context. Skills define capabilities. Roles define responsibility.

Intentionally lightweight. No required fields, schemas, or formats. A small file that quietly improves how agents work.