Files
dogfather-universe/tools/kachelton-regeln.mjs
T
DogFatherGitandClaude Opus 5 80988f2d23 Berichtigt: Die Rechnung hat zwei ausdrueckliche Wuensche ueberfahren
Der Commit davor hat alle 45 Kachelfarben neu verteilt, um acht fast
gleiche Paare zu trennen. Das Ergebnis war rechnerisch besser und
praktisch falsch. pruef-kachelfarben hat sechs Fehler gemeldet:

  Ton 38  #ff1a1a -> #ff241e   „nur die soll knall rot sein!!!"
  Ton 44  #a8d8ff -> #90c3ff   „soll auch babyblau sein mit bissl lila"
  Ton 40, 10, 33          unter die Buntheitsgrenze von 0,12 gedrueckt
  und die Regenbogenkachel zeigte noch die 32 alten Farben

Beide Farben standen mit Datum, Zitat und Begruendung in der Pruefung.
Ich habe sie nicht gelesen, weil ich ein GLOBALES Ziel optimiert habe
-- „alle 45 moeglichst weit auseinander" -- und eine globale Rechnung
kennt keine Einzelfaelle.

=== DIE LEHRE IST NICHT „DIE RECHNUNG WAR FALSCH" ===

Sondern: Eine Gesamtloesung fuer ein LOKALES Problem bezahlt man mit
allem, was an den nicht betroffenen Stellen schon richtig war. Acht
Paare standen zu eng. Verschoben wurden 45.

Der zweite Anlauf (tools/_toene-reparieren.mjs) macht es umgekehrt:
Solange ein Paar zu eng steht, wird das engste genommen und EINER der
beiden auf die naechste erlaubte Farbe geschoben. Sonst nichts.

Und dabei kam das Beste des Tages heraus -- gemessen, nicht geahnt:
Von den 45 Toenen tragen nur 33 eine Kachel, zwoelf stehen bereit. In
JEDEM der acht zu engen Paare ist mindestens einer dieser zwoelf
dabei. Wer den Unbenutzten verschiebt, loest dasselbe Problem, ohne
dass sich fuer irgendjemanden auch nur eine Kachel veraendert.

  kleinster Abstand   0,0154  ->  0,0940
  Paare unter 0,09        14  ->  0
  veraendert                       14 von 45
  davon in Gebrauch                 4 -- und zwar um 0,003 bis 0,012

Vier Zehntausendstel OKLab sind nicht zu sehen. Es gibt also KEINE
Kachel, die ihre Farbe wechselt. Das ist mehr als Bequemlichkeit: Wer
zwei Jahre lang „das Tuerkise" angesteuert hat, sucht danach, wenn es
plötzlich rosa ist.

=== UND DIE WUENSCHE STEHEN JETZT DORT, WO GERECHNET WIRD ===

Die Liste FESTGELEGT ist von server/pruef-kachelfarben.mjs nach
tools/kachelton-regeln.mjs gewandert -- neben die Schwellen, aus
genau demselben Grund, aus dem die Schwellen dort stehen.

In der Pruefung konnte sie nur EINES: eine Abweichung melden, nachdem
sie passiert ist. Das hat sie getan, und das ist ihr Verdienst. Aber
eine Bedingung, die erst NACH dem Schaden spricht, ist die schwaechere
Form. Wer die Farben rechnet, soll gar nicht erst die Moeglichkeit
haben, sie zu verschieben -- das Werkzeug liest die Liste jetzt selbst
und setzt festgelegte Toene sogar zurueck, wenn es sie verschoben
vorfindet.

Dasselbe gilt fuer die Buntheitsgrenze: Sie kommt aus der Regeldatei,
und sie gilt nur fuer benutzte Toene -- so, wie die Pruefung sie
anwendet. Das ist nicht Nachgiebigkeit, sondern Rechnung: Mit
Buntheit >= 0,12 fuer ALLE 45 ist ein Mindestabstand von 0,09
nachweislich unmoeglich (Decke 0,0853). Die zwoelf unbenutzten duerfen
blasser sein und nehmen genau den Druck aus dem engen
Blau-Tuerkis-Bereich, an dem der erste Anlauf gescheitert ist.

GEMESSEN: pruef-kachelfarben 26 Pruefungen, 0 Fehler (vorher 26 mit
6 Fehlern). pruef-kachel-universum 13 Pruefungen, 0 Fehler.
Regenbogenkachel mit tools/kachel-regenbogen.mjs neu geschrieben --
99 Punkte in drei Groessen, je 33 Farben.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-25 23:44:40 +02:00

114 lines
5.5 KiB
JavaScript

