Vergiss Codex vs. Claude Code, Goal Buddy löst endlich beide Probleme

AAI LABS
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00Das ist Gary die Schnecke, und er hat eine Marktlücke erkannt, um eine Dating-Plattform für Schnecken zu bauen
00:00:04aber da er extrem langsam ist, möchte er, dass Claude Code seine langwierigen Aufgaben autonom erledigt
00:00:09Glücklicherweise sind Agenten mittlerweile sehr gut bei langwierigen Aufgaben. Claude Code hat einen
00:00:13Goal-Befehl, der den Agenten einfach so lange laufen lässt, bis die Aufgabe erledigt ist, aber während unseres
00:00:18Tests haben wir viele Probleme mit dem Goal-Befehl festgestellt. Da Gary kürzlich eine
00:00:22Scheidung durchgemacht hat und wir wollen, dass er glücklich ist, haben wir dieses Open-Source-Tool gefunden, das das Problem tatsächlich löst
00:00:28und es funktioniert nicht nur mit Claude Code, sondern auch mit Codex, und verbreitet Liebe, genau wie deine Mutter, die ich
00:00:32mir sicher bin, liebt dich genauso sehr wie dein angestelltes Geschwisterkind. Claude Code hatte zuvor einen Befehl namens
00:00:38Goal veröffentlicht, der den Agenten so lange arbeiten lässt, bis eine bestimmte Bedingung erfüllt ist. Wir haben diesen auf unserem
00:00:42Kanal nicht behandelt, aber du kennst ihn wahrscheinlich schon. Davor gab es ein Plugin namens Ralph Wiggum,
00:00:47das viel Aufmerksamkeit erregte und im Grunde das Gleiche tat; es benutzte Hooks, um den Prompt
00:00:52zurück an Claude Code zu geben, bis die Bedingung tatsächlich erfüllt war. Aber die Sache ist, diese Bedingungen müssen ein
00:00:57exakter Treffer sein, weil die Ralph-Schleife ein Shell-Skript verwendet, um die Bedingung buchstäblich zu prüfen, wie
00:01:02der Sicherheitsbeamte am Flughafen, der dich nicht durchlässt, weil dein männliches Körperspray über dem Gepäck-
00:01:06limit liegt. Der Goal-Befehl funktioniert anders: Er nimmt die Bedingung und die bisherige Konversation und gibt sie
00:01:11an ein kleines Modell, nämlich Haiku, und dieses Modell evaluiert intelligent, ob die Aufgabe erledigt ist oder nicht.
00:01:17Es gibt eine Ja-oder-Nein-Entscheidung zurück, und ein Nein sagt Claude, weiter an derselben Aufgabe zu arbeiten, wie wenn dein Chef
00:01:22dir sagt, du sollst die Benutzererfahrung verbessern, weil er einfach einen Button auf der Seite nicht finden kann. Das macht also
00:01:27die Bewertung subjektiv, und für Dinge, die wir nicht selbst quantifizieren können, ist das eine echte Verbesserung.
00:01:32Der Goal-Befehl funktioniert für viele Aufgaben gut, hat aber immer noch viele Probleme. Das erste Problem ist, dass
00:01:37er keine Wissensdatenbank oder kein Dateisystem verwendet, das den Fortschritt der Aufgabe verfolgt, und da er das
00:01:42nicht tut, wird die einzige Quelle der Wahrheit für den Agenten der Chat-Kontext. Das könnte dich
00:01:47triggern, da es dein Vater war, der das Krypto-Vermögen auf einen Zettel schrieb, der vom Kühlschrank fiel, zurück im
00:01:52Jahr 2017. Sobald die Sitzung aus irgendeinem Grund endet und das Ziel nicht erreicht wurde, kannst du es zwar mit
00:01:58dem Claude-Resume-Befehl fortsetzen; das Ziel geht nicht verloren, aber der einzige Weg, wie er weiß, wo er aufgehört hat, ist der
00:02:03Chat-Kontext, und da dieser Befehl für langwierige Aufgaben gedacht ist, nicht für einfache, können Dinge dazwischen
00:02:08durcheinandergeraten. Und natürlich, wenn der Goal-Befehl stundenlang läuft, wird Kontext-Überlastung und das Erreichen der Kompaktierung
00:02:13irgendwann garantiert ein echtes Problem. Nach der Kompaktierung verschlechtert sich der Output des Agenten;
00:02:18er fängt an, sich wie meine Oma zu verhalten, die wegen ihrer Demenz anfängt, den Namen
00:02:22dieses Kanals zu vergessen. Ich brauche euch Leute, die das letzte Video für sie ansehen. Ein weiteres Problem ist, dass er Aufgaben
00:02:27nicht in kleinere unterteilt. Stattdessen nutzt er einfach den Hauptagenten und führt die Aufgabenzerlegung
00:02:32von alleine durch, so wie Claude Code es normalerweise tut, also gibt es keinen strukturierten Plan und der Agent könnte den Überblick verlieren,
00:02:37was noch zu tun ist. Und obwohl dies in einigen Fällen gut funktionieren mag, ist eine unklare
00:02:42Definition davon, wie “erledigt” aussieht, für Agenten nie das Richtige. Das Goal verlässt sich vollständig auf
00:02:47das Modell, um den Abschluss zu bewerten, daher ist es in einigen Fällen möglicherweise nicht so effektiv. Es ist besser als
00:02:52Ralph Wiggum, das durch die Verwendung von Skripten komplett strikt ist, aber zumindest sollte es eine Metrik geben,
00:02:56die dem Agenten sagt, wie “erledigt” aussehen könnte, genau wie dein Hochzeitsfotograf, der immer sagte
00:03:01“noch ein Foto”, bis das ganze Ereignis vorbei war. Hier versagt also das Goal, und diese Dinge
00:03:05sehen vielleicht nicht nach viel aus, aber in wirklich schweren Arbeitsabläufen können sie einige ernsthafte Probleme verursachen.
00:03:10Nun, Goal Buddy ist ein Tool, das mit einem Zweck entwickelt wurde: den Goal-Befehl tatsächlich so funktionieren zu lassen,
00:03:16wie er sollte. Es löst alle Probleme, über die wir gerade gesprochen haben, aber es bekommt nicht wirklich so viel
00:03:20Aufmerksamkeit, wie es sollte, angesichts dessen, wie nützlich es ist. Es ist wie das heiße Babysitter-Mädchen, nur dass sie nicht
00:03:25mit dir flirtet, sondern einfach auf deine langwierigen Aufgaben aufpasst. “Goal” bewahrt den Arbeitsstatus nicht
00:03:30lokal, also behebt dieses Tool das und zwingt “Goal”, den lokalen Status zu lesen und zu aktualisieren, anstatt sich auf
00:03:36den Chatverlauf zu verlassen. Außerdem endet es mit einem Beweis, damit der Agent tatsächlich weiß, wie “erledigt” aussieht, bevor
00:03:42er anfängt. Um den Fortschritt zu verfolgen, enthält es auch ein ganzes Dashboard, auf dem du zusehen kannst,
00:03:46wie dein Agent arbeitet, während er arbeitet. Um das alles zu bewältigen, basiert es auf drei Agenten, nämlich dem
00:03:51Scout, dem Worker und dem Judge; im Grunde ein Y-Combinator-Startup-Team, bei dem einer die ganze Arbeit macht, einer
00:03:56ihm dabei zuschaut und einer beide auf Twitter beurteilt. Die Installation ist ziemlich unkompliziert: einfach
00:04:01den Installationsbefehl kopieren und in deinen Projektordner einfügen. Es wird als Plugin installiert,
00:04:06verfügbar für sowohl Claude Code als auch Codex. Sobald du eine neue Sitzung startest, kannst du den Befehl
00:04:10sehen, der zur Verfügung steht. Diese drei Agenten haben also jeweils eine streng definierte Rolle und Zugriffsebene. Da dieses
00:04:16Tool auch für Codex gebaut ist, sind die Agenten in TOML definiert anstatt in dem standardmäßigen Markdown. Der
00:04:21erste Agent ist der “Judge”, der nur Lesezugriff hat. Er analysiert skeptisch schwierige Entscheidungen wie riskanten
00:04:26Scope, widersprüchliche Quellen und andere Muster, um sicherzustellen, dass die Aufgabe sicher abgeschlossen wird. Seine
00:04:31Anweisungen verbieten das Bearbeiten, weil er nur für das Treffen von Urteilen existiert, sonst nichts. Und da seine
00:04:36Aufgabe hochkritisch ist, ist die Überlegung dieses Agenten auf das Höchste eingestellt, damit Entscheidungen ordnungsgemäß getroffen werden.
00:04:42Es ist genau wie wenn du vier Stunden lang mitten in der Nacht diesen einen Text an deinen Schwarm geschrieben hast.
00:04:47Nachdem er fertig ist, gibt er eine JSON-Struktur mit den genehmigten und
00:04:52abgelehnten Entscheidungen zusammen mit der Begründung zurück. Der Scout ist ein weiterer schreibgeschützter Agent, der eine aktive Aufgabe
00:04:57abbildet und eine kompakte Nachweisquittung dafür erstellt. Da seine Aufgabe nur darin besteht, den Status der Aufgabe zu überprüfen,
00:05:02wird sein Denkaufwand niedrig gehalten, genau wie beim Türsteher deines Lieblings-Stripclubs: es interessiert ihn eigentlich
00:05:07nicht so sehr. Und dann gibt es den “Worker”-Agenten, den einzigen mit Bearbeitungszugriff. Er erledigt die eigentliche Arbeit und
00:05:12ihm ist es nur erlaubt, eine Aufgabe nach der anderen auszuführen. Es gibt auch die PM-Rolle, das ist der Hauptthread, der
00:05:17den Workflow koordiniert. Er verhält sich wie ein tatsächlicher Projektmanager, der die minimal nötige Arbeit leistet.
00:05:22Es ist die einzige Instanz, die die Aufgabe tatsächlich als “erledigt” markieren kann. Der Kern-Workflow beginnt damit, die
00:05:27Absicht der Aufgabe in klaren Worten auszudrücken, nicht vage, wie wir Homo Sapiens es normalerweise tun, sondern auf eine Art,
00:05:33die der Agent richtig verstehen kann. Dann wird das “Orakel” definiert. Das Orakel ist im Grunde ein beobachtbares
00:05:38Signal, das das Ergebnis identifiziert. Es ist das, woran das System iteriert, um zu sehen, ob die Aufgabe
00:05:43als “erledigt” markiert werden kann oder nicht. Es könnte alles sein: eine Test-Suite, ein Browser-Rundgang, irgendwelche Artefakt-Benchmarks oder der Code,
00:05:49der meine Mikrowelle in eine Zeitmaschine verwandelt, denn warum nicht? KI-Agenten machen mittlerweile alles.
00:05:54Dann ist der nächste Schritt: “Surface”. Er unterteilt die Aufgabe in umsetzbare Schritte, erstellt das Dashboard und bildet
00:06:00die Aufgaben in einem visuellen Format ab. Das letzte Stück ist der PM; er ist in diesem Fall der Manager und lässt das “Goal” laufen,
00:06:06bis das abschließende Audit das “Goal” als erfüllt markiert. Um Goal Buddy zu verwenden, führst du einfach den “Goal Prep”-Befehl aus.
00:06:11Dies ist der Befehl, der den Workflow initialisiert, und du definierst das Ziel, das du erreichen möchtest. Er
00:06:16stellt zunächst sicher, dass die Agenten installiert und einsatzbereit sind. Er leitet dann den Workflow ein, aber im Gegensatz
00:06:21zum nativen Goal-Befehl ist er extrem selbstbewusst und beseitigt zuerst seine eigenen Unklarheiten, indem er dir
00:06:27Fragen stellt, sodass du die Implementierung klar definieren kannst. Und genau wie deine misstrauische Ehefrau
00:06:32wird er so lange Fragen stellen, bis er den ersten Schritt verstanden hat. Er konzentriert sich darauf, die Goal-Dateien zu erstellen. Er platziert
00:06:38die ursprüngliche Anfrage zusammen mit unseren Antworten und bildet sie dann auf das richtige Ziel in für Agenten
00:06:43verständlicher Sprache ab. Er enthält eine Zusammenfassung aller Informationen und definiert dann das Orakel,
00:06:48was der wichtigste Teil ist. Das Orakel für diese Aufgabe ist direkt: Alle Tests müssen bestehen, mit
00:06:53ordnungsgemäßem Verhalten. Diese Art von Ziel ist spezifisch, weil es programmgesteuert
00:06:57ausgewertet werden kann, im Gegensatz zu deiner Ausrede von gestern Abend, die deine Frau dir absolut nicht abkauft. Goal Buddy unterteilt den ganzen Workflow
00:07:03in kleine, machbare Aufgaben. Diese werden “Slices” genannt, aber anders als in der echten Welt spielt die Größe hier keine Rolle,
00:07:08denn ein kleines “Slice” bedeutet nicht eine kleine Aufgabe; es bedeutet etwas, das sicher ist, leicht verifiziert werden kann
00:07:14und individuell ausgeführt werden kann. Er definiert explizit die sichere “Slice”-Größe im Dokument. Er erstellt
00:07:19die state.yaml, die das Projekt und die Aufgaben verfolgt und definiert, wie die PM-Schleife aussehen würde. Die state.yaml besteht aus
00:07:26allen Zielen und Regeln mit allen Aufgaben, unterteilt nach ihren IDs und dem zugewiesenen Agenten. Er enthält
00:07:31ein Feld zur Verfolgung der aktiven Aufgabe. Er erwähnt auch das verknüpfte Dashboard. Er listet alle “To-Do”-
00:07:36Aufgaben und die laufenden Aufgaben auf. In unserem Fall ist der “Scout”-Agent gerade aktiv und bildet alle
00:07:42Dateien und Endpunkte ab. Um die Schleife zu starten, kopierst du einfach diesen Befehl und führst ihn aus. Er weist Claude an,
00:07:47das Ziel festzulegen, alles in der goal.md-Datei zu erledigen. Von dort aus wird er die erste aktive
00:07:52Aufgabe wie ein König aufgreifen und dann seine untergeordneten Agenten rufen, um sie auszuführen. Sobald der Scout abgeschlossen hat,
00:07:58die Arbeit, aktualisiert er die Fortschrittsdatei mit all seinen Erkenntnissen und dokumentiert sie in einem separaten Verzeichnis.
00:08:03Er aktualisiert auch das Board von “aktiv” auf “erledigt”. Dann greift die Schleife die nächste Aufgabe auf, markiert sie als
00:08:08aktiv und startet den “Judge”-Agenten. Der Judge überprüft kritisch die Ergebnisse und sequenziert den Bericht
00:08:13in die wenigstmöglichen vertikalen “Slices”, was die Aufgabenzerlegung für den “Worker” ist, um sie
00:08:18unabhängig auszuführen. Er aktualisiert dann den “Slice”-Zähler und aktualisiert die Statusdatei entsprechend. Jede Aufgabe
00:08:22Jede Aufgabe listet explizit die erlaubten Dateien auf, wie sie zu prüfen sind und wann Schluss ist; so wird jeder Teilabschnitt definiert.
00:08:28damit Agenten eine klare erwartete Ausgabe, Prüfungen und alle notwendigen Details haben, dann eins nach dem anderen
00:08:33er den “Worker”-Agenten und beginnt mit dem ersten “Slice”. Der Fortschritt jedes Agenten kann auf dem Dashboard verfolgt werden.
00:08:39Du wirst wissen, was jede Aufgabe gerade tut, welcher Agent aktiv ist, welche Aufgaben in der Warteschlange stehen und
00:08:44welche abgeschlossen sind, sodass du Dinge nicht selbst überwachen musst und tatsächlich deinen Kindern
00:08:48die Zeit geben kannst, die sie brauchen. Sobald alle Aufgaben abgeschlossen sind, führt er das letzte Audit als PM durch,
00:08:53um sicherzustellen, dass alle Tests ordnungsgemäß durchgeführt wurden. Sobald das Audit abgeschlossen ist, markiert er die “Judge”-Aufgabe
00:08:58des letzten Audits als erledigt und markiert dann das “Goal” als abgeschlossen. Danach musst du mit dem Beten anfangen
00:09:03und hoffen, dass diese Agenten nicht halluziniert haben. Insgesamt funktionierte dies angesichts der
00:09:09Komplexität und des Umfangs der App, die wir ihm gegeben haben, ziemlich gut, aber wir denken, eine effektivere Parallelisierung könnte
00:09:13hinzugefügt werden, weil er alles nacheinander erledigte. Er hat eine Aufgabe nach der anderen behandelt und nicht von
00:09:18Claude Codes Parallelisierungsfunktionen Gebrauch gemacht. Dario wäre tatsächlich enttäuscht gewesen, das zu sehen,
00:09:23aber angesichts dessen, wie gut er den Workflow geplant hat, funktionierte es ziemlich gut. Auch, wenn dir unsere Inhalte gefallen,
00:09:28überlege dir, den “Hype”-Button zu drücken, weil es uns hilft, mehr Inhalte wie diesen zu erstellen und mehr Menschen zu erreichen.
00:09:33Wir wollten “Goal Buddy” auch an etwas Allgemeinerem testen, wie dem Design einer UI, um zu sehen, wie es
00:09:38Aufgaben handhabt, die nicht programmgesteuert evaluiert werden können. Der vorherige Test war ein spezifischer Workflow mit
00:09:44klaren Bestehen- und Nicht-Bestehen-Kriterien, aber genau wie bei dir, wenn du einen frischen Haarschnitt vom Friseur bekommst, haben einige Aufgaben
00:09:49einfach keine. Also gaben wir zuerst dem üblichen Goal-Befehl einen vagen Prompt. Er initialisierte die Goal-
00:09:54Aufgaben, konsultierte den Berater und gab in kürzester Zeit eine Website aus. Da er faul war, erstellte er nur eine einfache HTML-Seite
00:10:00und entschied sich für kein Framework, aber die Landingpage sah nicht schlecht aus. Also gaben wir denselben Prompt an
00:10:05Goal Buddy ebenfalls. Sobald er startete, folgte er dem gleichen Workflow und gab eine ähnliche Befragungssitzung,
00:10:10um die Absicht mit uns zu klären. Hier fragte Goal Buddy tatsächlich auch nach dem Tech-Stack. Normalerweise
00:10:14würde ich das “Küssen” nennen, aber da ich meinen KI-Agenten ernst nehme, nenne ich es “gründlich sein”. Ähnlich
00:10:20erstellte er das Board und die goal.md-Datei und übersetzte unsere ursprüngliche Anfrage in ein richtiges Ziel. Er hat auch
00:10:26das Orakel richtig identifiziert, aber das Orakel in der vorherigen Aufgabe war einfach; es musste nur alle
00:10:31Tests bestehen. Dieses hatte andere Ziele: Es definierte die Aufgabe als “komplett”, wenn der Dev-Server oben wäre und
00:10:36läuft und Browser-Rundgänge bestätigen, dass alle Abschnitte wie definiert funktionieren. So verwandelte er eine
00:10:41nicht-quantifizierbare Aufgabe in etwas Quantifizierbares. Er erstellte auch die state.yaml erneut mit den Orakel-
00:10:47Regeln, Agenten und allen aufgelisteten Aufgaben und fing dann an, auf die gleiche Weise zu arbeiten. Er brauchte eine längere
00:10:52Zeit als der normale Goal-Befehl, aber er implementierte die App ordnungsgemäß. Das wird kein
00:10:57Problem für Gary die Schnecke sein, aber du solltest in der Zwischenzeit ein paar Liegestütze machen; ich kann sehen, dass du dick geworden bist.
00:11:02Vergleichsweise schnitt die ganze Website deutlich besser ab als das, was der einfache Goal-Befehl erstellte.
00:11:07Wenn du wirklich ein KI-B2B-SaaS-Gründer sein willst, der gerne baut, anstatt nur Tutorials zu schauen,
00:11:12dann solltest du ein “AI Labs Pro” sein. Du bekommst dort tatsächlich gleichgesinnte Nerds wie unser Team mit
00:11:17Ressourcen aus den Videos und vielen anderen Goodies. Der Link wird in der Beschreibung sein und
00:11:22du kannst das auschecken. Das bringt uns zum Ende dieses Videos. Wenn du den Kanal unterstützen
00:11:27und uns helfen möchtest, weiterhin Videos wie dieses zu erstellen, kannst du das mit dem “Super Thanks”-Button unten tun. Wie immer,
00:11:32danke fürs Zuschauen und ich sehe dich im nächsten.

