claude-to-codex — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited claude-to-codex (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Finds Claude Code skills/agents that have no Codex counterpart in this repo and adapts them to Codex conventions, one item at a time with per-item approval.
Run both diffs in parallel:
# Skills missing from codex/
comm -23 \
<(ls global/claude/skills/ | sort) \
<(ls global/codex/skills/ | sort)
# Agents missing from codex/ (strip extensions for comparison)
comm -23 \
<(ls global/claude/agents/ | sed 's/\.md$//' | sort) \
<(ls global/codex/agents/ | sed 's/\.toml$//' | sort)Treat these product-specific name pairs as already equivalent unless the user explicitly wants a duplicate:
| Claude Code | Codex |
|---|---|
audit-claude-md | audit-agent-docs |
where-claude | where-agents-md |
If both lists are empty after applying the equivalence map, report "No gaps found - global/claude/ and global/codex/ are in sync" and stop.
Show the user two sections:
Skills to port (global/claude/skills/<name>/SKILL.md -> global/codex/skills/<name>/SKILL.md)
- <name>
...
Agents to port (global/claude/agents/<name>.md -> global/codex/agents/<name>.toml)
- <name>
...Ask which items to port. Do not proceed without explicit approval per item.
For each approved skill, read global/claude/skills/<name>/SKILL.md, then apply these substitutions:
| Find | Replace with |
|---|---|
CLAUDE.md | AGENTS.md |
/\<skill-name> invocation syntax | $<skill-name> |
where-claude cross-references | where-agents-md |
audit-claude-md cross-references | audit-agent-docs |
Claude config paths (~/.claude/) | Codex config paths (~/.codex/, $CODEX_HOME when appropriate) |
| "Claude Code" when referring to the product/tool | "Codex" |
| "Claude" when used as the product/tool name | "Codex" |
Show the adapted content to the user and ask for approval before writing.
Write to global/codex/skills/<name>/SKILL.md only after approval.
For each approved agent, read global/claude/agents/<name>.md.
Extract:
name from YAML frontmatter;description from YAML frontmatter;tools from YAML frontmatter;developer_instructions.Write global/codex/agents/<name>.toml in this shape:
name = "<kebab-name>"
description = "<description from YAML>"
sandbox_mode = "read-only"
model_reasoning_effort = "medium"
developer_instructions = """
<Markdown body, with Claude->Codex product references fixed>
"""Use sandbox_mode = "read-only" when the Claude tools are only read/search tools (Read, Glob, Grep). If the Claude agent has broader tools, flag the conversion for manual review and ask before choosing a Codex sandbox mode. TOML conversion is lossy: quote and escape strings carefully, and do not claim the result is complete until a human has reviewed it.
After all approved writes:
./install.sh --codexReport which symlinks were created or already correct.
Tell the user:
global/codex/ - skip with a warning if the target already exists.claude/ - it is read-only source for this skill.where-claude vs where-agents-md,audit-claude-md vs audit-agent-docs) must be noted, not silently duplicated.
./install.sh --codex until at least one file has been written.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.