Surface Codex .system and Claude marketplace plugin skills in cloud mode#658
Closed
Mng-dev-ai wants to merge 2 commits into
Closed
Surface Codex .system and Claude marketplace plugin skills in cloud mode#658Mng-dev-ai wants to merge 2 commits into
Mng-dev-ai wants to merge 2 commits into
Conversation
Codex stores preinstalled skills under .codex/skills/.system/<name>/, while user-installed ones stay flat in .codex/skills/<name>/. The scan only walked the flat namespace path, so the .system directory (which has no SKILL.md of its own) was skipped and no Codex skills appeared. Add .codex/skills/.system as a read-only base per home, mirroring the existing Cursor skills-cursor built-in handling — the CLI manages that dir and overwrites edits. Flat user-installed Codex skills still resolve via the namespace path and take priority on name collisions. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The plugin skill discovery read .claude/plugins/installed_plugins.json and enabledPlugins from settings.json — neither exists in the current Claude layout, so no plugin skills surfaced. Rewrite it against the actual layout: known_marketplaces.json gives each marketplace's install location, and bundled skills live under <installLocation>/plugins/*/skills and <installLocation>/external_plugins/*/skills. Surface these read-only since the marketplace manages those dirs. Across the per-sandbox homes this takes the skills list from 5 (Codex .system only) to 30 (25 Claude plugin skills + 5 Codex). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #657. After moving skill discovery to per-sandbox HOMEs, the skills list was still empty/near-empty in cloud mode. Two distinct gaps, both fixed here:
1. Codex preinstalled (
.system) skillsCodex stores preinstalled skills under
.codex/skills/.system/<name>/, while user-installed ones go flat in.codex/skills/<name>/. The scan only walked the flat path, so the.systemdir (noSKILL.mdof its own) was skipped. Added.codex/skills/.systemas a read-only base per home, mirroring the existing Cursorskills-cursorbuilt-in handling.2. Claude marketplace plugin skills
_get_claude_plugin_skill_pathsread.claude/plugins/installed_plugins.jsonandenabledPluginsfromsettings.json— neither exists in the current Claude layout, so no plugin skills surfaced. Rewrote it against the real layout:known_marketplaces.jsongives each marketplace'sinstallLocation, and bundled skills live under<installLocation>/{plugins,external_plugins}/*/skills/. Surfaced read-only (the marketplace manages those dirs; updates overwrite edits). Only physically-present plugins are scanned (the official marketplace installs ~52 of 234 catalog entries), so this reflects what's installed, not the full catalog.Result (verified against real on-disk sandbox homes)
Running the real
SkillService.list_all()across all sandbox homes: 0 → 30 skills (25 Claude plugin skills + 5 Codex.system), allread_only=True, deduped across homes. Confirmedget_filesstill serves them (viewable) andupdateis rejected for read-only skills.Known limitation (pre-existing)
Skill identity is
{source, name}, so two plugins exposing a same-named skill (e.g.access/configureindiscord/imessage/telegram) collapse to one entry. Disambiguating needs a plugin/location qualifier in the API + UI — tracked separately.Test notes
No automated test suite run (repo policy). Verified by executing the actual service against the real per-sandbox homes.
🤖 Generated with Claude Code