changelog-video

changelog-video

熱門

將每週的 changelog .md 轉換為完成的品牌 changelog 影片(方形 1080,約 45-60 秒,Annie 配音,動畫品牌背景,模擬 UI 視覺化,低調字幕)。當使用者提供 changelog/摘要 markdown 並想要每週影片,或說「changelog 影片」時使用。自包含——字型、背景、詞彙表和腳本都隨此技能提供。

3.6萬星標
3412分支
更新於 2026/7/19
SKILL.md
readonlyread-only
name
changelog-video
description

將每週的 changelog .md 轉換為完成的品牌 changelog 影片(方形 1080,約 45-60 秒,Annie 配音,動畫品牌背景,模擬 UI 視覺化,低調字幕)。當使用者提供 changelog/摘要 markdown 並想要每週影片,或說「changelog 影片」時使用。自包含——字型、背景、詞彙表和腳本都隨此技能提供。

Changelog → 品牌影片

輸入:一個 changelog .md(主題 + 項目,例如每週 HyperFrames 摘要)。
輸出:一個 lint 乾淨、seam-gate 綠燈的 HyperFrames 專案,位於
projects/active/weekly-changelog-<range>/。僅在要求時才渲染。

首先載入,不可協商: motion-doctrine(+ cut-the-curve
oversized-cursor(如果出現游標)、seam-craft)和 captions-overlay
此技能提供 changelog 專用管線;doctrine 提供運動法則。

首要原則:視覺化,不要列舉

每個主題都透過實際 UI 的動畫模擬或忠實類比來展示體驗的變化——絕不使用文字項目符號。
在撰寫腳本之前,將每個主題/項目路由到 references/visualization-registry.md
註冊表決定 ui-recreate / ui-analog / terminal / checklist。
文字 checklist 是最後手段,僅保留給真正非視覺的項目(可靠性修復清單)。

管線

1 · 解析 + 編輯剪裁

  • 提取:週範圍、重點統計(版本數、提交數)、主題、項目。
  • 預算:總長 45-60 秒。 標題 ≤2 秒,片尾 ≤3.5 秒,4 個主題各約 9-12 秒。
  • 每個主題保留一個主要視覺化 + 最多 3 個口語項目。
    其他所有內容僅作為片尾的「完整摘要」指標存在。剪裁是關鍵:
    一個有 30 個項目的 changelog 仍然只產生 ≤14 個口語節拍。
  • 按故事順序排列主題:主打功能 → 產品表面 → 效能 →
    可靠性(摘要通常已經這樣排列)。

2 · 視覺化路由

對於每個主題,從 references/visualization-registry.md 中選擇表面,
並寫一行:theme → surface → 模擬執行的 2-4 個序列動作,每個動作對應一個腳本短語
如果沒有註冊表表面符合且沒有忠實類比,則為 checklist 場景——不要為我們無法誠實呈現的內容發明假 UI。

3 · 雙層腳本(口語 vs 顯示)

根據 references/script-voice.md 將腳本寫成標記行
對話式語氣,每個技術術語從 references/lexicon.json 攜帶 spoken 發音形式,
display 保持標準拼寫。字幕顯示 display;配音讀取 spoken
任何不在詞彙表中的術語:停止並詢問使用者如何發音,然後將其添加到詞彙表中。
儲存為專案中的 script-tokens.json

4 · 配音 — Annie(HeyGen,固定)

# 僅口語層文字;words JSON = 口語文字的基準時間戳
# 儲存庫原生路徑:changelog-video 技能從 hyperframes 儲存庫根目錄執行,
# 因此直接使用追蹤的 hyperframes-media TTS 輔助工具(無需 `npx hyperframes
# skills` 安裝步驟)。如果您將技能複製到另一個儲存庫,請替換為
# 您自己的 media-use / hyperframes-media heygen-tts.mjs 路徑。
node skills/hyperframes-media/scripts/heygen-tts.mjs ./vo-spoken.txt \
  -o voiceover.mp3 --words vo-words.json \
  --voice 330290724a1b470fb63153f34d4c0183   # Annie — 逼真(請勿替換)

需要 heygen CLI ≥0.3.0 並已認證(heygen auth login --oauth)。
然後將口語時間戳對齊到顯示標記:

node <SKILL_DIR>/scripts/align-captions.mjs \
  --tokens script-tokens.json --words vo-words.json --out captions.json

captions.json 是字幕軌輸入(顯示拼寫,口語時間)。
對齊器會印出 MISMATCH 警告——在構建前解決每一個(通常是詞彙表中的拼寫導致 TTS 呈現為多個單詞)。音訊是時鐘:所有節拍時間來自 vo-words.json;重新生成配音會重新打開每個接縫。

5 · 構建

嚴格遵循 references/build-spec.md:品牌標記 + 字型(捆綁在
<SKILL_DIR>/assets/ 中)、動畫背景編碼、場景支架、
chrome、字幕軌、每個場景一個配額的綠色時刻。然後是 doctrine 順序:
ledger.json(所有普通接縫 cut-the-curve LEFT)→ seam-stamp →
內部節拍對齊配音單詞 → seam-gate 驗證。

6 · 關卡(全部綠燈後再呈現)

  1. bun run --cwd packages/cli hyperframes check(或從儲存庫本地
    skills/hyperframes-cli/ 技能安裝的 hyperframes CLI)—
    0 錯誤(對比:暗色文字 ≥ .66 alpha)。請勿使用
    npx hyperframes@latest;追蹤的儲存庫本地 CLI 是此技能產生的組合合約的真相來源。
  2. seam-gate.mjs verify — 0 失敗。
  3. 重新啟動預覽伺服器(它會快取 bundle),透過 __player.seek 在原始組合頁面上抽查 3-4 個節拍。
  4. 除非使用者要求,否則不要渲染。在要求的渲染之後,從 MP4 驗證幀(ffmpeg -ss <t> … -frames:v 1):字幕存在,背景影片不是黑色,沒有微小/凍結的幀。

專案佈局

projects/active/weekly-changelog-<range>/
├── index.html            # 單文件主控(場景作為幻燈片,帶有 stamped seams)
├── ledger.json           # 向量 ledger(seam-stamp 輸入)
├── script-tokens.json    # 雙層腳本(配音 + 字幕的真相來源)
├── vo-spoken.txt         # 生成:口語層,一行
├── voiceover.mp3 + vo-words.json + captions.json
├── bgm.mp3               # 從 <SKILL_DIR>/assets/bgm.mp3 複製(預設曲目),除非使用者提供
└── assets/fonts/ + assets/bg-pattern-<dur>s.mp4

反模式

不要這樣做 改這樣做
為 UI 變更使用項目符號幻燈片 模擬表面展示變更的動作
為無法呈現的項目使用假 UI 誠實的 checklist 場景
在 TTS 文字中使用純 "JSON"/"CLI" 詞彙表口語形式;顯示保持標準
在字幕中使用語音拼寫 字幕始終渲染顯示層
猜測未知術語的發音 詢問,然後擴充詞彙表
口語說出每個 changelog 項目 每個主題 ≤3 個;摘要連結承載其餘內容
到處使用綠色強調 每個場景一個綠色時刻(#5ef17c)