assignment.yaml
File location: ~/.disclaw-team/assignment.yaml
Purpose: Maps bots to roles, stores Discord server info, defines human team members, and optionally overrides protocol behavior. This is the primary configuration file in the new format.
Minimal valid example:
discord: guild_id: "123456789012345678" channel_id: "987654321098765432"
assignments: bot-1: orchestrator bot-2: researcherFull example:
discord: guild_id: "123456789012345678" channel_id: "987654321098765432"
workspace: /Users/you/projects/my-workspacemodel: opus
assignments: bot-1: tech-lead bot-2: researcher bot-3: validator
humans: owner: name: Jane Doe discord_id: "555666777888999000" role: owner
overrides: protocol: communication: selective_replies: true react_before_responding: true default_reaction: "๐" completion_reaction: "โ
" validation: require_validation: true never_skip_for: - security changes - database migrations escalation: human_approval_required: - deploy to production - access customer dataField reference:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
discord.guild_id | string | Yes | โ | Discord server (guild) ID |
discord.channel_id | string | Yes | โ | General channel ID for bot communication |
workspace | string | No | cwd | Working directory for bots |
model | string | No | opus | Default model: opus, sonnet, haiku |
assignments | object | Yes | โ | Maps bot IDs to role filenames (without .yaml) |
humans | object | No | โ | Human team members |
humans.<id>.name | string | Yes | โ | Human display name |
humans.<id>.discord_id | string | Yes | โ | Human Discord user ID |
humans.<id>.role | string | No | owner | Humanโs role |
overrides.protocol | object | No | โ | Persistent protocol customizations |
Protocol overrides sub-fields:
| Field | Type | Description |
|---|---|---|
communication.selective_replies | bool | Only reply when @mentioned |
communication.acknowledge_teammates | bool | Send a brief acknowledgement when a teammate delivers work |
communication.react_before_responding | bool | React to messages before replying |
communication.default_reaction | string | Emoji for โworking on itโ |
communication.completion_reaction | string | Emoji for โdoneโ |
validation.require_validation | bool | Require teammate sign-off before shipping |
validation.never_skip_for | array | Conditions that always require validation |
escalation.human_approval_required | array | Conditions that require human approval |
Related: bots.yaml, Role Files, CLI: assign