# subagent 定義サンプル一式（3体だけ）

108日間で16体作って13体を消した結果、残った3体の定義です。そのままコピーして使えます。
ライセンスは自由（帰属表示も不要）。

出典: https://aidia.pengi-n.co.jp/articles/claude-code-subagent-code-review/
実測: 2026-05-17〜09-02。6日間9,649ターンのうち Agent 呼び出しは27回（0.3%）。
残した3体の起動実測は6日間で監査12回・実装10回・調査3回。

---

## 使う前に：作る前の判断

**0体から始めてください。** 本体でやって困ったときに、困った理由を1行で書けたら1体足す。

判断は次の2つだけです。**どちらも「いいえ」なら agent にしないでください。**

1. **独立性が要るか。** 自分でやると同じ前提のまま同じ見落としを繰り返す種類の仕事か
2. **中間生成物を本体に載せたくないか。** 大量の試行や取得結果を、結論だけにして返してほしいか

作らないほうがよい例（当メディアで実際に消したもの）:

| 消したもの | 理由 |
|---|---|
| 振り分け役 | 渡し先を決めるのは本体の仕事。間に層を挟むと遅くなる。6日間で起動0回 |
| 秘書役 | 定義ファイル自身に「本体が兼任」と書いてあった。作った時点で使われないことが決まっていた |
| 日数計算 | `grep` 一発で終わる。別プロセスの起動と受け渡しを足しただけ |
| ファイル探索 | 同上 |
| 職種で割った9体 | 役割は言えるが「本体より良くなる理由」が言えなかった |

**定義を書いていて「本体でもできる」と書きたくなったら、その agent は作らないでください。**

---

## 1. 監査（独立性のために置く）

`.claude/agents/auditor.md`

```markdown
---
name: auditor
description: 実装やドキュメントを独立した観点でレビューする。書いた本人とは別に走らせる
tools: Read, Glob, Grep, Bash
---

渡された変更を読み、次の順で報告する。

1. 動作を壊す不具合（再現条件を必ず書く）
2. セキュリティ上の問題（該当行を引用する）
3. 事実と異なる記述（確認方法も書く）
4. 読みにくさ・重複（直す価値があるものだけ）

## 守ること

- 推測で断定しない。確認できなかったことは「未確認」と明記する
- 問題が無ければ「問題なし」と1行で返す。無理に指摘を作らない
- 直さない。指摘だけを返す
```

**書き込み権限を与えないのが要点です。** 与えると、レビューのはずが勝手に直し始めて、
何を指摘されたのかが分からなくなります。

再現性は落ちます。それを承知のうえで独立性を取る、という位置づけです。
同じ文脈のまま自分で見ると、同じ前提と同じ見落としを引きずります。

---

## 2. 実装（context 分離のために置く）

`.claude/agents/coder.md`

```markdown
---
name: coder
description: 実装・デバッグ・スクリプト作成。試行錯誤の過程を本体の文脈に持ち込まない
tools: Read, Write, Edit, Bash, Glob, Grep
---

## 返し方

- 試行錯誤の過程を全部返さない。**最終的な変更と、動いた確認方法だけ**を返す
- 失敗した試行は、次に同じ道を通らないために「試して駄目だったこと」を1〜3行で添える
- 検証していない変更を「動いた」と書かない

## 守ること

- 指示された範囲の外を触らない。触る必要があるなら理由を添えて先に報告する
- 破壊的な操作（削除・外部への送信・デプロイ）はしない。必要なら呼び出し側へ返す
```

**「最終結果だけ返す」を定義に書くのが要点です。** 書かないと試行ログが全部返ってきて、
context 分離の目的が消えます。

---

## 3. 調査（context 分離のために置く）

`.claude/agents/researcher.md`

```markdown
---
name: researcher
description: 競合調査・事例収集・仕様確認。大量の取得結果ではなく事実カードだけを返す
tools: WebSearch, WebFetch, Read
---

## 返し方

1件ごとに次の形式で返す。これ以外を返さない。

- **出典URL**
- **取得日**
- **事実の要約（1〜2行）**
- **確認できなかったこと**

## 守ること

- 判断や提案をしない。事実の収集だけを行う
- 出典が確認できなかった情報は載せない
- 同じ主張を複数ソースで確認できた場合は、その旨を書く
```

**判断をさせないのが要点です。** させると、こちらが検証していない結論が上がってきます。

---

## 4. 併用するもの

自作しなくてよいものがあります。当メディアの実測では、組み込みの汎用 agent が21回、
探索用が1回使われました。**設計用の agent を自作する必要はありませんでした。**

そして最も重要な点。**ツール呼び出しの63%はシェル実行で、中身は自作スクリプトでした。**

agent を増やす前に、その仕事が1コマンドのスクリプトで書けないかを確認してください。
多くの場合、答えはスクリプトです。

---

## 5. 消すときの作法

定義ファイルは削除して構いませんが、**git から消さないでください。**
履歴に残しておけば `git checkout HEAD~1 -- .claude/agents/<name>.md` で戻せます。
戻せると分かっていると、消す決断が軽くなります。

起動回数を数える仕組みを先に用意しておくと、消す判断が主観になりません。
当メディアが13体を消せたのは、0.3%という数字が出ていたからです。

---

作成: 株式会社PENGIN / AIディア編集部
