Communitygithub.com

Drama2557/4RealDigital-Video-Studio

將每週更新紀錄 .md 轉換為完成品牌化的更新紀錄影片(方形 1080p,約 45-60 秒,Annie 語音配音,動畫品牌背景,模擬 UI 可視化,低調字幕)。當使用者提供更新紀錄/摘要 markdown 並要求每週影片,或說「changelog video」時使用。自給自足——字型、背景、詞彙庫與腳本皆內建於此技能中。

4RealDigital-Video-Studio 是什麼?

此 AI 代理技能可將每週的更新紀錄(.md 格式,例如 HyperFrames 的每週摘要)自動轉換為一支具有品牌風格的方形影片(1080x1080,約 45-60 秒)。它產出一個符合規範的 HyperFrames 專案,存放在 `projects/active/weekly-changelog-<range>/` 目錄下,僅在使用者要求時才進行最終渲染。技能的核心設計原則是「可視化,而非條列」——每個主題都必須透過一個動畫化的 UI 模擬(實際操作的行為)來展現,絕對不使用文字條列。此技能支援 Claude Code、Codex CLI 等平台,並依賴其內建的資產(字型、背景影片、音樂)和嚴格的管線流程:從解析更新紀錄、路由可視化方式、撰寫雙層腳本(口語與顯示)、產生 Annie 語音配音(HeyGen TTS),到最終的組建與驗證。驗證程序包含六道閘門,特別是字幕的強制存在檢查,以確保成品品質。如果 HeyGen 無法提供逐字時間戳,則會自動降級使用 Whisper 強制對齊來產生字幕。

相容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/Drama2557/4RealDigital-Video-Studio/tree/HEAD/.agents/skills/changelog-video

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Changelog → 品牌影片

輸入:一份 changelog .md(主題 + 項目,例如每週 HyperFrames 摘要)。 輸出:一個 lint 乾淨、符合 seam-gate-green 標準的 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 哪一種方式。 文字檢查清單是最後的手段,僅保留給真正無法視覺化的項目(如可靠性修復列表)。

管線

0 · 從此技能的資產啟動專案——不可妥協

在撰寫任何 composition HTML 之前,務必先執行此步驟。跳過此步驟總是會產出一支看起來像你之前做過的類似專案的影片,而非此技能的品牌——這是此技能偏離品牌最常見的原因。 技能的資產、字型和 scaffold 本身就是技能;SKILL.md 提示只是路由器。

mkdir -p project/assets/fonts
cp <SKILL_DIR>/assets/fonts/*.woff2 project/assets/fonts/
cp <SKILL_DIR>/assets/bgm.mp3 project/bgm.mp3
ffmpeg -y -stream_loop 15 -i <SKILL_DIR>/assets/bg-pattern.mp4 -t <TOTAL> \
  -vf "scale=1080:1080,fps=30,eq=saturation=0.72,[email protected]:t=fill" \
  -an -c:v libx264 -crf 20 -pix_fmt yuv420p project/assets/bg-pattern-<TOTAL>s.mp4
cp <SKILL_DIR>/examples/master-skeleton.html project/index.html

然後從頭到尾閱讀 references/build-spec.md(不可跳讀)——它定義了品牌標記(TT Norms Pro + ABC Solar Display + TT Norms Mono,奶油色 #f5f6f4,限量綠色 #5ef17c,帶綠色邊框的玻璃卡片,kicker/sec-chip 藥丸形狀,位於 top: 990 的 32px 字幕軌道),這些都會被每個場景從 scaffold 繼承。

只有然後才開始執行下面的步驟 1-6。步驟 1-4(解析、路由、腳本、語音配音)規劃要放入 scaffold 的內容;步驟 5 在已複製的 project/index.html 中填入佔位符(<RANGE>,<TOTAL>,<CUT_N>,<DUR_N>,場景主體)——你不需要改寫 scaffold 的 chrome、字型、調色板或佈局外殼。

如果你發現自己正準備對先前影片的 index.html 執行 cp,或是自行撰寫 @font-face 宣告,或是設計 WebGL shader 背景而非使用上面編碼的 bg-pattern MP4:立即停止。刪除目前的 index.html,並從 cp master-skeleton scaffold 重新開始。在正確的 scaffold 上重建場景內容,遠比將品牌改造到錯誤的 scaffold 上更省成本。

1 · 解析 + 編輯剪裁

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

2 · 可視化路由

對於每個主題,從 references/visualization-registry.md 中選取呈現表面,並撰寫一行:theme → surface → 模擬所執行的 2-4 個序列動作,每個動作都與腳本中的一句話相關聯。如果沒有任何註冊表的表面適合,且不存在忠實的類比,則將其設為檢查清單場景——不要為我們無法誠實呈現的內容憑空發明假 UI。

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

根據 references/script-voice.md 將腳本撰寫為標記行: 對話式語調,每個技術術語都要攜帶來自 references/lexicon.json 的 spoken 語音形式,而 display 則保持標準拼寫。 字幕顯示 display;語音配音朗讀 spoken。任何不在詞彙庫中的術語:立即停止並詢問使用者該術語的發音,然後將其添加到詞彙庫中。 將結果儲存為專案中的 script-tokens.json。

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

# only spoken-layer text; words JSON = ground-truth timestamps of the SPOKEN text
# Repo-native path: the changelog-video skill runs from the hyperframes repo root,
# so it uses the tracked hyperframes-media TTS helper directly (no `npx hyperframes
# skills` install step). If you've copied the skill into another repo, swap in
# your own path to the 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 — lifelike (do not substitute)

需要 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 之前,請確認 vo-words.json 非空且具有包含 start/end 的 words: [...] 陣列。如果它是空的(0 位元組)或缺少該陣列——這是當 TTS 提供者僅回傳音訊但沒有時間戳載荷時的已知失敗模式——請勿在沒有它們的情況下繼續。備案:使用本機 Whisper 對產生的音訊與顯示腳本進行強制對齊:

uvx --from openai-whisper whisper voiceover.mp3 \
  --model base.en --language en --word_timestamps True \
  --output_format json --output_dir .
# then run align-captions.mjs with --words voiceover.json (same shape)

Whisper 可能會誤聽 TTS 渲染結果(例如 "gee-sap" → "gsap","heyjen" → "hey Jen" 等)——字幕仍使用 script-tokens.json 中的 DISPLAY 拼寫;whisper 僅提供時間戳。align-captions.mjs 負責處理合併。這個備方案是「有字幕的組建」與「無聲無息的無字幕組建」之間的差異。

5 · 組建

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

字幕是非選擇性的。 master-skeleton 內建了一個讀取 LINES 陣列的字幕軌道 IIFE——將該陣列留空是一個已出貨的錯誤,而非風格選擇。在進行步驟 6 之前,請從 captions.json 中填入它:

// paste in place of "const LINES = /* … */ []" in the caption-rail IIFE:
const LINES = /* contents of captions.json */ [
  { id: 0, end: 2.74, w: [["This", 0.0], ["week,", 0.30], …] },
  …
];

