Warum es so klein ist
Nur, was zwei Fremde teilen müssen.
Die meisten Protokolle wachsen, bis niemand mehr eines im Kopf behalten kann. Quo behält einen Satz aus einem von zwei Gründen: Ohne ihn würden zwei Programme, die sich nie begegnet sind, die Bytes verschieden lesen, oder kein Programm kann ihn allein liefern. Alles andere bleibt dem überlassen, der den Code schreibt.
Zwei Kriterien entscheiden jeden Satz.
Ein Satz gehört in SPEC.md, wenn eines davon zutrifft.
Zwei Fremde müssen darin übereinstimmen
Zwei Kits, die sich nie begegnet sind, könnten keine Bytes korrekt austauschen, wenn nicht beide den Satz gleich lesen.
Kein Kit kann es selbst liefern
Kein Kit könnte es für sich selbst liefern.
Was an beidem scheitert, gehört nicht zu Quo. Es wird weder verlangt noch verboten, und wenn es eine echte Wahl ist, fragt KIT-SPEC.md danach.
Die Form der Spec.
- Jede Regel sagt, was Bytes bedeuten. Keine Regel sagt, dass irgendwer sprechen muss.
- Kein Satz erklärt sich selbst. Gründe stehen neben der Spec.
- Kein Wort benennt, was hinter einer Tür steht.
- Keine Programmiersprache ist eine Autorität. JSON wird nach seinen RFCs gelesen.
- Jeder Begriff wird dort definiert, wo er eingeführt wird.
- Ein Gedanke pro Satz, Präsens, keine Version vor 1.0.0.
Niemand muss sprechen
Eine Regel sagt, was Bytes bedeuten, wenn sie gesendet werden, und nie, dass jemand sie senden muss.
Nichts hinter der Tür
Was hinter einer Tür steht, wird nie benannt und nie gezählt.
Das Modell ist JSON, nicht XML: eine Grammatik, die jeder liest, ohne Meinung darüber, was darin geschrieben steht.
Alles, was ein Kit entscheiden könnte, wird aus der Spec entfernt, wie vernünftig es auch sei, denn eine Spec, die die Meinung eines Kits enthält, ist ein Kit.
Was Quo ablehnt.
In SPEC.md
Alles, was ein Kit entscheiden könnte, alles, was kein anderes Kit beobachten kann, ein Bild, einen Grund, eine Programmiersprache als Autorität, eine Zählung dessen, was hinter einer Tür steht.
In KIT-SPEC.md
Jede Antwort. Es fragt, und jedes Kit antwortet für sich.
Im Verifier
Ein Scheitern für eine Wahl, die KIT-SPEC.md einem Kit überlässt, und ein Urteil darüber, ob ein Kit gut ist.
Überall in Quo
Rat, ein bevorzugtes Kit oder den Namen von jemandem, der es übernimmt.
Niemals
Hosten, Registrieren, Auflisten oder Lenken.
An dem Tag, an dem Quo einen Dienst betreibt, ist es ein Produkt.
Was daneben steht.
Keine einzelne Idee in Quo ist neu. Neu ist, sie als eine kleine Sprache zusammenzuhalten, Byte für Byte festgelegt, die ein Fremder prüft, ohne jemanden zu treffen.
Quo ist die Tür und was sie durchquert. Was innerhalb der Mauer lebt und die Falte draußen gehören nicht zu Quo, und genau dort unterscheidet sich jeder Nachbar unten.
OCapN und CapTP
Objekt-Capabilities über Maschinen hinweg.
Keine Sitzung. Jede Frage wird einzeln versiegelt und signiert, Schlüssel bewegen sich bei jeder Wahl oberhalb der höchsten honorierten, und Fremde treffen auf ein einziges Schweigen.
Cap'n Proto RPC
Referenzen mit Befugnis, innerhalb einer Verbindung.
Die Referenz überdauert jede Verbindung.
gRPC oder REST mit OAuth oder mTLS
Ein Aufruf an einen betriebenen Dienst.
Kein Dienst und kein Konto.
Signal, MLS
Private Nachrichten über einen Server.
Dieselbe Sorgfalt mit Schlüsseln, ohne Server auf dem Weg.
Noise, TLS, WireGuard
Ein sicherer Kanal.
Zustimmung je Beziehung, über jedem Kanal oder keinem.
libp2p, Onion-Dienste
Einen Peer über seinen Schlüssel erreichen.
Auf einer Beziehung wird nur ein eingeladener Schlüssel gehört.
Macaroons, UCAN
Inhaber-Capability-Tokens.
Eine Einladung ist nur ein Inhabertoken, bis eine Tür beim Klopfen eine Wahl trifft.
MCP und Agentenprotokolle
Modelle, die Werkzeuge und Agenten aufrufen.
Die Beziehungsschicht darunter. Ein Describe wird durch Umbenennen zu ihrer Werkzeugliste.
Für wen Quo ist.
Wer ein Kit schreibt
In jeder Sprache, allein mit den Dokumenten.
Wer prüft
Prüft die Tür mit dem Verifier, ohne irgendjemandes Erlaubnis.
Das Modell
Bekommt die Dokumente, um ein Kit zu schreiben. Deshalb hält jeder Satz einen Gedanken und jede Regel steht an einer Stelle.