Files
hyperframes/skills-manifest.json
miga-heygenandMiguel Ángel 3704863d96 feat(telemetry): per-tag, provenance, and failure-taxonomy properties on render events (#4004)
* feat(telemetry): add per-tag element and a-roll counts to render_complete

countElementTags's single regex scan (the ~83% of renders that get no
live probe session) is extended into scanElementTags, which returns a
per-tag breakdown and an a-roll video count alongside the same total,
all from one pass over the same script/style-stripped markup — the
total is the sum of the per-tag map by construction, so the two
properties can't drift apart. countElementTags itself is removed; it
had zero production callers after this change.

New render_complete properties: composition_element_tags ({tag: count},
raw lowercase tag names, capped at the top 50 by count with the rest
folded into an "other" key) and aroll_video_count (<video
data-aroll="true"> elements from the same scan). Both are static-scan-
only, mirroring the existing composition_element_count_source split —
the live probe-DOM path never runs this scan.

Co-Authored-By: Miguel Ángel <miguel.sierra@heygen.com>

* feat(telemetry): count HeyGen-provenance video from the same tag scan

heygenVideoCount joins arollVideoCount/byTag as a third property
derived from scanElementTags's single pass: <video
data-media-source="heygen"> elements. media-use's resolve.md now
documents that the skill stamps this attribute on a mounted video only
when the ledger record's provider is "heygen.video" (the mount itself
is always the agent's own composition edit, never written by resolve
scripts) — the ledger stays the single source of truth for provenance,
the HTML attribute is a projection of it, and no other provider value
is invented beyond this one signal.

Co-Authored-By: Miguel Ángel <miguel.sierra@heygen.com>

* feat(telemetry): add a bucketable failure taxonomy to render_error

error_name (error.name, e.g. one of the ~20 typed producer error
classes) and failed_stage_code (job.currentStage/failedStage
normalized to a stable snake_case code via normalizeStageCode)
join the existing free-text error_message/failed_stage, so a fleet
query can bucket failures without parsing prose. Error-conditional by
nature — render_complete has no equivalent, since a successful render
has no error to name or stage to blame.

Co-Authored-By: Miguel Ángel <miguel.sierra@heygen.com>

---------

Co-authored-by: Miguel Ángel <miguel.sierra@heygen.com>
2026-09-16 12:37:57 -04:00

86 lines
1.7 KiB
JSON

{
"source": "heygen-com/hyperframes",
"skills": {
"embedded-captions": {
"hash": "4023b0b051ba1e75",
"files": 142
},
"faceless-explainer": {
"hash": "7ff529b85f588ffc",
"files": 24
},
"figma": {
"hash": "642cce1b5e211182",
"files": 2
},
"general-video": {
"hash": "ab15530f09bec21c",
"files": 4
},
"hyperframes": {
"hash": "d0a114a8f894758e",
"files": 26
},
"hyperframes-animation": {
"hash": "3947516ec450f3aa",
"files": 121
},
"hyperframes-audio": {
"hash": "b39bac771e873eae",
"files": 7
},
"hyperframes-cli": {
"hash": "3fa1be752aac3ae8",
"files": 11
},
"hyperframes-core": {
"hash": "dffc4485ca8cff24",
"files": 11
},
"hyperframes-creative": {
"hash": "7b6b7a78102da71b",
"files": 78
},
"hyperframes-keyframes": {
"hash": "6bc62531ecea9a52",
"files": 3
},
"hyperframes-registry": {
"hash": "51e6dba95a8dfb45",
"files": 12
},
"media-use": {
"hash": "4531919cdbda573e",
"files": 158
},
"motion-graphics": {
"hash": "32641ae2b94c4a8f",
"files": 23
},
"music-to-video": {
"hash": "8feb5e48038f49bc",
"files": 132
},
"pr-to-video": {
"hash": "bbb3db51176b7e44",
"files": 30
},
"product-launch-video": {
"hash": "d87f7ae140e88403",
"files": 30
},
"remotion-to-hyperframes": {
"hash": "13ade041e6416e5b",
"files": 70
},
"slideshow": {
"hash": "71174bff2d869f18",
"files": 2
},
"talking-head-recut": {
"hash": "7018bf017e8606d2",
"files": 28
}
}
}