如果跳過了 align-captions.mjs 或 LINES 是 [],則步驟 6 中的畫面檢查將會失敗——不要透過從 scaffold 中移除 #cap-line 來掩蓋它。

6 · 閘門(在呈現之前全部必須為綠燈)

  1. bun run --cwd packages/cli hyperframes check(或 repo 本地端 skills/hyperframes-cli/ 技能中安裝的 hyperframes CLI)——0 個錯誤(對比度:暗色文字 ≥ .66 alpha)。請不要使用 npx hyperframes@latest;追蹤的 repo 本地端 CLI 是此技能所產生的 composition 合約的真相來源。
  2. seam-gate.mjs verify——0 個失敗。
  3. 重新啟動預覽伺服器(它會快取 bundle),透過原始 comp 頁面上的 __player.seek 抽查 3-4 個節拍。
  4. 除非使用者要求,否則不要渲染。在請求渲染後,從 MP4 中驗證影格(ffmpeg -ss <t> … -frames:v 1):字幕存在,背景影片不是黑色,沒有微小/凍結的影格。
  5. 字幕存在閘門——強制失敗。 在語音配音的口語時間窗口內取樣 3-4 個影格(例如對於 48 秒的語音配音,取樣 t=3,t=15,t=30,t=42),並確認位於 top: 990 的字幕軌道在每個影格上都呈現出可見的文字。如果在某個口語間隔內的任何影格缺少字幕,則該組建會出貨無字幕的版本——將其視為紅燈,並重新檢查步驟 5 的 LINES 填入。這正是 Jul 13-20 v4 組建出錯的地方。

專案佈局

