Communitygithub.com

edvardgrishin27/frameproof

Der Agent sieht Videos ohne blinde Flecken und belegt dies mit Zeitstempeln. Offline, ohne API-Schlüssel.

Was ist frameproof?

Frameproof ist ein spezialisiertes Tool für KI-Agenten, mit dem Videomaterial pixelgenau analysiert und überprüft werden kann – völlig offline und ohne externe API-Schlüssel. Es erstellt einen Index aus allen Einzelbildern, optional mit Texterkennung (OCR) auf dem Mac, und ermöglicht eine nachweisgestützte Analyse. Jede Behauptung über den Bildschirminhalt muss mit einem Zeitstempel `[MM:SS / fNNNN]` belegt werden, der automatisch auf Gültigkeit geprüft wird. Der Agent kann über `frameproof search` schnell Text in Transkript und Bildschirmtext durchsuchen, gezielt Einzelbilder anfordern und seine Analyse mit `frameproof verify` auf Konsistenz testen lassen. Ein integrierter adversarialer Prüfmechanismus (`--plan`) erlaubt zudem eine ergebnisoffene Zweitansicht durch einen separaten Sub-Agenten, ohne dass die erwartete Antwort preisgegeben wird. Das Tool läuft auf macOS und Linux, benötigt nur ffmpeg und numpy, und unterstützt verschiedene Transkriptions-Engines (mlx-whisper, openai-whisper) sowie lokale OCR für Nicht-Mac-Plattformen.

Funktioniert mit~Claude Code✓Codex CLI~Cursor
npx skills add edvardgrishin27/frameproof

In Ihrer bevorzugten KI fragen

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

Dokumentation

frameproof — Videos ansehen und es beweisen können

Grundregel

Behaupte niemals, was auf dem Bildschirm war, wenn du das Bild nicht gesehen hast.

Das Werkzeug druckt ehrlich die Abdeckung aus. Wenn es im Bericht einen Abschnitt „OHNE BILD“ gibt – sag über diesen Zeitraum direkt: „Hier gibt es kein Bild, vom Ton her ist Folgendes…“. Eine Vermutung, die als Beobachtung präsentiert wird, entwertet die gesamte Analyse.

Jede Aussage über den Bildschirm – mit Markierung [MM:SS / fNNNN]. Das ist keine Formatierung: frameproof verify prüft jede solche Markierung anhand des Index. Eine erfundene Referenz wird von der Arithmetik erkannt, ohne Modell.

Ablauf

1. Indizieren

frameproof index "<Link oder Pfad>" --ocr

Gibt einen Abdeckungsbericht aus. Lies ihn zuerst: wie viele Bilder, wie groß die maximale Lücke, gibt es Abschnitte ohne Bilder.

Der Pfad zum Index steht in der letzten Ausgabezeile. Im weiteren Verlauf wird er als --out benötigt.

--ocr aktiviert Texterkennung auf den Einzelbildern (macOS, offline). Das macht den Bildschirm grep-bar: Befehle, Dateinamen und URLs werden ohne ein einziges Bild durch Suche gefunden. Erkannt wird eine separate Kopie in nativer Auflösung, die Anzeige bleibt leicht.

Nützliche Optionen: --max-gap 10 (höhere Abdeckungsdichte), --max-frames 400 (langes Video), --lang de (Sprache der Transkription, falls keine Untertitel vorhanden).

Wenn neben dem Video bereits Untertitel vorhanden sind, verwende --subs rede.srt, das ist präziser und schneller als eine Transkription. Auf Nicht-Mac-Systemen wird die Erkennung über eine eigene Engine angebunden: --ocr-command "<Programm>", das erhält die Bildpfade und gibt Pfad<TAB>Text aus.

2. Lie die Karte

cat <Index>/index.json

Kleine Datei, lies sie komplett. Sie enthält Dauer, Anzahl der Bilder, Quelle des Transkripts und – vor allem – den Block coverage.

3. Suche mit Text, nicht mit Bildern

frameproof search "<Suchbegriff>" --out <Index>

Durchsucht sowohl Sprache als auch Bildschirmtext. Liefert Zeilen mit Zeitstempeln. Kein einziges Bild – null visuelle Tokens. Die meisten Fragen werden hier beantwortet.

Die Suche ist sublinear (Trigramme), deutsche Beugungen stören nicht.

Für komplexere Abfragen greife direkt mit grep:

grep -i "docker" <Index>/segments.jsonl | head
grep -i "npm" <Index>/frames.jsonl | head

4. Sieh dir Bilder nur an, wenn es nicht anders geht

frameproof frames --at 4:12 --out <Index>          # ein bestimmter Moment
frameproof frames --ids f0043,f0044 --out <Index>  # bestimmte Bilder

Der einzige Befehl, der Bilder ausgibt. Lies die ausgegebenen Pfade mit Read.

