1实现原理 · 为什么它能做到
把整个 CLI 生命週期写成 9 步循环(scaffold → catalog 找积木 → author → lint 快反馈 → check 终门 → 子合成快照 → preview → 批准后 render → 校验输出),并规定 check 内含 lint、不许再叠一次多余 lint。
run `npx hyperframes check`; it reruns lint before opening the browser.
catalog 搜索被明确划为本地行为(无托管层、无账号、查询文本不外发),并把「用英文查询」「读 tier 字段而不是靠结果出现来猜」写成纪律。
Search is entirely local: there is no hosted tier, no account, and the query text is never sent anywhere.
check 的判定语义被明确定义:持久性发现才决定退出码,进出场类的瞬时发现只作信息;需要更严时用 --strict。
Persistent findings gate the exit code; transient entrance or exit findings are informational.
渲染分四路(本地 / HeyGen 托管云 / 自管 AWS Lambda / 自管 GCP Cloud Run),并给出选择准则与「先读 reference 再跑」的强制要求。
Use cloud rendering when the user wants hosted rendering without local Chrome, FFmpeg, or AWS.
读时间线优先用 `timeline --json` 而不是逐个读 HTML——嵌套行带主时间线的绝对 absStart/absEnd 与所属文件,比手读 index.html 更省 token 也更准。
run `npx hyperframes timeline --json` instead of reading `index.html` and every sub-composition file
反馈是流程的一等公民且有伦理条款:成功后发一条、公开渠道必须脱敏、按评分视情况附带 COMPOSITION_STRUCTURE 隐私包、`--file-issue` 需要用户同意才公开最小复现。
**Feedback is submitted to a public channel — anonymize before sending.**
doctor 的 JSON 模式永远 exit 0(表示「诊断跑完了」而非「环境没问题」),因此必须 gate 它的 payload。
`doctor --json` always exits zero. Gate on its payload:
文档自身标出「不该跑的命令」:events 是给 skill 自报调用的遥测端点(不是读遥测的入口),validate/inspect/layout 是弃用别名,只有 check 被维护。
Two entries in `hyperframes --help` are not part of the authoring loop, and reaching for them wastes a turn
把「读对应 reference 再跑命令」定为硬契约,而不是背景阅读:11 个命令域各有归属文件,另有跨 skill 的强制引用(sub-composition/motion/keyframes/audio/media-use)。
The following references and owning skills are mandatory command contracts, not optional background reading.
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | 官方 npx hyperframes CLI(本 skill 覆盖的全部子命令面;要求 Node 22+ 与 FFmpeg) |
| api | HeyGen 托管云渲染 API(zip 直传 S3 → 提交渲染 → 轮询 → 下载签名 URL;按 credit 计费) |
| cli | AWS(Lambda 自管分布式渲染:SAM 部署 Lambda + Step Functions + S3 + IAM) |
| cli | GCP(Cloud Run + Workflows + Cloud Storage,靠 gcloud 与 Terraform 部署) |
| api | npm registry(upgrade --check 比对已装版本与 npm latest;npx 首次拉取官方包) |
| network | 官方站点/文档(catalog 搜索说明页;SKILL.md 直接引用) |
| network | GitHub(init 时对着 GitHub 检查并更新已装 skill;registry 条目与 skills 自刷新) |
| package | 可选的 on-device 语义检索索引(量化 ONNX 模型 + catalog 向量,需用户同意后下载并缓存在本机) |
| cli | ffprobe(渲染后对账:时长/帧率 vs 根 data-duration) |
4风险提醒 风险提醒:橙色 · 评估后使用
- 项目素材出网与计费 — cloud render 会把项目 zip 上传到 HeyGen(200MB 上限,按 credit 计费),publish 则把源码上传换托管 URL。使用前应确认哪些资产可以出网;大文件只按 .hyperframesignore 的审计流程排除,绝不仅因体积大就忽略。
- 公开渠道反馈与公开复现 — feedback 提交到公开渠道,--file-issue 还会把最小复现发布到公开 URL。文档虽给了脱敏规范,但这一步是否真的脱敏取决于执行者;含客户数据/私有 URL 的项目应先自查。
- 远端 registry 条目进入可执行管线 — add 会把官方 registry 的 block/component HTML 落进项目并作为 composition 运行,属供应链信任面;若使用自定义 registry 源则风险更高。
- 凭证落在共享位置 — ~/.heygen/credentials 与 heygen CLI 共用(0600);AWS 侧用 AWS_PROFILE,意味着本 skill 的云命令会以用户既有云身份执行部署(会创建 Lambda/Cloud Run/S3 等真实资源)。
- 平台前提与「无脚本」的双面性 — 全流程要求 Node 22+ 与 FFmpeg,渲染依赖本地 Chrome(或在云端另付额度);本 skill 自身无代码,故所有实际行为(含其隐私与安全表述)都以官方 CLI 的实现为准,本报告只能对声明面取证。
5第二遍独立确认
- [ok] 凭证读取是否真发生在该 skill 目录内(橙档判定关键) — 目录内无任何代码(11 个文件全 md),故严格意义上「读取」由官方 CLI 执行;橙档依据是**声明面**:cloud.md 明写凭证解析顺序 HEYGEN_API_KEY → HYPERFRAMES_API_KEY → ~/.heygen/credentials,SKILL.md 又把 auth/cloud/lambda/cloudrun/publish/feedback 列为本 skill 统领的命令。与同批 hyperframes-cli 之外的 figma(FIGMA_TOKEN)保持同一口径,并在 reason 里注明执行主体。
- [ok] SKILL.md 里的 hyperframes.heygen.com 链接是不是被当作端点调用 — 该 URL 出自「Search the catalog before writing motion by hand」段落,是 catalog 搜索的**说明页引用**(句末带句点,形如文档链接),不是命令参数;同段明确写搜索本身 entirely local、查询文本 never sent anywhere。故按范式归为文档引用,不计入外发面。
- [ok] 云上传是否真是「用户素材出网 + 消耗额度」,且是否有幂等风险提示 — cloud.md 的渲染流水线写明 zip → 直传 S3 → POST /v3/hyperframes/renders → 轮询 → 下载,并直说「you pay per credit」;同文另给安全重试条款:zip 上传非幂等,盲重试会重复计费,故须 --idempotency-key。声明与风险提示齐备,未夸大。
- [ok] feedback / telemetry 的隐私表述是否有反例 — preview-render.md 有专门的脱敏段落(剥离绝对路径、机器标识、密钥,保留 HF_*/PRODUCER_* 变量原名),并给 COMPOSITION_STRUCTURE 的「无路径/无 src URL/无用户文本」定义;upgrade-info-misc.md 说明 telemetry 指纹只做存在性探测、从不读环境变量取值,且提供 telemetry disable 与 HYPERFRAMES_NO_TELEMETRY。未发现与声明矛盾之处。
- [unlocatable] 是否漏网的高危行为(关沙箱/TLS 降级/绕过检测) — 对 keywords(sandbox / danger / no-verify / AutomationControlled / NODE_TLS / rejectUnauthorized)做全目录扫描均无命中;但本 skill 不含代码,真实执行细节在 packages/cli 内、不属于本 skill 目录,故只能声明「本目录未出现」,不能替 CLI 整体背书。
6结论
9d841064257cece2…d2f0bc7f34