Skip to main content

Measure Which Skills Are Used

Step-by-step: pick a window and marketplace, sync the skill inventory, and read every column of the Analysis Skills table.

TL;DR: Open /admin/analysis/skills, pick a window and a marketplace in the scope strip, then read the three views: Overview (one row per marketplace: entitled → installed → active), Activity (invocations over the window) and Skills (the table). Press Sync inventory on the Skills tab when the inventory is behind. Figures are per marketplace and per time window.

Prerequisites

  • An administrator account. Marketplace participants reach Conversations and Versions but not Skills; see Roles.
  • At least one marketplace imported or pinned. If none is, start at Code ↔ Instance.

Step 1: Open Skills and pick a marketplace

Go to /admin/analysis/skills. The page opens on the Overview tab with All marketplaces in scope.

The scope strip above the tabs holds two choices — the window (7, 30 (default), 90 days or a year) and the marketplace. Both are links, so a choice is bookmarkable, and both survive a change of tab: pick a marketplace on Overview and the Activity chart and the Skills table show only its skills. The tabs are:

  • Overview — one row per marketplace: people entitled, consumers holding a verified receipt (with the install rate over the entitled), people active in the window, skills used of those declared, invocations, conversations, cost and the judge's mean. The marketplace name opens its Skills table; the invocation count opens its Activity chart.
  • Activity — invocations over the window as one chart (per day, per week for a year), with the skills it draws beneath it.
  • Skills — the table this guide reads, grouped by marketplace and plugin, with the Client, Sort and search filters. A skill invoked on the instance is credited to the plugin its key names, whichever plugin carries the hooks.

Step 2: Sync the inventory

Press Sync inventory in the toolbar of the Skills tab (administrators only). It publishes every configured skill into the managed inventory now, instead of waiting for managed_inventory_refresh, which runs every minute. Versions are also recorded at boot, so a marketplace imported while the server was down appears after a restart.

Expected result: the marketplace's version on Versions is current. A repeat sync with nothing changed on disk records nothing new, which is correct.

Step 3: Give it a minute

Nothing on the Analysis pages is computed live from raw events. The conversation_rollup job re-derives, every minute, each conversation touched on any plane (gateway, hooks, governance, tools, artifacts) since its last run, into conversation_facts and the per-skill conversation_skill_facts. A skill invoked a moment ago appears on the next pass. If the page still shows nothing after two minutes, follow Create a Conversation and See It Land.

Skills that are configured but were not invoked in the window are not rows. They are counted on the unused button in the toolbar, which lists each one with its marketplace and how many people are entitled to it.

Step 4: Read the table

The table is grouped by marketplace, then by plugin. Each marketplace header shows its skills, its invocations and the most people on any one skill; the marketplace name opens its history on Versions. The filter ribbon narrows by Client, Sort and search, and Export downloads the rows in CSV, JSON, JSON Lines or Markdown with the columns you pick. Every table page in the console carries the same button.

Column Definition
Skill The skill's name, opening its page. Beneath it: the share of invocations attributed with evidence, and the date first used.
Invoked Invocations reported by the harness hooks — slash command and Skill tool.
14 days Invocations per day over the last 14 days.
People Distinct people who invoked it, over the people entitled to its marketplace.
Installs Consumers holding a verified installation receipt.
Conv. Gateway conversations whose session invoked the skill; hover for turns.
Tokens / Cost Tokens and spend in those conversations. Spend overlaps when several skills run in one conversation, so never sum the column.
/inv Cost per invocation.
Wrench Tool calls in those conversations, failed calls in brackets. Opens them.
File Artifacts those conversations produced. Opens them. See Artifacts and the Tool-Call Ledger.
Err Failed requests, and denied tool calls behind ⛔.
p95 95th percentile turn latency.
Models / Agents Models and clients seen.
Last Last invocation.
Sparkle AI The AI judge's mean completion score over judged conversations, with judged / total beside it.

A skill carried by two plugins appears under each one; the marketplace header counts it once.

Step 5: Open one skill

Click the skill name. Its page (/admin/analysis/skills/<plugin:skill>) breaks the same figures down (by client, model or kit version), lists its workflow runs where the skill keeps a workflow log — succeeded, median and p90 time, agent time against human wait, cost per run — and lists every conversation that invoked it, with person, client and model, turns, tool calls, artifacts, errors, cost and the judge's score.

Check: the conversation count on the skill's page matches Conv. in the table for the same window.

Troubleshooting

A skill I just used is not in the table

Cause: the rollup has not passed yet, the window or marketplace excludes it, or the plugin carrying the governance hooks is not installed on that client — without the hooks, no invocation is reported. Solution: wait a minute and reload, widen the window, clear the search, then check the client with dynapps-bridge status.

Invoked is high but Conv. is zero

Cause: the client's model traffic does not go through the gateway, so there is no gateway conversation to join. Hook reports still arrive. Solution: route the client through the gateway; see Connect Claude Code.

Spend looks too high across the page

Cause: spend overlaps when several skills run in one conversation. Solution: read cost per skill and never sum the column.