sync-codex-permissionslisted
Install: claude install-skill ada-ggf25/AI-Tools
# Sync Project Claude Code Permissions To Codex
Use `$sync-codex-permissions` to mirror already-approved current-project Claude Code
command permissions into Codex's project-local rules file. The source is always the
current project's `.claude/settings.local.json`; the target is always
`.codex/rules/default.rules`.
This skill intentionally syncs project-local rules only. Do not read or fall back to
global Claude Code settings or `${CODEX_HOME:-~/.codex}/rules/default.rules`: personal or
global permissions may affect active sessions, but they are outside this project-local
sync workflow.
This skill is the inverse of `sync-claude-permissions`. `sync-claude-permissions`
translates `.codex/rules/default.rules` into `.claude/settings.local.json`; this skill
translates `.claude/settings.local.json` into `.codex/rules/default.rules`.
## Translation Reference
### Claude Code Rule To Codex Pattern
Translate only Claude Code `Bash(...)` permission entries. Build the narrowest Codex
`pattern` array that matches the same command prefix:
| Claude Code rule | Codex `prefix_rule` pattern |
|---|---|
| `Bash(git status:*)` | `["git", "status"]` |
| `Bash(git status *)` | `["git", "status"]` |
| `Bash(git -C /repo status:*)` | `["git", "-C", "/repo", "status"]` |
| `Bash(npm run test:*)` | `["npm", "run", "test"]` |
| `Bash(./install.sh:*)` | `["./install.sh"]` |
Accept both `Bash(prefix:*)` and older `Bash(prefix *)` forms as source syntax. Strip the
wildcard suffix and split the rem