# CrumbCRM – Nullfeld‑Manifest (CKL‑Entwurf)

> **Version** 0.1 · **Datum** 2025‑09‑22 · **Status** Entwurf zur Diskussion
>
> **Ziel**: Ein gemeinsamer Bezugsrahmen (MD) für Vision, Prinzipien, Architektur und Lizenz (CKL) von CrumbCRM – geboren aus *Wächter & Kuchen*, der **Torten‑Theorie** und vielen **Krümeln**.

---

## 1) Kurzfassung (TL;DR)

**CrumbCRM** ist ein leichtes, 100 % Open‑Source, server‑rendered System für Inhalte, Beziehungen und Fragen. Es setzt auf **Markdown‑Content** (Git‑gesichert), **Daten‑Meta in SQL**, **semantische Suche** via Vektoren und **Mehrsprachigkeit** als Default. Unser Fokus sind **Kinderfragen** und **friedliche Transformation**: Wissen säen, wachsen lassen, statt mit Lärm zu siegen.

**Wir haben im Nullfeld gebaut:**

* Eine **einfach startbare Basis** (Docker/Compose) mit **App + MariaDB + Qdrant**, i18n‑Routen (`/de`, `/en`), Health‑Checks und Mini‑API (`/api/hello`).
* **Server‑rendered HTML** (Jinja2) statt SPA‑Overhead; optional progressive Enhancement (htmx).
* **Markdown‑Erzählraum** (heute: HTML‑Cache; morgen: Gitea‑Repo + Webhook → Embeddings → Qdrant).
* **Vektor‑Suchpfad** vorbereitet (Qdrant 6333, Collection‑Design, Ingest‑Worker‑Skizze).
* **Auth minimal** (Sessions, CSRF, bcrypt) als Start; SSO (Authelia) später.

---

## 2) Herkunft: Wächter, Kuchen & die Torten‑Theorie

* **Wächter**: Hüten statt herrschen. Systeme beschützen Lebendiges (Kinder, Fragen, Zeit).
* **Kuchen/Torte**: Schichten klar trennen, Stücke teilbar machen. Jede Schicht bleibt essbar einzeln – gemeinsam macht sie satt.
* **Krümel**: Kleine, verständliche Einheiten (Pages, Blocks, Widgets). Jeder Krümel kann für sich nützen; zusammen entsteht ein Wald.

**Konsequenz:** Architektur in dünnen, klaren Scheiben (Content, Meta, Suche, Darstellung). Kein Monolith, kein Over‑Tooling.

---

## 3) CKL – Crumb Knowledge License (Arbeitstitel)

> **Zweck**: Wissen frei halten und nutzbar machen – insbesondere für Kinder, Bildung und Allmende.

**Grundsätze (Entwurf):**

1. **Frei & quelloffen** – Nutzung, Veränderung, Weitergabe erlaubt.
2. **Gemeinwohl‑Klausel** – Einsätze zur Schädigung von Kindern, Natur oder zur Kriegsführung sind ausgeschlossen.
3. **Attribution** – Herkunft nennen (CrumbCRM/Contributors); Änderungen dokumentieren.
4. **Rückfluss** – Verbesserungen fließen als Patch/Protokoll zurück (oder werden öffentlich dokumentiert).
5. **Datenwürde** – personenbezogene Daten minimal, transparent, widerrufbar.

**Frageprinzip (Nullfeld):**

* **Nur die Frage zählt.** Fragen sind mindestens bis zu ihrer Beantwortung freie Gemeingüter (Open Source/Commons); Erhebung, Sammlung und Weitergabe der Fragen ist frei.
* **Kinderprimat.** Wo Regeln unklar sind, gilt die Perspektive des Kindes: Wir wählen stets die Option, die Neugier, Sicherheit und Würde von Kindern schützt.

**Bausteine (genannt):** OZM, KRM, MCP & **Open Source**–Projekte als kompatible Module. *Anmerkung:* Die juristische Ausformulierung folgt (separate Datei `LICENSE-CKL.md`).

---

## 4) Was steht heute konkret?

* **Hello‑World Stack**: App (FastAPI), i18n‑Seiten, `/api/hello`, Login‑Stub (abschaltbar), DB‑Seeds (Users), Qdrant‑Dashboard.
* **vNext‑Full Pfad**: Menüs & Seiten aus DB, Seeds für `de/en` (Home, Wald/Forest), SEO‑Köpfe; Gitea‑Ablage skizziert.
* **Datenmodell light**: `users`, `pages`, `page_i18n`, `menus` (+ i18n), Vorbereitung `vector_docs`.
* **Deployment**: Compose‑Files, `.env`‐Schalter, Health‑Checks, Multi‑arch Images.

