Communitygithub.com

evgenspm/launchfilm

在任何人發布渲染完成的影片之前,先進行 QA 品質檢查。用於「QA 影片」、「檢查渲染結果」、「是否準備好發布」、「審查影片」、「為什麼看起來很廉價」、「檢查字幕/安全區域/音量」,在每次渲染後和封裝前執行。會讀取 CLI 自動報告(`npx launchfilm qa <slug>`)、聯絡表單和關鍵時間點的靜止幀,然後檢查文字在時間點的可讀性、對比度、平台安全區域、音量(−14 LUFS, −1.5 dBTP)、ffprobe 編碼規格、黑幀和靜止幀、是否對齊節拍剪輯,以及 12 項業餘者跡象作為阻擋檢查。會寫入 `qa/<slug>/QA.md`,其中每一行都引用檔案或測量數值;未執行的檢查會標示 `NOT CHECKED`,絕不標示 `PASS`。可使用 `scene-build` 來修復它發現的畫面問題,使用 `sound` 來修復混音,使用 `launch-film` 處理整個管線,使用 `reference-study` 處理參考影片。

launchfilm 是什麼?

此技能是一個專為 AI 代理(如 Claude Code、Cursor 等)設計的影片 QA 自動化工具,適用於 `evgenspm/launchfilm` 專案。其主要目的是在渲染完成後、發布前,對影片進行嚴格的品質檢查,確保所有檢查都有客觀證據支援。技能支援多種平台,並可處理不同長寬比的影片。它透過執行 `npx launchfilm qa <slug>` 命令先取得自動報告(包含影格、ffprobe 資訊、音量等),然後手動或由 AI 代理檢查 12 項「業餘者跡象」(如靜止幀、預設動畫、文字可讀性等)和 16 項交付檢查(如編碼格式、安全區域、音量標準等)。所有結果會記錄在 `QA.md` 文件中,每個 `PASS` 或 `FAIL` 都必須附上明確的證據(檔案路徑或測量數值),未執行的檢查則標記為 `NOT CHECKED`。此技能能顯著提升影片品質的一致性,並節省人工審查的時間。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/evgenspm/launchfilm/tree/HEAD/skills/film-qa

在你喜歡的 AI 中提問

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

說明文件

film-qa

你檢查的是畫面與數字,而非意圖。PASS 需要證據:你開啟過的檔案路徑,或是你測量過的數值。 其他任何情況都應標示為 NOT CHECKED: <原因>。對於你沒有看過或測量過的東西,切勿寫 PASS。

路徑(相對於 launch-video/,或在 launchfilm 儲存庫中的 studio/):

  • 影片原始檔:films/<slug>/(film.json、STORYBOARD.md、BRIEF.md)
  • 渲染輸出:out/<slug>/
  • QA:qa/<slug>/(CLI 會寫入 report.md;你在它旁邊寫入 QA.md)

確切的 CLI 標誌:npx launchfilm <cmd> --help 已經測試過語法的命令:references/commands.md

步驟

  1. 自動化階段。 npx launchfilm qa <slug> → 先讀取 qa/<slug>/report.md(內含聯絡表單、ffprobe 資訊、音量、自動化檢查)。將其中的測量數值複製到 QA.md 作為證據;不要重新測量它已測量過的項目。
  2. 聯絡表單。 開啟報告中列出的每一份聯絡表單(或執行 npx launchfilm sheet <slug>)。讀取每一個儲存格。在 QA.md 中列出你開啟的檔案(T12 證據)。
  3. 靜止幀。 針對影片發布的每個預設,在以下時間點執行 npx launchfilm still <slug> <t> --preset <id>:每個鏡頭邊界 + 6 幀、每個文字出現點 + 停留時間/2、第 0 幀、最後一幀,以及凍結或黑幀掃描標記的每個間隔。另外,在主要文字幀上以 --scale 0.25(16:9 為 480×270)產生一張靜止幀:作為 X 時間軸預覽。讀取每一張 PNG。
  4. 測量 報告未涵蓋的項目:音量、真實峰值、黑幀、凍結間隔、剪輯時間相對節拍、文字背景對比度、安全區域、字幕行長度。命令請見 references/commands.md。
  5. 阻擋檢查 下方 T1–T12,然後是交付檢查 D1–D16。每一個都須標示 PASS / FAIL / NOT CHECKED,並附上證據與規則。
  6. 撰寫 qa/<slug>/QA.md,使用 references/qa-template.md 作為範本。
  7. 修正迴圈。 任何 FAIL:將發現的問題連同幀數交給 scene-build 或 sound,僅重新渲染受影響的範圍(npx remotion render … --frames=<a>-<b> 或 CLI 等效命令),然後重新檢查那些項目。最多兩個迴圈;然後將剩餘的 FAIL 連同靜止幀報告給使用者。切勿在沒有新證據的情況下將 FAIL 降級為 PASS。