projects/active/weekly-changelog-<range>/
├── index.html            # 單文件 master(場景作為幻燈片,已蓋章接縫)
├── ledger.json           # 向量帳本(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誠實的檢查清單場景
在 TTS 文字中使用純 "JSON"/"CLI"使用詞彙庫中的口語形式;顯示層保持標準拼寫
在字幕中使用語音拼寫字幕始終呈現顯示層
猜測未知術語的發音詢問使用者,然後擴充詞彙庫
口述每個 changelog 項目每個主題最多 3 個;摘要連結承載其餘內容
到處使用綠色強調每個場景一個綠色時刻(#5ef17c)
從先前影片的 index.html 開始步驟 0——始終從此技能複製 examples/master-skeleton.html 到 project/index.html
手動製作 @font-face / WebGL shader / 自訂 BGM步驟 0——逐字複製此技能的 assets/ 目錄;技能的資產就是品牌
未執行 CloudFront 失效即交付在任何 S3 替換後,對分發 E2BSLVSZ7FG3U0 執行 aws cloudfront create-invalidation 並指定確切路徑——否則 CDN 會快取舊檔案
使用 scaffold 中空的 LINES 陣列出貨步驟 4 必須產生填入內容的 captions.json;步驟 5 必須將其貼入 IIFE;步驟 6 閘門 5 必須確認渲染影格上有字幕。空的 LINES = 無字幕出貨 = 重新執行整個流程
沒有 vo-words.json → 跳過字幕並直接出貨回退到對產生的音訊使用 whisper 強制對齊;字幕是非選擇性的

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Drama2557/4RealDigital-Video-Studio

Overlay doctrine for the embedded-captions workflow — the caption MODEL (drop / rail / embed) and the rule that captions are an OVERLAY composited on top of the film, never a reserved bottom band you shift content up to avoid. Load when adding captions/subtitles to a talking-head or launch video, when deciding whether a phrase should be dropped, ride the verbatim rail, or be promoted to a scarce embedded climax, when laying out a composition that will carry captions (do NOT reserve a keep-out band), or when centering a composition on the true frame center under captions. Quotes the rail+embed model from embedded-captions and constraint #13 (captions overlay, keep-out band retired) from the product-launch-video scene agent. Applies ON TOP of embedded-captions.

Drama2557/4RealDigital-Video-Studio

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

Drama2557/4RealDigital-Video-Studio

Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet `anchor` rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.

Drama2557/4RealDigital-Video-Studio

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

Drama2557/4RealDigital-Video-Studio

Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated motion-first unit, including an animated title. Route fresh creation through hyperframes before using this skill.

Drama2557/4RealDigital-Video-Studio

Use the HyperFrames CLI development loop: init, add, catalog, capture, lint, check, snapshot, compare, grade-compare, preview, play, present, beats, keyframes, single or batch render, publish, cloud, cloudrun, feedback, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, auth, tts, and remove-background. Also use when diagnosing build or render failures. validate, inspect, and layout are deprecated aliases; use check. Covers local, HeyGen-hosted cloud, AWS Lambda, and Google Cloud Run rendering.

Drama2557/4RealDigital-Video-Studio

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Also covers Tailwind projects and the STORYBOARD.md / SCRIPT.md plan formats. Read before writing composition HTML.

Drama2557/4RealDigital-Video-Studio

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

Drama2557/4RealDigital-Video-Studio

Install, discover, and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add or hyperframes catalog, installing one item or every block matching a tag, wiring an installed item into index.html, or working with hyperframes.json. Covers discovery, install locations, block sub-composition wiring, component snippet merging, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

Drama2557/4RealDigital-Video-Studio

Agent Media OS, the single skill for every media need in a HyperFrames project. Resolve BGM, SFX, image, icon, brand logo, voice, color grade, or LUT into a frozen local file or paste-ready block + ledger record (one verb, `resolve`); generate via TTS / music / image models when the catalog misses; produce voiceover, transcription, captions, and background removal through one shared audio engine; operate on media (cut / reframe / transform); and reuse assets across projects. Also use for vague feedback that real footage looks dark, flat, boring, should feel retro/camcorder/print/ASCII, needs privacy, or needs a media reveal.

Drama2557/4RealDigital-Video-Studio

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

Drama2557/4RealDigital-Video-Studio

A short, design-led motion graphic where motion is the message — kinetic typography, stat count-up, chart/data-viz hit, logo sting / brand lockup, lower-third / callout / social overlay, animated map (highlight regions, connect places, zoom to a location), animated tweet / news-article / headline, webpage / UI animation (scroll, cursor, callouts), or fusing a real image's geometry into a chart. Usually under 10s (up to ~30s), no narration or live-action subject; renders to MP4 or transparent overlay. Longer / narrated / multi-scene → /general-video. Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a pointer-led action, when kicking off a UI scene, when igniting a morph/transition/typing run with a click, or when a scene reads as static, dead, or stale and needs a cheap high-yield source of motion to carry the viewer's eye and segment them out of the stale state. Covers cursor size/look (incl. brand-motif cursors), the off-screen entry law, tip-targeting and the click tap, click-ignites-the-next-beat, and exit / cross-scene handoff.

Drama2557/4RealDigital-Video-Studio

Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR topic explainer (/faceless-explainer). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

Drama2557/4RealDigital-Video-Studio

Author a HyperFrames slideshow — a presentation, pitch deck, or interactive deck with discrete slides, fragment reveals, branching, hotspot navigation, and built-in presenter mode with speaker notes; also converts an existing page into a deck. Output is a navigable deck, not a rendered MP4. If the user didn't explicitly ask for a slideshow, confirm before authoring. Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on "graphic overlays", "on-screen graphics", "package / dress up my video". Not plain subtitles (/embedded-captions). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Agent skill / project related to launch or product demo video: Drama2557/4RealDigital-Video-Studio

相關技能