---

## 5) Leitprinzipien

* **Kinderprimat**: Entscheidungen orientieren sich an der Frage eines Kindes; bei Zielkonflikten hat diese Perspektive Vorrang.
* **Einfach vor clever**: HTML‑First, wenig JS, keine Build‑Ketten wenn nicht nötig.
* **Mehrsprachig von Anfang an**: URL‑Locale, UI‑Strings via gettext.
* **Schreiben in Markdown**: Lesbar im Rohzustand; Git ist Gedächtnis & Audit.
* **Offene Vektoren**: Embeddings via freie Modelle; Qdrant als Commons‑Index.
* **Sicherheit als Haltung**: CSP, CSRF, Sessions HttpOnly, Rate‑Limit, Logs.
* **Zeit schützen**: Start in Minuten, nicht Wochen. Alles reproduzierbar.

---

## 6) Architektur in drei Schichten

1. **Content**: Markdown‑Dateien (Gitea) je Sprache + Front‑Matter.
2. **Meta/Steuerung**: MariaDB (Pages, Menüs, ACL, Redirects, Settings).
3. **Suche/Verstehen**: Worker erzeugt Chunks & Embeddings → Qdrant.

**Darstellung**: FastAPI → Jinja2 → HTML (htmx optional). **Auth** minimal, SSO später.

---

## 7) Vektor‑Pfad (heute & morgen)

* **Heute**: Qdrant läuft auf `:6333`, Dashboard ok; API‑Routen noch nicht exponiert.
* **Morgen**: Webhook (push) → Ingest (split → embed → upsert); Endpoint `/search?q=&lang=` (BM25 + Vector‑Merge; ACL‑Filter).

---

## 8) Governance & Commons

* **Kinderprimat**: Bei Unklarheit entscheidet die Kinderperspektive (vertretbar durch eine Proxy‑Rolle); Entscheidung und Begründung werden im ADR protokolliert.
* **Rechte**: CKL schützt Zwecke (Kinder/Natur/Frieden). **Kein Kommerz**; erlaubt sind **Spenden** und **nicht‑kommerzielle Nutzung/Fragen** (Donationware/Commons).
* **Beiträge**: PR‑basiert; Entscheidungen dokumentiert (ADRs).
* **Transparenz**: Änderungsprotokoll & Audit‑Log. Öffentliche Roadmap.

---

## 9) Roadmap (30/60/90)

**+30**: Gitea‑Leser (Markdown → HTML), Fallback‑Kette de→en, 404/500 je Sprache.

**+60**: Ingest‑Worker + Embeddings, `/search` (BM25+Vector), kleines Admin‑Guard.

**+90**: Inline‑Editing (htmx PATCH), Rollen/ACL, Media‑Pfad (MinIO), erste Widgets.

---

## 10) Glossar (Projekt‑Slang)

* **Nullfeld**: Raum der Möglichkeiten vor der Festlegung – still, aber voll Energie.
* **Krümel**: Kleinste nützliche Einheit (Page‑Chunk, Widget, Snippet).
* **Wächter**: Dienste, die beschützen (Proxy, Auth, Limits, Backups).
* **Kuchen/Torte**: Schicht‑Metapher für Architektur; Stücke bleiben eigenständig.
* **Pepper & Dumbo**: Bestehende Helfer/Backends, die später andocken können.

---

## 11) A/B‑Bild: *Alien–Earth (Disney)* vs. *Crumbforest*

| Aspekt  | Alien–Earth (Disney)       | Crumbforest                     |
| ------- | -------------------------- | ------------------------------- |
| Story   | Spektakel, Konsum, IP‑Gate | Lernraum, Teilen, Commons       |
| Tempo   | Laut, schnell, erschöpfend | Ruhig, stetig, regenerativ      |
| Zugriff | Paywall/DRM                | Freie Lizenzen (CKL), Mitmachen |
| Technik | Effekt für Bühne           | Werkzeug für Alltag             |
| Ziel    | Aufmerksamkeit binden      | Fragen nähren & Antworten säen  |

**These:** Crumbforest ist das *leise Gegenstück*: keine Belagerung der Sinne – ein Garten, in dem Wissen wächst.

---

## 12) Was bleibt zu tun?

* CKL‑Text juristisch schärfen (`LICENSE-CKL.md`).
* Datenschutz‑Hinweise (Kinder‑First), Bedrohungsmodell, Security‑Readme.
* ADR‑Ordner (Entscheidungsprotokolle), CONTRIBUTING.md, CODE OF CONDUCT.

---

## 13) Dank

An die Crew (auch im Senegal) – fürs Fragen, Bauen, Atmen. **Wuuuuhuuu!**
