run-codex-plugin-package · v0.1.0 · 2026-08-20 · sha256 89af4e52f90ebb6a
run-codex-plugin-package v0.1.0A
Immutable. This exact content is served forever at /api/v1/blob/89af4e52f90ebb6a.
---
name: run-codex-plugin-package
description: Claude Code 用に作った新規または既存 plugin を Codex からも install できるようにしたいとき、.codex-plugin/plugin.json と .agents/plugins/marketplace.json を同期・検査するときに使う。
disable-model-invocation: false
user-invocable: true
argument-hint: "<plugin-name> [--marketplace-name <name>] [--all]"
allowed-tools:
- Read
- Write
- Edit
- Bash(python3 *)
- Bash(git diff *)
- Bash(git status *)
kind: run
prefix: run
effect: local-artifact
owner: team-platform
since: 2026-08-20
version: 0.1.0
source: https://developers.openai.com/plugins/build/plugins
source-tier: external-spec
last-audited: 2026-08-20
audit-trigger: on-doc-change
feedback_contract:
max_iterations: 3
criteria:
- id: IN1
loop_scope: inner
text: 単一と全pluginのapply→checkが同じ入力で収束し、失敗時はmanifestとmarketplaceを部分書きしないこと
verify_by: test
- id: OUT1
loop_scope: outer
text: 全Claude pluginが自己完結したCodex manifestと正確なmarketplace entryを持ち、localまたはmerge済みGit refからinstall可能なこと
verify_by: test
runtime_root_policy: host-skill-path
---
# run-codex-plugin-package
## Runtime root contract
- `runtime_root_policy: host-skill-path` を適用する。
- Claude Codeでは `CLAUDE_PLUGIN_ROOT` をplugin rootとして使用する。
- Codexではホストが提示したこの `SKILL.md` のabsolute pathから、plugin manifestを持つ祖先を上方探索して論理 `PLUGIN_ROOT` を解決する。
- `cwd` からplugin rootを推測せず、literal placeholderをshellへ渡さない。各shell invocation内で解決済みabsolute pathを `PLUGIN_ROOT` に設定する。
- `prompts/` 配下はこのowner Skill契約を継承する。
Claude Code plugin の実体と明示的な Codex override を入力として、Codex が読む
plugin manifest と repository marketplace を決定論的に upsert する。新規作成と
既存改善は状態から自動判定し、同じ generator を使う。
## 入力と出力
- 入力: repo root 直下の `plugins/<plugin-name>/.claude-plugin/plugin.json`
- 任意入力: `plugins/<plugin-name>/.codex-plugin-overrides.json`
- 出力: `plugins/<plugin-name>/.codex-plugin/plugin.json`
- 出力: `.agents/plugins/marketplace.json` の対応 entry
- 非対象: user global config、plugin trust、plugin install 状態、`.claude/` projection
## 実行手順
1. repo root と `plugins/<plugin-name>` が実在し、Claude manifest の
`name` が directory 名と一致することを確認する。
2. `references/package-contract.json` に `codex_distribution` がある場合、
`distributable=true` と source/marketplace の一致を確認する。
3. 先に check を実行する。installed plugin root は `PLUGIN_ROOT`、
Claude Code 互換環境は `CLAUDE_PLUGIN_ROOT` から解決する。
```bash
plugin_root="${PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-plugins/harness-creator}}"
python3 "$plugin_root/scripts/sync-plugin-platforms.py" \
--repo-root . \
--plugin "plugins/<plugin-name>" \
--check
```
4. drift を確認後、同じ引数で `--apply` し、再度 `--check` を実行する。
新規 marketplace 名を固定する場合だけ `--marketplace-name <name>` を追加する。
省略時は既存 marketplace 名を保存し、無ければ repo directory 名から作る。
5. 次を確認する。
- 両 manifest の `name` / `version` / `description` / `author` が一致
- Codex 固有 interface/component は `.codex-plugin-overrides.json` だけが入力
- Codex manifest の `skills` / `hooks` / `mcpServers` / `apps` が実在資産と一致
- marketplace entry が official fields だけを持つ
- plugin 配下に plugin root 外を指す symlink が無い
6. 複数pluginを量産した後は、Claude manifestを持つ全pluginを一括生成・検査する。
```bash
python3 "$plugin_root/scripts/sync-plugin-platforms.py" \
--repo-root . --all --apply
python3 "$plugin_root/scripts/sync-plugin-platforms.py" \
--repo-root . --all --check
```
一括処理は削除済みpluginのrepo-local marketplace entryも除去する。
各pluginは単独cacheで動くよう、plugin root外を指すsymlinkを残さない。
## install 境界
package生成は user-global 状態を変更しない。ユーザーが install を明示依頼した場合だけ
`run-codex-plugin-install` に委譲する。local/Git sourceの登録、Git snapshot更新、
install、`codex plugin list --json` によるreceipt確認を一操作で行う。
```bash
python3 "$plugin_root/scripts/install-codex-plugin.py" \
--source /absolute/path/to/repository --plugin <plugin-name>
```
GitHub では marketplace 定義が merge された ref を指定する。
```bash
python3 "$plugin_root/scripts/install-codex-plugin.py" \
--source owner/repo --ref main --plugin <plugin-name>
```
hook trust はinstallerも代行しない。current command/eventを `/hooks` またはPlugins画面で
確認してユーザーがtrustし、新規threadで確認する。
## 失敗時
- Claude manifest が無い、name 不一致、plugin が `plugins/` 外なら書き込まず停止。
- `--check` は常に無書込。
- install / enable / hook trust は package generator が代行しない。
- Codex で公式対応されない Claude 固有 surface を推測配置しない。