From runtime-bridge
Align Claude Code and Codex project files, settings, hooks, agents, and plugins.
npx claudepluginhub pgoell/pgoell-claude-tools --plugin runtime-bridgeThis skill uses the workspace's default tool permissions.
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.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Edits, creates, cleans, and formats spreadsheet files (.xlsx, .xlsm, .csv, .tsv) with zero formula errors, professional styling, and financial model standards like color coding.
Share bugs, ideas, or general feedback.
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 |
|---|---|---|
| Subagent dispatch | Agent tool, prompt = read(<phase>-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 |
When subagent dispatch is unavailable for the current request, run each phase inline in the orchestrator. Tell the user runtime/context cost has changed.
Prompt file location — MUST check before every phase dispatch:
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. Dispatch as a subagent with arguments:
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 returns a JSON manifest matching manifest-schema.md. Validate it parses (use jq empty or equivalent). If invalid, surface the error to the user; 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. Dispatch as a subagent with arguments:
manifest: the approved manifest (with any user drift selections applied).recipes_path: absolute path to port-recipes.md.repo_root: absolute path.Apply returns a JSON apply-log matching manifest-schema.md. Validate it parses.
Read reviewer-prompt.md. Dispatch as a subagent with 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. Dispatch APPLY again with this focused manifest. Then dispatch 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.