Einen Take aus seinen Evidenzen schneiden
Du schneidest eine AUFNAHME, die jemand gemacht hat (einen vosso Take: recording.webm +
cursor.json + meta.json + doc.json), nicht eine Neuaufnahme. Eine Aufnahme aus
einem Skript ist der Skill product-video; Programme sind vos-create/vos-remix.
Die Schleife ist: sehen → erzählen → per Ausnahme entscheiden → verifizieren → pushen → (Mensch
prüft) → neuschneiden. Jeder Schritt benennt das Verb, das ihn ausführt. Das Dokument ist
doc.json; der Vertrag für seine Felder und Einheiten ist unter
https://vos.so/llms-full.txt. Nichts hier zeichnet den Take eines Menschen neu auf, niemals:
Ein Schnitt kann Footage nicht reparieren, und wenn das Footage die Anfrage nicht tragen kann,
sagst du das im Hinweis und stoppst.
Einrichtung
npm i -D @vosjs/cli # fetch, digest, plan, frames, render, push, pull
Anmeldeinformationen, in dieser Reihenfolge, niemals ausgeben: VOS_API_KEY, dann die erste
Zeile von ~/.config/vos/credentials, dann vos login (eine Browser-Anmeldung, die einen
Schlüssel für diesen Rechner generiert). Schlüssel erstellen NUR private Arbeiten und können
niemals veröffentlichen. Ein Chromium wird für digest, frames und render benötigt.
0. Grundregeln, die alles unten stehende überschreiben
- Lies niemals das Video. Deine Augen sind
vos digest:digest.json, dannsheet.png, dann ein Zuschnitt nur dort, wo du entscheiden musst. Ein 90-Sekunden-Take hat ~35 Momente und ~25-40k Bild-Token, wenn du jedes Bild liest; das Blatt plus die entscheidenden Zuschnitte hat ~10k. Das Ereignis "done" gibt die Schätzung aus. - Bearbeite per Ausnahme. Die Planer (Zoom, Geschwindigkeit, Neigung) haben bereits
beantwortet, WO jeder Klick, jede Tipp-Sitzung, jeder Scroll-Lauf und jede Leerlauf-Lücke ist.
planim Digest enthält ihre Spannen, undproposedbenennt diejenigen unter jedem Moment. Behalte, führe zusammen, verwerfe oder verschiebe diese; füge nur hinzu, was ein Planer nicht wissen kann (welcher einzelne Klick einen Beat, eine Beschriftung, eine Schnelldurchlauf verdient, der langweilig, aber nicht Leerlauf ist). Jede von dir berührte Spanne trägt"source": "manual". Ein Vorschlag, den du VERWIRFST, kommt inrejected([{id, lane, in, out}], die Spur und ihre Quellausdehnung), damit keine Neuplanung und keine durchplan --reusegetragene Neuaufnahme diesen Beat erneut vorschlägt; das Studio schreibt ihn selbst, wenn ein Mensch eine Auto-Spanne löscht. - Zeige mit einer Ebene, nicht der Kamera. Wenn der Schnitt auf eine Komponente (einen Button,
eine Karte, einen Code-Block) zeigt und der Zoom Pixel vergrößern würde, zeichne sie als
HTML-Ebene in
doc.jsonneu (overlays[]mitkind: "html": das Markup, das CSS im eigenen Typ des Produkts, die Design-Box in 1080p px), platziert neben ihrem Subjekt, niemals darüber. Du hast die echten Komponenten des Produkts im Repository; verwende sie. Das Markup ist wohlgeformtes XML, undvos validatesagt, was nicht malen würde; eine CSS-Animation läuft nach der Wanduhr und wird zugunsten vonanimundmotionabgelehnt. - Die Einheiten des Doks, kopiert, nie umgerechnet. Der
focuseines Moments istcx/cyeiner Zoom-Spanne; seinrectist das, was der Zoom enthalten muss.source-Ausdehnungen sind Footage-Sekunden (Zoom/Geschwindigkeit/Neigung/Segmente);output-Ausdehnungen sind gerenderte Sekunden (Overlays/Audio). Pixelwerte an irgendeiner Stelle sind der Fehler Nr. 1. - Menschliche Bearbeitungen sind heilig.
doc.manualim Digest zählt Spannen, die ein Mensch entschieden hat; ein Push, der einen Knoten berührt, den der Mensch seit deiner Basis bearbeitet hat, gibtprotected_conflictzurück. Behalte ihre Werte, es sei denn, die Anfrage nennt genau diesen Knoten. - Drei Runden allein, dann ein Mensch. Runde = Bearbeiten → Validieren → Frames → Beurteilen. Wenn es in drei nicht klappt, pushe die beste Runde und sage warum.
- Die Anfrage entscheidet; die Rezepte des Ordners rangieren als nächstes; diese Standardwerte zuletzt. Eine Rezeptzeile, die die jüngsten Mitglieder widersprechen, wird in deinem Hinweis als veraltet bezeichnet, nicht befolgt.
1. Sehen
vos fetch <vosId> --media # einen gehosteten Take, den du nicht aufgenommen hast (Dok + Footage-Verzeichnis)
vos pull <take> --media # ein Take-Verzeichnis, das bereits mit vos.so verknüpft ist
vos folder pull <slug> --media # die Takes eines Projekts, mit Rezepten
vos plan <take> --style <seed doc.json|vosId> # in einer Serie: der Stil des Seeds, per Daten
vos digest <take> [--transcript whisper.json] [--style <seed>]
Lies in dieser Reihenfolge:
digest.json→take(Dauer, Seite, hat Cursor/Mikrofon),moments(id, art, Quell-/Ausgabefenster, Fokus, Rechteck, Aktivität, vorgeschlagen, gesagt),plan,doc.manual. Ein Take mithasCursor: false(ein Browser-Recorder-Take) listet nur Kopf-/Schwanz-/Szenen: Tempo nachAktivität, Zoom nur, wo die Anfrage einen Ort nennt, und sage im Hinweis, dass der Take keine Cursor-Spur hatte.sheet.png→ die Zuschnitte in zeitlicher Reihenfolge, IDs eingebrannt. Dies ist der Film auf einen Blick.m<nn>.crop.pngfür die Momente, die die Anfrage oder das Rezept entscheidend machen;m<nn>.full.pngnur für Kontext (welche Seite, welcher Abschnitt).
Einen Zuschnitt lesen: Was ist im Fokus (ein Bedienelement, ein Feld, Inhalt); was sagt es
(die Bezeichnung, der eingegebene Wert); ist die Folge des Klicks im nächsten Moment-Frame
oder in einem scene-Moment direkt danach sichtbar. Eine scene ist ein Frame-Diff-Sprung
(eine Navigation, ein Dialog); sieh dir ihr volles Frame an, um sie zu benennen.
Zwei Dinge, die die Zuschnitte sagen, die die Klickliste nicht sagt: Ein Klick-Cluster, dessen
rect den Großteil des Frames ausmacht, ist ein ZIEHEN (Zielen, Scrollen, Bewegen eines Dings),
kein Ziel; und eine "Leerlauf"-Lücke, deren Aktivität über ~0.1 bleibt, ist das ABSPIELEN des
Videos, kein Leerlauf. Beides will nicht den Vorschlag des Planers.
Wenn ein Ordner involviert ist, lies JEDE .md darin (eigene und geerbte), bevor du irgendetwas
entscheidest.
2. Erzählen
Schreibe 3-6 Beats in deine Arbeitsnotizen, jeweils mit ihren Moment-IDs, was sie ZEIGEN (aus
den Zuschnitten) und wofür sie DA SIND (aus dem Rezept, dem Seitentitel, gesagt oder der
Anfrage). Beispiel:
B1 m01-m04 die Galerie: durchsuchen, ein Programm auswählen (weit geöffnet, ein Kartenzoom)
B2 m05-m06 Remix öffnet das Studio (die Szene ist der Höhepunkt)
B3 m07-m12 Regler: fünf Schieberegler-Ziehungen auf dem Remix-Panel (ein gehaltener Zoom, 2× über die Mitte)
B4 m13-m14 das Ergebnis spielt ab (loslassen, beruhigen)
Keine Anfrage kam mit dem Take? Leite eine aus der Aufnahme ab (was sie zeigt, wo sie gezeigt werden würde, wie lang sie sein sollte) und GIB SIE im Versionshinweis AN, damit der Mensch die Anfrage vor dem Schnitt korrigiert, wenn sie falsch ist.
Wenn die Anfrage einen Beat nennt ("mache den Export-Teil knackiger"), ordne ihn ZUERST Moment-IDs zu und berühre nichts außerhalb dieser.
3. Entscheiden, per Ausnahme
Pro Beat, gegen plan und das Rezept:
- Zoom. Behalte die Planer-Spanne, wenn sie den Beat einrahmt; füge benachbarte Vorschläge
zu einer gehaltenen Spanne zusammen, wenn sie ein Beat sind (ein Zoom pro Beat, niemals pro
Klick); verwerfe einen Vorschlag bei einem Klick, der kein Beat ist; füge eine Spanne bei
einem einzelnen Klick hinzu, den der Planer übersprungen hat, wenn der Zuschnitt zeigt, dass
er der Moment ist. Nivelliere vom Rechteck aus: Ein kleines Bedienelement möchte 1.8-2.2, ein
Panel 1.4-1.6; wenn das Ziel den Großteil der Frame-Breite ausmacht, entscheidet der
Framing-Lint über die Stufe, befolge ihn.
cx/cy= derfocusdes Moments. IDs, die du vergibst:u1,u2… In einer Editor-Aufnahme zoome auf die SPUR, in der eine Spanne erscheint, niemals auf die Leinwand, die gezogen wird. Gib einen Zoom VOR einem Klick frei, der navigiert, damit der Seitenwechsel breit abgespielt wird. - Geschwindigkeit. Behalte Vorschläge bei Tippen/Leerlauf/Scrollen; füge
2×-3×bei einer Strecke hinzu, derenAktivitätniedrig ist und kein Beat sie braucht, oder unter Zieh-Clustern; niemals über dem Höhepunkt eines Beats, niemals während der Wiedergabe. - Neigung. Nur, wenn der Kamerastil eine hat (
tiltStyle/die Persönlichkeit des Stils) und ein Beat eine Auszeichnung verdient. Eine Pose pro ~5s, ±5..18°. - Trimmen. Kopf und Schwanz: Schneide auf das erste und letzte, was wichtig ist (
segmente), lasse ~0,5s zum Beruhigen am Ende. Ladebildschirme werden weggeschnitten. - Text. Eine Beschriftung pro Beat, der etwas zu sagen hat, in einem Rhythmus (eine alle
5-10s, 2,5-4s jede, niemals zwei gleichzeitig), in den Worten des Produkts und der Absicht des
Videos; unteres Drittel
y ≈ 0.82; AUSGABE-Sekunden; niemals über dem geklickten Bedienelement (validate warnt). Gib ihr eineBox, wenn der Grund darunter hell ist (die Timeline eines Editors ist), und beurteile jede Beschriftung in ihrem eigenen Moment. Eine Beschriftung pro Film ist zu spärlich für einen Film, der einen Ablauf erklärt; Null ist nur richtig, wenn das Rezept oder die Anfrage keinen Text sagt. - Stil. In einer Serie:
vos plan --style <seed>BEVOR du schneidest: es kopiert diezoomStyle/zoomParams/speedParams/tiltStyle/frame/cursor/cam/exportdes Seeds und plant die Auto-Spannen darunter neu. Gib diese Zahlen niemals in einem Rezept wieder; das Seed-Dokument ist ihr Zuhause.
Schreibe den Patch als BEARBEITUNGEN an doc.json, niemals als Neuschreibung. Behalte jedes
Feld, das du nicht verstehst.
4. Verifizieren
vos validate <take> # sauber; LIES die Framing-Warnungen, behebe sie
vos digest <take> --no-frames # nach der Neubemessung: frische AUSGABE-Zeiten, gleiche Frames
vos frames <take> --at-moments --at-zooms --times 0,25%,50%,75%,100%
vos frames <take> --times <jeder Beschriftungsstart + 1> # jede Beschriftung auf ihrem eigenen Grund
vos render <take> check.webm --range a..b --draft # der Beat, der sich am meisten geändert hat
Beurteile die Standbilder gegen die Qualitätsschleife unter https://vos.so/llms-full.txt
und die Messlatte des Ordners: Unschärfe, Chrome, Cursor, Textleserlichkeit, erstes und letztes
Frame als Poster; der Money-Shot innerhalb von 3s; das Ende beruhigt; ≤1 Vollbild-Bang pro ~5s
(ffmpeg -vf "select='gt(scene,0.12)'" zählt sie). Ein moment-<id>-Standbild und sein
<id>.crop.png teilen sich eine ID: "was da war" neben "was der Schnitt zeigt".
5. Pushen
vos push <take> --label "<was, imperativ, ≤60 Zeichen>" --note "<die Anfrage, auf die du geschnitten hast; die Beats mit Quellsekunden; was du verworfen und hinzugefügt hast>" [--folder <slug>]
Die Basis kommt von vos.json. 409 stale_base → vos pull, erneut anwenden,
erneut pushen. 409 protected_conflict → behalte die Werte des Menschen, es sei denn, die
Anfrage nannte diesen Knoten (--override <id> nur dann). Ein 400 gibt das Feld und sein
Limit aus. Dann GET /api/vos/<id>, folge
contentUrls.thumbnail, und SIEH ES DIR AN, bevor du "erledigt" meldest.
6. Neuschneiden (der Mensch hat geprüft)
vos pull gibt die Zusammenfassung des Differs darüber aus, was sie geändert haben ("zoom z3: level
2.2→1.6; overlay c1 removed"). Das ist das Feedback, in den eigenen Worten der Daten:
Schneide das neu, was ihre WORTE verlangten, und nichts, was ihre HÄNDE bereits behoben haben.
Zähle die Runden. "Super" ist ihr Wort und der einzige Ausgang eines Seeds.
7. Merken (nur, nachdem der Mensch bei einem Seed freigegeben hat)
Speichere es und schreibe die Regeln auf; Zahlen bleiben im Seed-Dokument.
vos folder create "<serie>" --desc "<wofür es ist, ≤200 Zeichen>"
vos folder move <vosId> --to <slug>
vos recipe push CUT.md --folder <slug> # gilt für: takes, seed: <die vos id>
vos recipe push BRAND.md --folder <slug> # gilt für: any, seed: none
Ein Rezept wird in GROSSBUCHSTABEN benannt, so wie CLAUDE.md: Es ist die Datei, die die
Sammlung liest, bevor sie irgendetwas schneidet. Was du ablegst, wird mit seinem Stamm in
Großbuchstaben gespeichert, egal wie, sodass Terminal und Regal übereinstimmen.
CUT.md sagt, was eine Zahl nicht kann: das Beat-Vokabular, was eine Beschriftung bekommt und
was niemals, Haltelängen, die Titel/Ende-Konvention, das Längenband, was übersprungen werden
soll, und die Entscheidungen, die der Mensch IN das Seed korrigiert hat (aus dem Differ gelesen).
BRAND.md: Typografie, Palette, Hintergrund, Musik, die Stimme jeglichen Textes. Spätere
Mitglieder: Ziehe den Ordner, digest, plane --style vom Seed, schneide gegen CUT.md, pushe
--folder; eine Korrektur, die über zwei Mitglieder hinweg wiederkehrt (oder eine, die der
Mensch für alle angibt), wird unter ## Agent Notes angehängt, datiert, und die Regel darüber
wird neu geschrieben, um sie zu treffen (vos recipe push <file> --asset <id> ersetzt an Ort
und Stelle; der vorherige Text bleibt erhalten). Überschreibe niemals stillschweigend die Zeilen
des Besitzers.