Skip to content

fix: single-source Codex plugin manifest (supersedes #19)#20

Open
JanKulhavy wants to merge 6 commits into
mainfrom
fix/codex-plugin-root-v2
Open

fix: single-source Codex plugin manifest (supersedes #19)#20
JanKulhavy wants to merge 6 commits into
mainfrom
fix/codex-plugin-root-v2

Conversation

@JanKulhavy

Copy link
Copy Markdown
Collaborator

Summary

Supersedes #19. Keeps every change from #19 (the staging subdirectory, marketplace path update, README and SKILL.md docs, longDescription fallback text) plus resolves Copilot's two review comments by eliminating the duplicate Codex manifest.

  • Replaces plugins/make-skills-codex/.codex-plugin/plugin.json (a byte-for-byte copy of the root manifest) with a relative symlink to ../../../.codex-plugin/plugin.json.
  • Single source of truth: .versionrc.json still bumps only the root file, and the staging subdirectory (which is what users actually install via .agents/plugins/marketplace.json) now reflects the bumped version automatically via the symlink.
  • Matches the pattern already used in the same directory for .mcp.json, skills/, and assets/.

Why not merge #19 as-is

Copilot flagged that the duplicated plugin.json would silently drift after the next version bump, because .versionrc.json only updates .codex-plugin/plugin.json. The subdirectory copy — the one Codex installs from — would ship a stale "version" forever. This PR fixes that by making the subdirectory entry a symlink, so there is only one file to maintain.

What stays the same as #19

  • .agents/plugins/marketplace.jsonsource.path: "./plugins/make-skills-codex"
  • Symlinks for .mcp.json, skills, assets
  • README.md and skills/make-mcp-reference/SKILL.md docs (manual codex mcp add make fallback)
  • longDescription updated in the (single) root manifest

Test plan

  • git ls-files -s plugins/make-skills-codex/ shows all four entries as mode 120000 (symlink)
  • readlink plugins/make-skills-codex/.codex-plugin/plugin.json resolves to ../../../.codex-plugin/plugin.json
  • diff -q plugins/make-skills-codex/.codex-plugin/plugin.json .codex-plugin/plugin.json reports identical (via symlink follow)
  • npx standard-version --dry-run --release-as patch reports .codex-plugin/plugin.json bumped; subdir follows via symlink (verified locally)
  • Local Codex install (codex plugin marketplace add . → install) copies only skills/, .codex-plugin/, .mcp.json, assets/ — no node_modules/, .git/, dist/
  • ./build.sh produces dist zips unchanged

🤖 Generated with Claude Code

JKulhavy91 and others added 4 commits April 23, 2026 13:33
The Codex plugin staging directory shipped a byte-for-byte copy of
.codex-plugin/plugin.json. Since .versionrc.json only bumps the root
file on release, the subdirectory copy — which is what users actually
install via the .agents marketplace — would silently drift after the
next version bump.

Replace it with a relative symlink to the root manifest so the single
source of truth stays in sync automatically. Matches the pattern
already used for .mcp.json, skills/, and assets/ in the same dir.

Addresses Copilot review comments on #19.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 24, 2026 07:53
@JanKulhavy JanKulhavy requested a review from a team as a code owner April 24, 2026 07:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to prevent Codex plugin manifest version drift by making the Codex staging plugin manifest single-sourced (via symlink to the root .codex-plugin/plugin.json), while also updating Codex-facing documentation and adjusting the Codex marketplace entry to point at the staging directory users install from.

Changes:

  • Update Codex installation/troubleshooting docs (README + MCP reference skill) with a manual codex mcp add / codex mcp login fallback.
  • Extend the Codex plugin manifest longDescription with the same fallback instructions.
  • Update .agents/plugins/marketplace.json to reference the Codex staging directory.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

File Description
skills/make-mcp-reference/SKILL.md Adds “Codex Quick Setup” manual MCP registration instructions.
README.md Documents manual Codex MCP registration steps (and a CLI equivalent snippet).
.codex-plugin/plugin.json Updates longDescription to include manual MCP registration commands.
.agents/plugins/marketplace.json Changes local plugin source.path to the Codex staging directory (currently appears incorrect relative to file location).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .agents/plugins/marketplace.json
JanKulhavy and others added 2 commits April 24, 2026 13:52
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This reverts commit f868a0f.

The accepted suggestion changed source.path from "./plugins/make-skills-codex"
to "../../plugins/make-skills-codex", which is doc-incorrect.

Per https://developers.openai.com/codex/plugins/build:

  "Codex resolves `source.path` relative to the marketplace root, not
   relative to the `.agents/plugins/` folder."
  "Keep `source.path` relative to the marketplace root, start it with
   `./`, and keep it inside that root."

Resolution check:
  "./plugins/make-skills-codex"  -> $REPO_ROOT/plugins/make-skills-codex  (valid)
  "../../plugins/make-skills-codex" -> outside $REPO_ROOT                 (broken)

The "../../…" form only resolves to the plugin dir if paths are treated
as relative to `.agents/plugins/`, which the docs explicitly call out
as wrong. PR #17 originally shipped "./" and Codex successfully
registered the marketplace (see ~/.codex/config.toml), which is only
possible if paths resolve from the repo root — confirming the docs.

Restores the doc-compliant value.
@JanKulhavy

Copy link
Copy Markdown
Collaborator Author

Reverted f868a0f (the accepted Copilot suggestion) in 778c08a.

The suggestion changed source.path from ./plugins/make-skills-codex../../plugins/make-skills-codex, but that path resolves outside the repo per the Codex docs resolution rule.

Docs (https://developers.openai.com/codex/plugins/build):

"Codex resolves source.path relative to the marketplace root, not relative to the .agents/plugins/ folder."
"Keep source.path relative to the marketplace root, start it with ./, and keep it inside that root."

Resolution check (marketplace root = $REPO_ROOT):

value resolves to valid?
./plugins/make-skills-codex $REPO_ROOT/plugins/make-skills-codex
../../plugins/make-skills-codex /Users/…/Projects/plugins/make-skills-codex (outside repo)

Empirical confirmation: PR #17 originally shipped source.path: "./" and Codex successfully registered the marketplace (visible in ~/.codex/config.toml). ./ can only resolve to a directory that has a plugin manifest if Codex resolves from the repo root — confirming the documented behavior. That also means PR #18's ./../.. never actually worked end-to-end either; the user's Codex cache just kept the marketplace pinned at the PR #17 commit and was never upgraded, so the regression went unnoticed.

Please don't re-apply the Copilot suggestion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants