For the complete documentation index, see llms.txt. This page is also available as Markdown.

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:

OTel attribute
Meaning

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/skills directory 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.

Why is there no "Organization" badge? Claude Code's telemetry cannot distinguish organization-sanctioned distribution (managed settings, an approved internal marketplace, a claimed repository) from an individual developer's choices within the same scopes. The badges therefore describe only what the signal establishes. Organization-level classification, where your admins claim specific marketplaces and repositories as company-owned, is on the roadmap.

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?