Communitygithub.com

marsik641/space-shorts

Schritte 2–4 der Videopipeline: Erstelle einen vertikalen Weltraum-Shorts (≤ 30 s, nur EN) für „The Universe Inside Out“ – Fakten, visuelles Briefing, Drehbuch, Shots, Hero-Frames und Rohvideo zur Freigabe, dann Finale über die gemeinsame Render-Warteschlange zweier Render-PCs bis zum Release (MP4 + publish_en.md) und Merge des Branches in main. Verwenden bei „wir machen Variante N“, „/make-video“, „starte Video über X“, „Paket zum Hochladen“.

Was ist space-shorts?

Dieses Skill automatisiert die Schritte 2–4 der Videoproduktion für vertikale Weltraum-Kurzfilme (29–30 s, nur Englisch) des Kanals „The Universe Inside Out“. Ausgehend von einer Ideenauswahl oder einem benannten Objekt erstellt es ein story-basiertes Short mit faktengeprüften Inhalten, einem visuellen Briefing, einem 6–8 Segmente umfassenden Skript, 6–10 Shots mit je mindestens drei Tiefenebenen, Hero-Frames zur kritischen Überprüfung und einem finalen Render, der über eine gemeinsame Warteschlange auf zwei PCs läuft. Das Skill unterstützt die Plattformen Claude Code und Codex (CLI-basiert) und verlässt sich auf eine strukturierte Pipeline mit Tools wie `video_wt.py`, `render_queue.py` und einem eigenen Modul-Repository `spacekit/`. Es integriert Qualitätssicherung durch mehrere Kritikerrunden, maschinelle Checks und visuelles QA. Der gesamte Workflow ist in einer Worktree-Branch organisiert, die nach dem Release in main gemergt wird, und erzeugt die endgültigen Dateien `out/<ep>/release/<ep>_en_1080x1920p60.mp4` und `publish_en.md`.

Funktioniert mit✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/marsik641/space-shorts/tree/HEAD/.agents/skills/make-video

In Ihrer bevorzugten KI fragen

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

Dokumentation

/make-video — Schritte 2–4: Von der Auswahl bis zum gemergten Release

Eingabe: Auswahl des Benutzers aus der ideas-Datei dieser Worktree („/make-video N“ + Änderungen) oder ein vom Benutzer benanntes Objekt. Ausgabe = DoD (AGENTS.md, „Konversationspipeline“): out/<ep>/release/ – Master <ep>_en_1080x1920p60.mp4 und publish_en.md, zwei Dateien – dem Benutzer übergeben; visuelles QA akzeptiert; alles committet; Branch in main gemergt (video_wt.py finish); Worktree entfernt. Qualitätsmaßstab – docs/quality.md: Kino, keine Infografik; Fakten in Worten, Spektakel im Bild; Finale max. 6 h GPU. Nur EN, Ziel 29–29,5 s, maximal 30,0 s (docs/shorts_format.md). Links: Prozess – docs/pipeline.md; Freigabe – docs/approval.md; Paket – docs/publish.md; Workflows – docs/workflows.md; Bibliothek – docs/spacekit.md; Zeit – docs/timings.md; Warteschlange – docs/render_queue.md; Agenten, Commits, Stolpersteine – AGENTS.md. Befehle in Git Bash aus dem Stammverzeichnis der eigenen Worktree; <ep> = epNNN_<slug>.

Schritt 0 – Worktree, Warteschlange, Commits

  • Branch video/epNNN… nach /next-video – darin fortfahren. Chat in der Hauptkopie ohne /next-video – python tools/video_wt.py start → Claude EnterWorktree mit path / Codex workdir.
  • Blender, TTS, Musik, Zusammenbau – nur über die Warteschlange: Aufgabe gestellt – Chat setzt Textarbeit fort.
  • Nach jedem Block – Commit type(<ep>): … mit Modell-Trailer. Ende des Zuges – sauberer Baum.

