本文へ移動
AI Dev Lab Japan AI開発ツール、AIコーディングエージェント、M...

AGENTS.mdを変更レビューに入れる前に:instruction drift・権限競合・テスト手順の見直し方

AGENTS.mdを変更レビューに入れる前に:instruction drift・権限競合・テスト手順の見直し方の判断ポイントを表す抽象サムネイル

3行まとめ

VisualAGENTS.mdレビューの3つの軸文章だけでなく、今の運用と強制設定を見ます。
運用レビュー

コード、CI、権限、hooks、人間承認と合っているかを見る。

instruction drift

昔は正しかった手順や境界が、現在の実態とずれていないかを見る。

強制設定

禁止事項を自然文だけで終わらせず、sandbox、permissions、hooks、CIへ移す。

AGENTS.mdの変更は、文章のきれいさよりも運用と実行環境との整合で判断します。

  • AGENTS.mdやCLAUDE.mdの変更レビューは、文章のきれいさを見る作業ではなく、今のコード、CI、権限、hooks、人間承認と合っているかを見る運用レビューです。
  • instruction driftは、昔は正しかったテスト手順、禁止事項、担当範囲、作業境界が、その後の依存更新やmonorepo分割、権限変更で古くなることで起きます。
  • 危険操作を止めたいなら、AGENTS.mdに「禁止」と書くだけで終わらせず、Codexのsandbox/approval、Claude Codeのpermissionsやhooks、CI、CODEOWNERS、人間レビューへ移します。

この記事では、2026年6月2日にOpenAI Codex、Claude Code、GitHub Copilot、AGENTS.mdの公式情報を確認しました。X上のAIエージェント運用やproject memoryへの関心は需要シグナルとしてだけ扱い、仕様説明の根拠にはしていません。

この記事でわかること

Visualレビューで見る5点instruction変更PRを確認する観点を分けます。
確認順序

AGENTS.md、CLAUDE.md、Copilot custom instructionsをPRレビュー対象に入れる。

4分類

drift、conflict、enforcement gap、test freshnessを分けて指摘する。

役割分担

指示として書くことと、権限やhooksで強制することを分ける。

テスト鮮度

古いコマンド、古いpackage名、CIで走っていない検査を見つける。

小さく確認

変更後のAGENTS.mdを小さなタスクで確認する。

レビューコメントを分類しておくと、何を直すべきかが具体的になります。

  • AGENTS.md、CLAUDE.md、Copilot custom instructionsをPRレビュー対象に入れる時の確認順序
  • instruction drift、conflict、enforcement gap、test freshnessを分けて指摘する方法
  • 「指示として書くこと」と「権限やhooksで強制すること」の分け方
  • 古いテストコマンド、古いpackage名、CIで走っていない検査を見つける観点
  • 変更後のAGENTS.mdを小さなタスクで確認する手順

初回のひな形作成から始めたい場合は、先に公開済みのチーム向けAGENTS.mdテンプレートを読むと入りやすいです。この記事は、そのテンプレートを作った後に、変更差分をどうレビューするかへ絞ります。

前提知識

Visual自然文と強制設定の役割instructionは判断を助け、強制設定は操作を止めます。
  1. 1AGENTS.md / CLAUDE.md

    作業方針、テスト選択、報告形式を伝える。

  2. 2sandbox / permissions

    読ませないpathや承認が必要な操作を設定する。

  3. 3hooks / CI

    特定の操作や検査を実行時に確認する。

  4. 4人間レビュー

    未実行報告、危険操作、承認者をPRの流れで確認する。

自然文のinstructionと実行環境の設定を同じレビュー対象として扱います。

AGENTS.mdは「実行されるルール」ではなく「読ませる文脈」から始まる

AGENTS.mdやCLAUDE.mdは、エージェントにリポジトリの作業方針を伝えるためのファイルです。便利ですが、そこに自然文で「本番へ書き込まない」「secretを読まない」「pushしない」と書くだけで、実際の操作が必ず止まるわけではありません。

公式情報を見ると、この境界はかなりはっきりしています。OpenAI CodexのAGENTS.md guideは、Codexがグローバルスコープとプロジェクトスコープのinstruction chainを作ること、プロジェクト内ではルートから現在の作業ディレクトリへ向かってファイルを結合することを説明しています。一方で、実際にどこまで編集できるか、ネットワークを使えるか、承認が必要かは、Codexのsandboxやapproval policyの問題です。

Claude Codeも同じです。Claude Codeのmemory docsは、CLAUDE.mdが行動を形作る文脈であり、特定のtoolやpathをブロックしたい場合はmanaged settingsのpermissions.deny、sandbox、PreToolUse hookなどを使う考え方を示しています。GitHub Copilotも、repository-wide custom instructions、path-specific instructions、agent instructionsを分けていますが、agent instructionsはすべてのCopilot機能で同じように使えるとは限りません。

レビューで見ること

