Manage Members
This guide covers hiring team members from profile skeletons and understanding the member directory structure.
Hire a member
Use the bm hire command:
Example:
This extracts the member skeleton from the embedded profile into team/<role>/, including all configuration files, and creates a Git commit.
You can optionally provide a name and target a specific team:
If you omit --name, bm auto-generates a 2-digit suffix (e.g., architect-01). Auto-suffix fills gaps: if 01 and 03 exist, it returns 02.
Available roles
The available roles depend on the profile. Use bm roles list to see them:
For the scrum profile:
| Role | Description |
|---|---|
human-assistant |
PO's proxy — board scanning, backlog management, review gating |
architect |
Technical authority — design docs, story breakdowns, issue creation |
If you specify a role that doesn't exist, the command lists all available roles.
Member directory structure
After hiring a member, the team/<role>/ directory contains the following structure. The specific files (invariants, hats, etc.) depend on the profile and role. This example shows the human-assistant role from the scrum profile:
team/human-assistant/
├── PROMPT.md # Role identity and behavioral rules
├── CLAUDE.md # Role context (workspace model, knowledge paths)
├── ralph.yml # Ralph orchestrator configuration
├── .botminter.yml # Member metadata (role name, emoji)
├── knowledge/ # Role-specific knowledge
├── invariants/ # Role-specific constraints
│ └── always-confirm.md # (example: present all decisions to human)
├── hats/ # Hat-specific directories (if applicable)
│ └── <hat-name>/
│ └── knowledge/ # Hat-specific knowledge
├── agent/
│ ├── skills/ # Role-specific skills
│ └── agents/ # Role-specific sub-agents
└── projects/ # Per-project role config
└── <project>/
└── knowledge/ # Role+project-specific knowledge
Customize a member
After hiring a member, you can customize its configuration:
Modify prompts
Edit team/<role>/PROMPT.md to change role identity and behavioral rules. Edit team/<role>/CLAUDE.md to update role context.
Note
In workspaces, PROMPT.md and CLAUDE.md are symlinks into .botminter/. Changes to the source files in the team repo propagate automatically when agents pull .botminter/.
Add role-specific knowledge
Place knowledge files in team/<role>/knowledge/:
echo "# Debug Guide\n\nAlways check pod logs first." \
> team/architect/knowledge/debug-guide.md
git add team/architect/knowledge/debug-guide.md
git commit -m "docs: add architect debug guide"
Add role-specific invariants
Place invariant files in team/<role>/invariants/:
echo "# Design Quality\n\nEvery design must include security considerations." \
> team/architect/invariants/design-quality.md
git add team/architect/invariants/design-quality.md
git commit -m "chore: add architect design quality invariant"
Modify Ralph configuration
Edit team/<role>/ralph.yml to change hat definitions, event routing, or persistence settings.
Warning
ralph.yml is copied (not symlinked) to workspaces. After editing it, run bm teams sync and restart the agent.
Remove a member
Delete the member directory and commit:
Warning
This does not remove existing workspaces. Delete workspace directories separately.
List members
View all hired members for a team:
Related topics
- Launch Members — provisioning workspaces and starting agents
- Member Roles — detailed role definitions and hat models
- Knowledge & Invariants — scoping model