阻擋檢查:12 項跡象 (craft/00)

編號通過條件證據
T1 靜止沒有 ≥ 0.6 秒的凍結間隔,除了結尾卡片穩定(≤ 3 秒);每個標記的間隔都需透過其開始和結束的靜止幀驗證,顯示有漂移或動作freezedetect 輸出 + 每個間隔 2 張靜止幀
T2 預設動畫films/<slug> 中 grep G1 (scene-build) 結果為空;沒有 CSS 轉場grep 輸出
T3 同時出現每組 ≥ 3 個同級元素必須交錯進入(聯絡表單儲存格中可見部分狀態,或程式碼中間隔 ≥ 1 幀);群組進入時間 ≤ 24 幀聯絡表單儲存格引用或程式碼行
T4 單一速度長度 > 20 秒的影片必須有 ≥ 1 個節奏中斷(靜音、衝擊切黑、色板翻轉、停留時間 ≥ 中位數鏡頭時間的 2 倍);啟動模式:每個剪輯點必須在節拍的 ±2 幀內film.json 中的邊界 vs beats.json;偵測到的剪輯點
T5 音效film.json 中的每個視覺事件必須有音效,或被語音/音樂覆蓋;有語音時音樂須閃避;在計畫中靜音的地方必須完全靜音有/無聲音的事件數量;語音視窗與純音樂視窗的音量比較
T6 文字作為標籤當文字是訊息主體時,主要文字高度 ≥ 畫面高度的 8%(陳述句為 10%);每個文字停留時間 ≥ 0.2 × (字數 + 1) 秒;最多 3 行;字幕最多 2 行每個項目的表格
T7 平面外觀啟動模式:必須有顆粒與暗角;每個章節一個命名處理;產品模式:必須有細線、柔和陰影;mp4 靜止幀中最暗的漸層無色塊grep + mp4 靜止幀
T8 網頁佈局每張靜止幀只有一個焦點;沒有段落超過 3 行;沒有項目符號;UI 元素僅在該元素是重點時出現靜止幀
T9 通用素材films/<slug>/footage/SOURCES.md 中的每個影片素材都需有來源與授權;素材需經過調色且剪輯長度 ≤ 1.5 秒SOURCES.md + 靜止幀
T10 裝飾性轉場轉場必須屬於詞彙表;非剪輯轉場每 5 秒不超過 1 次;blur-dissolve 不超過 12 幀film.json
T11 模板先於故事STORYBOARD.md 必須有 approved:;第 0 幀不能是黑色,且與 0.5 秒時的靜止幀不同;1.5 秒內(x, li)/ 1 秒內(reel)必須清楚呈現產品類別;問題之後必須有回報;結尾必須有 ≥ 2 秒的品牌表面平靜畫面第 0、0.5、1.5 秒及最後 2 秒的靜止幀
T12 從未查看此次 QA:必須列出所有已開啟的聯絡表單與靜止幀QA.md 中的檔案列表

T1–T12 中任何一項 FAIL 都會阻擋交付與封裝的渲染。