この段階では、ファイル名や書き方の好みよりも、自然文のinstructionと強制設定の役割分担を見ます。禁止事項、承認が必要な操作、実行コマンド、未実行時の報告形式が、どのレイヤーで担保されているかを確認します。

だから、レビューで見るべきなのは「AGENTS.mdの文章がよくなったか」だけではありません。書いた内容が、実際の権限、CI、hooks、作業ディレクトリ、PRレビューの流れと合っているかを見る必要があります。

instruction driftをこの記事ではこう定義する

この記事ではinstruction driftを、昔は正しかった指示が、現在のコード、設定、CI、権限、チーム運用と合わなくなった状態と呼びます。

たとえば、次のような差分です。

driftの種類レビューで見ること
テスト手順のdriftnpm testと書かれているが、現在はpnpm test --filter webがCIで使われているpackage scripts、CI workflow、READMEの整合
作業境界のdriftルートAGENTS.mdに全サービス共通の手順が残り、paymentsだけ別のMakefileを使っているnested AGENTS.md、override、対象ディレクトリ
権限前提のdrift「外部APIを叩いて確認」と書いたが、実行環境ではnetwork accessが閉じているsandbox、approval、MCP/tool権限
レビュー責任のdrift以前の担当チーム名やSlack channelが残っているCODEOWNERS、通知先、承認者

AGENTS.mdのdriftは、古いドキュメントの問題に見えますが、実際にはエージェントが次の作業で間違ったテストを選び、危険な操作を試し、未検証を検証済みのように報告する原因になります。小さな文言差分でも、レビューでは運用影響まで見るべきです。

結果:AGENTS.mdの変更レビューは4分類で見る

Visual変更レビューの4分類差分を4つに分けると、指摘が迷いにくくなります。
項目内容見方
drift今のコード、CI、チーム運用と合っているかを見る。
conflictほかのinstructionや設定と矛盾していないかを見る。
enforcement gap本当に止めたい操作が自然文だけになっていないかを見る。
test freshnessテスト手順が実行可能で、意味を保っているかを見る。

古いコマンド、優先関係、permissions、CI対応を別々に確認します。

AGENTS.mdや周辺instructionをレビューする時は、差分を次の4分類に分けると迷いにくくなります。

分類問い典型的な修正
drift今のコード、CI、チーム運用と合っているか古いコマンドや担当者を更新する
conflictほかのinstructionや設定と矛盾していないかルートとサブディレクトリの優先関係を明記する
enforcement gap本当に止めたい操作が自然文だけになっていないかpermissions、sandbox、hooks、CIへ移す
test freshnessテスト手順が実行可能かつ意味を保っているか対象範囲、未実行時の報告、CI対応を更新する

この4分類にしておくと、レビューコメントも具体的になります。

drift:
AGENTS.mdでは npm test を必須にしていますが、現在のCIは pnpm test --filter api を実行しています。
この手順だとagentが対象packageを見ない可能性があるので、CIと同じコマンドへ更新してください。

conflict:
ルートAGENTS.mdでは network accessを使わない方針ですが、services/importer/AGENTS.override.mdでは外部API確認を前提にしています。
どちらが優先されるかと、承認が必要な操作かを追記してください。

enforcement gap:
「.envを読まない」と自然文で書くだけでは、権限設定としては弱いです。
Claude Codeで使う場合は permissions.deny、Codexで使う場合はsandbox/approval、CI側ではsecret露出検査を検討してください。

test freshness:
lintを必須と書いていますが、対象変更がdocsだけの場合の扱いがありません。
最小確認、full確認、未実行時の報告文言を分けてください。

レビューの目的は、AGENTS.mdを長くすることではありません。次にエージェントへ作業を渡した時に、対象範囲を読み違えず、危険操作を避け、検証結果を人間がレビューできる形で残せる状態にすることです。

PR差分で最初に見るファイル

Visual最初に並べるファイルAGENTS.mdだけでなく、実行手順と検査側も見ます。
項目内容見方
エージェント向けinstructionAGENTS.md、AGENTS.override.md、CLAUDE.md、GEMINI.mdを見る。
Copilot向けinstructionrepository-wideとpath-specificの違いを見る。
Claude Code設定permissions、sandbox、hookの有無を見る。
実行手順package.json、Makefile、workspace設定でコマンドの現在地を見る。
CIエージェントの自己申告に頼らず検査できるかを見る。
レビュー責任CODEOWNERS、PR template、Issue formで承認や報告が残るかを見る。

良さそうな文言でも、package scriptsやCIや権限とずれると良い運用につながりません。

instructionファイルだけを見ない

AGENTS.mdのPRを開いたら、まず差分に含まれているファイルを次のように並べます。

