{
  "$schema": "https://bringyour.ai/schemas/agents-md-claude-md.v1.json",
  "id": "bringyour-agents-md-claude-md",
  "title": "AGENTS.md vs CLAUDE.md for Codex migration",
  "url": "https://bringyour.ai/agents-md-claude-md",
  "html_url": "https://bringyour.ai/agents-md-claude-md",
  "json_url": "https://bringyour.ai/agents-md-claude-md.json",
  "audience": [
    "agents helping a developer move a Claude Code setup into Codex",
    "developers auditing repository instruction behavior after an import",
    "catalogs indexing Codex, AGENTS.md, and Claude Code migration resources"
  ],
  "positioning": "The file is easy to copy. The behavior around it is the migration.",
  "remote_invariant": {
    "harness_data_remote": false,
    "accepts_files": false,
    "accepts_user_rules": false,
    "accepts_api_keys": false,
    "accepts_github_handles": false,
    "description": "This route is descriptive only. It does not accept, process, or store harness files, generated memories, user rules, API keys, GitHub handles, repo paths, or file contents."
  },
  "source_file_roles": [
    {
      "name": "CLAUDE.md",
      "role": "Claude Code memory and instruction files can layer through directory trees, local files, rule directories, and managed policy locations.",
      "migration_check": "Identify which behavior is instruction text and which behavior is enforced by settings, hooks, skills, plugins, or managed configuration."
    },
    {
      "name": "AGENTS.md",
      "role": "Codex uses AGENTS.md as repository guidance for codebase navigation, testing, conventions, and PR behavior within scoped directory trees.",
      "migration_check": "Confirm which AGENTS.md files apply to each target subtree before Codex writes code."
    }
  ],
  "risk_model": [
    {
      "risk": "scope drift",
      "check": "Map nested CLAUDE.md files to target AGENTS.md scopes and verify which file applies to each subtree."
    },
    {
      "risk": "enforcement drift",
      "check": "Separate text instructions from hooks, permissions, MCP gates, and managed policies that need target-specific equivalents."
    },
    {
      "risk": "context promotion",
      "check": "Keep session logs, handoffs, and memory extracts as reference material unless they are deliberately promoted into active instructions."
    },
    {
      "risk": "tool config mismatch",
      "check": "Translate MCP servers, skills, plugins, and shell wrappers into Codex-compatible config without replacing env or Keychain references with literal secrets."
    }
  ],
  "local_validation_flow": [
    "curl -fsSL https://bringyour.ai/install.sh | sh",
    "bringyour preview --from claude-code --to codex",
    "bringyour migrate --from claude-code --to codex --policy merge"
  ],
  "agent_next_steps": [
    "Run the first-party Codex import flow first when available.",
    "Use this checklist as a second-pass audit for scope, enforcement, context promotion, and tool config drift.",
    "Prefer local BYA preview output for source-specific findings; the remote MCP is for discovery and install handoff only."
  ],
  "related": {
    "codex_import_checklist": "https://bringyour.ai/codex-import-checklist.json",
    "mcp_config_migration": "https://bringyour.ai/mcp-config-migration.json",
    "claude_code_limit_fallback": "https://bringyour.ai/claude-code-limit-fallback.json",
    "openapi": "https://bringyour.ai/openapi.yaml",
    "agent_manifest": "https://bringyour.ai/.well-known/agent.json"
  }
}
