7eec2edf3fc2e6e41b3e34153885ed06c95779f4
23
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
7eec2edf3f |
Stufe 3: Die Wunschliste bekommt einen Rang und einen Weg
Aus dem Plan im Vault. Eine Wunschliste ohne sichtbare Erfuellung ist
ein Briefkasten ohne Postbote -- nach dem dritten unbeantworteten
Wunsch schreibt niemand mehr.
ZWEIMAL LAG MEIN PLAN DANEBEN, beide Male zu pessimistisch:
- Die Sortierung nach Stimmen GAB es schon, seit dem 11.09.
- Die Datenbank erlaubte 'angenommen' und 'abgelehnt' laengst in ihrer
CHECK-Regel; nur die Pruefung im Server liess sie nicht durch. Die
Tabelle war der Logik voraus.
Auch ein Plan von gestern Nacht ist eine Bestandsliste und altert.
WAS DAZUGEKOMMEN IST
- Vier Zustaende JE BEREICH statt zwei global: Offen -> Wird gemacht
-> Gemacht, dazu "Diesmal nicht". Eine gemeinsame Liste haette
"Diesmal nicht" auch an einem Schutzvorfall erlaubt, und dort
bedeutet es nichts.
- Ein geplanter Tag dazu: "Wird gemacht" allein ist ein Versprechen,
"Wird gemacht -- am 24.09." ist ein Termin.
- Der Rangbalken. Eine Rangfolge sieht man erst, wenn der ABSTAND
sichtbar ist: 12 Stimmen neben 14 sehen sonst aus wie 1 neben 40.
Fuer ein Vorleseprogramm spricht er in Worten.
- Entschiedenes rutscht nach unten, wird aber NICHT geloescht. Gerade
der erfuellte Wunsch ist der Beweis, dass sich Schreiben lohnt.
"DIESMAL NICHT" IST DER WICHTIGSTE DER VIER, und es ist bewusst nicht
rot. Ein Nein ist eine Antwort, Schweigen ist keine -- aber wer ein
rotes Schild an seinem Wunsch sieht, schreibt keinen zweiten.
UND AUF DEM BILDSCHIRMFOTO STAND "WAS IHR EUCH WUENSCHT".
Die Umlaut-Pruefung von gestern Nacht sah es nicht: Sie kannte die
Kataloge und die festen Seitentexte, aber nicht die
Bereichseinstellungen, aus denen JEDE Ueberschrift und jede
Art-Beschriftung kommt. Sechs Stellen ("Fuer den Stream", "Wie es hier
laeuft", "Haeufige Frage", "Ich haette Lust" ...).
Gefunden hat sie kein Gedankengang, sondern ein Blick auf das fertige
Bild. Die Wortliste hatte ausserdem Loecher -- "wuensch" fehlte
schlicht; 23 Stuecke nachgetragen. pruef-deutsche-texte deckt jetzt
auch die 120 Beschriftungen der Bereiche ab (9 -> 12 Pruefungen), mit
einer Gegenprobe auf genau den Satz, der heute Morgen durchrutschte.
NEU: pruef-wunschliste (30 Pruefungen)
Der aelteste Wunsch bekommt die meisten Stimmen -- genau der Fall, der
eine Sortierung nach Datum entlarvt. Dazu: alle vier Zustaende setzen,
ein erfundener nicht, "abgelehnt" am Anschlagbrett ABGELEHNT, der
geplante Tag, die Balkenbreiten (100/33/0 %), und dass der gemachte
Wunsch weiter in der Liste steht -- nur nicht mehr oben.
pruef-countdown 22, pruef-treff 66, pruef-bereiche-lesend,
pruef-deutsche-texte 12: gruen.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
77db1bcc2e |
Stufe 2: "Wann ist der naechste Stream?" steht jetzt oben
Aus dem Plan im Vault. Bei "Was ansteht" gibt es genau EINE Frage, die
ein Zuschauer hat -- und sie stand in Zeile vier einer Liste wie jede
andere Angabe auch.
Jetzt ganz oben, gross:
ALS NAECHSTES
in 12 Std 15 Min
Abendstream
17.09.2026 um 23:30 Uhr
2 weitere Termine danach
Darunter wird die Liste zum ZEITSTRAHL: Heute und morgen · Diese Woche
· Spaeter · Ohne Datum · Vorbei. Vergangenes steht unten, nicht
dazwischen -- ein abgelaufener Termin zwischen kommenden liest sich wie
ein Fehler.
DER PLAN VERSPRACH ETWAS, DAS DIE DATEN NICHT HERGABEN.
"in 3 Std 12 Min" -- aber `eintraege.datum` ist ein TAG, und die
Pruefung im Server lehnte eine Uhrzeit ausdruecklich ab
(`^\d{4}-\d{2}-\d{2}$`). Ein Stundencountdown war unmoeglich.
Das ist die uebliche Sorte Planungsluecke: Sie steht nicht im Plan, sie
steht in der Datenbank. Neue Spalte `uhrzeit`, OPTIONAL -- viele
Termine haben keine ("diese Woche", "im Oktober"), und ein Pflichtfeld
haette dafuer eine erfundene erzwungen. Ohne Uhrzeit zaehlt der
Countdown in Tagen, und "morgen" ist eine ehrliche Antwort.
Der Ton folgt der NAEHE, nicht der Wichtigkeit: Was gleich anfaengt,
ist waermer. Das ist die einzige Information, die eine Farbe hier
tragen kann, ohne zu behaupten, ein Termin sei "besser" als ein
anderer. Kein Blinken, keine Animation -- auf dieser Seite steht
niemand unter Zeitdruck, er will es nur wissen.
NEU: pruef-countdown (22 Pruefungen)
Das Abnahmekriterium aus dem Plan, in Pixeln gemessen: Die Antwort MUSS
im ersten Bildschirm stehen (gemessen 458 px von 844) und groesser sein
als jede Fliesstextzeile (27 px). Dazu: Uhrzeit setzen, wiederfinden
und wieder ENTFERNEN; vier unmoegliche Zeiten; der Zeitstrahl mit
"Vorbei" ganz unten; und der leere Fall, in dem ein SATZ dasteht statt
einer leeren Flaeche.
UND EIN EIGENER FEHLER, gefunden von der eigenen Gegenprobe: Der
Testtitel war "X" -- ein Zeichen, der Server verlangt zwei. Vier
"wird abgelehnt"-Haken waren damit halb aus dem falschen Grund gruen.
Aufgefallen ist es nur, weil die Gegenprobe ("der gueltige Fall muss
durchgehen") danebenlag. Ohne sie haette die Pruefung vier Haken
gesetzt und nichts geprueft.
pruef-treff 66, pruef-bereiche-lesend, pruef-css-klassen gruen -- die
anderen sieben Bretter teilen sich diese Datei.
Der Plan im Vault fuehrt jetzt einen Abschnitt 12: "Was beim Bauen
herauskam, das im Plan nicht stand". Plaene altern, Befunde nicht.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
e4d11caeb0 |
Community-Kacheln: das Loch, die Zwillinge, die unsichtbaren Farben
Filipe, mit einem Bildschirmfoto: "das wie es jetzt ist ist es einfach total scheisse ... gerade einfach nur dahin geknallt und drauf geschissen". Er hatte in allen drei Punkten recht, und alle drei sind messbar. 1. DAS LOCH IM RASTER -- eine Zeile Reihenfolge Drei Spalten, "Der Treff" doppelt breit -- aber an DRITTER Stelle. Nach zwei normalen Kacheln war noch EINE Spalte frei, er passte nicht und rutschte eine Reihe tiefer. Genau das ist die Luecke auf dem Foto. DIE REGEL, und sie gilt fuer jedes Raster im Haus: Eine breite Kachel gehoert an den ANFANG. Steht sie hinten, faellt die Luecke in die MITTE -- und eine Luecke in der Mitte sieht kaputt aus, eine am Ende sieht grosszuegig aus. Jetzt: Treff (2 Spalten) + Anschlagbrett fuellen Reihe 1, drei weitere Reihe 2, der Rest Reihe 3. Fuer DogFather und die Modis geht es genau auf, 3 x 3. Und es stimmt auch inhaltlich: Der Treff IST das Herz dieses Bereichs. 2. ZWEI KACHELN, EIN SYMBOL "Regeln & Hilfe" und "Meldungen & Massnahmen" trugen beide `schutz` -- im Quelltext zweimal, nebeneinander, auf dem Schirm nicht zu unterscheiden. Meldungen bekommt `startcheck`, die abgehakte Liste: Bei Regeln steht, was GILT. Hier steht, was daraus WURDE. 3. DIE FARBEN WAREN DA UND KAMEN NICHT AN Die sieben Toene sind laengst klar verschieden (#cc9451, #668e6e, #cc92c6, #656a9e ...). Der Grund stand direkt daneben: `.kachel:hover::before` und ein ausfuehrlicher Kommentar sprechen von einer Schiene, die "heller wird und weiter in die Platte strahlt" -- nur hatte `.kachel::before` ausser einem Uebergang KEINEN Inhalt. Das Element wurde beim Umbau am 07.09. entfernt, seine Hover-Regeln blieben stehen. Seither trug den Ton nur ein Verlauf, der bei 58 % verschwunden ist; unter dem Buehnenbild reicht das nicht. Das hier ist deshalb kein neuer Einfall, sondern das Wiedereinsetzen dessen, womit der Rest der Datei ohnehin rechnet. Drei Pixel, oben, nach rechts auslaufend -- Farbe an der Kante unterscheidet, Farbe auf der Flaeche blendet. NEU: pruef-kachelraster (15 Pruefungen) Ein Loch wird nicht angesehen, sondern gerechnet: belegte Zellen = Kacheln + 1 je doppelt breiter kleinstmoegliche Reihen = aufgerundet (Zellen / Spalten) Mehr Reihen als das heisst: irgendwo liegt eine Zelle leer, die es nicht muesste. Eine Luecke am ENDE faellt bewusst heraus. Dazu: jedes Zeichen genau einmal (erkannt am SVG-Pfad, nicht an einem Namen -- den gibt es im DOM nicht), jede Kachel mit Schiene, acht verschiedene Toene. Und die Gegenprobe in beide Richtungen: die ALTE Reihenfolge MUSS ein Loch melden, die neue nicht. ZWEI EIGENE FEHLER DABEI, beide durch Messen gefunden: - Ich hielt ein Vollbild-Foto fuer den Beweis, dass keine Kacheln da sind -- sie blenden sich beim Hereinscrollen ein. Die Pruefung scrollt jetzt erst hin. - Ich erwartete sieben Kacheln fuer einen Modi. Er moderiert, also sieht er acht. Der Code hatte recht, meine Annahme nicht. pruef-treff hat die Reihenfolge festgehalten und ist rot geworden -- genau ihre Aufgabe. Erwartung nachgezogen, mit dem Grund daneben. pruef-kachel-universum 37, pruef-haus-seiten 34, pruef-treff 66, pruef-css-klassen und pruef-start-ansicht: gruen. Der ausfuehrliche Plan fuer den ganzen Bereich liegt im Vault: "02 Projekte/Community-Bereich - Plan zur Perfektion" (fuenf Durchgaenge). Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
b66fc379c8 |
Drei Accounts, eine Aufgabenliste: der Kanal
Filipe: "ich hab ja auch 2 neben account, hasidog und dogfather clips." Der Arbeitsplatz wusste davon nichts -- es gab genau eine Welt, und die hiess nirgends. DAS WAR KEIN FEHLENDES FELD, SONDERN EINE MEHRDEUTIGKEIT. "Schneide drei Ausschnitte" ist bei drei Accounts keine Aufgabe, sondern eine Frage. Wer sie bekommt, muss nachfragen -- oder raet. Raet er falsch, ist die Arbeit nicht halb getan, sondern am falschen Ort, und das faellt erst auf, wenn jemand hinsieht. WAS DAZUGEKOMMEN IST - KANAELE in workspace.js (DogFather, HasiDog, DogFather Clips), jeder mit einem Satz, der ihn erklaert. Ein Auswahlfeld mit drei Namen und ohne ein Wort dazu ist eine Ratefrage fuer jemanden, der neu ist. - Spalte `kanal` an den Aufgaben, per ADD COLUMN: kein Tabellenneubau, keine CHECK-Regel, alte Zeilen bleiben leer. - Auswahl in beiden Formularen, ein farbiges Zeichen auf der Karte (gedeckte Toene -- auf dem Brett stehen bis zu vierzig Karten). LEER IST EIN GUELTIGER ZUSTAND, kein fehlender. Vieles gilt fuer alles: eine Absprache im Team, ein Zugang, eine Auswertung. Ein Pflichtfeld haette dafuer einen falschen Kanal erzwungen, und ein falscher Eintrag ist schlechter als ein leerer. Deshalb steht dort "Für alle" und kein Strich. WARUM EINE LISTE IM QUELLTEXT UND KEINE TABELLE Sonst gilt hier: Eine abgeschriebene Liste altert. Diese ist keine Abschrift -- sie laesst sich aus nichts ableiten, weil sie eine Tatsache ueber Filipes Betrieb ist. Einen Kanal dazuzunehmen ist eine Zeile. Sobald sich das oefter aendert als ein paarmal im Jahr, gehoert sie in die Verwaltung; vorher waere das eine Oberflaeche fuer drei Zeilen. NEU: pruef-kanaele (21 Pruefungen) Vier Fragen, und die dritte wird gern vergessen: Kann man ihn setzen? Faellt ein erfundener auf? Erfaehrt jemand, der ihn nicht benutzen darf, dass es ihn gibt? Und laesst er sich wieder ENTFERNEN -- ein Feld, das `""` als "unveraendert" behandelt, macht aus einem Loeschversuch ein Nichts-Tun, ohne Fehlermeldung. Abschnitt 6 fragt die Datenbank selbst. Ohne ihn koennte alles gruen sein, obwohl der Wert nur durch die Auskunft zurueckgereicht wird. pruef-aufgabenbrett, pruef-modi-katalog 49, pruef-modi-kategorien 25 und pruef-css-klassen unveraendert gruen. Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
fa8e86ad81 |
Die Personenkacheln der Entwicklung im Hausstil
Filipe, mit zwei Bildschirmfotos nebeneinander: "wieso ist diese seite noch nicht im stil und perfektioniert wie die auf screen2 ... aber so dass ich die leute in einer kachel aussuchen kann alle einzel." Der Unterschied lag NICHT im Aufbau -- der stimmte -- und auch nicht am Inhalt: Die 28 Punkte sind laengst ganz auf Modi-Arbeit gebaut (Im Chat 8, Wenn es eng wird 7, Im Team 7, Wie viel von selbst 6, dazu sechs Fragen an einen selbst). Es waren zwei andere Dinge: 1. DIE ZAHLEN WAREN GRAUE TEXTZEILEN Drueben stehen sie als abgesetzte Kaesten mit grosser Ziffer und eigenem Ton. `bilanz-zahl` liegt in start.css und gehoert dem ganzen Haus -- es wird jetzt benutzt statt nachgebaut. Ein Nachbau laeuft auseinander, sobald jemand eins von beiden anfasst. Aus "0 von 28 angesehen" werden drei Kaesten wie auf der Checkliste: angesehen / noch offen / verschieden gesehen. Die ersten beiden teilen dasselbe Ganze, die dritte ist das Ergebnis dieser Seite -- wo zwei Leute dasselbe sehen, gibt es nichts zu besprechen. 2. EINE ANGEKLICKTE PERSON SAH AUS WIE EINE NICHT ANGEKLICKTE Die Kachel war ein Knopf ohne Zustand. Man klickte jemanden an, die Karte ging auf -- und oben blieb alles gleich. Wer scrollte, wusste nicht mehr, wen er offen hat. Jetzt `aria-pressed`, damit es auch ein Vorleseprogramm sagen kann, und eine gedaempfte Umrandung. Die Reihe heisst "Person waehlen" wie auf dem Aufgabenbrett. Nebenbei: Der Ton des ersten Kastens springt auf gruen, sobald nichts mehr offen ist -- sonst saehe eine fertig angesehene Person aus wie eine halbe. NEU: pruef-entwicklung-kacheln (15 Pruefungen) Nicht "sieht gleich aus" -- das laesst sich nicht messen -- sondern was das Aussehen traegt: Benutzt die Kachel den Hausbaustein oder einen Nachbau (und steht nichts Selbstgebautes daneben)? Ergibt angesehen + noch offen die Gesamtzahl, die die Auskunft selbst nennt? Und die Gegenprobe zur Auswahl: VOR dem ersten Klick darf keine Kachel gewaehlt sein, danach genau eine, und beim naechsten Klick wandert sie, statt sich zu sammeln. pruef-entwicklung 43 und pruef-css-klassen unveraendert gruen. Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
3a86b13de1 |
Drei Zahlen, die etwas anderes zaehlten, als sie sagten
Weiter an derselben Stelle wie der Ring: Nicht umbauen, was gut ist --
suchen, wo eine Beschriftung etwas anderes behauptet, als darunter
gerechnet wird. Drei Funde, alle auf der Startseite.
1. "HEUTE" WAR ZWEIDEUTIG
Die erste Zahl unter dem Ring heisst "heute" und zaehlt TERMINE.
Solange der Ring die Uhrzeit zeigte, fiel das nicht auf. Seit er
"Heute geschafft" heisst und AUFGABEN zaehlt, standen zwei
verschiedene "heute" uebereinander -- ein Widerspruch, den der
vorherige Commit erst erzeugt hat. Heisst jetzt "Termine heute".
2. "KOMMT NOCH" ZAEHLTE STUNDEN, NICHT TERMINE
`mitTermin` ist eine Menge von STUNDEN -- fuer den Ring richtig, er
faerbt Stundensegmente. Als Zahl daneben war es falsch: Drei Termine
um 20 Uhr ergaben "1 kommt noch". Eine zu kleine Zahl meldet niemand;
man verlaesst sich darauf und wundert sich spaeter.
3. DIE KACHELZAHL SAGTE VORLESEND "OFFENE PUNKTE"
Sie summiert HINWEISE: bei Aufgaben "2 ueberfaellig" + "2 heute
faellig" = 4. Im Block darunter steht "6 Offen". Beides richtig -- nur
das Wort "offen" machte daraus einen Widerspruch, und wer die Seite
vorgelesen bekam, hoerte eine Zahl offener Aufgaben, die es nicht
gibt. Jetzt: "Aufgaben: 4 Sachen liegen an".
NICHT GEAENDERT, OBWOHL ICH ES VORGESCHLAGEN HATTE:
Die sieben Zaehler bleiben, auch wenn mehrere Null sind. Im Code steht
Filipes Anweisung vom 08.09. daneben ("diese beiden kategorien sollen
bei jedem in jeder rolle gleich sein"), samt der Erfahrung, dass das
Ausblenden schon einmal dazu fuehrte, dass Spicy Media als Einzige
etwas anderes sah. Der leere Zustand wird bereits gedaempft statt
entfernt -- das ist die bessere Loesung und sie war schon da.
pruef-zentrale-ring jetzt 14 Pruefungen (vorher 10), darunter drei
Termine in DERSELBEN Stunde -- der Fall, der 1 statt 3 ergab. Dazu die
Gegenprobe, dass jemand ohne Termine dort auch null sieht.
pruef-start-ansicht und pruef-tagesblick unveraendert gruen.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
78b64f6eca |
Auf dem Brett steht jetzt Deutsch, nicht ASCII
Unter jeder Kategorie stand eine Erklaerung ohne Umlaute: "Was im Livechat passiert, waehrend gesendet wird. Loeschen, stummschalten, begruessen, deeskalieren." Elf der vierzehn Kategorien und alle drei Stufen waren betroffen, dazu vier Stellen mit zwei Bindestrichen statt eines Gedankenstrichs. Entstanden ist es beim Schreiben ueber Hilfsskripte, die an Umlauten scheitern -- fuer einen Kommentar gleichgueltig, fuer einen Satz, den ein Mensch liest, ein Fehler. Gesehen hat es keine Pruefung: Der Text war inhaltlich richtig, der Katalog vollstaendig, alles gruen. Aufgefallen ist es auf einem Bildschirmfoto. NEU: pruef-deutsche-texte (9 Pruefungen) Sieht 174 Katalogtexte und 28 ausgelieferte Seiten durch. Bewusst eine Liste von Wortstuecken statt eines Musters aus Buchstabenfolgen: "ue" ist in "Feuer" und "neue" richtig, "ss" in jedem zweiten Wort. Die Liste ist ein Netz, kein Beweis, und der Kopf der Datei sagt das. Die Skripte bleiben absichtlich aussen vor. Ausprobiert: Dieselbe Liste schlaegt dort 71 Mal an und kein einziges Mal zu Recht -- es sind Feldnamen, Stilklassen und Adressen, die ASCII sein MUESSEN. Eine Warnung, die immer kommt, ist keine Warnung mehr. Ihr sichtbarer Text wird deshalb am fertigen Bildschirm geprueft, ueber innerText. AUSSERDEM, auf demselben Bildschirmfoto gefunden: Die Fusszeile der Vorlagenkarten war eine starre Flex-Zeile. Bei einer schon uebernommenen Aufgabe stehen dort drei Dinge statt zwei, und "Frist: in 2 Tagen" brach mitten im Wort auf drei Zeilen um. Keine neue feste Breite dagegen, sondern flex-wrap plus nowrap -- eine Regel, die misst, statt einer Zahl, die beim naechsten Element wieder faellig waere. UND EINE LEHRE ZUM MESSEN: Die erste Fassung dieser Pruefung zaehlte element.getClientRects(). Sie blieb gruen, auch mit dem Fehler wieder eingebaut -- ein Flex-Kind wird zum Block und liefert immer genau ein Rechteck. Gefunden hat das nur die Gegenprobe. Gemessen wird jetzt ueber einen Bereich um den Textknoten. Das Bildschirmfoto landet ausserdem dort, wo die Zeile darunter es ansagt (server/), nicht im Arbeitsverzeichnis. pruef-modi-katalog 49 (vorher 45), pruef-deutsche-texte 9, pruef-css-klassen, pruef-struktur, pruef-vorlagen, pruef-aufgaben-vorlagen: alle ohne Fehler. Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
76fa8b95fc |
Beim Verteilen sehen, wer schon wie viel hat
Weiter an derselben Sache: die Kategorien, aus denen Aufgaben an das Team gehen. ZWEI DINGE WAREN UNBEQUEM: Die Person kam aus dem Formular GANZ OBEN auf der Seite. Man waehlt sie dort, scrollt herunter zum Vorlagenbrett und drueckt "Uebernehmen" -- und wer das nicht weiss, bekommt "Bitte zuerst eine Person waehlen" und sucht, wo. Und beim Vergeben sah man nicht, wer schon wie viel offen hat. Das ist die wichtigere Haelfte: Zu wenig Zeit ist in den Untersuchungen zu Moderatoren der meistgenannte Grund fuers Aufhoeren, und die Person, die verteilt, ist die einzige, die das verhindern kann. Dafuer muss die Zahl dort stehen, wo entschieden wird -- nicht auf einer Auswertung, die man hinterher aufruft. Jetzt steht ueber den Aufgaben eine Reihe mit den Namen des Teams und der Zahl daneben. Ein Klick, und die uebernommenen Aufgaben gehen dorthin; das Formular oben bleibt als Rueckfall, damit der bisherige Weg weiter funktioniert. KEINE SCHWELLE, KEINE WARNFARBE AUF DER ZAHL. Was "zu viel" ist, haengt vom Menschen ab -- eine feste Grenze waere geraten, und geraten ist bei dieser Frage schlimmer als nichts. Was NICHT geraten ist: dass etwas ueberfaellig liegt. Nur das wird markiert, und zwar gedeckt. Ein Warnton an einem Namen liest sich sonst wie ein Vorwurf gegen die Person, dabei ist es eine Auskunft ueber die Verteilung. Ohne eine einzige neue Abfrage: Die Personen und ihre Aufgaben liegen im Browser ohnehin schon. Ein zweiter Abruf waere ein zweiter Weg, auf dem eine andere Liste herauskommen kann. server/pruef-modi-katalog.mjs 45 Pruefungen (vorher 36), 0 Fehler Der neue Abschnitt meldet sich als DogFather an -- der bisherige Browserteil ist ein Modi, und der sieht diese Auswahl gar nicht. Er drueckt wirklich: Marina waehlen (9 offen), eine Aufgabe uebernehmen, nachsehen ob sie bei ihr liegt (9 -> 10). Ein Knopf, den niemand betaetigt hat, ist kein geprueter Knopf. Und er prueft die Gegenrichtung mit: Ein Creator und eine Managerin stehen NICHT zur Auswahl -- sie arbeiten im anderen Haus. pruef-aufgabenbrett, pruef-sicht, pruef-womit 41, pruef-css-klassen -- alle 0 Fehler Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
4802954263 |
Der Aufgabenkatalog fuers Team: Kategorie mal Stufe, 88 Aufgaben
Filipe: "perfektionniere die kategorien wo ich aufgaben an die modis verteile und so, ich will dass du alles was es gibt auf der welt durch gehst und wie bei den aufgaben wo sie fuer mich haben auch mit kategorien und vielen aufgaben." ERST GEZAEHLT, WAS DA WAR. Es gab einen Katalog: 60 Eintraege in neun Phasen. Wem sie gehoerten: DogFather 13 DogFather & rechte Hand 12 rechte Hand 14 -------------------------------- zusammen 39 von 60 Zwei Drittel des "Modi-Katalogs" waren Aufbauarbeiten fuer Filipe selbst. Nur 20 Eintraege waren wirklich Arbeit fuer jemanden im Team. Und die Verteilung ueber die vierzehn Kategorien war schief: Planung 10, Events 1, Wachstum 1, Branding 1, Sonstiges 0. Der Aufbauplan ist nicht falsch, nur etwas anderes -- er bleibt unter `aufbauplan` erhalten. Ihn zu loeschen hiesse, 60 durchdachte Schritte wegzuwerfen, weil sie am falschen Platz standen. NEU: 88 Aufgaben in KATEGORIE mal STUFE, dieselbe Form wie bei den Creator-Vorlagen. Wer eine Aufgabe vergibt, denkt "Frida macht Chat" und nicht "wir sind in Phase 3". Chat 11, Team 8, Community/Events/Clipping/Technik je 7, Social/Planung/Organisation je 6, Kommunikation/Analyse/Wachstum/ Branding je 5, Sonstiges 3 -- keine Kategorie mehr leer. Drei Stufen: neu dabei (24), eingearbeitet (35), erfahren (29). Eine Aufgabe der Stufe "erfahren" an einen Neuen zu geben ist kein Kompliment, sondern ein Ueberfallen. UND DIE VIERZEHN KATEGORIEN HABEN JETZT EINEN SATZ. Vorher standen da vierzehn nackte Namen -- "Organisation" und "Planung" nebeneinander, ohne dass jemand sagt, was worin gehoert. Dann landet dieselbe Aufgabe beim einen unter Planung, beim anderen unter Organisation, und jede Auswertung darueber ist wertlos. Jetzt: Planung ist, was NOCH NICHT ist; Organisation, was bereits ist, in Ordnung zu halten. RECHERCHIERT, NICHT AUSGEDACHT (Quellen im Kopf des Katalogs): Twitch und Discord zu dem, was ein Moderator tatsaechlich tut; TikTok LIVE im Besonderen (gefilterte Kommentare, Gaesteverwaltung, Regeln zu Beginn, Matches, Geschenke ohne Betteln); Community-Arbeit zu Rhythmus, Vertretung und Monatsrueckblick. Dazu die Burnout-Forschung, die schon in "Wie geht's dir?" steht -- deshalb stehen unter "Team" Aufgaben, die zu wenig Zeit und Streit frueh sichtbar machen. WAS DABEI BEINAHE SCHIEFGEGANGEN WAERE, und was es gefunden hat: Das Uebernehmen griff noch auf MODI_KATALOG zu -- die alten Phasen. Der Browser schickt die Nummer aus der AUSGELIEFERTEN Liste zurueck. Ein Klick auf "Uebernehmen" haette damit eine voellig andere Aufgabe angelegt, und zwar eine, die es gibt: keine Fehlermeldung, nichts Rotes, nur die falsche Aufgabe auf dem Brett. Gefunden hat das pruef-modi-katalog, die an der verschwundenen Phase abgestuerzt ist. Der Knopf "Alle N uebernehmen" schickte die Stufe nicht mit. Er sagte "Alle 4 uebernehmen" und haette elf angelegt -- das merkt man erst auf dem Brett. Und der Satz ueber dem Brett sagte weiterhin "Nach Etappen sortiert". Gesehen im Bildschirmfoto der Pruefung, nicht im Code. server/pruef-modi-katalog.mjs 36 Pruefungen, 0 Fehler Neu darin: jede Kategorie muss belegt sein (mindestens drei), jede Stufe auch, keine Kennung doppelt -- und JEDER TEXT MUSS BEGRUENDEN. Die letzte Zeile hat zwei meiner eigenen Texte als zu duenn erwischt. pruef-modi-kategorien 25, pruef-aufgabenbrett, pruef-vorlagen, pruef-css-klassen, pruef-struktur -- alle 0 Fehler Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
12d4d48975 |
pruef-struktur: von zehn Fehlern auf null -- vier davon waren keine
Die dritte und letzte rote Pruefung. Sie meldete zehn Fehler, und
sechs davon waren Fehlalarm.
1. SECHS SEITEN "VON NIRGENDWO VERLINKT"
Gemeldet wurden crew-index, entwicklung, rechte, talente, teamlage und
treff-moderation. Keine davon war verwaist -- man kommt auf jede, indem
man eine KACHEL antippt. Die Kacheln stehen im Server (`ziel:
"talente.html"`), und der wurde nie durchsucht. Der blinde Fleck lag in
der Pruefung.
Abgeleitet statt nachgetragen: Statt die sechs von Hand auszunehmen,
kommen workspace.js und crew-adresse.js als Quellen dazu. Wer morgen
eine Kachel anlegt, ist damit automatisch abgedeckt.
2. FALSCHE ZEILENNUMMERN
Die Ortszeit-Pruefung schnitt Blockkommentare heraus und ersetzte sie
durch EIN Leerzeichen -- ab da zaehlte split("\n") falsch. Gemeldet
wurde "pruef-eskalation.mjs:43", dort steht eine Zeile ueber Kekse. Wer
dem nachgeht, findet nichts, haelt die Pruefung fuer kaputt und sieht
beim naechsten Mal nicht mehr nach.
Mit richtigen Zeilen waren sechs der sieben Funde echt: Sie bauen ihr
Tagesdatum aus toISOString(), also aus UTC. Zwischen Mitternacht und
zwei Uhr liefert das den Vortag -- die Pruefungen waeren tagsueber
gruen und nachts rot gewesen.
Der siebte (pruef-eskalation.mjs:70) rechnet von einem FESTEN Mittag
aus und ist damit sicher; das Muster kann es nur nicht unterscheiden.
Auch umgestellt, damit es nicht beim naechsten Lesen wieder auffaellt.
Neu: server/helfer-tag.mjs -- heuteLokal, tagLokal, tagVon. Nicht aus
workspace.js importiert, weil eine Pruefung, die nur ein Datum
braucht, dafuer keinen Server hochfahren soll. pruef-backstage-import
hatte die Rechnung sogar schon richtig stehen -- und benutzte sie 1270
Zeilen weiter unten trotzdem nicht.
3. TOTES CSS
`.rolle__zeichen .nase` war tot. Beim Nachsehen: `.auge` und `.hell`
daneben auch -- sie wurden nur davon verdeckt, dass die Pruefung den
Klassennamen als TEILZEICHENKETTE gegen den Quelltext haelt, und
"auge" steckt in "Auge", "hell" in "hell". Dutzende Treffer im
Fliesstext deutscher Kommentare. `.fuell` bleibt, die wird benutzt.
Die Schwaeche der Suche steht jetzt an der Stelle notiert.
4. start.css MIT 347 KB
Die Grenze soll verhindern, "dass eine Seite unnoetig viel laedt". Auf
der echten Seite nachgemessen:
start.css auf der Platte 346 KB uebertragen 110 KB (br)
chat.css 59 KB 16 KB
entwicklung.css 33 KB 8 KB
Caddy packt unterwegs. Von start.css sind ausserdem 227 KB KOMMENTAR
(64 %) -- die Pruefung bestrafte genau das, was dieses Haus absichtlich
tut, und haette eine Datei mit 199 KB dichtem CSS durchgewunken.
Dasselbe Argument steht drei Absaetze hoeher schon fuer gestufte
Bilder.
Jetzt zwei Zahlen, weil es zwei Fragen sind: was der BESUCHER laedt
(brotli Stufe 4 -- bei 4 liefert node 111 KB, Caddy 110, jede andere
Stufe waere eine erfundene Zahl) und was ein MENSCH pflegen muss (ohne
Kommentare). Sonst koennte man die erste Zahl klein halten, indem man
immer mehr Prosa schreibt.
MIT GEGENPROBE, in drei Faellen: 281 KB dichtes CSS faellt durch,
404 KB Kommentar gehen durch, und 246 KB sich WIEDERHOLENDES CSS
faellt ebenfalls durch -- sonst koennte man die erste Grenze mit
Wiederholung unterlaufen.
pruef-struktur 0 Fehler (vorher 10)
pruef-eskalation 40, pruef-modi-livecheck 16, pruef-treff-werkzeuge 70,
pruef-backstage-import 160, pruef-css-klassen, pruef-crew-adresse 132
-- alle 0 Fehler
Damit sind alle drei roten Pruefungen gruen.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
0852723493 |
Der Nebel lag dort, wo der Text steht
pruef-kachel-universum war rot mit drei Meldungen. Die zweite rote
Pruefung von dreien.
ERST DIE FRAGE, OB ES DRIFT IST ODER VON ANFANG AN SO WAR: Die Pruefung
und das Sternenfeld kamen im selben Commit (
|
||
|
|
8e140724f2 |
Der Rollenname steht in keiner ausgelieferten Datei mehr
pruef-modi-wortleck war rot und meldete 17 Fundstellen -- seit Wochen,
bei jedem Lauf. Eine Warnung, die immer kommt, wird ueberlesen, und
dann auch die echte.
ERST GEMESSEN, OB DIE REGEL UEBERHAUPT NOCH GILT. Seit dem 11.09. gibt
es die eigene Adresse crew. mit einem offenen Modi-Knopf an der Wand --
es waere gut moeglich gewesen, dass die Pruefung etwas bewacht, das es
nicht mehr gibt. Sie gilt: pruef-modi-verborgen setzt mit 80 Pruefungen
durch, dass ein Manager keinen Modi sieht.
UND DABEI KAM ETWAS SCHLIMMERES HERAUS. Auf der echten Seite gemessen:
/workspace/start.html 302 (Anmeldung noetig)
/workspace/assets/js/talente.js 200 25 KB Quelltext
/workspace/assets/js/chat.js 200 85 KB
/workspace/assets/css/entwicklung.css 200 34 KB
Jede Datei unter workspace/ ist OHNE JEDE ANMELDUNG aus dem offenen
Netz abrufbar. Der verborgene Zugang stand also nicht in einer Datei,
die "jeder herunterlaedt, der angemeldet ist" -- sondern in einer, die
man einfach abrufen kann.
Die Rollentabelle in workspace.js sagt seit dem 11.09. genau das
Richtige dazu: "Der Name steht hier und NICHT in einer Datei, die jeder
herunterlaedt -- ausgeliefert wird er nur an den, der ihn selbst
traegt, und an die, die ihn sehen duerfen." Danach ist jetzt gebaut,
ueberall:
- talente.js hatte `rolle: 'modi'` fest im Text, dazu den Namen im
Codekasten und im Rechtevergleich. Die Seite FRAGT ihn jetzt ab;
/talente/lage liefert ihn, und die Route geht nur an DogFather und
die rechte Hand.
- Der Regeltext des Treffs nennt den Namen weiterhin -- Filipe hat am
11.09. ausdruecklich gewaehlt, dass die Community ihn sieht. Er
kommt jetzt als DATEN mit der Antwort, nicht als fester Text.
- Das Feld hiess selbst `modi_frist_tage`. Das Muster \bmodi\b trifft
das nicht, weil danach ein Unterstrich folgt -- ein Leck durch eine
Luecke im Muster, nicht durch eine Entscheidung. Heisst jetzt
`pause_frist_tage`.
- Die uebrigen elf Fundstellen waren Kommentare. Umformuliert, ohne
dass sie weniger erklaeren.
Ergebnis: 17 -> 0. Ohne Ausnahmeliste, ohne die Pruefung zu entschaerfen.
ZWEI LOECHER, DIE ICH DABEI SELBST GERISSEN HAETTE:
darfAnlegen wurde aus `lage` gerechnet -- aber ichHolen() laeuft VOR
laden(), also war `lage` noch null. Der Wert waere dauerhaft falsch
gewesen und der Knopf nie erschienen. Jetzt ist es eine Frage statt
eines Wertes, beantwortet beim Zeichnen. Gefunden beim Nachsehen der
Reihenfolge, nicht im Testlauf -- deshalb steht die Frage ab jetzt in
pruef-uebergang.
Und im HTML des Treffs steht als Ersatzfassung "jemandem aus dem
Team". Kommt der Name nicht an, bleibt sie stehen, die Seite sieht
vollkommen richtig aus, und niemand merkt es. Ein Platzhalter "…"
waere aufgefallen; eine richtige Ersatzfassung faellt nicht auf.
pruef-neue-seiten prueft jetzt, dass wirklich der Name dasteht.
pruef-modi-wortleck 0 Fehler (vorher 17 Fundstellen)
pruef-uebergang 65 (vorher 61), pruef-neue-seiten 97 (vorher 93)
pruef-modi-verborgen 80, pruef-nachwuchs 123, pruef-treff 66,
pruef-treff-werkzeuge 70, pruef-css-klassen -- alle 0 Fehler
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
8fc1ac7a7a |
Alles aus der Excel-Datei -- und der Fund, der alles blockiert haette
Filipe: "ich will dass alles von der excel datei genommen wird.
perfektionnier das, aber wenn ich dir runter lade soll alles notiert
und angezeigt werden." Dazu eine echte Ausgabe als Vorlage.
DER SCHWERSTE FUND STECKTE VOR DEN DATEN, NICHT IN IHNEN.
Seine Ausgabe "Creator_innendaten" hat DREI Spalten, die nach Person
aussehen: "Creator*in-ID", "Creator*innen-Anmeldename" und "Agent".
`personSpaltenRaten` nahm die erste mit dem Wort "creator" darin --
die ID. Danach wurde nach einem Creator namens "700001" gesucht.
Nachgemessen an seiner echten Kopfzeile: handle = KEINE, name =
"Creator*in-ID". Diese Datei haette KEINE EINZIGE Zeile zugeordnet,
mit einem Hinweis ("steht bei keinem Creator im Feld TikTok"), der in
die voellig falsche Richtung zeigt.
Jetzt ist "Anmeldename" der Handle, eine Kennnummer ist fuer beide
Spalten ausgeschlossen, und "creator" allein reicht nicht mehr als
Namensspalte -- sonst haette weiter hinten "Neue*r LIVE-Creator*innen"
(Wert: "Nein") die Stelle uebernommen. An fuenf Kopfzeilen gemessen.
UND DANN: NICHTS FAELLT MEHR WEG.
41 Spalten in der Datei, acht werden gedeutet. Die restlichen 33 --
letzter Monat, fuenf Prozentwerte, Matches, Multi-Gast-LIVEs, Fanclub,
Graduierungs- und Stufenstatus -- wurden lautlos weggeworfen.
KEINE 33 NEUEN SPALTEN, sondern eine Zeile je Spalte mit dem NAMEN als
Schluessel. Eine abgeschriebene Spaltenliste hat in diesem Haus schon
zweimal Daten gekostet und waere beim naechsten Backstage-Update
falsch. Gegenprobe in der Pruefung: eine erfundene Spalte
("Sternenstaub pro Woche") kommt genauso durch -- es wird also keine
Liste gepflegt, die Datei entscheidet.
An SEINER echten Datei gemessen, ohne sie irgendwo hineinzuschreiben:
40 von 41 Spalten gespeichert (die 41. ist leer), Zeitraum 01.09.-
13.09. erkannt, 32 als Zahl, 8 als Text.
UND EIN MESSFEHLER, DER LEHRREICH IST: Meine erste Pruefung meldete
"zugeklappt ist die Liste 141 px hoch", im Bildschirmfoto war dort
nichts. An einem Miniaturfall nachgemessen: getBoundingClientRect,
offsetHeight, offsetParent und getClientRects liefern bei einem
<details> in BEIDEN Zustaenden identische Werte -- Chromium verbirgt
den Inhalt mit content-visibility:hidden, und das behaelt die letzte
Ausmessung. Nur checkVisibility() kann es unterscheiden. Die Messung
log, nicht die Seite.
pruef-backstage-import 160 (war 133), pruef-xlsx 75,
pruef-leistung-optik 59, pruef-leistung, pruef-css-klassen und
pruef-auskunft (46, DSGVO -- die neue Tabelle ist automatisch dabei,
weil die Auskunft ihre Liste aus PRAGMA foreign_key_list ableitet):
alle gruen.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
984f0dd7a9 |
Die Zeitraeume bekommen eine Tafel -- und die Zahl, die fehlte
Filipe: "das muss viel geiler aussehen bitte. ich will dass es auch seeeehr gut erkennbar ist, genau wie der text drueber. mach das bitte alles so dass es mega speziell, hochwertig und lesbar ist." DAS EIGENTLICHE PROBLEM WAR LESBARKEIT, nicht Geschmack. Im Bildschirmfoto gemessen: Ueberschrift und Erklaersatz standen direkt auf der Buehne -- einem Foto mit hellrotem Berg. Und die Karte griff nach `--flaeche-tief`, einer Variablen, die es im ganzen Haus nicht gibt; gegriffen hat der Ersatzwert mit 72 % Deckung, also kam der Berg mit. Eine Variable, die nirgends steht, faellt nicht auf. Jetzt sitzt alles in EINEM Koerper: vierfarbige Fassung, deckendes Innenglas mit Messraster, die Zeitraeume als eingelassene Felder mit dunklen Fugen. Das ist nicht neu erfunden, sondern die Rollenkachel der Anmeldeseite -- ein Haus, eine Handschrift. Typenschild und Hauptzahl in gebuerstetem Metall, mit vollwertigem Rueckfall. "GUELTIGE LIVE-GEHEN-TAGE" WURDE BIS HEUTE WEGGEWORFEN. Datenbank, Anzeigefeld und Importzeile waren da -- nur `spaltenRaten` hatte kein Muster dafuer. Am 14.09. wurde das alte `/tag/` reparirt, das die Spalte faelschlich zur Datumsspalte machte; die Reparatur hat den falschen Empfaenger entfernt und keinen richtigen bestellt. Die Pruefdatei SCHICKTE den Wert seit dem 14.09. und hat nie nachgesehen, ob er ankommt. Jetzt steht er als Streifen da, in genau so viele Kaestchen geteilt, wie der Zeitraum Tage hat. ZWEI KLASSEN IM WAEHLER, mit Grund: `.spannen__schild` allein (0,1,0) kam gegen `.inhalt .feldschild` aus start.css (0,2,0) nicht an -- im Browser gemessen war weder `display: flex` noch die Farbe da. UND EINE ZEITBOMBE ENTSCHAERFT: pruef-backstage-import rechnete "morgen" mit `toISOString()` (UTC), der Server mit Ortszeit. Um 00:40 Berlin war das hier berechnete "morgen" in Wahrheit HEUTE -- die Gegenprobe "ein Datum in der Zukunft wird abgelehnt" fiel taeglich zwischen Mitternacht und zwei Uhr um. Alle drei Tage werden jetzt aus einer Stelle abgeleitet. Gemessen statt behauptet: 43 258 Bildpunkte hinter Ueberschrift und Satz abgetastet, kein einziger rot. Gegenprobe mit weggenommenem Innenglas: 2 857 rote -- die Messung kann Rot also sehen. pruef-backstage-import 133 (war 127), pruef-xlsx 75 (war 67), pruef-css-klassen, pruef-leistung-optik 59, pruef-leistung: alle gruen. Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
04f87603f6 |
Was dein Verlauf sagt -- die Analyse
Filipe: "mach mir auch eine analyse, mach eine perfektion draus. eine
professionelle auch mit infos und so aus aller welt was tiktok angeht.
ich will dass es perfekt ist!!!!"
SIE WIRD GERECHNET, NICHT GESPEICHERT. Kein Feld, keine Tabelle, keine
Note -- sie entsteht bei jedem Abruf neu aus dem Verlauf dieser einen
Person und verlaesst das Haus damit genauso wenig wie er.
DREI DINGE, DIE SIE TUT:
1. Sie nennt das MUSTER, nicht den Einzelwert. "Da hakt es" in einer
Runde ist ein schlechter Tag. Dasselbe in zwei Runden ist etwas
anderes -- und genau das ist in der Forschung das Warnzeichen.
2. Sie ordnet ein. Zu JEDER der sechs Fragen ein belegter Befund aus
der Moderationsarbeit, damit niemand denkt, er sei der Einzige.
3. Sie sagt, was hilft -- aber nur dort, wo es etwas zu tun gibt. Ein
Rat an einer Stelle, die laeuft, ist Laerm und entwertet die
anderen fuenf.
UND EINES, DAS SIE NICHT TUT: bewerten. Keine Punktzahl, kein Score,
kein Ampelgesicht. Eine Zahl ueber das eigene Befinden laedt dazu ein,
sie zu verbessern statt ehrlich zu antworten -- und ab da misst die
Abfrage nur noch sich selbst.
RECHERCHIERT, NICHT AUSGEDACHT. Die sechs Fragen standen schon auf der
richtigen Spur; die Quellen bestaetigen sie und liefern die Einordnung:
"Zu wenig Zeit" und "Streit im Team" sind die zwei meistgenannten
Gruende, warum freiwillige Moderatoren aufhoeren -- noch vor den
Inhalten. Anschluss ans Team ist der staerkste einzelne Schutzfaktor.
Bei bezahlten Moderatoren, auch bei TikTok, sagen ueber 80 % der
Befragten, ihr Arbeitgeber muesse mehr fuer ihre psychische
Gesundheit tun.
https://news.umich.edu/online-content-moderators-likely-to-experience-burnout-u-m-study-suggests/
https://discord.com/safety/understanding-and-avoiding-moderator-burnout
https://restofworld.org/2025/tiktok-moderators-turkey/
https://www.japantimes.co.jp/news/2025/07/04/world/science-health/content-moderators-mental-trauma/
https://arxiv.org/pdf/2502.06985
Die drei wichtigsten stehen als Verweis unter der Analyse. Ein Satz
ueber "die Forschung" ohne Quelle ist eine Behauptung -- und bei diesem
Thema waere das der Moment, an dem man der ganzen Seite nicht mehr
glaubt.
Im Bildschirmfoto gesehen und behoben: Der Satz oben und die
Quellenzeile standen direkt auf der Buehne, also auf einem Foto. Die
Quellenzeile ist die kleinste Schrift der Seite. Dieselbe Antwort wie
heute Mittag bei der Entwicklungskarte -- keine hellere Schrift,
sondern etwas Deckendes darunter.
server/pruef-befinden.mjs 75 Pruefungen (vorher 48), 0 Fehler
Darunter: aus "neu" wird nach der dritten Runde "dauerhaft", jeder
der sechs Befunde ist ein ANDERER (kein Satz, der zu allen passt),
DogFather bekommt seine eigene leere Analyse, und im Protokoll steht
weiterhin nichts davon -- weder die Analyse noch ein Anlass.
pruef-css-klassen, pruef-entwicklung 43 -- 0 Fehler
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
a919bc8720 |
Die Reaktionstafel landete in der Spalte des Namenskreises
Filipe, mit einem Bildschirmfoto: "was ist das den fuer eine scheisse
verbesser das sofort." Darauf ein dreissig Pixel schmaler Streifen,
sechs Zeichen untereinander, ein Rollbalken daneben.
.chat-nachricht ist ein RASTER aus zwei Spalten: dreissig Pixel fuer
den Kreis mit den Initialen, der Rest fuer die Blase. Ein Kind ohne
Spaltenangabe wird automatisch in die naechste freie Zelle gesetzt --
und das ist die Spalte des Kreises. `width: min(330px, 100%)` machte
daraus brav 30 Pixel, und die Zeichen stapelten sich.
UND WARUM ES NIEMANDEM AUFGEFALLEN IST: Bei der EIGENEN Nachricht
entfaellt der Kreis, das Raster hat dann nur eine Spalte, die Tafel
bekam die volle Breite. Die Pruefung vom 14.09. hat genau diesen Fall
gemessen -- nachgemessen heute: selbst=ja, eine Spalte, 611 px. Sie
war gruen, waehrend es bei JEDER fremden Nachricht kaputt war.
Und sie hat ausserdem nur Anwesenheit geprueft ("gibt es die
Elemente", "sucht die Suche") -- nie Geometrie. Eine dreissig Pixel
breite Tafel besteht jede dieser Zeilen.
Jetzt gemessen, und zwar in BEIDEN Faellen: Breite, ob die sechs
Vorschlaege auf EINER Zeile stehen, und ob die Tafel neben dem Kreis
steht statt darunter. Dafuer schreibt der Testraum jetzt auch eine
Nachricht von jemand anderem -- ohne die gab es dort nur eigene.
GEGENPROBE (Reparatur kurz entfernt, gemessen, wieder eingesetzt):
ohne 30 px, 6 Zeilen, +0 px <- genau das Bildschirmfoto
mit 330 px, 1 Zeile, +39 px
server/pruef-chat-aufloesen.mjs 125 Pruefungen (vorher 119)
pruef-chat-optik, pruef-chat, pruef-css-klassen -- alle in Ordnung
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
5707e22b45 |
Die Seite springt nicht mehr -- und die Kachel zaehlt mit
Zwei Meldungen von Filipe, und sie gehoeren zusammen: Er hat beides am
selben Klick gemerkt.
"immer wenn ich auf was drücke dan geht das fenster wieder hoch. die
seite soll sich nicht immer wieder bewegen wenn ich auf was drücke."
"und wieso steht bei vanvan 0 von 28 obwohl ich alle durch habe."
DER SPRUNG: In karte() stand ein scrollIntoView OHNE Bedingung -- und
die Funktion wird an vier Stellen gerufen. Beim Oeffnen einer Person
ist es richtig; nach dem ersten Klick auf einen Punkt, beim Aufklappen
aller Kategorien und nach dem Anlegen eines Schritts ist es falsch. Man
tippt unten auf "Läuft" und steht wieder ganz oben. `springen` ist
jetzt Vorgabe NEIN, und genau eine Stelle sagt ja.
Und selbst ohne Sprung bewegte sich die Seite: Der Neuaufbau aendert
die Hoehe der Karte (eine Zeile "Schritt läuft" kommt dazu), der
Browser behaelt nur die Pixelzahl. Die Hoehe wird deshalb gehalten.
"Alle aufklappen" holt die Karte gar nicht mehr neu -- Aufklappen ist
eine Sache der Anzeige, dafuer braucht es den Server nicht.
DIE NULL: Die Kachel kommt aus /entwicklung/lage -- EINMAL, beim Laden
der Seite. Die Karte holt ihren Stand bei jedem Oeffnen neu. Wer 28
Punkte durchklickt, sieht in der Karte 28 von 28 und auf der Kachel
darueber die Zahl von vorhin. Zwei Wahrheiten auf einem Bildschirm, und
die falsche steht oben.
Die Liste NICHT neu zu holen ist Absicht -- jeder Neuaufbau bewegt die
Seite, und darueber ging die andere Meldung. Stattdessen wandert die
Zahl mit, zusammen mit dem Kopf der Karte und den Koepfen der
Kategorien ("3 / 7", "2 x hakt").
WAS DIE PRUEFUNG AN MIR SELBST GEFUNDEN HAT, dreimal:
- Sie mass nach dem Sprung aufs Aufgabenbrett weiter und verglich
zwei leere Texte. Zwei leere Texte sind gleich und beweisen nichts
-- gemeldet hat es die Zahl in der Bedingung daneben.
- Danach verglich sie Fridas Kachel mit Riekes Karte und meldete
einen Unterschied zwischen zwei verschiedenen Menschen. Beinahe
haette ich einen Fehler gesucht, den es nicht gab.
- Und "wo etwas hakt, steht es im Kopf" waere ab heute auch ueber
vier VERSTECKTEN Hinweisen gruen gewesen: Der Hinweis steht jetzt
immer im Baum, damit er nachgezogen werden kann, ohne den Kopf neu
zu bauen. Jetzt wird auf sichtbar geprueft, nicht auf vorhanden.
server/pruef-schritt.mjs 65 Pruefungen (vorher 57), 0 Fehler
Beide Meldungen werden am selben Klick nachgestellt: Hoehe und Zahl
vorher merken, EINMAL druecken, beides nachsehen. Mit Gegenprobe --
auf eine Person zu druecken DARF springen, sonst hiesse "springt
nicht" nur, dass gar nichts mehr scrollt.
pruef-css-klassen, pruef-entwicklung 43, pruef-neue-seiten 93 -- 0 Fehler
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
45f5a35afe |
Die Kategorien lassen sich auf- und zuklappen
Filipe: "mach das viel geiler alles bitte, ich will auch dass man die
kategorien von den fragen, also die liste auf und zu druecken kann mit
einem button."
ACHTUNDZWANZIG PUNKTE OFFEN SIND RUND ZWEI METER SEITE. Man scrollt,
verliert die Stelle und macht es beim naechsten Mal gar nicht mehr.
- Jede Kategorie hat einen Knopf. Ein Klick wechselt nur DIESEN
Abschnitt; die Karte wird nicht neu geholt, sonst springt die Seite
bei 28 Punkten unter den Fingern weg.
- Der Zustand liegt im Skript, nicht an den Elementen: Nach dem
ersten Klick auf einen Punkt zeichnet die Karte sich neu (erst
danach darf der Stand der anderen ausgeliefert werden). Am Element
klappte dabei alles wieder zu -- mitten in der Arbeit.
- Welche zuerst offen steht, ist die eigentliche Entscheidung: die
erste, in der noch etwas fehlt. Alle zu hiesse jedes Mal suchen,
alle auf waere der Zustand von vorher.
- Der Kopf sagt ZUGEKLAPPT, was drin ist: "2 / 8" und, wenn etwas
hakt, "1 x hakt". Eine zugeklappte Kategorie, die nichts sagt,
klappt man einmal auf und danach nie wieder zu.
- Daneben "Alle aufklappen" / "Alle zuklappen" fuer den Durchgang.
WAS DAS BILDSCHIRMFOTO AUSSERDEM GEZEIGT HAT, und was ich im Code nicht
gesehen haette: Die Karte hatte gar keine eigene Flaeche. "Frida · Modi
· 2 von 28 angesehen" lag quer ueber dem Spicy-Media-Schriftzug, der
Knopf darunter ueber einer Chilischote. Genau der Fall, fuer den die
Kontrastmessung ihren dritten Ausgang hat ("konnte nicht nachsehen") --
ueber einem Foto laesst sich Lesbarkeit nicht ausrechnen. Die Antwort
darauf ist keine hellere Schrift, sondern eine deckende Flaeche.
Und der Hinweis "(bei 'Da hakt es' noetig)" stand bisher 28 Mal da,
auch an Punkten, an denen nichts hakt. Ein Satz, der ueberall steht,
wird nirgends gelesen. Jetzt meldet sich das Feld erst, wenn es
gebraucht wird -- mit Rahmen in derselben Farbe wie die Antwort, und
der Mauszeiger springt hinein.
Beim Nachsehen im Bild gefunden: "2 von 28 angesehen" stand danach
zweimal auf demselben Bildschirm. Zweimal dieselbe Zahl laesst einen
ueberlegen, ob es zwei verschiedene sind.
server/pruef-schritt.mjs 57 Pruefungen (vorher 46), 0 Fehler
Der Knopf wird wirklich gedrueckt -- ein Knopf, den niemand betaetigt
hat, ist kein geprueter Knopf.
pruef-css-klassen, pruef-entwicklung 43, pruef-neue-seiten 93,
pruef-nachwuchs 123 -- alle 0 Fehler
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
418b6211e2 |
Ein Hinweis auf eine Seite, die es hier nicht gibt, ist kein Hinweis
Filipe, mit dem Bildschirmfoto auf crew.: "wieso steht es noch da?" -- "1 Punkt im Start-Check braucht Handlung", mit einem Pfeil auf eine Seite, die seit einer Stunde dort gesperrt ist. MEIN FEHLER VON HEUTE MITTAG. Ich hatte die Seiten gesperrt und ausdruecklich dazugeschrieben "nur die Seiten, nicht die Schnittstellen" -- und dabei uebersehen, dass es eine DRITTE Stelle gibt. Die Hinweise auf der Startseite sind keine Seite und keine Schnittstelle, sondern eine Liste von VERWEISEN. Der Satz im Kommentar klang vollstaendig und war es nicht. Nachgesehen, wer sonst noch Seitenziele ausliefert, statt zu raten: workspace-hinweise.js alle 16 Hinweise, ueber dazu() -> behoben workspace-suche.js jeder Treffer traegt ein Ziel -> behoben workspace-push.js Benachrichtigungen tragen eines -> OFFEN Die ersten beiden bekommen dieselbe Regel wie die Seiten, nicht eine zweite: gehoertAufDieseAdresse(). Was hier keine Seite hat, bekommt hier auch keinen Hinweis und keinen Treffer. Bei der Suche fallen leere Gruppen mit weg (eine Ueberschrift ohne Treffer sieht aus, als waere etwas kaputt) und `gesamt` wird danach abgeleitet, sonst nennt die Zahl Treffer, die gar nicht dastehen. DIE ADRESSE IST IMMER DIE ECHTE: Beide Stellen benutzen `req.sicht || req.person`. Der Sicht-Umschalter aendert, WESSEN Zahlen dastehen -- nicht, auf welcher Wand man steht. Das Haus kommt deshalb aus req.person. PUSH BLEIBT OFFEN, und zwar bewusst: Eine Benachrichtigung entsteht, wenn niemand auf einer Adresse steht. Sie geht an ein GERAET, und das oeffnet die Adresse, als die es installiert wurde. Das ist eine andere Frage als diese hier, und eine halbe Antwort waere schlechter als keine. Gehoert eigens angesehen. Was die Gegenprobe gefunden hat -- an mir selbst, zweimal: Der erste Entwurf der Pruefung legte die Tabelle `startcheck` mit erfundenen Spalten selbst an. Die echte war laengst da, das IF NOT EXISTS schwieg, der INSERT scheiterte. Die Pruefung haette gemeldet, der Hinweis stehe nirgends -- richtig und wertlos. Und "kein Suchtreffer zeigt dorthin" stand ueber NULL Treffern. Jetzt wird erst nachgewiesen, dass die Suche denselben Menschen auf der Agenturadresse wirklich findet (1 Treffer -> profil.html). server/pruef-haus-seiten.mjs 34 Pruefungen (vorher 24), 0 Fehler pruef-sicht, pruef-haus-trennung 66, pruef-betreuung, pruef-manager-sicht 43 -- alle 0 Fehler Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
44a6b7cb83 |
Auf der Team-Adresse gibt es die Agenturseiten nicht
Filipe, mit dem Bildschirmfoto des Start-Checks auf crew.: "das gibt
es in der app nicht, dass ist nur auf der workspace app aber nicht
hier."
ES WAR GROESSER ALS DIESE EINE SEITE. Gemessen, bevor gebaut:
DogFather 12 Seiten ohne Kachel erreichbar, 10 davon Agentur
(Automationen, Content, Scouting, Reports, Zahlen,
Team, Calls, Creator-Profil, Dashboard, Start-Check)
rechte Hand 5, davon 3 Agentur
ein Modi 6, davon 3 Agentur -- auch der Start-Check
Die Haustrennung vom 10.09. entscheidet, WAS jemand sieht: sie filtert
Daten und Kacheln. Sie entschied nie, welche SEITEN es auf einer
Adresse gibt. Die Rechtetafel wiederum kennt nur Rollen, keine
Adressen. Zwischen beidem lag das Loch -- und der Start-Check sagte
dort "Es gibt noch keinen Creator", weil ihm die Haustrennung alle
Daten wegnimmt. Eine Seite, die laedt und leer ist, sieht aus wie ein
Fehler.
DIE REGEL WIRD ABGELEITET, NICHT GEPFLEGT: Welche Seiten zu dieser
Adresse gehoeren, steht schon in den KACHELN, die dieselbe Adresse
dieser Person zeigt. Dazu drei Seiten, die in jedem Haus dazugehoeren
und keine Kachel haben (start, treff-regeln, entwicklung). Sie altert
sicher -- eine neue Agenturseite ist dort automatisch zu, eine neue
Crew-Seite ohne Kachel faellt beim ersten Klick auf.
UND SIE AENDERT KEINE RECHTE. Was jemand DARF, steht weiter allein in
rechte.js; diese Regel beantwortet, ob es das hier ueberhaupt gibt.
Nur die Seiten, nicht die Schnittstellen -- die filtern seit dem 10.09.
selbst ueber person.haus.
DREI PRUEFUNGEN, DIE VORHER SCHON ROT WAREN, nachgemessen gegen den
Stand von heute frueh (
|
||
|
|
c615eab236 |
Entwicklung: aus einer Beobachtung wird ein Schritt
Filipe: "ich will die noch viel besser, perfektionniert, viel geiler und krasser. es soll so einfach wie moeglich sein fuer jeden." Die Karte konnte bisher genau eines: festhalten, dass etwas hakt -- mit Anlass, das war schon richtig. Danach passierte nichts. Beim naechsten Oeffnen stand dieselbe Beobachtung da, nur aelter. Die Quellen zur laufenden Entwicklungsbegleitung sagen zweierlei: weg von der Bewertung, hin zum Gespraech -- und ein Entwicklungsplan wirkt dann, wenn er an einer ECHTEN Aufgabe haengt. Nicht "daran arbeiten wir", sondern etwas mit Verantwortlichem und Frist. Also: An einem Punkt, der hakt, steht ein Knopf. Er legt eine Aufgabe auf dem Brett an -- Titel = der Punkt, der Anlass wandert in die Beschreibung (ohne ihn waere es ein Vorwurf), verantwortlich ist der Mensch selbst, Frist in 14 Tagen. Die Karte zeigt danach, dass ein Schritt laeuft, und verweist auf ihn. UND DANN SCHLIESST SICH DER KREIS: Ist der Schritt erledigt, sagt die Karte das und bittet, noch einmal hinzusehen. Das ist der Rhythmus, den die Quellen meinen -- keine Bewertung einmal im Jahr, sondern eine Runde, die zu Ende geht. Danach geht derselbe Punkt wieder. Die Riegel: nur aus dem EIGENEN "da hakt es" (aus dem eines anderen hiesse, in seinem Namen zu handeln), nur ein offener Schritt je Punkt, nur Leitung, und ein Punkt aus Block 5 sieht von aussen aus wie ein erfundener. Im Protokoll steht, DASS -- nie der Anlass. NEBENBEFUND, beim Uebernehmen der Schreibweise gefunden: aufgaben.html #a<nummer> stand an DREI Stellen im Haus (bereich.js, report.js, jetzt die Entwicklungskarte) und wurde von keiner gelesen -- das Brett kannte nur ?zeigen=, und eine Karte mit ihrer Nummer als Anker gab es nicht. Wer draufdrueckte, landete auf dem Brett und suchte von Hand. Jetzt tragen die Karten ihre Nummer, und das Brett hebt genau die eine hervor. Alle drei Verweise funktionieren damit. Und was die Pruefung an sich selbst gefunden hat: Ich habe die rechte Hand ueber die Adresse von DogFather gerufen. Sie bekam 401 -- und WEIL sie nichts setzen konnte, ging ein zweiter Test aus dem falschen Grund durch. Ein gruener Haken ueber einer Leere. server/pruef-schritt.mjs 46 Pruefungen, 0 Fehler (Port 4421) pruef-uebergang 61, pruef-nachwuchs 123, pruef-entwicklung 43, pruef-uebernahme 39, pruef-aufgabenbrett, pruef-css-klassen -- 0 Fehler Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
b85740dc20 |
Talente: der Uebergang, an dem die meisten verlorengehen
Filipe: "ich will dass du die 2 kategorien perfektionnierst. ich will
die noch viel besser, perfektionniert, viel geiler und krasser. es
soll so einfach wie moeglich sein fuer jeden."
Die AUSWAHL war der gut gebaute Teil dieser Seite: 21 Merkmale, sechs
Warnzeichen, ein Trichter mit Standzeiten. Die Stelle, an der Teams
tatsaechlich Leute verlieren, liegt dahinter -- zwischen dem "ja" und
der ersten echten Schicht. Wer zusagt und danach zwei Wochen nichts
hoert, hat innerlich schon abgesagt, und auf der Karte steht weiter
"angesprochen".
In der Beschreibung der Stufe "Probe" stand seit dem ersten Tag
"fester Buddy". Ein Feld dafuer gab es nicht. Ein Versprechen im Text
ist keine Eigenschaft des Systems -- erst eine Regel, die NEIN sagen
kann, ist eine.
Ab jetzt:
- Auf die Probe kommt niemand ohne einen Namen und ein Datum. Die
Absage sagt, welches von beiden fehlt, und die Karte bleibt dabei
stehen, wo sie war.
- Die Karte zeigt beides: wer einarbeitet, wann die erste Schicht
ist -- in einem Satz, den man laut vorlesen kann ("Erste Schicht
ist morgen."). Ein Termin weiter als 14 Tage ist erlaubt, wird
aber benannt.
- Drei Dinge fuer den ersten Tag stehen auf der Probekarte: was
gilt, was du darfst, wen du fragst. Keine Haken -- der Buddy soll
sie lesen, nicht abarbeiten.
- Buddy und Termin lassen sich spaeter aendern, OHNE die Standzeit
zurueckzusetzen: Sie ist die Auskunft ueber uns, nicht ueber den
Kandidaten.
- Wer geht, ist kein Buddy mehr -- stillgelegt wie geloescht. Die
Karte sagt dann "bitte neu bestimmen" und ist am Rand markiert.
Recherche (Quellen im Kopf von workspace-talent-punkte.js): Discord
nennt Buddy und Mentoring als die beiden Trainingswege, die
funktionieren; aus der Freiwilligenarbeit kommt dieselbe Aussage mit
Zahlen. Und: Am ersten Tag braucht jemand drei Dinge, nicht dreissig.
Was die Pruefung gefunden hat: buddy_weg fragte "buddy_id gesetzt UND
Person weg" -- damit war der zweite Weg blind. Wird ein Mensch
geloescht, setzt ON DELETE SET NULL die Spalte auf NULL, die Karte sah
unauffaellig aus, und eine laufende Probe stand ohne jeden Buddy da.
server/pruef-uebergang.mjs 61 Pruefungen, 0 Fehler (Port 4420)
pruef-nachwuchs 123, pruef-entwicklung 43, pruef-css-klassen -- 0 Fehler
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
d4730deb30 |
Wie geht's dir? bekommt eine eigene Seite
Filipe, zum Bildschirmfoto der Kachel: "ich will dass du diese seite
perfektionnierst den gerade wenn ich drauf druecke geht die
entwicklungsseite auf."
Der Fehler war schlimmer als ein falscher Verweis. Auf der Kachel
steht "die Antworten sieht nur du" -- und sie oeffnete eine Seite
voller Namen und Beobachtungen ueber ANDERE Menschen. Wer ihr glaubt
und drauftippt, sieht im ersten Moment das Gegenteil dessen, was
draufsteht.
Jetzt: eine Seite, ein Zweck.
workspace/befinden.html + assets/js/befinden.js die eigene Seite
server/workspace-befinden.js Rhythmus + Verlauf
entwicklung.html nur noch ein Verweis
Was die Recherche zu Puls-Abfragen ergeben hat (Quellen im Kopf des
Moduls): kurz halten (fuenf bis fuenfzehn Fragen -- sechs bleiben
sechs), WIEDERHOLEN (zweiwoechentlich), und der VERLAUF ist die
Auskunft, nicht der Einzelwert. Bisher beantwortete man die sechs
Fragen einmal, und die Antwort stand fuer immer -- ein Befinden von
vor drei Monaten ist keine Auskunft mehr, sondern ein Andenken.
Der Verlauf gehoert ihr allein: eigene Tabelle, kein von_id, kein
anderer Weg im Haus liest sie. Im Protokoll steht nur, DASS eine
Runde war, nie was darin stand. Die Ampel zaehlt weiterhin nur den
aktuellen Stand und kennt keine Namen.
Zwei Dinge, die erst die Pruefung gefunden hat:
- Wer die neue Seite oeffnete, ohne dass vorher jemand die
Entwicklungsseite besucht hatte, bekam "no such table" und eine
503. entwicklung_stand wird beim ersten Aufruf angelegt, nicht
beim Start. Die Tabelle wird jetzt angefordert, nicht ein zweites
Mal abgeschrieben.
- pruef-entwicklung suchte die Kachel ueber ziel ===
"entwicklung.html" und hat den gemeldeten Fehler damit
mitgetragen. Sie sucht jetzt die eigene Seite -- und prueft
zusaetzlich, dass keine Kachel mehr ersatzweise dorthin fuehrt.
Ausserdem weg: die tote Funktion meins() in entwicklung.js (sie
zeichnete in drei Stellen, die es nicht mehr gibt) und der Titel
"Wie geht's dir?", den diese Seite fuer einen Modi trug -- er
versprach etwas anderes als die Seite zeigt, also derselbe Fehler
wie an der Kachel.
server/pruef-befinden.mjs 48 Pruefungen, 0 Fehler (Port 4419)
pruef-entwicklung 43 (vorher 40), 0 Fehler
pruef-nachwuchs 123, pruef-rechtetafel 19, pruef-rechte-umstellen 46,
pruef-css-klassen -- alle 0 Fehler
Co-Authored-By: Claude Opus 5 <[email protected]>
|