Key Takeaway

Goal Buddy verbessert die autonome Aufgabenabarbeitung in Claude Code und Codex, indem es den nativen Goal-Befehl um eine lokale Statusverwaltung, eine strukturierte Drei-Agenten-Architektur und definierte Erfolgsmetriken (Orakel) erweitert.

Highlights

  • Der native Goal-Befehl in Claude Code leidet unter Kontext-Überlastung und mangelnder Aufgabenzerlegung, da er keine lokale Zustandsverfolgung nutzt.

  • Goal Buddy verwendet eine Architektur aus drei spezialisierten Agenten: einen lesenden Judge für kritische Entscheidungen, einen Scout für Statusprüfungen und einen schreibenden Worker für die Implementierung.

  • Das Tool führt eine lokale state.yaml-Datei ein, um den Fortschritt außerhalb des Chat-Kontexts konsistent zu verfolgen.

  • Die Installation erfolgt als Plugin für Claude Code oder Codex durch einfaches Kopieren eines Installationsbefehls in den Projektordner.

  • Goal Buddy wandelt vage Anforderungen durch eine Befragungssitzung in quantifizierbare Ziele um und definiert 'Orakel' als beobachtbare Signale für den Abschluss einer Aufgabe.

  • Bei der UI-Entwicklung lieferte Goal Buddy im Vergleich zum nativen Befehl durch die explizite Definition des Tech-Stacks und einheitlicher Orakel-Regeln ein qualitativ höheres Ergebnis.