Teil A – Bis zur Freigabe

  1. Episode. python tools/video_wt.py claim <slug> (slug – [a-z0-9_], ≤ 16, nach Katalogname). episodes/_template/ kopieren → episodes/<ep>/, in episode.json – id = Ordnername, languages: ["en"] (Pfade frames_dir/audio_dir nicht setzen). An das Ende der ideas-Datei: Ausgewählt: N, <Datum>, Änderungen: …, Episode: <ep>. Commit feat(<ep>): Episode aus Variante N.
  2. Fakten: Rechercheur + Faktenprüfer (docs/workflows.md) → facts.md (jede Zahl mit Link, visuelle Referenzen). Commit.
  3. Visuelles Briefing visual_brief.md (Rolle „Regisseur“): Referenzen, erster Frame, Money Shot, Palette, Licht, Kamera und Ereignis jedes Shots, Konventionen, Budget. Kritiker „Kino/Wow“ zum Briefing → Änderungen. Commit.
  4. Drehbuch script_9x16.json (EN): 6–8 Segmente, Anker at (s), 29–29,5 s (≤ 30,0 strikt), ≈ 55–70 Wörter; erster Satz – Fakten-Haken; letzter führt zum Anfang zurück (Loop). en_cap – Ziffern, | – manuelle Umbrüche (docs/pipeline.md, „Titel und Untertitel“). Kanalstimme – Kokoro af_heart ×0,98. Commit.
  5. Szene und Shots. system.py (reale Parameter → Bildschirm, Konventionen – im Docstring); Fehlendes – Module spacekit/ (separater Commit feat(spacekit): …, Regression tools/imgdiff.py). shots_9x16.py nach Briefing: 6–10 Shots à 2–5 s, jeder mit ≥ 3 Tiefenebenen, Key + Kontrolle, Halo/Bloom, Kamerabewegung, Motion Blur, Hintergrund nicht leer (docs/quality.md). episode.json (Edit, Overlays en, Untertitel in sicheren Zonen), music_cues.json (eigene Tonart/Modus/Tempo). Übergänge – Stoß-an-Stoß, auf Ereignissen; letzter Frame = erster. Σ Frames des Schnitts ≤ 1799 bei 60 fps. python tools/check_episode.py episodes/<ep>/episode.json. Commit.
  6. Timing-Vorschau: python tools/render_queue.py submit preview episodes/<ep>/episode.json --with-tts, Status – status --json. Blatt out/<ep>/9x16/sheet_prev.png; kein Traceback/OVERRUN, es gibt FLASH/EVENT; Cue-Liste – python tools/cues.py episodes/<ep>/episode.json --logs out/<ep>/9x16/logs.
  7. Hero-Frames: pro Shot submit preview … --hero --shots vN --frames F,F+1,F+2 (F = bester Moment des Shots; 100 %, ohne --samples – Samples aus dem Shot-Code, wie im Finale) → out/<ep>/9x16/hero/, sheet_hero.png. Kritikern und Eigentümer – Frame F; anhand Log hero_vN.log – s/Frame und ETA (docs/timings.md). Samples und schwere Effekte in shots_9x16.py anpassen (Commit, Hero erneut), sodass das Finale 4–6 h dauert, nicht eine Stunde.
  8. Kritik (docs/workflows.md): „Kino/Wow“ (Bewertung Shots 1–10, < 8 – Überarbeitung, bis zu 3 Runden), Komposition, Rhythmus/Haken, Fakten (nur 4 Blocker docs/quality.md); optional Einzigartigkeit, Ton. Änderungen → Wiederholung 6–7. Berichte als Dateien in der Episode, Commit pro Runde fix(<ep>): Änderungen nach Kritik, Runde K.
  9. Rohvideo komplett (docs/approval.md, 1a): Funktion draft in Shots + Episoden- preview_movie.py via submit task. Wird nicht zusammengebaut – zur Freigabe ohne es, mit Nachricht „Rohvideo: nein“.
  10. Freigabe: Nachricht gemäß Vorlage docs/approval.md + Dateien (Hero-Frames, Rohvideo). Commit des Zustands. Anhalten und auf Antwort warten. Änderungen – zurück zum erforderlichen Schritt.

Teil B – Nach „ok“: bis DoD (keine Fragen, außer Stopps aus docs/approval.md)

  1. Freigabe im Verlauf. Abgestimmte Cue-Liste und publish_en.md nach docs/publish.md fertig (Konventionen – als Liste). Commit chore(<ep>): zur Freigabe gerendert (Benutzeränderungen – im Body).
  2. Finale. python tools/render_queue.py submit final episodes/<ep>/episode.json --approved 'Zustimmung des Benutzers: Datum, Chat-Kontext'. Das Flag zeichnet die bereits erhaltene Zustimmung auf, ersetzt sie nicht. Dem Benutzer – Aufgaben-ID, PC, ETA. Worker wählt selbst PC, rendert in Portionen zu 120 Frames und führt Framecheck, TTS, Musik, Mix, build_edit, Zusammenbau, maschinelles QA und Release durch. Chat kann geschlossen werden.
  3. Status und Fehler. status --json (Fortschritt – cursor/steps; Frames bis Aufgabenende liegen im Snapshot snapshot, nicht in out/<ep>/). failed – Log des Schritts im Snapshot; temporärer Systemfehler – retry JOB; Code-/Skriptänderung – cancel JOB, Änderung in Worktree, ggf. neue Freigabe, neue Aufgabe. Framecheck FAIL – RERENDER analysieren, schlechte Frames im Snapshot löschen (und auf Remote), retry JOB --rerender-shots vN. pause/resume – zwischen Portionen. Oberes Bash nicht beenden.
  4. Visuelles QA. needs_review = maschinelle Prüfungen und Paket fertig. PNG out/<ep>/9x16/qa_en/ und Master: nicht schlechter als Hero-Frames (Rauschen, Unschärfe, Überbelichtung, Flimmern), sichere Zonen, Untertitel, Lippensynchronität, Loop. Sauber – python tools/render_queue.py accept JOB; Defekt – Änderung und neue Aufgabe.
  5. Übergabe. Beide Dateien out/<ep>/release/ dem Benutzer (Claude – SendUserFile). Quellen während des Renderings geändert – publish aus Snapshot und Schnitt-JSON vor Commit abgleichen.
  6. Dokumentation. episodes/INDEX.md (Shots, Techniken, Stimme, Tonart, Haken), Episodentabelle in README.md, ✅ Themen in docs/channel.md, Messungen s/Frame in docs/timings.md, Lektionen – in die entsprechenden Docs. Commit docs(<ep>): Dokumentation und Lektionen (Episoden-Code, edit_9x16_en.json, publish_en.md; ohne out/).
  7. Merge. python tools/video_wt.py finish – sauber → release → accept → git merge main → check_episode und Tests → ff main → out/<ep>/ wird in die Hauptkopie übertragen. Konflikt – in Worktree lösen, Commit, wiederholen. Dann Worktree verlassen (Claude – ExitWorktree keep) und aus der Hauptkopie python tools/video_wt.py remove epNNN; Worktree der Anwendung (start --here) nicht entfernen. Erst jetzt – „fertig“.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills