📚 HF Wiki

aktualisiert 18:55:39

Viaviva Agentensystem 2026 — Strategie-Foundation

Stand: 2026-04-27 Status: Arbeitspapier — Grundlage für alle künftigen Bauentscheidungen Vorgänger: agentensystem-konzept-2026.md (Entwurf v0.1, von Chapaty) Autor dieser Fassung: Claude Code, basierend auf dem Konzept-Entwurf plus Live-Beobachtungen am bestehenden Stack Geltungsbereich: alle Bau-, Migrations- und Betriebsentscheidungen rund um das Agentensystem auf dem Hostinger-VPS

---

0. Vorwort — Was dieses Dokument ist

Das ist die finale Strategie-Foundation, gegen die ab sofort alle Architektur-Entscheidungen geprüft werden. Es ersetzt das Konzept-Dokument als Arbeitspapier. Der Konzept-Entwurf hat den richtigen Geist, lässt aber an entscheidenden Stellen offen, was im Praxis-Test passieren würde — vor allem hardware-seitig und operations-seitig. Diese Fassung schließt diese Lücken und macht harte Entscheidungen, wo der Entwurf noch im Konjunktiv blieb.

Die wichtigste Botschaft vorab: wir bauen nicht das beste denkbare System, sondern das beste betreibbare System mit dem was wir haben. Hardware-Limit, Bus-Faktor 1, Compliance-Risiko — das sind harte Anker, nicht Variablen.

---

1. Bilanz aus zwei Iterationen

V1 (OpenClaw-Stack, gescheitert in der Praxis)

Was kaputt war:

V2 (Konzept-Doc, korrekt erkannt)

Was V2 richtig macht:

Was V2 noch offen lässt oder zu schwach behandelt:

---

2. Drei harte Architektur-Anker

Anker 1: Die Hardware ist die Grenze

8 vCPU AMD EPYC, 32 GB RAM, kein GPU. Punkt. Jede Architektur-Entscheidung wird gegen diesen Anker geprüft.

Konkrete Implikationen, gemessen am bestehenden System:

Daraus folgt das LLM-Verbots-Schild:

Anker 2: Eine-Person-Operation ist die Grenze

Chapaty allein betreibt das System. Das heißt:

Anker 3: LLM ist Veredelung, nicht Engine

Wo immer möglich, lebt der Workflow ohne LLM. LLM kommt erst dazu wenn:

Reihenfolge in jedem Workflow:

  1. Deterministische Regel oder DB-Lookup zuerst
  2. Embedding + pgvector-Match zweitens
  3. Lokales kleines LLM (1.7B) für Klassifikation
  4. Lokales 8B nur wenn Personalisierung nötig
  5. Cloud-LLM nur wenn Long-Form oder Reasoning-Tiefe gefragt
  6. 14B nur als Batch-Job im Nachtfenster

Anker 4: Bottom-Up, Demand-Driven — das Wachstums-Prinzip

Das System wird nicht im Voraus aufgebaut, sondern wächst aus konkreten Schmerzpunkten.

Konkret bedeutet das:

  1. Phase 1 (Stack-Foundation) ist Pflicht — Postgres+pgvector, TEI, Uptime-Kuma, gereinigtes n8n. Das ist Plumbing das jeder Workflow brauchen wird, ohne es geht nichts.
  2. Alle anderen Phasen sind Patterns, keine Projekte. Sie werden aktiviert wenn Chapaty sagt: "diesen Flow will ich jetzt automatisiert haben".
  3. Reihenfolge: zuerst Projekt sauber aufsetzen (Chapaty + Claude Code, manuell), dann den konkreten manuellen Flow identifizieren der wiederkehrt, dann diesen einen Flow automatisieren.

Anti-Pattern (vermeiden): "Lass uns das gesamte Email-Workflow-Subsystem bauen, weil wir irgendwann Mails automatisch beantworten wollen."

Pattern (anwenden): "Ich beantworte gerade zum dritten Mal die gleiche Frage zu Lakhowsky-Geräten. Bau diesen einen Q+A-Eintrag mit Auto-Reply für genau diesen Fragetypen, andere Mails laufen weiter manuell."

Vorteile dieses Vorgehens:

Operatives Vorgehen pro Automatisierungs-Auftrag:


1. Chapaty: "Ich will diesen Flow automatisieren: [konkrete Beschreibung]"
2. Claude Code prüft:
   - Welche Daten/Eingaben?
   - Welcher Output?
   - Welche Bestandsysteme angetastet?
   - Welche LLM-Stufe nötig (siehe Pyramide)?
   - Welche Tabu-Wort-Liste / Compliance-Schicht?
3. Auftragsdokument schreiben — kompakt, aufs Foundation-Doc verweisend
4. Bauen — eng gescopt, ein einziger Workflow
5. Mit Chapaty 5–10 reale Cases manuell durchspielen (Approval-Loop)
6. Wenn Approval-Quote stabil > 80 %: Auto-Pfad freischalten
7. Wenn nicht: Workflow stillgelegt oder Q+A-Wiki-Eintrag verfeinert

Das ist der Pulsschlag. Jede Phase 2-X im roadmap-Sinne ist eine Sammlung solcher Patterns die bei Bedarf aktiviert werden, kein Master-Plan zur Komplett-Realisierung.

---

3. Stack-Entscheidungen final

3.1 Was bleibt aus dem aktuellen Stack

KomponenteStatusBegründung
n8nbleibt (gereinigt)bewährter Orchestrator, schon konfiguriert
Postgres (neu eingeführt)wird nachgezogenfür pgvector + Q+A-Wiki — ist im aktuellen Stack noch nicht da, MySQL/MariaDB überall
ListmonkbleibtNewsletter, läuft bereits
VaultwardenbleibtSecret-Manager, läuft bereits
NPM (Nginx Proxy Manager)bleibtReverse-Proxy + SSL, läuft bereits
Perfex (Eigenmarken-CRM)bleibtWerkstattbuch, läuft bereits
MailHogbleibtTest-Mail-Sink
Ollamableibt (eingedampft)nur noch ein 8B + on-demand 1.7B
Wiki-Server (/root/wiki/)bleibtbereits Markdown-basiert, einfach
/root/templates/ Schablonenbleibt (auf 4 reduziert)TEXT, CODING, EMAIL, NEWSLETTER reichen
viaviva-sync WP-Plugin v1bleibt als v1für nicht-strategische WP-Sites — nur Plugin-v2 für strategische

3.2 Was kommt neu rein (priorisiert)

PrioritätKomponentePhase
1Postgres + pgvectorPhase 1 — Fundament für Q+A-Wiki
2Embedding-Modell (siehe 3.4)Phase 1
3Uptime-KumaPhase 1 — Monitoring + Telegram-Alerts
4Mailcow ODER Mail-Relay (siehe Entscheidung Teil 14)Phase 2
5SearXNG-Erhalt (ist da, bleibt)bereits da
6Browser-UsePhase 4 — wenn Lead-Recherche kommt
7Outline ODER Markdown-Verzeichnis (siehe Entscheidung)Phase 1 — Auftrags-Inbox

3.3 Was bewusst gestrichen wird gegenüber V2

KomponenteGrund der Streichung
ChatwootHelpdesk auf Rails + eigene Postgres-Instanz — überdimensioniert für 1-Person-Betrieb. Ersatz: n8n + Q+A-Wiki + Telegram-Approval. Helpdesk-Funktion erst wenn Volumen es rechtfertigt.
PlausibleEigenes Tracking lieber im Plugin v2 selbst (kontrolliert, DSGVO-konform). Externes Plausible erst bei Skalierung.
Mailcow als Big-BangStattdessen: Phase 2a → SMTP-Relay (Brevo o. ä.) für ausgehende Mails. Phase 2b → Mailcow nur wenn echter Mehrwert (volle Kontrolle, Compliance). Eigenen Mailserver zu betreiben hat hohen Wartungsaufwand und Reputations-Risiko.
Mehrere Cloud-LLM-Provider parallelEin Primär-Provider (Empfehlung: Claude API), ein Fallback (Cloud-Codex über ChatGPT-Pro). Kimi K2 nur wenn Sonderfall (Datenschutz).
Astro für Eigenmarken zusätzlich zu WPStattdessen WP plus Plugin v2 für ALLE produktiven Sites. Ein Frontend-Stack, eine Pflege-Pipeline. Astro nur für reine Marketing-Landingpages ohne Backend.
Eigene SvelteKit-Member-App in Phase EErst wenn das Produkt-Konzept der Member-App validiert ist. Phase E wird auf "MVP via WP+WooCommerce-Subscriptions" eingedampft, SvelteKit-Native erst nach Validierung.

3.4 Embedding-Modell-Entscheidung

V2 lässt das offen. Hier die Festlegung:

Lokal: intfloat/multilingual-e5-small (118M Params, 384-dim, deutsch+englisch+spanisch). Läuft als Docker-Container text-embeddings-inference (TEI, von HuggingFace). CPU-Performance: ~50–100 Embeddings/Sek bei kurzen Texten. RAM: ~500 MB. Rationale: deutsch-fähig, klein genug, etabliertes Modell.

Cloud (Fallback bei Long-Document-Embeddings): OpenAI text-embedding-3-small ($0.02 / 1M Tokens). Nur wenn lokal nicht reicht (selten — Q+A-Einträge sind kurz).

Vector-Dimension: 384. pgvector-Schema entsprechend.

---

4. Die kanonischen Workflows

Jeder Workflow hat ein Token-/Latenz-Budget, das eingehalten werden muss. Übersteigt der Workflow das Budget, wird er umgeschrieben oder eskaliert.

4.1 Email-Eingang (Standard-Workflow)


Mail kommt rein
 → n8n IMAP-Trigger (latency: ~10s nach Eingang)
 → Spam-Regex/SPF-Check (latency: 50ms, kein LLM)
 → Auftrag-Versuch-Detection (Keywords "möchte beauftragen", "bitte erstellen")
   → Wenn ja: Auto-Reply "Aufträge nur via Telegram", Ende
 → Embedding der Email mit TEI (latency: 200ms)
 → pgvector kNN gegen qa_entries WHERE brand=X (latency: 50ms)
 → Top-Match score:
    > 0.85 + use_count >= 5 + approved → Auto-Reply mit gespeichertem Template, Telegram-Info
    0.70–0.85 → 1.7B-LLM personalisiert das Template, Telegram-Approval
    < 0.70 → Cloud-LLM Draft, Telegram-Approval (ausführlicher)
 → Eintrag in Perfex (für GFKB-Mails: zusätzlich Perfex-GFKB-API-Call)

Budget pro Mail:

4.2 Newsletter-Versand

Grundsatz: Newsletter ist lokal, weil hier der Agent-Wert sichtbar werden soll. Drafting auf qwen3:8b (notfalls 14B-Batch), Versand über schlanke Mail-Loop.


Telegram: "Newsletter Donnerstag 19h zum Thema X"
 → n8n erstellt Markdown-Auftragseintrag
 → qwen3:8b lokal Draft mit:
    - Brand-Voice-Wiki (max 1500 Token)
    - Compliance-Tabu-Wiki (max 800 Token)
    - 1 Beispiel-Newsletter aus Archiv (max 1500 Token)
    - Briefing (max 500 Token)
   = ca. 4300 Input-Token, ~1200 Output-Token, ~120 Sek lokal
 → Telegram an Chapaty: Draft mit Edit/Approve/Reject
 → Bei Re-Draft mit Korrektur: 2. Iteration ebenfalls 8B
 → Bei nicht-trivialer Komplexität (z. B. Layoutgerechtes HTML mit Variablen): Eskalation auf Kimi K2 (Subscription, kein Per-Token-Cost)
 → Bei Approve: Versand-Pfad wählen
 → Folgetag: Telegram-Report (Open-Rate, Click-Rate)
 → /erledigt/-Eintrag mit Lessons-Learned

4.2.1 Versand-Pfad — zwei Varianten

Pfad A — Listmonk (Standard für > 50 Empfänger):

Pfad B — Pure-SMTP-Loop (Alternative für < 50 Empfänger oder personalisierte 1:1-Mails):

Entscheidungs-Kriterium:

Budget pro Newsletter:

4.3 Lead-Recherche


Telegram: "Recherchiere 10 Lehrstühle Biophysik DACH"
 → n8n-Workflow startet
 → SearXNG-Suche → Top-30-URLs (latency: 5s)
 → Browser-Use besucht URLs, extrahiert strukturiert (latency: 30s/URL = 15 Min seriell, 5 Min parallel mit 6 Threads)
 → Cloud-LLM filtert, dedupliziert, ranked (~3000 Token Input, 1000 Output, ~$0.05)
 → Telegram-Liste an Chapaty
 → Bei Approve: Pro Lead Anschreiben (Cloud-LLM, ~1500 Token Input/Output, ~$0.02 pro Anschreiben)
 → Versand mit Throttling: max 3 Anschreiben/Tag/Lehrstuhl-Gruppe
 → Tracking in Postgres + Perfex

Budget pro Recherche-Lauf:

4.4 Schlafstudie-Tagesfrage (LLM-frei)


Cron 8:00 Asuncion
 → SELECT FROM studienteilnehmer WHERE active=true
 → Pro TN: Telegram/WhatsApp-Bot mit Inline-Buttons
 → Antworten kommen via Webhook
 → INSERT INTO studienantworten
 → Wenn-Dann-Logik (deterministisch): Antwort=1 → Folgefrage
 → Quartalsweise: Cloud-LLM-Aggregations-Report (separater Workflow)

Budget Standard-Tag: 0 LLM-Calls, 0 Cloud-Cost. Nur Cron + DB.

4.5 HF-Content-Pipeline (Phase 5, eigenes Kapitel)

Wegen Compliance-Last und Komplexität ein separates Foundation-Dokument vor Phase-5-Start. Kurzform: Cloud-LLM Script-Draft, Mensch-Voice-Recording, Remotion-Render, ManuelleApproval, dann YouTube. Voraussetzung: Anwalts-Check des Format-Templates (HWG-Konformität).

4.6 Astro-Sites mit Agent-editierbaren Content-Blocks

Pattern: Claude Code baut die Astro-Site (Layouts, Komponenten, Routing, Build-Pipeline) initial. Inhalte (Texte, Bilder-Captions, CTAs, Headlines) leben als strukturierte Content-Files in src/content/ und werden vom lokalen Modell editiert über eine schmale, sichere n8n-Schnittstelle.

Datei-Struktur


new-project/
├── src/
│   ├── pages/                       (von Claude Code gebaut)
│   ├── layouts/                     (von Claude Code gebaut)
│   ├── components/                  (von Claude Code gebaut, mit <ContentBlock id="..." /> Slots)
│   └── content/                     (vom Agent editierbar)
│       ├── blocks/
│       │   ├── hero-headline.md     (frontmatter: id, type, max_length, last_edited_at, last_edited_by)
│       │   ├── hero-subline.md
│       │   ├── feature-1-title.md
│       │   └── ...
│       ├── pages/
│       │   ├── about.md             (komplettes Markdown, längere Inhalte)
│       │   └── kontakt.md
│       └── meta.json                (Site-globale Settings: title, description, og:image)
├── astro.config.mjs
└── package.json

n8n-Tool-Webhook für lokales Modell


