SUNAO Labs / ← AI実践ガイド一覧
AIに「うちのルール」を覚えさせる

AGENTS.md / CLAUDE.mdの
作り方

AIエージェントに毎回同じ説明をしていませんか。AGENTS.mdCLAUDE.mdは、AIがセッション開始時に読む「プロジェクトの取扱説明書」です。 これを置くだけで、出力のばらつきが減り、事故が起きにくくなります。この資料では、2つのファイルの違い、置き場所、何を書くか、1つにまとめる方法、安全な運用までをHiro目線で整理します。

作成日: 2026-06-05 / 参照: agents.md・Claude Code公式Docs

対象AIに作業を頼む人全般
まず作るルート直下に1枚
最初の中身概要・コマンド・禁止・完了条件
大きさ200行以内・具体的に
WHY

ルールファイルは「毎回読ませる取扱説明書」

AIエージェントは、セッションが変わると前回のことを覚えていません。だから毎回「このプロジェクトは何か」「どう動かすか」「何をしてはいけないか」を説明し直す必要があります。 AGENTS.mdCLAUDE.mdは、その説明を一度書いておけば自動で読まれる場所です。出力品質が安定する正体は、ここにあります。

毎回自動で読まれる

会話を始めるたびに、AIがこのファイルを最初に読みます。起動方法やルールを毎回コピペしなくて済みます。

出力が揃う

コードスタイル、命名、テスト方法を書いておくと、誰が頼んでも・いつ頼んでも同じ作法で返ってきます。

事故を減らす

「.envを読まない」「公開前は確認する」を明記すると、AIが踏みやすい地雷を先に外せます。

大事な前提: これらは「お願い」であって「強制」ではありません。AIは指示として読みますが、必ず従う保証はありません。 絶対に止めたい操作(秘密情報の読み取り、特定コマンドの禁止など)は、ファイルの文章ではなく権限設定やhookで仕組み化します(→安全運用)。
DIFFERENCE

AGENTS.md と CLAUDE.md は何が違うのか

一番混乱しやすいポイントです。ざっくり言うと、AGENTS.mdは「ツールをまたいで使える共通フォーマット」、CLAUDE.mdは「Claude Code専用の置き場」です。 どちらもただのMarkdownで、書く中身はほとんど同じです。違うのは「誰が読むか」です。

AGENTS.md

エージェント共通の取扱説明書(業界標準フォーマット)

  • 「READMEのAI版」。標準Markdownで、必須フィールドはなし
  • OpenAI Codex、Cursor、GitHub Copilot、Aider、Zed、Windsurf、Jules、Devinなど20以上のツールが読む
  • 複数のAIツールを使い分けるなら、まずこれを1枚用意するのが基本
  • 中身は概要・ビルド/テストコマンド・コード規約・セキュリティ・コミット規約など

CLAUDE.md

Claude Codeが読む専用ファイル

  • Claude Codeはセッション開始時にCLAUDE.mdを読む(AGENTS.mdは自動では読まない)
  • 階層・import・パス別ルールなどClaude Code独自の仕組みが豊富
  • Claude Code固有の指示(Plan modeの使いどころなど)を足せる
  • 中身の考え方はAGENTS.mdと同じでよい
観点AGENTS.mdCLAUDE.md
誰が読むか多数のAIコーディングツールClaude Code
形式標準Markdown(決まりなし)標準Markdown(独自拡張あり)
置き場所ルート、モノレポは各サブにもルート / .claude/ / ユーザー全体
独自機能なし(共通仕様)import・パス別ルール・階層読み込み
こう使う共通ルールの本体本体を読み込み+Claude固有を追記
迷ったら: Claude Codeしか使わないならCLAUDE.mdを1枚。複数ツールを使う/将来使うかもならAGENTS.mdを本体にして、次の「一本化」でCLAUDE.mdと繋ぎます。
UNIFY

2つを1つにまとめる(二重管理しない)

ありがちな失敗が、AGENTS.mdCLAUDE.mdに同じ内容をコピペして、片方だけ更新がズレること。 正解は「本体は1つ、もう片方は参照させる」です。Claude Codeなら@import かシンボリックリンクで繋げます。

