Launch Kit — das Medium mit dem Release ausliefern
Du produzierst das MEDIUM eines RELEASES, kein Video: ein Take des ausgelieferten Features wird zu jedem Asset, das das Release benötigt, komponiert, dimensioniert und pro Zielkanal verifiziert, als bearbeitbare Dokumente aufbewahrt, damit das NÄCHSTE Release ein erneutes Rendern ist, kein erneuter Dreh. Alles ist Daten; die Vorschau ist der Render; der Export ist kostenlos in jeder Auflösung bis zu 4K, ohne Wasserzeichen; die Engine ist MIT.
Das Kit wird in einem einzigen Befehl gerendert, vos deliver, aus Dokumenten, die den Geschmack tragen: jede Karte ist ein Frame eines POSTER-Dokuments (ein einfacher Take, dessen Karte dort sitzt, wo das Poster sie haben möchte, mit den Wörtern und dem Markenzeichen als Clips), jeder Schnitt spielt die Bewegung, die vos plan in sein Dokument vorgeschlagen hat (ein Eingang, eine Endkarte, Untertitel, ein Hintergrund), die Standbilder stammen aus der Geschichte, und zwei Prüfer sagen in Worten, was falsch ist. deliver komponiert nichts. Dein Urteilsvermögen fließt in drei Dateien (BRAND.md, LAUNCH.md, actions.json), eine Auswahl (welches Poster im Regal die Karten befolgen) und eine Entscheidung (welche Momente die Geschichte sind), niemals in manuelles Zuschneiden.
Einrichtung
npm i -D @vosjs/cli # die vos CLI (Take-Pipeline inbegriffen)
ffmpeg im PATH deckt ab, was die CLI nicht ausgibt (das PH-Hover-GIF) und erlaubt vos validate --picture, den ersten und letzten Frame eines Videos zu lesen. MP4-Renderings benötigen systemeigenes Chrome (--format mp4).
1. Das Release festlegen
Fünf Fakten vor der Aufnahme:
-
Was ausgeliefert wurde — das Feature, die Versionszeichenfolge, die URL, unter der es läuft.
-
Welche Ziele — die kanalspezifische Spezifikationstabelle wird als Daten ausgeliefert:
node_modules/@vosjs/cli/schema/channel-specs.json(CWS, Product Hunt, X, LinkedIn, GitHub, OG, YouTube; Größen, Anzahlen, Byte- und Dauer-Obergrenzen, die Wortrichtlinie und das sichere Rechteck pro Ziel, und jedes Bildes GENRE:screenshotist die echte Seite,cardist ein Frame eines Poster-Dokuments;references/channel-specs.mdsind dieselben Daten als Tabelle). Iteriere darüber, tippe niemals Abmessungen von Hand. Frage, an welche Kanäle dieses Release ausgeliefert wird; Standard ist der Satz des letzten Releases. Das JSON trägt einverified-Datum; ist es älter als ein Vierteljahr, überprüfe die Kanaldokumente stichprobenartig vor dem Ausliefern. -
Die Marke — kläre sie VOR der Erstellung von Assets und verwende niemals standardmäßig die eigene Palette eines Layouts. Die
BRAND.mddes Projektordners ist das Markenkit (das Frontmatter trägt die FarbrollenbgA bgB bgC ink accent, die SchriftrollenfontDisplay fontBody,logoUrl(ein reines Markenzeichen, niemals ein gekacheltes Icon),wordmarkundlook, die Präsentation, die der eigene Grund der Seite verlangt:platefür eine papierähnliche Seite,darkfür eine dunkle, sonstgradient). Fehlt eine, bezeugtvos brand <url>sie von der Seite/design.md,/llms.txtund der Seite selbst und schreibt jede Rolle mit ihrer Herkunft; lies es, korrigiere, was eine Seite nicht sagen kann, und lege es mitvos recipe push BRAND.md --folder <slug>ab. Platziere es NEBEN dem Take (oder im übergeordneten Ordner des Takes):planunddeliverlesen es dort ohne Flag. -
Die Wörter —
LAUNCH.mdneben dem Take trägt die Rollen des Releases in seinem Frontmatter, das ohne Flag gelesen wird:headline: "Zwei bis sechs Wörter\nüber bis zu drei Zeilen" # die Poster und die Endkarte kicker: "PRODUKT V2.1" # fehlt = das Wortmarke plus --release music: upbeat # ein Katalog-Slug oder eine Stimmung; none = still entrance: tilt-in # tilt-in | pull-out | rise | none endCard: on # die offizielle Endkarten-Vorlage; none schaltet sie aus; ein Titel, vos id oder doc.json benennt eine andere with: "Split cover, landscape@end" # optional: jede Vorlage, platziert an einem Anker (@end | @start | @step:<id> | @<Sekunden>) captions: on # none schaltet die Beat-Untertitel aus poster: poster/landscape # optional: das Dokument, aus dem jede Karte rendert poster-tile: poster/tile # optional: eine Klasse, die allein benannt wirdEine Überschrift ist die EINE Zeile, die das Release sagt; schreibe sie mit
\nüber ihre Zeilen.vos planliest die Bewegungsrollen, wenn es den Schnitt und die Bewegung des Schnitts vorschlägt, undplan --styletippt die Wörter in ein Poster;deliverliest nur dieposter-Rollen, und wenn keine vorhanden ist, sucht es nachposter/<class>/doc.jsonneben dem Take. -
Das Layout — ein Poster, dem die Karten folgen werden, aus einem Regal. Das offizielle
Poster families-Projekt auf vos.so enthält ein Exemplar pro Seitenverhältnis-Klasse (landscape, square, portrait, tile) neben seinerPOSTER.md, die sagt, wann jede Klasse die richtige ist; ein eigenes Projekt eines Erstellers hat dieselbe Form.vos folder pull poster-familieslistet sie mit ihren vos-IDs auf. Es gibt keinen Layout-Namen und keine--layout-Flag: das Exemplar IST das Layout, kopiert durch Daten.
Die Ziele entscheiden über den VIEWPORT, bevor etwas aufgenommen wird: Footage-Auflösung = Viewport, und ein 1280×720-Take kann ehrlicherweise kein 1920×1080-Video-Spezifikation füllen. Nimm für ein 1080p-Kit mit 1920×1080 auf, 2560×1440, wenn ein Ziel größer ist.
Wenn die Arbeit in einem vos.so-Projekt (Ordner) landet, ziehe es zuerst und lies jedes .md-Rezept darin — LAUNCH.md bindet diese Schleife so, wie CUT.md einen Schnitt bindet, und eine POSTER.md bindet die Poster. Rezepte überschreiben die Standardeinstellungen dieses Skills.
2. Quelle: ein Take des echten Produkts
Das Kit wird AUS dem Produkt hergestellt, niemals aus einem Mockup (die Store-Richtlinie stimmt dem zu: Irreführende Listing-Bilder sind ein Verstoß, der zur Entfernung führt).
Gestalte den Inhalt wie ein Set vor der Aufnahme. Die Hälfte dessen, was ein hochwertiges Launch-Bild von einem Screenshot unterscheidet, ist, was AUF dem Bildschirm zu sehen ist. Die actions.json muss das Produkt in dem Zustand hinterlassen, den ein stolzer Screenshot zeigen würde — ausgefüllte Beschriftungen, realistisch aussehende Daten, das Feature mitten in der Geschichte — bevor ein Poster oder Store-Stillbild geschnitten wird. deliver verwirft einen leeren Moment (ein Hintergrundbild, eine leere Leinwand) und sagt dies, aber es kann das Set nicht für dich einrichten.
Schreibe die Geschichte in actions.json. Gib Schritten eine id (die Momente und die Neu-Render-Schleife adressieren sie damit) und eine caption, wo ein Beat eine verdient (zwei bis acht Wörter; plan schlägt es als unteres Drittel zu diesem Schrittzeitpunkt bei den Schnitten vor, die Wörter übernehmen). Füge nach einem Klick, der navigiert, ein wait für den Ladevorgang ein: das Standbild wird am ENDE dieses Wartens gelesen, sodass der Frame die Seite zeigt, niemals den Ladekreis.
- Neue Aufnahme: die Schleife des
product-video-Skills (erkunden →actions.json→vos record --strict→doc.jsonoptimieren). Behalteactions.jsonim Repository — es ist das Drehbuch für das nächste Release. - Das ausgelieferte Feature befindet sich hinter einem Login: kläre die Sitzung vor dem Skript, gemäß der Leiter des
product-video-Skills (vollständig unter https://vos.so/llms-full.txt, „Sessions“): erstelle eine aus der Test-Authentifizierung, die das Repository bereits hat, andernfalls skripte das Formular außerhalb der Kamera, andernfalls meldet sich der Mensch einmalig an (vos session open <url> --name <app>, dann--session <app>), andernfalls nehmen sie mit der Erweiterung auf und du schneidest es. Nimm mit--storage-state <datei>auf. Ein Release zeichnet jede Version neu auf, bevorzuge daher die Sprosse, die keinen Menschen benötigt: sie ist diejenige, die beim nächsten Release noch funktioniert. Gib niemals ein Produktionspasswort ein oder akzeptiere es; halte die Statusdatei außerhalb des Takes und außerhalb von Git; nimm von einem Demo-Konto auf, denn ein Store-Listing, das echte Kundendaten zeigt, ist ein Fehler, der zur Entfernung führt. - Vorhandener Take: schneide ihn mit dem
vos-cut-Skill. Ein gehosteter Take kommt mitvos fetch <vosId|watch-url> --out dir --medianach Hause. - Neue Version eines bereits gefilmten Produkts: nimm mit
vos recordim SELBEN Take neu auf (das Filmmaterial wird ersetzt, der Schnitt bleibt alsdoc.prev.jsonerhalten), dannvos plan take --reusetimt den Schnitt auf die neue Aufnahme neu und benennt, was nicht folgen konnte. Fange niemals von vorne an; jede Korrektur ist eine Bearbeitung vondoc.json.
Ein anderswo gerenderter Bewegtgrafiken-Sequenz ist ein INPUT: sie wird als Medien-Overlay-Clip oder Hintergrund im Dokument abgelegt, niemals umgekehrt.
3. Die Poster und die Bewegung als Dokumente
Der Schnitt bewegt sich durch Daten. Ein frisches vos plan schlägt die Bewegung des Schnitts in doc.json aus den Rollen von LAUNCH.md vor: den Eingang der Karte, die ENDKARTE (die offizielle End card-Vorlage auf vos.so, platziert am Ende: die Karte zieht sich über einen einsekündigen Freeze ihres letzten Frames zurück, dann das Markenzeichen, die Überschrift Wort für Wort eintreffend, die Release-Zeile und die URL setzen sich auf dem Grund fest; ihre Clips sind mit from: endcard gestempelt), jede Vorlage, die with: an ihrem Anker nennt, einen Untertitel pro Schritt, einen Musikteppich und ein Klickgeräusch bei jedem Tastendruck, wenn der Take kein Mikrofon hat; jeder Vorschlag trägt eine stabile ID (bed, click-<n>, caption-<step>). Bei einem vorhandenen Schnitt schlägt --motion erneut vor; eine Aktualisierung tut dies nie, sodass eine gelöschte Endkarte gelöscht bleibt. Eine Vorlage ist ein einfacher Take aus einem Regal, dessen Clips stabile IDs tragen; eine Referenz ist ein Titel im offiziellen Regal ("End card", "Split cover, square"), eine vos-ID oder ein Dokument auf der Festplatte. Öffne den Take im Studio und was du siehst, ist das, was das Kit rendert.
vos plan take --motion --release v2.1
Ein Poster ist ein DOKUMENT, ein einfacher Take: die Karte platziert durch frame.inset (ein negativer Wert lässt es über den Rand laufen), geneigt durch die Ruheposition der Neigungsspur, die Wörter und das Markenzeichen als Overlay-Clips mit stabilen IDs (stage-title, stage-kicker, stage-brand, stage-mark), und ein nachfolgendes hold auf dem letzten Segment, dessen START das Standbild ist. Erstelle eines pro Seitenverhältnis-Klasse, die das Release benötigt (landscape, square, portrait, tile), jedes aus dem eigenen Filmmaterial des Takes:
cp -r take poster/landscape # oder vos duplicate <take vosId>, dann fetch --media
vos plan poster/landscape --style <poster vosId|doc.json> --headline "…" --kicker "…"
vos frames poster/landscape --frame <rest>; vos validate poster/landscape
vos push poster/landscape --folder <project-slug> --label "poster, landscape"
plan --style <poster> kopiert das LAYOUT (die Platzierung und Präsentation der Karte, die Bühnenclips mit den Wörtern des Releases, eingefügt aus LAUNCH.md oder den Flags, den Rest geneigt, das Hold) auf den Take und behält das eigene Seitenverhältnis, die Chrome und den Schnitt des Takes bei; das Markenzeichen der Marke aus BRAND.md logoUrl wird in brand/ für stage-mark geholt, und was nicht folgen konnte, wird genannt. Verenge die Segmente auf den Moment (einen Zoom-Höhepunkt, die beruhigte Antwort nach einem Klick), sodass der Rest das Feature ist, niemals die Kälte-Eröffnung; das Produkt kann im Inneren der Karte WEITERSPIELEN bis zum Hold. Betrachte dann den Rest-Frame: ein Poster wird mit dem Auge beurteilt, bevor es gepusht wird. Ein Mensch öffnet es im Studio und zieht die Karte, tippt die Wörter an Ort und Stelle neu, verschiebt das Hold; vos pull --media bringt das zurück, und das nächste Release formuliert es mit demselben plan --style aus seinem eigenen gepushten Dokument neu.
4. Ausliefern
vos deliver take --to cws,producthunt,x,linkedin,og,github,youtube --release v2.1
Ein Durchlauf, und der Befehl entscheidet, was du früher von Hand entschieden hast:
- Die Momente. Standbildzeiten stammen aus der GESCHICHTE: das Ende jedes Schrittes plus ein Beruhigen (das Ende des Wartens, das einem Klick folgt), dann die Zoom-Höhepunkte, dann eine Streuung. Jeder Kandidat wird einmal als die echte Seite gelesen; Leerstellen werden verworfen, zwei eines Frames werden zu einem zusammengefasst, jeder verworfene wird in
skipped[]genannt.--times step:<id>[+offset]benennt einen. - Screenshots sind die echte Seite, randlos: das Store-Standbild und die Galerie entfernen standardmäßig den Zoom, die Neigung und die Chrome des Schnitts (
--composedbehält sie, und der Bilddurchlauf verweigert