Community程式設計與開發github.com

thativanng/reels-maker 影片審核

每部程式渲染電影在問世前都必須通過的關卡。包含 40 fps 碰撞檢測、像素探測,以及獨立審核員的簽核流程。

reels-maker 影片審核 是什麼?

這個技能是「reels-maker」專案的必備審核流程,確保任何渲染輸出的影片在發佈前都已通過嚴格的品質檢查。它嚴格定義了三個閘門:第一閘是 3D 碰撞檢測(以 40 fps 執行),第二閘是螢幕像素探測(檢查文字、人物與邊框是否重疊),第三閘則由完全獨立的審核員(從未參與建置的 AI 代理)進行最終簽核。技能強調「建置者不得簽核自己的作品」,並要求在每次修復後針對受影響的片段進行狹義重檢。平台支援包括 reels-maker CLI 工具(collide.mjs、probe.mjs)以及基於 MP4 的離線審核,適用於 Cursor 或 Claude Code 等 AI 代理環境。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thativanng/reels-maker/tree/HEAD/skills/film-audit

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

film-audit:未經這些檢查,影片不得外送

工具包所在位置: 請在 reels-maker 資料夾(即 github.com/thativanng/reels-maker 的 clone,內含 template/ 和 tools/)中執行此技能的所有指令。如果專案中沒有此資料夾,請先按照該 repo 的 SETUP.md 進行設定。

規則: 影片只有在滿足以下三項條件時才能交給委託人:(1) 碰撞檢測結果為 NO COLLISIONS,(2) 每個「X 是否位於人臉上方」的疑慮都有具體像素數值,且 (3) 獨立審核員已簽核,且沒有任何 MUST-FIX 問題未解決。由建置者本人以 1 fps 瀏覽一遍只能算草稿檢查,並非正式關卡。每一次修復都可能連帶影響其他元素(例如移動對話框可能使其超出畫面邊緣),因此每次修復後都必須針對受影響的視窗進行狹義重檢。

閘門 1 · 3D 碰撞檢測(node tools/collide.mjs)

  • 頁面會暴露 window.collide(t)。此函數會比較 AUD_M(會移動的物體)與 AUD_S(靜止物體)中每個網格的邊界盒,以及 AUD_M 中各網格之間的邊界盒,並在比較前將每個邊界盒縮小 0.03 單位。
  • 必須註冊每個新的移動物體與靜止物體,否則檢測無法識別。投擲的箱子、拿著的杯子、經過的立方體以及飄浮的病毒都屬於移動物體。
  • 原本就有意圖的接觸(例如手中的杯子)可透過名稱在 HELD 中排除。
  • 高度小於 0.12 單位的網格(如地板貼紙、道路標線、薄板)會被跳過,以避免扁平物體引發誤報。真正的薄型移動物體需要單獨檢查。
  • 以 40 fps 執行(STEP=.025,為預設值)。若以 10 fps 執行,曾漏掉兩個僅出現一幀的碰撞:投擲的箱子穿過兩個人的頭部。
  • 輸出為每對物體一行:from–to s A × B depth (frames)。僅在結果為 NO COLLISIONS 時才能輸出影片。

閘門 2 · 螢幕像素檢測(node tools/probe.mjs)

某些缺陷在 3D 空間中不會產生碰撞。例如,一個距離某人頭部 3 公尺的瓶蓋,看起來仍可能像從頭髮中長出來。請在螢幕上測量:

node tools/probe.mjs "4.4,4.6,4.8" "D.CUPS[0]" "head"   # 杯子與主角頭部的重疊像素
node tools/probe.mjs "24.5,26" "head" "pill"           # 頭部是否在字幕背景之後?
node tools/probe.mjs "3.0,3.5" "D.GUESTS[1].v.root"    # 單個矩形:此人是否在畫面內?
  • 讀取 overlap: [x, y](兩者皆 > 0 表示互相重疊)、gapY 以及 inside(A 完全位於 B 內部)。
  • 在任何頁面(包括 2D 頁面)上: sel:<css selector> 代表元素實際繪製的內容(其文字、逐行測量的行高,以及任何背景、邊框或圖片),而 safe 是平台的保持清晰核心區域(來自 window.FILM.safe)。螢幕上的每個文字,在每個時間點都必須對 safe 顯示 inside: true:
    node tools/probe.mjs --page reels/<name>/page.html --format 9:16 "2,6.4,10.4" "sel:.title,.line,.kicker,.handle,.cap" "safe"
    
  • 若要測試攝影機關鍵影格而不編輯檔案,可傳入 PRE(它會在每次執行前執行):PRE="window._CK.find(k => k[0] === 23.8)[1] = window._dbg.A(72.2, 10, 31, 72, 5.2, 1.5)" node tools/probe.mjs "25,28" "head"。
  • 邊界盒是保守的(邊界盒比實際形狀大),因此重疊幾個像素在實際畫面上可能看來清晰。最終由審核員裁決。