tool/edit-content
  Body:
    project_id: "hf-mini-site"
    block_id: "hero-headline"
    new_content: "Erfahre die Wahrheit über Hochfrequenz."
    reason: "Headline besser auf Zielgruppe ausgerichtet"
  Validierung:
    - block existiert?
    - content respektiert max_length aus frontmatter?
    - keine Tabu-Wörter aus Brand-Compliance-Wiki?
    - reason vorhanden?
  Aktion:
    - Schreibt new_content in src/content/blocks/{block_id}.md
    - Triggert Astro-Rebuild (npm run build, dann rsync ins live-Verzeichnis)
    - Schreibt Audit-Eintrag in /wiki/system/content-edits.md
  Antwort:
    - success: true/false
    - rebuild_status: queued | done | failed
    - preview_url

Sicherheits-Schichten gegen Agenten-Fehler

Workflow-Beispiel


Telegram: "Auf der HF-Mini-Site Headline persönlicher machen"
 → n8n erkennt: Astro-Site-Edit
 → qwen3:8b liest aktuelle headline + brand-voice + zielgruppe-info
 → generiert 3 Vorschläge
 → Telegram: "Welche?" mit Buttons
 → Bei Wahl: tool/edit-content mit gewählter Variante
 → Astro-Rebuild läuft, ~30 Sek
 → Telegram: "Live unter <preview_url>"

Was Claude Code initial baut, was Agent dann pflegt

Claude Code (einmalig)Agent (laufend)
Astro-Projekt-SetupHeadlines/Sublines anpassen
Layout-KomponentenCTA-Texte iterieren
RoutingBlogposts hinzufügen
Design-SystemBild-Captions ändern
Build-PipelineMeta-Tags optimieren (SEO)
n8n-Webhook-AnbindungA/B-Test-Varianten erzeugen
editable-Frontmatter-SchemaNeuen Content-Block per Telegram-Auftrag anlegen

Vorteil dieses Patterns: Astro-Site bleibt statisch und schnell, das Agent-Modell kann nicht die Site kaputtmachen (Whitelist + Build-Check), Claude Code wird nur für strukturelle Änderungen geholt, lokales Modell macht den Tagesbetrieb.

---

5. Brand-Wiki als Kontext-Layer

5.1 Struktur

Vier Marken, ein einheitliches Schema:


/wiki/brands/
├── hochfrequenz/
│   ├── _meta.yaml          (token-count, last-update, primary-llm)
│   ├── voice.md            (max 1500 Token)
│   ├── compliance-tabu.md  (max 800 Token)
│   ├── produkt-claims.md   (max 1000 Token)
│   ├── q-a-snippets/       (für Lookup-Zwecke, NICHT in Standard-Prompt)
│   └── studien/            (für Lookup, nicht Standard-Prompt)
├── gfkb/
│   └── … (analog)
├── immovia/
│   └── … (analog)
└── viaviva/
    └── … (analog)

5.2 Token-Budget pro LLM-Call

Standard-Brand-Kontext: voice.md + compliance-tabu.md + produkt-claims.md = max 3300 Token. Plus Aufgaben-Kontext = max 5000 Token Input in Standard-Workflows.

Bei Cloud-LLM: prompt_caching für die Brand-Kontext-Blöcke aktivieren — Anthropic Sonnet/Opus supportet ephemeral_cache, das senkt die Kosten der wiederkehrenden Brand-Voice auf ~10 % nach Cache-Warm.

5.3 Aktualisierungs-Routine

---

6. Q+A-Wiki Lernschleife

6.1 Architektur in Postgres + pgvector


CREATE EXTENSION vector;

CREATE TABLE qa_entries (
  id SERIAL PRIMARY KEY,
  brand VARCHAR(20) NOT NULL,                    -- hochfrequenz | gfkb | immovia | viaviva
  trigger_phrases TEXT[],                        -- Beispiel-Fragen die zu diesem Eintrag matchen
  embedding VECTOR(384) NOT NULL,                -- multilingual-e5-small
  answer_template TEXT NOT NULL,
  variables JSONB,                               -- erlaubte Personalisierungs-Felder
  confidence_threshold FLOAT DEFAULT 0.85,
  approved_by VARCHAR(50),
  approved_at TIMESTAMP,
  use_count INTEGER DEFAULT 0,
  last_used_at TIMESTAMP,
  edit_history JSONB DEFAULT '[]',
  status VARCHAR(20) DEFAULT 'draft',            -- draft | active | retired
  retired_reason TEXT,
  retired_at TIMESTAMP,
  pii_sensitive BOOLEAN DEFAULT false,           -- bei sensiblen Themen Auto-Reply VERBOTEN
  created_at TIMESTAMP DEFAULT NOW()
);

CREATE INDEX qa_embedding_idx ON qa_entries USING ivfflat (embedding vector_cosine_ops);
CREATE INDEX qa_brand_status ON qa_entries (brand, status);

6.2 Confidence-Schwellen-Modell

Match-Scoreuse_countapproved?pii_sensitiveAktion
≥ 0.85≥ 5janeinAuto-Reply, Telegram-Info
≥ 0.85< 5janeinTelegram-Approval mit Vorschlag
0.70–0.85egalegalneinTelegram-Approval mit Vorschlag
< 0.70egalegalegalCloud-LLM-Draft, Telegram-Approval
egalegalegaljaNIE Auto-Reply. Immer Approval, idealerweise mit Mensch im Loop

6.3 Review-Prozess

6.4 GDPR-Sonderfälle (HF-Gesundheits-Daten)

Email mit Symptom-Beschreibung ist personenbezogenes Gesundheits-Datum nach Art. 9 DSGVO. Sonderbehandlung:

---

