Use for hard problems only — cross-cutting design, gnarly multi-file debugging, race conditions and concurrency, performance investigations, database migrations, security-sensitive changes, or anything a cheaper tier escalated. Expensive; use deliberately.
Use for standard implementation work — features, bug fixes, writing tests, refactors scoped to roughly 5 files or fewer, API endpoints, UI components. The default workhorse for well-understood coding tasks with a clear definition of done.
Use proactively for mechanical, low-risk edits — renames, typo fixes, comment and docstring updates, formatting, simple config tweaks, adding log lines. Only for changes touching 1-2 files with zero design decisions. Never for logic changes, never when reading conventions first is required.
Use proactively for codebase exploration, file/symbol search, reading logs, summarizing files or directories, and answering "where is X / how does Y work" questions. Read-only. Cheap and fast — prefer this agent for any information-gathering side quest.
Use proactively after builder or architect completes any task that edited files. Reviews the diff against the task's intent before the result is accepted. Read-only reviewer; never fixes anything itself.