You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-ups from the plugin install-method stack (Claude Code plugins, Claude Code marketplaces, plain skills repos and the skills CLI in Settings β Plugins). Each item is out of that stack's scope and is not fixed there.
${CLAUDE_PLUGIN_ROOT} in Markdown bodies. Claude Code replaces it in skill, command and agent bodies. Xum replaces it only in .mcp.json.
Command subfolders. Claude Code namespaces commands/<group>/<name>.md. Xum ignores subfolders.
Skills installed by the skills CLI. Xum has no remove action for them, and it does not check before a run whether ~/.agents/skills/<name> already exists (the CLI may overwrite it). Decide: warn, refuse, or add a remove action that uses the CLI lock file.
Update review of agent and command bodies. Confirm that the update review shows body changes of plugin agents and Claude commands, not only their names.
Unquoted argument-hint: [x] in a plugin SKILL.md. YAML reads it as a list and the skill fails to load. The stack fixed this only for Claude command files; SKILL.md goes through the shared skill parser.
Claude manifest extras.userConfig, lspServers, outputStyles, bin/ and inline mcpServers objects are listed as ignored.
End-to-end check of github and git-subdir marketplace sources against real repositories (unit tests cover their resolution).
Generated with xum β’ Model: anthropic:claude-opus-5-5 β’ Thinking: high
More follow-ups from review round 1 of the stack (#7129β#7134). None of them is fixed there.
Skills provenance after an upstream manifest takes over. Keeping it needs a persisted receipt field. Today the update fails with a message that names the methods that fit and says to uninstall and reinstall. Trigger: a user reports an update that stays stuck after the upstream manifest went away.
Skills CLI choice by the pinned CLI's discovery rules (manifest-declared paths, recursive fallback). Today the choice lists only skills that Xum found itself.
Remote marketplace entries that list components but have no manifest. Today Xum refuses them. Generating the entry manifest for them needs the marketplace data at update time.
Per-file filter for Claude agents lists. Today Xum loads no agents from a folder that holds an agent file the list does not name.
More follow-ups from review round 4 of the plugin-install stack (#7135). Round 4 fixes blockers only, so these are deferred, not fixed. Trigger for each: a user report, or the next change to the named code.
More follow-ups from review round 5 of the plugin-install stack (#7135). Rounds 4-6 fix blockers only, so these are deferred, not fixed. Each one fails closed or affects only the user's own disk. Trigger: a user report, or the next change to the named code.
Follow-up from review round 7 of the plugin-install stack (#7135). Deferred, not fixed.
Claude ${CLAUDE_PLUGIN_DATA} and ${CLAUDE_PROJECT_DIR} in skill and command bodies (π€ feat: install Claude Code plugins (commands as user skills, hooks never run)Β #7130, agentSkillsService.ts). Xum leaves them literal. ${CLAUDE_PROJECT_DIR} is a plain substitution. ${CLAUDE_PLUGIN_DATA} needs a persistent per-plugin data folder, which is a new mechanism.
In-app Skills CLI run (removed in π€ feat: install skills with the pinned skills CLI from Settings β PluginsΒ #7132, round 8). Xum now only shows the npx skills add command. A pin to the previewed commit is not fail closed in skills 1.7.4 (--branch <sha> is tried first, so a branch named after the SHA wins). Bringing back an in-app run needs a run from a Xum-checked local clone, or a CLI version that fetches an exact commit.
Follow-up from the final review of the plugin-install stack (#7135). Not a blocker: a probe found no way to run anything.
Add -- before the URL in cloneRef (installService.ts), and refuse dash-leading remote URLs from marketplace entries (claudeMarketplace.tsentryGitUrl). This is cheap hardening, so git can never read a source URL as an option.
Isolate the shown Skills CLI command from a local node_modules (π€ feat: install skills with the pinned skills CLI from Settings β PluginsΒ #7132, skillsCli.ts).npx --yes skills@1.7.4 prefers a matching local package in the working folder, so running the copied command inside an attacker-controlled checkout runs the planted copy. Fix: show cd ~ && npx β¦ and a line telling the user to run it from a folder without node_modules. Owner: the plugin-install stack author. Trigger: right after #7135 lands.
Picked up by the issue coordinator desk (lane: Menu builder), as a "fix next" item from the 10-22 triage. Scope here is item 5 only (unquoted argument-hint: [x] in a plugin SKILL.md). Items 1-4 and 6-35 wait on the plugin-install stack (#7129-#7134). First step: reproduce it on current main with a failing test, then a plan to the desk before any edit.
Generated with xum β’ Model: anthropic:claude-opus-5-5 β’ Thinking: high
ref dropped when an entry also pins sha (π€ feat: read Claude Code marketplaces in the plugin installerΒ #7133, sourceRef). Hosts that refuse direct SHA fetches (AWS CodeCommit) cannot preview such entries. Fix: keep the ref, fall back to cloning it, and verify that HEAD equals the SHA.
Item 35 is done: #7168 (merged as ec9674c) starts the shown Skills CLI command with cd ~ && on macOS and Linux, and on Windows Settings asks the user to run it from the home folder.
Activity
ThomasK33 commentedon Oct 21, 2026
More follow-ups from review round 1 of the stack (#7129β#7134). None of them is fixed there.
agentslists. Today Xum loads no agents from a folder that holds an agent file the list does not name.contributesexisted (π€ feat: make provider requests a pure function of the session log + sandboxed plugin hooksΒ #3872, behind the experimental flag) ignore it, so they readskills/andmcp.jsonfrom a generated install.Generated with
xumβ’ Model:anthropic:claude-opus-5-5β’ Thinking:highThomasK33 commentedon Oct 22, 2026
More follow-ups from review round 4 of the plugin-install stack (#7135). Round 4 fixes blockers only, so these are deferred, not fixed. Trigger for each: a user report, or the next change to the named code.
skillskey (π€ feat: install Claude Code plugins (commands as user skills, hooks never run)Β #7130,discovery.ts). An explicit but empty or unusableskillskey, with noskills/folder, still exposes a rootSKILL.md. The preview shows it. Fix: track key presence separately and skip the root fallback when the key exists.discovery.ts). Xum reads only the top level ofagents/, soagents/review/security.mdis not offered. Fix: recurse with Claude's subfolder naming, or warn about skipped files.SKILL.mdhides root children (π€ feat: install methods and plain skills repositories as managed pluginsΒ #7131,installMethods.ts). Direct children such asfoo/SKILL.mdare skipped in that case. Fix: walk root children without treating the invalid root as a skill.skillsCli.ts). When Node is not usable, Xum shows thenpx skills addcommand for the user's terminal, where the user's global Git hooks and filters apply. Fix: add a short note about that next to the command.PluginInstallMethods.tsx). Install, Update, Remove and the Skills CLI Run button have no shortcuts. Fix: one scoped shortcut set, hints hidden at mobile widths.installService.ts). The row count is synthesized from the entry and can disagree with the preview, which is authoritative. Fix: derive the row fromentryInstallMethods()...in marketplace entry names (π€ feat: read Claude Code marketplaces in the plugin installerΒ #7133,agentPluginName.ts). Xum refuses names liketool..v2, which Claude allows. Fix: drop the extra check and rely ontoPluginName().ThomasK33 commentedon Oct 22, 2026
More follow-ups from review round 5 of the plugin-install stack (#7135). Rounds 4-6 fix blockers only, so these are deferred, not fixed. Each one fails closed or affects only the user's own disk. Trigger: a user report, or the next change to the named code.
.gitsource path (π€ feat: install methods and plain skills repositories as managed pluginsΒ #7131,installMethods.tsrepositoryName). A source naming/repo/.gitgets an empty name and Xum refuses it. Fix: strip.gitbefore trimming separators..xum/skillscontainer (π€ feat: install methods and plain skills repositories as managed pluginsΒ #7131,installMethods.ts). The list mirrors skills@1.7.4 and lacks Xum's canonical.xum/skills. Fix: add it first for the generated-manifest method, via the central compat helper.installService.ts). Left out of the Skills CLI choice. Fix: keep a per-path map from Xum identity to CLI identity.GIT_SSL_CAINFO/GIT_SSL_CAPATHfor the CLI run (π€ feat: install skills with the pinned skills CLI from Settings β PluginsΒ #7132,skillsCli.ts). Self-hosted HTTPS with a custom CA fails at Run. Fix: pass the TLS variables under the preview's policy.skillsCli.ts). No byte watchdog; a killed run leaves the clone in the OS temp folder. Fix: set the child's TMPDIR to the disposable folder and apply the clone quota.PluginMarketplaceListing.tsx). Fix: focus the first row or Back.ThomasK33 commentedon Oct 22, 2026
More follow-ups from review round 6 of the plugin-install stack (#7135). Deferred, not fixed. Each one makes Xum load fewer components, never more.
discovery.ts). Two declared commands with the same basename: if the first cannot load, neither loads. Fix: reserve the name after the parse.claudeManifest.ts). Invalid or duplicate entries can use up the cap. Fix: count only distinct usable paths.ThomasK33 commentedon Oct 22, 2026
Follow-up from review round 7 of the plugin-install stack (#7135). Deferred, not fixed.
${CLAUDE_PLUGIN_DATA}and${CLAUDE_PROJECT_DIR}in skill and command bodies (π€ feat: install Claude Code plugins (commands as user skills, hooks never run)Β #7130,agentSkillsService.ts). Xum leaves them literal.${CLAUDE_PROJECT_DIR}is a plain substitution.${CLAUDE_PLUGIN_DATA}needs a persistent per-plugin data folder, which is a new mechanism.npx skills addcommand. A pin to the previewed commit is not fail closed in skills 1.7.4 (--branch <sha>is tried first, so a branch named after the SHA wins). Bringing back an in-app run needs a run from a Xum-checked local clone, or a CLI version that fetches an exact commit.ThomasK33 commentedon Oct 22, 2026
Follow-ups from review round 8 of the plugin-install stack (#7135), deferred by maintainer decision. None is a security flaw or data loss.
installMethods.ts).skills/My Skill/gives a zero-skill preview. Fix: checkSkillNameSchemaon the folder before it counts, and require at least one collected skill.installService.ts). Same class as item 1. Fix: store the entry identity in the install receipt.PluginsSettingsSection.tsx). Fix: focus Back whenever the preview came from the marketplace list.ThomasK33 commentedon Oct 22, 2026
Follow-up from the final review of the plugin-install stack (#7135). Not a blocker: a probe found no way to run anything.
--before the URL incloneRef(installService.ts), and refuse dash-leading remote URLs from marketplace entries (claudeMarketplace.tsentryGitUrl). This is cheap hardening, so git can never read a source URL as an option.ThomasK33 commentedon Oct 22, 2026
node_modules(π€ feat: install skills with the pinned skills CLI from Settings β PluginsΒ #7132,skillsCli.ts).npx --yes skills@1.7.4prefers a matching local package in the working folder, so running the copied command inside an attacker-controlled checkout runs the planted copy. Fix: showcd ~ && npx β¦and a line telling the user to run it from a folder withoutnode_modules. Owner: the plugin-install stack author. Trigger: right after #7135 lands.ThomasK33 commentedon Oct 22, 2026
Picked up by the issue coordinator desk (lane: Menu builder), as a "fix next" item from the 10-22 triage. Scope here is item 5 only (unquoted
argument-hint: [x]in a plugin SKILL.md). Items 1-4 and 6-35 wait on the plugin-install stack (#7129-#7134). First step: reproduce it on current main with a failing test, then a plan to the desk before any edit.Generated with
xumβ’ Model:anthropic:claude-opus-5-5β’ Thinking:highπ€ tests: an unquoted argument-hint in SKILL.md keeps its text (red, #β¦
π€ tests: an unquoted argument-hint in SKILL.md keeps its text (red, #β¦
π€ tests: an unquoted argument-hint in SKILL.md keeps its text (red, #β¦
ThomasK33 commentedon Oct 22, 2026
skills(π€ feat: read Claude Code marketplaces in the plugin installerΒ #7133,installService.ts). The row looks installable, and the preview refuses it. Fix: check containment for every relative entry before the skill count.githubmarketplace entries always use HTTPS (π€ feat: read Claude Code marketplaces in the plugin installerΒ #7133,claudeMarketplace.ts). Private repositories that only SSH reaches fail to preview. Fix: expand throughnormalizeRepoUrlForClone.ThomasK33 commentedon Oct 22, 2026
PluginMarketplaceListing.tsx). The pressed button is disabled while it fetches, so focus is lost if the fetch fails. Fix: keep it focusable, or restore focus after the failure.ThomasK33 commentedon Oct 22, 2026
owner/reposhorthand inurlmarketplace sources (π€ feat: read Claude Code marketplaces in the plugin installerΒ #7133,claudeMarketplace.tsentryGitUrl). Claude allows the shorthand only forgit-subdir. Fix: refuse it forurl.refdropped when an entry also pinssha(π€ feat: read Claude Code marketplaces in the plugin installerΒ #7133,sourceRef). Hosts that refuse direct SHA fetches (AWS CodeCommit) cannot preview such entries. Fix: keep the ref, fall back to cloning it, and verify that HEAD equals the SHA.π€ feat: a declared plugin skills path can name one skill folder; readβ¦
π€ feat: install Claude Code plugins (commands as user skills, hooks nβ¦
π€ feat: install methods and plain skills repositories as managed plugβ¦
π€ feat: install skills with the pinned skills CLI from Settings β Pluβ¦
π€ fix: keep an unquoted bracketed argument-hint in SKILL.md as text (cβ¦
π€ fix: start the shown skills CLI command in the home folder (coder#7168
ThomasK33 commentedon Oct 22, 2026
Item 35 is done: #7168 (merged as ec9674c) starts the shown Skills CLI command with
cd ~ &&on macOS and Linux, and on Windows Settings asks the user to run it from the home folder.π€ feat: read Claude Code marketplaces in the plugin installer (coder#β¦
π€ feat: pick a Claude Code marketplace plugin in Settings β Plugins (cβ¦