7. Cloud-LLM-Disziplin

7.1 Provider-Routing — Subscription-First, API-Last

Grundprinzip: kostenpflichtige API-Calls sind die Ausnahme, nicht die Regel. Der Standard-Workload läuft über Subscription-Modelle (Flat-Rate). Nur wo Subscription versagt, kommt API-Token-Verbrauch ins Spiel.

Primär A — Codex (über ChatGPT-Pro-Subscription, OAuth via Openclaw-Provider in Vorgängerstack — Provider-Konfig wandert ab in n8n-HTTP-Node)

Primär B — Kimi K2 (über NVIDIA NIM, mit kostenlosen Credits + bestehender Subscription/Token-Pool)

Sekundär — Lokales 8B / 14B (qwen3)

API-Last — Claude API (Anthropic, NUR Special-Case)

Hard-Verbot:

7.2 Workload-Verteilung Codex vs. Kimi

Task-TypPrimärBegründung
Email-Personalisierung (HF/GFKB/Immovia)lokal 8B, Eskalation Kimi K2Brand-Voice + Q+A-Vorlage reichen meist; Eskalation nur bei Sonderfällen
Newsletter-Draftlokal 8B, Eskalation Kimi K2Hier soll Agent-Wert sichtbar werden, lokal first
n8n-Workflow-GenerierungCodexCode-Output, JSON-Strukturen
Plugin-v2-CodeCodexPHP/JS, strukturierter Code
Lead-Recherche-ZusammenfassungKimi K2Long-Context, Sprache
Compliance-Tabu-CheckCodexstrukturierter Checker-Output
Brand-Wiki-Update-AggregationKimi K2Long-Form, deutsch
Cron-Workflow-AuditCodextechnisch

Wenn die Primär-Auswahl Quota-erschöpft ist, automatisch auf den anderen Subscription-Provider fallback. Erst dann lokal. Erst danach (mit Approval) Claude-API.

7.3 Subscription-Quota-Tracking + Hard-Cost-Cap

Tracking-Tabelle in Postgres:


CREATE TABLE llm_calls (
  id BIGSERIAL PRIMARY KEY,
  ts TIMESTAMP DEFAULT NOW(),
  provider VARCHAR(20),       -- codex | kimi | claude-api | local-8b | local-14b
  model VARCHAR(50),
  workflow_source VARCHAR(50),
  tokens_in INTEGER,
  tokens_out INTEGER,
  cost_usd NUMERIC(10,4),     -- 0 für Subscription-Calls, > 0 nur für claude-api
  duration_ms INTEGER,
  success BOOLEAN
);

Subscription-Throttling:

Claude-API-Hard-Cap:

Wochen-Telegram-Bericht montags: Codex-Quota-Auslastung, Kimi-Quota-Auslastung, Claude-API-Cost-Stand.

7.4 Quota-Eskalation und Fallback


Workflow ruft Cloud-LLM auf → wählt nach Tabelle 7.2 (Codex oder Kimi)
 → 429 / Quota erschöpft
   → Versuch des jeweils anderen Subscription-Providers (Kimi ↔ Codex)
     → Beide erschöpft → Lokales 8B (Qualitätsabschlag akzeptiert)
       → Auch das nicht ausreichend (Long-Form, > 2000 Token Output) → 14B-Batch in Nachtfenster
         → Wirklich kritisch jetzt? → Telegram-Alert "Soll Claude-API genutzt werden? (Y/N)"
           → Bei Y: Claude-Call mit Justification-Eintrag
           → Bei N: Auftrag in /wartet-auf-mensch/

Bei strukturellen Cloud-Ausfällen (Codex + Kimi beide down): n8n-Workflow emergency-throttle pausiert nicht-kritische Cron-Jobs (Newsletter-Drafts, Lead-Recherche), behält nur kritische Pfade (Email-Auto-Reply via Q+A-Wiki ohne LLM, Schlafstudie ohne LLM, Uptime-Monitoring).

---

8. Migrations-Strategie aus aktuellem Stack

