claude-codex-bridge — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited claude-codex-bridge (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.
Bidirectional alignment of a project's Claude Code and Codex CLI configuration. Detects what runtime artifacts exist, produces the missing side, surfaces drift, reports plugin availability across runtimes. Pure file-level operation; never edits skill content.
No authentication required. Operates on the local filesystem only. Never makes network calls.
ln -s, mkdir -p, find, stat).| Capability | Claude Code | Codex |
|---|---|---|
| Reviewer dispatch | Agent tool, prompt = read(reviewer-prompt.md) + scope vars | spawn_agent with the same prompt |
| User confirmation | AskUserQuestion | ask_user / built-in approval |
| File ops (apply phase) | Write, Edit, Bash (ln -s) | shell tool |
| File reads | Read | shell reads (cat, sed, etc.) |
| Shell | Bash | shell command tool |
Cursor: dispatch the reviewer with the Task tool and the same prompt.
When subagent dispatch is unavailable (no Agent, spawn_agent or Task tool) for the current request, run the reviewer inline too, and say in the final report that the review was not independent of the apply.
Prompt file location (MUST check before every phase):
Before reading any phase prompt file, run:
echo "${RUNTIME_BRIDGE_SKILL_OVERRIDE:-}"If the output is a non-empty path, read ALL prompt files (scout-prompt.md, apply-prompt.md, reviewer-prompt.md) from that directory instead of the bundled skill directory. This is the fault-injection override used by integration tests.
If the user hasn't specified, ask one consolidated question: target directory (default: cwd) and dry-run vs full execution. Skip if both are obvious from context.
Read scout-prompt.md and follow it yourself, read-only, with these inputs:
repo_root: absolute path to the project root.recipes_path: absolute path to port-recipes.md.schema_path: absolute path to manifest-schema.md.Scout produces a JSON manifest matching manifest-schema.md. Validate it parses (use jq empty or equivalent). If invalid, fix it once; if it still fails, surface the error to the user and do not continue.
Render the manifest for the user:
trust_warning is present: include the line "After apply, run codex once in this dir and accept the trust prompt; .codex/ artifacts no-op on untrusted projects."For drift ops, ask the user to confirm the suggested canonical or pick the other side. If the user's original prompt already specifies a canonical-selection rule (for example "use the newer file as canonical"), apply that rule to all drift ops without re-asking per pair.
If dry-run: stop here. Print the manifest summary as the final report.
Otherwise: ask the user to approve the full op set. If approved, continue. If declined, stop.
Read apply-prompt.md and follow it yourself with these inputs:
manifest: the approved manifest (with any user drift selections applied).recipes_path: absolute path to port-recipes.md.repo_root: absolute path.Apply produces a JSON apply-log matching manifest-schema.md. Validate it parses.
Read reviewer-prompt.md. Dispatch it as a fresh subagent, with no conversation history, and these arguments:
manifest: the same manifest apply consumed.apply_log: what apply returned.recipes_path: absolute path to port-recipes.md.repo_root: absolute path.Reviewer returns a verdict matching manifest-schema.md.
If verdict is pass: go to Step 7.
If verdict has issues, classify:
unauthorized_change issue: STOP. Print final report including the unauthorized change. Do not loop.suggested_fix text. Run APPLY again yourself on this focused manifest. Then dispatch a fresh REVIEWER again. Track issues across rounds for the stalling check.No fixed iteration cap. Loop until pass or break condition.
Print to user:
.codex/ was written.EACCES): logged in apply-log, reviewer surfaces as missing, orchestrator stops with outstanding issue.See manifest-schema.md and port-recipes.md for the data contract and translation rules.
Before merging meaningful changes to this skill, run dry-run mode on at least one real project of each shape:
CLAUDE.md files (e.g. ~/Code/Klassenzeit).CLAUDE.md and AGENTS.md already present and out of sync (e.g. ~/Zettelkasten).Invocation:
cd <project>
claude # or codex
> Use the claude-codex-bridge skill on this project. Dry run only. Show me the manifest, do not apply anything.Inspect the manifest. Sanity checks:
ops (they should be in skip).trust_warning: true is set.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.