0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Codexで使うAGENTS.mdの役割と実務

Posted at

結論(先に要点)

  • AGENTS.mdは「エージェント向けREADME」。人間向けREADMEに載せにくい「ビルド・テスト手順、コード規約、PRルール、守ってほしいガードレール」など、エージェントが作業するのに必要な具体指示を置く場所です。CodexはAGENTS.mdを読んで作業を進められます。 (agents.md)

  • 要件定義は別ファイルで管理がベスト。AGENTS.mdに全文は入れず、「参照リンク+遵守方法(受入条件の確認・テスト実行など)」だけを書くと運用が安定します。

  • 分割は“レベル”で分けると吉

    • 上位:製品/全体要件(非機能・品質・セキュリティ)
    • 中位:機能ごとの要件(エピック/機能単位)
    • 下位:タスク/ストーリーの受入条件
      ⇒ タスクに合わせて**細かく“断片化しすぎない”**のがコツ。リンクで結ぶ。
  • リンク方式:AGENTS.mdから相対リンクで要件ドキュメント群に飛ばす。CodexはAGENTS.mdの指示を優先的に読む(同時に、AGENTS.mdに書いた「テスト/チェックを走らせる指示」も尊重されます)。 (OpenAI)

  • 階層運用OK:モノレポ等ではサブディレクトリにもAGENTS.mdを置け、**“より近い階層が優先”**されます(Codex/他ツールの実装)。 (OpenAI)


AGENTS.md の役割と書き方(Codex前提)

役割

  • エージェントが安全かつ一貫したやり方であなたのリポジトリを編集・ビルド・テストできるようにする“行動ガイド”。Codexはここに書いた手順やチェック(テスト・リンタ等)を実行し、合格を目指します。 (OpenAI)

最小構成テンプレ

# AGENTS.md

## プロジェクト概要(1〜3行)
このリポジトリは~。主要ディレクトリ: `api/`, `web/`, `infra/`## セットアップ/ビルド/テスト
- 依存解決: `pnpm i`
- Lint/Typecheck: `pnpm lint && pnpm typecheck`
- 単体テスト: `pnpm test`
- E2E: `pnpm e2e`
- 変更をコミットする前に上のチェックが**全て緑**であること

## コーディング規約(要点)
- TypeScript: strict。import順序はeslint-plugin-importに従う。PRごとに型エラーゼロ。
- PRタイトル: `[api] 説明…` の形式。

## ガードレール / 禁止事項
- 秘密情報を追加しない。生成コードにAPIキーを埋め込まない。
- 破壊的変更は`docs/adr/`にADR追加後に実施。

## 要件・受入基準の参照
- **実装前に**以下を必ず読む:`docs/requirements/README.md`
- 今回の作業対象がある場合、該当機能の文書を開き**受入基準(Acceptance Criteria)**を満たすテストを追加/更新すること。

## PRルール
- 変更理由/影響範囲/テスト結果をPR本文に記載。

CodexはAGENTS.mdの“プログラム的チェック(テスト、リンタ等)”を走らせるべき、また近い階層のAGENTS.mdが優先という仕様/挙動が公開情報として示されています。 (OpenAI)

階層運用(モノレポなど)

  • ルートに総則、packages/foo/AGENTS.md にfoo専用ルール、のように近い方が優先。実地検証記事でも“近い階層が勝つ”動作が報告されています。 (Qiita)

“要件定義”はどう分ける?どこに置く?

1) 別ファイルに分けるのが基本

  • AGENTS.mdは**“実行可能な作業手順と規約・ガードレールの要点”**に絞り、要件本文は別MDに。
  • 理由:AGENTS.mdはエージェントにとっての“作業マニュアル”。要件全文まで詰め込むと可読性/保守性が落ちます。AGENTS.mdはリンク集&遵守のしかたを書き、本文はdocs/requirements/*.mdに置く運用がスケールします。
  • なお、ツールによってはAGENTS.mdから外部MDをインクルード運用できるものもあります(例:Android Studio Geminiは@./file.mdで分割可能)。Codexは“参照指示+相対リンク”で十分実用的です。 (Android Developers)

2) 分割の粒度(おすすめの3層)

  • 上位(全体要件/非機能)docs/requirements/000-overview.md
  • 中位(機能/エピック別)docs/requirements/feature-foo.md
  • 下位(ストーリー/タスク受入条件)docs/requirements/feature-foo-story-123.md
    → タスク駆動で細かく分けるのは有効ですが、“受入条件は最も近い要件ページに集約”、タスク側はその見出しへリンクする形にすると、迷子になりません。

3) リンクの張り方(実例)

repo/
├─ AGENTS.md
└─ docs/
   ├─ requirements/
   │  ├─ README.md                # 入口/索引
   │  ├─ 000-overview.md          # 全体要件・非機能
   │  ├─ feature-foo.md           # 機能要件(Foo)
   │  └─ feature-foo-story-123.md # 受入条件(タスク/ストーリー)
   └─ adr/
      └─ 2025-09-17-xxx.md        # 重要設計判断

AGENTS.md側の書き方(リンク例)

## 要件ドキュメント
- 索引: ./docs/requirements/README.md
- 機能Foo: ./docs/requirements/feature-foo.md
- 作業着手前に対象ストーリーの**受入条件**を確認し、足りなければ追記を提案してから実装開始。
- 変更後は関連テストを更新し、`pnpm test`**緑**になるまで修正。

Codexでの挙動・仕様のポイント(運用のヒント)

  • CodexはAGENTS.mdを読んで、そこに列挙された“プログラム的チェック(テスト等)”を実行し、合格を目指すよう設計されています。チェックを明記しておくと品質が安定します。 (OpenAI)
  • スコープ/優先順位“より近い(深い)AGENTS.mdが優先”。モノレポでは各パッケージごとにAGENTS.mdを置くと、意図どおりの規約で動かせます(実地検証もあり)。 (OpenAI)

まとめ:おすすめ運用レシピ

  1. リポジトリ直下にAGENTS.mdを作成(必要ならAGENT.mdへsymlink)。Codexを含む複数エージェントで効きます。 (GitHub)
  2. **AGENTS.mdは“行動ガイド+テスト/ビルド/規約の要点+要件リンク”**に限定し、本文はdocs/requirements/配下へ。
  3. 要件は3層に分割(全体/機能/ストーリー)し、タスクは下位の受入条件へリンク
  4. モノレポは階層別AGENTS.mdを併用(“近いほど優先”)。 (Qiita)
  5. 必ずテスト/リンタ等の“合格条件”をAGENTS.mdに明文化(Codexはそれを走らせ、合格を目指します)。 (OpenAI)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?