# Übergabe Stand **2026-09-09**. Wer hier weitermacht, sollte diese Seite zuerst lesen und danach [`07-mvp-plan.md`](07-mvp-plan.md). ## Wo das Projekt steht Vier von sieben Scheiben des MVP „Clip-Knopf" sind gebaut. Die Kette vom Auslöser bis zum fertigen Short steht **im Code vollständig** — geprüft ist sie überall dort, wo es ohne Abdus Stream-PC ging. | Scheibe | Stand | Nachweis | |---|---|---| | S0 Toolchain + Auslieferung | fertig | `check-env` nativ ohne harte Fehler, Paket gebaut und installiert | | S1 Einrichtung, Auth, DB, Chat | fertig | Daemon läuft, Chat verbunden, Secrets verschlüsselt | | S2 OBS + `!clip` | Code fertig, **nicht abgenommen** | braucht laufendes OBS | | S3 9:16-Render | fertig | Durchlauf mit künstlicher Aufnahme | | S4 Untertitel | fertig | Durchlauf mit echtem deutschen Clip | | S5 Onboarding + Sichtung | offen | — | | S6 Erstchatter-Begrüßung | offen | — | 79 Tests, alle grün. Vollständige Liste dessen, was noch fehlt: [`offene-punkte.md`](offene-punkte.md). ## Was jemand wissen muss, bevor er etwas anfasst **Es gibt keine Abhängigkeiten und keinen Build.** Node 24 bringt SQLite, WebSocket, `fetch` und die Ausführung von TypeScript mit. `node apps/cli/main.ts` läuft direkt. Deshalb gilt: nur *löschbare* TypeScript-Syntax — keine `enum`, keine Parameter-Properties im Konstruktor, keine `namespace`. `erasableSyntaxOnly` in der `tsconfig.json` erzwingt das und hat schon einen echten Fehler gefangen. **Alles läuft unter einem Dach**, in einem Prozess. Schwere Arbeit (ffmpeg, whisper) läuft als Kindprozess und darf abstürzen. Der Ingest darf nie sterben — was er nicht mitschreibt, ist für immer weg. **Zugangsdaten kommen aus der Weboberfläche**, nicht aus einer Datei. Sie liegen verschlüsselt neben der Datenbank, aber bewusst nicht *in* ihr — die Datenbank wird gesichert und weitergereicht, die Geheimnisse nicht. **Rohdateien gehören in den Arbeitsordner**, nicht neben den OBS-Puffer. Das war unter Docker ein Zeitproblem (Encodieren über die WSL2-Brücke kostete ein Vielfaches) und ist nativ nur noch Ordnung — der Wiedergabepuffer-Ordner gehört OBS. Die Begründungen stehen in [`decisions/`](decisions/), sieben ADRs. Wer eine davon umwerfen will, sollte sie vorher lesen; jede hat einen Grund, der beim Bauen aufgetaucht ist. ADR-0004 (Docker) ist durch ADR-0007 ersetzt — die Analyse darin bleibt trotzdem lesenswert. ## Loslegen **Auf Abdus Rechner** läuft eine native Windows-Anwendung — kein Docker, kein WSL2, nichts zu übersetzen ([ADR-0007](decisions/ADR-0007-native-windows.md)): ```powershell irm https://git.zeasy.dev/ZeasyAlex/abdulive/raw/branch/main/scripts/install.ps1 | iex abdulive fetch-model abdulive check-env ``` Ausführlich in [`05-setup.md`](05-setup.md). **Zum Entwickeln** reicht ein Checkout und Node 24 oder neuer: ```powershell node apps/cli/main.ts check-env node --test "packages/**/*.test.ts" "apps/**/*.test.ts" node scripts/build-package.ts --version 0.5.0 # baut dist/*.zip ``` Typprüfung (das Einzige, wofür npm gebraucht wird): ```powershell npm i typescript@5.9 @types/node npx tsc --noEmit ``` ## Die drei Dinge, die Abdu tun muss 1. **Broadcaster-Konto verbinden.** Die beiden Twitch-Apps (dev.twitch.tv/console/apps, Redirect-URI `http://localhost:4792/callback`) kann auch jemand anders anlegen — sie hängen nicht am Kanal. Was **nur Abdu** kann: auf der Einrichtungsseite eingeloggt als er selbst auf „Mit Twitch verbinden" klicken. Dafür muss die Anwendung auf seinem Rechner schon laufen; die Seite hört nur auf `127.0.0.1`. 2. **OBS einrichten**: obs-websocket an (Port 4455), Wiedergabepuffer 90 s, Hotkey auf „Wiedergabepuffer speichern", getrennte Audiospuren. 3. **Layout umstellen** nach [`obs-layout.md`](obs-layout.md). Die Ausrichtungsvorlage in OBS über die Szene legen, Quellen einpassen, wieder ausblenden. Danach `calibrate` zur Kontrolle. Ohne Punkt 1 liest das Toolkit den Chat anonym mit und kann nichts senden. Ohne Punkt 2 gibt es keine Clips. Ohne Punkt 3 sitzt der Ausschnitt schief. ## Wo ich weitermachen würde **S5.** Nicht wegen des Codes, sondern weil das Werkzeug ohne Einrichtungs- Assistenten und Sichtungsseite für Abdu nicht bedienbar ist. Die Kette funktioniert, aber sie hat noch keine Oberfläche, die jemand ohne Erklärung benutzt. Abnahmekriterium steht im Plan: *Ein Fremder kommt von „nichts eingerichtet" bis zum ersten eigenen Clip, ohne die Dokumentation zu lesen.* Davor, wenn Gelegenheit ist: **S2 an einem laufenden OBS abnehmen**. Das ist die einzige ungeprüfte Stelle in der ganzen Kette, und alles Weitere hängt daran. ## Womit ich nicht zufrieden bin Die Untertitel sind brauchbar, nicht gut. `ggml-small` verhört sich hörbar („Danke" wurde „Dank es"), die Schrift ist unauffällig, und das fortlaufende Einfärben ist nicht der Stil, der auf Shorts trägt. Sechs konkrete Verbesserungen stehen in [`offene-punkte.md`](offene-punkte.md). Und: Das Aufräumen im Arbeitsordner fehlt komplett. Rohdateien sammeln sich unbegrenzt an. Das ist die Lücke, die als Erstes weh tun wird. Der Updater ist einmal komplett durchgelaufen: 0.4.0 erkannt, 119 MB von `git.zeasy.dev` geladen, Prüfsumme geprüft, bereitgelegt, von `launcher.ps1` getauscht, `pending` aufgeräumt. Was noch nie lief, ist die CI-Pipeline.