the world of dizzi

Das System

Zehn Anwendungen, die sich wie eine verhalten

Ein Kern ohne eigene Oberfläche auf :8200, neun Anwendungen um ihn herum und ein geschriebener Vertrag – maschinell geprüft in der Testsammlung von sieben der zehn, bei jedem Lauf.

Kurz gesagt
Ein Kern in der Mitte, neun Anwendungen um ihn herum, jede mit eigenem Port und eigenen Daten.
Ein geschriebener Vertrag sagt, wie eine Anwendung andockt; wer ihn erfüllt, dessen Anwendung erscheint von selbst.
Daten bleiben, wo sie entstanden sind; alles, was nach außen wirkt, braucht das Ja eines Menschen.

Die Schichten

Dünne Hüllen zeigen denselben Kern, deshalb kann das ganze Netz unverändert vom Rechner auf einen Server umziehen – Windows oder Linux.

Hüllen

Schreibtisch · Handy · Browser – keine Geschäftslogik in der Hülle.

Dizzi-Core :8200

KI-Orchestrator · Panel-Registry · MCP-Hub · Gesundheits-Aufsicht · Dizzi-ID mit einmaliger Anmeldung. Ohne eigene Oberfläche: Er orchestriert; von sich aus wirkt er nie nach außen.

Neun Anwendungen

  • Money :8210
  • Communication :8218
  • Creating :8214
  • Memory :8212
  • Management :8213
  • News :8216
  • Healthy :8217
  • Admin :8222
  • Trading :8137

Jede ein Dienst mit eigener SQLite-Datenbank und eigener Web-Oberfläche. Jede für sich lauffähig. Für sich verkaufbar zu sein, dafür ist der Export-Vertrag da – das Werkzeug zum Verpacken selbst ist noch nicht gebaut.

packages/appkit · packages/ui-kit

Gemeinsam unter allem: der Vertrag, die Anmeldung, die Sicherheit, die Löschnachweise – und das Design-System.

Was es zusammenhält

Drei Entscheidungen, alles andere folgt

Die Startseite nennt die drei in je einer Zeile. Hier steht, wozu jede wirklich verpflichtet – auch, was sie kostet.

Lokal zuerst

Der Kern läuft ohne Netz. Dienste in der Cloud sind Anschlüsse, die man einschalten muss – jederzeit abschaltbar und immer als Schritt nach außen gezeigt. Das macht den Abgleich schwerer; diesen Preis habe ich bewusst gewählt, denn die Daten gehören auf den Rechner, der sie erzeugt hat.

Vom Vertrag her gebaut

Ein geschriebener App-Vertrag, zehn Anwendungen danach gebaut. Wer den Vertrag beantwortet, dessen Anwendung nimmt das Dashboard von selbst auf; der Assistent erreicht sie ohne neue Anbindung, und niemand verdrahtet sie von Hand.

Ehrlich per Gesetz

Ehrlichkeit ist hier kein Tonfall, sondern eine geschriebene Regel, welcher der Code gehorchen muss: Ein nicht gemessener Wert wird als nicht gemessen gemeldet, nie als Null. Dieselbe Regel gilt für diese Website.

Der Mechanismus

Der App-Vertrag

Den Vertrag erfüllen, und die Anwendung erscheint. Ein Dienst, der die Pflicht-Endpunkte beantwortet, meldet sich selbst im Dashboard an und wird für den Assistenten erreichbar – niemand verdrahtet ihn von Hand.

Der Vertrag ist kein Dokument, das hofft, befolgt zu werden. Er wird maschinell durchgesetzt: appkit/conformance.py läuft in der Testsammlung von sieben der zehn. Der Kern von Creating ist in diesem Auszug gar nicht enthalten; der Kern und die Trading-Flotte haben stattdessen eigene Testsammlungen. Die Spezifikation sagt das selbst – wo Text und Code einander widersprechen, gilt der Code.

Gemessen an der geschriebenen Spezifikation, erfüllen neun der zehn den Vertrag. Der Kern – die Stelle, die ihn einsammelt – bleibt mit Absicht außen vor, auf seinem eigenen Port.

  • /api/summary antwortet immer mit HTTP 200; der Zustand steht in einem Feld status (ok · leer · fehler), nie in einem Fehlercode und nie in einer vorgetäuschten Null.
  • /api/actions trägt den Ablauf mit dem Menschen in der Schleife: vorschlagen → freigeben oder ablehnen. Die KI gibt ihre eigene Aktion nie frei.
  • /api/account/export und /api/account/loeschen setzen die Datenrechte um – beide verlangen eine frische Anmeldung, beide schließen im Fehlerfall.
  • /api/audit zeichnet jede Aktion auf, die eine Wirkung hat.
# every application around the core
GET  /api/health            heartbeat + contract version
GET  /api/manifest          machine-readable identity
GET  /api/summary           always 200, state in `status`
GET  /api/settings          typed, strict, audited
GET  /api/account           profile · tier · SSO state
GET  /api/vault             names only, never values
GET  /api/audit             every effect, logged
POST /api/actions           propose → human approves
     /mcp                   tool server for the assistant
