CommunityCodierung & Entwicklunggithub.com

thativanng/reels-maker - Film-Audit

Eine automatisierte Prüfungskette für code-generierte Filme: Kollisionen in 3D, Pixel-Proben auf dem Bildschirm und eine unabhängige Prüfung durch einen zweiten Agenten, bevor ein Render ausgeliefert wird.

Was ist reels-maker - Film-Audit?

Dieses Skill implementiert eine dreistufige Qualitätskontrolle für Filme, die aus Code gerendert werden (z. B. mit reels-maker). Zuerst wird eine 3D-Kollisionsprüfung bei 40 fps durchgeführt, um sicherzustellen, dass kein bewegliches Objekt ein festes Objekt oder ein anderes bewegliches Objekt durchdringt. Danach werden Pixel-Proben (probe.mjs) genommen, um Überlappungen von Bildelementen mit Gesichtern, Untertiteln und dem Bildrand zu messen – auch wenn die 3D-Kollisionserkennung nichts findet. Schließlich prüft ein unabhängiger Auditor (ein frischer Agent, niemals der Erbauer) den gerenderten Film mit mindestens 2 fps und signiert ab oder fordert Korrekturen. Das Skill läuft im `reels-maker`-Ordner, benötigt node.js und unterstützt jede Code-basierte Film-Produktion. Es ist ideal vor jedem Versand, nach jeder Fehlerbehebung und wenn jemand fragt: „Prüf den Film“, „Auditiere das“, „Ist das fertig?“ oder „Warum sieht dieses Bild falsch aus?“. Typische Funde sind Objekte hinter Köpfen, durchdringende Gegenstände, Logikfehler, vertauschte Bewegungen, Text in von UI-Elementen verdeckten Zonen und Ton-Synchronisationsfehler.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thativanng/reels-maker/tree/HEAD/skills/film-audit

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

film-audit: kein Film verlässt das Haus ohne diese Prüfungen

Wo das Kit lebt: führe jeden Befehl dieses Skills aus dem Ordner reels-maker (dem Klon von github.com/thativanng/reels-maker, der template/ und tools/ enthält). Wenn das Projekt keinen hat, richte ihn zuerst ein, indem du der SETUP.md dieses Repos folgst.

Die Regel: Ein Film geht nur dann zur Person, wenn (1) die Kollisionsprüfung „NO COLLISIONS“ meldet, (2) für jede „Liegt X über einem Gesicht“-Sorge eine Pixelzahl vorliegt und (3) ein unabhängiger Auditor mit „SIGN-OFF“ abgeschlossen hat und kein „MUST-FIX“ offen ist. Ein Blick mit 1 fps durch den Erbauer ist eine Skizzenprüfung, kein Gate. Eine Korrektur verschiebt andere Dinge (einmal schob das Verschieben einer Sprechblase diese aus dem Bild), daher bekommt jede Fehlerbehebung eine enge Nachprüfung der betroffenen Fenster.

Gate 1 · Kollisionen in 3D (node tools/collide.mjs)

  • Die Seite stellt window.collide(t) bereit. Es vergleicht die Bounding-Boxes jedes Meshes in AUD_M (Dinge, die sich bewegen) gegen AUD_S (Dinge, die stehen) und gegeneinander, nachdem jede Box um 0,03 verkleinert wurde.
  • Jeden neuen Beweger und jedes neue feste Objekt registrieren, sonst kann die Prüfung es nicht sehen. Geworfene Kisten, getragene Becher, vorbeifliegende Würfel und schwebende Viren zählen alle als Beweger.
  • Kontakte, die beabsichtigt sind (ein Becher in einer Hand), werden namentlich in HELD ausgeschlossen.
  • Meshes unter 0,12 Einheiten Höhe (Boden-Markierungen, dünne Platten) werden übersprungen, damit ein flaches Objekt keinen Fehlalarm auslöst. Ein echter dünner Beweger braucht seine eigene Prüfung.
  • Führe es mit 40 fps aus (STEP=.025, Standard). Bei 10 fps wurden zwei Ein-Frame-Kontakte übersehen: geworfene Kisten durch die Köpfe zweier Personen.
  • Ausgabe ist eine Zeile pro Paar: von–nach s A × B Tiefe (Frames). Nur bei NO COLLISIONS ausliefern.

Gate 2 · Pixel auf dem Bildschirm (node tools/probe.mjs)

Manche Defekte berühren sich in 3D nie. Ein Flaschendeckel 3 m hinter dem Kopf von jemandem kann trotzdem aussehen, als wachse er aus den Haaren heraus. Miss den Bildschirm:

