Zwei Pruefungen waren rot, weil etwas richtig gemacht wurde
pruef-auskunft und pruef-treff-werkzeuge -- beide bestraften eine Verbesserung. Das ist die unangenehmste Sorte roter Pruefung: Wer sie zweimal so erlebt, faengt an, rote Laeufe zu erklaeren statt sie zu lesen. 1. "DIE COMMUNITY HAT KEINEN STECKBRIEF" So stand es woertlich in der Bedingung. Am 19.09. hat Filipe genau das Gegenteil entschieden -- "jeder soll ein steckbrief haben, jeder der ein account hat ... jeder soll genau wie ich foto und so hinzufuegen koennen" -- und die Community hat seitdem einen. Was die Zeile schuetzen wollte, steht in ihrem eigenen Kommentar: "Ohne die zweite Stelle haette die Gruppe mit den wenigsten Rechten auch dieses nicht -- und sie ist die groesste." Die Sorge ist richtig und hat mit der Anzahl der Seiten nichts zu tun. Die Frage lautet: KOMMT JEDE ROLLE AN IHRE AUSKUNFT? Genau das wird jetzt gemessen -- welche Seiten den Knopf tragen, aus den Dateien gelesen statt aufgezaehlt, und ob jede der acht Rollen mindestens eine davon erreichen darf, aus der Rechtetafel gelesen statt angenommen. Mit Gegenprobe (eine erfundene Rolle erreicht keine) und mit der Zahl in der Bedingung. 2. "DIE COMMUNITY STEHT BEI 8 VON 33" Hier stand `community.seiten < 5`. Die Zahl stimmte an dem Tag, an dem sie geschrieben wurde. Seither hat der Treff eigene Seiten bekommen -- Regeln, Steckbrief, Hilfe, Draussen -- und die Community steht bei acht. Die Pruefung war rot, WEIL der Treff gewachsen ist. Dieselbe Fehlerklasse wie die Umbruchschwelle vom 06.09.: Wer eine Zahl notiert, notiert einen Zustand, keine Regel. Gemeint war eine ORDNUNG: Ein Mitglied sieht weniger als die Moderation, die weniger als die rechte Hand, die weniger als DogFather. Nachgemessen 8 / 19 / 25 / 32 von 33. Geprueft wird jetzt das Verhaeltnis -- und zusaetzlich, dass die Community das Minimum ueber ALLE acht Rollen ist, nicht nur in dieser Kette. Das bleibt richtig, wenn der Treff weiterwaechst, und faellt sofort auf, wenn jemand die Reihenfolge versehentlich umdreht. pruef-auskunft 46/0 (war 46, davon 1 rot) pruef-treff-werkzeuge 73/0 (war 70, davon 1 rot) Damit sind alle vier Pruefungen gruen, die heute frueh rot waren. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -562,9 +562,61 @@ melde("=== 8. Der Regeltext ===");
|
||||
const t = json(meine);
|
||||
ok(meine.code === 200 && t.seiten?.length === rechte.alleSeiten().length,
|
||||
`DogFather bekommt alle ${t.seiten?.length} Seiten`);
|
||||
const community = (t.rollen || []).find((x) => x.schluessel === "gast");
|
||||
ok(community && community.seiten < 5,
|
||||
`und die Community steht bei ${community?.seiten} von ${t.seiten?.length}`);
|
||||
/* EINE FESTE ZAHL IST EINE RECHNUNG VON GESTERN (berichtigt
|
||||
21.09.2026).
|
||||
|
||||
Hier stand `community.seiten < 5`. Die Zahl stimmte an dem Tag,
|
||||
an dem sie geschrieben wurde. Seither hat der Treff eigene Seiten
|
||||
bekommen -- Regeln, Steckbrief, Hilfe, Draussen -- und die
|
||||
Community steht bei acht. Die Pruefung war damit rot, WEIL der
|
||||
Treff gewachsen ist. Dieselbe Fehlerklasse wie die Umbruchschwelle
|
||||
vom 06.09.: Wer eine Zahl notiert, notiert einen Zustand, keine
|
||||
Regel.
|
||||
|
||||
DIE AUSSAGE, DIE GEMEINT WAR, IST EINE ORDNUNG, KEINE GRENZE:
|
||||
Ein Mitglied sieht weniger als die Moderation, die weniger als die
|
||||
rechte Hand, die weniger als DogFather. Wer Rechte vergibt, darf
|
||||
diese Reihenfolge nicht versehentlich umdrehen -- und genau das
|
||||
faellt an einer Zahl nicht auf, an der Ordnung sofort.
|
||||
|
||||
Nachgemessen am 21.09.: 8 / 19 / 25 / 32 von 33 Seiten. Die Zahlen
|
||||
stehen hier nur als Beleg; gemessen wird ihr Verhaeltnis, und das
|
||||
bleibt richtig, wenn der Treff weiterwaechst. */
|
||||
const zahl = (schluessel) =>
|
||||
(t.rollen || []).find((x) => x.schluessel === schluessel)?.seiten;
|
||||
const kette = ["gast", "modi", "hand", "admin"].map((r) => [r, zahl(r)]);
|
||||
|
||||
/* DIE ZAHL GEHOERT IN DIE BEDINGUNG. Fehlte eine Rolle in der
|
||||
Auskunft, waere `undefined < undefined` schlicht false -- aber
|
||||
`[...].every(...)` ueber eine leere Liste waere wahr. Deshalb
|
||||
zuerst: Sind ueberhaupt alle vier da? */
|
||||
ok(kette.every(([, n]) => Number.isFinite(n)),
|
||||
`die Auskunft nennt alle vier: ${kette.map(([r, n]) => `${r} ${n}`).join(", ")}`);
|
||||
|
||||
const steigt = kette.every(([, n], i) => i === 0 || n > kette[i - 1][1]);
|
||||
ok(steigt,
|
||||
steigt
|
||||
? `und sie stehen in der richtigen Ordnung `
|
||||
+ `(${kette.map(([r, n]) => `${r} ${n}`).join(" < ")} von ${t.seiten?.length})`
|
||||
: `DIE ORDNUNG STIMMT NICHT: `
|
||||
+ `${kette.map(([r, n]) => `${r} ${n}`).join(", ")} -- jemand `
|
||||
+ `weiter unten sieht mehr als jemand weiter oben`);
|
||||
|
||||
/* UND DIE COMMUNITY IST DAS MINIMUM UEBER ALLE ROLLEN, nicht nur in
|
||||
dieser Kette: Die Agentur steht daneben, nicht darueber, und auch
|
||||
ihr gegenueber darf ein Mitglied nicht mehr Seiten haben. */
|
||||
const alleZahlen = (t.rollen || []).filter((x) => Number.isFinite(x.seiten));
|
||||
ok(alleZahlen.length >= 4 && alleZahlen.every((x) => x.schluessel === "gast"
|
||||
|| x.seiten > zahl("gast")),
|
||||
`die Community hat die wenigsten von allen ${alleZahlen.length} Rollen `
|
||||
+ `(${zahl("gast")} von ${t.seiten?.length})`);
|
||||
|
||||
/* GEGENPROBE: Kann diese Ordnung ueberhaupt "nein" sagen? Umgekehrt
|
||||
gelesen muss dieselbe Rechnung falsch herauskommen -- sonst waere
|
||||
sie eine Bestaetigungsmaschine. */
|
||||
const rueckwaerts = [...kette].reverse();
|
||||
ok(!rueckwaerts.every(([, n], i) => i === 0 || n > rueckwaerts[i - 1][1]),
|
||||
"Gegenprobe: umgekehrt gelesen faellt dieselbe Rechnung durch");
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------- */
|
||||
|
||||
Reference in New Issue
Block a user