Agents and responsibilities

Roles describe responsibility and authority. A declared role is not a running process, and a reachable agent is not a working one.

Who is who

Mushegh is the head: he plans, delegates, decides, and manages the day. He does not do engineering. Everything development goes to Bagadata, who is the senior of a council of coding CLIs.

AgentResponsibilityImplementation
M.U.S.H.E.G.H.
The head of the system. Plans, decomposes, delegates, decides, and manages the day.
src/mushegh/brain/agent.py
Bagadata
The development agent. Every kind of engineering work; expands the brief, runs the council, compiles the master plan, assigns it and follows it through.
fleet/Bagadata/bagadata/pipeline.py
Hugh
Custody of the physical house. The interlock is checked at the actuator, a ceiling is refused rather than assumed, and the E-Stop cannot be cleared in software.
fleet/Hugh/hugh/interlock.py
Artaxias
The protocol desk. Seventy-four protocols, each gated by a password challenge, audited and drillable.
fleet/Artaxias/artaxias/protocols.py
Hasan-Jalal
The authorisation plane. Whether an action is allowed, decided before it happens, for every actor including Mushegh.
fleet/Hasan-Jalal/hasan_jalal/policy.py
RUBEN
Finance-related role; declared authority remains subject to policy.
fleet/connectors/ruben.py

The four residents — Bagadata, Hasan-Jalal, Hugh and Artaxias — live in their own folders under fleet/ and are reached by an in-process call. The three connectors beside them reach the agents that are not in this process. How the fleet works.

External worker roster

18 workers have declared domain ownership. Availability, assignments and receipts need separate transport evidence; a domain is not a running process.

WorkerDeclared domainDeclared host
GoharikInboxhermes
FeloEditorial and performancehermes
ArsenMedia productionopenclaw
LikaProjects and meeting executionhermes
TatevPersonal operationshermes
TamaraBusiness and vendor operationshermes
HrachSales and partnershipshermes
SergeyCustomer support and onboardingopenclaw
GagasCommunityopenclaw
ZaraSecurity analysisopenclaw
IshkhanExternal intelligencehermes
MargoInfrastructure operationsopenclaw
KamoKnowledge and researchhermes
TigranCalendar and travelopenclaw
YanaPeople operationshermes
ManeLegal obligationsopenclaw
DavitReputation monitoringopenclaw
ArinIndependent quality revieweropenclaw

Council seats

20 declared seats, each with a measured capability and a role. Capability is a property of the CLI; answering is a property of the credential and the provider. Both are listed so neither is mistaken for the other.

measured 15

The CLI is installed and its one-shot contract was verified against that binary's own help, top-level and subcommand. Installed is not the same as able to answer: a seat still needs its own provider credential, and the table below says which key each one needs.

SeatRoleMeasured capability
claude-codedeep repo comprehension; large multi-file changes; the default seatnon-interactive, output-format, json
mcodethis vendor's own model; fastest local iterationexec, run
vibequick independent read on a diff before it is written-p/--prompt for headless, --output text/json/streaming, --max-turns, --agent, --workdir/--worktree
codexsecond opinion on architecture; independent reasoning pathexec, non-interactive, print, run
qwen-codeindependent model family, so not a re-run of the othersheadless, json, exec, --prompt, --yolo
opencodealternative implementation; broad tool-use surfacerun, --format json, -m/--model provider/model; MiniMax M plan provider configured
stagehandbrowser/UI verification - the only seat that can SEE a rendered pageexec, json, print, run, stdin
geminivery large context; whole-repo questionsinstalled and `--help` advertises exec, headless, json, non-interactive, output-format, stdin. NOT on the owner's list of nineteen: an extra, declared as one
antigravityGoogle's agent; independent vendor and model familynon-interactive, --print, --prompt, exec, json
devin Cognition's terminal agent; strong at whole-change implementationnon-interactive, --print, --prompt, exec, json
clineautonomous agent with its own browser usejson, run, stdin, --yolo
openhandsheadless-capable agent with an explicit --headless mode--headless, --json, --always-approve
swe-agentresearch-bench agent; disciplined about the task specrun
qodo-covercode review and PR handling, not implementation--json-output
greptilecode review from the terminal; a review seatrun

not-drivable 3

Installed, but it cannot be driven unattended on this host. The reason is recorded per seat rather than dropped, so a tool that stops working is visible instead of quietly missing.

SeatRoleMeasured capability
opendesigndesign files; a design seat, not an implementation seatCORRECTED 2026-10-18 - this row previously read `measured` with argv `opendesign run {task}` and the evidence 'installed and `--help` advertises run'. MEASURED, that is false: `opendesign --help` lists exactly four subcommands - help, open, convert, embed-fonts - and `opendesign run <task>` exits 1 with 'Unkown subcommand run'. The bundle contains no provider, no model and no API-key reference of any kind, so there is no credential that could make it answer a prompt: it converts design files to .octopus and opens them. It is a genuinely useful tool for the owner's frontend work, and it is NOT a council seat. The earlier row was the exact failure this module's own docstring warns about - a row built from `--help` that looks measured and dies on first use - except that the probe recorded a signal the help never showed.
aiderpair programming; would be a good review seat if it ranthe upstream packaging bug is FIXED on this host: aider 0.86.2 imports `pydub` -> `audioop`, which Python 3.13 removed from the stdlib, and `pyaudioop` (pydub's fallback) does not exist on PyPI at all (404, verified). Installing `audioop-lts` into aider's own tool environment restores the name pydub tries first, and the CLI now starts. It still cannot ANSWER here: with an Anthropic-backed model it returns 'credit balance is too low', and it EXITS 0 while doing so, so its exit code cannot be trusted as a success signal. Blocked on Anthropic credit, not on installation.
gooseBlock's agent; TUI-first, so it belongs to a person not a councilinstalled from the official Windows release (v1.55.0, Goose-win32-x64.zip), but it exits with a Windows breakpoint code on --help in a headless shell: it is a TUI/desktop application, not a non-interactive CLI. Driving it unattended needs a different surface.

uninstallable 2

The real tool cannot be installed here at all. The row is kept so the gap is a fact rather than a surprise.

SeatRoleMeasured capability
plandexplan-first: writes a plan for another seat to executethe real Plandex CLI ships no Windows binary - every recent release (cli/v2.2.1 and back) carries darwin assets only. The `plandex` npm package is explicitly a 'security holding package' placeholder, so installing it would install a decoy. Needs WSL, or a Windows build from the vendor.
r2airadare2 reverse engineering; not a coding agent at allits sdist fails to build here: `ImportError: cannot import name 'list_files_info' from 'huggingface_hub'` - a pre-0.1.0 project incompatible with the current hub API. Separately it is a radare2 reverse-engineering assistant, not a coding agent, so it would not have been a useful seat even if it built.
A seat that is installed has not answered. Each seat receives only the credential names its own provider declares, never another seat's. A seat with no key is reported as blocked, by variable name, rather than seated and left to fail. The credential scoping is in fleet/Bagadata/bagadata/u_credentials.py.