node tools/probe.mjs "4.4,4.6,4.8" "D.CUPS[0]" "head"   # Überlappung eines Bechers und des Heldenkopfes, in Pixeln
node tools/probe.mjs "24.5,26" "head" "pill"           # liegt der Kopf hinter dem Untertitel?
node tools/probe.mjs "3.0,3.5" "D.GUESTS[1].v.root"    # ein Rechteck: ist diese Person innerhalb des Bildrahmens?
  • Lies overlap: [x, y] (beide > 0 bedeutet übereinander), gapY und inside (A liegt vollständig in B).
  • Auf jeder Seite, auch 2D: sel:<CSS-Selektor> ist das, was ein Element tatsächlich malt (seine Buchstaben, Zeile für Zeile gemessen, plus Hintergrund, Rahmen oder Bild) und safe ist der freizuhaltende Kern der Plattform (aus window.FILM.safe). Jedes Wort auf dem Bildschirm muss bei jedem Beat inside: true gegen safe sein:
    node tools/probe.mjs --page reels/<name>/page.html --format 9:16 "2,6.4,10.4" "sel:.title,.line,.kicker,.handle,.cap" "safe"
    
  • Um einen Kamera-Key auszuprobieren, ohne die Datei zu bearbeiten, übergib PRE (es wird vor jedem Durchlauf ausgeführt): 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".
  • Die Boxen sind konservativ (eine Bounding-Box ist größer als die Form), daher kann eine Überlappung von wenigen Pixeln in der Realität klar sein. Die Entscheidung des Auditors zählt.

Überprüfe jeden dieser Punkte mit einer Zahl, bevor du renderst:

  • Jedes Wort, jede Bildunterschrift und jedes Logo innerhalb der freizuhaltenden Zone der Plattform (safe, aus template/formats.json). Bei organischen 9:16-Reels ist das das mittlere Band (die App bedeckt das untere Viertel und die rechte Buttonschiene); bei einem bezahlten Reel alles oberhalb der unteren 35 %
  • Alles in der Nähe eines Gesichts: Kappen, Bildschirme hinter dem Kopf (der Heiligenschein), vorbeifliegende Würfel, Requisiten am Mund
  • Der Held gegen die Untertitelleiste während Kamerafahrten
  • Die Sprechblase gegen den Bildrand und nahe Requisiten
  • Personen und Fahrzeuge gegen den Bildrand (≥24 px ist sicher)
  • Fliegende Dinge (geworfene Kisten, Münzen, Virencluster) gegen jeden Kopf, den sie passieren

Gate 3 · Der unabhängige Auditor

Starte einen FRISCHEN Agenten (niemals den Erbauer, niemals einen, der den Bau gesehen hat) mit references/auditor-brief.md.

  • Er liest die gerenderte MP4, nicht die Live-Seite: ffmpeg -i out/film.mp4 -vf fps=2 …, dann mit Zeitstempeln versehene Blätter (tools/sheet.py).
  • ≥2 fps für den gesamten Film, ≥4 fps für jedes geänderte Fenster, Bild für Bild (30 fps) an Kontaktstellen wie Aufnahme oder Übergabe.
  • Er antwortet pro Element: FIXED / NOT FIXED / REGRESSED / NEW, eingestuft MUST-FIX / NICE-TO-FIX, dann eine Zeile: SIGN-OFF oder NOT.
  • Eine erneute Prüfung nach Korrekturen ist eng: nur die Fenster, die die Korrekturen betroffen haben, plus einen kurzen Regressionstest. Es kann günstiger sein, einen frischen Agenten zu starten, als einen fortzusetzen, der seine gesamte Geschichte mit sich trägt.

Was Prüfer immer wieder fanden (zuerst danach suchen)

  • Etwas, das einen Kopf berührt oder dahinter liegt: ein Flaschendeckel im Haar, Stecknadeln hinter dem Kopf, ein Monitor, der hinter dem Kopf leuchtet, ein Würfel quer über ein Kinn
  • Dinge, die durch Dinge gehen: Lastwagen durch Gebäude und durch einander, ein Van, der unter einem Schreibtisch parkt
  • Logik: ein LKW, der mit der Nase voran andockt, der zweite LKW, der den ersten überholt, eine Tasse, die auf einer Tischkante stehen gelassen wird und fallen sollte
  • Personen: zwei Personen, die so nah stehen, dass ihre Köpfe zu einer Figur verschmelzen; jemand zur Hälfte außerhalb des Bildes
  • Bewegung: ein Ein-Frame-Sprung (Teleport), Dinge, die in 0,1 s durch den Boden fallen, der Held, der zwischen Szenen verschwindet
  • Wörter: Text in einer Zone, die von den Schaltflächen der Plattform verdeckt wird, chinesische Zeichen, die mitten im Wort gebrochen sind, ein Banner, das nicht mit der Szene Schritt hält, gemischte britische/amerikanische Rechtschreibung, eine Zahl, die niemand verteidigen kann, der Untertitel, der den Helden verdeckt
  • Ton: Rauschen, ein Cue, der unter der Musik unhörbar ist, Cues, die nach einem eingefügten Beat abdriften

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.

Verwandte Skills