Skip to content

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:

bm hire <role>

Example:

bm hire human-assistant

This extracts the member skeleton from the profile on disk into members/<role>/, including all configuration files, and creates a Git commit.

You can optionally provide a name and target a specific team:

bm hire architect --name bob -t my-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:

bm roles list

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 members/<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:

members/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
├── coding-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 members/<role>/PROMPT.md to change role identity and behavioral rules. Edit members/<role>/CLAUDE.md to update role context.

Note

In session workspaces, PROMPT.md and CLAUDE.md are assembled from the team repo. Changes to the source files in the team repo take effect automatically on the next session start.

Add role-specific knowledge

Place knowledge files in members/<role>/knowledge/:

echo "# Debug Guide\n\nAlways check pod logs first." \
  > members/architect/knowledge/debug-guide.md
git add members/architect/knowledge/debug-guide.md
git commit -m "docs: add architect debug guide"

Add role-specific invariants

Place invariant files in members/<role>/invariants/:

echo "# Design Quality\n\nEvery design must include security considerations." \
  > members/architect/invariants/design-quality.md
git add members/architect/invariants/design-quality.md
git commit -m "chore: add architect design quality invariant"

Modify Ralph configuration

Edit members/<role>/ralph.yml to change hat definitions, event routing, or persistence settings.

Warning

ralph.yml is assembled into session workspaces at creation time. After editing it, restart agents with bm stop && bm start for changes to take effect.

Remove a member

Delete the member directory and commit:

rm -rf members/human-assistant
git add -A
git commit -m "chore: remove human-assistant member"

Warning

This does not remove existing workspaces. Delete workspace directories separately.

List members

View all hired members for a team:

bm members list