本文書の位置づけ:
.claude/agents/*.mdに配置するエージェントプロンプトの唯一の構造定義(Single Source of Truth)。新規エージェント作成時および既存エージェント改修時に参照する。 関連文書: プロセス規則 §7 エージェント定義、文書管理規則
--- ← S0: YAML Frontmatter(Claude Code 外部規定)
name / description / tools / model
---
{役割宣言 1-3行} ← S1: Identity(何者か)
## Activation ← S2: なぜ / いつ始め / いつ終わるか
### Purpose なぜこのエージェントが存在するか
### Start Conditions 仕事を始められる前提条件
### End Conditions 仕事が完了した判定基準(= Out の一覧と対応)
## Ownership ← S3: In / Out / Work の定義
### In 仕事開始時に存在する入力。読むだけ。変更しない
### Out 仕事終了時の最終成果物。End Conditions に対応する
### Work 作業中のみ使用する一時ファイル。Out 完成後に削除する
## Procedure ← S4: 何をするか(正常系)
## Rules ← S5: どう判断するか(任意、サブセクション自由)
## Exception ← S6: 異常時にどうするか
Claude Code が規定する外部フォーマット。本フレームワークとして改変しない。
---
name: agent-name
description: 1行の起動条件説明
tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
model: opus | sonnet | haiku | inherit
---
| フィールド | 説明 |
|---|---|
| name | エージェントの識別名(kebab-case) |
| description | Claude Code がエージェント選択時に参照する1行説明 |
| tools | このエージェントが使用可能なツール |
| model | 使用モデル。opus(高品質)/ sonnet(バランス)/ haiku(高速)/ inherit(親と同じ) |
目的: このエージェントが何者かを宣言する。
形式: YAML Frontmatter 直後に、Markdown 見出しなしで 1-3 行の平文を置く。
あなたは{役割名}です。
{責務の1行要約}。
ルール:
目的: 仕事の契約を定義する。Purpose = 関数の責務、Start Conditions = 事前条件、End Conditions = 事後条件。
このエージェントが存在する理由。1-2行。「何をするか」ではなく「なぜするか」を書く。
### Purpose
{このエージェントが呼ばれる理由。解決する問題。1-2行。}
仕事を始められる前提条件。チェックリスト形式。全条件を満たさないと作業開始不可。未達の場合は Exception に従う。
### Start Conditions
- [ ] {前提条件1: 何が完了/存在していること}
- [ ] {前提条件2: 何が完了/存在していること}
仕事が完了した判定基準。チェックリスト形式。全条件を満たしたら完了。Ownership の Out と対応する。
### End Conditions
- [ ] {完了条件1: 何が出力されていること}
- [ ] {完了条件2: 何がPASSしていること}
ルール:
目的: ファイルの入出力を定義する。エージェント = 関数として、In(引数)/ Out(戻り値)/ Work(ローカル変数)を明示する。
仕事開始時に存在するファイル。このエージェントは読むだけで変更しない(イミュータブル)。
### In
| file_type | 提供元 | 用途 |
|-----------|--------|------|
| {file_type} | {作成者: user / agent名 / framework} | {何のために読むか} |
仕事終了時の最終成果物。End Conditions に列挙された成果物と対応する。次のエージェントの In になる。
### Out
| file_type | 出力先 | 次の消費者 |
|-----------|--------|-----------|
| {file_type} | {パス/命名パターン} | {この成果物を In として受け取るエージェント} |
作業中のみ使用する一時ファイル。ある場合のみ記載する。
### Work
| ファイル | 用途 |
|---------|------|
| {ファイル名/パターン} | {何のために使うか} |
Work の原則:
In / Out / Work の判断基準:
| 問い | 答え | 分類 |
|---|---|---|
| 仕事の開始前から存在し、自分は変更しないか? | Yes | In |
| End Conditions に含まれる成果物か? | Yes | Out |
| 作業中にのみ使い、完了後に不要か? | Yes | Work |
目的: 正常系の作業手順を定義する。
## Procedure
1. {ステップ1: 動詞 + 目的語}
2. {ステップ2: 動詞 + 目的語}
- {サブステップや補足}
3. ...
ルール:
目的: ドメイン固有の規則、判断基準、閾値、規約を定義する。
## Rules
### {規則カテゴリ名}
{テーブル、箇条書き、または段落で規則を定義}
ルール:
### Constraints(やってはならないこと)をサブセクションとして置いてよい目的: 異常条件と対応を定義する。
## Exception
| 異常 | 対応 |
|------|------|
| {異常条件の説明} | {安全な対応。原則: 推測で進まない。orchestrator に報告する} |
共通原則: わからないときは推測で進まない。orchestrator に報告する。
ルール:
| セクション | 必須 | 理由 |
|---|---|---|
| S0: YAML Frontmatter | Yes | Claude Code 外部規定 |
| S1: Identity | Yes | 役割宣言なしにプロンプトは機能しない |
| S2: Activation | Yes | 仕事の契約。これがなければ関数として成立しない |
| S3: Ownership | Yes | In/Out/Work の定義。file_type オーナーシップの唯一の正 |
| S4: Procedure | Yes | 作業指示の本体 |
| S5: Rules | 任意 | ドメイン固有。ないエージェントもありうる |
| S6: Exception | Yes | 異常系の未定義は暴走を招く |
| 順序 | セクション | 理由: なぜこの位置か |
|---|---|---|
| S1 | Identity | まず自分が何者か知る |
| S2 | Activation | 次になぜ呼ばれたか(Purpose)、始められるか(Start)、ゴール(End)を理解する |
| S3 | Ownership | ゴールを知った上で In/Out/Work を確認する。ゴールなしにファイル一覧を読んでも意味がわからない |
| S4 | Procedure | ゴールとファイルを把握してから手順に入る |
| S5 | Rules | 手順の実行中に判断に迷ったら参照する |
| S6 | Exception | 異常時に参照する。正常系(Procedure)の後に配置することで、正常/異常の分離が明確になる |