方法A: import で繋ぐ(おすすめ)

CLAUDE.mdの先頭で@AGENTS.mdと書くと、Claude CodeがAGENTS.mdを読み込んでから残りを追記して読みます。Claude固有の指示も足せます。Windowsでも安全です。

方法B: シンボリックリンク

Claude固有の追記が不要なら、CLAUDE.mdAGENTS.mdへのリンクにします。中身は完全に1ファイル。ただしWindowsは管理者権限が要るのでAを推奨。

方法A: CLAUDE.md から AGENTS.md を読み込む

import
# CLAUDE.md
@AGENTS.md

## Claude Code 向けの追記
- src/billing/ 配下の変更は Plan mode で進める。
- 大きな変更は実装前に計画を出す。

方法B: リンクで完全共通化

macOS / Linux
ln -s AGENTS.md CLAUDE.md
すでにAGENTS.mdがある状態で/initを実行すると、Claude Codeはその内容を読み取ってCLAUDE.mdに取り込みます(.cursorrulesなどの他ツール設定も参照します)。ゼロから二重に書く必要はありません。
PLACEMENT

どこに置くか。基本は「プロジェクトのルート直下」

まずはリポジトリのルートに1枚置けば十分です。慣れてきたら、自分専用のルールや、フォルダごとのルールに分けられます。

P

プロジェクト共通

./CLAUDE.md または ./.claude/CLAUDE.md。チームで共有するルール。Gitに入れて全員で使います。

U

自分専用(全プロジェクト)

~/.claude/CLAUDE.md。報告の言葉づかいなど、自分の好み。どのプロジェクトでも効きます。

L

このプロジェクトの自分メモ

./CLAUDE.local.md。自分のテストデータやURLなど。.gitignoreに入れて共有しません。

読み込み順は「広い範囲 → 狭い範囲」。ユーザー全体 → プロジェクト → ローカルの順で、後から読まれたものが文脈の最後に来ます。同じテーマで矛盾した指示があると、AIがどちらか一方を勝手に選びます。重複は避けます。

モノレポ(複数パッケージ)の置き方

近いものが勝つ
your-monorepo/
├─ AGENTS.md            # 全体の共通ルール
├─ CLAUDE.md            # @AGENTS.md を読み込む
├─ packages/
│  ├─ web/
│  │  └─ AGENTS.md      # web だけのルール
│  └─ api/
│     └─ AGENTS.md      # api だけのルール
└─ ...

編集するファイルに「一番近いルールファイル」が優先されます。共通ルールはルート、個別ルールは各フォルダへ。Claude Codeでは.claude/rules/でファイル種別ごとに分ける方法もあります(→保守)。

WHAT TO WRITE

何を書くか。まずはこの6ブロック

全部を最初から埋める必要はありません。最低限「概要・コマンド・禁止事項・完了条件」の4つがあれば動きます。慣れたらコードスタイルと構成を足します。

1

プロジェクト概要

何のリポジトリで、何を作っているか。AIが最初に文脈を掴むための1〜2行。

2

コマンド

開発サーバー、ビルド、テスト、lintの実行コマンド。AIがそのまま実行できる形で書きます。

3

コードスタイル / 規約

インデント、命名、使う言語・フレームワーク。「2スペース」など検証できる粒度で書きます。

4

やってはいけないこと

触らないファイル、読ませない情報、勝手にやらせない操作。事故防止の核です。

5

完了条件(Done when)

「テストが通る」「差分と残リスクを最後に要約する」など、終わりの定義。出力の質が一番変わる部分です。

6

構成 / どこに何があるか

主要ディレクトリと役割。「APIハンドラは src/api/handlers/」のように具体的に。

手順が長いもの(毎回のチェックリスト、定型の制作フロー)は、ルールファイルに全部詰め込まず、Claude Codeなら.claude/skills/へ、テーマ別ルールは.claude/rules/へ分けます。ルールファイルは「毎回必要な短い事実」に絞るのがコツです。
GOOD vs BAD

効くルールは「具体的で、検証できる」

