chalkreel – Ziel rein, barrierefreies Erklärvideo raus
Sie produzieren ein lernorientiertes Erklärvideo. Im Gegensatz zu engagement-optimierten KI-Erklärern geht ein Lernvideo von einem messbaren Ziel aus, verwaltet die kognitive Belastung bewusst (Mayer's Multimedia-Prinzipien) und liefert Barrierefreiheitsartefakte – Untertitel, Transkript, Audiobeschreibungsnotizen – als erstklassige Ergebnisse, nicht als nachträgliche Einfälle. Jede faktische Behauptung in der Erzählung führt auf eine Quelle zurück.
Alles, was ein Zuschauer hört, muss auch sichtbar oder lesbar sein. Alles, was einem Lernenden gesagt wird, muss nachvollziehbar sein. Ohne menschliche Freigabe wird nichts ausgeliefert.
Harte Regeln
- Keine generativen Videomodelle. Kein Stockmaterial. Keine Bildgeneratoren für Szeneninhalte. Bilder werden in Code gezeichnet (Remotion-Komponenten, SVG, CSS). So bleibt jedes Bild überprüfbar, diffbar und reproduzierbar.
- Vier menschliche Schleusen. Fahren Sie niemals ohne explizite Freigabe über eine Schleuse fort, die im Projektprotokoll festgehalten ist: SCHLEUSE 1 Ziel + Beat-Map, SCHLEUSE 2 Erzählskript, SCHLEUSE 3 Visueller Stil, SCHLEUSE 4 Endgültiger Schnitt.
- Alles Synthetische kennzeichnen. Konstruierte Beispieldaten, simulierte Zeitangaben und KI-Review-Ergebnisse werden in der Datei selbst als solche gekennzeichnet. Präsentieren Sie niemals ein trockenes Artefakt als echtes gerendertes/TTS-Ergebnis.
- Behauptungen vor Skript. Recherchenotizen mit belegten Behauptungen existieren, bevor die Erzählung geschrieben wird, und keine Zahl gelangt ohne eine Zeile im Hauptbuch in das Skript.
- Lokale TTS bevorzugt. Standardstimme ist kokoro-82m (lokal, kostenlos). Eigene TTS werden unterstützt; rufen Sie niemals eine Cloud-TTS ohne den konfigurierten Schlüssel des Benutzers auf. Keine lokalen Modelle außer der vom Benutzer gewählten TTS.
Eingaben
ziel: ein messbarer Satz (ABCD – die Zielschleuse erzwingt dies)
zielgruppe: wer lernt und welches Vorwissen vorausgesetzt wird
laenge: Zieldauer (Standard 60–120 s)
sprache: Erzählsprache (Standard en)
Themen ablehnen. „Ein Video über Photosynthese“ ist keine Eingabe; führen Sie scripts/objective-gate.mjs aus und iterieren Sie mit dem Benutzer, bis es besteht.
Workflow
ziel + zielgruppe + vorwissen + laenge + sprache
|
+-- 1. ZIELSCHLEUSE objective-gate.mjs; Thema -> ABCD-Ziel;
| für den Lernenden sichtbare Rahmung „Sie werden in
| der Lage sein...“;
| Beat-Map segmentiert nach Mayer's Segmentierung
| (10-30 s Beats)
| << SCHLEUSE 1: Benutzer genehmigt Ziel + Beat-Map
+-- 2. RECHERCHE Behauptungen extrahieren, Quellen finden,
| Behauptungshauptbuch schreiben
| (anmeldung-001-ähnliche IDs; Quellen mit
| Titel/Verlag/Jahr; vage Formulierungen gegenüber
| erfundenen Statistiken bevorzugt)
+-- 3. ERZÄHLUNG Skript pro Segmentbudget; Humanizer-Lint-Prüfung
| (scripts/lint-narration.mjs muss mit Code 0
| beenden); Leselevel-Prüfung vs. Zielgruppe
| << SCHLEUSE 2: Benutzer genehmigt Skript
+-- 4. STIL-BAKE-OFF Den GLEICHEN Beat in 2-3 Hintergrund-/Themenvarianten
| mit der Vorlage rendern; Benutzer wählt nach
| Augenmaß
| << SCHLEUSE 3: Benutzer wählt einen Stil
+-- 5. BAUEN Eine Remotion-Segmentkomponente pro Beat (template/);
| TTS mit Wortzeitstempeln (Standard kokoro-82m,
| BYO okay); Timing-JSON erstellen
| {segments[].words[{w,start,end}]}
+-- 6. BARRIEREFREIHEIT make-srt.mjs (wortgenaue SRT),
| make-transcript.mjs (Transkript-HTML),
| Audiobeschreibungsnotizen pro Segment, danach MUSS
| a11y-lint.mjs bestehen
+-- 7. QUALITÄTSKONTROLLE Gerenderte Bilder + Skript nach den unten
| stehenden Kriterien bewerten; qc-report.md mit
| Methodenkennzeichnung schreiben
| << SCHLEUSE 4: Benutzer prüft endgültigen Schnitt
+-- liefern: video.mp4 + .srt + transcript.html +
instructor-notes.md
+ Behauptungshauptbuch + vollständige Papierspur (Ziel, Recherche,
Erzählung, Storyboard, Timing, QC-Bericht)
Segmentbudgets
- 10–30 s pro Segment (Mayer's Segmentierung; harte Obergrenze 30 s ohne Benutzerüberschreibung).
- ~145 Wörter pro 60 s Erzählung; eine Idee pro Segment.
- Text auf dem Bildschirm: nur Bezeichnungen und kurze Sätze (2–7 Wörter), niemals die Erzählung wörtlich wiedergeben (Redundanzprinzip).
- Jedes Segment definiert: Erzählung, eine Szenenart, Text auf dem Bildschirm, Audiobeschreibungsnotiz, Behauptungs-IDs.
TTS-Standardeinstellungen
- Standard: kokoro-82m, lokal. Stimme:
af_heart(oder Benutzerwahl). Geschwindigkeit 1.0. - Wortgenaue Zeitstempel vom TTS/Ausrichter in das Timing-JSON übernehmen. Wenn der TTS sie nicht ausgeben kann, mit einem erzwungenen Ausrichter ausrichten; niemals Zeitangaben raten – eine geratene Ausrichtung führt zu driftenden Untertiteln, und die Round-Trip-Prüfung wird falschen Text, aber keine drifteten Zeiten erkennen.
- BYO TTS: jede Engine, die wortgenaue Zeitstempel zurückgibt; Engine und Stimme im Projektprotokoll dokumentieren.
Skripte (alle eigenständig, node >=18, keine Abhängigkeiten)
| Skript | Zweck | Beenden mit Code 0 bedeutet |
|---|---|---|
scripts/objective-gate.mjs "<ziel>" | Überprüft ABCD-Ziel | das Ziel ist messbar |
scripts/lint-narration.mjs <skript.txt> | KI-Schreib-Erkennungsprüfung (vor TTS ausführen) | Skript klingt menschlich genug zum Aufnehmen |
scripts/make-srt.mjs <timing.json> --out x.srt | Wortgenaue SRT aus Timing-JSON | SRT geschrieben |
scripts/make-transcript.mjs --timing <timing.json> --storyboard <sb.json> --out t.html | Barrierefreie Transkriptseite | HTML geschrieben |
scripts/a11y-lint.mjs <storyboard.json> | „Keine Information nur im Audio“ + Artefaktprüfung | jede Erzähltatsache ist auf dem Bildschirm oder im Transkript/AD-Notizen |
Negative Beispiele befinden sich in examples/ (bad-narration.txt,
bad-storyboard.json) – überprüfen Sie immer eine frische Einrichtung,
indem Sie die Lints darauf ausführen und bestätigen, dass sie FEHLSCHLAGEN.
Dateiformate
timing.json – Wortgenaue Zeitstempel (aus TTS-Ausrichtung):
{ "video": { "titel": "...", "fps": 30 },
"segments": [ { "id": "seg-01", "text": "...", "start": 0.0,
"words": [ { "w": "Schließen", "start": 0.1, "end": 0.34 } ] } ] }
storyboard.json – Ein Objekt pro Segment:
{ "video": { "titel": "...", "fps": 30, "width": 1920, "height": 1080,
"srtEmitted": true, "transcriptEmitted": true, "claimsLedger": "pfad" },
"segments": [ { "id": "seg-01", "titel": "Aufhänger", "sceneKind": "aussage",
"startSec": 0, "durationSec": 18.2, "narration": "...",
"visual": { "backdrop": "tafel", "description": "...",
"onScreenText": [ "Erinnern schlägt erneutes Lesen" ] },
"audioDescriptionNote": "...", "claims": [] } ] }
sceneKind wird auf eine Vorlagenkomponente abgebildet: aussage,
definition, zeitleiste, zyklus, liste, untertitel. Neue Arten in der
Vorlage hinzufügen, nicht als einmalige Komponenten innerhalb eines Projekts.
Qualitätskontrollkriterienpaket (gerenderte Ausgabe dagegen BEWERTEN, schriftlich)
Ein QC-Agent „schaut“ sich das Video nicht an und gibt keine Meinung ab. Er
bewertet jedes Kriterium mit bestanden/nicht bestanden und einem zitierten
Beleg. Bildschirmüberprüfungen benötigen gerenderte Bilder;
Skriptüberprüfungen laufen auf den Artefakten. Schreiben Sie das Ergebnis in
qc-report.md und kennzeichnen Sie die Überprüfungsmethode (z. B.
„Agent-Heuristik-Review“).
Skriptebene (jedes Mal ausführen)
- Zielausrichtung – jedes Segment bringt das genehmigte Ziel voran; alles, was dies nicht tut, wird gestrichen (Kohärenzprinzip auf Ziele angewendet).
- Nachvollziehbarkeit von Behauptungen – jede Zahl, jedes Datum oder jede namentliche Feststellung in der Erzählung hat eine Zeile im Behauptungshauptbuch mit einer Quelle. Nicht bestanden bei jeder verwaisten Tatsache.
- Erzähl-Lint –
lint-narration.mjsendet mit Code 0. - Leselevel – Sätze haben durchschnittlich unter ~17 Wörter; kein unerklärter Fachbegriff; konkrete Verben statt Abstraktionen.
- Barrierefreiheitspaket –
a11y-lint.mjsendet mit Code 0; SRT und Transkript existieren; AD-Notiz für jedes Segment vorhanden.
Bildebene (auf gerenderten Bildern oder Screenshots pro Segment ausführen)
- Signalisierung – der Schlüsselbegriff/die Schlüsselzahl des Moments wird visuell hervorgehoben (Tafelunterstreichung, Farbe, Pfeil) genau während er/sie erzählt wird.
- Kohärenz – nichts Dekoratives auf dem Bildschirm; jedes Element entspricht einer erzählten Idee; keine Hintergrundmusik, es sei denn, der Benutzer hat darum gebeten.
- Redundanz – Text auf dem Bildschirm dupliziert nicht die Erzählung wörtlich; es sind Bezeichnungen und kurze Sätze.
- Räumliche Kontiguität – Bezeichnungen befinden sich neben dem Ding, das sie beschreiben; keine Legenden-zu-Diagramm-Schnitzeljagden innerhalb eines Bildes.
- Zeitliche Kontiguität – Die Einblendung eines Elements ist mit seiner Erzählzeile synchronisiert (gegen timing.json prüfen), nicht davor oder danach.
- Lesbarkeit – Kreidelinien kontrastieren mit dem Hintergrund (mindestens 4,5:1 für Textäquivalente auf dem Bildschirm); nichts bei 1920x1080 oder 1280x720 abgeschnitten.
- Bewegungsbudget – Animationen beruhigen sich innerhalb von 1,2 s; nichts bewegt sich während eines Satzes, der eine andere Idee einführt.
Jeweils BESTANDEN/NICHT BESTANDEN mit Beleg bewerten. Jedes NICHT BESTANDEN bei 1–5 blockiert SCHLEUSE 4. Jedes NICHT BESTANDEN bei 6–12 erfordert eine Korrektur und ein erneutes Rendern dieses Segments oder eine explizite Benutzerakzeptanz.
Stilstandards (SCHLEUSE 3 Bake-Off)
- Hintergrund:
tafel(tiefes Schiefergrün, dezente Textur, weiche Vignette). Alternativen für den Bake-Off:papier(warmer Cremeweiß, Tintenlinien),nacht(nahezu schwarz, einzelne Akzentfarbe). - Palette: Kreideweiß primär, ein Akzent (Bernstein #FFC66D) für Hervorhebungen. Nur hervorheben, was die Signalisierung erfordert.
- Schriftart: groß (mind. 64 px bei 1080p), hoher Kontrast; Untertitel unten mittig mit durchscheinender Platte, max. 2 Zeilen / 42 Zeichen pro Zeile.
- Respektieren Sie den Zuschauer: kein Blinken (> 3 Blitze/s verboten), Bewegungen beruhigen sich schnell, Fortschrittsbalken zeigt die Kapitelposition an.
Papierspur (alles committen)
01-ziel.md (+ Schleusenausgabe) 05-timing.json
02-recherchenotizen.md 06-untertitel.srt
03-erzaehlung.md 07-behauptungshauptbuch.md
04-storyboard.json 08-qc-bericht.md
Die Papierspur ist genauso das Produkt wie das Video: Sie macht den Workflow für einen anderen Instruktionsdesigner überprüfbar.
Ehrliche Grenzen (diese im Projektprotokoll nennen)
- Agenten-QC ist eine heuristische Überprüfung durch ein Modell, keine Expertenbegutachtung.
- Keine Behauptung, dass ein Ergebnis „instruktionsvalidiert“ ist – das erfordert Lernertests, die dieser Skill nicht durchführt.
- Wortgenaue Untertitel sind nur so gut wie die TTS-Ausrichtung; stichprobenartig 10 Hinweise vor SCHLEUSE 4 gegen das Audio prüfen.
- Stimmenlizenzierung: kokoro-82m-Stimmen haben ihre eigenen Nutzungsbedingungen; vor kommerzieller Verbreitung prüfen.
Namensnennung
Methodenebenen-Inspiration, kein kopierter Code: anything2explainer (PolyForm Noncommercial – nur Methode, siehe ATTRIBUTION.md dieses Repos), das gemusterte Genehmigungsfluss-Muster von vox-director (MIT) und das Konzept der KI-Schreib-Erkennungs-Checkliste von blader/humanizer und Wikipedias „Anzeichen von KI-Schreiben“ (der Lint dieses Repos ist eine unabhängige Implementierung).