[BUG] Plugin skills are reported as "custom_skill" in skill telemetry instead of their plugin:skill name

Status Open
Reported on v2.1.186
Maintainer reply None cached
Activity 0 comments · opened Oct 13, 2026

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

  1. Install a plugin that ships skills (for example psr-agent-2, which has psr-agent-2:generate-asset-list).
  2. Run a normal standalone skill. The captured skill name is correct.
  3. Run a skill from the installed plugin, either through its slash command or by letting Claude invoke it.
  4. Check the captured skill name in the telemetry or event data.
  5. Result: the plugin skill is recorded as custom_skill instead 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" />

View original on GitHub ↗