AIコーディング 2026.05.09
Claude CodeとOpenAI Codexの設定を自動同期する3ステップ【CLAUDE.md・AGENTS.md対応】
問題:2つのAIコーディングツールで設定が二重管理になる
Claude Code → CLAUDE.md に規約を書く
OpenAI Codex CLI → AGENTS.md に同じ規約を書く
手動の場合:
1. CLAUDE.mdを更新
2. 同じ内容をAGENTS.mdにもコピー
3. コピーを忘れてツール間で設定が乖離する
4. バグや不一致が発生する
月37億7000万トークンを消費した開発者が語った教訓:設定管理が煩雑になると、大規模利用ほど生産性の足を引っ張る。
Step 1:共通テンプレートから両ファイルを生成する
config/
├── shared_rules.md # 共通のコーディング規約(ここだけ編集する)
├── claude_extra.md # Claude Code 固有の設定
├── codex_extra.md # OpenAI Codex CLI 固有の設定
└── generate_configs.py # 2ファイルを自動生成するスクリプト
# generate_configs.py
# 共通テンプレートからCLAUDE.mdとAGENTS.mdを生成する
import pathlib
CONFIG_DIR = pathlib.Path("config")
PROJECT_ROOT = pathlib.Path(".")
def read_file(path: pathlib.Path) -> str:
return path.read_text(encoding="utf-8")
def generate_claude_md() -> str:
shared = read_file(CONFIG_DIR / "shared_rules.md")
extra = read_file(CONFIG_DIR / "claude_extra.md")
return f"{shared}\n\n## Claude Code 固有の設定\n\n{extra}"
def generate_agents_md() -> str:
shared = read_file(CONFIG_DIR / "shared_rules.md")
extra = read_file(CONFIG_DIR / "codex_extra.md")
return f"{shared}\n\n## Codex CLI 固有の設定\n\n{extra}"
def main() -> None:
claude_md = PROJECT_ROOT / "CLAUDE.md"
agents_md = PROJECT_ROOT / "AGENTS.md"
claude_md.write_text(generate_claude_md(), encoding="utf-8")
print(f"✅ {claude_md} を更新しました")
agents_md.write_text(generate_agents_md(), encoding="utf-8")
print(f"✅ {agents_md} を更新しました")
if __name__ == "__main__":
main()
# 実行(shared_rules.mdを変更したら必ず実行)
python3 config/generate_configs.py
Step 2:shared_rules.mdの書き方
# 共通コーディング規約(CLAUDE.mdとAGENTS.md共通)
## プロジェクト概要
Next.js + TypeScript + Prismaのウェブアプリ
## 技術スタック
- フロントエンド: Next.js 15 (App Router), TypeScript, Tailwind CSS
- バックエンド: Next.js Server Actions, Prisma ORM
- DB: PostgreSQL
## コーディング規約
- TypeScriptの`any`は禁止。不明な型は`unknown`を使う
- コンポーネントはServer Component優先(useStateが必要な場合のみClient)
- API/Server Actionsへの入力は必ずZodでバリデーション
## 禁止操作
- `rm -rf`・`git reset --hard` は実行前に確認
- `.env`ファイルをコミットしない
- `any`型を追加しない
## テスト
- テストはvitest + testing-libraryを使う
- 変更後は`npm test`を実行して確認
# claude_extra.md(Claude Code固有の追加設定)
## パーミッション設定
- ファイル編集: src/**のみ自動承認
- コマンド: npm test, npm run lint, git diff のみ承認
- それ以外は必ず確認を求める
## Hooks(.claude/settings.json で設定)
- PostToolUse: Bashコマンド後にgit statusを実行
# codex_extra.md(OpenAI Codex CLI固有の追加設定)
## モデル設定
- デフォルトモデル: gpt-4o
- approval_mode: suggest(変更前に確認)
Step 3:ファイル変更を監視して自動生成
# sync_configs.py
# shared_rules.mdの変更を検知して自動的にCLAUDE.mdとAGENTS.mdを再生成
# pip install watchdog
import time
import pathlib
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from generate_configs import main as generate
class ConfigChangeHandler(FileSystemEventHandler):
def on_modified(self, event) -> None:
if "shared_rules.md" in str(event.src_path):
print(f"変更検知: {event.src_path}")
generate()
if __name__ == "__main__":
observer = Observer()
observer.schedule(
ConfigChangeHandler(),
path="config",
recursive=False,
)
observer.start()
print("設定ファイルの監視を開始しました。Ctrl+Cで停止。")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
# バックグラウンドで監視を起動(開発中は常時起動)
python3 sync_configs.py &
# または launchd (Mac) で自動起動させることも可能
Gitでチーム全体に設定を共有する
# 設定管理リポジトリ(別リポジトリとして運用する方法)
git clone https://github.com/your-org/ai-configs ./ai-configs
# 各プロジェクトでシンボリックリンクを作成
ln -sf $(pwd)/ai-configs/shared_rules.md ./config/shared_rules.md
# チームメンバーが設定を変更したらPRを出してマージ
# マージ後に全プロジェクトで git pull && python3 config/generate_configs.py
# pre-commit フックで自動生成(.git/hooks/pre-commit)
#!/bin/bash
python3 config/generate_configs.py
git add CLAUDE.md AGENTS.md
あわせて読みたい
- Claude Codeのリモート実行時にローカルから権限承認する方法
- Claude CodeとContext Skillsで開発効率を上げる7つのテクニック
- Claude Codeで午前中に機能完成する方法|16のロール活用で爆速開発