Lesson 9 / 25

Defining a Subagent

Write a subagent definition with a focused role, limited tools and a clear output format.

A role, tools and a prompt

In Claude Code a subagent is a Markdown file with frontmatter (name, description, optional list of allowed tools) and a system prompt as its body. Giving it only the tools it needs is the main safety control: a reviewer that can read files cannot accidentally edit them.

A read-only reviewer

Saved as .claude/agents/code-reviewer.md. The prompt fixes the output format so the main agent can use the result directly.

---
name: code-reviewer
description: Reviews changed code for bugs and security issues. Use after finishing a feature.
tools: Read, Grep, Glob
---

You are a careful code reviewer. Read the changed files and report:

- **Bugs**: file, line, why it is wrong
- **Risks**: security or data-loss concerns
- **Verdict**: approve or request changes

Do not edit files. Keep the report under 300 words.

Write the brief like a handoff

State the goal, the relevant paths, what was already tried and what to return. A vague brief like "look into the bug" produces a vague result.

Quick check: Why give a reviewer subagent only read tools?

  • Read tools are faster to install
  • It cannot accidentally modify files
  • Write tools do not exist
  • The model refuses otherwise
Answer

It cannot accidentally modify files — Limiting tools limits the damage a mistake or a prompt injection can do.