docs(tools/bash): fix incorrect execution tool group claims

This commit is contained in:
damocles 2026-06-04 13:01:42 +02:00 committed by mara
commit 60628fbb13

View file

@ -1,9 +1,11 @@
# Bash execution tools (`execution` tool group)
# Bash execution tools
Background shell execution via `hive-bash-mcp`. Tools land as
`mcp__bash__<tool>` (the MCP server name is `bash`, not `hyperhive`).
Enabled for any agent whose tool groups include `execution` — the
default preset (`AGENT_DEFAULT`) includes it.
Available on every agent unconditionally — `harness-base.nix` always
injects bash into `hyperhive.extraMcpServers` (with `allowedTools =
["*"]`), so `mcp__bash__*` is in `--allowedTools` for every claude
invocation regardless of tool groups.
## Tools
@ -41,9 +43,11 @@ the tool names in claude are `mcp__bash__run` and `mcp__bash__status`.
The `Bash` built-in tool is blocked — all shell execution goes through
this structured path so tasks get task-id tracking and structured output.
## Tool whitelist cross-reference
## Relationship to the `execution` tool group
`mcp__bash__run` and `mcp__bash__status` are unconditionally in
`--allowedTools` whenever the harness spawns claude (they are not
gated by the `execution` group at the `--allowedTools` level — the
group only gates whether the MCP server registers the tools at all).
`ToolGroup::Execution` exists and appears in `AGENT_DEFAULT`, but its
`tools()` returns `["run", "status"]` which the harness expands to
`mcp__hyperhive__run` / `mcp__hyperhive__status` — tools that don't
exist in the hyperhive MCP server (dead entries). Removing `execution`
from an agent's groups has no effect on bash availability. Bash is
registered separately via the `extraMcpServers` path described above.