Was macht Review-Schleife (HyperFrames)?
Du kannst keine Videos ansehen, aber du kannst Einzelbilder betrachten. Melde ein Video erst dann als fertig, wenn du den Kontaktabzug der aktuellen Version gesehen hast.
Adaptiert aus whaleyxbt/claude-motion
review-loopskill (MIT, sieheLICENSEim selben Ordner). Die ursprünglichennpm run …-Befehle wurden durch Kinocut MCP HyperFrames-Tools und das Skriptscripts/sheet.pyin diesem Ordner ersetzt. Mit „(neu in dieser Version)“ markierte Absätze sind nicht Teil des Originals.
Im Folgenden bezeichnet SHEET den Befehl python "<Skills-Ordner>/scripts/sheet.py" (z. B. ~/.claude/skills/review-loop/scripts/sheet.py). Alle Pfade werden absolut angegeben.
Schleife
- Zuerst maschinelle Prüfung (neu in dieser Version): Führe im Projektordner
hyperframes checkaus. Es führt nacheinander Linting, Laufzeit-, Layout-Überlauf-, Bewegungs- und Kontrastprüfungen durch (die offiziellenvalidate/inspect-Befehle sind veraltet – verwendecheck). Behebe alle Fehler, bevor du fortfährst. Details siehe offizielleshyperframes-cliskill.- Eine Masken-Enthüllung meldet während des Einflugs zwangsläufig
container_overflow– das ist beabsichtigt; füge dem Masken-Containerdata-layout-allow-overflowhinzu. Wenn jedoch nach dem Einrastentext_box_overflowgemeldet wird, ist der Container zu flach und schneidet Text ab (besonders bei Chinesisch und hochgestellten Zeichen) – ziehe den Container höher.
- Eine Masken-Enthüllung meldet während des Einflugs zwangsläufig
- Entwurf:
hyperframes_render, Parameterquality: "draft",output_pathauf<Projekt>/out/draft.mp4setzen. - Kontaktabzug:
SHEET --video <Projekt>/out/draft.mp4 --timeline <Projekt>/timeline.js --out <Projekt>/out/sheetsNimmt 0,3 Sekunden nach jedem Takt (wenn die Bewegung abgeschlossen ist) einen Frame, setzt diese 4×2 zuout/sheets/beats-N.pngzusammen, beschriftet jeden Frame mit Taktnamen und Zeit. Jeder Frame ist standardmäßig 360 px breit – die tatsächliche Breite auf einem Mobilgerät. - Öffne jedes Sheet mit Read und überprüfe es Punkt für Punkt anhand der Checkliste unten.
- Vergrößere verdächtige Stellen:
- Scan eines Übergangs:
SHEET --video … --from 3 --to 5 --every 0.2 --name scrub - Bestimmte Zeitpunkte:
SHEET --video … --at 3.7,3.75,3.8 --name exact - Einzelner Frame in voller Auflösung:
hyperframes_still, Parameterframe(Sekunden × fps) - Ohne erneutes Rendern:
hyperframes_snapshotmitatdirekt aus der Komposition, dann mitSHEET --images … --labels …zusammenstellen.
- Scan eines Übergangs:
- Korrigiere und kehre zu Schritt 0 zurück. Beende den Zyklus erst, wenn ein vollständiger Durchlauf keine Probleme mehr zeigt.
- Finale Version:
hyperframes_render, Parameterquality: "high"für das Endvideo, führe dann Schritt 2 erneut für das Endvideo durch und mache die Audioprüfung (siehe unten).
Checkliste
Komposition
- Jeder Frame hat nur einen Fokus. Wenn zwei Elemente um Aufmerksamkeit konkurrieren, muss eines warten.
- Keine unbeabsichtigten Kollisionen oder Überlappungen, besonders bei Übergängen, bei denen ausgehende und eingehende Elemente denselben Raum teilen.
- Sicherheitszone: Wichtige Inhalte nicht näher als etwa 60 px an den Rand.
- Frame 0 zeigt ein echtes Bild, nicht Schwarz (es ist das Thumbnail auf Social-Media-Plattformen).
Text
- Nichts wird durch Masken, Container oder Bildränder angeschnitten (außer beabsichtigt).
- Bei Mobilbreite (den Sheet-Frames) bleiben die wichtigsten Informationen lesbar.
- Text bewegt sich nicht, während er gelesen werden soll.
- (Neu in dieser Version) Chinesisch: Keine Rechtschreibfehler; ausschließlich traditionelle Schriftzeichen (keine vereinfachten); Satzzeichen in voller Breite; keine fehlenden Schriftzeichen (die als Kästchen oder deutlich andere Schrift erscheinen).
Rhythmus
- Jeder Zustand, der gelesen werden soll, hält lang genug an (siehe
motion-designAbschnitt 4). Wenn Text in den Frames des Haltebereichs noch in Bewegung ist, ist die Haltezeit zu kurz. - Szenen überlappen einander – kein Schnitt auf einen leeren Bildschirm.
- Ausblendungen sind schneller als Einblendungen.
Konsistenz
- Nur Farben aus dem
:root-Farbfeld verwenden; die Akzentfarbe markiert den Schwerpunkt dieses Frames. - Dasselbe Element sieht in allen Szenen, in denen es vorkommt, gleich aus.
Audio (nur wenn Ton vorhanden)
- Wellenform:
video_audio_waveformprüft, ob die Spitzenwerte des Tons auf den Takten derTLliegen. - Lautstärke (neu in dieser Version, ersetzt das originale
npm run wave):ffmpeg -hide_banner -nostats -i <Endvideo> -af ebur128=peak=true -f null -Lies die Zusammenfassung fürIntegrated loudnessundTrue peak. Ziel: −14 LUFS ±1, True Peak ≤ −1 dBFS. - Aussprache und Emotion chinesischer Voiceovers: Der Benutzer hört mit eigenen Ohren, keine automatisierte Bewertung (neu in dieser Version).
Bericht
Gib bei Fertigstellung klar an: was geprüft wurde, was korrigiert wurde und auf welchem Sheet das Ergebnis zu sehen ist. Behaupte nicht, einen Fehler behoben zu haben, ohne das Rendering erneut ausgeführt und selbst gesehen zu haben.