Skip to content
Back to skills

Skill Usage Instrumenter

ASecurity

Design usage instrumentation for a skill library — the evidence layer answering which skills actually FIRE in practice. Covers per-invocation signals (skill name, auto-trigger vs explicit call, coarse task class — never prompt content or user identifiers), wrong-fire/correction signals, never-fires detection over a stated window, evidence tiers (host-recorded vs self-reported), and thresholds turning counts into action (fix a trigger, split, or hand an evidence package to skill-deprecation-pl...

  • 4 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 11, 2026
code-qualitygodebugging

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add ModernNomad-98/Project-Aegis --skill skill-usage-instrumenter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skill Usage Instrumenter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Skill Usage Instrumenter
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modernnomad-98-skill-usage-instrumenter/badge)](https://www.skillsdirectory.com/skills/modernnomad-98-skill-usage-instrumenter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: skill-usage-instrumenter
description: 'Design usage instrumentation for a skill library — the evidence layer answering which skills actually FIRE in practice. Covers per-invocation signals (skill name, auto-trigger vs explicit call, coarse task class — never prompt content or user identifiers), wrong-fire/correction signals, never-fires detection over a stated window, evidence tiers (host-recorded vs self-reported), and thresholds turning counts into action (fix a trigger, split, or hand an evidence package to skill-deprecation-planner) — plus a rare-but-critical exemption: low usage alone never condemns a safety-net skill. Advisory/design only: adds no hooks, edits nothing. Use when asked which skills are used or unused, to instrument/measure skill invocation, or to ground pruning in evidence not assumption. Do NOT use for product/system telemetry (observability-operator), a skill definition''s quality (skill-quality-reviewer), eval execution design (eval-runner-designer), or the retirement plan itself (skill-deprecation-planner).'
---

# Skill Usage Instrumenter

## Purpose

Replace assumption with evidence about how a skill library is actually
used. A library grows on judgment — every skill shipped because someone
believed it would fire — but it can only be pruned and tuned on signal:
which skills trigger, which only ever run when explicitly named, which fire
on the wrong requests, and which have never fired at all. This skill designs
that signal layer: what to capture (and, just as firmly, what never to
capture), how to store and review it, and the thresholds at which counts
become actions — a trigger fix, a split, or an evidence package handed to
`skill-deprecation-planner`. The deliverable is an instrumentation design;
it changes no skill, adds no hook, and collects nothing itself.

## Use When

- Use when: asked which skills are actually used, unused, or misfiring —
  "do we know if anyone invokes these?", "half this library is probably
  dead."
- Use when: asked to design instrumentation, telemetry, or measurement for
  skill invocation and trigger behavior in real sessions.
- Use when: a pruning or consolidation effort needs a usage-evidence basis
  before anyone names removal candidates.
- Use when: trigger tuning needs field data — which skills fire only when
  explicitly named (a trigger-description failure smell), which fire and get
  corrected by the user (wrong-fire).
- Do NOT use when: designing telemetry for a product or system — metrics,
  logs, traces, alerting for services — that is `observability-operator` *(manual-only)*.
  This skill's subject is the library measuring ITSELF.
- Do NOT use when: judging whether a skill's definition is well-designed —
  that is `skill-quality-reviewer`; usage signal is the empirical complement
  to its structural judgment, not a replacement.
- Do NOT use when: designing how authored eval cases would be executed
  against a model — deliberate lab exercise is `eval-runner-designer`; this
  skill measures uncontrived, real-session behavior.
- Do NOT use when: planning the retirement of a skill the evidence already
  condemns — that is `skill-deprecation-planner`; this skill produces the
  evidence package that planner consumes.

## Inputs to Inspect

1. The host's invocation surface: what the harness records or could record
   about skill activation — session logs, invocation events, explicit
   skill-call records — and where those records live.
2. The library's shipped skill list and its overlap clusters (catalog +
   trigger-evals `overlaps_with` fields) — collision pairs are where
   wrong-fire signal matters most.
3. Any existing usage traces: session transcripts, closeout reports that
   name skills used, decision-log entries recording skill invocations.
4. The library's privacy/disclosure posture (for this repo, the
   product-agnostic rule: no live identifiers) — the minimization rules must
   be at least as strict.
5. The intended consumers: who reviews the signal, on what cadence, and
   which actions (trigger fix, split, deprecation handoff) they are
   authorized to take.

## Workflow