/* =====================================================================
DIE REGELN FÜR EINEN KACHELTON — an einer Stelle (22.09.2026)
=====================================================================
ENTSTANDEN AUS EINEM WIDERSPRUCH, den niemand bemerkt hätte, bis er
Arbeit gekostet hat.
Für die neue Kachel „Calls & Protokolle" musste ein Ton gerechnet
werden. `tools/kachel-farbe-einzeln.mjs` lieferte `#bcdbff` mit
einem Abstand von 0,1339 — dem besten Wert weit und breit.
`server/pruef-kachelfarben.mjs` lehnte ihn ab:
FEHL keiner ist blasser als 0.12 — Ton 43 #bcdbff (0.060)
Beide hatten recht. Das Werkzeug suchte die Buntheit von 0,30 bis
herunter auf 0,04, die Prüfung verlangt mindestens 0,12. Zwei
Zahlen für dieselbe Regel, in zwei Dateien, die nichts voneinander
wissen — die eine kannte die andere nicht.
Das ist dieselbe Krankheit wie eine abgeschriebene Spaltenliste:
Es wird nicht falsch, es wird UNZUSTÄNDIG. Ein Werkzeug, das
Vorschläge macht, die die Prüfung danach ablehnt, ist schlimmer als
keines — man hält das Ergebnis für fertig.
Deshalb stehen die Schwellen jetzt hier, und beide Seiten lesen sie
von hier. Wer eine ändert, ändert sie für alle.
===================================================================== */
/** Der dunkle Grund, gegen den jede Kachelfarbe gemessen wird. */
export const GRUND = "#0a121e";
/* DIE SCHWELLE IST GEMESSEN, NICHT GERATEN.
Vor dem Lauf vom 22.09.2026 lag das engste Paar der benutzten Töne
bei 0,0741 („Was ansteht" neben dem neuen Rot von „Draußen") — das
war der Zustand, den Filipe als „ähnlich" gemeldet hat. Danach:
0,1028. 0,090 liegt dazwischen: Der heutige Stand hat Luft, ein
Rückfall auf „sieht gleich aus" schlägt an. */
export const MINDEST_ABSTAND = 0.090;
/* Der Median der Buntheit aller Töne lag bei 0,168, die fünf
blassesten zwischen 0,064 und 0,088. Filipe: „die farben sollen auch
richtig geil und speziell sein." Augenschonend heißt dunkles Schema
und kein Flackern — NICHT blass. */
export const MINDEST_BUNTHEIT = 0.12;
/* Die Obergrenze. Über 0,30 wird es auf einem dunklen Grund grell, und
grell ist das, was die Augen belastet. */
export const HOECHST_BUNTHEIT = 0.30;
/* Nicht verhandelbar: Eine Kachelfarbe trägt auch Text und Zahlen. */
export const MINDEST_KONTRAST = 4.5;
/* =====================================================================
WAS FESTGELEGT IST -- und warum (hierher geholt am 25.09.2026)
Diese Liste stand in server/pruef-kachelfarben.mjs. Dort konnte sie
nur EINES: eine Abweichung melden, nachdem sie passiert ist.
Genau das ist am 25.09. passiert. Eine Rechnung hat die 45
Kachelfarben neu verteilt, um acht fast gleiche Paare zu trennen --
und dabei zwei ausdrueckliche Wuensche ueberfahren, weil sie sie
nicht kannte:
Ton 38 #ff1a1a „nur die soll knall rot sein!!!" -> #ff241e
Ton 44 #a8d8ff „soll auch babyblau sein" -> #90c3ff
Die Pruefung hat beides gefunden, und das ist ihr Verdienst. Aber
eine Bedingung, die erst NACH dem Schaden spricht, ist die
schwaechere Form: Wer die Farben rechnet, soll gar nicht erst die
Moeglichkeit haben, sie zu verschieben.
Deshalb steht sie jetzt hier, neben den Schwellen -- und beide
Seiten lesen sie von hier: die Pruefung, um zu melden, und das
Rechenwerkzeug, um sie festzuhalten.
===================================================================== */
export /* Was festgelegt ist — mit dem Grund, aus dem es festgelegt wurde. */
const FESTGELEGT = [
/* BERICHTIGT AM 22.09.2026. Ich hatte screen5 und screen6 vertauscht
und das Rot auf "Draussen" gelegt. Filipe: "nicht die kachel
draussen soll rot sein sondern die kachel vertraulich melden nur
die soll knall rot sein!!!" */
{ ton: 38, kachel: "Vertraulich melden", hex: "#ff1a1a",
warum: "knalliges Rot -- wer den vertraulichen Weg sucht, soll ihn finden, ohne zu lesen" },
{ ton: 39, kachel: "Draußen",
warum: "die Farbe, die Regeln & Hilfe hatte -- ausdruecklicher Wunsch (screen5)" },
/* BABYBLAU IST PER DEFINITION BLASS (25.09.2026).
Filipe: „die hauptfarbe der kachel soll auch babyblau sein mit
bissl lila."
Diese Farbe haelt die Buntheitsgrenze von 0,12 NICHT (sie liegt
bei 0,074) -- und kann sie nicht halten, das liegt am Wort.
Nachgemessen mit `node tools/_babyblau-suchen.mjs`: Unter allen
Blautoenen im Umkreis des Wunsches gibt es KEINEN, der gleichzeitig
Buntheit >= 0,12 und Abstand >= 0,09 schafft -- der beste kommt
auf 0,075 Abstand. Der Blaubereich ist von den Toenen 15, 23, 26,
31, 41 und 43 besetzt.
DIE GRENZE WIRD DESHALB NICHT GESENKT, sondern hier BENANNT
ausgenommen. Eine gesenkte Grenze gaelte fuer alle 45 Toene und
liesse ab morgen jede blasse Farbe durch; eine benannte Ausnahme
gilt fuer genau diese eine und steht mit ihrem Grund da.
UND SIE IST NICHT GRATIS: Wer blass sein darf, muss dafuer beim
ABSTAND ueberdurchschnittlich sein -- das ist der Zweck, den die
Buntheitsregel nur stellvertretend misst. Gemessen 0,1125 zur
naechsten Farbe (Ton 15), das 7,3-Fache des engsten Paares, das im
Haus ohnehin steht. Die Bedingung dazu steht unten bei der
Pruefung und ist echt: Faellt der Abstand unter 0,10, wird diese
Zeile rot. */
{ ton: 44, kachel: "Support", hex: "#a8d8ff", blassErlaubt: 0.10,
warum: "Babyblau auf Wunsch -- blass, dafuer mit gemessenem Sicherheitsabstand" },
];