# BrandLoop – Projekt-Übersicht (Knowledge Base)

**Stand:** 25. Juli 2026 · konsolidiert aus allen bisherigen Arbeitsdokumenten · **erweitert um Bild-Modus, Feed & Ordner (§15)**
**Zweck:** Ein Dokument, das den kompletten Projektstand hält – Basis für die nächsten Arbeitsschritte.

---

## 1. Was wir bauen (in einem Absatz)

Eine App, in der Brands einen Prompt eingeben und 3–6 KI-generierte Werbevideos bekommen – jedes von einem anderen Top-Videomodell. Der Owner wählt das beste, die Ad läuft, und jedes Ergebnis (Vote + echte Ad-Performance) fließt in eine wachsende **Brand Knowledge Base** zurück. Jedes weitere Video startet mit allem, was bisher funktioniert hat.

**Seit Juli 2026 daneben: ein zweiter, entkoppelter Bild-Modus mit Feed.** Bilder statt Videos, ein festes Bildmodell, kein Vote-Loop – dafür ein öffentlicher Feed, aus dem man fertige Rezepte kopiert und in eigene **Ordner** sortiert. Der Bild-Modus ist der günstige Einstieg und löst den Kaltstart; Video bleibt das Kernprodukt. Details: **`konzept-bilder-feed.md`**, Zusammenfassung in §15.

> **Sprachregelung – gilt für die gesamte Doku und den Code:**
> **„Modell"** (auch: Asset) = Person, Produkt, Kulisse oder Logo – das, was in einem Bild oder Video zu sehen ist. Tabelle `assets`.
> **„KI-Modell"** = Seedance, Veo, Sora, Wan, das Bildmodell. Immer ausgeschrieben, nie nur „Modell".
> Wo im Text unten noch „Modell" im Sinne von KI-Modell steht, ist das ein Altbestand aus der Zeit vor dem Bild-Modus – im Zweifel gilt diese Regel.

> **Pitch:** „Deine Ads lernen aus jedem ausgegebenen Euro. Generische Tools erstellen Videos – wir bauen ein Ad-Gedächtnis für deine Brand."

**Arbeitstitel:** BrandLoop (Platzhalter, noch nicht final)

**Zielgruppe:** ursprünglich D2C-Kosmetik-Brands. Mit dem Feed **branchenoffen** (Nischen-System) und über den Bild-Modus auch für Creator und Privatnutzer – siehe offene Punkte in §11.

---

## 2. Die drei tragenden Ideen

| Idee | Kern | Warum es der Moat ist |
|---|---|---|
| **Ad-Gedächtnis pro Brand** | Strukturierte Wissensdatenbank pro Kunde, wird bei jeder Generierung als Kontext injiziert | Konkurrenz generiert, wir lernen → Wechselkosten steigen mit der Nutzungsdauer |
| **Modellunabhängigkeit** | Kein Fine-Tuning eines Modells; Wissen liegt in Text/DB, nicht in Gewichten | Besseres Modell erscheint → wird eingetauscht, Knowledge Base bleibt |
| **Performance-Loop** | Meta/TikTok-Ads-Daten (CTR, Thumbstop, ROAS) gewichten das Scoring stärker als Bauchgefühl-Votes | Aus „schöne Videos" wird „Videos, die nachweislich verkaufen" |

**Wichtige Abgrenzung:** Wir trainieren **kein Modell neu**. Ausnahme ist nur die Konsistenz von Gesicht/Produkt (Character-Reference-Features bzw. LoRA auf Referenzbildern).

---

## 3. Der Produkt-Loop

**Runde 1 (Kaltstart):** Prompt → 3 Videos von 3 Modellen → Owner wählt → Vote = erstes Trainingssignal.
**Runde 2+:** Neuer Prompt → wird vor der Generierung automatisch mit Brand-Wissen angereichert → Videos starten nicht bei null → Vote + Ad-Performance aktualisieren die Knowledge Base.

