Format
Every role is a directory containing aROLE.md file:
Required Fields
| Field | Description |
|---|---|
name | Package slug (unique identifier) |
description | One-line summary |
Optional Fields
| Field | Description |
|---|---|
metadata.strawpot.dependencies.skills | List of skill dependencies |
metadata.strawpot.dependencies.roles | List of role dependencies |
metadata.strawpot.default_model | Default model configuration |
metadata.strawpot.tools | System tool requirements |
Dependencies
Roles use a structured object withskills and roles sub-keys:
- Skill dependencies provide instructions the agent follows
- Role dependencies define other roles the agent can delegate to
Model Configuration
Roles can specify a default model:[agents.<name>] config in their StrawPot configuration.
How Roles Are Used
When StrawPot receives a delegation request:- Resolve — Fetch the role from StrawHub with all transitive dependencies
- Stage — Place role and skill files in the agent’s workspace
- Build prompt — The
ROLE.mdbody becomes the system prompt, with skill instructions appended - Spawn — Launch a sub-agent with the assembled context
Roles vs Skills
| Skills | Roles | |
|---|---|---|
| Purpose | Instructions and workflows | Agent behavior definition |
| Can depend on | Other skills | Skills and other roles |
| Model config | No | Yes |
| Used by | Loaded into agent context | Assigned to agents during delegation |
| Namespace | Separate from roles | Separate from skills |