在渲染前,請為以下每一項檢查提供具體像素數字:

  • 每個文字、標題和標誌都必須位於平台的保持清晰區域內(safe,來自 template/formats.json)。對於有機的 9:16 Reels,該區域是中間帶狀區(應用程式會覆蓋底部四分之一以及右側按鈕欄);對於付費 Reel,則為底部 35% 以上的所有區域。
  • 任何靠近臉部的物體:帽子、頭後方的螢幕(光暈)、經過的立方體、嘴巴附近的道具。
  • 攝影機移動過程中,主角與字幕背景之間的位置關係。
  • 對話框與畫面邊緣及附近道具的相對位置。
  • 人物與車輛與畫面邊緣的距離(≥24 像素為安全)。
  • 飛行物體(投擲的箱子、金幣、病毒群)與它們經過的每個頭部。

閘門 3 · 獨立審核員

啟動一個全新的 AI 代理(絕不能是建置者,也不能是曾看過建置過程的代理),並提供 references/auditor-brief.md。

  • 它讀取的是渲染後的 MP4 檔案,而非即時頁面:ffmpeg -i out/film.mp4 -vf fps=2 …,然後產生帶時間戳的靜止幀圖表(tools/sheet.py)。
  • 對整部影片以 ≥2 fps 的速度檢查,對每個有變動的視窗以 ≥4 fps 的速度檢查,並在接觸點(例如拿起物品或交接物品)以逐幀方式(30 fps)檢查。
  • 它會針對每個項目回答:FIXED / NOT FIXED / REGRESSED / NEW,並標註等級 MUST-FIX / NICE-TO-FIX,最後輸出一行:SIGN-OFF 或 NOT。
  • 修復後的重檢為狹義重檢:僅針對修復觸及的視窗,加上簡短的回歸檢查。啟動全新的代理通常比讓一個攜帶完整歷史的代理繼續檢查更經濟。

審核員持續發現的問題(請優先檢查這些)

  • 物體碰觸或位於頭部後方: 頭髮裡的瓶蓋、頭後方的圖釘、頭後方發光的螢幕、越過下巴的立方體。
  • 物體穿過物體: 卡車穿過建築物和彼此、停在桌子底下的廂型車。
  • 邏輯錯誤: 卡車車頭朝內對接、第二輛卡車超越第一輛、應該掉落卻放在桌緣的杯子。
  • 人物問題: 兩個人站得太近導致頭部合併成一個形體;某人半個身體在畫面外。
  • 動作問題: 單幀跳躍(瞬間移動)、物體在 0.1 秒內穿過地板、主角在場景轉換時消失。
  • 文字問題: 文字位於應用程式按鈕覆蓋的區域、中文字在單字中間斷開、橫幅與場景節奏不同步、英式/美式拼寫混用、無法解釋的數字、字幕遮蓋主角。
  • 音效問題: 嗖嗖聲、在音樂中無法聽見的音效提示、插入節拍後漂移的音效提示。

Individual skills in this repo

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

thativanng/reels-maker

Build and render a film, reel or animation as code. One HTML page draws any frame on demand with window.seek(t), and a headless browser renders every frame at 2x into an MP4 with sound. Use it whenever someone wants a video made with code rather than a video generator, says "make a film / reel / animated explainer / career video", "render this to MP4", "turn this page into a video", or needs the finishing steps (audio cues, loudness, colour-safe encode, phone preview). It is style-agnostic and renders 9:16, 4:5, 1:1 or 16:9. It runs after reel-intake (the brief) and reel-style (the look), builds on template/starter.html or a style pack such as voxel-walk, and passes film-audit before anything is shown to anyone.

thativanng/reels-maker

The interview before any video is built. It reads what the person already gave (source text, CV, links, brand files), then asks the rest in a few short rounds of numbered questions with a recommended answer marked, always including the format (platform, reel or video, ratio, layout, length, sound). It ends in a one-screen brief that splits "you said" from "I assumed", plus a storyboard, and builds nothing until the person says yes. Use it whenever someone asks for a reel, a video, an explainer, a career film, an animation or a "make a video about X", before film-engine or any style pack, and again when a request changes its purpose, platform or audience mid-way.

thativanng/reels-maker

Picks the look of a reel or film before it is built. It shows three genuinely different looks as stills of the same opening frame with the same words, so the person judges the look and not the content. It keeps a log of every look ever shown, so no look comes back unless asked for, and it locks one look on purpose for a series. Use it after reel-intake's brief is signed and before any test strip, whenever someone says "what should it look like", "give me options", "make it look different from last time", "it looks cheap", or starts a new reel or a new series.

thativanng/reels-maker

The voxel career-film style. A blocky 3D version of the person walks, without ever vanishing, through one scene per role. Their outfit changes as they walk, each scene rises out of the floor ahead of them, and a dark banner tracks year, company and role. Use it when someone wants their career, a journey or a "how I got here" told as a short 3D film for LinkedIn or a portfolio, says "make my career film", "turn my CV into a video", "voxel film", or wants a new chapter added to an existing one. It runs on film-engine (render, audio, finish) and must pass film-audit before anything is sent.

相關技能