Files
dogfather-universe/.gitignore
T
DogFatherGitandClaude Opus 5 39ca642a52 Acht Pruefungen standen Nacht fuer Nacht als rot da -- sie waren gruen
Der naechtliche Lauf meldete heute frueh "37 Pruefungen sind rot".
Acht davon waren gar nicht rot: fehlerfrei durchgelaufen, Exitcode 0,
keine einzige FEHL-Zeile. Der Laeufer zaehlte bei ihnen aber NULL
Einzelpruefungen, und "null Pruefungen ist ein Fehler" -- eine Regel,
die richtig ist und hier das Falsche traf.

DER GRUND WAR EIN GROSSBUCHSTABE. Der Zaehler suchte `(ok|FEHL)`;
pruef-kachelfarben, -livepunkt, -tippziele, -turn-wege, -leerzustand,
-nachfrage, -tagesruf und -anruf-klingelt schreiben `  OK `.

Zwei Schaeden auf einmal:
  1. Ihre Punkte fehlten in der Gesamtzahl -- allein in fuenf der acht
     sind das 114 Stueck. Ausgerechnet die Zahl, die vor stillen
     Aussetzern schuetzen soll, war selbst eine Luecke.
  2. Acht dauerhaft rote Eintraege in einer Notiz, die morgens gelesen
     wird. Eine Warnung, die immer kommt, ist keine mehr.

Der Zaehler liest jetzt beide Schreibweisen. Die Dateien werden NICHT
vereinheitlicht: Acht umzuschreiben waeren acht Gelegenheiten, etwas
kaputtzumachen -- und die neunte, die morgen jemand anlegt, schreibt
ohnehin wieder, was sie will.

DAZU EINE PRUEFUNG, DIE DAS FESTHAELT (server/pruef-pruefzaehler.mjs).
Ein Kommentar haette den naechsten Fall nicht verhindert. Sie holt
sich den Ausdruck AUS alles-pruefen.mjs (zwei Fassungen desselben
Musters laufen auseinander), startet vier der schnellsten Pruefungen
wirklich -- je zwei in beiden Schreibweisen -- und hat drei
Gegenproben: Sie darf nicht wahllos zaehlen, sie muss zwei als zwei
zaehlen, und sie muss null als null sehen koennen, sonst waere "null
ist ein Fehler" blind.

UND DIE NOTIZ SAGT JETZT, WAS SIE MEINT. Statt "(keine Fehlerzeile
gefunden)" steht bei diesen Faellen: "Kein Befund -- es wurde keine
einzige Pruefung GEZAEHLT", mit der Erklaerung dazu. Fuer alles andere
ohne Fehlerzeile gibt es den dritten Ausgang ("Konnte nicht sagen,
woran es lag") samt den letzten Ausgabezeilen.

NEBENBEFUND, GEFUNDEN VON pruef-rueckmeldung: Die Tuer ins andere Haus
trug Ton 40 -- dieselbe Nummer wie "Entwicklung". Auf DogFathers Wand
standen zwei Kacheln in derselben Farbe, und er ist der Einzige, der
beide sieht; deshalb ist es nie jemandem aufgefallen.

  Die naheliegende Antwort waere eine 46. Farbe gewesen. Gerechnet kam
  ein Abstand von 0,0862 heraus -- unter der Hausgrenze von 0,09. Der
  Farbraum ist bei 45 Toenen voll, und eine zweite benannte Ausnahme
  am selben Tag waere der Anfang vom Ende der Regel.

  Richtig ist die andere Antwort: Die Tuer ist gar keine
  Bereichskachel. Sie fuehrt hinaus und gehoert keinem Bereich an --
  also bekommt sie keine Bereichsfarbe, sondern faellt auf --akzent
  zurueck. Damit unterscheidet sie sich von allen 45 anderen.

  Gefunden hat das die Pruefung erst, nachdem sie SAGEN konnte, welche
  Nummer doppelt ist. Vorher stand dort nur "kein Farbton doppelt (34
  Kacheln vom Server)" -- damit sucht man in vier Listen ueber zwei
  Dateien.

  Dazu: start.js schreibt kein data-ton="undefined" mehr (String()
  macht aus einem fehlenden Wert sonst ein Wort, und jede Pruefung,
  die Toene zaehlt, liest dann Text statt Zahl).

WAS MICH VOR DER FALSCHEN REPARATUR BEWAHRT HAT: Meine erste Vermutung
war, die FEHL-Zeilen staenden zu weit hinten im Ausgabefenster. Die
Gegenprobe dazu wurde rot -- null Dateien. Genau dafuer ist sie da.

GEMESSEN:
- pruef-pruefzaehler (neu): 7 Pruefungen, 0 Fehler.
- pruef-rueckmeldung: 30 geprueft, 0 Fehler (war rot).
- pruef-kachelfarben 26/0, pruef-haus-trennung 100/0,
  pruef-crew-adresse 153/0.
- tools/.nachtlauf-* ist jetzt ignoriert: Laufzeitzustand, der sich
  jede Nacht aendert. Das Ergebnis steht in der Vault-Notiz.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-25 06:46:49 +02:00

121 lines
4.6 KiB
Plaintext

