refactor(plugin): self-maintaining directory form for plugin skills - #565
refactor(plugin): self-maintaining directory form for plugin skills#565mattpocock wants to merge 1 commit into
Conversation
Replace the hand-listed 22 skill directories in .claude-plugin/plugin.json with the two promoted buckets (./skills/engineering, ./skills/productivity). Claude Code discovers skills one level down, so newly promoted skills are picked up automatically and the manifest can't drift out of sync with the tree. Resolves the same enumeration gap that once left resolving-merge-conflicts off the list. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: c01d2b6 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
I believe that Codex should no longer be excluded from the Codex plugin manifest path fields now accept either a string or an array of strings. This shipped June 22, 2026 in Codex now explicitly recognizes both .claude-plugin/plugin.json and .claude-plugin/marketplace.json. I verified the current repository end to end with: codex plugin marketplace add mattpocock/skills
codex plugin add mattpocock-skills@mattpocock
codex plugin list --marketplace mattpocockThe plugin installed as enabled at version The existing Claude plugin is already cross-compatible with Codex and the symlink workaround is no longer necessary because Codex can consume the explicit skills array directly. I believe the required changes are documentation and release messaging only:
@mattpocock I'm not sure if this is the right place for this content or not. Please let me know if you'd like this feedback elsewhere. |
|
I got it working fully as a codex plugin: https://github.com/saidelike/skills/tree/feat/native-codex-plugin but I guess #565 (comment) way is way simpler |
What
Switch
.claude-plugin/plugin.json'sskillsfield from a hand-listed enumeration of all 22 skill directories to directory form — pointing at the two promoted buckets and letting Claude Code discover the skills one level down:Why
The enumeration had to be edited by hand every time a skill was promoted, and had already drifted once (it left
resolving-merge-conflictsoff). Directory form is self-maintaining: newly promoted skills under those two buckets are picked up automatically, and the manifest can't fall out of sync with the tree.Equivalence
Directory form resolves to exactly the same 22 skills as the old list —
engineering(17) andproductivity(5) — and the non-promoted buckets (deprecated,in-progress,misc,personal) stay excluded.README.mdfiles in each bucket are ignored (noSKILL.md).claude plugin validate .passes.🤖 Generated with Claude Code