Converts legacy Claude skills into native Codex skill modules while maintaining runtime integrity.
Install
mkdir -p .claude/skills/migrate-to-codex && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18659" && unzip -o skill.zip -d .claude/skills/migrate-to-codex && rm skill.zipInstalls to .claude/skills/migrate-to-codex
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Migrate Claude-era skills into native Codex skill artifacts with a preservation-first workflow. Also migrate project-local Claude slash commands and command hooks in batch mode as review-required Codex artifacts. Classify migration risk, preserve control shape, validate runtime-coupling leaks, and require a Codex nativeness audit before calling the result native. Use for "migrate skill to codex", "convert skill to codex", "port skills", or "codex compatibility". This skill does not migrate agents.Key capabilities
- →Migrate Claude-era skills to Codex skill artifacts
- →Migrate project-local Claude slash commands
- →Classify migration risk
- →Validate runtime-coupling leaks
- →Audit migrated skills for nativeness
How it works
The skill converts Claude-era skills and commands into Codex-native artifacts while preserving the source workflow's behavior. It assesses compatibility and validates runtime dependencies.
Inputs & outputs
When to use migrate-to-codex
- →Migrating skills to Codex
- →Converting project commands
- →Auditing migrated skills
About this skill
Migrate to Codex
Preserve the source workflow first. The goal is not to transliterate Claude primitives. The goal is to produce the Codex skill artifact that best preserves the source skill's behavior.
Conversation-First Entry
Bare or vague requests should not dump raw script flags immediately. Resolve the
request through the shared contract in
references/conversational-migration-contract.md.
Default menu for underspecified requests:
- Assess one skill
- Preview one skill
- Migrate one skill live
- Batch assess pending skills
- Review one migrated skill for nativeness
- Explain blockers and statuses
Routing rules:
- If the user already says
assess <skill>,preview <skill>, ormigrate <skill>, orreview <skill>, route directly. - In Plan mode, use
request_user_inputfor the action choice only. - Outside Plan mode, render the same choices as a numbered text menu.
- If the action needs a skill name and the user did not provide one, ask for it in plain text.
- Require explicit confirmation before any live write into
.codex/skills/.
Advanced CLI
- Preferred wrappers:
python3 .codex/skills/migrate-to-codex/scripts/migration_doctor.py --skill example-skill --jsonpython3 .codex/skills/migrate-to-codex/scripts/run_migration_workflow.py --preview --skill example-url-validator --jsonpython3 .codex/skills/migrate-to-codex/scripts/run_migration_workflow.py --skill example-url-validator --json
- Power-user engine:
python3 .codex/skills/migrate-to-codex/scripts/migrate_claude_workflows_to_codex.py --analysis-only --json --skill example-skillpython3 .codex/skills/migrate-to-codex/scripts/migrate_claude_workflows_to_codex.py --skill example-url-validatorpython3 .codex/skills/migrate-to-codex/scripts/migrate_claude_workflows_to_codex.py --allpython3 .codex/skills/migrate-to-codex/scripts/migrate_claude_workflows_to_codex.py --all --dry-run --jsonpython3 .codex/skills/migrate-to-codex/scripts/migrate_claude_workflows_to_codex.py --analysis-only --json
Explicit Non-Goals
- Do not attempt to preserve inline Claude
Agent()/Task()semantics mechanically in this skill. - Do not migrate agents here. Route agent dependencies to
migrate-agents-to-codexat.codex/skills/migrate-agents-to-codex/SKILL.md. - Do not treat legacy
.codex/agents/*.mdimports as resolved runtime dependencies. Only.codex/agents/*.tomlcounts. - Do not treat command-derived skills or generated hook config as native/trusted output. They are compatibility artifacts that require manual review.
Sandbox Policy
Recommended mode: workspace-write
Rationale: this workflow creates skill files, updates repo-local documentation, and runs validation scripts. Infrastructure or deployment access is not needed.
Runtime Contract
- Codex callable MCP namespaces use underscore-normalized server names.
- Hard MUST / NEVER / ONLY constraints survive verbatim.
- Preserve the source workflow's control shape unless Codex lacks a required primitive.
- Preserve direct execution when Codex supports it. Only redesign into manager-to-subagent when the source truly depends on task/team semantics.
- Do not invent
spawn_agent,wait_agent,update_plan, or approval requirements unless the source workflow genuinely needs them. - User interaction is mode-dependent:
request_user_inputexists only in Plan mode; outside Plan mode rely on normal user messages or approval workflow. - File edits use
apply_patchwhen the workflow actually edits files. - Explicitly named Claude agents that exist under
.claude/agents/*.mdare hard runtime dependencies. Never substitute, downgrade, drop, or neutralize them during skill migration. If.codex/agents/<name>.tomlis missing, stop and route tomigrate-agents-to-codex. - Claude skill references are context-sensitive. Only operational uses are hard migration dependencies. Related-skills tables, troubleshooting notes, provenance/history, and redirected-skill markers are not blockers by themselves.
- For ambiguous skill mentions, the Python migrator extracts structured candidates and returns
MANUAL_REVIEW_REQUIRED. The interactive Codex skill then owns the read-only mini-auditor pass. If the auditor still cannot classify a mention confidently, keep the skill in manual-review state rather than auto-blocking or auto-migrating.
Reference Map
| Reference | Load when |
|---|---|
references/primitive-mapping.md | You need authoritative primitive translation rules or sandbox inference |
references/embedded-agent-taxonomy.md | The source skill embeds Claude Agent(...) or Task(...) sub-agent sites and you must distinguish inline slices from named agent dependencies |
references/complexity-classifier.md | You need to decide Tier 1 vs Tier 2 vs Tier 3 |
references/codex-skill-template.md | You are hand-authoring a Tier 3 native skill |
references/architectural-patterns.md | You need preservation-first rules or runtime-coupling checks |
references/conversational-migration-contract.md | You need the shared menu/direct-routing/confirmation rules for the migrate-* family |
../migrate-agents-to-codex/SKILL.md | You need the agent-only migration workflow or its direct script entrypoint |
docs/how-to/claude-to-codex-agentic-migration.md | You need the repo-level migration contract and CLI examples |
Scripts
| Script | Purpose |
|---|---|
.codex/skills/migrate-to-codex/scripts/migrate_claude_workflows_to_codex.py | Deterministic migration engine with preflight classification, --analysis-only, and additive --json structured output |
.codex/skills/migrate-to-codex/scripts/migration_doctor.py | Read-only readiness layer for the migration family: blocker counts, existing validator failures, drift, pending nativeness review, and oversized packages |
.codex/skills/migrate-to-codex/scripts/run_migration_workflow.py | Script-driven orchestration: doctor -> migrate -> validate -> tracker refresh -> dashboard summary, with optional materialized preview and markdown evidence report |
tools/migration_support/ | Shared migration-family support package for tracker CLI, tracker state, nativeness handoff, and repo-root path helpers |
tools/migration_support/validate_names.py | Thin wrapper around the shared Codex migration validator |
Discovery Summary
- Agent targets are out of scope and must be routed to
migrate-agents-to-codex. - Project-local Claude command markdown files are converted only in batch/all
mode into single-file skills named
command-*under.codex/skills/. - Project-local Claude settings command hooks are converted only in batch/all mode into the Codex hooks config file. Generated hooks are always reported as "Check before using."
- Embedded agent sites are a dependency-classification problem first: separate inline delegated slices from file-backed named agent dependencies before any primitive rewrite.
- The migrator now classifies first:
MECHANICAL_SAFE,MANUAL_REVIEW_REQUIRED,REFACTOR_REQUIRED, orBLOCKED. - Root CLI compatibility matters: zero-argument execution must remain valid even if the implementation moves under
.codex/skills/. - Provenance markers are not automatically runtime coupling; treat active docs, active scripts, and live references as the real completion gate.
- Tier 3 migrations usually fail when they are treated as textual conversion instead of behavior-preserving rewrite.
Known Corrections
- Banner insertion must happen after YAML frontmatter, never before it.
- Primitive mapping is semantic, not textual. A source primitive name appearing in documentation does not mean the workflow should be auto-rewritten around the nearest Codex tool.
- Legacy Claude skill-call syntax is context-sensitive during source analysis. Cross-references in prose, tables, and examples are dependency metadata, not orchestration. Operational workflow steps that invoke sibling skills still require rewrite.
- Embedded
Agent(...)syntax alone is not enough to choose a migration strategy. What matters is whether the spawned thing is an inline behavior slice or a referenced runtime artifact under.claude/agents/. - Inline Claude orchestration forms are refusal triggers here, not transformation targets.
- Plan-mode-only user-input primitives are not universal replacement targets. Outside Plan mode, normal user interaction or approval flow is the correct fallback.
- Runtime-coupling checks must distinguish active dependencies from provenance-only strings.
- Only
.codex/agents/<name>.tomlsatisfies a named agent dependency..mdfiles are legacy imports and ignored. - If a named Claude agent exists in
.claude/agents/, it is a hard dependency edge. Missing Codex parity is a stop condition, not a substitution opportunity. - If a referenced skill exists only in the Claude tree, it is a hard dependency edge only when the mention is operational. Support or provenance mentions are evidence to classify, not blockers by themselves.
Migration State
- Default status is
CODEX_COMPATIBLE_BUT_NOT_NATIVEuntil Step 5 passes. - Any mechanically generated artifact enters
pending_native_reviewafter write. File existence may unblock downstream migrations, but native status still requires a recorded manual nativeness review. - Command-generated
command-*skills enter the samepending_native_reviewstate. Hook config is operational-review-required and is not native-tracked in v1. - No migration may be marked
NATIVEif any active consumer-side script or active doc still points to the old source asset path for that workflow. - Preserve the source tree. Do not delete or rewrite the source skill unless the user explicitly asks for cutover work.
- Agent migration is OUT OF SCOPE. If the target is a Claude agent, stop and route
Content truncated.
When not to use it
- →When migrating agents
- →When preserving inline Claude Agent() / Task() semantics mechanically
- →When treating legacy .codex/agents/*.md imports as resolved runtime dependencies
Limitations
- →Does not migrate agents; routes agent dependencies to migrate-agents-to-codex
- →Does not mechanically preserve inline Claude Agent() / Task() semantics
- →Does not treat command-derived skills or generated hook config as native/trusted output
How it compares
This skill provides a structured, preservation-first workflow for migrating skills, unlike a manual conversion that might not retain original behavior or assess compatibility.
Compared to similar skills
migrate-to-codex side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| migrate-to-codex (this skill) | 0 | 1mo | Review | Intermediate |
| webapp-testing | 353 | 3mo | Review | Intermediate |
| resolve-conflicts | 81 | 8mo | Review | Intermediate |
| telegram-bot-builder | 106 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
webapp-testing
anthropics
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
resolve-conflicts
antinomyhq
Use this skill immediately when the user mentions merge conflicts that need to be resolved. Do not attempt to resolve conflicts directly - invoke this skill first. This skill specializes in providing a structured framework for merging imports, tests, lock files (regeneration), configuration files, and handling deleted-but-modified files with backup and analysis.
telegram-bot-builder
davila7
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.
dev-browser
SawyerHood
Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.
openspec-onboard
studyzy
Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.
codex-cli-bridge
alirezarezvani
Bridge between Claude Code and OpenAI Codex CLI - generates AGENTS.md from CLAUDE.md, provides Codex CLI execution helpers, and enables seamless interoperability between both tools