VS Code extension silently drops a single plugin skill while siblings load correctly
Summary
In the VS Code Claude Code extension, a single skill from a plugin is silently absent from the slash-command palette while all 11 other skills from the same plugin load and work normally. The same plugin works fully in the terminal CLI — only the extension is affected. The skill file is present on disk, has valid YAML frontmatter, and the plugin's manifest reflects the latest version.
Related but broader: #17271 (all plugin skills not appearing). Filing separately because here the plugin generally works — only one skill is dropped.
Environment
- macOS (Darwin 25.3.0)
- VS Code Claude Code extension, claude-code-vm 2.1.119
- Plugin:
aquivalabs/aquiva-skillsv2026.4.8 (HTTPS marketplace, auto-install via webhook) - Affected skill:
agentforce-deploy(added in plugin v2026.4.7) - Working sibling skills from the same plugin:
markdown-web,abm,analyze-psa,assess-codebase,create-slides,list-building,outreach,research-appexchange,sf-code-analyzer,sf-ecosystem,signals
Reproduction
- Install plugin
aquivalabs/aquiva-skillsv2026.4.8 in the VS Code extension via the Manage Plugins UI (HTTPS marketplace). - Confirm Manage Plugins shows the plugin as installed and enabled, and \"Already synced to the latest commit\".
- Start a brand-new conversation (+ button).
- Type \
/\— observe slash-command palette.
Expected: /agentforce-deploy appears alongside /markdown-web, /abm, etc.
Actual: Sibling skills appear (/markdown-web, /abm, etc.), but /agentforce-deploy is missing.
What we verified
The skill file has been delivered correctly to the extension's plugin cache:
~/Library/Application Support/Claude/local-agent-mode-sessions/<sid>/<sid>/rpm/plugin_018TMw7E3UxwNkMqSjyVdn4f/skills/agentforce-deploy/SKILL.md
- File mtime: 2026-04-27 20:54 (after plugin update; correct fixed content).
- Plugin manifest at
rpm/manifest.jsonshowsaquiva-skillsupdatedAt: 2026-04-27T18:46:14, version v2026.4.8. - All 12 skill subdirectories including
agentforce-deployexist under that plugin'sskills/directory.
YAML frontmatter parses cleanly with PyYAML:
---
name: agentforce-deploy
description: \"Use when creating, editing, or deploying Salesforce Agentforce metadata — genAiFunctions, genAiPromptTemplates, genAiPlugins, genAiPlannerBundles, or bots — in any sfdx project with these directories under one of the \`packageDirectories\` declared in \`sfdx-project.json\`. Encodes the manual fixups Salesforce CLI does not handle — schema.json scaffolding, prompt-template versionIdentifier bumps, deployment-detection nudge for schema-only edits, bot topic refresh, and bot deactivation when deploys are blocked by an active agent.\"
---
- Description length: 530 chars. Sibling
signalsskill has a 542-char description and loads fine, so length doesn't appear to be the trigger. - Only
nameanddescriptionkeys; noallowed-toolsor other fields.
The same plugin version and the same SKILL.md, on the same machine, load agentforce-deploy correctly when invoked through the terminal claude CLI. So the marketplace, the YAML, and the file delivery are all sound — the extension's skill indexer is the only thing skipping it.
What we tried (none of which fixed it)
- Quit/reopen VS Code multiple times.
- Open a fresh conversation via the + button.
- Click \"Re-sync\" in Manage Plugins → Marketplaces (got \"Already synced to the latest commit\").
- Confirm the file is the corrected v2026.4.8 content (an earlier YAML parse error in v2026.4.7's frontmatter was fixed in v2026.4.8 — the CLI picked the fix up; the extension still does not).
Note on possible interaction
This repo also contains a project-level skill named agentforce at .claude/skills/agentforce/. The plugin skill is agentforce-deploy — distinct names, but they share a prefix. Could not verify whether prefix overlap with a project-level skill influences plugin-skill indexing in the extension. Mentioning in case it's a clue.
Why this matters
Silent skill drops are hard to diagnose — there is no error surfaced in the Manage Plugins UI, in the marketplace re-sync flow, or in the slash-command palette. The skill is simply absent. A user who didn't know to inspect ~/Library/Application Support/Claude/local-agent-mode-sessions/.../rpm/... would have no way to tell whether the file failed to deliver, the YAML failed to parse, or the indexer skipped it.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