交付檢查 (每個預設;編號 = craft/08#delivery-checks)

數值來自 harness.config.json 的 presets,否則來自 craft/10#presets。請使用這些確切的編號;craft/08 與 QA.md 共用它們。

編號通過條件
D1影片編碼 h264,設定檔 High(Remotion 的 ffprobe 輸出 100),像素格式 yuv420p,容器 mp4
D2寬 × 高完全符合預設值
D3固定幀率 = 合成幀率(r_frame_rate = avg_frame_rate)
D4時長 = film.json ±1 幀,且在預設的長度範圍內(x-16x9 ≤ 140 秒,reel-9x16 ≤ 90 秒)
D5音訊編碼 aac LC(Remotion 的 ffprobe 輸出 1),48000 Hz,2 聲道,~192 kbps;hero-loop:無音訊流
D6整合音量 −14 ±1 LUFS;真實峰值 ≤ −1.5 dBTP;語音音量在可測量處為 −16…−14 LUFS
D7moov 在 mdat 之前(faststart)
D8該預設的第 0 幀海報存在,尺寸相同,非黑色(YAVG > 20),顯示鉤子
D9SRT 檔案與每個有語音的預設渲染檔放在一起;措辭與字幕相同;格式 HH:MM:SS,mmm;每條 ≤ 2 行;每條 ≥ 0.8 秒;時間 ±2 幀
D10重要內容(字幕、文字、標誌、正在使用的 UI)不可超出預設的安全區域(覆蓋靜止幀檢查)
D11每個有語音的預設都須內嵌字幕(hero-loop:無;ph-16x9 依其設定);≤ 2 行;每行 ≤ 42 個字元(16:9),≤ 32 個字元(4:5、1:1、9:16);不可覆蓋在變化中的元素上;字幕與文字在背景上的對比度 ≥ 4.5:1,重點色在背景上 ≥ 3:1;在寬度為 480 像素(16:9)和 360 像素(4:5、9:16)的靜止幀上須可讀
D12凍結與黑幀列表僅與設計的停留和黑畫面節拍相符(列在 film.json 或 STORYBOARD 中)
D13BT.709 標籤或未標籤的 HD;mp4 靜止幀中最暗的漸層,相較於 PNG 無新的色塊
D14檔案大小低於上限:x ≤ 512 MB,README hero ≤ 10 MB
D15out/<slug>/credits.txt 列出每個 CC BY 素材及其信用行;films/<slug>/footage/SOURCES.md 完整無缺
D16僅限 hero-loop:第 N 幀等於第 0 幀;一個循環 3 次的檔案在接縫處不應有跳動

文字在時間點的可讀性

針對 film.json 中的每個文字項目(陳述句、字幕、標籤、語音指出的 UI 文字):字數、入/出幀、停留時間 = (出 − 入) / fps、必要時間 = 0.2 × (字數 + 1) 秒。同時檢查 480×270 的靜止幀,確認主要行仍然可讀(字母可分辨)。在 QA.md 中每個項目一行。

報告規則

  • 每個 PASS 都須引用證據:qa/<slug>/stills/x-16x9-12.30.png、I = −14.2 LUFS、grep G1: 0 lines。
  • 測量數值需保留單位與產生該數值的工具(system ffmpeg 8.1 ebur128 或 remotion ffmpeg loudnorm)。Remotion 內建的 ffmpeg 缺少 ebur128、signalstats、freezedetect、tile、drawbox 與 rawvideo 輸出:請使用系統的 ffmpeg 來進行這些操作並註明;如果系統沒有 ffmpeg,則這些項目標示為 NOT CHECKED。
  • FAIL 必須指明幀範圍、違反的規則(craft/NN#anchor 或 T#/D#)以及建議的修正方法。
  • 摘要區塊只有在 T1–T12 與 D1–D16 全部為 PASS 時(D16 僅限 hero-loop)才顯示 READY(NOT CHECKED 視為未準備就緒,並附上原因)。

Individual skills in this repo

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

evgenspm/launchfilm

Brand intake for a launch film, product video or promo: capture the product's real colors, fonts, logo, radius and theme from the user's repo (Tailwind config, CSS variables, shadcn tokens, next/font, logo SVG), then the live website, then screenshots, and write films/<slug>/brand.json with a source for every value. Use when starting a new film, when the brand, logo or colors changed, or when the user says "use my brand / my colors / my logo". Hard stop if capture fails: never invent a logo or colors. Not for picking a look or grade (scene-build, craft/06) or for writing copy (story).

evgenspm/launchfilm

Launch video, launch film, product video, product launch, promo, teaser, trailer, demo video, Product Hunt video, X / LinkedIn launch clip, reel, hero loop, motion graphics, "make a video for my product", Remotion film. Router and gated pipeline for making a pro product-launch film with the launchfilm studio in ./launch-video: brief, brand intake, story and storyboard (user approves), sound, scene build, frame QA, render per platform preset, package, post copy, one-time credit note. Use this first for any request to make, remake or revise a launch or product film; it calls the sibling skills (brand-intake, story, sound, scene-build, recipes, film-qa, launch-post). Do not use it to study a reference video (use reference-study), to browse recipes only (use recipes), or for generic Remotion questions unrelated to a launch film.

evgenspm/launchfilm

Write the launch post that goes with the film: X / Twitter post, LinkedIn post, Product Hunt tagline, description and maker comment, written in the founder's own voice, concrete, no AI slop ("excited to announce", em dashes, buzzwords). Triggers: write the tweet, launch post, LinkedIn post, Product Hunt copy, PH tagline, maker comment, caption for the video, announcement copy. Use after the film is rendered (or when the user asks for post copy for an existing film); starts from `npx launchfilm post <slug>` and the film's BRIEF.md and STORYBOARD.md, writes out/<slug>/POST.md. Never posts anything. Not for the film's own on-screen script or VO (story).

evgenspm/launchfilm

Find launchfilm recipes (published launch films studied frame by frame and written down as text, some with ready Remotion code) and build the user's film from 1 to 3 of them. Use for "use a template", "start from a recipe", "make a 30s launch film from recipe <id>", "something like this style", "show me options", "which recipe fits a 30 s vertical launch", "remix recipe X with our brand", or when a storyboard needs a proven hook, feature beat, logo reveal or end card. Searches recipes/CATALOG.md or recipes/index.json, scores and picks 1 to 3, shows each with its source link, reads the recipe.md beat sheet, then scaffolds with `npx launchfilm new <slug> --recipe <id>`: ready code when Recipe.tsx exists, else TODO scenes built from the beat sheet with studio presets, keeping the recipe's timings, springs and sounds re-timed to the user's length and beat grid. Use reference-study to make a new recipe, story for the storyboard, scene-build for scenes, launch-film for the whole pipeline.

相關技能