Kostenlogik im Ablauf: Nutzer sieht erst das **Script** und bestätigt – erst danach wird generiert (Kosten entstehen nach Bestätigung; Script-Änderungen sind zusätzliches Lernsignal).

---

## 4. Brand Knowledge Base – Datenmodell-Logik

### Zwei Ebenen
- **Regeln** (kein Score, gelten immer): cleaner Hintergrund, „nur zeigen was verlangt ist", Logo-Schutz, „Referenzen nie 1:1 kopieren". Liegen im **Developer-Modus**, für den Nutzer unsichtbar → Betriebsgeheimnis.
- **Attribute** (mit Elo-Score, konkurrieren): location, licht, farben, kamera, voice, geraeusche, texte-hooks, handlungen.

### Weitere Objekte
- **Modelle / Assets** (Gesicht, Produkt, **Kulisse**, Logo): versioniert nach **Release-Prinzip** – Videos und Bilder nutzen immer eine *freigegebene* Version, kein schleichender Drift. *„Modell" meint in diesem Projekt durchgehend das Asset, nie das KI-Modell.*
- **Videos**: ein Eintrag pro generiertem Video (Prompt, Tags, verwendete Asset-Versionen, Vote, Performance).
- **Posts**: das Pendant im Bild-Modus – ein Slot-Rezept mit Bilderkette (§15).
- **Ordner**: privater Wissens-Scope. Attribut-Scores werden **je Ordner** geführt (§15).
- **Logs**: append-only, jeder Score-Change mit Grund **und Scope**.

### Drei Textebenen je Attribut
**Beschreibung** (was ist das) · **Was es ausmacht** (gelernte Essenz) · **Details** (Drehorte, Licht/Tageszeit, Farbwelt, Sound, fertige Prompt-Bausteine + Negativ-Prompts). Schreibt das System selbst; der Nutzer sieht davon nichts.

---

## 5. Scoring (Elo) – die Kernmechanik

**Problem:** Attribution. Gewinnt Video A (Kaiserslautern) gegen B (Köln), kann der Grund auch Licht, Stimme oder das Modell sein.

**Lösung – 5 Mechanismen:**
1. **Elo statt Fixpunkte** – Sieg gegen ein starkes Attribut bringt mehr. Skala 0–10.000.
2. **Verteilte Punkte** – alle Tags des Gewinner-Videos gewinnen anteilig, alle des Verlierers verlieren anteilig. Über viele Runden kristallisiert sich der echte Treiber heraus.
3. **Gezielte Fragen** – „Welche Stadt war besser?" wirkt isoliert auf ein Attribut → schnellstes sauberes Signal.
4. **System-Favorit mit Anchoring-Schutz** – Favorit wird markiert, aber: **Bestätigung ×0,3 · Abweichung ×1 · Ad-Performance ×2**. Übereinstimmungsrate Vorhersage↔Wahl ist die zentrale Qualitätsmetrik.
5. **LLM-Inhaltsvergleich** – nach jedem Vote wird analysiert, *was* besser war, und in beide Attribut-Dateien geschrieben. Ggf. entsteht ein **Unter-Attribut** (kaiserslautern → --stadion).

**Startwerte:** Neuer Eintrag startet beim **Kategorie-Durchschnitt** (nicht bei 5000), sonst gilt Ungetestetes automatisch als „schlechter als alles". Nur der allererste Eintrag einer Kategorie startet bei 5000. Unsicherheit steckt im **K-Faktor** (32 neu → 8 etabliert).

**Archivieren statt löschen** – ein schlechter Score ist auch Wissen.

---

## 6. UI / Funktionsumfang

Homescreen → **Feed** · **Erstellen** (Szene / Post / Modell) · **Ordner** · **Verbessern** (jederzeit auf jedes Modell) · **Knowledge Base** (Ansicht) · **Developer-Modus** (versteckt, intern).

