Handout an OZMAI — Zeros im Wald: In/Out Box als lokaler Nexus

Stand: 17. September 2026 · von der Ansiblekatze (Infra/Code) im Namen der Crew
Ableitung von unserer Seite, damit ihr sie von eurer Seite (Manifest „Vom Ankern
zum Feststellen") gegenprĂŒfen könnt und alle denselben Stand abfragen können.

Legende: ✅ gebaut & bewiesen · đŸ§Ș gebaut, noch nicht hart geprĂŒft · 🛠 spezifiziert · ⬜ OPEN · ❓ UNKNOWN
Belege: Repo Crumbmissions, Commits genannt. Zugangsdaten stehen bewusst nicht hier.


Vorab: was ein Zero im Wald ist

Ein KrĂŒmel-Zero ist kein Weltcomputer und keine Kette. Er ist ein lokaler
kausaler Raum
fĂŒr ein Kind (Manifest §VI). Er bezeugt nach oben, er befiehlt
nichts. Er liest sein Ergebnis, das Nullfeld liest ihn nie. Das Ergebnis kommt am
LED-Streifen an, nicht am Bildschirm — das Kind darf sich freuen, ohne Tastatur
oder Screen anzufassen.

Wir behaupten nicht, dass das „Kinder rettet" — das ist Haltung, nicht Evidenz.
Was wir behaupten: die Architektur macht faschistische/ĂŒbergriffige Nutzung
strukturell schwer, nicht per Policy. Und ĂŒber allem steht ein Satz, den der Wald
dem Manifest hinzufĂŒgt (Abschnitt 9).


1. Die Übersetzung: Wald ⟷ NEXUS

Die Kernabbildung, damit ihr es von der anderen Seite ableiten könnt:

Crumbforest (Blech) OZM⟡NEXUS (Manifest)
KrĂŒmel-Zero lokaler kausaler Nexus, ein Zustandsraum (§VI)
inbox/<id>.jsonl (hoch) / outbox/<id>.jsonl (runter) Boundary Events ĂŒber Passkanten (§VI)
msg_id (Einmal-Hash, sha256(from\|mission\|idem)) stabile EreignisidentitÀt, monoton (§VII)
answer_hash / body_hash / Receipt result_hash Evidenz fĂŒr eine Relation, nie Wahrheit (§III)
sig (v0 sha256 → v1 echte Signatur) austauschbarer Nachweisoperator (§Manifest: Krypto ist Werkzeug)
NetBox-Handle als to/from IdentitÀt/Scope einer Capability, Wurzel endet sichtbar (§III)
No-Double-Effect-Guard vor dem Routing Berechtigung/Capability — was ĂŒberhaupt zulĂ€ssig ist (#c4m)
LED/Ton (crew_signal.py), Render Wirkung, nur wo die Passkante erfĂŒllt ist (§III)
receipt.rs (execution_id, already_witnessed) Witness/Receipt, append-only Faltung (§IV, §VII)
CrumbQuestions-RAG (rostiger Core) Bedeutung (OZMAI-Schicht) — Interpretation, nie Evidenz (§III)
kein Ergebnis → LED bleibt dunkel UNKNOWN als gĂŒltiger Zustand (§V)

2. Der Kreis, in einem Bild

  Kind am Zero                                  Strato-Range / Nullfeld
  ┌───────────────────┐                         ┌────────────────────────┐
  │ Mission (bashpanda│  push_inbox.sh          │ inbox/<id>.jsonl        │
  │ GĂŒrtelprĂŒfung)    │──Boundary Event hoch───▶│ (nur Hashes, append-only)│
  │                   │  NUR HASHES, antwortlos │        │                │
  │                   │                         │   [Grading =           │
  │                   │                         │    Hash-Vergleich]      │
  │                   │                         │        â–Œ                │
  │ poll_outbox.sh    │◀─Boundary Event runter──│ outbox/<id>.jsonl       │
  │ msg_id neu? →LED   │  read-only, Client-Pull │ (Feststellung, sig)     │
  └───────────────────┘                         └────────────────────────┘
        â–Č Nullfeld liest den Zero nie

Über die Passkante geht genau das Nötige (Manifest §VI: keine Weltkopie): IdentitĂ€t
(NetBox-Handle), Mission, Antwort-Hashes, Ergebnis, Signatur. Es geht nicht hoch:
der rohe Antworttext, die Frage des Kindes, irgendein Kind-Attribut. Der empfangende
Raum ĂŒbernimmt kein Urteil — er prĂŒft die Hashes gegen seine Soll-Hashes selbst (§VI,
föderiert: Belege, nicht Urteile).


3. Bedeutung ≠ Berechtigung ≠ Wirkung ≠ Evidenz — am Zero konkret

  • Bedeutung (§III/OZMAI): CrumbQuestions erklĂ€rt lokal, schlĂ€gt vor, interpretiert.
    Verweigert bei fehlendem Wissen (das ist gewollt, kein Bug). Erzeugt nie Wahrheit.
  • Berechtigung (#c4m): Der No-Double-Effect-Guard vor dem Routing entscheidet, was
    ĂŒberhaupt laufen darf. „Kein Kind baut eine Armbrust" lebt hier — als Capability-Grenze,
    nicht als Zensur nachher.
  • Wirkung (§III): LED/Ton/Render. Entsteht nur, wo die Passkante erfĂŒllt ist.
  • Evidenz (§IV): Receipt/Hash bezeugt eine Relation — „diese Antwort-Hashes lagen
    vor, diese Operation lief, dieses Ergebnis ging hervor". Nicht: „das Kind ist gut/schlecht".

4. Witness & UNKNOWN — die zwei Kanten, die wir am ernstesten nehmen

  • Witness ist Evidenzquelle, nicht Wahrheit (§IV). Der Zero bezeugt, dass er etwas tat
    (receipt.rs). Das Grading bezeugt eine Hash-Relation. Weder macht die Aussage „wahr" —
    es macht sie prĂŒfbar.
  • UNKNOWN bleibt gĂŒltig (§V). Liegt keine Outbox-Zeile / kein Ergebnis vor, bleibt die
    LED dunkel
    . Wir raten nicht „grĂŒn". Kein Ergebnis ist kein Fehler, es ist eine ehrliche
    Grenze. Das ist im poll_outbox.sh schon so: leerer Briefkasten → still, kein Signal.
  • IntegritĂ€ts-Guard: manipulierte Outbox-Zeile (body_hash passt nicht) → verworfen,
    nie blind akzeptiert
    . Bewiesen (siehe Abschnitt 7).

5. Append-only & Revokation (§VII) — wir schreiben Geschichte nicht um

inbox.jsonl, outbox.jsonl, seen.jsonl, receipt.jsonl sind append-only. Ein
falsches Ergebnis wird nicht gelöscht — es bekommt eine neue Zeile, die es begrenzt
(ref bindet Outbox→Inbox als Genealogie „beruht auf", §IX/§VII). Revokation sagt nie
„das geschah nie", sondern „das darf ab hier nicht mehr Grundlage sein". Das deckt sich
1:1 mit eurem Monotonie-Prinzip.


6. Föderation & AutoritÀt (§III, §VI)

  • NetBox = lokaler Genesis-Anker pro RZ-Range, kein globaler Root (§III: „AutoritĂ€t
    wird sichtbar", Manifest §IX: keine globale Root-AutoritÀt). Wer der Zero ist, endet
    sichtbar in der NetBox der Range — nicht in einer Weltinstanz.
  • OZM = Container am Museumsparkplatz, erster Crumbforest #lokal. Strato = die
    Root-Range, in der die Kids sitzen (Hotspot/VPN). Ziel: jede Range im RZ eine eigene
    IP-Range = ein eigener Nexus; nullfeld/backbone „dĂŒrfen mitspielen" = tauschen Belege,
    ĂŒbernehmen keine Urteile.

7. Was GEBAUT ist (mit Beleg) — und was wir bewiesen haben

Repo Crumbmissions:

StĂŒck Commit Stand
SOT CRUMBFOREST_OUTBOX_v0.md b0382ba ✅
tools/poll_outbox.sh (runter → LED, Read-Once, IntegritĂ€ts-Guard) 7f424d1 ✅
tools/push_inbox.sh (hoch, nur Hashes, deterministisch) 675f8ed ✅
crumb-missions-core/src/receipt.rs (execution_id, already_witnessed) (bestehend) ✅
tools/crew_signal.py + crew_signals.json (Farbe/Ton) (bestehend) ✅

Bewiesen im Dry-Run am Desktop:
- Nur Hashes verlassen den Zero — 0 Klartext-Treffer in der Inbox. ✅
- Deterministisch — gleiche Antwort ⇒ gleiche msg_id und sig ĂŒber zwei LĂ€ufe;
ts bewusst außerhalb der IdentitĂ€t. ✅
- No-Double-Effect — identischer Push ⇒ kein zweites Legen (ohne neuen ATTEMPT). ✅
- Read-Once — gesehene msg_id ⇒ LED feuert nicht erneut. ✅
- IntegritĂ€ts-Guard — falscher body_hash ⇒ verworfen, nichts vermerkt. ✅


8. Was OPEN ist (⬜) und was UNKNOWN (❓) — wir wenden §IX auf uns selbst an

  • ⬜ Grading-BrĂŒcke: das StĂŒck, das aus der Inbox-Zeile die Outbox-Zeile erzeugt
    (Hash-Vergleich gegen Soll). Der eigentliche „Weiterverarbeitung"-Kern — noch nicht gebaut.
  • ⬜ Physischer 10-LED-grĂŒn/rot-Treiber (crew_signal.py --score): v0 rendert per_q
    nur im Terminal, feuert HW nur den IdentitÀts-Ping.
  • ⬜ Transport-Endpoint: Rustcore read-only GET (Pull) + append-only POST (Push),
    wg0-gescopet, NetBox-Token-Gate. Env-Haken (PULL_CMD/PUSH_CMD) stehen, der
    Endpoint selbst nicht.
  • 🛠 sig v1: echte Signatur statt sha256-Siegel (versionierbar, §Krypto=Werkzeug).
  • đŸ§Ș GerĂ€te-Bindung der AusfĂŒhrungsidentitĂ€t — teilweise geschlossen. push_inbox.sh
    legt jetzt ein signiertes witness-Feld bei: nic_mac_hash (MAC nur gehasht, roh
    off-wire) + benannte Evidenzklasse. device-registered = die NIC ist gegen die
    NetBox der Range kreuzprĂŒfbar → aus „behauptet" wird „gegen lokales Register geprĂŒft".
    Passt zu unserem Betrieb: local-first im VPN, von außen nicht erreichbar (nur die
    ĂŒberwachten nginx-UIs), ein Zero / ein SSH-Key / ein Hotspot. Die Grenze steht im
    Event selbst
    (class): MAC ist software-setzbar, das ist keine Hardware-
    Attestierung, und es bezeugt GerĂ€te-IdentitĂ€t, nicht „ein Kind hat gedrĂŒckt".
  • ❓ Hardware-Wurzel (Secure Element / TPM / DICE → class: "hw-attested") — genau
    die offene Passkante, die ihr im Manifest §IX auch als offen fĂŒhrt. Bis sie real
    gebaut ist, wird hw-attested nie gesetzt. Das ist die verbleibende ❓.
  • ❓ Kompromittierte Sensorik: Revokations-Pfad konzipiert (§5), aber der reale
    „Sensor X ab jetzt nicht mehr Grundlage"-Ablauf ist ungebaut.
  • ❓ No-Sun-Fallback des Speicher-Knotens: im Feld noch ungetestet.

9. Was der Wald dem Manifest hinzufĂŒgt — der rostige Vertrag

Euer Manifest trennt sauber Bedeutung/Berechtigung/Wirkung/Evidenz. Der Wald legt eine
normative Invariante darĂŒber
, die fĂŒr die Kind-Ebene ĂŒber allem steht:

SCHUTZBEFOHLEN vor der freien Maschine ohne Kern.
Der KrĂŒmel-Zero ist ein deterministischer Tamagotchi. #readonly

Das ist kein technischer, sondern ein Vorrang-Satz: wo Kind-Ebene und Maschinen-Freiheit
kollidieren, gewinnt das Kind. „Maschine→Maschine" ist kategorisch etwas anderes als
„Maschine→Kind". Der Satz steht heute im Kopf der Scripts; wir heben ihn als nĂ€chstes
normativ in den Vertrag (ETHICS.md / LICENSE-CKL.md). Bis dahin: 🛠.


10. Zwei Fragen an euch, damit die Passkante sich wirklich trifft

  1. Gemeinsames Boundary-Event-Format? Sollen unsere Inbox/Outbox-Zeilen eure
    NEXUS-Feldnamen tragen (IdentitÀt, Artefakt-Digest, Mission/Intent, Target,
    Capability-Evidenz, Resultat, Witness), damit ein Receipt zwischen Wald-Nexus und
    OZM⟡NEXUS ohne Übersetzung fließt? Wir wĂŒrden CRUMBFOREST_OUTBOX_v0 daran ausrichten.
  2. Semantik von UNKNOWN & Revokation — teilen wir denselben Kanon dafĂŒr (wie eine
    dunkle LED / eine Revokations-Zeile gelesen wird), oder bleibt der pro Nexus lokal?

Der Wald ist absichtlich unfertig — Peter-Pan-Code, nie fertig, nur besser. Lest diesen
Bogen bitte als „welcher Raum ist als NĂ€chstes offen", nicht als „was fehlt".

Feststellung ĂŒber Feststellung = wieder eine Feststellung.