目的
設定を意味を壊さず移送する。単純コピーせず、移送可能 / 手動判断 / 移送不能を分ける。
原則
- 最初は dry-run。編集前に差分・リスク・未対応項目を出す。
- 分析は双方向 1 パス。両方向の Direct / Manual / Not portable / Proposed diff を最初から出し、逆方向を問い返させない。
- permission / sandbox / approval / hooks は記憶で判断しない。編集前に公式 URL を開き、確認した URL と日付を残す。
- secret / token の値は出さない。環境変数名と参照方式だけ扱う。
- 既存設定が source of truth。上書きでなく merge 案を出す。
- apply は対象ごとに
.bak.<timestamp> を取ってから。home 配下は明示 apply なしに触らない。
- 共有 symlink ストア(例
~/.agents/skills/ を両ツールから相対 symlink)経由なら、import は symlink 作成に過ぎず有無は curation。gap と誤報しない。判断前に symlink / inode を実測する。
- nix 等で管理された symlink は store が read-only。canonical source を編集対象にし、deployed copy の再 sync は別ステップにする。
- MCP は最優先。設定価値が集中する。
仕様確認 URL
permission / sandbox / auto mode は特に記憶で判断しない。<name> を差し替えて必要分だけ開く。
- Codex
https://developers.openai.com/codex/<name>: config-reference, permissions, mcp, skills, plugins, changelog
- Claude
https://code.claude.com/docs/en/<name>: settings, permissions, hooks, plugins-reference, whats-new
- Cross: https://agents.md/ , https://agentskills.io/
入力探索
存在しないものは skip。読んだパスと欠落した重要パスを記録する。
- Claude:
~/.claude/settings.json, settings.local.json, ~/.claude.json(mcpServers), project .claude/settings*.json, .mcp.json, CLAUDE.md, .claude/{skills,commands,agents,hooks}/**
- Codex:
~/.codex/config.toml, project .codex/config.toml, AGENTS.md, ~/.codex/skills/**, project .agents/skills/**, ~/.codex/prompts/*.md
変換マッピング(双方向対称)
| 領域 |
Claude Code |
Codex |
注意 |
| MCP |
mcpServers{} (.mcp.json 優先 / settings) |
[mcp_servers.x] (config.toml) |
command/args/env/url を維持。TOML は parser で編集。embedded credential URL は伏せて手動。 |
| model |
model |
model |
直訳せず provider 互換を確認。 |
| env |
env{} |
[shell_environment_policy.set] |
secret は名前と参照のみ。 |
| approval / sandbox |
permissions.defaultMode |
approval_policy + sandbox_mode |
1:1 でない。必ず推測明記。下記方針参照。 |
| allow / deny |
permissions.allow/deny |
granular approval / AGENTS.md guidance |
直接等価なし。destructive は手動。 |
| hooks |
.claude/hooks + settings hooks |
hooks.json / config |
等価移送しない。formatter/guardrail/telemetry/context/rewrite に分類し skill・prompt・plugin 化を提案。暗黙に実行可能化しない。 |
| skills |
.claude/skills/** |
~/.codex/skills/**, .agents/skills/** |
copy/symlink。相対 symlink 優先。共有ストアなら symlink 1 本で済む。 |
| commands / prompts |
.claude/commands/*.md |
~/.codex/prompts/*.md |
相互変換候補。 |
| agents |
.claude/agents/*.md |
skill または AGENTS.md セクション |
|
| memory |
CLAUDE.md |
AGENTS.md |
両方 regular file なら上書きせず diff。tool 固有記述(system prompt 参照等)は翻案か除外。片方のみなら canonical 配置を提案。 |
destructive allow / danger-full-access / bypassPermissions は apply せず、dry-run で警告と手動確認に回す。
Permission / sandbox 方針
- Codex は approval と sandbox が独立。UI 名 "Auto"/"Full Auto" で判断しない。
approval_policy(untrusted / on-request / never / granular) と sandbox_mode(read-only / workspace-write / danger-full-access) を分けて評価する。
- Claude
defaultMode(default / acceptEdits / plan / auto / dontAsk / bypassPermissions) は現行仕様を docs で確認(auto は user scope のみ有効など制約あり)。
- 対応は推測として出す。
acceptEdits ≈「編集許可・コマンド確認」、bypassPermissions ≠ never+danger-full-access。sandbox 有無と network / writable roots を分離して評価する。
出力フォーマット
双方向 1 パス。共有前置き(Specs / Read Files / Structural Findings)を 1 回、Direction A/B を各 1 ブロック、最後に統合 Apply を出す。各方向は 0 件でも「該当なし」と明記し省略しない。
## Import Plan (Bidirectional) — Mode: dry-run
## Specs Checked
| Product | URL | Checked at | Notes |
## Read Files
| Path | Status | Notes |
## Structural Findings
共有ストア / symlink / nix 管理 / 既存 AGENTS.md・CLAUDE.md の drift / MCP 有無。symlink と inode は実測。
## Direction A — Codex → Claude Code
### Direct Imports
| Item | From | To | Action |
### Needs Manual Review
| Item | Reason | Suggested handling |
### Not Portable
| Item | Reason |
### Proposed Diff
```diff
# <target file>
```
## Direction B — Claude Code → Codex
(同じ 4 小節: Direct Imports / Needs Manual Review / Not Portable / Proposed Diff)
## Apply Command
両方向の候補を 1 リストに列挙し、方向・項目単位で選べるよう提示。Apply only after the user asks.
Apply 手順
apply を明示されたときのみ。
git status --short を確認。dirty なら worktree で隔離。
- 対象ごとに
.bak.<YYYYMMDDHHMMSS>。
- JSON / TOML は structured parser で更新(JSON は JSONC 可能性を確認、TOML は table order 維持)。
git diff --check。
- canonical を編集した場合、deployed copy / 共有ストアを sync。
- 変更後の import summary を出す。
1---2name: agent-config-import3description: Codex と Claude Code の設定を相互 import / migrate / sync する。 settings.json / .mcp.json / skills / commands / agents / hooks / CLAUDE.md ⇄ config.toml / skills / prompts / AGENTS.md。 分析と proposed diff は常に双方向 1 パスで出す。片方向 apply 依頼でも両方向を分析してから対象を絞る。 Trigger: Codex Claude import, Claude Code Codex import, settings.json config.toml sync, agent config migration4---56## 目的78設定を意味を壊さず移送する。単純コピーせず、移送可能 / 手動判断 / 移送不能を分ける。910## 原則1112- 最初は dry-run。編集前に差分・リスク・未対応項目を出す。13- 分析は双方向 1 パス。両方向の Direct / Manual / Not portable / Proposed diff を最初から出し、逆方向を問い返させない。14- permission / sandbox / approval / hooks は記憶で判断しない。編集前に公式 URL を開き、確認した URL と日付を残す。15- secret / token の値は出さない。環境変数名と参照方式だけ扱う。16- 既存設定が source of truth。上書きでなく merge 案を出す。17- apply は対象ごとに `.bak.<timestamp>` を取ってから。home 配下は明示 apply なしに触らない。18- 共有 symlink ストア(例 `~/.agents/skills/` を両ツールから相対 symlink)経由なら、import は symlink 作成に過ぎず有無は curation。gap と誤報しない。判断前に symlink / inode を実測する。19- nix 等で管理された symlink は store が read-only。canonical source を編集対象にし、deployed copy の再 sync は別ステップにする。20- MCP は最優先。設定価値が集中する。2122## 仕様確認 URL2324permission / sandbox / auto mode は特に記憶で判断しない。`<name>` を差し替えて必要分だけ開く。2526- Codex `https://developers.openai.com/codex/<name>`: config-reference, permissions, mcp, skills, plugins, changelog27- Claude `https://code.claude.com/docs/en/<name>`: settings, permissions, hooks, plugins-reference, whats-new28- Cross: https://agents.md/ , https://agentskills.io/2930## 入力探索3132存在しないものは skip。読んだパスと欠落した重要パスを記録する。3334- Claude: `~/.claude/settings.json`, `settings.local.json`, `~/.claude.json`(mcpServers), project `.claude/settings*.json`, `.mcp.json`, `CLAUDE.md`, `.claude/{skills,commands,agents,hooks}/**`35- Codex: `~/.codex/config.toml`, project `.codex/config.toml`, `AGENTS.md`, `~/.codex/skills/**`, project `.agents/skills/**`, `~/.codex/prompts/*.md`3637## 変換マッピング(双方向対称)3839| 領域 | Claude Code | Codex | 注意 |40|---|---|---|---|41| MCP | `mcpServers`{} (`.mcp.json` 優先 / settings) | `[mcp_servers.x]` (config.toml) | command/args/env/url を維持。TOML は parser で編集。embedded credential URL は伏せて手動。 |42| model | `model` | `model` | 直訳せず provider 互換を確認。 |43| env | `env`{} | `[shell_environment_policy.set]` | secret は名前と参照のみ。 |44| approval / sandbox | `permissions.defaultMode` | `approval_policy` + `sandbox_mode` | 1:1 でない。必ず推測明記。下記方針参照。 |45| allow / deny | `permissions.allow/deny` | granular approval / AGENTS.md guidance | 直接等価なし。destructive は手動。 |46| hooks | `.claude/hooks` + settings `hooks` | `hooks.json` / config | 等価移送しない。formatter/guardrail/telemetry/context/rewrite に分類し skill・prompt・plugin 化を提案。暗黙に実行可能化しない。 |47| skills | `.claude/skills/**` | `~/.codex/skills/**`, `.agents/skills/**` | copy/symlink。相対 symlink 優先。共有ストアなら symlink 1 本で済む。 |48| commands / prompts | `.claude/commands/*.md` | `~/.codex/prompts/*.md` | 相互変換候補。 |49| agents | `.claude/agents/*.md` | skill または AGENTS.md セクション | |50| memory | `CLAUDE.md` | `AGENTS.md` | 両方 regular file なら上書きせず diff。tool 固有記述(system prompt 参照等)は翻案か除外。片方のみなら canonical 配置を提案。 |5152destructive allow / `danger-full-access` / `bypassPermissions` は apply せず、dry-run で警告と手動確認に回す。5354## Permission / sandbox 方針5556- Codex は approval と sandbox が独立。UI 名 "Auto"/"Full Auto" で判断しない。`approval_policy`(untrusted / on-request / never / granular) と `sandbox_mode`(read-only / workspace-write / danger-full-access) を分けて評価する。57- Claude `defaultMode`(default / acceptEdits / plan / auto / dontAsk / bypassPermissions) は現行仕様を docs で確認(`auto` は user scope のみ有効など制約あり)。58- 対応は推測として出す。`acceptEdits` ≈「編集許可・コマンド確認」、`bypassPermissions` ≠ `never`+`danger-full-access`。sandbox 有無と network / writable roots を分離して評価する。5960## 出力フォーマット6162双方向 1 パス。共有前置き(Specs / Read Files / Structural Findings)を 1 回、Direction A/B を各 1 ブロック、最後に統合 Apply を出す。各方向は 0 件でも「該当なし」と明記し省略しない。6364````markdown65## Import Plan (Bidirectional) — Mode: dry-run6667## Specs Checked68| Product | URL | Checked at | Notes |6970## Read Files71| Path | Status | Notes |7273## Structural Findings74共有ストア / symlink / nix 管理 / 既存 AGENTS.md・CLAUDE.md の drift / MCP 有無。symlink と inode は実測。7576## Direction A — Codex → Claude Code77### Direct Imports78| Item | From | To | Action |79### Needs Manual Review80| Item | Reason | Suggested handling |81### Not Portable82| Item | Reason |83### Proposed Diff84```diff85# <target file>86```8788## Direction B — Claude Code → Codex89(同じ 4 小節: Direct Imports / Needs Manual Review / Not Portable / Proposed Diff)9091## Apply Command92両方向の候補を 1 リストに列挙し、方向・項目単位で選べるよう提示。Apply only after the user asks.93````9495## Apply 手順9697apply を明示されたときのみ。98991. `git status --short` を確認。dirty なら worktree で隔離。1002. 対象ごとに `.bak.<YYYYMMDDHHMMSS>`。1013. JSON / TOML は structured parser で更新(JSON は JSONC 可能性を確認、TOML は table order 維持)。1024. `git diff --check`。1035. canonical を編集した場合、deployed copy / 共有ストアを sync。1046. 変更後の import summary を出す。