Community编程与开发github.com

thativanng/reels-maker

每个代码渲染的影片在发布前必须通过的门控检查:碰撞检测、像素探测和独立审计。

reels-maker 是什么?

该技能定义了一套严格的自动化门控流程,用于确保AI生成的影片(如短视频)在发布前达到最高质量。它由三个核心门控组成:**门控1 · 3D碰撞检测**(`node tools/collide.mjs`)在40帧/秒下检查所有运动物体(AUD_M)与静止物体(AUD_S)的边界框是否重叠,仅当输出“NO COLLISIONS”时才允许进入下一阶段。**门控2 · 屏幕像素探测**(`node tools/probe.mjs`)使用像素级重叠分析,检查字幕、元素是否与人物面部、安全区域(safe zone)或画面边缘发生视觉冲突。**门控3 · 独立审计**要求一个新的AI代理(非构建者)以≥2帧/秒的速度逐帧审查渲染的MP4,并给出FIXED/NOT FIXED/REGRESSED/NEW的评级和是否允许SIGN-OFF的结论。技能适用于任何使用该框架的项目,强调每次修复后只需窄范围重检受影响的窗口,同时提供了常见问题的快速定位列表(如头部遮挡、物体穿透、逻辑错误、移动跳跃等)。

兼容平台~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 的克隆,其中包含 template/ 和 tools/)内执行。如果项目没有该文件夹,请先按照该仓库的 SETUP.md 进行设置。

规则: 影片只有在满足以下条件时才能交付给用户:(1) 碰撞检测通过并返回 NO COLLISIONS,(2) 每个“某物是否覆盖在面部上”的担忧都有具体的像素数值,(3) 独立审计员已签署通过,且没有未关闭的 MUST-FIX 项。构建者本人以 1 帧/秒的速度查看只是草图检查,不能算作门控。修复一处会影响其他部分(例如移动一个气泡可能会将其推出画面),因此每次修复轮次都需要对受影响的窗口进行窄范围重新检查。

门控 1 · 3D 碰撞检测(node tools/collide.mjs)

  • 页面暴露了 window.collide(t) 方法。它比较 AUD_M(运动物体)中每个网格与 AUD_S(静止物体)中每个网格以及彼此之间的边界框,每个框收缩 0.03 单位。
  • 注册每一个新的运动物体和静止物体,否则检测无法看到它们。抛出的盒子、携带的杯子、经过的立方体和漂浮的病毒都算作运动物体。
  • 预期中的接触(例如手中的杯子)通过 HELD 按名称排除。
  • 高度小于 0.12 单位的网格(地面贴花、道路标记、薄板)会被跳过,以避免误报。真正的薄型运动物体需要单独检查。
  • 以 40 帧/秒运行(STEP=.025,默认值)。在 10 帧/秒时,它错过了两个仅有 1 帧的接触:抛出的盒子穿过了两个人的头部。
  • 输出为每对一行: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 短视频中,安全区是中间区域(应用会覆盖底部四分之一和右侧按钮导轨);在付费短视频中,安全区是底部 35% 以上的所有区域。
  • 任何靠近面部的内容:帽子、头部后面的屏幕(光晕)、经过的立方体、嘴边的道具
  • 摄像机运动时,主角与字幕背景之间的重叠
  • 气泡与画面边缘以及附近道具的关系
  • 人物和车辆与画面边缘的距离(≥24 像素为安全)
  • 飞行物(抛出的盒子、硬币、病毒团簇)与它们经过的每个头部的关系

门控 3 · 独立审计

启动一个全新的代理(绝不能是构建者,也不能是曾经看过构建过程的代理),并引用 references/auditor-brief.md。

  • 它读取的是渲染后的 MP4 文件,而不是实时页面:ffmpeg -i out/film.mp4 -vf fps=2 …,然后生成带时间戳的帧截图(tools/sheet.py)。
  • 整个影片以 ≥2 帧/秒 的速率检查,每个发生变化的窗口以 ≥4 帧/秒 的速率检查,在接触点(例如拾取或交接动作)则以 30 帧/秒逐帧检查。
  • 它对每个项目回答: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.

相关技能