Files
hyperframes/skills/media-use/references/telemetry-dashboard.md
T
James RussoandMiao Yang 696cbdbbd0 chore(skills): package Codex plugin upload (#2668)
* chore(skills): package Codex plugin upload

* chore(skills): harden Codex plugin content

* fix(skills): satisfy plugin quality gates

* fix(skills): address plugin packaging review

* fix(plugin): simplify asset validation

* fix(skills): correct embedded-captions catalog count to 35 after nightcity removal

The nightcity theme removal left SKILL.md claiming 36 identities in
four places, including the frontmatter description the router reads.
The catalog now has 35 entries (10 classic + 25 themed).

---------

Co-authored-by: Miao Yang <miao.yang@heygen.com>
2026-07-22 00:41:40 +08:00

4.1 KiB

media-use usage dashboard

Reproducible definition of the media-use usage dashboard. The dashboard answers "how much is media-use used, for what, is reuse working, and what can't it satisfy" from the telemetry scripts/lib/telemetry.mjs already emits. Build it in an authorized HyperFrames analytics project; this doc is the source of truth so it can be recreated. Local complement: resolve --stats (same questions, from .media/ + ~/.media, no dashboard access needed).

Identity (see scripts/lib/telemetry.mjs)

Events attribute to the same person as the hyperframes CLI and studio — the shared install id in ~/.hyperframes/config.json (anonymousId), stitched to the HeyGen account ($identify, distinct_id = email/username) on sign-in. Not fully anonymous by design; pseudonymous before sign-in, account-linked after. $ip:null. Opt-out: HYPERFRAMES_NO_TELEMETRY=1 / DO_NOT_TRACK=1 (also CI, dev).

Event catalog (verified present in-project)

Every event carries surface: "media-use". Event properties are coarse — never intent text, file names, or paths.

Event Fires on Key properties
media_use_resolve a resolve that produced/returned an asset type, source, provider, via, local_only, provider_override
media_use_resolve_miss a resolve that found nothing type, local_only, provider_override (no intent)
media_use_candidates --candidates / --dry-run listing type, counts
media_use_doctor_run --doctor ok, checks_failed, failed[]
media_use_compare grade-compare / compare command, cells, truncated, total, render_ready_timed_out
media_use_transcribe · media_use_duck · media_use_transcript_cut audio-engine ops op-specific

Dashboard tiles

  1. Invocation volumequery-trends, count of media_use_resolve over time (daily). "How much."
  2. By media typemedia_use_resolve broken down by type (bgm/sfx/image/icon/logo/voice/grade/lut). "For what."
  3. Resolve hit-rate — trends formula: A / (A + B) where A = media_use_resolve, B = media_use_resolve_miss. "Is the catalog covering needs."
  4. Provider mixmedia_use_resolve broken down by provider; a second tile by via (url / params-fallback / params) to catch CDN→params LUT downgrades.
  5. Top missesmedia_use_resolve_miss broken down by type (the tuning signal — pair with local resolve --stats, which also shows the missed intents that telemetry deliberately omits).
  6. Doctor healthmedia_use_doctor_run broken down by failed[] (which dependency check fails most) + checks_failed distribution.
  7. Compare costmedia_use_compare by command, plus truncated / render_ready_timed_out rates (observe before lifting the 16-cell cap).
  8. Adoption (optional) — if the first_run property ships (plan U5), segment media_use_resolve first-run vs repeat.

Recreate in an analytics dashboard

For each tile, confirm the event/property schema, build its trend or breakdown, then add it to a dashboard. Keep names prefixed media-use: so the dashboard is greppable. Cross-surface note: because identity is shared with CLI/studio, you can also break these down by the same person across cli_command* and studio:* events.