Budget: 4–8 Bilder pro Durchlauf. Ein Einzelbild 1280×720 kostet etwa 1196 visuelle Tokens. Alle Bilder eines einstündigen Videos zu zeigen, bedeutet Hunderttausende Tokens; das sollte man vermeiden.

5. Antworte mit Beweis

Format einer Bildschirmaussage:

Bei 18:38 wird eine Modell-Routing-Tabelle gezeigt: MAIN – teuer und intelligent, AUXILIARY – günstig und schnell. [18:38 / f0097]

Wenn eine Person einen Artikel oder eine Zusammenfassung erbeten hat, füge Bilder als Illustrationen anhand ihrer Pfade aus frames.jsonl ein und daneben den Zeitstempel.

6. Überprüfe dich selbst – wenn darum gebeten

Die Markierung [MM:SS / fNNNN] ist keine Verzierung, sondern ein prüfbarer Link. Die mechanische Prüfung ist kostenlos und sofort, führe sie bei jeder Analyse länger als ein paar Absätze durch:

frameproof verify <Analyse-Datei.md> --out <Index>

Das Werkzeug weiß nichts über den Inhalt – es prüft die Integrität des Links: Existiert das Bild, hat es den richtigen Zeitstempel, liegt der Moment nicht in einem Bereich ohne Bilder, wurde dieses Bild überhaupt angefordert, kommt die zitierte Zeile im Bildtext oder in der Sprache der Umgebung vor.

FAIL bedeutet einen kaputten Link, der repariert werden muss, nicht diskutiert. WARN ist ein Grund, das Bild zu öffnen und selbst zu betrachten.

7. Blinder zweiter Blick – nur auf ausdrücklichen Wunsch

Wenn eine Person sagt „prüf die Analyse nochmal“, „überprüfe es“, „hast du das wirklich gesehen“ – starte eine adversariale Prüfung.

frameproof verify <Datei> --out <Index> --plan

Der Befehl gibt ein JSON mit Aufgaben aus. Delegiere diese an den Sub-Agenten frameproof-adversary in einem einzigen Aufruf (nicht ein Agent pro Behauptung – einer reicht).

Was an den Sub-Agenten übergeben wird: nur die nummerierte Liste der Behauptungen und die Pfade zu den Bildern, genau wie im JSON.

Was NICHT übergeben wird, nicht ein Wort:

  • die Frage, die die Person gestellt hat;
  • deine eigenen Überlegungen, warum du zu dieser Schlussfolgerung gekommen bist;
  • der restliche Analysetext;
  • ein Hinweis darauf, welche Antwort du für richtig hältst.

Der Sub-Agent sieht die Gesprächshistorie nicht – das ist garantiert. Aber du schreibst die delegierende Nachricht, und das ist der einzig verbleibende Leckkanal. Ein Prüfer, der die erwartete Antwort kennt, ist nutzlos: Er wird sie bestätigen.

Was mit den Urteilen zu tun ist:

  • CONFIRMED – unverändert lassen.
  • REFUTED – markieren, nicht löschen: [nicht durch zweiten Blick bestätigt: <Grund>]. Widerleger irren sich bei korrekten Behauptungen deutlich öfter, als man denkt, daher trifft die Person die Entscheidung, nicht du.
  • UNSUPPORTED – ehrlich sagen: Auf dem Bild ist das nicht zu sehen, die Schlussfolgerung basiert auf dem Ton oder auf benachbarten Momenten.

Starte diesen Durchlauf nicht von dir aus nach jeder Analyse. Er kostet Tokens und Zeit, während die mechanische Ebene die meisten Probleme kostenlos abfängt.

Was nicht getan werden darf

  • Erzähle das Video nicht nur anhand eines Transkripts nach und nenne das eine Bildschirmanalyse. Sprache und Bildschirm weichen ab: Im Video sagt jemand „OpenRouter“, aber auf dem Bildschirm steht openrouter/pareto-code (min_coding_score 0.65). Das Zweite gibt es nur in den Bildern und im OCR.
  • Lade nicht „für alle Fälle“ Bilder in Paketen hoch. Erst Suche, dann gezielt Bilder.
  • Gib OCR nicht als wörtlichen Code-Text aus. Die Erkennung verwechselt Zeichensetzung: [main wird als Imain gelesen. OCR wird verwendet, um das Bild ZU FINDEN; was darauf steht, lies mit eigenen Augen.
  • Schweige nicht über blinde Stellen. Wenn die Abdeckung weniger als 100 % beträgt, sag der Person Bescheid.

Wenn etwas fehlt

frameproof doctor

Zeigt, was installiert ist und was nicht. Erforderlich sind ffmpeg und numpy; yt-dlp wird nur für Links benötigt; für die Transkription mlx-whisper (schnell auf Apple Silicon) oder openai-whisper (überall). Schlüssel werden für nichts benötigt.

Verwandte Skills