Extend codex.skill.injected metric with plugin and marketplace attributes

Open 💬 0 comments Opened Jul 27, 2026 by amber-beasley-liatrio

Summary

codex.skill.injected is a native OpenTelemetry counter metric. Its current metric attributes are:

  • status
  • skill

The direct implicit-invocation path also adds:

  • invoke_type = implicit

See the skill-injection metric emission and the implicit-invocation path.

A Honeycomb query like the following is valid today:

WHERE codex.skill.injected exists
GROUP BY skill

skill not appearing in Honeycomb's schema sidebar looks like schema discovery/indexing behavior for metric attributes rather than a missing exporter field — the data and the source both confirm the attribute is emitted.

Why plugin and marketplace are missing

  • Skill metadata already carries an optional plugin_id.
  • The current metric emission deliberately drops it, emitting only status and skill.
  • plugin_id has the conventional plugin@marketplace identity, but it would be better for Codex to emit marketplace as its own attribute rather than requiring dashboard-side parsing.
  • The skill loader already preserves plugin_id and remote_plugin_id, so there's a clear implementation path. See skill metadata construction.

Request

Extend the existing codex.skill.injected metric attributes.

Existing (keep as-is):

  • status
  • skill
  • invoke_type (where available)

Add:

  • plugin_id
  • plugin.name
  • plugin.version
  • plugin.scope
  • marketplace.name
  • marketplace.is_official

Implementation note

plugin_id is available at skill-injection time, but populating plugin.version, plugin.scope, marketplace.name, and marketplace.is_official will require carrying richer plugin metadata through the skill loader. This makes it a bounded, well-scoped feature rather than an open-ended telemetry request.

View original on GitHub ↗