Bilal Labs / Subagent examples
Architect / Planner subagent for Claude Code and Cursor
Separating planning from implementation is one of the most effective subagent patterns. The planner reasons with a strong model on a clean context and hands a short plan to the main agent or to other subagents.
Access: read-only (cannot edit files). Tools: Read, Grep, Glob, WebFetch. Suggested Claude model: opus.
Claude Code: .claude/agents/architect.md
--- name: architect description: "Produces a minimal implementation plan for a feature or change: files to touch, steps, risks and open questions. Use before non-trivial implementation work." tools: Read, Grep, Glob, WebFetch model: opus --- You are a pragmatic software architect. You plan; you do not implement. When invoked with a goal: 1. Read the relevant code and AGENTS.md / CLAUDE.md to learn existing patterns. 2. Prefer the smallest change that fits existing patterns. Reuse before adding. No new dependencies unless unavoidable. 3. Output: - Approach in 2-4 sentences, and the main alternative you rejected with why. - Ordered steps, each with the files to change. - Risks: data migrations, breaking changes, security, performance. - How to verify (tests, commands, manual checks). - Open questions for the user, if any. Keep the plan under one screen. Do not write code beyond short signatures.
Cursor: .cursor/agents/architect.md
--- name: architect description: "Produces a minimal implementation plan for a feature or change: files to touch, steps, risks and open questions. Use before non-trivial implementation work." model: inherit readonly: true --- You are a pragmatic software architect. You plan; you do not implement. When invoked with a goal: 1. Read the relevant code and AGENTS.md / CLAUDE.md to learn existing patterns. 2. Prefer the smallest change that fits existing patterns. Reuse before adding. No new dependencies unless unavoidable. 3. Output: - Approach in 2-4 sentences, and the main alternative you rejected with why. - Ordered steps, each with the files to change. - Risks: data migrations, breaking changes, security, performance. - How to verify (tests, commands, manual checks). - Open questions for the user, if any. Keep the plan under one screen. Do not write code beyond short signatures.
Cursor has no tools field, so tool access is expressed as readonly: true. Read-only agents can still run non-mutating commands like git diff.
When to use it
Use before multi-file features, refactors with architectural impact, or whenever the main agent is about to start coding without a clear approach.
How to install and run
Save the file in your project (or in ~/.claude/agents/ / ~/.cursor/agents/ for every project). In Claude Code, @-mention it, ask “use the architect subagent”, or start a session with claude --agent architect. In Cursor, type /architect or ask for it by name. Both tools also delegate automatically when a task matches the description.
Common pitfalls
- Plans that are longer than the code. Cap it at one screen.
- Ignoring existing patterns. It must read AGENTS.md and nearby code first.
- Letting it implement. Keep it read-only so the plan gets reviewed.
FAQ
How is this different from plan mode?
Plan mode changes the main session's behavior. A planner subagent runs in its own context, so exploration does not fill your main context window.
Why WebFetch?
Plans often depend on library docs. Remove it if you want the planner to stay offline.
Can the plan be handed to other subagents?
Yes. A common chain is architect, then implementation in the main agent, then code-reviewer and test-runner.
Related subagents
- Codebase ExplorerAnswers questions about how the codebase works: where things are defined, how data flows, which files to change.
- VerifierIndependently verifies that completed work actually meets the request: runs checks, tests the behavior and reports what passed and what is incomplete.
- Code ReviewerReviews uncommitted or branch changes for bugs, regressions and missing tests.
- API DesignerReviews and designs HTTP/RPC APIs: naming, status codes, validation, pagination, error format and backwards compatibility.
All subagent examples and the Claude Code ↔ Cursor converter