[Bug]: Plugin-provided Claude skills (e.g. mattpocock-skills) never appear in the `$` picker
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
- Install a plugin that ships skills (e.g.
mattpocock-skills) and enable it at the project level:// <project>/.claude/settings.json { "enabledPlugins": { "mattpocock-skills@claude-plugins-official": true } } - Open the project in T3 Code (desktop AppImage), start a thread, and type
$in the composer. - Observe: no
mattpocock-skills:*entries appear in the picker, even though Claude Code itself lists them. - For comparison, a skill placed under
<project>/.claude/skills/<name>/SKILL.mddoes appear in the picker.
Expected behavior
Skills contributed by enabled plugins should appear in the $ picker alongside filesystem skills, since the engine loads them in the running session.
Actual behavior
Plugin-provided skills are never listed. The $ picker is fed from the provider snapshot's skills field, which discoverClaudeSkills (apps/server/src/provider/Drivers/ClaudeSkills.ts, ~L102) builds by scanning only two filesystem roots:
const roots = [
{ directory: path.join(configDirPath, "skills"), scope: "user" },
...(cwd ? [{ directory: path.join(cwd, ".claude", "skills"), scope: "project" as const }] : []),
];
Neither root covers the plugin cache, so ~/.claude/plugins/cache/claude-plugins-official/mattpocock-skills/1.2.3/skills/** is invisible to the picker.
This is picker/discovery-only: the skill is still fully invocable by name. I captured the provider init handshake for a thread with the plugin enabled and it lists mattpocock-skills:grill-with-docs (and all other plugin skills) in the model's loaded skills, with the Skill tool present. So the engine has them; only T3's filesystem inventory misses them.
Impact
Minor bug or occasional failure
Version or commit
0.0.32-nightly.20260807.1023 (desktop AppImage), Linux x64
Environment
Ubuntu (kernel 7.0.0), T3 Code desktop AppImage 0.0.32-nightly.20260807.1023, Claude provider (claude-agent-sdk 0.3.223), mattpocock-skills 1.2.3
Logs or stack traces
Provider init handshake (session claude/system/init, trimmed to the relevant fields):
{
"skills": [ "mattpocock-skills:grill-with-docs", "mattpocock-skills:tdd", "..." ],
"tools": [ "Skill", "..." ]
}
Workaround
Invoke plugin skills by name in prose ("use grill-with-docs on this") rather than via the $ picker — the model resolves and runs them. Picker-based discovery for plugin skills is unavailable.
Notes
Same underlying discovery limitation as #4544 (packaged desktop, project-level skills) and #5487 (.agents/skills root), but specifically for plugin-contributed skills. PR #5488 proposes adding a .agents/skills scan root; plugin skills would need a third source (the enabled plugin cache dirs) or surfacing the SDK init skill list into the snapshot instead of filesystem-only discovery.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in apps/server/src/provider/Drivers/ClaudeSkills.ts around discoverClaudeSkills and trace how its filesystem inventory becomes the provider snapshot's skills field. Compare that inventory with the Claude provider init handshake and enabled plugin cache paths; done means enabled plugin-provided skills appear in the $ picker alongside filesystem skills without breaking existing project skills.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 74/100