8.1 Was aus dem alten /docker/* überlebt

Container/StackSchicksal
n8n-n8n-1bleibt, wird gereinigt
n8n-wiki-server-1bleibt vorerst, wird in Phase 1 durch wiki-server-v2 ersetzt
perfex-web-1 + perfex-db-1bleibt — Werkstattbuch
nginx-proxy-managerbleibt
vaultwardenbleibt
mailhogbleibt — Test-Sink
ollama-pmhq-ollama-1bleibt, eingedampft auf 8B + on-demand 1.7B
Alle 5 migrierten WP-Stacks (wp-hochfrequenz-tech etc.)bleibt — werden produktiv nach DNS-Switch
perfex-godaddynur zur Sichtung — Daten dann in Haupt-Perfex-Viaviva mergen
wp-test, wp-staging-intern-gfkbbleibt vorerst, prüfen ob noch genutzt
listmonk-listmonk-*bleibt, wird konfiguriert für Multi-Brand
meilisearch, searxng, browserless, crawl4ai, stirling-pdf, excalidraw, playwright-canvableiben, werden bei Bedarf aktiviert
openclaw-sh3f-openclaw-1 + Gateway-ProxyWEG — komplett deinstallieren
n8n-media-server-proxy-1WEG — kein media_server.py mehr

8.2 Was migriert wird

ItemZielRolle
/root/templates/*.json (9 Stück)reduziert auf 4 (TEXT, EMAIL, NEWSLETTER, CODING)Schablonen
/root/wiki/ (41 MD-Files)umstrukturiert nach /wiki/brands/{brand}/ und /wiki/system/Brand-Wikis
/root/projects/viaviva-sync/ (23 PHP)wird zu viaviva-sync-v1.x für nicht-strategische SitesWP-Plugin v1
/root/.secrets/bleibt, ergänzt um GoDaddy-Migrations-KeysSecrets-Bereich
/root/gen_*.py (gen_tools, gen_telegram, gen_crons)werden umgeschrieben für neue n8n-Workflow-StrukturWorkflow-Generatoren
Perfex-Daten aus hqviaviva (1 Client + Schema)gemerged in laufendes Perfex-ViavivaCRM-Daten
Mail-Postfächer (5 Agents + 7 Domains)nach Mail-Strategie-Entscheidung (Teil 14)Mail

8.3 Was wegkommt

8.4 Migrations-Reihenfolge


Phase 0 (laufend): GoDaddy → Hostinger Site-Migration auf Subdomains
Phase 1: Stack-Foundation (Postgres+pgvector, TEI, Outline-or-MD, Uptime-Kuma)
Phase 2: Email-Workflow MVP (mit Q+A-Wiki, ohne Mailcow noch)
Phase 3: Mail-Strategie-Entscheidung + Versand-Setup (Mailcow oder Brevo-Relay)
Phase 4: Newsletter-Workflow + Brand-Wiki-Templates
Phase 5: Plugin v2 Entwicklung (eigener Sprint, 4–8 Wochen)
Phase 6: Lead-Recherche-Pipeline
Phase 7: Member-App MVP (WP+WooCommerce-Subscriptions zuerst)
Phase 8: GFKB-Integration (mit AVV)
Phase 9: HF-Content-Pipeline (Compliance-geprüft)
Phase 10: Skalierung + Hardware-Upgrade

---

9. Phasen-Roadmap — Foundation-Pflicht + Pattern-Bibliothek

Wichtig: Nur Phase 0 und Phase 1 sind aktive Bauprojekte mit Termin. Alle anderen Phasen (2–10) sind Patterns in einer Bibliothek. Sie werden aktiviert wenn Chapaty sagt "diesen Flow jetzt automatisieren" — nie davor (siehe Anker 4).

Phase 0 — Migrations-Abschluss (2026-04-27 bis ~05-15) [aktiv]

Phase 1 — Stack-Foundation (3–5 Tage) [Pflicht, baldmöglichst]

Diese Phase ist Plumbing das jede künftige Automation brauchen wird. Wird einmalig gebaut, danach läuft sie still im Hintergrund.

Nach Phase 1 ist das System bereit für Patterns, aktiv ausgeführt wird aber noch nichts.

---

Pattern-Bibliothek (Phasen 2–10)

Die folgenden Phasen sind vorgedachte Patterns mit klarer Aktivierungs-Anleitung. Sie werden on-demand aufgerufen, einzeln, eng gescopt.

Pattern A — Q+A-Email-Auto-Reply (für eine spezifische Frage-Klasse)

Trigger: Chapaty bemerkt wiederkehrende Frage, hat sie 3+ mal manuell beantwortet.

Pattern B — Newsletter-Drafting (für eine Marke)

Trigger: Chapaty will regelmäßig Newsletter für Marke X verschicken.

Pattern C — Lead-Recherche (für eine Zielgruppe)

Trigger: Chapaty hat eine Akquise-Welle vor sich (z. B. 30 Lehrstühle anschreiben).

Pattern D — Astro-Site mit Agent-Edits (für ein neues Projekt)

Trigger: Chapaty + Claude Code starten ein neues Projekt das eine Site braucht.

Pattern E — WP-Wartung über Plugin v2 (eigenes Sub-Projekt)

Trigger: Chapaty empfindet WP-Pflege als Schmerz, will Wochenrhythmus automatisieren.

Pattern F — Member-App MVP (für eine Marke)

Trigger: Chapaty hat Conversion-Bedarf bei einer Marke und einen Member-Flow im Kopf.

Pattern G — GFKB-Workflow (Werkstattbuch + Lieferschein)

Trigger: Chapaty will eine GFKB-Operation vom Hostinger aus automatisieren.

Pattern H — HF-Content-Pipeline (Compliance-Sonderfall)

Trigger: Chapaty will Sylke-Format-Videos automatisieren.

Pattern I — Schlafstudie + andere strukturierte Studien

Trigger: Chapaty will eine konkrete Studie starten.

---

Phase 10 — Skalierung + Hardware-Upgrade (Trigger-basiert)

Wird ausgelöst wenn Schwellen aus Teil 12 überschritten werden. Kein eigener Termin.

---

10. Operations & Bus-Factor

10.1 Monitoring-Stack

Uptime-Kuma beobachtet:

Alerts → Telegram-Bot, eskaliert auf SMS bei kritischen Alarmen (Postgres down, Disk > 95 %).

10.2 Backup-Disziplin (3-2-1)

Drei Kopien, zwei Medien, eine off-site:

  1. Lokal Hostinger: stündlicher Postgres-Dump + täglicher tarball aller /docker/*/html, /docker/*/dbdata und Volumes — /backup/hourly/ (24h rollend), /backup/daily/ (7d)
  2. Hostinger-Snapshot wöchentlich (manuell via Panel oder via Hostinger-API-Skript)
  3. Off-Site verschlüsselt: wöchentlicher Restic-Snapshot zu B2/S3 (oder vergleichbar) — Retention 4 Wochen

Disaster-Recovery-Runbook: ein eigenes Foundation-Dokument mit 5 Szenarien (DB-Crash, Container-weg, Server-weg, Domain-Lock, Compliance-Take-Down). Jeder Szenario mit RTO/RPO-Zielen.

10.3 Notfall-Operator-Plan (Bus-Faktor)

Wenn Chapaty 1+ Wochen ausfällt:

10.4 Dokumentations-Pflicht

---

11. Compliance-Anker (HF-spezifisch)

11.1 HWG / UWG (Heilmittelwerbegesetz, Wettbewerbsrecht)

Für alle Hochfrequenz-Inhalte (Hörbuch, Newsletter, Video, Member-App):

Anwalts-Check vor Produktion:

Empfohlener Anwalt: Fachanwalt für Medizinwerberecht — Recherche separat. Auftragspauschale ~€500–1500 für Format-Check ist eingeplant.

11.2 GDPR für Gesundheits-Daten

Art. 9 DSGVO bei Krankheits-Symptomen:

11.3 AVV mit GFKB

Vorlage bei Phase 8 vorbereiten. Inhalt:

Ohne unterzeichneten AVV: kein produktiver GFKB-Workflow.

---

12. Hardware-Upgrade-Trigger

12.1 Konkrete Schwellen

TriggerAktion
Member-App: > 50 concurrent active usersProfile-Test, ggf. CPU-Upgrade
Mail-Volumen: > 200 outgoing/dayEigenständigen Mailserver oder Brevo-Pro
LLM-Tagesbudget Cloud > $20 dauerhaftGPU-Add für lokales Reasoning prüfen
Disk > 80 % auf 400 GBVolume erweitern
Load-Avg dauerhaft > 6.0 trotz keine LLM-CallsCPU-Upgrade
Video-Pipeline aktiv mit > 4 Videos/Monatdedizierte GPU-Maschine für Render+ggf. lokales Vision-Modell

12.2 Upgrade-Pfad

Stufe 1 (CPU-Upgrade Hostinger): KVM10 oder KVM12 — mehr vCPU, mehr RAM. Wenig Wartungsaufwand, ~+€20–40/Monat. Empfohlener erster Schritt bei CPU-Limit.

Stufe 2 (Dedicated-Server bei Hetzner): EX-Reihe mit AMD Ryzen + optional GPU. Mehr Leistung pro €, mehr Eigenverwaltung. Empfohlen bei Video-Pipeline-Aktivität.

Stufe 3 (GPU-Cloud bei Bedarf): RunPod oder Lambda für Batch-Renders — pay-per-use. Empfohlen bei sporadischer Video-Last.

---

13. Risiken & Mitigationen

RisikoWahrsch.ImpactMitigation
Cloud-LLM-Quota erschöpft mitten im WorkflowhochmittelHard-Cap + Fallback-Provider + Lokal als letzte Stufe
Compliance-Verletzung HWG → AbmahnungmittelhochAnwalts-Check vor Phase 9, Tabu-Wort-Liste, Disclaimer
GDPR-Beschwerde wegen Gesundheits-DatenmittelhochArt-9-Einwilligung, Roh-Daten nicht speichern, DSFA
Server-Komplett-Ausfall Hostingerniedrigsehr hochwöchentlicher Off-Site-Snapshot, Disaster-Recovery-Runbook
Chapaty 2+ Wochen ausfälltmittelhochNotfall-Operator + Auto-Reply + Deadman-Switch
n8n-Workflow-Bug versendet ungeprüfte Mailmittelmitteljeder Auto-Send geht nur bei score>0.85+approved+!pii_sensitive
Mail-Reputation kaputt (Spam-Listing)mittelhochReputation-Warmup, DKIM/SPF/DMARC, Brevo-Relay als Sicherheits-Tier
viaviva-sync Plugin gehackt → WP-Sites kompromittiertniedrighochAPI-Token-Rotation, IP-Whitelist, regelmäßige Plugin-Audits
Trennung GFKB unter Streit → Daten-StreitniedrigmittelWerkstattbuch-/Lieferschein-Disziplin, AVV, regelmäßige GFKB-Daten-Exports zur Selbstprüfung
Telegram-Account gesperrtniedrighochEmail als Backup-Kanal für kritische Alerts (SMS-Forward)
Anwalts-Empfehlung verbietet Sylke-FormatniedrighochVor Phase-9-Start, kein Sunk-Cost — frühe Klärung

---

14. Offene Entscheidungen mit Empfehlung

E1. Auftrags-Inbox: Outline vs. Markdown-Verzeichnis

Empfehlung: Markdown-Verzeichnis in /root/wiki/auftrage/ unter Git-Versionierung. Reicht für 1-Person-Betrieb, kein zusätzlicher Container. Outline kann Phase 7+ kommen wenn Volumen es rechtfertigt.

E2. Mailserver: Mailcow vs. SMTP-Relay (Brevo o. ä.)

Empfehlung: Phase 3a Brevo SMTP-Relay für ausgehend (300/Tag kostenlos), eingehend bleibt All-Inkl, Phase 3b Mailcow wenn All-Inkl-Konten umgezogen werden müssen UND klares Mehrwert-Szenario besteht (Vollkontrolle + DSGVO + Reputation). Empfehlung: Mailcow nur wenn echte Notwendigkeit, sonst Brevo dauerhaft.

E3. Cloud-LLM-Primary: Subscription-First

Festlegung (2026-04-27 mit Chapaty): Codex (ChatGPT-Pro) und Kimi K2 (NIM) sind die primären Arbeiter — beide kostendeckend über Subscription/Credits. Aufgabenverteilung nach Tabelle in 7.2 (Codex für Code-/Struktur-Tasks, Kimi für Sprache-/Long-Form). Lokales 8B als Sekundär. Claude-API nur als Last-Resort mit $20/Monat-Hard-Cap und Pro-Call-Justification.

Begründung der Verschiebung gegenüber Erstentwurf: Claude-API generiert bei Standard-Workload schnell drei- bis vierstellige Monatskosten — nicht tragbar im Solo-Betrieb. Codex+Kimi liefern für 95 % der Tasks ausreichende Qualität, ohne Per-Token-Risiko.

E4. Member-App: WP+WooCommerce vs. SvelteKit-Native

Empfehlung: WP+WooCommerce-Subscriptions als MVP in Phase 7. SvelteKit-Native erst wenn 100+ aktive Member-Nutzer und konkrete Schmerzpunkte mit der WP-Variante.

E5. Frontend-Stack-Vereinheitlichung

Festlegung (2026-04-27 mit Chapaty): Bestehende WP-Sites bleiben WP. Neue Projekte werden in Astro gebaut mit dem Agent-Editier-Pattern (siehe 4.6) — Claude Code baut die Astro-Site, n8n exponiert editierbare Content-Blocks für lokales Modell. Reduziert WP-Wartungslast bei Neuaufbau, hält Bestand stabil.

WP bleibt für: GFKB-Sites, hochfrequenz.tech, viaviva.team, follow4.life, krisen-navigator.com, powersales.team (alles aus aktueller Migration). Astro für: alle künftigen neuen Marken, Projekt-Landingpages, Member-Bereiche wo statisches CMS reicht.

E6. Anwalt für HWG-Check

Empfehlung: vor Phase 9 starten, idealerweise ein Anwalt aus dem Bereich Medizin-/Heilpraktiker-Werberecht. Recherche durch Chapaty, Budget €500–1500.

E7. Hardware-Upgrade-Plan

Empfehlung: Hostinger KVM10 als nächster Schritt wenn Trigger erreicht. Dedicated-Server erst bei Video-Pipeline-Last.

E8. Off-Site-Backup-Provider

Empfehlung: Backblaze B2 mit Restic. Kostengünstig, S3-kompatibel, etabliert. Alternativ Hetzner Storage Box wenn Compliance-bedingt EU-Server gewünscht.

E9. Schlafstudien-Veröffentlichung

Empfehlung: aufschieben bis Phase 9+. Erst Daten sammeln, dann publizieren. Format: eigenes PDF-Whitepaper auf hochfrequenz.tech, später wissenschaftliche Veröffentlichung wenn Anwalt freigibt.

E10. Petition-Plattform

Empfehlung: OpenPetition.de integriert via Embed/Link. Eigenbau erst wenn echter Bedarf (Custom-Workflow).

---

15. Was wir KONKRET als nächstes tun

Sobald GoDaddy-Migration auf Subdomains abgeschlossen ist (Phase 0 läuft):

1. DNS-Switches sequenziell — eine Site nach der anderen, jeweils 24h Beobachtungs-Fenster. Reihenfolge:

2. Mail-Migration starten — Phase 3a (Brevo-Relay-Setup), All-Inkl-Konten als IMAP-Quelle behalten

3. Phase-1-Auftragsdokument schreiben — separates auftrag-002-stack-foundation.md mit den konkreten Schritten:

Erst nach Phase 1 starten wir Phase 2 (Email-MVP).

---

Schluss-Bemerkungen

Diese Strategie macht drei wesentliche Verschiebungen gegenüber dem Konzept-Entwurf:

  1. Stack reduziert von 17+ auf ~12 Komponenten. Chatwoot, Plausible, Astro-zusätzlich, Mailcow-als-Big-Bang gestrichen. Was raus ist, kann später bei Bedarf nachgezogen werden.
  2. Hardware-Limits werden zur ersten Architektur-Regel. Ohne explizites Token-/Latenz-Budget pro Workflow gibt es keinen Workflow.
  3. Compliance ist Gate, nicht Footnote. HWG-Check und AVV blockieren ihre jeweiligen Phasen.

Was bewusst hart gemacht wurde:

Was bewusst pragmatisch bleibt:

Dieses Papier wird die Grundlage. Auftragsdokumente referenzieren auf Abschnitte hier. Bei jeder größeren Entscheidung gilt: passt das zu einem der drei Anker (Hardware / Bus-Faktor / LLM-Veredelung)? Wenn nein → Rückfrage an Chapaty.

---

Status: Arbeitspapier finalisiert. Bereit zur Diskussion und Anpassung. Erst nach Chapaty-Approval wird daraus die zentrale Foundation.