外掛安裝: 在執行設定或更新指令之前,當此技能位於 HyperFrames 外掛程式中時,請遵循外掛執行規則。獨立安裝則保留下面的更新說明。
首先,保持此技能處於最新狀態 — 在使用前與使用者確認是否執行:
npx hyperframes skills update product-launch-video。當一切皆為最新時,這是一個快速的空操作;否則,它會在使用前更新此技能及其依賴的核心領域技能。
媒體使用 (media-use): 在獲取音訊/圖片/標誌之前,請呼叫
/media-use從 HeyGen 目錄解析 BGM/SFX/圖片,並從官方來源解析品牌標誌。先執行--adopt以註冊現有資產。詳見/media-use技能。
Figma 來源: 如果來源是一個 figma.com 網址,請先執行
/figma— 如果需要,進行資產匯出、品牌令牌和元件/故事板重建 — 然後根據其輸出建立此工作流程。不要直接透過原始的 MCP 工具驅動 Figma:這會跳過 SVG 清理、.media/manifest.jsonl溯源以及品牌令牌var()綁定,因此後續的品牌變更若無完整的重新匯入將無法傳播。
產品發布到 HyperFrames
使用此技能來捕捉產品、了解其品牌、規劃發布影片,並在 HyperFrames 中逐格建構影片。
入口是
/hyperframes。你是協調者。執行每個步驟,驗證其閘道,然後才繼續下一步。此技能適用於正在行銷、推出、推廣或揭露的產品,包括像是「為我們的網站製作宣傳片」這類請求,前提是其目的是推廣性質。網站導覽/展示需求也保留在此:BRIEF.md承載著「按原樣展示」的意圖,而擷取的螢幕截圖將成為影片展示的資產。任何其他意圖、單純的「製作一個影片」或任何不確定性 → 請先閱讀/hyperframes— 意圖層擁有每個路線的決策權,並且在沒有BRIEF.md的情況下新建立的創作無論如何都會經過它(設定的開場規則)。
你是協調者。在 videos/<project>/ 中工作。按順序執行步驟,並在繼續之前通過每個閘道。使用者閘道步驟為步驟 0、步驟 3 和步驟 6。在步驟 0 之前閱讀 ../hyperframes/references/brief-contract.md — 它定義了閘道類型以及 BRIEF.md 的 flow/storyboard 如何衍生出管理模式步驟 3/4/6 閘道的模式。除了步驟 5 你會為每個影格分派一個子代理程式之外,請親自執行每個步驟。不要在此處放置設計或動畫規則;那些規則存在於影格工作者子代理程式、此技能的本地 ../hyperframes-animation/rules/ + ../hyperframes-animation/blueprints/ 以及 hyperframes-creative 中。
工作流程:步驟 0 設定 -> hyperframes.json;步驟 1 擷取 -> capture/;步驟 2 設計系統 -> frame.md;步驟 3 分鏡腳本/腳本 -> STORYBOARD.md 和 SCRIPT.md;步驟 3.1 音訊 -> audio_meta.json;步驟 4 視覺設計 -> 已豐富的 STORYBOARD.md;步驟 5 影格 -> compositions/frames/NN-*.html 和 index.html;步驟 6 最終渲染 -> renders/video.mp4。
步驟 0:設定
目標:以已確認的簡報進入,建立 HyperFrames 專案,並使簡報持久化。
簡報是由意圖層確認的,而不是在此處發問確認。 開場規則,按順序: (1) BRIEF.md 存在 → 讀取它並且不發問 — 簡報已確定,其 flow/storyboard 衍生出模式(簡報合約 § 1)。 (2) 沒有 BRIEF.md 但專案存在(磁碟上有 hyperframes.json / STORYBOARD.md)→ 從分鏡腳本的前置設定和記錄的偏好設定繼續;永遠不要重新詢問一個已部分建置的專案。 (3) 兩者皆無 — 一個直接到達此處的新建立請求 → 讀取 /hyperframes 並執行其意圖層(references/intent-interview.md):它會檢查配方和記住的預設值,進行此路線的問題(../hyperframes/references/routes/product-launch-video.md),並交回鎖定的簡報。編輯請求跳過這一切 — 直接進行編輯。
僅在 hyperframes.json 缺失時進行初始化。從品牌或網域中以 kebab-case 命名 <project>,例如 acme-promo;永遠不要使用工作區名稱或時間戳記。
npx hyperframes init "videos/<project>" --non-interactive --example=blank --skill=product-launch-video — init 會根據 GitHub 上的最新版本檢查已安裝的技能,並在有任何過期時更新全域集合。
初始化後,讓 <PROJECT_ROOT> 為 videos/<project>,並將每個後續的相對路徑指令以此目錄作為其工作目錄來執行。在下面的指令中,. 表示 <PROJECT_ROOT>;永遠不要將 .media、capture 或輸出檔案寫入呼叫者目錄。
在 init 之後立即寫入 BRIEF.md(永遠不要在此之前 — init 拒絕非空目錄):意圖層鎖定的簡報,形狀根據 ../hyperframes/references/brief-format.md。將 <MEDIA_DIR> 解析為已安裝的 /media-use 技能目錄。然後使用 node <MEDIA_DIR>/scripts/prefs.mjs record --hyperframes . 記錄每個偏好支援的答案(brief-format.md 命名了子集)。如果意圖層採用了配方,則執行 node <MEDIA_DIR>/scripts/recipe.mjs use --hyperframes . --name <name>;它會將其 frame.md 複製到專案中(然後跳過步驟 2)並返回步驟 3 草稿依據的基本框架。配方填寫答案,而不是核准;審查閘道仍然會執行。
在繼續進行設定之前顯示登入狀態 — 執行 npx hyperframes auth status 並逐字轉述其輸出。它會報告語音/BGM 將使用 HeyGen 還是本地引擎,以及當未登入時如何登入。注意退出代碼合約:auth status 在未登入時退出代碼為 1(以及當儲存的憑證被拒絕時) — 該非零退出是正常的未登入狀態,不是指令失敗,因此不要將其視為錯誤,不要重試它,也不要將其與 &&/set -e 鏈接在一起,以免中止工作流程。套用一個分支:
- 協作式: 等待使用者登入或明確選擇
offline/go。 - 自主式: 說明狀態並繼續通過可用的本地引擎。
當沒有離線提供者時,不要默默地省略必要的能力;應突出阻礙。不要將此決定併入另一個問題或將金鑰寫入每個儲存庫的 .env。身份驗證所有權和離線降級:/media-use references/setup-providers.md § 提供者。
閘道: hyperframes.json 和 BRIEF.md 存在;偏好支援的答案已被記錄(簡報合約 § 2);登入狀態已顯示(已登入,或繼續離線)。
步驟 1:擷取資產
目標:收集影片的來源素材、品牌訊號和可用資產。
分類輸入並選擇路徑。明確的 URL -> 擷取它並使用網站進行旁白和資產。貼上的腳本/簡報 -> 將其逐字儲存為 user_script.txt;VO_MODE(逐字或重構)來自 BRIEF.md — 意圖層在腳本到達時會詢問它(僅在簡報以某種方式缺少它時在此處詢問一次)。然後解決擷取目標:文字中的 URL -> 使用它;僅品牌名稱 -> WebSearch,在一行中確認 URL,然後爬取;沒有 URL/網站(或簡報說不要抓取) -> 無擷取路徑。
使用以下命令執行擷取:npx hyperframes capture "<URL>" -o ./capture --json。保持默認的導航後預算,除非呼叫者擁有更小的截止日期;然後傳遞一個正數的 --capture-budget <milliseconds>,為下游工作留出時間。--timeout 僅控制頁面導航。僅在有意停用可選的圖片說明時使用 --skip-vision。
立即檢查指令結果和輸出目錄。非零退出、JSON ok: false 或 capture/BLOCKED.md 對於擷取路徑來說是一個硬性停止:報告記錄的原因,並且不要消費部分的螢幕截圖、DOM、令牌或資產。在 URL 擷取失敗後,不要製造合成式的無擷取降級方案。僅當原始簡報提供了來源素材,或者使用者在失敗後明確切換到提供的螢幕截圖或簡報時,才繼續通過無擷取路徑。
諸如「文字內容非常少」之類的警告加上空的資產目錄,並不能證明頁面可用。對於網站導覽或「按原樣展示」的簡報,需要可信的已擷取結構或提供的螢幕截圖;如果兩者都不存在,則停止。不要僅僅因為擷取不可用就發明或重建頁面。
對於網站導覽或「按原樣展示」的簡報,擷取的頁面是視覺上的真相來源。使用真實的螢幕截圖,而不是在 HTML 中重建整個網站。如果畫面需要內部移動,則將螢幕截圖作為基礎,並在測量好的位置疊加真實的擷取資產,或者僅重建移動的那一個元件。對於滾動截圖,在 capture/screenshots/full-page.png 上對視口進行動畫 — 這是整個文件的 1 倍畫板,對於在其上向下移動的 1920 寬度視口是像素精確的。當頁面太高無法一次擷取時,它會不存在;請改為使用同一目錄中重疊的滾動位置截圖。超出 1:1 放大希望使用該區域本身的 2 倍擷取,因為畫板沒有超過 1 倍的餘量。僅在使用者明確要求風格化解釋時才重建整個頁面;不可用的擷取單獨並不構成授權。
如果存在 GEMINI_API_KEY、GOOGLE_API_KEY 或 OpenRouter 金鑰,擷取會自動為資產添加說明到 capture/extracted/asset-descriptions.md。這不是審查閘道。沒有視覺金鑰,請使用 DOM 上下文並繼續。
無擷取路徑:手動建立 capture/extracted/tokens.json、capture/extracted/visible-text.txt、capture/extracted/asset-descriptions.md 和 capture/assets/。tokens.json 應為 { "title": "", "description": "", "colors": [], "fonts": [] };盡可能從簡報中填寫標題/描述。visible-text.txt 包含完整的簡報或腳本。除非使用者提供了資產註記,否則 asset-descriptions.md 應說明未擷取任何資產。
閘道: 擷取 JSON 報告 ok: true;capture/BLOCKED.md 不存在;capture/extracted/tokens.json、capture/extracted/visible-text.txt、capture/extracted/asset-descriptions.md 和 capture/assets/ 存在;並且你能用一句清晰的話說明品牌。將 asset-descriptions.md 視為主要資產清單。如果在實際擷取後它缺失,則停止並報告擷取不完整。僅在此結構性閘道仍然通過時,關於降級可選階段的警告才是可接受的。
步驟 2:設計系統
目標:選擇一個隨附的影格預設;一個腳本將其轉換為此影片的 frame.md + 字幕樣式。
當 BRIEF.md 指定了 style_preset — 使用者在意圖層透過展示預覽親眼挑選的 — 則使用它;僅在簡報中未指定時,判斷決定權才在你。然後你做出這一個決定 — 哪個預設:閱讀 ../hyperframes-creative/references/design-spec.md,並選擇外觀最符合品牌和簡報的預設。然後執行:
node <SKILL_DIR>/scripts/build-frame.mjs --preset <name> --hyperframes .
該腳本確定性地完成其餘工作:複製預設的 FRAME.md → frame.md 並重新混合到 capture/extracted/tokens.json 中的品牌令牌上(品牌顏色按其角色(墨色、畫布、強調色)映射到預設的顏色鍵上,保留鍵/結構/元件;預設的顯示+正文字體替換為品牌的),將預設的字幕樣式複製到 .hyperframes/caption-skin.html,並自我驗證(在映射中斷時退出代碼為 1)。一旦它退出代碼為 0,就繼續下一步 — 不要手動編輯規格。
tokens.json 沒有品牌顏色/字體(例如,未擷取)→ 腳本保留預設自己的調色板,這是一個完整的可出貨設計。如果簡報指定了擷取遺漏的品牌顏色/字體,請在執行前將它們新增到 capture/extracted/tokens.json(或使用使用者的 design.md 來填充它);僅在映射確實需要時,之後才手動調整 frame.md。
閘道: build-frame.mjs 退出代碼為 0 — frame.md 來自一個已命名的預設,並且(當預設隨附一個時).hyperframes/caption-skin.html 作為字幕樣式來源存在;所選預設已被記錄為偏好設定(--key style_preset --workflow <this workflow>,簡報合約 § 2)。
步驟 3:分鏡腳本和腳本
目標:將簡報和擷取的素材轉化為已核准的逐影格故事計劃。
閱讀 ../hyperframes-creative/references/story-spine.md(鉤子語言、價值先於證據、作為提案的分鏡腳本、可追溯來源的視覺效果)、references/story-design.md、../hyperframes-animation/blueprints-index.md、../hyperframes/references/storyboard-format.md 和 ../hyperframes/references/script-format.md。使用它們來撰寫 STORYBOARD.md,並在需要旁白時撰寫 SCRIPT.md。將前置設定中的 duration: 設定為來自簡報的 length — 一個粗略的期望;組裝報告會說明最終剪輯與其相比的結果。
使用 story-design.md 作為故事藍圖、鉤子、說服邏輯、節拍、VO_MODE 和資產選擇。作為一個軟性指南,查閱 ../hyperframes-animation/blueprints-index.md 中的角色→藍圖選單:對於每個節拍,當一個節拍符合時,記下一個候選藍圖 ID。故事的真相仍然決定哪些節拍存在 — 永遠不要強迫一個節拍去符合一個藍圖,也永遠不要僅僅因為一個經過驗證的形狀可用就發明一個節拍。從 capture/extracted/asset-descriptions.md(規範清單)中選擇每個視覺影格的 asset_candidates — 不要瀏覽原始的 capture/assets/。除非該清單缺失或不可用,否則不要要求使用者選擇資產。使用來自分鏡腳本和腳本參考的所需確切欄位。
草擬後,執行審查循環的計劃階段 — ../hyperframes/references/review-loop.md § 1:將計劃作為提案呈現,並詢問兩個問題 — 批准或更改,以及是否先畫草圖(建議)或跳過。回饋以聊天回覆的形式到達;循環直到批准。這是一個檢查點閘道(簡報合約 § 1):在自主模式下(如果啟用)…