同じ内容でも、書き方で従われやすさが変わります。AIは曖昧な指示を都合よく解釈します。「正しくやって」ではなく「こうやって」と、確認できる言葉で書きます。

✕ 曖昧で従われにくい
・コードはきれいに整える
・ちゃんとテストする
・ファイルは整理して置く
・安全に気をつける
✓ 具体的で検証できる
・インデントは2スペース
・コミット前に npm test を実行する
・APIハンドラは src/api/handlers/ に置く
.envsecrets/ は読まない

短く保つ

長いほど読まれにくくなります。200行を超えたら、テーマ別に分けるサインです。

矛盾を残さない

複数ファイルで違うことを言うと、AIが勝手に片方を選びます。定期的に見直して重複・矛盾を消します。

構造化する

見出しと箇条書きで整理します。AIも人と同じで、整理された文章のほうが追いやすいです。

TEMPLATE

コピペして使える最小テンプレ

まずこれを置いて、自分のプロジェクトに合わせて言葉を変えるだけでOKです。AGENTS.mdとして置いても、CLAUDE.mdとして置いても、中身の考え方は同じです。

最小テンプレ(AGENTS.md / CLAUDE.md 共通)

コピペして調整
# プロジェクト概要
このリポジトリは [何を作っているか] のプロジェクトです。

## コマンド
- 開発サーバー: npm run dev
- ビルド: npm run build
- テスト: npm test
- lint: npm run lint

## コードスタイル
- インデントは2スペース
- 命名は [規約] に従う
- 新しい依存関係は勝手に追加しない

## やってはいけないこと
- .env、秘密鍵、顧客情報、個人情報を読まない・変更しない
- 公開、投稿、削除、デプロイは実行前に必ず確認する
- 大きな変更は先に計画を出し、承認後に実装する

## どこに何があるか
- 入口: README.md / package.json
- 本体: src/
- テスト: tests/

## 完了条件(Done when)
- 関連するテスト・表示確認が通る
- 変更ファイル、確認結果、残ったリスクを最後に要約する

AIに「たたき台」を作ってもらう依頼文

安全な始め方
このリポジトリ用の AGENTS.md(または CLAUDE.md)を作りたい。
まず現在の構成、package.json の scripts、テスト・lint・ビルド方法を調べて。
その上で、初心者でも保守しやすい短いルールファイル案を提示して。
まだファイルは作成せず、内容案だけ出して。
Claude Codeなら/initで、コードベースを分析したCLAUDE.mdのたたき台を自動生成できます。既存ファイルがある場合は上書きではなく改善提案になります。
GROW

最初から完璧を目指さず、運用で育てる

ルールファイルは一度書いて終わりではありません。「AIが同じミスを繰り返した」「毎回同じ補足を入力している」――そう気づいたら、それが追記のタイミングです。

START

最小で置く

4ブロックだけのルールファイルをルートに1枚置く。

NOTICE

ズレに気づく

AIが2回目の同じミス。レビューで毎回出る指摘。同じ補足を再入力。

UPDATE

1行ずつ足す

「次からこうして」を具体的な1行で追記する。

追記する基準

AIが同じ間違いを2回した/コードレビューで毎回同じ指摘が出る/新メンバーに毎回同じ説明をする。この3つはルールファイル行きのサインです。

会話で終わらせない

その場の会話で直した指示は、セッションが切れると消えます。次も効かせたいなら、ルールファイルに移します。

反映されない時は再起動

ルールファイルはセッション開始時に読まれます。途中で編集してすぐ効かない時は、会話のクリアやセッション再起動で読み直させます。

SAFE-OPS

安全運用:文章のお願いと、仕組みの強制を分ける

ここが一番大事です。ルールファイルは「お願い」であって、技術的な強制ではありません。 絶対に守らせたいことは、ファイルの文章だけに頼らず、権限設定やhookという「仕組み」側にも置きます。

お願い(ルールファイル)

.envを読まない」「公開前に確認する」などの行動指針。AIはこれを読んで従おうとしますが、必ず守る保証はありません。

強制(設定・hook)

Claude Codeなら.claude/settings.jsonの権限denyや、実行前に走るhookで、特定の読み取り・コマンドを技術的にブロックします。