Die Pflicht-Oberfläche, wie sie in docs/16_APP_VERTRAG_SPEC.md festgelegt ist.Quelle: docs/16_APP_VERTRAG_SPEC.md

Der gemeinsame Boden

appkit – einmal geändert, überall wirksam

Eine gemeinsame Bibliothek statt zehn Kopien derselben Idee. Anmeldung, CSP-Härtung, Löschnachweise, Sicherheitslage, der Bereichs-Kanon. Wird das Sicherheitsmodell besser, wird es in jeder Anwendung besser, welche die Bibliothek einbindet – heute neun der zehn.

Identität in drei Stufen

lokal → verifiziert → hochsicher. Wege, die eine Stufe verlangen, weisen ohne sie ab – 403, im Zweifel zu. Nichts ist aus Versehen offen.

Tokens, ordentlich gemacht

Ed25519 mit im Prüfer festgelegtem Algorithmus, PKCE verpflichtend, Einmal-Codes mit 60 Sekunden Lebensdauer, rotierende Erneuerung mit Sperre der ganzen Familie bei Wiederverwendung, Geheimnisse nur als Hash gespeichert.

Ein Tresor, der schweigt

Die Geheimnisse der Dienste liegen verschlüsselt neben der Datenbank der Anwendung. Die HTTP-Oberfläche gibt Namen zurück, nie Werte – ein Leck in einer Sicherung wird kein Leck von Zugangsdaten.

Die Bibliothek selbst ist nicht Teil des aktuellen Stands. Bis zum 6. August 2026 trug der Auszug ihren Code; der kuratierte Satz, der ihn ersetzt hat, trägt den Vertrag, den die Bibliothek erfüllen muss – und das ist der Teil, über den man streiten kann:

Zwischen den Anwendungen

Querverbindungen, bewusst schmal

Es gibt keinen zentralen Datensee. Jede Anwendung hält ihre eigenen Daten und gibt nur über einen geschriebenen Vertrag etwas weiter – neunzehn davon, nummeriert und festgelegt. Der Kern reicht weiter; er hört zu und protokolliert.

Die Einschränkung ist echt, und ich nehme sie an: Lokal zuerst macht den Abgleich schwerer, und ein Relais, das nur liest, ist unbequemer, als es eine gemeinsame Datenbank wäre. Diesen Tausch habe ich mit Absicht gemacht. Daten, die ihre Quelle nie verlassen, können nicht von einem Ort abfließen, an dem sie nie waren.

Regel der Querverbindungen

„Daten bleiben an ihrer Quelle; der Core reicht nur lesend weiter; alles mit Wirkung nach außen braucht einen ausdrücklichen Schritt der Freigabe durch einen Menschen.“

Sicherheitslage

An den eigenen Rechner gebunden, an jedem unumkehrbaren Schritt ein Tor

  • Jeder Dienst bindet an 127.0.0.1. Sensible Anwendungen leiten Anfragen an die KI im Normalfall lokal_only – diese Inhalte verlassen den Rechner nie.
  • Der Browser steht außerhalb der Vertrauensgrenze. Eine lokale Prüfung hält den Host-Header gegen eine Erlaubnisliste und prüft den Origin bei jeder schreibenden Methode – das verhindert DNS-Rebinding und blinde seitenübergreifende Anfragen.
  • Mehrere Verteidigungslinien gegen das Netz. Eine Sensor-Schicht sitzt ganz außen und sieht auch abgewiesene Anfragen; ein Regelwerk und eine Grundlinie der Last speisen eine Eskalationsleiter. Selbstständiges Drosseln ist erlaubt; Abriegeln und Not-Aus sind Handlungen eines Menschen.
  • Echtes Geld ist eine eigene Klasse. Handel auf Papier ist frei; eine echte Überweisung verlangt die höchste Stufe. Seit dem 4. August 2026 handelt ein kleiner Teil der Flotte mit meinem eigenen Geld, auf eigene Rechnung – hinter diesem Tor.
  • Ehrliches Restrisiko. Das Sicherheitskonzept nennt, was nicht gelöst ist, und führt eine geordnete Liste offener Härtungen. Ein Bedrohungsmodell, das nur Erfolge aufzählt, ist ein Werbeprospekt.

Das Sicherheitskonzept selbst ist nicht mehr Teil des aktuellen Stands. Es stand bis zum 6. August 2026 im Auszug und wurde mit Absicht herausgenommen: Ein Dokument, das aufzählt, was noch nicht gehärtet ist, ist eine Landkarte für alle, die genau das suchen. Das zu sagen ist besser, als den Link still zu streichen.

Die System-Karte zeigt es auf einer Seite – der Ring um den Kern, die fünf Schichten und die zehn Anwendungen mit ihren Ports. Ohne Skript und ohne Aufrufe nach außen.

System-Karte öffnen

Tiefer ins Repository: docs/16 – der App-Vertrag· docs/26 – Querverbindungen· docs/37 – das Rezept für die strikte CSP· docs/12 – das Ganze, ohne Vorwissen