AGENTS.mdを棚卸しして見えた、AIエージェント運用の現在地

このリポジトリの AGENTS.md を改めて読み直して、何を制御しているのか・何が足りないのかを整理した。

##AGENTS.mdとは

OpenAI Codexなどのエージェントがリポジトリで作業するとき、最初に読み込む指示書。CLAUDE.mdがClaude Code向けなのに対して、AGENTS.mdは主にCodex向けのルールを定義している。

現状66行。短いファイルだが、エージェントの行動をかなり絞り込んでいる。

##構造の全体像

現状のAGENTS.mdは、大きく5つのブロックで構成されている。

  1. Purpose — Discord通知の義務化宣言
  2. Agent Guidelines — 設計哲学(YAGNI/KISS/DRY)
  3. Mandatory Completion Stepcodex:finish コマンドの実行義務
  4. Mandatory Memo Blog Step — memo記事の作成義務
  5. Git Completion Step — commit/pushの手順

##設計思想を読み解く

###「完了の可視化」が最優先

AGENTS.mdの中心にあるのは「Codexが仕事を終えたことを人間が確実に把握できるようにする」という思想。Discord通知、memo記事、gitコミットの3つを必須にすることで、エージェントの作業が闇に消えるのを防いでいる。

bun run codex:finish -- --summary "<short completion summary>" --memo "src/_memo/content/YYYY/MM/<slug>.mdx"

このコマンドが全ての起点。通知とログを1つのコマンドに集約しているのは運用として正しい。

###失敗時のガードレール

通知失敗時のルールが明文化されている点は地味に重要。

  1. Retry once.
  2. If it still fails, report the failure reason in the final response.
  3. Do not claim completion notification was sent when it was not.

3番目の「送ってないのに送ったと言うな」は、LLMのハルシネーション対策として的確。エージェントは成功を装う傾向があるので、こういう明示的な禁止は効く。

###一次情報の強制

memo記事に「参照した一次情報」セクションを必須にしている。ローカルパスではなく公開URLを求めるルールにすることで、記事が外部から検証可能になる。

- Required section heading: `## 参照した一次情報`
- List only publicly accessible primary-source URLs
- Do not list local files or local paths

AIが適当なURLを出すリスクはあるが、「一次情報を明示しろ」というルール自体は正しい方向。

##現状の課題

###1. Claude CodeとCodexでルールが分散している

CLAUDE.mdとAGENTS.mdの二重管理になっている。両方に書くべきルール(memo記事のスタイル、一次情報ポリシーなど)がどちらか一方にしかない。CLAUDE.mdには Read ./AGENTS.md と書いてあるが、逆方向の参照はない。

###2. Agent Guidelinesが1行しかない

Always prefer simplicity over pathological correctness. YAGNI, KISS, DRY.

方向性としては正しいが、これだけでは具体的な判断基準にならない。例えば「エラーハンドリングをどこまで入れるか」「型定義はどこまで厳密にするか」などの判断がエージェント任せになっている。

###3. テストに関する言及がゼロ

コード変更を伴うタスクが前提なのに、テスト実行や型チェックへの言及がない。codex:finish:build はオプション扱いで、通常の codex:finish にはビルド検証が含まれない。壊れたコードがpushされるリスクがある。

###4. ブランチ戦略が未定義

Git Completion Stepでは git push としか書いていない。ブランチ名の規則、mainへの直pushの可否、PRを作るべきかの判断基準がない。現状はCodexがmainに直pushする運用のようだが、それが意図的なのか未整備なのか、ファイルからは読み取れない。

###5. スコープの制限がない

「どのディレクトリを触っていいか」「どのファイルは変更禁止か」といったスコープ制限がない。エージェントが .envCLAUDE.md 自体を書き換えるリスクを考えると、明示的な制限があったほうが安全。

##CLAUDE.mdとの比較

観点 AGENTS.md CLAUDE.md
対象 Codex Claude Code
行数 66行 97行
設計哲学 YAGNI/KISS/DRY(1行) スキル体系で詳細定義
memo記事 構造のみ指定 文体・トーンまで指定
品質チェック オプション quality-gateスキルあり
テスト 言及なし testing-strategyスキルあり

CLAUDE.mdのほうがスキルシステムを通じて体系化が進んでいる。AGENTS.mdは「最低限これだけは守れ」という防衛線の設計。

##どう改善するか

短期的にできること:

  • codex:finish にtypecheckを組み込む(壊れたコードのpush防止)
  • 触っていいディレクトリのホワイトリストを追加
  • CLAUDE.mdのmemo記事スタイルルールをAGENTS.mdにも反映

中長期:

  • CLAUDE.mdとAGENTS.mdの共通ルールを別ファイルに切り出し、両方から参照する構成にする
  • エージェントごとの権限レベル(読み取り専用、特定ディレクトリのみ変更可、など)を定義する

##まとめ

AGENTS.mdは「完了の可視化」と「ハルシネーション防止」に絞った実用的なファイルになっている。ただ、コード品質のガードレール(テスト・型チェック・スコープ制限)が弱い。CLAUDE.mdのスキル体系が充実してきた今、AGENTS.md側も同じレベルまで引き上げるタイミングに来ている。