種類見る理由
エージェント向けinstructionAGENTS.md, AGENTS.override.md, CLAUDE.md, GEMINI.mdエージェントに読ませる作業方針
Copilot向けinstruction.github/copilot-instructions.md, .github/instructions/*.instructions.mdrepository-wideとpath-specificの違い
Claude Code設定.claude/settings.json, managed settingspermissions、sandbox、hookの有無
実行手順package.json, Makefile, pnpm-workspace.yaml, pyproject.toml書かれたコマンドが今も存在するか
CI.github/workflows/*.ymlなどエージェントの自己申告に頼らず検査できるか
レビュー責任CODEOWNERS, PR template, Issue form人間承認や未実行報告が残るか

AGENTS.mdの差分だけを見ると、「テストを必ず実行する」といった良さそうな文言に見えます。しかし、package scriptsが変わっていたり、CIが別のpackageだけを見ていたり、権限設定でそのコマンドが実行できなかったりすると、良い文言が良い運用につながりません。

Codexでは読み込み階層を見る

CodexのAGENTS.md guideでは、Codexがグローバルスコープとプロジェクトスコープのinstructionを読み、プロジェクト内ではルートから現在ディレクトリへ向かってファイルを結合すると説明されています。近いディレクトリの内容は後から入るため、レビューでは「どの場所で作業を始めると、どのinstructionが効くか」を見る必要があります。

特にmonorepoでは、ルートAGENTS.mdに全体方針、サブディレクトリにサービス固有の手順を置くことがあります。このとき危ないのは、ルートに古い万能手順が残ることです。

repo/
  AGENTS.md
  apps/
    web/
      AGENTS.md
  services/
    payments/
      AGENTS.override.md

確認項目

この構成でpayments配下の作業をするなら、レビューでは次を確認します。

  • ルートの禁止事項とpayments側の例外が矛盾していないか
  • payments側のテストコマンドが、実際のMakefileやCIと合っているか
  • AGENTS.override.mdがある時に同じディレクトリのAGENTS.mdを読ませるつもりになっていないか
  • ルートに「全サービス共通」と書いた手順が、本当に全サービスに残っているか

Codexで設定、permissions、AGENTS.md、MCPの境界を整理するなら、AGENTS.mdの階層とconfigの責任を分けて見るとレビューしやすくなります。

GitHub Copilotではinstructionの種類を見る

GitHub Copilotの公式Docsは、repository-wide custom instructions、path-specific custom instructions、agent instructionsを分けています。repository-wideは.github/copilot-instructions.md、path-specificは.github/instructions配下、agent instructionsはAGENTS.mdCLAUDE.mdGEMINI.mdのようなファイルです。

ここでのレビュー観点は、どのCopilot機能でどのinstructionが効くかです。agent instructionsはrepository-wide instructionsに似ていますが、公式DocsはすべてのCopilot機能でサポートされるとは限らないと説明しています。つまり、Copilot Chat、coding agent、code review、IDE上の補助で同じように効く前提にしない方が安全です。

PRコメントでは、こう書くと実務的です。

このルールは全リクエストに効く前提で書かれていますが、Copilot側ではrepository-wide、path-specific、agent instructionsで適用範囲が違います。
対象がGitHub.comのcoding agentなのか、VS Codeでの補助なのか、PRレビューなのかを明記してください。

instruction driftは古い正解が残ることで起きる

Visual古い正解がdriftになる流れ手順が正しかった時期と現在の実態を分けて見ます。
  1. 1以前の正解

    npm test、npm run lint、毎回E2Eなどの手順が残る。

  2. 2実態の変化

    pnpm移行、CI条件変更、nightly移行、monorepo分割が起きる。

  3. 3起きる問題

    存在しないコマンド、CIと違う失敗条件、対象package漏れが起きる。

  4. 4レビューで更新

    共通化できるものとディレクトリ別に分けるものを切り分ける。

昔は正しかった指示ほど、依存更新や構成変更のあとに残りやすくなります。

古いテストコマンドを見つける

AGENTS.mdの代表的な内容には、build and test commandsやtesting instructionsがあります。だからこそ、テスト手順のdriftは最も起きやすいです。

よくあるのは、次のようなズレです。

AGENTS.mdに残った指示現在の実態起きる問題
npm testを実行repoはpnpmへ移行済みagentが存在しないコマンドを試す
npm run lintを実行CIではeslint . --max-warnings=0だけローカルとCIの失敗条件が違う
E2Eは毎回実行E2Eはnightlyだけに移行agentが重い検査を選び、時間を浪費する
snapshot更新は任せてよいsnapshot更新はreviewer承認制見た目の差分を隠すリスクがある
make testで十分servicesごとにtargetが分かれた対象packageを見ない

この確認は、エージェントに頼らず人間レビューで先にできます。package scripts、Makefile、CI workflow、README、直近のPR本文を見比べれば、古い手順はかなり見つかります。

古い作業境界を見つける

もう一つのdriftは、作業境界です。

最初は1つのWebアプリだったリポジトリが、API、worker、admin、shared packagesを含むmonorepoになることがあります。すると、ルートAGENTS.mdに書いた「全変更でこのテストを実行」「全ファイルでこの命名規則を使う」「全PRでこのownerへ確認」といった文言が、急に雑になります。

レビューでは、共通化できるものと、ディレクトリ別に分けるものを切り分けます。

共通化しやすい分けた方がよい
secretを読まないpackageごとのtest command
未実行テストを報告するdeploy手順
PR本文にSummary/Tests/Risksを書くDB migration手順
本番操作は人間承認にするE2Eの対象環境
生成ファイルの扱いを明記するfeature flagの操作手順

「全リポジトリで同じ手順」と書きたくなったら、そこは要注意です。共通ルールは短く、実行手順は近いディレクトリへ置く方が、driftに強くなります。

矛盾は近いファイル、後で読まれるファイル、強制設定の順に疑う

Visual矛盾を疑う順番自然文、設定、CIを同じ流れで確認します。
  1. 1instruction同士

    ルートとサブディレクトリで違う手順が書かれていないかを見る。

  2. 2後で読まれる内容

    作業ディレクトリに近いinstructionがどの内容を上書きするかを見る。

  3. 3強制設定

    network access、permissions、sandboxと手順が合うかを見る。

  4. 4CIとレビュー責任

    人間が何を信じればよいか、検査と承認の流れを見る。

文章だけ整えても、実行環境やCIと合わなければ矛盾は残ります。

自然文の矛盾だけを見ない

instructionの矛盾には、3つの層があります。

レビューの問い
instruction同士の矛盾ルートではnpm test、サブディレクトリではmake test-paymentsどちらが対象作業で使われるか
instructionと設定の矛盾AGENTS.mdは外部API確認を指示するが、network accessは閉じている実行できない手順を書いていないか
instructionとCIの矛盾AGENTS.mdはlint必須、CIはdocs変更でlintをskip人間が何を信じればよいか

自然文の整合だけを取っても、実行環境と合わないと意味がありません。PRレビューでは、instruction、config、CI、レビュー責任を同じ表に置きます。

CLAUDE.mdはcontext、settingsは強制に近い

Claude Codeを使うチームでは、CLAUDE.mdが便利です。project memoryやrulesで、コードスタイル、データ取り扱い、品質基準、振る舞いの指示を共有できます。

ただし、Claude Codeの公式Docsは、settings rulesはクライアント側で強制される一方、CLAUDE.mdはClaudeの振る舞いを形作るものであり、hard enforcement layerではないと説明しています。ここがレビューで重要です。

たとえば、CLAUDE.mdにこう書くだけでは足りません。

Security:

- Never read .env files.
- Never run git push.
- Never call production APIs.

レビューでは、次のように分けます。

目的CLAUDE.mdに書くsettings/hooks/CIで扱う
行動方針secretを扱わない理由、代替手順permissions.denyやhookでpath/toolを止める
コード品質命名、レビュー観点、報告形式lint、typecheck、test
本番操作人間承認が必要な理由approval、hook、環境分離
外部通信どのAPIを使うかの方針network制限、MCP serverのscope

文章は迷いを減らします。設定やhookは、実行を止めます。チーム運用では両方が必要です。

Copilot custom instructionsでは適用範囲を見る

GitHub Copilotでレビューする場合は、instructionがどこへ効くのかを必ず確認します。repository-wide、path-specific、agent instructionsを混ぜると、「どの指示がいつ効くか」が曖昧になります。

特に、.github/copilot-instructions.mdに全体方針、.github/instructions/*.instructions.mdにpath-specific rule、AGENTS.mdにagent向け作業手順を置く構成では、重複が起きやすいです。レビューでは、同じルールを複数箇所に書くより、役割を分けます。

repository-wide:
  全体の品質基準、PR報告形式、禁止事項

path-specific:
  frontend、api、infraなど対象pathごとの実装規約

agent instructions:
  agentが作業を始める前に読む手順、テスト、承認境界

GitHub Copilotの指示ファイルの置き場所を整理したい場合は、copilot-instructions.md、.instructions.md、AGENTS.mdの置き場所も参考になります。

権限競合は同じ表で見る

Visual操作ごとの権限マトリクス書かれた手順と許可される操作を同じ表で見ます。
項目内容見方
操作staging API確認、.env参照、git push、migration dry runを分ける。
instruction必須、禁止、人間承認後など、自然文で何を求めているかを見る。
sandbox / permissionnetwork、WebFetch、対象リポジトリ外context、DB接続の可否を見る。
hook / CI代替CI、secret scan、branch protection、dry runの有無を見る。
判定実行できない手順には、代替手順、手動確認者、未実行報告を置く。

権限の比較は単純な勝敗ではなく、操作ごとに条件差を見ます。

書いてあるのに実行できない差分

権限競合の1つ目は、AGENTS.mdに書かれた手順が、実行環境では許可されていないケースです。

たとえば、AGENTS.mdにこう書いたとします。

External API checks:

- After changing the import worker, call the staging API and verify that the sync result is correct.

しかし、Codexの実行環境でnetwork accessが閉じている、Claude CodeのpermissionsでWebFetchがdenyされている、Copilot cloud agentの対象リポジトリ外のcontextへアクセスできない、という状態なら、この手順は実行できません。

権限マトリクスで見る

この差分は、AGENTS.mdだけでは見つかりません。レビューでは、操作ごとに表にします。

操作instructionsandbox/permissionhook/CI判定
staging API確認必須と書いているnetworkが閉じている代替CIなし修正必要
.env参照禁止と書いているdeny設定なしsecret scanありdeny追加を検討
git push人間承認後と書いているask設定ありbranch protectionありおおむねOK
migration dry run手順ありDB接続なしCIにdry runなし手順か環境を分ける

「書いてあるのに実行できない」は、agentが迷う原因です。実行できないなら、代替手順、手動確認者、未実行時の報告文言を書きます。

実行できるが実行させたくない差分

反対に、実行できるが実行させたくない操作もあります。

  • .envやsecretファイルを読む
  • production APIへ書き込む
  • git push --forceを実行する
  • DB migrationを本番へ適用する
  • 外部サービスへユーザーデータを送る
  • 大量のファイル削除を自動で行う

この種類の操作は、AGENTS.mdに「禁止」と書くだけでは弱いです。Codexならsandboxとapproval policy、Claude Codeならpermissionsやhooks、GitHubならbranch protection、CODEOWNERS、required checks、環境secretの制限を使います。

レビューコメントは、こう書くと通りやすいです。

この差分では「productionへ書き込まない」とAGENTS.mdに追加していますが、実行を止める設定がありません。
自然文の注意だけだと、別のinstructionやユーザー依頼と競合した時に弱いです。
本番書き込みはhookまたはCI側の確認へ移し、AGENTS.mdには代替のdry-run手順を書いてください。

AIエージェントのprompt injection対策でも同じ考え方が必要です。外部DocsやIssue、MCPを読ませるなら、prompt injection対策の記事で整理したように、読ませる範囲、toolの権限、人間承認を分ける必要があります。

hooksとCIはinstructionを検査へ変える場所

Visualinstructionを検査に変える流れ自然文だけでは止めにくい操作を検査側へ寄せます。
  1. 1自然文の指示

    .envを読まない、git pushは承認後だけ、productionへ書かない。

  2. 2permissions

    path、command pattern、URL、envでdenyやaskを検討する。

  3. 3hooks

    エージェント実行の特定タイミングで検査や制御を入れる。

  4. 4CI

    エージェントの自己申告に頼らず、検査結果をPRに残す。

hooksは万能ではありませんが、禁止や検査を自然文から実行時の確認へ移せます。

hooksへ移すべき指示

Claude Codeのhooks referenceやGitHub Copilot cloud agentのhooks説明を見ると、hooksはエージェント実行の特定タイミングで検査や制御を入れるための仕組みです。すべてをhooksにする必要はありませんが、「守れたらよい」ではなく「守らないと危ない」指示は、自然文から強制可能な検査へ移した方がよいです。

移す判断

hooksやpermissionsへ移しやすい指示は、次のようなものです。

自然文の指示強制側へ移す理由
.envを読まないpathでdenyしやすい
git pushは承認後だけcommand patternでask/denyしやすい
generated fileを直接編集しないpathやcommandで検査しやすい
productionへ書かないcommand、URL、envで検査しやすい
planなしにmigrationしないtool call前に承認を挟みやすい

Codexのhooksを中心に考える場合は、Codex Hooksで止める前に決めることが近いテーマです。この記事では、AGENTS.mdのレビュー中に「これはhookへ移すべきでは」と判断する観点に絞ります。

CIへ移すべき指示

CIへ移すべきなのは、エージェントの自己申告だけでは信頼しにくい確認です。

  • lintが通る
  • typecheckが通る
  • unit testが通る
  • docs linkが切れていない
  • forbidden literalやsecretが混ざっていない
  • generated fileが正しく更新されている
  • migrationがdry-runできる

AGENTS.mdには「最終報告で実行したテストと未実行テストを分けて書く」と指示します。ただし、merge判断はCIと人間レビューへ残します。エージェントの報告は重要ですが、報告だけで安全性を担保しようとすると失敗します。

文章を増やすより、失敗時の出し方を固定する

AGENTS.mdのレビューでよくある失敗は、注意書きを増やし続けることです。

- 必ずテストすること。
- 失敗したら直すこと。
- できれば理由を書くこと。
- 危ない操作はしないこと。

これでは、agentもreviewerも判断しにくいです。代わりに、失敗時の出し方を固定します。

Final report:

When finishing a task, report:

- Summary: what changed
- Tests run: exact commands and result
- Tests not run: command, reason, and risk
- Risks: behavior that still needs human review
- Follow-up: items that should not be merged in this PR

PR本文側の型と合わせるなら、AIエージェントPRテンプレートの作り方と同じ方向です。AGENTS.mdには、agentが何を報告するかを書き、PR templateにはreviewerが何を確認するかを置きます。

テスト手順の陳腐化は「走る」ではなく「守れている」で見る

Visualテスト手順の棚卸し成功するかだけでなく、現在のリスクを守れているかを見ます。
項目内容見方
対象範囲変更packageを見ているか、ルートの軽いtestだけで終わっていないかを見る。
失敗条件CIと同じ閾値か、ローカルだけwarning許容になっていないかを見る。
E2E実行条件と対象環境が明記されているかを見る。
snapshot更新理由がレビュー対象になり、差分を隠していないかを見る。
未実行報告Not run、Risks、代替確認がPR本文に残せるかを見る。

テスト手順は、今の変更リスクに届いているかで判断します。

コマンドの存在確認だけでは足りない

npm testが成功するからといって、AGENTS.mdのテスト手順が正しいとは限りません。

見るべきなのは、テストが現在のリスクを守れているかです。

確認OKに近い状態危ない状態
対象範囲変更packageを見ているルートの軽いtestだけ通る
失敗条件CIと同じ閾値ローカルだけwarning許容
E2E実行条件と対象環境が明記毎回必須だが誰も実行しない
snapshot更新理由がレビュー対象自動更新で差分を隠す
flaky再実行回数と扱いが決まっている失敗を都合よく無視する

テスト手順は、軽すぎても重すぎてもdriftします。軽すぎると守れません。重すぎると誰も実行しなくなります。

最小確認とfull確認を分ける

AGENTS.mdには、変更範囲別に最小確認とfull確認を分けると使いやすくなります。

Test selection:

- Docs-only changes: run markdown lint if available. If not run, explain why.
- UI component changes: run targeted component tests and visual checks when available.
- API behavior changes: run unit tests for the touched package and relevant integration tests.
- Auth, billing, permissions, or migration changes: ask before skipping full test.

この書き方なら、agentは「全部やるか、何もしないか」の二択になりません。reviewerも、未実行の理由が妥当か見やすくなります。

未実行理由を曖昧にしない

AGENTS.mdの変更レビューでは、未実行理由のフォーマットも見ます。

悪い例です。

Tests not run: time.

この書き方では、何が未検証なのかわかりません。

良い例はこうです。

Tests not run:
- pnpm test:e2e
- Reason: requires a seeded browser environment that is not available in this run.
- Risk: checkout flow may need manual verification before merge.

AIエージェントが万能に見えるほど、未実行の報告が大事になります。未実行を正しく書けるAGENTS.mdは、人間レビューを助けます。

失敗点:AGENTS.mdに書けば安全、という誤解

Visual自然文だけに置かない指示危険な操作は、強制設定やレビューの流れにも置きます。
secretや個人情報

読まない方針だけでなく、pathや権限で止める。

本番操作

本番へ書き込まない方針を、URL、env、承認で支える。

外部送信

外部サービスへ送信しない条件を、networkやhookで確認する。

destructive command

破壊的なcommandは自然文だけでなく、askやdenyの対象にする。

AGENTS.mdは判断を助けますが、危険操作を止めるには実行環境側の支えが必要です。

自然文だけでは止まらない

一番危ない失敗は、AGENTS.mdに書いた瞬間に安全になったと考えることです。

自然文のinstructionは、エージェントの判断を助けます。しかし、ユーザーの依頼、上位のsystem/developer instruction、近い階層のoverride、MCP toolの挙動、実行環境の違いによって、期待どおりに働かないことがあります。

特に、次のような指示は自然文だけに置かない方がよいです。

  • secretや個人情報を読まない
  • 本番へ書き込まない
  • 外部サービスへ送信しない
  • destructive commandを実行しない
  • migrationやbilling変更を自動適用しない
  • private repository外の情報を取りに行かない

こうした操作は、permissions、sandbox、hooks、CI、人間承認で止めます。AGENTS.mdには、その理由、代替手順、未実行時の報告方法を書きます。

長すぎるAGENTS.mdは別のdriftを生む

AGENTS.mdを安全にしたくて、すべての注意事項を足し続けると、別の問題が出ます。

  • 古い情報が残りやすい
  • エージェントが重要な指示を見落としやすい
  • サブディレクトリ固有の手順と競合しやすい
  • 人間がレビューしなくなる
  • 何が強制で、何が推奨かわからなくなる

OpenAI CodexのAGENTS.md guideでは、Codexのproject instruction discoveryにサイズ上限があり、長くなりすぎる場合はlimitや分割を考える必要があります。実務では、AGENTS.mdを長くするより、近いディレクトリへ分ける、設定へ移す、CIへ移す、PR templateへ移す、という選択肢を持った方が保守しやすいです。

公式Docsの名前変更にも注意する

この記事で扱った機能名やファイル名は、2026年6月2日時点で公式Docsを確認したものです。Codex、Claude Code、GitHub Copilotのinstruction、permissions、hooks、cloud agent周辺は更新が速い領域です。

記事をそのまま社内テンプレートへ転記するのではなく、導入時に次を確認してください。

  • 対象ツールが現在もそのファイル名を読むか
  • その設定がユーザー設定、project設定、managed設定のどこで効くか
  • repository側で勝手にauto modeやbypass系の権限を付けられないか
  • agent instructionsが対象機能でサポートされるか
  • hooksやMCP serverが無効化された時にどう止めるか

実務で使うなら

VisualAGENTS.md変更PRの確認順変更理由から小さな確認まで順に見ます。
  1. 変更理由

    新しい作業種類、古い手順の修正、権限境界の変更を分ける。

  2. 対象ディレクトリ

    ルートでよいか、近いディレクトリへ置くべきかを見る。

  3. テスト手順

    package scripts、Makefile、CI workflowと突き合わせる。

  4. 権限

    sandbox、permissions、hooks、MCP、CI、人間承認と合うか見る。

  5. PR本文

    Tests run、Not run、Risksが書ける手順になっているか見る。

  6. 小さく試す

    README更新やdummy changeで、agentが正しい手順を選ぶか見る。

変更後のinstructionは、実際の小さなタスクで選ばれる手順まで確認します。

AGENTS.md変更PRのレビュー手順

実務では、AGENTS.md変更PRを次の順で見ます。

  1. 変更理由を見る。新しい作業種類が増えたのか、古い手順を直すのか、権限境界を変えるのかを分けます。
  2. 対象ディレクトリを見る。ルートでよいのか、近いディレクトリへ置くべきかを確認します。
  3. テスト手順を見る。package scripts、Makefile、CI workflowと突き合わせます。
  4. 権限を見る。sandbox、permissions、hooks、MCP、CI、人間承認と合うか確認します。
  5. PR本文を見る。Tests run、Not run、Risksが書ける手順になっているか確認します。
  6. 小さく試す。README更新やdummy changeで、agentが正しい手順を選ぶか見ます。

チェックリスト

レビュー用のチェックリストは、この程度で十分です。

AGENTS.md change review:

- [ ] This change has a clear reason: drift / conflict / enforcement gap / test freshness.
- [ ] The instruction is placed at the right directory level.
- [ ] Test commands match current scripts and CI workflows.
- [ ] Dangerous operations are enforced by permissions, sandbox, hooks, CI, or human approval.
- [ ] The final report format separates Tests run, Tests not run, and Risks.
- [ ] A small non-production task can verify the behavior.

変更後に小さく試す

AGENTS.mdを変えたら、いきなり本番に近い作業を任せない方がよいです。小さな確認タスクで、読み込み、拒否、報告の3つを見ます。

確認小さなタスク例合格条件
読み込み対象ディレクトリで「読み込んだinstructionを列挙」させるルートと近いディレクトリの差が説明される
拒否禁止された操作に近いdummy commandを試す実行せず、承認や代替手順へ進む
報告docs修正を任せるSummary、Tests run、Not run、Risksが分かれる

ここで大切なのは、エージェントの能力を採点することではありません。チームのinstructionが、次の作業で迷いを減らす形になっているかを確認することです。

ownerを決める

AGENTS.mdは誰かがownerにならないと、すぐ古くなります。おすすめは、ファイル全体のownerではなく、領域ごとにownerを分けることです。

領域owner候補
test command各packageのmaintainer
security禁止事項security ownerまたはlead engineer
CIとの整合platform/infra owner
PR報告形式reviewer代表またはengineering manager
MCP/tool権限tool運用owner

CODEOWNERSやrequired reviewsで、人間の責任を残します。エージェントに作業を任せるほど、ownerの境界は曖昧にしない方がよいです。

セキュリティ・コスト注意

Visualread-onlyからfull確認へ危険操作と重い検査は、条件を分けて扱います。
項目内容見方
read-onlyAGENTS.md、MCP、tool calling、外部APIの組み合わせは最初に読み取り中心で始める。
危険操作secret、本番データ、個人情報、billing、DB migrationは承認と監査を置く。
最小確認変更種類ごとに必要な確認を決める。
full確認危険な変更だけfull test、E2E、build、security scanへ進める。
監査ログpermissions、sandbox、hooks、CIの結果を後から追えるようにする。

セキュリティとコストは、操作の危険度と変更種類に応じて確認範囲を変えます。

secretとproduction操作はread-onlyから始める

AGENTS.md、MCP、tool calling、外部APIを組み合わせる場合、最初はread-onlyから始めます。secret、非公開リポジトリ、本番データ、個人情報、billing、DB migrationのような操作は、エージェントに直接渡す前に人間承認の境界を作ります。

安全寄りの書き方は、次のようになります。

Sensitive operations:

- Start with read-only commands for repository, issue, and document lookup.
- Do not read .env, secrets, customer data, or production exports.
- Do not write to production systems.
- If a task needs external API access, explain the reason and wait for human approval.
- Prefer dry-run, preview, or staging verification before proposing irreversible changes.

この文言だけで安全になるわけではありません。だからこそ、permissions、sandbox、hooks、CI、監査ログへつなげます。

長いテスト手順はコストになる

AIエージェントに毎回full test、E2E、build、security scanを全部実行させると、時間とAPI利用量が増えます。チームのレビュー速度も落ちます。

現実的には、変更種類ごとに最小確認を決め、危険な変更だけfull確認へ進めます。

変更種類最小確認full確認が必要な条件
docsmarkdown lint、リンク確認公開ページや規約文の変更
UI対象component test、目視確認checkout、auth、billing
APIunit test、対象integration testauth、permission、data mutation
migrationdry-run、rollback plan本番適用、lock risk、large table
MCP/toolread-only動作確認write権限、外部送信、secret参照

「全部やる」は安全そうに見えますが、続かない運用はdriftします。続けられる検証手順にすることも、セキュリティの一部です。

利害関係とAI利用

この記事は、公式ドキュメントと公開済み記事をもとに作成しています。特定ツール提供元からのスポンサー、アフィリエイト、無償提供、検証環境提供はありません。AIは下書き、構成、校正、コード補助に使えますが、仕様確認、公開判断、社内導入判断は人間が行う前提です。

AIコーディングエージェント運用の更新や、AGENTS.md、permissions、hooks、MCPの見直しポイントを追いたい場合は、ニュースレターで更新通知を受け取れます。チーム導入で権限棚卸しやレビュー基準を整える場合は、記事末の問い合わせ導線から相談できます。

FAQ

Visualよくある迷いレビュー対象、hooks、見直し時期を整理します。
レビュー対象

AGENTS.md、CLAUDE.md、Copilot instructions、settingsを対象にする。

軽い修正

タイポ修正は軽く見ても、テスト手順や禁止操作に触れるなら権限とCIまで見る。

複数instruction

共通方針、ツール固有の設定、agent固有の読み込み範囲を分ける。

hooks

操作の検査に向き、AGENTS.mdは目的や報告形式を伝えるのに向く。

見直し時期

依存更新、CI変更、monorepo分割、tool追加、権限変更で棚卸しする。

FAQで迷いやすい点も、自然文と強制設定の役割分担に戻して判断します。

AGENTS.mdは毎回PRレビュー対象にするべきですか

はい。少なくともAGENTS.md、CLAUDE.md、.github/copilot-instructions.md.github/instructions.claude/settings.jsonのようなファイルは、コード変更と同じようにレビュー対象にします。エージェントの作業範囲、テスト、権限、報告形式を変えるため、影響は小さくありません。

小さな文言修正でも権限まで見る必要がありますか

文言修正の内容によります。タイポ修正なら軽いレビューで十分です。ただし、テスト手順、禁止操作、外部API、secret、本番操作、MCP、承認者、対象ディレクトリに触れるなら、権限とCIまで見ます。

AGENTS.mdとCLAUDE.mdを両方置いてよいですか

置けます。ただし、同じルールを両方に重複させるとdriftしやすくなります。共通方針、ツール固有の設定、agent固有の読み込み範囲を分け、どちらを更新すべきかがわかるようにします。

hooksがあればAGENTS.mdは不要ですか

不要にはなりません。hooksは特定の操作を止めたり検査したりするのに向いています。AGENTS.mdは、作業目的、テスト選択、報告形式、代替手順、人間への相談タイミングを伝えるのに向いています。両方を分けて使う方が安定します。

どのくらいの頻度で見直すべきですか

依存更新、CI変更、monorepo分割、MCP/tool追加、権限変更、reviewer変更があった時は見直します。定期的には月1回または四半期ごとに、テスト手順と禁止操作だけ棚卸しすると十分です。

参照した主な情報源

  • OpenAI Codex: Custom instructions with AGENTS.md

https://developers.openai.com/codex/guides/agents-md

  • OpenAI Codex: Agent approvals & security

https://developers.openai.com/codex/agent-approvals-security

  • Claude Code Docs: How Claude remembers your project

https://code.claude.com/docs/en/memory

  • Claude Code Docs: Settings

https://code.claude.com/docs/en/settings

  • Claude Code Docs: Hooks reference

https://code.claude.com/docs/en/hooks

  • GitHub Docs: About customizing GitHub Copilot responses

https://docs.github.com/en/copilot/concepts/prompting/response-customization

  • GitHub Docs: About GitHub Copilot cloud agent

https://docs.github.com/en/copilot/concepts/agents/cloud-agent/about-cloud-agent

  • AGENTS.md open format

https://agents.md/

次に読むなら

更新履歴

Visual確認した情報の更新記録公式情報と確認日を残します。
  1. 2026-06-02

    OpenAI Codex AGENTS.md guide、approvals/securityを確認。

  2. Claude Code

    memory、settings、hooksの情報を確認。

  3. GitHub Copilot

    custom instructions、cloud agent、hooksの情報を確認。

  4. AGENTS.md

    open format siteの情報を確認。

instructionや設定名は変わり得るため、確認日を残して見直します。

  • 2026-06-02: OpenAI Codex AGENTS.md guide、Codex approvals/security、Claude Code memory/settings/hooks、GitHub Copilot custom instructions/cloud agent、AGENTS.md open formatを確認し、初版を作成しました。X上の需要シグナルは本文の事実根拠に使っていません。