Repository navigation
Agents
xsyetopz edited this page Oct 11, 2026
·
1 revision
dotclaude defines five agents in plugins/dotclaude/agents/.
This page lists the roster, the pins, and the rules for the files.
The decisions are D12, D13, and D25 in Decisions.
| Agent | Work | Model and effort in the file | maxTurns |
|---|---|---|---|
investigator |
Read-only answers from files, logs, git history, dependency data, or web pages. | Haiku 5.5 medium
|
31 |
implementer |
One scoped slice: a feature, a fix with a known cause, tests, docs, or a specified bulk change. | Haiku 5.5 medium
|
61 |
debugger |
A failure with an unknown cause, or a failed fix. | Haiku 5.5 high
|
61 |
reviewer |
Read-only review of code, security, an API, a plan, or PR comments. | Sonnet 5.5 medium
|
41 |
test-runner |
Runs checks and returns the exact failures. It has omitClaudeMd. |
Haiku 5.5 low
|
16 |
-
web-researcherdoes not exist.investigatortakes its web lookups. - No agent has the
Agenttool, so no agent starts another agent. - Each
maxTurnsholds one spare turn for the report. A subagent that reachesmaxTurnsreturns no report. - The file is the only source of the choice.
No router rewrites it, and a coordinator can pass
modelandeffortin anAgentcall (Decisions: router and agents). - Planning and orchestration stay in the main loop.
- Fable 5.1 and Mythos 5.1 are in no file. They run only when the user selects them.
- The
Explore,Plan,general-purpose,claude-code-guide, andstatusline-setupagents are off, so the listing holds only these five (Off switches).
The frontmatter of agents/*.md is the only source of model, effort, and maxTurns.
No code list repeats them.
The pin test in tests/dotclaude/agents.test.mjs does these checks:
- The model is one of
claude-opus-5-5,claude-sonnet-5-5, andclaude-haiku-5-5.claude-haiku-4-5fails the test. - The effort is in
SUBAGENT_EFFORTSfor that model, and it is notmax.SUBAGENT_EFFORTSis infeatures/statusline/limits.mjs, and the status line marks an effort that is not in the list. - The roster is these five names and no other.
The turn bound reads maxTurns from the file, and tests/dotclaude/context/turn-bound.test.mjs tests it.
- A description has 300 characters or fewer.
AGENT_DESCRIPTION_MAX_CHARSintools/limits.mjsholds the bound, because only tests read it. - A description says what the agent does and when to delegate to it.
- A description uses no forceful word.
- The agent listing goes in each request, so a long description costs tokens for each request.
A subagent does not inherit the output style or the shared sections of the system prompt. Each body therefore repeats the rules that matter for its role:
- The scope rule and the verification rule for the role.
- The read rule: search first with
Grep, then read the matched range withReadand itsoffsetandlimit(Context bound). - The report bound
REPORT_MAX_WORDS(400 words), with the value fromfeatures/context/limits.mjs. - The keep-the-work rule and the block rule come in the
agent.spawnblock, and not in the body (System prompt). - What to do when a check fails:
debuggerandimplementerfix the code or report the failure with the evidence. They do not raise a bound, weaken or skip a test, or edit a check, a config, or a hook unless the brief says that the user asked. -
debuggerdoes not change a test. When it thinks that a test is wrong, it reports that with the evidence, and the parent decides. -
reviewerlooks for tests of prose, a raised bound, a skipped test, and an edited lint or CI config.
- Overview
- Quickstart
- Install
- Plugins
- Settings
- Hooks
- Troubleshooting
- Undocumented reads
- Development
- Design
- Decisions
- Changelog
- Other