/add-agent — add a new Forge agent
Agents extend src/agents/base.ts. Follow the existing shape from
src/agents/reviewer.ts or src/agents/debugger.ts — they are the
simplest examples.
Agent name: $ARGUMENTS.
Steps
src/agents/$ARGUMENTS.ts— extend the base agent class. Declare:- allowed tool set
- model preferences (router falls back if unavailable)
- system prompt (keep it short; long prompts burn tokens every turn)
src/agents/registry.ts— register the agent.- Unit test — mock
callModel(seetest/unit/executor-loop.test.ts). Cover:- the agent only calls the tools it declared
- a failing tool call is surfaced as a structured error, not a throw
- turn caps from
src/core/mode-policy.tsare respected
- Docs — update the agent list in
docs/ARCHITECTURE.mdif user-visible.
Invariants
- Never widen the allowed tool set to "all tools" to make your agent pass a test. Fix the agent instead.
- Never bypass the validation gate (
src/core/validation.ts). - Do not call the model directly — always go through the router/adapter.
Run /verify when done.