1. **Define the signal taxonomy.** Four families:
   - *Invocation:* skill name, auto-trigger vs explicit call, coarse time
     bucket rather than an exact timestamp,
     coarse task class (e.g. "review", "build", "audit" — a small fixed
     enum, never free text).
   - *Correction (wrong-fire):* user overrode or redirected the skill
     choice; which skill won instead — the field counterpart of a
     trigger-evals discrimination case.
   - *Completion hint:* the skill's workflow ran to its deliverable vs was
     abandoned — coarse (delivered / abandoned / unknown), not a quality
     score.
   - *Non-events:* skills with zero invocations over an eligible window —
     computed from skills shipped and exposed to the observed host/workload
     during that window minus observed names, never from memory.
2. **Fix the minimization rules.** Capture skill NAMES and coarse enums
   only. Never captured, at any tier: prompt text, response content, user
   identifiers, repo/product names, file paths. The library measures itself,
   not its users. Keep raw events access-restricted; publish only aggregated
   counts with a stated minimum-count threshold so sparse skill/task/time
   combinations cannot identify a person or project.
3. **Map capture points and assign evidence tiers.** Host-recorded events
   (harness logs, invocation records) are tier 1. Self-reported mentions
   (closeout reports listing skills used) are tier 2 — subject to
   self-report bias and named as such. Anecdote ("we use that one a lot")
   is tier 3 and never sufficient for action. Where the host exposes no
   hook, design the tier-2 path honestly rather than pretending tier 1
   exists.
   If the owner must choose a capture path, explain that tier 2 is a
   closeout self-report and a host hook records invocation at its source.
   Compare tier 2's low setup cost and reporting bias with a hook's better
   coverage and host-integration, privacy-review and upkeep costs. State
   money, setup time, ongoing care and unknown host access/costs. Recommend
   tier 2 for an immediate, labeled baseline when hooks are unavailable;
   recommend a hook when reliable wrong-fire or never-fired decisions need
   tier 1 and host ownership is available. Ask one capture-path question;
   choosing a path does not authorize implementing a hook or collecting.
4. **Define aggregation and the review cadence.** Per-skill: fire count,
   auto-vs-explicit ratio, wrong-fire count, completion hints, last-fired
   date. Per-cluster: which sibling wins contested requests. Library-wide:
   never-fired list for the window. State each skill's ship date and eligible
   host/workload exposure; a never-fired verdict is only as good as the
   window's representativeness.
5. **Set thresholds that convert counts into actions.**
   - An auto-invocable skill fires only when explicitly named, never auto →
     possible trigger-description failure → re-review by
     `skill-quality-reviewer` (its Check 1, trigger quality, and Check 2,
     trigger overlap). Explicit-only/manual-only skills
     are expected to behave this way and are exempt from this inference.
   - Repeated wrong-fires against the same neighbor → collision evidence →
     discriminating trigger-evals + description fix on both sides.
   - Zero fires across N consecutive eligible exposure windows AND not exempt → deprecation
     candidate → evidence package to `skill-deprecation-planner`.
   Every threshold names its action and its consumer; a number with no
   consequence is decoration.
6. **Write the rare-but-critical exemption list.** Some skills exist for
   events that should be rare — incident response, recovery, refusal
   guards. Low usage is their success mode, not their failure mode. The
   design requires an explicit exemption list with a reason per entry, and
   the rule that usage alone never condemns an exempt skill.
7. **Specify the evidence-package format** for downstream consumers: window,
   tiers of the supporting signal, ship date and exposure, per-skill numbers with denominators,
   known blind spots — so `skill-deprecation-planner` receives evidence, not
   a verdict, and the human decision stays informed.
8. **Deliver the design** in the Output Format. Implementation (adding
   hooks, wiring storage) is a separate task for the host's owners.

Signal schema, minimization table, evidence tiers, threshold catalog, and
the exemption-list format:
[references/usage-signal-catalog.md](references/usage-signal-catalog.md).

## Output Format