Timeline

Probleme des nativen Goal-Befehls

  • Der native Goal-Befehl verliert bei Sitzungsabbrüchen den Fortschritt, da er ausschließlich auf den Chat-Kontext als Quelle der Wahrheit angewiesen ist.
  • Langwierige Aufgaben führen durch Kontext-Überlastung und automatische Kompaktierung zu Qualitätsverlusten im Output des Agenten.
  • Eine fehlende Aufgabenzerlegung in kleinere, kontrollierbare Schritte führt bei komplexen Vorhaben oft zum Verlust des Überblicks.

Der Versuch, komplexe Aufgaben autonom zu lösen, scheitert am nativen Befehl, weil dieser Bedingungen subjektiv durch ein kleines Modell wie Haiku bewerten lässt. Da keine lokale Datenbank oder Dateisysteme den Zustand verfolgen, führt Kontext-Überlastung zu ineffizientem Verhalten. Zudem fehlt ein strukturierter Plan, wodurch der Agent bei größeren Projekten die Zielsetzung aus den Augen verliert.

Funktionsweise und Architektur von Goal Buddy

  • Goal Buddy erzwingt das Lesen und Aktualisieren eines lokalen Status anstelle einer reinen Abhängigkeit vom Chatverlauf.
  • Das System basiert auf drei Rollen: dem Judge (skeptische Analyse), dem Scout (Statusabbildung) und dem Worker (Ausführung).
  • Ein zentraler Projektmanager-Thread koordiniert den Workflow und markiert Aufgaben erst nach einem erfolgreichen Audit als erledigt.