settings.json で秘密情報と危険操作を止める

Claude Code
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm test)",
      "Bash(git status)",
      "Bash(git diff *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Bash(git push *)"
    ]
  }
}

Gitに入れる / 入れない

チーム共通のAGENTS.md / CLAUDE.md / settings.jsonはコミットします。自分専用のCLAUDE.local.mdsettings.local.json.gitignoreに入れて共有しません。

秘密情報そのものを書かない

APIキー、パスワード、顧客情報はルールファイルに直書きしません。ルールファイルはGitに乗る前提です。「読まない対象」を指定するだけにします。

.gitignore に入れるもの

個人情報を混ぜない
# 個人用ルール・設定
CLAUDE.local.md
.claude/settings.local.json

# 秘密情報
.env
.env.*
secrets/
*.pem
*.key
MAINTAIN

肥大化させない。大きくなったら分割する

ルールファイルは毎回読まれるぶん、長いほど読まれにくくなります。800行のマニュアルにしないこと。 200行を超えてきたら、テーマ別・フォルダ別に分けるサインです。

R

テーマ別に分ける

Claude Codeなら.claude/rules/testing.mdsecurity.mdのように分割。各ファイル1テーマにします。

P

パス別に効かせる

ルールにパス指定を付けると、該当ファイルを触るときだけ読み込まれます。普段の文脈を軽く保てます。

S

手順はskillへ

毎回は要らない長い手順は、使う時だけ呼び出すskillに分離します。常時読む必要がなくなります。

大きくなったプロジェクトの構成例

Claude Code
your-project/
├─ CLAUDE.md              # 毎回読む短い共通ルール
├─ .claude/
│  └─ rules/
│     ├─ code-style.md    # コードスタイル
│     ├─ testing.md       # テスト規約
│     └─ security.md      # セキュリティ要件
└─ ...
メンテナンス向けのメモは、Claude Codeでは<!-- -->のHTMLコメントで残せます。コメント部分はAIの文脈から除かれるので、人間用の注記をトークンを使わずに置けます。
CHECKLIST

失敗しにくいルールファイル運用

作って終わりではなく、軽く保って、運用で育てる。この姿勢が一番効きます。

まずルート直下に1枚置く最小の4ブロック(概要・コマンド・禁止・完了条件)から始めます。完璧を待たないこと。
具体的に書く「きれいに」ではなく「2スペース」。検証できる粒度にすると従われやすくなります。
二重管理しない複数ツールを使うならAGENTS.mdを本体に、CLAUDE.md@importかリンクで繋ぎます。
秘密情報は書かない・読ませないキーや個人情報を直書きしない。「読まない対象」を指定し、権限設定でも止めます。
絶対のルールは仕組みで強制する文章のお願いに頼らず、settings.jsondenyやhookで技術的にブロックします。
200行を超えたら分割するテーマ別ルールやskillへ分け、毎回読むファイルは短く保ちます。
同じミス・同じ指摘を見たら追記するAIが2回つまずいた点は、その場で直さずルールファイルに残して資産にします。
矛盾を定期的に消す複数ファイル間で言うことが食い違うと、AIが勝手に片方を選びます。見直して揃えます。
FIRST STEP

最初の30分メニュー

この順番で進めると、いきなり完璧を目指さずに「動くルールファイル」が1枚できます。

0-5分: 置き場所を決める

リポジトリのルートにAGENTS.md(またはCLAUDE.md)を新規作成する。

5-15分: 4ブロックを書く

概要・コマンド・禁止事項・完了条件を、テンプレを下敷きに自分の言葉で埋める。

15-20分: AIに見てもらう

「このルールファイルを読んで、曖昧な所と抜けを指摘して」と頼み、具体化する。

20-25分: 小さく試す

新しい会話を始め、ルールが効いているか(コマンドや禁止事項を守るか)を1つ確認する。

25-30分: 安全側を固める

秘密情報をdenyする設定と.gitignoreを整える。ここだけは仕組みで止める。

以降: 運用で育てる

同じミスを見たら1行追記。長くなったら分割。これを習慣にする。

SOURCES

参照した公式情報