```
SKILL USAGE INSTRUMENTATION DESIGN — <library / host>
Signals:       <invocation | correction | completion-hint | non-event — fields per family>
Minimization:  captured: <fields>; never captured: prompt/response content, user identifiers, live names/paths
Capture points:<host hook(s) found → tier 1 | self-report path → tier 2; honest statement of which exist today>
Capture choice:<if owner decision needed: terms, fit, costs, pros/cons,
               recommendation and why, one question>
Aggregation:   <per-skill, per-cluster, library-wide views; window: <stated>>
Cadence:       <review rhythm + who reviews>
Thresholds:    <signal pattern → action → consumer (skill-quality-reviewer | trigger-evals fix | skill-deprecation-planner)>
Exemptions:    rare-but-critical list: <skill → reason> (usage alone never condemns these)
Evidence package: <format handed to skill-deprecation-planner>
Not designed:  <what this design deliberately leaves out, and why>
```

## Validation Checklist

- [ ] Every signal field is a name, enum, count, or date — no free text,
      no prompt/response content, no user identifiers anywhere in the
      schema.
- [ ] Every capture point carries an evidence tier, and tiers that don't
      exist today are stated as not existing (no imagined tier-1 hooks).
- [ ] Any capture-path choice compares tier-2 bias with hook coverage,
      money/setup/upkeep and host access, then recommends a path with why.
- [ ] The never-fired computation derives from eligible shipped skills minus
      observations, with ship date, host/workload exposure and window stated.
- [ ] Every threshold names both its action and its consumer.
- [ ] The rare-but-critical exemption list exists with a reason per entry.
- [ ] Denominators are defined for every rate (fires per session, per task
      class) — and estimated denominators are labeled estimates.
- [ ] The design adds no hooks and edits no skills — implementation is
      explicitly handed off.

## Gotchas

- The seatbelt fallacy: pruning by usage alone removes exactly the skills
  you need on the worst day. Incident, recovery, and refusal-guard skills
  are rare-by-design — hence the exemption list, written before the first
  count is read.
- Self-report bias: closeout-mentioned skills skew toward the memorable
  and the flattering. Tier-2 evidence supports investigation, not
  deprecation on its own.
- The denominator problem: "fired 4 times" means nothing without "out of
  how many eligible requests" — and eligibility is genuinely hard to
  compute. Estimated denominators must say so, or rates will masquerade as
  facts.
- Unrepresentative windows: a quarter dominated by one kind of work
  condemns every skill the work didn't need. Never-fired verdicts need
  either a long window or explicit workload framing.
- Minimization creep: "just capture the prompt this once, for debugging"
  converts a self-measurement layer into user surveillance. The
  publishable-aggregate test is the line: if a sparse combination could
  identify a person or project, aggregate further or keep it restricted.
- Wrong-fire vs preference: a user redirecting a skill choice sometimes
  means the trigger misfired, sometimes means the user wanted a different
  tool for a valid overlap. Correction events are evidence for review, not
  automatic trigger defects.
- Goodhart drift: once usage counts exist, "make the number go up" becomes
  a temptation — descriptions broadened to farm invocations. Usage signal
  feeds quality review; it must never become a target.

## Stop Conditions

- Asked to capture prompt content, response text, user identifiers, or
  live product/repo names in the usage schema → refuse; minimization is a
  design invariant, not a tunable. Offer coarse enums instead.
- Asked to implement the hooks or start collecting as part of this design →
  stop at the spec; instrumentation touches the host and needs its owners'
  approval as a separate task.
- Asked to name deprecation candidates from the design's hypothetical or
  not-yet-collected numbers → refuse; no data, no verdicts. The design
  defines how evidence WOULD accrue.
- Asked to skip the exemption list ("just rank everything by count") →
  refuse; a ranking that can condemn a safety-net skill is broken by
  construction.
- The host exposes no capture point at all and the requester wants tier-1
  claims anyway → stop and state the honest options: design the tier-2
  self-report path, or get a host-side hook built first.

## Supporting Files

- [references/usage-signal-catalog.md](references/usage-signal-catalog.md)
  — the signal schema field-by-field, the minimization
  capture/never-capture table, evidence-tier definitions, the threshold →
  action → consumer catalog, denominator guidance, and the exemption-list
  format.
- `evals/evals.json` — behavior cases including the no-host-hooks edge and
  the capture-prompt-content refusal.
- `evals/trigger-evals.json` — discrimination against
  `observability-operator`, `skill-deprecation-planner` (evidence vs
  retirement plan), `eval-runner-designer` (field vs lab), and
  `skill-quality-reviewer`.

Files in this skill

  • SKILL.md12.1 KB
  • evals/evals.json5.1 KB
  • evals/trigger-evals.json3.9 KB
  • references/usage-signal-catalog.md4.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…