Skill Origin Classification
How Revenium classifies the origin of Claude Code skills: the exact mapping from OpenTelemetry attributes to the Origin badges on the Skills page.
The Origin column on the Skills page tells you where each skill was loaded from. This page documents how those badges are derived from the underlying telemetry, so you can interpret them precisely.
Where the signal comes from
When Claude Code activates a skill, it emits a claude_code.skill_activated OpenTelemetry log event carrying a small set of attributes:
skill.name
The skill's name, or a redaction placeholder when names are withheld
skill.source
The scope the skill was loaded from (see the mapping below)
skill.kind
workflow for workflow skills; absent otherwise
plugin.name
The owning plugin, when the skill arrived via a Claude Code plugin
marketplace.name
The plugin marketplace the owning plugin was installed from, when applicable
skill.source is the only provenance signal Claude Code reports. It has four values, and each maps to one Origin badge.
The mapping
skill.source
What Claude Code means by it
Origin badge
bundled
Shipped inside Claude Code itself
Vendor
userSettings
Loaded from the developer's personal ~/.claude/skills
Individual
projectSettings
Loaded from a repository's .claude/skills directory
Project
plugin
Provided by an installed plugin, usually from a marketplace
Marketplace
anything else / missing
Source not reported or not recognized
Other
How to interpret each badge
Vendor — the skill is built into Claude Code. Its presence needs no action from your organization.
Individual — the skill lives in one developer's personal setup. Skills your organization distributes onto developer machines (for example via managed settings) may also appear here: Claude Code reports the scope a skill is loaded from, and the telemetry has no separate "managed settings" source value.
Project — the skill is committed to a repository's
.claude/skillsdirectory and is shared with anyone who works in that repo. This does not mean the organization sanctioned it: a skill in a personal side project classifies identically to one in your main product repo. The telemetry reports the scope only, not which repository the skill came from.Marketplace — the skill arrived via a Claude Code plugin. The Marketplace column names the marketplace the plugin was installed from, whether that marketplace is external or run by your own company.
Other — the activation event did not carry a recognizable source, most often because the skill's activation could not be correlated with its cost-bearing request. Revenium re-enriches these rows when a later activation for the same skill correlates successfully.
Redacted skills
When an organization disables per-skill telemetry detail (OTEL_LOG_TOOL_DETAILS=0), Claude Code reports placeholder names instead of real skill names: custom_skill on the activation event and third-party on the cost-bearing request. Revenium keeps these as aggregate rows. The runs and spend are real and are always counted, but each row represents many skills folded together. For that reason a redacted row never displays or matches a specific marketplace, and its provenance fields are treated as unknown.
Last updated
Was this helpful?