Scans global/codex/skills/ and global/codex/agents/ for items missing from global/claude/skills/ and global/claude/agents/, presents the gap list for approval, then adapts each approved item to Claude Code format and writes it to the global/claude/ directory, then runs ./install.sh. Project-local skill — only meaningful inside the AI-Tools repo. Trigger when the user says "sync from codex", "port codex skill to claude", "adapt codex to claude", "what codex skills are missing from claude", or ...
Scanned 6/9/2026
Install via CLI
openskills install ada-ggf25/AI-Tools---
name: codex-to-claude
description: Scans global/codex/skills/ and global/codex/agents/ for items missing from global/claude/skills/ and global/claude/agents/, presents the gap list for approval, then adapts each approved item to Claude Code format and writes it to the global/claude/ directory, then runs ./install.sh. Project-local skill — only meaningful inside the AI-Tools repo. Trigger when the user says "sync from codex", "port codex skill to claude", "adapt codex to claude", "what codex skills are missing from claude", or "port this to claude".
---
# Port Codex artifacts to Claude
Finds Codex skills/agents that have no Claude counterpart in this repo and adapts them
to Claude Code conventions, one item at a time with per-item approval.
## Procedure
### 1. Compute the gap
Run both diffs in parallel:
```bash
# Skills missing from claude/
comm -23 \
<(ls global/codex/skills/ | sort) \
<(ls global/claude/skills/ | sort)
# Agents missing from claude/ (strip .toml extension for comparison)
comm -23 \
<(ls global/codex/agents/ | sed 's/\.toml$//' | sort) \
<(ls global/claude/agents/ | sed 's/\.md$//' | sort)
```
If both lists are empty, report "No gaps found — codex/ and claude/ are in sync" and stop.
### 2. Present the gap list
Show the user two sections:
```text
Skills to port (global/codex/skills/<name>/SKILL.md → global/claude/skills/<name>/SKILL.md)
- <name>
...
Agents to port (global/codex/agents/<name>.toml → global/claude/agents/<name>.md)
- <name>
...
```
Ask which items to port. Do not proceed without explicit approval per item.
### 3. Adapt skills (for each approved skill)
Read `global/codex/skills/<name>/SKILL.md`, then apply these substitutions:
| Find | Replace with |
|---|---|
| `AGENTS.md` / `AGENTS.override.md` | `CLAUDE.md` |
| `$<skill-name>` invocation syntax | `/<skill-name>` |
| `where-agents-md` cross-references | `where-claude` |
| `audit-agent-docs` cross-references | `audit-claude-md` |
| Codex config paths (`~/.codex/`, `$CODEX_HOME`) | Claude config paths (`~/.claude/`) |
| "Codex" when referring to the product/tool | "Claude Code" |
| "AGENTS" when used as a generic concept for instruction files | "CLAUDE.md" |
Show the adapted content to the user and ask for approval before writing.
Write to `global/claude/skills/<name>/SKILL.md` only after approval.
### 4. Adapt agents (for each approved agent)
Read `global/codex/agents/<name>.toml`. Extract:
- `name` — use as-is (convert underscores to hyphens for kebab-case)
- `description` — use as-is
- `developer_instructions` — becomes the Markdown body
- `sandbox_mode = "read-only"` → explicit `tools` list (Read, Glob, Grep; add WebSearch/WebFetch only if the instructions reference web access)
- `model_reasoning_effort = "medium"` → `model: haiku`; `"high"` → omit (default Sonnet)
Write `global/claude/agents/<name>.md` in this shape:
```markdown
---
name: <kebab-name>
description: <description from TOML>
tools:
- Read
- Glob
- Grep
---
<developer_instructions content, with Codex→Claude product references fixed>
```
Flag the output as needing human review before writing — TOML → Markdown is a lossy
transformation and the instructions may contain Codex-specific concepts.
### 5. Run install.sh
After all approved writes:
```bash
./install.sh
```
Report which symlinks were created.
### 6. Wrap up
Tell the user:
- Which items were ported (with their destination paths)
- Which items were skipped and why
- Remind them to restart Claude Code for new `/commands` to appear in autocomplete
## Guardrails
- Never overwrite an existing file in `global/claude/` — skip with a warning if the target already exists.
- Never modify any file under `codex/` — it is read-only source for this skill.
- Always show the adapted content and get per-item approval before writing.
- TOML agent → Markdown is inherently lossy: flag it explicitly; do not claim the conversion is complete.
- Names that differ between products (e.g., `where-agents-md` vs `where-claude`) must be noted — do not silently rename without telling the user.
- Do not run `./install.sh` until at least one file has been written.
No comments yet. Be the first to comment!