Repository navigation
feat(skills): every published skill reports its own run - #7176
Merged
Merged
Conversation
`hyperframes events --skill=<name>` exists so a skill can say it ran, but only reverse-any-video and figma asked the agent to call it, so the other skills' use was invisible. Each of the nine published skills now opens with a one-line usage beacon naming itself. The line says what it sends (the skill's name only) and that the telemetry opt-out applies. The router's `init` line also passes `--skill=hyperframes`, so renders of new projects carry the skill. check-core-skills fails a core skill that lacks its own beacon; each core skill's size budget grows by 192 B for the line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # skills-manifest.json
# Conflicts: # skills-manifest.json
Contributor
There was a problem hiding this comment.
Verdict: REQUEST CHANGES · 1 blocker · 0 important · 0 nits
The beacon line understates what is sent, and the same sentence appears in all nine skills. The mechanics (lint rule, reverse-any-video start beacon de-duplicated, budgets) look right. ↓ inline
The test plan line "arrived as one event carrying only the skill name" should be corrected the same way.
— Genesis
…etry The beacon line said it sends only the skill's name. The events command uses the CLI's normal telemetry, which also carries machine details, the install id and, when signed in, the account. The line now says so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
michaelwang11394
enabled auto-merge
November 4, 2026 23:19
4 of 5 tasks
SanHsien
added a commit
to SanHsien/hyperframes
that referenced
this pull request
Nov 5, 2026
Ports: heygen-com#7165 (font preflight and system TTC names), heygen-com#7166 (font shorthand var(), weight-suffixed names, linked font sheets), heygen-com#7168 (render lock and --wait, effect-scan/session watchdog without the heygen-com#7104 retry, font_face_local_only lint), heygen-com#6972, heygen-com#7183 (adapted), heygen-com#7184; docs heygen-com#7132, heygen-com#7196; prerequisites heygen-com#6665, heygen-com#6697, heygen-com#6716 (cache-dir helper only). Deferred heygen-com#7182, heygen-com#7176. Package size budgets follow upstream's heygen-com#7168 increments. Watermarks: commit 15b1de4, PR 7189; monitored 92. Co-authored-by: Miguel Ángel <miguel.sierra@heygen.com> Co-authored-by: WaterrrForever <miao.yang@heygen.com> Co-authored-by: Ular Kimsanov <ularkimsanov7@gmail.com> Co-authored-by: James Russo <james.russo@heygen.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WaterrrForever
added a commit
that referenced
this pull request
Nov 9, 2026
… work Review on the first cut: `skill_invoked` from the commands doubled the #7176 beacon's single observation, and it fired before any work. - `reverse start` and `templates pull` send `skill_command_ran`, not `skill_invoked`; the beacon is back to its #7176 shape. - `reverse start` sends it after the probe, with `signed_in` and the reverse `session_id` that keys a retry; a video it cannot probe sends nothing. - `templates pull` sends it only when it downloads; a re-pull or a refused pull sends nothing. - A skills check that finds no install forgets the installed names. - `auth status` failures carry only a code, never the auth error's text.
rudycelekli
pushed a commit
to rudycelekli/hyperframes
that referenced
this pull request
Nov 9, 2026
…which skills are installed (heygen-com#7444) * feat(cli): reverse and templates report their own runs; commands say which skills are installed Gaps in what skill telemetry can answer for /reverse-any-video and /style-sampling: - The skill's beacon fires only when the agent runs it, and agents often skip it. `reverse start` and `templates pull` now send `skill_invoked` with `source: command`; beacons carry `source: beacon`. A person counts once. - style-sampling renders were never tagged. A pull marks the project the episode is built in (only a folder that is already a project). - Installs of an on-demand skill were invisible. `cli_command` carries `skills_installed` and `skills_outdated`, the names from the cached background skills check, so "never triggered" and "not installed" can be told apart. - `auth status` signed out exits 1 with a bare "Command failed", which reads like a login failure. It now carries `NotSignedIn`, and an auth error its own cause. And a step that gets lost: a reverse started signed out often goes on without ever trying to sign in. `reverse start` signed out now prints `login_command` and a `next` line in the JSON the agent reads, not only in the skill's reference. * refactor(cli): keep comment share at the base in the reverse telemetry files * fix(cli): command runs get their own event, counted once per piece of work Review on the first cut: `skill_invoked` from the commands doubled the heygen-com#7176 beacon's single observation, and it fired before any work. - `reverse start` and `templates pull` send `skill_command_ran`, not `skill_invoked`; the beacon is back to its heygen-com#7176 shape. - `reverse start` sends it after the probe, with `signed_in` and the reverse `session_id` that keys a retry; a video it cannot probe sends nothing. - `templates pull` sends it only when it downloads; a re-pull or a refused pull sends nothing. - A skills check that finds no install forgets the installed names. - `auth status` failures carry only a code, never the auth error's text.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Every published skill now opens with a one-line usage beacon that names itself, for example:
The
hyperframesrouter'sinitline also passes--skill=hyperframes, so renders of new projects carry the skill name.check-core-skillsnow fails any core skill whoseSKILL.mdlacks its own beacon.Why
hyperframes eventsexists so a skill can report that it ran. Onlyreverse-any-videoandfigmaever asked the agent to call it, so the other seven skills' use was invisible. Without it, we can't tell which skills people rely on.How
SKILL.mdfiles. The line states what is sent, so anyone reading the skill can see it.reverse-any-videonow sends its start beacon fromSKILL.md, andreferences/start.mdkeeps only the completion beacon. This avoids counting the start twice.scripts/check-core-skills.mjsrecords why.skills-manifest.jsonis regenerated.eventscommand itself is unchanged. It uses the CLI's existing anonymous telemetry, soDO_NOT_TRACK=1,HYPERFRAMES_NO_TELEMETRY=1andhyperframes telemetry disableall turn it off, and it always exits 0.Related work
The checkout-link PR stacks on this one.
Test plan
node scripts/check-core-skills.mjsandnode --test scripts/check-core-skills.test.mjspass. A new case checks that a skill without its own beacon fails.tsx scripts/lint-skills.tsandgen-skills-manifest --checkpass.vitestforcoreSkillContent,figma/skillContent,eventsandskillsManifest: 78 pass.events --skill=media-useand--event=skill_completed --outcome=successeach arrived as one event, carrying the skill name alongside the CLI's usual telemetry fields. The same call withDO_NOT_TRACK=1sent nothing.--skill=media-usewith the first wording, and--skill=slideshowwith the wording before the review fix. The fix only changes the sentence that describes what is sent.🤖 Generated with Claude Code