Skip to content
Back to skills

Choose Subagent

ASecurity

Pick a subagent's type and model by whether the task writes anything, not by its topic. Use when about to spawn a subagent, or when the user asks "which agent should I use for X", "read-only agent or write agent", or "what model should this subagent run on".

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentsshellgit

Works with

  • claude code

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add awcameron/skills --skill choose-subagent --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Choose Subagent?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Choose Subagent
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/awcameron-choose-subagent/badge)](https://www.skillsdirectory.com/skills/awcameron-choose-subagent)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: choose-subagent
description: >-
  Pick a subagent's type and model by whether the task writes anything, not by its topic. Use when
  about to spawn a subagent, or when the user asks "which agent should I use for X", "read-only
  agent or write agent", or "what model should this subagent run on".
---

# Choose Subagent

Before spawning a subagent (Claude Code's `Agent` tool, or your harness's equivalent), ask:
**does this task write anything?** -- Edit/Write a file, `git commit`, `git push`, `gh pr create`,
or otherwise change state.

```
                    Does the task write anything?
                 (Edit/Write, git commit/push, gh pr create)
                                  |
                 +----------------+----------------+
                 | No                              | Yes
                 v                                 v
        read-only / exploration          default write-capable
        agent  (or a cheaper-model            agent, unchanged
        general-purpose agent if                    |
        it needs broader tools)                      | unusually hard?
                                              (ambiguous design,
                                               stubborn bug, risky/
                                               hard-to-reverse change)
                                              +--------+--------+
                                              | No              | Yes
                                              v                 v
                                        stay on default   same agent type,
                                        model             override to a
                                                           stronger model
```

- **No -- it only reads and reports** (code or spec review, investigating a decision, running a
  read-only skill, research/exploration): use a read-only/exploration agent type if the harness
  has one. If it needs broader tools but still only reads, use a general-purpose agent on a
  cheaper/smaller model -- no need to pay for a bigger model on a task that changes nothing.
- **Yes -- it edits, commits, or changes state** (implement an issue, migrate code, fix lint drift,
  open a PR): the default general-purpose agent, unchanged.
  - **Unusually hard** -- an ambiguous design decision, a bug with no obvious cause after a first
    look, a change that's risky or expensive to undo: same agent type, overridden to the
    provider's top reasoning tier (e.g. Opus, GPT-5-class, Gemini Pro). Routine write work stays
    on the default; don't upgrade just because a task sounds important.
  - **Several write agents in parallel** collide when they edit the same files. Give each its own
    worktree or partition the files first; if the work can't be partitioned, run them
    sequentially.

## The trap to watch for

Classify by what the task *does*, not what it's *about*. Both of these mention a live PR, but only
one writes anything:

- "Review PR #12 against our coding standards" -- reads a diff, reports findings. **Read-only.**
- "Test the review skill against PR #12" -- runs the skill, reports what it found. Still
  **read-only**, even though it sounds like active PR work.
- "Implement the fix requested in PR #12's review comments" -- edits files, commits. **Write.**

The same trap shows up with no PR involved:

- "Run the test suite and report which tests fail" -- executes a command, but changes nothing
  you'd keep. **Read-only.**
- "Find where `parseConfig` is defined and who calls it" -- pure search. **Read-only.**
- "Fix the failing tests" -- edits source files. **Write.**

When in doubt, ask "will this call a file-editing tool (`Edit`/`Write` in Claude Code) or a
state-changing shell command (`git commit`, `git push`, `gh pr create`, etc.) at any point?" If
the honest answer is no, it's read-only regardless of how "live" the subject matter sounds.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.