Community코딩 & 개발github.com

thativanng/reels-maker

모든 코드 렌더링 영화가 공개되기 전에 통과해야 하는 게이트입니다. 40fps 충돌 검사(움직이는 물체가 고체나 다른 움직이는 물체에 닿지 않음), 픽셀 프로브(얼굴, 머리, 자막 또는 프레임 가장자리 위나 뒤에 아무것도 위치하지 않음), 그리고 독립 감사관(신규 에이전트)이 2fps 이상으로 프레임 시트를 읽고 서명합니다. 제작자는 자신의 영화에 절대 서명하지 않습니다. 렌더링을 보내기 전, 모든 수정 라운드 후, 누군가 "영화 확인", "감사", "준비 완료", "이 프레임이 잘못된 이유"라고 말할 때 사용하세요.

reels-maker란 무엇인가요?

이 스킬은 `reels-maker` 프로젝트 내에서 애니메이션 또는 코드 기반 렌더링 영화가 최종 공개되기 전에 필수 품질 검사를 수행합니다. 3D 충돌 감지(`collide.mjs`), 화면 픽셀 오버레이 검사(`probe.mjs`), 그리고 독립 감사관의 서명 등 세 가지 게이트로 구성되어 있습니다. Claude Code 등의 AI 에이전트가 자동화된 감사 파이프라인을 실행할 수 있도록 설계되었으며, 제작자가 아닌 독립적인 주체가 최종 승인을 담당합니다. 지원 플랫폼은 Node.js 기반이며, 템플릿, 도구, 프레임 시트 생성기를 포함한 완전한 워크플로우를 제공합니다. 주요 기능은 40fps 충돌 검사, 픽셀 단위 오버레이 측정, 독립 감사관 서명 프로세스입니다. 이 스킬은 사람의 시각적 검토를 대체하는 것이 아니라, 발견된 모든 문제를 수치화하여 검증 가능한 품질 기준을 제공합니다.

지원 대상~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에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

film-audit: 다음 검사 없이 영화는 공개되지 않습니다

킷의 위치: 이 스킬의 모든 명령은 reels-maker 폴더 (template/ 및 tools/를 포함하는 github.com/thativanng/reels-maker의 클론) 에서 실행하세요. 프로젝트에 해당 폴더가 없으면 먼저 해당 리포지토리의 SETUP.md를 따라 설정하세요.

규칙: 영화는 (1) 충돌 검사에서 COLLISIONS 없음이 확인되고, (2) 모든 "X가 얼굴 위에 있는가"에 대한 우려에 픽셀 숫자가 있으며, (3) 독립 감사관이 수정 필수 항목 없이 승인한 경우에만 사람에게 전달됩니다. 제작자가 1fps로 살펴보는 것은 스케치 확인일 뿐 게이트가 아닙니다. 수정은 다른 요소를 움직입니다 (한 번 말풍선을 옮겼더니 프레임 밖으로 밀려났습니다). 따라서 모든 수정 라운드 후에는 영향을 받은 창만 좁게 재확인해야 합니다.

게이트 1 · 3D 충돌 (node tools/collide.mjs)

  • 페이지는 window.collide(t)를 노출합니다. AUD_M (움직이는 것)의 모든 메시의 경계 상자를 AUD_S (고정된 것)의 경계 상자와 서로 비교합니다. 각 상자는 0.03만큼 축소됩니다.
  • 모든 새로운 움직이는 물체와 고체를 등록해야 합니다. 그렇지 않으면 검사가 이를 감지할 수 없습니다. 던져진 상자, 들고 있는 컵, 지나가는 큐브, 떠다니는 바이러스 모두 움직이는 물체로 간주됩니다.
  • 의도된 접촉 (손에 든 컵)은 HELD에 이름별로 제외됩니다.
  • 높이가 0.12 단위 미만인 메시 (바닥 데칼, 도로 표시, 얇은 판)는 건너뛰므로 평평한 물체가 잘못된 경보를 발생시키지 않습니다. 실제 얇은 움직이는 물체는 자체 검사가 필요합니다.
  • 40fps로 실행하세요 (STEP=.025, 기본값). 10fps에서는 두 개의 단일 프레임 접촉을 놓쳤습니다: 던져진 상자가 두 사람의 머리를 통과했습니다.
  • 출력은 각 쌍당 한 줄입니다: from–to s A × B depth (frames). COLLISIONS 없음일 때만 전달하세요.

게이트 2 · 화면 픽셀 (node tools/probe.mjs)

일부 결함은 3D에서 전혀 접촉하지 않습니다. 누군가의 머리 뒤 3m에 있는 병뚜껑은 마치 머리카락에서 자라나는 것처럼 보일 수 있습니다. 화면을 측정하세요:

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 선택자>는 요소가 실제로 그리는 것 (문자(줄별 측정), 배경, 테두리 또는 이미지)이고, 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 릴에서는 중간 밴드 (앱이 아래쪽 1/4과 오른쪽 버튼 레일을 덮음)입니다. 유료 릴에서는 아래쪽 35% 위의 모든 영역입니다.
  • 얼굴 근처의 모든 것: 모자, 머리 뒤의 화면 (헤일로), 지나가는 큐브, 입 주변 소품
  • 카메라 이동 중 자주색 배지(Pill) 위의 주인공
  • 프레임 가장자리 및 근처 소품에 대한 말풍선
  • 프레임 가장자리에 대한 사람 및 차량 (≥24 px는 안전)
  • 날아다니는 것 (던져진 상자, 동전, 바이러스 군집)이 지나가는 모든 머리에 대해

게이트 3 · 독립 감사관

references/auditor-brief.md를 사용하여 신규 에이전트 (제작자가 아니고, 빌드를 본 적이 없는 에이전트) 를 시작하세요.

  • 라이브 페이지가 아닌 렌더링된 MP4를 읽습니다: ffmpeg -i out/film.mp4 -vf fps=2 …, 그런 다음 타임스탬프가 있는 시트 (tools/sheet.py).
  • 전체 영화에 대해 ≥2fps, 변경된 모든 창에 대해 ≥4fps, 픽업이나 핸드오프 같은 접촉 지점에서는 프레임별 (30fps) 검사합니다.
  • 항목별로 답변합니다: 수정됨 / 수정되지 않음 / 회귀됨 / 새로 발생, 순위: 수정 필수 / 수정 권장, 그런 다음 한 줄: 서명 또는 아니오.
  • 수정 후 재확인은 좁게: 수정이 닿은 창만, 그리고 짧은 회귀 검사만 수행합니다. 전체 이력을 가지고 있는 에이전트를 재개하는 것보다 새 에이전트를 시작하는 것이 더 저렴할 수 있습니다.

감사관이 계속 발견한 사항 (먼저 이것들을 찾으세요)

  • 머리에 닿거나 뒤에 있는 것: 머리카락 속 병뚜껑, 머리 뒤 지도 핀, 머리 뒤에서 빛나는 모니터, 턱을 가로지르는 큐브
  • 물체가 물체를 통과하는 것: 건물을 통과하는 트럭과 서로 통과하는 트럭, 책상 아래 주차된 밴
  • 논리: 트럭이 먼저 도킹하는 것, 두 번째 트럭이 첫 번째를 추월하는 것, 떨어져야 할 테이블 가장자리에 남겨진 컵
  • 사람: 너무 가까이 서서 머리가 하나로 합쳐진 두 사람; 프레임 밖으로 반쯤 나간 사람
  • 움직임: 한 프레임 점프 (순간이동), 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.

관련 스킬