[BUG] Plugin skills are reported as "custom_skill" in skill telemetry instead of their plugin:skill name
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
We capture Claude Code skill usage in our application. Standalone skills are captured with the correct skill name. Many skills that come from an installed plugin are captured as the generic value custom_skill, so we can't tell which plugin skill actually ran.
The behavior is also inconsistent. Some plugin skills (psr-agent:..., psr-agent-2:...) are captured with the correct name, while others from plugins are bucketed as custom_skill.
Example from one user's usage data (50 skill runs in total):
| Captured skill name | Runs |
|---|---|
| custom_skill | 37 |
| psr-agent:generate-asset-list | 5 |
| create-quadra-quote | 4 |
| psr-agent-2:generate-technical-assessment | 2 |
| psr-agent-2:generate-asset-list | 1 |
| psr-agent:generate-technical-assessment | 1 |
Impact: 37 of 50 runs (about 111 of 147 hours and $123 of $138 in cost) fall into the single custom_skill bucket. We can't attribute usage, cost or time to specific plugin skills.
Question: is custom_skill a deliberate redaction of non-built-in skill names? If so, plugin skills appear to be included in that redaction.
What Should Happen?
Plugin skills should be reported with their namespaced name (<plugin>:<skill>), the same way standalone skills are reported by name. If names are redacted on purpose, there should be a documented setting to report the real skill name, and plugin skills should not be redacted by default.
Error Messages/Logs
No error message is shown. The skill runs normally. Only the captured skill name is wrong (`custom_skill`).
Steps to Reproduce
- Install a plugin that ships skills (for example
psr-agent-2, which haspsr-agent-2:generate-asset-list). - Run a normal standalone skill. The captured skill name is correct.
- Run a skill from the installed plugin, either through its slash command or by letting Claude invoke it.
- Check the captured skill name in the telemetry or event data.
- Result: the plugin skill is recorded as
custom_skillinstead of<plugin>:<skill>.
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.186 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
<img width="2172" height="724" alt="Image" src="https://github.com/user-attachments/assets/ca3f4f35-dbb4-4ba2-b220-2fe5bff98c2f" />