docs: add VibeSoul context, SOUL.md, and README

Project character, agent rules, and run/deploy docs for mobea.de.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Frank Schwenk
2026-07-01 11:52:00 +02:00
parent 5961293faa
commit b9ad7f0c40
9 changed files with 955 additions and 0 deletions
+176
View File
@@ -0,0 +1,176 @@
# SOUL — mobea.de
> Diese Datei ist das Herzstück des Projekts: **wofür** MOBEA existiert und **wie** wir daran arbeiten.
> Für Menschen, für zukünftige Agents, für Frank-in-6-Monaten-der-vergessen-hat-warum-Pivot.
---
## Was MOBEA ist
**MOBEA** ist kein Startup. Es ist eine **tägliche Satire-Website** unter [mobea.de](https://mobea.de/) — jeden Tag erfindet eine KI eine neue absurde Firma und präsentiert sie als völlig ernste Landing Page.
**Tagline:** *Das Startup, das jeden Tag ein anderes Startup ist.*
**Der 3-Sekunden-Test:** Ein Besucher soll kurz denken: *„Moment — ist das echt? … nein, oder? … haha, nein."*
**Nicht:** *„Noch eine langweilige KI-Demo-Seite mit einem Witz im Footer."*
**Identitätsmerkmal:** Der Name **MOBEA** ist immer ein **Backronym** — fünf deutsche Wörter, deren Anfangsbuchstaben M-O-B-E-A ergeben. Das ist kein Easter Egg, sondern Teil des täglichen Rituals.
**Ablauf (vereinfacht):**
1. Generator würfelt 1–2 Themen aus dem Pool (`topics.py`)
2. OpenRouter schreibt JSON-Inhalt (Pitch, Features, Preise, Testimonials, FAQ, Stats)
3. Optional: Pixazo SDXL erzeugt ein Hero-Bild
4. Jinja2 rendert `startup.html.j2` → `public/index.html` + Archiv-Kopie
5. Alle Kauf-/Kontakt-CTAs führen zu `/echt-jetzt/` — der Vorhang fällt
**Satire ≠ Täuschung:** Die Landing täuscht bewusst Startup-Ernst vor; `/echt-jetzt/` sagt ehrlich Bescheid. Kein echtes Produkt, kein Newsletter, kein Impressum mit Firma dahinter.
---
## Zielgruppe
| Wer | Was sie erwarten |
|-----|------------------|
| Neugierige von [schwenk.online](https://schwenk.online/) oder der Mail-Signatur | Kurz reinschauen, lachen oder verwirrt sein, vielleicht morgen wiederkommen |
| Startup-affine mit Buzzword-Allergie | Den Ton erkennen, den Gag mitbekommen |
| Leute, die kurz reinfallen | Ein ehrlicher Ausweg — nicht ein Sales-Funnel |
**Nicht die Zielgruppe:** Investoren, Kunden, Journalisten auf der Suche nach einem echten Unternehmen. Die sollen zum Vorhang, nicht in einen Checkout.
---
## Stimme & Ton
MOBEA spricht in **drei Schichten**. Jede hat eigene Regeln — nicht vermischen.
### 1. Tages-Landing (KI-Inhalt + Template-Rahmen)
- **Sprache:** Deutsch. Formelles **Sie** in Marketing-Sektionen.
- **Ton:** Todesernst. Wie echtes Startup-Deutsch 2024–2026: *disruptiv, skalierbar, enterprise-ready, Pivot*.
- **Englische Lehnwörter:** Ja, wo Startup-Sprech sie verlangt — *Features, FAQ, Enterprise, Newsletter, Pivot*.
- **Humor:** Entsteht durch **Kontrast** (absurder Inhalt + überzeugter Ton), nicht durch 😂 oder „Haha, Satire!"-Labels auf der Landing.
- **Template-Rahmen:** Trockene Seitenhiebe in Untertiteln und Footer — ein Augenzwinkern, kein Comedy-Moderator.
### 2. Echt-jetzt (`/echt-jetzt/`)
- **Sprache:** Deutsch. Informelles **du**.
- **Ton:** Direkt, selbstironisch, Fourth-Wall. Satire wird **erklärt**, nicht verkauft.
- **Kein Buzzword** — außer wenn zitiert („Buzzword-Bingo").
### 3. Archiv (`/archiv/`)
- **Ton:** Nüchtern, leicht morbide — *„Hier ruhen die bisherigen Pivots."*
- Meta-Ebene für Insider; Prompts optional einblendbar.
**Werte (außerhalb der Parodie-Schicht):** Kein echtes Tracking, keine Datensammlung, keine Dark Patterns die wirklich funktionieren. Der Cookie-Banner ist Satire — er setzt nichts.
**Verboten in echten Projekt-Texten** (nicht in der absichtlichen Startup-Parodie): LinkedIn-Coach-Sprech als eigene Stimme, „leverage", „synergize", KI-Slop ohne Biss, Täuschung als Businessmodell.
### Wording-Beispiele
| Kontext | Gut | Schlecht |
|---------|-----|----------|
| Section-Untertitel | *„100 % authentisch. 0 % überprüfbar."* | *„Unsere zufriedenen Kunden lieben uns!"* (zu generisch, kein Witz) |
| Preise | *„Keine versteckten Kosten. Nur versteckte Absichten."* | *„Faire Preise für jeden!"* |
| CTA-Banner | *„Schließen Sie sich Tausenden zufriedener Nutzer an, die es auch nicht sind."* | *„Jetzt kostenlos testen!"* (klingt nach echtem SaaS) |
| Cookie-Banner | *„Wir verwenden Cookies, Karma und Schwingungsdaten."* | Echter Consent-Manager mit Tracking |
| Echt-jetzt | *„Oh. Du hast das wirklich geglaubt?"* | *„Willkommen auf unserer Satire-Website!"* (zu meta, zu früh) |
| Footer | *„© MOBEA. Alle Rechte vorbehalten. Irgendwie."* | *„Made with ❤️ and AI"* |
| Leerer Zustand (Archiv) | *„Noch keine Pivots. Komm morgen wieder."* | *„Keine Einträge gefunden."* |
---
## Visuelle DNA
Jeden Tag ein anderes **Theme** — gewürfelt per Datum, nicht per Laune:
| Theme | Akzent | Feel |
|-------|--------|------|
| **corporate** | `#2563eb` Blau | Clean SaaS, system-ui, abgerundet |
| **neon** | `#00f5d4` + `#a855f7` | Dark Cyber, Glow |
| **mystic** | `#d4a853` Gold | Dunkel-lila, Georgia, esoterisch |
| **brutalist** | `#ff0000` Rot | Schwarze Borders, Courier, harte Schatten |
| **pastel** | `#f472b6` + `#6ee7b7` | Weiche Gradients, große Radien |
**Konstanten:** Favicon `#2563eb` mit weißem **M**. OG/Meta über `_head_common.html.j2`.
**Eigene Welten (nicht theme-rotierend):**
| Seite | Palette | Feel |
|-------|---------|------|
| **Archiv** | `#111118` / `#1a1a24` | Friedhof der Pivots — dunkel, sachlich |
| **Echt-jetzt** | `#12141a` + Gold `#c9a227` | Backstage — ehrlich, kein Marketing-Glanz |
| Element | Ja | Nö |
|---------|----|----|
| Überzeugende SaaS-Landing-Struktur (Hero, Features, Pricing, FAQ) | ✓ | |
| Täglich wechselnde visuelle Identität | ✓ | |
| Responsive Layout, semantisches HTML | ✓ | |
| Fake-Cookie-Banner (ohne Funktion) | ✓ | |
| Ein Theme dauerhaft dominieren | | ✓ |
| Echtes Tracking / Analytics | | ✓ |
| Stock-Corporate als einziger Look | | ✓ |
| „LOL SATIRE"-Banner auf der Tages-Landing | | ✓ |
**Technik-Philosophie:** Statisches HTML, wenig JS (Cookie-Dismiss, Mobile-Nav), Python-Generator in Docker, nginx vor `public/`. Privacy by design — keine Analytics, `robots.txt` blockiert `/archiv` und `/echt-jetzt` für Crawler.
---
## Non-Goals (Anti-Manifest)
- **Kein echtes Startup** — nichts zu kaufen, niemanden zu kontaktieren, kein echtes Impressum
- **Keine Lead-Gen** — Newsletter-Link führt zum Vorhang, nicht zu Mailchimp
- **Kein Engagement-Bait** — kein „Teile dein tägliches Startup!", kein Streak-Gamification
- **Kein Daten-Hoarding** — nichts speichern, nicht mal Enttäuschung
- **Nicht zu erklärend auf der Landing** — der Gag lebt vom Ernst, nicht vom Disclaimer
- **Nicht zu langweilig** — generischer KI-Slop ohne absurden Kern ist schlimmer als ein schlechter Witz
- **Nicht zu corporate** — dann wäre es das, was wir parodieren, ohne den Witz
- **Kein WordPress-Agentur-Vibe** — MOBEA ist Kunst/Experiment, keine Visitenkarte mit CTA
---
## Wie wir zusammenarbeiten
### Frank liefert, Agent bindet ein
| Datei | Zweck |
|-------|-------|
| [`NOTES.md`](NOTES.md) | Franks Scratchpad — frei, chaotisch erlaubt |
| [`SOUL.md`](SOUL.md) | Vision, Ton, Arbeitsweise (du bist hier) |
### Arbeitsmodus Agent
1. **Generator-Output ist Runtime** — `public/index.html`, `public/archiv/`, `public/img/` werden generiert und sind gitignored. Änderungen an **Templates** (`startup.html.j2`, …) und **Prompts** (`generate.py`) sind die eigentliche Quelle.
2. **Ton-Änderungen doppelt prüfen** — statische Template-Zeilen *und* LLM-System-Prompt müssen zusammenpassen.
3. **Kein Scope-Creep** — nur anfassen, was die Aufgabe verlangt.
4. **Deploy:** Fränky (`INFRASTRUCTURE.md` — `mobea` → `/home/frank/mobea.de` auf `boka`).
5. **Keine Commits / kein Push** ohne explizite Anweisung (siehe `AGENTS.md`).
6. **CI/CD** nur mit Fränkys OK.
### Prioritäten bei Konflikten
```
Satire-Treue (Ernst + Absurdität) > visueller Wow-Effekt
Ehrlicher Vorhang (/echt-jetzt/) > überzeugende Täuschung
Weniger erklärender Text auf der Landing > mehr Meta-Humor
Privacy (kein Tracking) > Analytics-„Insights"
```
---
## Für Agents: Quick Start
1. [`SOUL.md`](SOUL.md) lesen (du bist hier)
2. [`generator/generate.py`](generator/generate.py) — System-Prompt, Schema, Tageslogik
3. [`generator/templates/startup.html.j2`](generator/templates/startup.html.j2) — Landing-Struktur, Themes, statische Witze
4. [`generator/topics.py`](generator/topics.py) — Themen-Pool
5. [`public/echt-jetzt/index.html`](public/echt-jetzt/index.html) — Satire-Disclaimer, ehrliche Stimme
6. [`compose.yml`](compose.yml) — nginx + Generator-Container
7. Änderungen am **Ton** gegen SOUL abgleichen
8. Vor „fertig": Generator lokal/Docker testen; Mobile (390×844) bei UI-Änderungen
---
## Ein Satz zum Mitnehmen
**mobea.de** ist ein täglicher Startup-Parodie-Automat — todernst verkauft, absurder Inhalt, ehrlicher Vorhang: KI-Humor mit Haltung, nicht LinkedIn-Slop mit Disclaimer.