| Bereich | Inhalt |
|---|---|
| **Feed** | Posts anderer Nutzer, gefiltert nach Nische, sortiert nach Feed-Score → Post-Detail → **Kopieren** (Slot-Chips) oder in einen Ordner speichern |
| **Erstellen → Szene** (Video) | Prompt → automatische Anreicherung → Script-Anzeige & Bestätigung → 3–6 Videos → Auswahl → optionale gezielte Frage → Upload/Veröffentlichung → Live-Performance |
| **Erstellen → Post** (Bild) | Ordner wählen → Format → Slots füllen → ein Bildmodell generiert die Bilderkette → privat behalten oder aktiv veröffentlichen |
| **Erstellen → Modell** | Person/Produkt/**Kulisse** beschreiben + Referenzbilder → Modell wird erstellt → direkt „Verbessern" möglich |
| **Ordner** | Sammlungen anlegen (Zweck + Startwerte), eigene und fremde Posts einsortieren, Reifegrad sehen |
| **Verbessern** | Asset wählen → Text-Feedback *oder* Referenz-Upload (**Pflichtfeld:** was soll übernommen werden) → 3–5 neue Versionen → Vorher/Nachher → beste wählen → neue freigegebene Version |
| **Developer-Modus** | Feste Regeln · Prompt-Einblick (was wirklich ans Modell ging) · Elo-Parameter |
| **Onboarding** | Tutorial-artig, erscheint beim ersten Klick auf „Erstellen"; 6 Pflichtfragen (<2 Min) + optionale Uploads |

**Scoring beim Verbessern:** Nur Merkmale, **in denen sich die Versionen unterschieden**, bekommen Punkte.

**Videoanzahl 3–6, Preis pro Video** – Deckel bei 6, weil es nur eine Handvoll Top-Modelle gibt und bei zu vielen Videos die Auswahlqualität (= Trainingssignal) sinkt.

### Onboarding-Fragen (Stufe 1, Pflicht)
1. Label-Name · 2. Was verkaufst du · **3. Nische (feste Branchenliste)** · 4. Zielgruppe · 5. Drei Brand-Worte · 6. Wie lange am Markt.
**Stufe 2 (optional):** Logo, Produktbilder (3+ Winkel), bisher beste Ads, Brand-Gesicht, **Kulisse**.
**Stufe 3 (Progressive Profiling, max. 1 Frage/Sitzung):** Farbwelt, Voice vs. Text-Overlay, No-Gos, Preissegment, Locations, **Ad-Konten verbinden** (wichtigster Moment – hier startet der Performance-Loop), **Social-Konto verbinden** (nach der ersten Post-Veröffentlichung), Wettbewerber.

---

## 7. Prompt-Architektur (22 Denk-Punkte, davon 19 neu zu schreiben)

**Bauprinzip aller Prompts:**
```
[STATISCHER KERN]  – ändert sich nie, liegt im Dev-Modus
[SLOT: REGELN]     [SLOT: ASSETS]     [SLOT: ATTRIBUTE]     [SLOT: USER-INPUT]
```

**Grundregel: Kein LLM, wo Code reicht.** Elo-Mathe, Archivierung, Performance-Mapping, Favorit-Berechnung sind deterministisch (⚙️).

| Phase | Prompts |
|---|---|
| Onboarding | P1 Upload-Analyst (Vision) · P2 Profil-Übersetzer |
| Szene erstellen | P3 Intent-Versteher · P4 Knowledge-Selector · P5 Script-Autor · P6 Script-Diff-Lerner · **P7 Bild-Prompt-Generator** ✅ · **P8 Video-Prompt-Generator** ✅ |
| Nach Generierung | **P9 Video-Analyst/Tagger** (Vision) · P10 Favorit ⚙️ · P11 Vote-Attributierer · P12 Vergleichs-Analyst · P13 Frage-Generator |
| KB-Pflege | P14 Details-Autor · P15 Kategorie-Wächter |
| Verbessern | P16 Referenz-Interpreter · P17 Versions-Chronist |
| Reporting | P18 Insight-Reporter (V2) |
| **Bild-Modus & Feed** | **P19 Slot-Analyst · P20 Ordner-Vorschlag · P21 Werbetext-Autor · P22 Bild-Tagger** (Vision) |

- **Kritischer MVP-Pfad Video:** P3, P4, P5, P8, P9, P11 – ohne die läuft der Loop nicht.
- **Kritischer MVP-Pfad Bild:** P7, P19, P21, P22 – ohne die funktioniert Kopieren nicht. P20 ist nachrüstbar.
- **P19 ist der heikelste neue Prompt:** zu wenig Abstraktion legt fremde Knowledge Bases offen, zu viel macht das Rezept unverständlich. Er verarbeitet fremden Text → **Anti-Injection-Satz zwingend**.
- **P7 & P8 existieren bereits**, müssen aber auf das Slot-System umgebaut werden; P8 zusätzlich pro Modell dialektisiert (ein Regie-Kern + 3–6 Adapter).
- **Teuerster Prompt:** P9 – läuft 1.000×/Monat bei 1.000 Videos.

---

## 8. Recherche-Ergebnisse: fertige Vorlagen (nichts von null bauen)

| Unser Prompt | Vorlage |
|---|---|
| P5/P8-Kern | **Offizieller Wan-Rewriter** (Alibaba, öffentlich auf GitHub) + „Master Prompt Architect"-Muster |
| P8-Adapter Seedance | Offizielle 6-Schritt-Formel, 60–100 Wörter |
| P8-Adapter Veo | 5-Teile-Formel (Kamera zuerst) + Timestamp-Prompting |
| P8-Adapter Sora | OpenAI-Cookbook-Template (Prosa + gelabelte Blöcke) |
| P7 | WearView-Rezept + Miraflow-Beauty-Templates |
| P9 | Microsoft-ISE-Pipeline (Enum-Zwang) + Gemini Structured Outputs |
| P16 | „Lock → Change → Scope"-Muster |

**Die wichtigsten übernehmbaren Details:**
- **Anti-Injection-Satz** aus dem Wan-Rewriter wörtlich übernehmen (schützt vor Manipulation durch User-Prompts).
- **Seedance:** nur EINE Kamerabewegung pro Shot; Rhythmus-Wörter statt Technik-Jargon; **Licht ist der größte Qualitätshebel**; „no music" explizit; Multi-Shot per „cut to"; echte Gesichter auf Fotos werden geblockt → stützt unsere KI-Gesichter-Regel.
- **Foto-Realismus:** Wörter wie „flawless", „perfect skin", sogar „ultra realistic" triggern den Beauty-Filter-Bias und **verschlechtern** das Ergebnis. Doppelte Negativliste (`wrinkles` UND `skin too perfect`). Flat-Licht versteckt Textur, gerichtetes Licht zeigt sie.
- **Konsistenz:** 4–6 Referenzbilder optimal (>7 = feature-averaging); **Identity-Lock am Anfang UND Ende** des Prompts; **Token-Locking** – Merkmale wörtlich speichern und wörtlich wiederverwenden (gehört als Regel in die Asset-Dateien).
- **P9-Tagging:** Enum-Zwang ist „the highest-leverage decision"; doppelte Absicherung (Prompt-Regel + Code-Validator). **Gemini ist gesetzt** – einziges Modell mit nativem Video-Input inkl. Audiospur; `media_resolution: low` + 1 FPS drückt die Kosten.

**Lücken (ehrlich):** ByteDances interner Seedance-Rewriter ist nicht öffentlich · kein offizieller Google-Director-Prompt · Lizenzen einiger GitHub-Repos unverifiziert → Strukturen als Inspiration, Texte selbst schreiben.

---

## 9. Technik & Datenbank

**Architektur:** Cloud (V1), Hetzner Deutschland, DSGVO-konform. App: Web + native aus einer Codebase; Zahlung möglichst über Web-App via Stripe (App-Store-Abgabe 15–30 % umgehen). **V2+:** eigener MCP-Server, über den Brands ihre Knowledge Base in eigene Tools einbinden.

| Baustein | Wahl |
|---|---|
| Hosting | Hetzner Cloud (MVP CX32 ~€7 → CX42 ~€16 ab ~25 Brands) |
| Video-Speicher | Hetzner Object Storage (S3-kompatibel) |
| Backend/DB | **Appwrite self-hosted** (Auth+Teams, TablesDB, Functions, Realtime, Storage mit S3-Adapter, Messaging) – €0 Lizenz |
| KI-Gateway | **OpenRouter** (eine API für LLM *und* Video) |
| LLM | Claude (Scripts, Tagging, Vergleiche) · Gemini für P9 |
| Videomodelle | Seedance 2.0 + Veo 3.1 + Sora 2 / Wan |
| Payment | Stripe (Abo + metered) |

**Kostenrechnung 25 Brands (~1.000 Videos/Monat):** ~€1.300 gesamt, davon **>90 % Videogenerierung** (~€1.200). ≈ €52/Brand/Monat → Abo ab €150–300/Brand lässt gesunde Marge. Genau deshalb funktioniert „Preis pro Video".

### Datenbank-Tabellen (Appwrite)
`brands` (inkl. `nische`) · `rules` 🔒 · `prompt_templates` 🔒 (P1–P22, **versioniert**, mit model_adapter) · `categories` (avg_score als Cache, je Ordner) · `attributes` (**nur noch die Definition**: 3 Markdown-Ebenen, prompt_bausteine, negativ_prompts, self-relation für Unter-Attribute) · **`attribute_scores`** (Herzstück: score, k_factor, start_value, wins/losses – **je Attribut je Ordner**) · **`folders`** (zweck, startwert_modus) · `score_events` (append-only, mit folder_id) · `assets`/„Modelle" + `asset_versions` (released_version_id, Einwilligungs-Datei, typ inkl. `kulisse`) · `scenes` (user_prompt + selected_context + script vs. script_final = P6-Signal) · `videos` (prompt_sent, tags, attribute_ids, asset_version_ids, is_system_favorite) · **`posts`** (Slot-Rezept, slot_summary, sichtbarkeit, feed_score) · **`post_images`** (Bilderkette) · **`post_folders`** (m:n) · **`post_metrics`** (Feed-Signale) · `video_metrics` (Zeitreihe) · `votes` · `questions` · `jobs` (mit prompt_template_key **+ version** → ohne das kein Prompt-Debugging; cost_usd) · `usage_records`.

**Buckets:** uploads · asset-references · generated-videos · **generated-images** · consents.
**Functions (deterministisch):** elo-update · favorit-berechnen · ads-metriken-holen (Cron) · kategorie-durchschnitt (Cron) · archivierung (Cron) · job-dispatcher · **ordner-initialisieren** · **feed-score-berechnen** (Cron) · **feed-import** · **social-reichweite-holen** (Cron).
**Rechte:** Brand = Appwrite-Team mit Row-Level-Permissions (Multi-Tenant ohne Extra-Code); internes Team exklusiv auf `rules`, `prompt_templates`, `jobs.prompt_sent` → **das App-Geheimnis liegt in den Rechten, nicht nur im UI**.

---

## 10. Rechtliches

- **AVV** mit Hetzner (Standard, kostenlos)
- **EU AI Act:** KI-generierte Werbevideos müssen gekennzeichnet werden
- **Gesichter echter Personen** nur mit dokumentierter Einwilligung (auch beim Brand Owner) → **rein KI-generierte Gesichter sind der sichere Standard**
- Referenzen fremder Inhalte: Merkmale beschreiben und lernen, **nie 1:1 kopieren**
- Impressum / AGB / Datenschutzerklärung
- **Meta/TikTok-App-Reviews früh beantragen** – die Freigabeprozesse dauern

---

## 11. Risiken & offene Punkte

| Risiko | Status / Gegenmaßnahme |
|---|---|
| Kosten pro Runde | Gelöst: Preis pro Video → aus Risiko wird Umsatzhebel |
| Kaltstart Runde 1 | **Weitgehend gelöst:** Onboarding-Uploads + **Import beim Kopieren** aus dem Feed (§15) – die KB ist gefüllt, bevor der erste Euro ausgegeben wurde |
| Anchoring durch Favoriten-Markierung | Vote-Gewichtung + Tracking; bei >90 % Bestätigungsrate Markierung testweise ausblenden |
| Wenig Datenpunkte für Elo | LLM-Inhaltsvergleich zieht schon aus einem einzigen Vergleich Erkenntnisse |
| Plattform-Anbindung | Meta/TikTok-API-Zugänge + Attributionsfenster technisch prüfen |
| **Neu: Konvergenz durch den Feed** | Wenn alle dieselben Top-Posts kopieren, wandert dasselbe Wissen in alle KBs, alle Ads sehen gleich aus und der Moat wird wertlos. **Gegenmaßnahme: Ordner** – Wissen wird segmentiert statt gemittelt (§15) |
| **Neu: Rich-get-richer im Feed** | Wer oben steht, bekommt Views und bleibt oben. Gegenmaßnahme: Zeit-Decay + fester Explorations-Slot für neue Posts |
| **Neu: Manipulation des Feed-Scores** | Globale Sichtbarkeit erzeugt Anreiz für Fake-Signale. Rate-Limits, Verifizierung, Ausreißer-Erkennung. Bei brand-internen Scores war das kein Thema |
| **Neu: Moderation & Minderjährigenschutz** | Öffentlicher Feed = nutzergenerierte Inhalte → DSA-Meldepflichten; breitere Nutzerbasis → Altersgrenzen klären |
| **Offen:** finaler Produktname | „BrandLoop" ist Platzhalter |
| **Offen:** konkrete Preisstufen | Richtwert €150–300/Brand/Monat + Preis pro Video. **Passt nicht mehr zur Creator-/Privatnutzer-Zielgruppe des Bild-Modus** – dort braucht es eine eigene, deutlich niedrigere Stufe oder Freemium |

---

## 12. Roadmap

Es gibt jetzt **zwei Stränge**, die parallel laufen können – der Bild-Strang ist billiger zu bauen und liefert früher Nutzer.

**Video-Strang (Kernprodukt)**

1. **MVP** – Prompt → 3 Videos (3 Modelle) → Auswahl → einfache KB (Tags + Elo) → Anreicherung ab Runde 2. *Prompts: P3, P4, P5, P8, P9, P11.*
2. **V2** – Gezielte Vergleichsfragen, LLM-Inhaltsvergleich, Unter-Attribute, Produkt-/Gesichts-Referenzen. *P12, P13, P14, P15, P16, P17.*
3. **V3** – Meta/TikTok-Ads-Anbindung, performance-gewichtetes Scoring, Reporting-Dashboard. *P18, MCP-Server.*

**Bild-Strang (Einstieg & Wachstum)**

1. **B1** – Modelle anlegen (Person, Produkt, Kulisse), Post als Slot-Rezept erstellen, Bilderkette, ein festes Bildmodell. *P7, P22.*
2. **B2** – Feed: veröffentlichen, browsen nach Nische, **Kopieren** mit Slot-Chips. *P19, P21.* Feed-Score zunächst nur aus In-App-Signalen.
3. **B3** – **Ordner** mit Scores pro Ordner, Import beim Kopieren, KI-Ordner-Vorschlag. *P20.* Ab hier greifen Bild- und Video-Strang ineinander.
4. **B4** – Social-Account-Anbindung (organische Reichweite), Feed-Score mit ×2-Gewichtung, Moderation.

> **Abhängigkeit:** B3 setzt die Auftrennung von `attributes` in `attribute_scores` voraus. Diese Änderung sollte **vor** dem Video-MVP passieren – nachträglich eine Scope-Dimension in eine gefüllte Score-Tabelle einzuziehen ist deutlich teurer.

---

## 13. Was bereits existiert (Arbeitsstand)

| Datei | Inhalt | Reife |
|---|---|---|
| `konzept-ki-video-ads.md` | Gesamtkonzept Video, 12 Kapitel | ✅ durchdacht, v1 |
| **`konzept-bilder-feed.md`** | **Bild-Modus, Feed, Kopieren, Ordner, Feed-Score** | ✅ **neu – Konzept steht, 8 offene Punkte markiert** |
| `datenbank-aufbau.md` | Appwrite-Schema, alle Tabellen | ✅ umsetzungsreif · **um Bild-Modus erweitert, `attributes` aufgetrennt** |
| `prompt-inventar.md` | 22 Denk-Punkte P1–P22 mit In/Out | ✅ vollständig kartiert · **P19–P22 neu** |
| `prompt-templates-research.md` | Deep Research, ~25 Quellen, Vorlagen-Mapping | ✅ Recherche abgeschlossen · **deckt P19–P22 noch nicht ab** |
| `fragenkatalog-onboarding.md` | 3-stufiges Onboarding | ✅ fertig · **Nische als 6. Pflichtfrage ergänzt** |
| `prototyp-app.html` | Klickbarer Textprototyp: alle Screens vom Onboarding bis Dev-Modus | ⚠️ **Video-Flow steht – Feed, Kopier-Screen und Ordner fehlen** |

**Noch nicht geschrieben:** die eigentlichen Prompt-Texte (P1–P22). Recherchierte Vorlagen liegen für **P5/P8, P7, P9 und P16** bereit (§8), für alle übrigen – inklusive P19–P22 – noch nicht. Ebenfalls offen: Code, UI-Design, Preismodell im Detail, Name, Prototyp-Screens für den Bild-Modus.

---

## 14. Naheliegende nächste Schritte

1. **P5/P8-Kern schreiben** (Wan-Rewriter-Struktur + unsere Slots) und die 3–4 Modell-Adapter daraus ableiten – das ist der Kern des Produktversprechens.
2. **P9 (Video-Tagger)** mit Enum-Schema + Code-Validator festlegen – ohne saubere Tags lernt die KB nichts.
3. **P7 auf Slot-System umbauen** (bestehender Prompt) – trägt jetzt doppelt, weil er auch der Generator des Bild-Modus ist.
4. **Appwrite aufsetzen** und das Schema aus `datenbank-aufbau.md` anlegen – **inklusive `attribute_scores`-Auftrennung von Anfang an** (siehe Abhängigkeit in §12).
5. **Elo-Function implementieren** (deterministisch, gut testbar – guter erster Code), scope-bewusst.
6. **Nischen- und Typ-Tag-Enums festlegen** – blockiert P19, P22 und die Kopier-Kompatibilität.
7. **Bildmodell auswählen** – Kriterium ist Multi-Referenz-Komposition (Person + Produkt + Kulisse konsistent), nicht reine Bildqualität.
8. **Prototyp erweitern:** Feed, Post-Detail, Kopier-Screen mit Slot-Chips, Ordner-Ansicht, Ordner anlegen (zwei Schalter).
9. Entscheidungen nachziehen: Name, Preisstufen **für beide Zielgruppen**, Ads- **und Social-**API-Anträge starten.

---

## 15. Bild-Modus, Feed & Ordner (Zusammenfassung)

**Vollständiges Konzept: `konzept-bilder-feed.md`.** Hier nur, was man kennen muss, um den Rest des Dokuments richtig zu lesen.

### Der Post

Ein Post ist **kein Freitext-Prompt, sondern ein Slot-Rezept** – nur deshalb ist er überhaupt kopierbar: `Format` (1:1 / 4:5 / 9:16) · `Kulisse` · `Modelle` (Person, Produkt) · `Licht / Kamera / Farbe` · `Werbetext` · `Nische`.

Dazu eine **Bilderkette**: mehrere Bilder, über die nur **Position und Winkel** variieren. Modelle, Kulisse, Licht, Farbe und Text bleiben konstant. Das **Text-Overlay ist ein eigenes Bild** in der Kette, keine Ebene auf dem Motiv – so lässt sich der Text tauschen, ohne die Motive neu zu generieren.

Veröffentlichen ist ein **aktiver Schritt**; Standard ist privat.

### Kopieren

Der Original-Prompt wird analysiert (P19) und als **vereinfachte Chips** dargestellt: „Kulisse: Badezimmer, Morgenlicht", „Modell: kleine Kerze". Der Kopierer ersetzt die **Modell-Chips durch eigene** – Pflicht, nie die fremden – und kann Kulisse, Licht, Kamera, Farbe übernehmen oder ändern. Der Werbetext wird von der KI neu geschrieben (P21).

**Die kritische Grenze:** Der Kopier-Screen zeigt die Abstraktion, **nie den Prompt im Wortlaut**. Sonst wandert die Knowledge Base fremder Brands nach außen – gegen §4 und §9.

**Modelle werden nie geteilt.** Produkt-Modelle bilden echte Markenprodukte ab (Marken-/Designrecht); geteilte Personen-Modelle entwerten die Konsistenz. Fremde Modelle erscheinen nur als Beschriftung.

### Ordner

Ein Ordner ist ein **privater Wissens-Scope**. Attribut-Scores werden **je Attribut je Ordner** geführt (`attribute_scores`). Beim Generieren zieht P4 nur die Attribute des gewählten Ordners – ein Ordner **überschreibt** die brand-weite Ebene vollständig, es wird nicht gemischt.

Er nimmt **eigene und fremde** Posts auf, ein Post darf in mehreren Ordnern liegen, und er wird **vor** der Generierung gewählt. Zwei Schalter beim Anlegen:

- **Zweck:** `sammlung` (nur kategorisieren) · `wissens_scope` (aus ihm heraus erstellen)
- **Startwerte:** `erben` (Kopie der brand-weiten Scores) · `aus_posts` (nur was in den gesammelten Posts steckt)

> **Warum das der wichtigste neue Baustein ist:** Der Feed erzeugt Konvergenz – alle kopieren dieselben Top-Posts, alle Ads sehen gleich aus. Der Ordner **segmentiert das Wissen, statt es zu mitteln**: statt eines Durchschnitts entstehen mehrere konkurrierende Wissensinseln. Damit kann man sich bewusst gegen einen Hype stellen, statt in ihm zu verschwinden.

### Feed-Score – nicht Elo

| | Elo (Knowledge Base) | Feed-Score |
|---|---|---|
| Rankt | Attribute | Posts **und** Modelle (getrennt) |
| Scope | pro Brand, **jetzt zusätzlich pro Ordner** | global, gefiltert nach Nische |
| Sichtbar | nein | ja |
| Mathematik | echtes Elo (Paarvergleich, K-Faktor) | gewichtete Summe + Zeit-Decay |
| Signale | Vote, gezielte Frage, Ad-Performance, LLM-Vergleich | Views ×0,1 · Likes ×0,5 · **Kopien ×1** · Social-Reichweite ×2 |

**Elo braucht Duelle; im Feed wird summiert.** Beides „Elo" zu nennen rächt sich im Code – deshalb getrennte Namen, Tabellen und Functions. Dazu drei Pflicht-Korrekturen: **Zeit-Decay**, **Explorations-Slot** für neue Posts, **Manipulationsschutz**.

### Kopplung zur Knowledge Base

1. **Import beim Kopieren:** Die Slots landen sofort als Attribute in der eigenen KB (Scope = gewählter Ordner). Das ist die Antwort auf den Kaltstart.
2. **Rückfluss nach Veröffentlichung:** Läuft ein Post gut, steigen die beteiligten Attribute – **×0,3**. Bewusst niedrig, weil Reichweite auch am Posting-Zeitpunkt liegen kann.

*Diese Kopplung ist noch nicht final bestätigt – siehe `konzept-bilder-feed.md` §10.*