.DS_Store
Thumbs.db
*.log
node_modules/
cloudflare-worker/.wrangler/
cloudflare-worker/node_modules/
.wrangler/
.env
.env.*
!.env.example
server/node_modules/
# Sicherungskopien von Bildern (entstehen beim Optimieren, gehoeren nicht
# ins Verzeichnis). Am 22.08.2026 sind 13 davon versehentlich durch ein
# "git add -A" mitgewandert -- 2,6 MB, die niemand braucht.
*.bak-*
# Lokaler Testserver.
server/tmp-lokal.mjs
# ⚠️ HIER STAND server/package-lock.json (aufgenommen 26.08.2026).
#
# Ausgeschlossen wurde sie, weil ein "git pull" auf dem Server damals
# abbrach: Git weigert sich, eine unverfolgte Datei zu ueberschreiben --
# unabhaengig davon, ob ihr Inhalt derselbe ist. Der Ausschluss hat den
# Deploy repariert und dabei den Zweck der Datei beseitigt.
#
# Ohne sie darf jede Installation andere Fassungen ziehen: "^4.21.2"
# erlaubt alles bis unter 5.0. Auf dem Server laeuft deshalb express
# 4.22.2, waehrend hier 4.21.2 steht -- geprueft wird also nie genau
# das, was ausgeliefert wird. Faellt so ein Unterschied auf, dann im
# Betrieb.
#
# Nachgemessen: Die Datei hier und die auf dem Server sind Byte fuer
# Byte identisch (SHA-256 a50b028d…). Es gab also nie einen inhaltlichen
# Konflikt, nur einen formalen -- und der loest sich, indem die Datei
# einmal vom Server entfernt und danach aus dem Repo geholt wird.
bild-*.png
# Aufnahmen der Handy-Pruefung (pruef-verwaltung-handy.mjs). Sie
# entstehen bei jedem Lauf neu und sind Zwischenstand, kein Quelltext --
# im Repo waeren sie nur Ballast und wuerden bei jedem Lauf als
# Aenderung erscheinen.
handy-*.png
# Laufprotokolle der Pruefungen -- Ergebnis, kein Quelltext.
# Ein Muster statt einer Liste: Sonst haette jede neue Pruefung ihre
# eigene Zeile gebraucht, und die vergisst man. Genau das ist am
# 05.09.2026 passiert -- vier neue Protokolle standen ploetzlich als
# Aenderung im Arbeitsstand.
pruef-*-lauf.txt
server/pruef-*-lauf.txt
# Ergebnis des Sammellaufs (tools/alles-pruefen.mjs)
gesamtlauf.txt
# Bilder zum Ansehen (server/bild-*.mjs) -- entstehen bei jedem Lauf neu
tagesblick-*.png
chat-*.png
calls-*.png
sicht-*.png
# ---------------------------------------------------------------------
# Bilder der Pruefungen (06.09.2026)
#
# Die Pruefdateien schreiben Bildschirmfotos, um zeigen zu koennen, was
# sie gesehen haben -- 62 Stueck, 54 MB, und bei JEDEM Lauf neu. Sie
# standen bisher im Repo und tauchten dadurch bei jedem Commit als
# Aenderung auf: Man haette sie mitcommittet oder jedes Mal von Hand
# aussortiert. Beides ist Ballast.
#
# GEPRUEFT VOR DEM ENTFERNEN: Keine einzige Pruefung LIEST je ein Bild
# (kein readFileSync, kein existsSync auf .png) -- sie werden nur
# geschrieben und angesehen. Es sind also keine Vergleichsbilder, deren
# Verlust eine Pruefung blind machen wuerde.
#
# NICHT betroffen und bewusst weiter versioniert: alles unter
# assets/ und workspace/assets/ -- dort liegen die QR-Codes und die
# Bilder der Website. Beim ersten Anlauf waeren sie um ein Haar
# mitgegangen, weil ein zu grobes Muster sie eingeschlossen hatte.
pruef-*.png
server/pruef-*.png
abnahme-*.png
server/abnahme-*.png
# Dasselbe fuer die Messlaeufe (server/mess-*.mjs): Bilder eines
# Laufs, kein Quelltext.
mess-*.png
server/mess-*.png
# Messlaeufe von tools/mess-rueckgabewerte.sh -- Ergebnis eines Laufs,
# kein Quelltext. Gehoert nicht in die Geschichte.
rueckgabewerte-*.txt
# ---------------------------------------------------------------------
# WEGWERF-MESSDATEIEN (09.09.2026)
#
# Beim Pruefen schreibe ich Bildschirmfotos und kleine Messkripte ins
# Arbeitsverzeichnis und loesche sie danach. Einmal ist eines davon
# (`ruf.png`) trotzdem im Repo gelandet und bis auf den Server
# gewandert -- `git add -A` nimmt alles mit, was zu dem Zeitpunkt da
# ist, und die Loeschung kam eine Zeile zu spaet.
#
# Deshalb tragen solche Dateien ab jetzt das Praefix `zz-`, und git
# sieht sie gar nicht erst. Eine Regel, die im Werkzeug steht, ist
# besser als eine, an die ich mich erinnern muss.
zz-*
/*.png.tmp
# Arbeitsreste aus Pruef- und Umbaulaeufen (11.09.2026). Alles unter
# tools/_ ist Kladde: Ausgaben einzelner Laeufe, kurzlebige Patch-Skripte.
# Was davon bleiben soll, bekommt einen Namen ohne Unterstrich -- so
# ist die Entscheidung "gehoert das ins Verzeichnis?" ein Umbenennen
# und kein Vergessen.
tools/_*
# Der naechtliche Lauf schreibt hier seinen Zustand hin -- Rohausgabe,
# Vergleichszahlen und die Schlossdatei. Alles Laufzeit, nichts davon
# gehoert in die Geschichte: Es aendert sich jede Nacht, und im Repo
# waere es ein taeglicher Konflikt ohne Aussage. Das ERGEBNIS steht in
# der Vault-Notiz (02 Projekte/Pruefstand.md), die Werkzeuge selbst
# sind versioniert.
tools/.nachtlauf-*