Das Plugin ist für Claude Code und Codex konzipiert und nutzt TOML-Definitionen für die Agenten. Der 'Judge' analysiert kritische Entscheidungen mit höchster Rechenleistung, der 'Scout' erstellt kompakte Nachweise und der 'Worker' führt isolierte Aufgaben einzeln aus. Ein begleitendes Dashboard ermöglicht die visuelle Überwachung des Fortschritts in Echtzeit.

Implementierung und Validierung durch Orakel

  • Der 'Goal Prep'-Befehl initialisiert den Prozess, indem er durch Rückfragen die Absicht des Nutzers präzisiert.
  • Orakel dienen als beobachtbare Signale, die deterministisch definieren, wann eine Aufgabe als 'erledigt' gilt.
  • Arbeitsabläufe werden in 'Slices' unterteilt, die sicher, verifizierbar und unabhängig ausführbar sind.

Goal Buddy verlangt die Definition eines Orakels – etwa durch Test-Suiten oder Browser-Rundgänge –, um nicht-quantifizierbare Aufgaben in messbare Ziele zu verwandeln. Die Speicherung erfolgt in einer state.yaml-Datei, die jeden Schritt dokumentiert. Bei Tests zur UI-Erstellung übertraf dieses strukturierte Vorgehen den nativen Befehl deutlich, da der Agent den Tech-Stack proaktiv definierte und eine konsistentere App-Struktur lieferte.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video