Repository navigation
docs(cli): pin npx in unattended runs and verify the render - #7467
Open
IceCoooola wants to merge 3 commits into
Open
IceCoooola wants to merge 3 commits into
IceCoooola wants to merge 3 commits into
Conversation
Preview approval requiredThis pull request comes from a fork, so Mintlify won't build a preview until someone with write access approves commit |
In a job with no TTY nothing prompts: the CLI exits 2 and names `--yes`, and `npx` skips its own "Ok to proceed?" whenever stdin is not a terminal or CI is detected. What an unversioned `npx hyperframes` still does is fetch the latest release on every cold cache, so two jobs that start together can collide in npm's cache (`_cacache` for the fetch, `_npx` for the install: EEXIST / ENOTEMPTY, a retry succeeds), and a new release silently changes what the same command renders. The hyperframes-cli skill now routes no-TTY jobs to the project's scaffolded `npm run` scripts (each already `npx --yes hyperframes@X.Y.Z`) or a pinned `npx --yes`, never bare `npx hyperframes`, and the loop's render step checks `data-width`/`data-height` as well as `data-duration`. The new references/unattended.md holds the detail and says why interactive flows (`update`, reverse-any-video) float to `@latest` while unattended jobs pin. The CLI reference page gets the matching paragraph. The SKILL.md budget goes up 256 B per the file's +N-comment pattern, and skills-manifest.json is regenerated.
IceCoooola
force-pushed
the
docs/unattended-npx-skill
branch
from
November 13, 2026 19:34
337aa38 to
e6e0f47
Compare
miguel-heygen
approved these changes
Nov 14, 2026
miguel-heygen
enabled auto-merge
November 14, 2026 05:47
This branch has not been deployed
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
Teaches the
hyperframes-cliskill (and the matching CLI reference page) how to invoke the CLI in jobs with no TTY: run the scaffoldednpm runscripts or a pinnednpx --yes hyperframes@X.Y.Z, never barenpx hyperframes, and verify the render's dimensions and duration before publishing.Why
SKILL.mdsays "runnpx hyperframes <command>" but says nothing about scripts, CI or scheduled jobs. In a job with no TTY nothing prompts — npm skips itsOk to proceed?whenever stdin is not a terminal or CI is detected — but an unversionednpx hyperframesstill fetches the latest release on every cold cache: two jobs that start together can collide in npm's cache (_cacachefor the fetch,_npxfor the install:EEXIST/ENOTEMPTY, a retry succeeds), and a new release silently changes what the same command renders.Related work
Fixes #7451. Related: #6617 (the CLI never prompts when nobody is at the terminal — that covers the CLI's own prompts; this covers what
npxdoes before the CLI starts).How
skills/hyperframes-cli/SKILL.md: one sentence on the existing wrapper line routes no-TTY jobs to the wrapper or a pinnednpx --yes; the loop's render step now also checksdata-width/data-height, so verification lives once.skills/hyperframes-cli/references/unattended.md(new): why barenpxinstalls on every cold cache and what collides, the three recipes (scaffoldednpm runscripts, pinnednpx --yes, installed binary), and why interactive flows float to@latestwhile unattended jobs pin.docs/packages/cli.mdx: the matching account for users, next to "Unattended runs never prompt".scripts/check-core-skills.mjs:hyperframes-cliSKILL.md budget 7616 → 7872 B (+256 for the pointer, the file's+N-comment pattern).skills-manifest.json: regenerated (deterministic per-skill content hash; onlyhyperframes-clichanged, 13 → 14 files).Test plan
node scripts/check-core-skills.mjs— within budget; commands and paths resolve (SKILL.md 7806 of 7872 B).node --test scripts/check-core-skills.test.mjs— 12/12 pass.node scripts/check-skill-mirror.mjs—.claude/skills/.agents/skillsstill byte-identical.Manifest reproduced byte-for-byte with a standalone script (bun not installed in this checkout); CI's
gen-skills-manifest --checkis the authoritative gate.Unit tests added/updated
Manual testing performed
Documentation updated (if applicable)
Comments follow CONTRIBUTING.md "Comments": they say why, not what, and a bug fix says what the code must do and how to reproduce the bug