コーディングエージェントを現場投入するときに混乱しやすいのが、「どこに何を書けば、どの粒度で、どれくらい強制力を持って効くのか」です。結論から言うと、これらは同じ“指示”でも レイヤー(方針→手順→分業→外部能力→強制執行) が違います。
とのこと
目次
簡単に役割の違い
-
AGENTS.md:リポジトリに対する 恒常的な方針・前提(憲法)。Codex などが作業前に読み、階層で上書きされる。
-
Skills(SKILL.md):繰り返し使う 手順書モジュール。問い合わせが目的に一致すると自動適用される(発火条件は description が鍵)。
-
サブエージェント:役割ごとに 別人格+別コンテキスト で分業する枠。ツール権限や自動ロードする Skills も分けられる。
-
MCP / ツール:外部システムに対する 実行可能な能力。MCP はツール/リソース/プロンプトを標準化して接続する。
-
Hooks:特定タイミングで 必ず走る強制オートメーション。設定ファイルでイベントとマッチャーを定義し、コマンド等を実行する
使い分けの実務ルール(迷ったらこれ)
-
「常に守らせたいルール」 → AGENTS.md(方針)+ Hooks(強制)
- セットアップ/テスト/依存追加ルールなど、常時必要に限定。
- フォーマット/テストを“確実に”回す(モデル依存を排除)。
- “守るべきルール”だけに絞る(テスト、フォーマット、依存追加、危険パス)。階層が増えるほど解釈が難しくなるので、深い階層の上書きは最小に。
- 「フォーマット」「禁止領域の保護」「監査ログ」のように、LLMに任せると抜ける部分を強制。Hooksは権限を持って自動実行され得るので、セキュリティ前提で最小限に。
-
「頻出の手順を再利用したい」 → Skills(発火は description 設計が命)
- PR レビュー・コミット生成など、繰り返すが常時は重い作業をモジュール化。
- 2〜5個の頻出ワークフローから開始(PRレビュー、変更後チェック、リリース手順など)。スキルは
name/descriptionの設計が成否を左右する(マッチングの入口)ため、自然言語で引っかかる説明にする。
-
「文脈を分けたい/権限を分けたい」 → サブエージェント
- レビュー担当に権限と Skills を付与(親の Skills は継承しないので要明示)。
- 「レビュー」「テスト実行」「調査」など、コンテキストを汚しやすい役割を分離。プロジェクト限定は
.claude/agents/、個人横断は~/.claude/agents/。
-
「外部に触らせたい」 → MCP / ツール(まず読み取り系から)
- “読み取り系”から入って、書き込み系は承認フロー・権限分離を強める(人間の拒否を前提に)。