8cde56bd96f4902527d2a0fecbf58f1e0a700cc2
20
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
10e24b0c93 |
Kampagnen-Kachel aus einem TikTok-Link -- Etappe 2 bis 4
Der Auftrag ist damit fertig: Im Agentur-Bereich gibt es ein Feld, in das die ganze Einladungsnachricht eingefuegt wird -- und daraus entsteht eine Agentur-Event-Kachel mit Titel, Zeitraum, Banner, Aufgaben zum Abhaken, Regeln, Ligen und Preisen. Gemessen 38 ms vom Einfuegen bis zur Kachel. ETAPPE 2 -- DER WEG NACH DRAUSSEN (helfer-tiktok.mjs) linkAusText holt die Adresse aus dem Fliesstext, damit niemand sie heraussuchen muss. folgeUmleitung geht Sprung fuer Sprung (redirect "manual", hoechstens fuenf) und schickt JEDE Zwischenadresse durch istTikTok -- bisher folgte holeMitFrist den Umleitungen selbst, und istTikTok hatte nur die EINGABE gesehen. Das ist die einzige Stelle im Haus, an der unser Server eine fremdbestimmte Adresse abruft. holeSeite zieht die Grenze von 3 MB BEIM LESEN, nicht hinterher: Wer arrayBuffer() abwartet und dann die Laenge ansieht, hat die 50 MB schon im Speicher. Frist 12 s statt 8 -- gemessen 750 ms allein beim Ursprungsserver, dazu 1,1 MB Uebertragung. bildAdresseErlaubt kam beim Bauen dazu, nicht aus dem Bauplan: Die Banneradresse steht in der Seite, die TikTok ausliefert, ist also FREMDBESTIMMT. Ohne Schranke wuerde unser Server abrufen, was dort steht -- auch http://127.0.0.1:4100/ oder 169.254.169.254. Elf Faelle durchgemessen. ETAPPE 3 -- DIE ROUTE (workspace-kampagne.js, 5 Spalten, 1 Index) Rechte aus istLeitung, nicht neu erfunden. Bremse 20 je Stunde, VOR dem ersten Abruf nach draussen -- eine Bremse hinter dem Abruf bremst den fremden Server nicht. Dublettenpruefung zweimal: im Code (faengt den Normalfall) und als eindeutiger Index (faengt den Wettlauf zweier gleichzeitiger Aufrufe). 'kampagne_schon_da' zaehlt bei der Bremse MIT (gefunden von der Pruefung): Zuerst zaehlten nur Erfolg und Fehlschlag -- wer denselben Link wieder und wieder einfuegt, bekommt jedes Mal "schon da" und loeste jedes Mal einen Abruf aus, ohne gezaehlt zu werden. Gemessen: 21 Versuche, 0 gebremst. Der Regeltext wird SICHTBAR gekuerzt, an einer Abschnittsgrenze. Gipfelstuermer ergibt 7474 Zeichen, das Feld fasst 6000 (TEXT_MAX), und die PUT-Route lehnt mehr ab: Ungekuerzt entstuende eine Kachel, die DogFather OEFFNEN, aber nicht SPEICHERN kann -- er aendert ein Wort und bekommt eine Fehlermeldung ueber etwas, das er nie getippt hat. Verloren geht nichts: kampagne_daten traegt das Gelesene gegliedert. ETAPPE 4 -- DIE OBERFLAECHE Ein Textbereich (die Einladung ist mehrzeilig), der Knopf gibt sich nach 15 s von selbst frei, die Meldung steht neben dem Feld und nennt den Grund im Klartext. Ob jemand darf, sagt der Server ueber darf_kampagne_einlesen in /api/ich -- keine Rollenliste im Browser. Gemessen auf 412 und 1280 px (bild-kampagne.mjs, 20 Messungen): Knopf 44 px, Kontrast 7,68:1, nichts liegt auf dem Knopf, kein Ueberlauf, keine Bewegung bei prefers-reduced-motion. Die Antwortzeile steht auf .9rem statt der hausweiten .76rem -- dort erscheint, was der Server geantwortet hat, und eine Fehlermeldung in 12 px liest niemand zweimal. Die hausweite Klasse bleibt unberuehrt. VIERZEHN SABOTAGEN, VIERZEHN TREFFER Sieben an kampagne-lesen.mjs (Etappe 1) und sieben an Route und Weg: Umleitung ungeprueft folgen, Tag nach Serverzeit, Dublettenpruefung weglassen, dem fremden Server den Bildtyp glauben, Bremse abschalten, Bremse wieder blind fuer Dubletten, jeden einlesen lassen. Jede wurde bemerkt, jede im erwarteten Abschnitt. EINE BLIEB ZUERST BLIND, und das war lehrreich: Nimmt man die Dublettenpruefung aus dem Code, faengt der INDEX es auf -- die Antwort ist dieselbe, die Pruefung blieb gruen. Kein Schaden, aber ein blinder Fleck. Jetzt unterscheidet die Pruefung am Protokolltext, WELCHE der beiden Sicherungen gegriffen hat. VIER VORBESTEHENDE BEFUNDE MIT ERLEDIGT willkommen.html hatte kein theme-color, kein Manifest, kein apple-touch-icon. Drei Zeilen sind billiger und haltbarer als eine Ausnahme in der Pruefung. workspace-anleitung.js bildete den Tag "ab wann geht mehr" aus UTC. Wer zwischen 00:00 und 02:00 beitritt, bekam einen Termin, der einen Tag zu frueh war. workspace.js hat dafuer jetzt tagLokalVon(zeitpunkt, versatz) -- und tagLokal ist nur noch ein Aufruf davon. Es gibt also WENIGER Rechenwege als vorher, nicht mehr. pruef-anleitung.mjs legte Testdaten auf den UTC-Tag und waere zwischen 00:00 und 02:00 rot gewesen, ohne dass etwas kaputt ist. mess-anleitung-crew.mjs rechnete seinen zweiten Port als PORT + 1. Das sieht aus wie eine Ableitung und ist keine: portNummer ueberspringt gesperrte Nummern, und dann gehoert PORT + 1 der naechsten DATEI. pruef-struktur ist damit zum ersten Mal vollstaendig gruen. GEPRUEFT (alle gruen, keine Zahl gesunken) pruef-kampagne 96 (neu) · pruef-kampagne-lesen 108 · pruef-video 74 · pruef-eventkarte 94 · pruef-agentur 62 · pruef-anleitung 196 · pruef-portnummern 41 (war 40 mit einem Fehler) · pruef-struktur, pruef-zeichen 8, pruef-ports 10, pruef-buehnen-fest 13, pruef-css-klassen 39, pruef-haus-trennung 107, pruef-lesbarkeit, pruef-tippziele, pruef-deutsche-texte 12, pruef-formulare, pruef-fingermass 5, pruef-workspace-seiten, pruef-tempo-workspace Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
3f55e63703 |
Anleitung: Tippziele auf Hausgroesse -- und ein Fehlalarm entschaerft
pruef-handy-teamdogi (8 rot -> 17 gruen) und pruef-handy (schon gruen,
192 statt 186 Pruefungen).
ECHT WAR: Auf anleitung.html und willkommen.html waren fuenf Tippziele
40 statt 44 px hoch -- Filter, "Hingehen", "Nochmal ansehen", Pflege-
und Fehlend-Knoepfe. Daneben stand der Satz "40 Pixel hoch: Die
Hausgroesse fuer etwas, das ein Daumen trifft". Nachgezaehlt: 98 Stellen
im Haus nehmen 44, 25 nehmen 40. Ein Kommentar, der eine Zahl zur Regel
erklaert, macht sie nicht dazu.
FEHLALARM WAR: "LIEGT UEBEREINANDER -- a.an-karte__weg ⨯ a.an-karte__weg",
vier Rollen lang, auf beiden Seiten. Die Messung stimmte (93x18 px),
sichtbar war davon nichts.
Der Weg dorthin hat gedauert, und das lag an der Meldung: "93x18px"
sagt, DASS sich zwei Rechtecke schneiden, und schickt einen suchen.
Also sagt sie jetzt auch, WO beide liegen und aus welchen Vorfahren sie
kommen -- und damit war es in einem Lauf klar:
a.an-karte__weg in an-karte@4510+375 < an-stufe__gitter@4165+2256
< an-stufe__falte@4065+55
Der Abschnitt ist 55 px hoch und traegt `overflow: hidden`; sein Gitter
faengt 45 px UNTER dessen Unterkante an. Der Browser schneidet alles
davon weg.
`sichtbar()` fragte bis heute nur das Element selbst: Groesse,
visibility, display, Deckkraft. Alle vier koennen tadellos sein und das
Ding trotzdem unerreichbar. Jetzt kommt `imAusschnitt()` dazu:
Schneidet ein Vorfahr mit `overflow: hidden` es vollstaendig weg, zaehlt
es nicht -- fuer alle drei Messungen dieser Datei (zu klein, Ueberstand,
Ueberdeckung).
ZWEI VERSUCHE DAVOR WAREN FALSCH, beide an mir: Erst fragte ich nach
`details:not([open])` -- die Abschnitte tragen `[open]`, also griff es
nicht. Dann setzte ich die Rechnung in die falsche Filterkette (die fuer
zu kleine Ziele statt die fuer `bedienbar`). Geprueft wird jetzt die
WIRKUNG und nicht die Bauform: Rechtecke veralten nicht mit der
Bauweise.
Die eingebauten Gegenproben der Datei laufen weiter an (ein zu breites
Element und ein zu kleiner Knopf werden gemeldet) -- der Filter blendet
also nichts Echtes aus.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
da7508b6ce |
Vier rote Pruefungen -- drei Phantome und ein echtes Gewicht
Weiter durch die rote Liste. Drei der vier Befunde zeigten auf
gesunden Code; die Pruefungen selbst waren seit einem Umbau nicht
nachgezogen worden.
pruef-schritt (2 rot -> 71 gruen statt 47)
Meldete "1 von 6 Kategorien". Die Karte geht seit dem 01.10.2026
gefiltert auf ("zugetragen"), Bloecke ohne solche Punkte werden gar
nicht gezeichnet. Die Pruefung zaehlte danach alle. Schlimmer: Weil
dann kein Block mehr zugeklappt war, lief der Klick auf einen
zugeklappten 30 Sekunden in die Frist und riss den Lauf mit -- 24 von
71 Pruefungen liefen nie. Jetzt wird erst die Vorgabe geprueft (sie
ist eine Zusage), dann auf "Alle" gestellt.
pruef-glocke (1 rot -> 34 gruen)
Meldete "auf der Anmeldeseite steht der Knopf". Gemessen landete sie
auf start.html: Dieselbe Seite war eine Zeile zuvor angemeldet durch
zwanzig Arbeitsseiten gelaufen, und angemeldet fuehrt /workspace/
nicht zur Wand. Jetzt eigener Kontext ohne Keks -- und davor die
Zeile, dass die Wand wirklich erreicht wurde.
pruef-zeichen (1 rot -> 8 gruen)
Meldete content: "·" als Kodierungstruemmer. Die Bytes sind C2 B7,
also korrektes UTF-8; der Mittelpunkt ist ein begruendeter Trennpunkt
(seit 03.10.). Die Regel stammt aus einer Zeit, in der sie selbst
festhielt: "KEINE einzige benutzt ein Zeichen aus diesem Block."
Jetzt eine benannte Ausnahme MIT Veraltungsschutz: Jedes Zeichen
darin muss wirklich vorkommen, sonst wird die Ausnahme rot.
pruef-tempo-workspace (1 rot -> 9 gruen) -- DER ECHTE BEFUND
uebersicht.html 959 KB, bereich.html?b=live 1094 KB bei einer Grenze
von 900. Die Pruefung sagt jetzt auch, WORAN es liegt, und die
Antwort war eindeutig: ZWEI Buehnenbilder auf einer Seite, die eines
zeigt (281 KB studio + 262 KB portal).
Ursache: start.css traegt an body.start::before einen Rueckfall
(studio), und kopf.js setzt `data-buehne` erst, wenn die Seite steht.
Bis dahin ist der Rueckfall geholt -- auf 43 von 45 Seiten.
Jetzt steht die Szene fest im <body>, erzeugt aus bereiche.js
(tools/buehne-festschreiben.mjs, 20 Seiten). bereich.html bedient
fuenf Bretter und kann das nicht; sie bekommt ein kleines Skript
gleich hinter <body>, das die Szene aus `?b=` setzt, bevor gezeichnet
wird. Gemessen: 1094 -> 879 KB, und die Grenze haelt wieder.
DIE ZUORDNUNG STEHT DAMIT AN ZWEI STELLEN. Das ist nur vertretbar,
weil sie nicht auseinanderlaufen kann: pruef-buehnen-fest.mjs (neu,
13 Pruefungen) haelt HTML gegen bereiche.js, prueft die Lage des
Skripts und dass jede genannte Szene eine Regel hat.
Dabei gefunden und berichtigt -- zweimal an mir selbst: Der erste
Entwurf verglich Szenen mit Dateinamen und meldete teamlage.html
("eingang") als Fehler; die Szene gibt es, ihre Regel zeigt nur auf
ein crew-Bild. Und der Lage-Anker suchte `data-buehne`, das Skript
schreibt `dataset.buehne` -- indexOf gab -1, die Rechnung wurde
negativ und meldete "-2276 Zeichen dahinter".
Gegenproben gefahren: Szene verschoben -> rot mit Abstand; Ausnahme
verwaist -> rot; erfundene Szene -> erkannt.
Dazu gruen: css-klassen, workspace-seiten, neue-seiten, haus-trennung,
kopfleiste-farbe.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
52844a4814 |
Meine eigenen Kommentare haben den Zugang erklaert
Beim Nachsehen auf der echten Adresse, ob der Rollenname wirklich
draussen ist: Es standen noch Treffer in den ausgelieferten Dateien --
alle in KOMMENTAREN. `pruef-modi-wortleck` sieht die nicht, sie blendet
Kommentare vor der Suche aus (helfer-ohne-kommentar).
Ausgeliefert werden sie trotzdem. Und drei davon waren meine eigenen,
eine Stunde alt: Sie erklaerten woertlich, dass es eine "verborgene
Rolle" gibt und dass eine Pruefung namens `pruef-modi-wortleck` darueber
wacht. Wer den Quelltext aufmacht, erfaehrt daraus mehr als aus dem
Namen, den ich gerade entfernt hatte.
Die Begruendung gehoert in server/workspace-reaktion.js -- die Datei
laedt kein Browser herunter. In den drei ausgelieferten Dateien steht
jetzt nur noch, WAS gilt (der Server schickt das Abzeichen) und wo die
Begruendung steht.
NICHT ANGEFASST, weil es Filipes Entscheidung ist: In meldung.js und
reaktion.css stehen seit laengerem woertliche Zitate von ihm, die das
Modi-Team nennen ("die modis, linke hand und rechte hand soll im chat
extra aussehen"). Sie betreffen das Aussehen, nicht den Zugang, und sie
sind aelter als heute. Ob die Wortleck-Pruefung kuenftig auch Kommentare
durchsuchen soll, ist eine Frage an ihn -- sie wuerde mehrere dieser
Stellen rot machen.
pruef-modi-wortleck 8, pruef-reaktion 423, pruef-css-klassen 37 -- alle
gruen.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
8f1ab790d1 |
Der verborgene Zugang stand im Quelltext UND in den Daten
Angefangen hat es bei einem roten Lauf aus dem Nachtlauf, nicht bei
einer Suche: `pruef-modi-wortleck` meldete drei Fundstellen des
Rollennamens in Dateien, die JEDER ausgeliefert bekommt.
assets/css/reaktion.css .beitrag__rolle[data-rolle="modi"]
assets/js/meldung.js "... und die Modis."
assets/js/reaktion.js modi: ['Modi', 'modi']
BEIM NACHSEHEN, WIE DER NAME DORTHIN KAM, kam das Groessere heraus:
`/workspace/api/reaktion/chat` waehlte `rolle` aus der Tabelle und gab
sie unveraendert heraus. Eine Chatnachricht eines Modis trug damit
`"rolle":"modi"` an JEDEN im Saal -- auch an Creator und Scouts, vor
denen der Zugang verborgen sein soll. Ein Blick in die Netzwerkspur
genuegte, im Quelltext war nichts zu sehen.
Die Wortleck-Pruefung KANN das nicht finden: Sie durchsucht Dateien,
nicht Antworten. Und `pruef-modi-verborgen`, die Nutzlasten prueft,
kannte den Live-Chat nicht (0 Treffer auf "reaktion/chat").
GELOEST, INDEM DIE OBERFLAECHE DIE ROLLE NICHT MEHR BRAUCHT. Sie tat
damit genau zwei Dinge: ein Abzeichen malen und "gehoert zum Team"
setzen. Beides entscheidet jetzt der Server (CHAT_ABZEICHEN) und
schickt Wort plus Farbkennung fertig mit -- an EINER Stelle, benutzt
von beiden Ausgaengen (Liste und Ereignisstrom).
DAS WORT "Modi" GEHT WEITER MIT, und das ist kein Rest: Es steht
sichtbar auf dem Abzeichen, weil Filipe das ausdruecklich wollte
("die modis, linke hand und rechte hand soll im chat extra aussehen"),
und das Modi-Team ist oeffentlich. Verborgen ist nicht das TEAM,
sondern dass es einen eigenen ZUGANG gibt -- und der Schluessel `modi`
verlaesst das Haus jetzt nicht mehr. Die Farbkennung heisst
`moderation` und benennt die Aufgabe statt des Zugangs.
NEUE MESSUNG (pruef-modi-verborgen, Abschnitt 8b): Ein Modi schreibt
im Saal, ein Creator ruft ab, und der ROHE Antworttext darf den
Schluessel nicht enthalten. Case-SENSITIV und mit Begruendung: Der
Schluessel ist im ganzen Haus klein, das Anzeigewort gross. Dazu zwei
Gegenproben (die alte Antwort MUSS erkannt werden, das Anzeigewort
darf NICHT anschlagen) und eine Zeile, die verhindert, dass der
bequemste Weg zum gruenen Haken -- das Abzeichen weglassen -- unbemerkt
bleibt.
UND EIN STILLER AUSSETZER REPARIERT. pruef-reaktion las die Abzeichen
per Suchmuster aus reaktion.js und lief ueber die GEFUNDENEN Treffer.
Nach dem Umzug fand sie nichts -- und ZWOELF Pruefungen fielen lautlos
weg (421 -> 409), bei nur einer roten Zeile. Genau der Fall aus dem
Projektgedaechtnis vom 28.08.2026. Die Schleife laeuft jetzt ueber die
ERWARTETEN vier Rollen: Fehlt eine, wird ihre Zeile rot und die Anzahl
bleibt gleich. Gegenprobe gefahren -- Abzeichen entfernt: 423 Pruefungen
wie vorher, vier rot, mit "fehlt fuer modi" als Beleg.
pruef-modi-wortleck 8 gruen (vorher 1 rot), pruef-modi-verborgen
87 -> 101 gruen, pruef-reaktion 421 -> 423 gruen. Dazu gruen:
css-klassen, deutsche-texte, haus-trennung.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
da557b5288 |
Agentur-Events: zwei Karten nebeneinander, Banner in der Mitte
Filipe: "ich will dass die kachel an sich noch viel geiler und krass
aussieht. die soll aber auch garnicht so breit sein. es sollen immer
zwei neben einander stehen können und wenn man auf banner anzeigen
drückt soll das banner schön in der mitte sein."
GEMESSEN VORHER: Karte 1160 px breit, eine je Reihe (#liste stand auf
display: block). --ton: #cace02 an ALLEN drei Zustaenden -- ein seit
drei Tagen vorbeigelaufenes Event leuchtete wie eines, das laeuft. Und
border-left-width: 0px, border-radius: 0px: Die Dringlichkeitskante aus
bereich.css kommt seit dem Baukasten nicht mehr an (module.css setzt
border: 0, gleich stark und spaeter im Ladeweg).
ZWEI NEBENEINANDER -- die Regel SIEBT, statt zu schalten. #liste traegt
das Raster immer; alles, was keine Eventkarte ist, nimmt mit
`grid-column: 1 / -1` die ganze Breite. In den sieben anderen Bereichen
aendert sich damit kein Pixel. Gemessen: Eventkarten 573 px, die
Schulung daneben weiterhin 1160 px; auf 412 px steht wieder eine je
Reihe (379 px, kein seitliches Schieben).
DAS BANNER KOMMT IN DIE MITTE -- und zwar in der BILDSCHAU, die es seit
dem 25.09.2026 gibt und die hier nur nie angeschlossen war. Sie wurde
damals fuer genau diese Beschwerde gebaut ("wenn man bilder aufmacht,
will ich dass die in der mitte sind"). Ihr Stil ist dafuer aus chat.css
in eine eigene bildschau.css gezogen: bereich.html laedt chat.css nicht,
und 5815 Zeilen Chat auf einer Seite ohne Chat waere der falsche Preis.
Gemessen: 1178x662 px, Mitte 640 gegen 640, Escape schliesst, die Seite
springt nicht weg. Der Weg in den Tab bleibt (mittlere Maustaste, Strg).
ZWEI FEHLER, DIE DIE SCHMALERE KARTE ERST SICHTBAR GEMACHT HAT:
1. `justify-content: flex-end` an der Buehne laesst den Inhalt nach
OBEN herauslaufen, wenn der Platz nicht reicht -- und die Karte hat
ein clip-path, also ist er dann weg. Gemessen: Das Etikett
"Agentur-Events" sass auf einer Karte bei y = -28 px. Die alte
Messung fragte nach Farbe, Groesse, Sichtbarkeit und Deckkraft und
bekam auf alles die richtige Antwort -- nach der LAGE hatte sie nie
gefragt. Jetzt `margin-top: auto`, das kann nicht herauslaufen.
2. Die Buehnenhoehe kam aus der BREITE (aspect-ratio 2.6/1, bei
"vorbei" 3.6/1 mit max-height 190px). Bei halber Kartenbreite
bricht der Titel auf mehr Zeilen um: Inhalt 231 px, Kasten 220 px
-- der Zeitbalken lag auf dem Satz darunter. Jetzt eine
Mindesthoehe, der Rest kommt vom Inhalt. Das Banner liegt absolut
darin und fuellt jede Hoehe; die Rechnung brauchte es nie.
AUSSERDEM: Jeder Zustand traegt seinen Ton (laeuft = Agenturgelb,
kommt = kuehl, vorbei = stumpf) und faerbt damit Eckwinkel, Kantenlicht
und Zeitbalken mit. Die Farbkante der Karte liegt im Hintergrund statt
auf einem Pseudoelement (beide gehoeren dem Baukasten), 6 px, weil das
Kantenlicht 1,6 px verdeckt. Der Aufgabenzaehler ist eine Pille statt
grauer Text, gleich hohe Karten mit dem Fuss unten.
pruef-eventkarte: 77 -> 94 Pruefungen, gruen. Zwei Gegenproben gefahren
(Ueberlaufschutz entfernt -> rot mit "ev-buehne__inhalt oben -28px";
die neue Lagepruefung nennt den Schuldigen selbst). Neu darin: nichts
darf aus einer Karte herausragen (132 Teile), der Inhalt muss in jede
Buehne passen, und auf 412 px steht eine Karte je Reihe.
Dazu gruen: chat-anhaenge (168, die Bildschau nach dem Umzug),
chat-optik, chat, css-klassen, haus-trennung, lesbarkeit, eintrag-bild,
tippziele, fingermass, leerzustand.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
aaee74818f |
Manager-Ziele: mehr als das Ziel wird jetzt auch gezaehlt
Filipe: "soll jeder die möglichkeit auch mehr wie das ziel einzutragen.
die sollen auch gezählt werden. die zahl die die leute erreichen sollen
sollen aber während dems immer gleich bleiben. mit der möglichkeit die
grenzen zu übergehen."
ZUERST GEMESSEN, DANN GEBAUT -- und die Messung hat die Aufgabe
verschoben: Eintragen ueber dem Ziel ging schon immer. Fuenf von fuenf
Versuchen wurden angenommen, es gab nie eine Sperre. Was fehlte, war
das ZAEHLEN.
Gemessen am Beispiel eines Scouts: creator 2/3, meeting 1/2,
schulung 1/2, werbung 2/1. Er hatte sechs Dinge getan, die Seite sagte
"5 von 8". Das Werbe-Video ueber dem Ziel fiel aus der Summe heraus,
weil sie je Aufgabe bei Math.min(zahl, ziel) gedeckelt war -- ohne
Hinweis, und niemand konnte es sehen.
ZWEI ZAHLEN STATT EINER, weil es zwei Fragen sind:
erledigt Wie viel von der PFLICHT ist erfuellt? Je Aufgabe
hoechstens ihr Ziel. Daraus kommt der Ring.
getan Wie viel wurde WIRKLICH getan? Ohne Deckel.
`erledigt` wurde bewusst NICHT entdeckelt: Wer zehn Werbevideos und
sonst nichts macht, haette sonst 10 von 8 und einen vollen Ring bei
drei unberuehrten Aufgaben. Das waere keine Grosszuegigkeit, sondern
eine falsche Auskunft. Gemessen bleibt der Ring bei 75 %, und zwei
Aufgaben bleiben offen.
DAS ZIEL BLEIBT STEHEN -- die naheliegende falsche Loesung waere, es
mitwachsen zu lassen; dann haette nie jemand mehr als sein Ziel.
Nachgemessen: 2 -> 2, waehrend die Zahl von 1 auf 6 stieg.
AUF DEM BILDSCHIRM: "+N" als eigenes Zeichen neben der Zahl, nicht in
ihr ("5/2 +3" statt "5/2"), im Ton von "erledigt" statt in einem
Warnton -- mehr zu tun als verlangt ist nichts, wovor man warnt. Im
Ring ein kleines Plus unter der Pflichtzahl, im Kopf "4 von 8 erledigt
· 2 zusaetzlich". Der Balken waechst NICHT ueber seinen Kasten hinaus
(bei 10 von 1 waeren alle anderen Aufgaben optisch platt), sondern
bekommt eine hellere Kappe. Auch im Verlauf und in der Teamtabelle.
Die Ausgabedatei bekommt "Gesamt getan" NEBEN "Gesamt erledigt" --
eine Zahl, die nur auf dem Bildschirm steht, fehlt in der Liste, die
am Monatsende weitergereicht wird.
pruef-manager-ziele: 216 -> 229 Pruefungen, gruen. Gegenprobe gefahren
(getan wieder gedeckelt -> 2 rot, mit "6 = 11" als Beleg). Beim ersten
Anlauf der Messung lagen alle fuenf Testdaten in der Zukunft; "0 von 5
angenommen" sah nach einer Sperre aus und war der Kalender -- steht
jetzt als Warnung in der Pruefung.
Nebenbei: mess-manager-ziele schrieb seine Bilder in den Projektstamm
statt nach server/ (relativer Pfad). Korrigiert, Stamm aufgeraeumt.
Dazu gruen: xlsx, css-klassen, lesbarkeit, tippziele, fingermass,
haus-trennung, deutsche-texte.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
ea4078740e |
Pipeline: die Stufenfarbe kommt endlich auf dem Bildschirm an
Filipe: "zuerst will ich dass du die kategorien und die kacheln viel
krasser geiler machst."
Beim Nachmessen stand fest, warum die Pipeline flach aussah: Drei
Regeln in scouting.css kamen gar nicht an, seit es den Baukasten
(module.css) gibt -- und module.css NENNT zwei davon im eigenen Text.
--ton war an JEDER Karte #db4b66, dem Rot der Seite.
Daraus nimmt der Baukasten Kantenlicht, die
drei Eckwinkel und das Licht beim Zeigen. Sechs
Stufenfarben in der Datei, eine auf dem Schirm.
.kk::before (3px) gemessen 560px breit -- das ist das Kantenlicht
des Baukastens, das dasselbe Pseudoelement
belegt. Die farbige Pipeline-Kante gab es nicht.
.kk { border } /:hover module.css setzt `border: 0`, gleich stark und
spaeter im Ladeweg.
Das Haus hatte die Lehre schon: aufgaben.css setzt `--ton` an fuenf
Spalten mit genau dieser Begruendung. Hierher uebertragen hat es nie
jemand.
WAS JETZT ANDERS IST
* Jede Stufe traegt ihren Ton -- Eckwinkel, Kantenlicht und Hover
laufen damit von kuehl (neu entdeckt) zu gruen (uebergeben).
* Die Farbkante der Karte liegt im HINTERGRUND statt auf einem
Pseudoelement (beide gehoeren dem Baukasten). 6px, weil das
Kantenlicht 1,6px davon verdeckt -- bei 3px blieb nichts Sichtbares.
* Etappennummern 01-05, abgeleitet aus WEITER statt daneben
geschrieben. "Abgelehnt" bekommt keine: keine Etappe nach vorn.
* Stufentitel in der eigenen Farbe (vorher einheitlich --akzent),
mit Weiss aufgehellt -- 4,3:1 waeren bei fett-versal 12,5px zu wenig.
* Faellig-Saum als inset-Schatten wie bei .kachel[data-warn], mit
(0,3,0) gegen die Modulliste; vorher border-color und damit wirkungslos.
* Karte: Plattform als Schild, Handle in gleichbreiter Schrift,
Haarlinie zwischen "wer" und "lohnt sich", Reichweite deutlicher.
DAS MESSGERAET, DAS GEFEHLT HAT: module.css notiert "NICHT
MITREPARIERT, weil es kein Messgeraet dafuer gibt ... Hover laesst sich
nicht pruefen." Doch -- pruef-scouting-felder faehrt den Zeiger jetzt
auf die Karte und liest nach (6px -> 9px).
DREI FUNDE IN DEN EIGENEN WERKZEUGEN, alle von Hauswachen oder der
eigenen Messung:
* bild-arten hatte keine Notbremse; page.hover() blieb haengen und
liess beim Abbrechen einen Server auf Port 4336 zurueck. Jetzt
notbremse(240s) und mouse.move statt hover().
* color-mix(in srgb, var(--rand)) -- mit EINER Farbe ungueltig; der
ganze Verlauf fiel aus, uebrig blieb Abstand ohne Linie.
* Im Pruefausdruck steckte ein Backspace-Byte (0x08), das die
Kommandozeile aus einer Zeichenfolge gemacht hatte. Sah im
Quelltext richtig aus, traf nie. Jetzt startsWith.
pruef-scouting-felder: 64 -> 72 Pruefungen, gruen. Gegenprobe gefahren
(einer Stufe den Ton genommen -> rot, mit #db4b66 als Beleg). Statt des
226-Sekunden-Hauslaufs pruef-handy misst die Datei jetzt selbst auf
320px: 97 Teile, keines ueber dem Rand, kein seitliches Schieben.
Dazu gruen: css-klassen, lesbarkeit, tippziele, fingermass,
haus-trennung, leerzustand, deutsche-texte, zeichen (der eine Rest dort
ist bereich.css und aelter).
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
f18ab32f8c |
Scouting: links die normalen Creator, rechts die Premium
Filipe: "ich will dass es da in der mitte eine trennung gibt. links sollen normale creator sein und rechts premium creator. es gibt bei tiktok naemlich diese zwei optionen von streamer ... auch dass wenn man die eintraegt soll man aussuchen koennen." Jede Stufe der Pipeline hat jetzt zwei Spalten mit einer Trennlinie dazwischen. Die Trennung sitzt IN der Stufe, nicht einmal ueber der ganzen Seite: Zwei komplette Pipelines nebeneinander haetten jede Stufenueberschrift verdoppelt und die beiden Seiten waeren nie auf gleicher Hoehe gewesen. GENAU ZWEI WERTE, kein "weiss nicht". Anders als bei `netzwerk`, wo "noch nicht gefragt" eine eigene gueltige Antwort ist: Dort wird eine fremde Tatsache festgehalten, hier eine eigene Absicht -- und deren Normalfall ist "normal". NULL wird als "normal" gelesen, der eine vorhandene Lead steht damit links, ohne dass ihm etwas unterstellt wird. DIE ART UEBERLEBT DIE UEBERGABE. Beim Creator-Onboarding wandert sie auf die Person und ist in der Personenverwaltung aenderbar. Ohne das endet die Angabe genau dort, wo sie zum ersten Mal vertraglich zaehlt. Die Schwelle misst den STUFENKASTEN (@container), nicht das Fenster -- der Fehler vom 06.09.2026 im selben Haus. Auf dem Handy liegen die Spalten untereinander, die senkrechte Linie faellt weg. ZWEI FUNDE BEIM BAUEN, beide von Hauswachen: * `pruef-fingermass` fand, dass meine neue Handy-Messung mit `setViewportSize` statt eigenem Kontext lief -- ohne `hasTouch` greift keine einzige Regel aus `@media (pointer: coarse)`. * Die Klassen hiessen zuerst `.spalte__*` -- die gehoeren `aufgaben.css`, und scouting.html laedt die VOR scouting.css. `margin-left: auto` aus dem Aufgabenbrett zog die Zahl 560 px von ihrem Wort weg, ohne dass eine Pruefung rot wurde. Jetzt `.art-spalte__*`, und der Abstand wird gemessen. pruef-scouting-felder: 28 -> 64 Pruefungen, gruen. Zwei Gegenproben gefahren (Trennung deaktiviert, Spaltenreihenfolge gedreht) -- beide schlugen an. Dazu gruen: haus-trennung, css-klassen, personen-liste, personen-kachel, hand-personen, schranke, formulare, lesbarkeit, agentur, deutsche-texte, tippziele, leerzustand, fingermass. Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
c4bdc1c4c2 |
Kapitel 04: der Knopf heisst "Hingehen" -- und das Datum war gar keins
Zwei kleine Dinge aus dem Bauplan, Kapitel 04. Das zweite war ein
echter Fehler, und er war auf dem Weg nach draussen.
"AKTUALISIERT AM" -- UND DANN STUENDE DA EIN ZEITSTEMPEL
`datumKurz` prueft mit einem Ausdruck, der ein `$` am Ende hatte. Die
Stufenkarte schickt einen reinen Tag ("2026-10-13"), die Karte aber
einen ganzen Zeitstempel ("2026-10-06T18:22:31.123Z", aus
`new Date().toISOString()` -- siehe anleitung-tabellen.js und
workspace-anleitung.js). Die zweite Form bestand die Pruefung nicht
und waere UNVERAENDERT durchgereicht worden: Auf der Karte haette
woertlich "aktualisiert am 2026-10-06T18:22:31.123Z" gestanden. Kein
Fehler, kein Absturz, keine rote Meldung -- genau die Sorte Schaden,
die `node --check` nicht sehen kann, und die hier auch niemand
gesehen haette, weil die Zeile nur in der Pflege steht.
Gefunden hat es keine Eingebung, sondern das Nachsehen, WAS der
Server wirklich schickt. Die Pruefung fragt ihn jetzt selbst und
rechnet nicht gegen eine Erinnerung.
"HINGEHEN" STATT "ZUR KACHEL"
So steht es im Plan, und es ist die Sprache der Seite: Sie duzt,
begruesst mit Namen und sagt "Schoen, dass du da bist". "Kachel" ist
das Wort, mit dem wir INTERN ueber die Dinge reden; wer neu ist, hat
es noch nie gehoert.
"AKTUALISIERT AM" STEHT NUR IN DER PFLEGE -- eine Entscheidung, die
der Plan so nicht trifft. Fuer ein Mitglied beantwortet das Datum
keine Frage; DASS sich etwas geaendert hat, sagt ihm die Marke "Neu"
daneben, die von selbst wieder verschwindet. Fuer DogFather
beantwortet es eine sehr konkrete: "Habe ich die schon angefasst?"
Eine Zeile, die auf jeder der 34 Karten steht und niemanden angeht,
zieht den Blick von den drei Zeilen darueber weg. .an-karte__stand
ist deshalb klein und still -- --text-still, dieselbe Stimme wie die
Schilder "Wozu"/"Merke", deren Kontrast auf dieser Flaeche schon
geprueft ist. Keine neue, noch blassere Farbe, die niemand bemerkt,
bis sie nicht mehr lesbar ist.
AUSSERDEM: pruef-community-sicht war rot, und zwar zu Recht.
Die handgefuehrte Liste COMMUNITY_SEITEN kannte die neue
Einweisungsseite nicht und meldete "ZU VIEL: anleitung.html". Das ist
kein Mangel der Liste, sondern ihr Zweck -- sie nennt die
ueberzaehlige Seite selbst. anleitung.html ist jetzt eingetragen, mit
Begruendung, und bei willkommen.html steht dran, dass sie nur noch
weiterleitet. 13 -> 14 Seiten, gruen.
GEPRUEFT (pruef-anleitung 188 -> 196):
- der Weg-Knopf heisst "Hingehen" (1x), "Zur Kachel" nirgends (0x)
- "aktualisiert am" haengt an der Pflege (1x), nicht an jeder Karte
- .an-karte__stand ist wirklich gestaltet
- der Server schickt "geaendert" als ganzen Zeitstempel (14 von 14)
- ...und die Karte macht daraus einen lesbaren Tag (14 von 14)
- der reine Tag der Stufenkarte bleibt richtig (13.10.2026)
- Gegenprobe: was kein Datum ist, wird auch zu keinem gemacht
Die Rechenvorschrift wird dafuer AUSGEFUEHRT und nicht mit einem
Muster angesehen -- ein Muster waere eine zweite, ungenaue
Nachbildung. Und die Voraussetzung ("der Server schickt wirklich
einen Zeitstempel") wird gemessen, nicht angenommen; ohne sie waere
die Zeile darunter eine Rechnung gegen eine Erinnerung, und die
altert.
GEGENPROBE GEFAHREN: `$` wieder eingebaut -> "...und die Karte macht
daraus einen lesbaren Tag (0 von 14)", EXIT=1, und die Zahl bleibt
196. Eine Pruefung, die immer bestaetigt, bestaetigt nichts.
Dazu gruen, gezielt und nicht als Gesamtlauf:
pruef-css-klassen 4698 Klassenverwendungen, die neue Klasse ist
gestaltet; 42 Stellen unter 11,5 px wie
bisher (die neue Zeile ist 12,16 px)
pruef-community-sicht 10 Pruefungen, 0 Fehler
pruef-haus-trennung 107 geprueft, 0 Fehler -- das Agenturhaus
bleibt von der geaenderten Client-Datei
unberuehrt
pruef-deutsche-texte 12 Pruefungen, 0 Fehler
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
b885b54628 |
DogFather sah beim Oeffnen der Kachel nur einen Satz
Abnahme in allen fuenf Rollen, so wie der Bauplan sie verlangt --
und die fuenfte hat den Befund gebracht.
Die Seite hat genau zwei Ausgaenge: `zeigen()` (es gibt eine Fassung)
und `ohneFassung()` (es gibt keine). Die Pflegeleiste hing nur am
ersten. Auf der Crew-Adresse hat DogFather keine Fassung -- er oeffnete
die Kachel und sah EINEN SATZ. Kein Knopf, keine Liste, kein "Wer ist
wie weit?". Genau der eine Mensch, fuer den die Pflege gebaut ist, kam
ohne Umweg gar nicht an sie heran, obwohl Kapitel 11 sagt: "Bei ihm
oeffnet die Kachel die Pflege-Ansicht."
"Texte bearbeiten" bleibt in diesem Zustand bewusst weg: Ohne gewaehlte
Rolle steht keine Karte da, die man bearbeiten koennte, und ein Knopf,
der sichtbar nichts tut, ist schlimmer als keiner. Stattdessen steht
daneben, was zu tun ist ("Zum Bearbeiten oben unter 'Meine Sicht' eine
Rolle waehlen"). "Wer ist wie weit?" braucht keine Rolle und ist genau
das, wofuer man ohne Sicht hereinkommt.
GEPRUEFT: Die neue Zeile zaehlt, dass BEIDE Ausgaenge die Leiste
entscheiden (2 von 2) -- und dass es genau diese zwei gibt. Das ist
schwaecher als die Messung im Browser, aber es laeuft bei jeder
Aenderung mit, und schwaecher ist hier besser als gar nicht.
pruef-anleitung 186 -> 188.
EIN BEFUND, DER MIR GEHOERTE, NICHT DEM HAUS: Beim ersten Lauf mit
allen fuenf Rollen meldete die Messung "302 anleitung.html" fuer
DogFather. Das sah nach einer Umleitung aus; tatsaechlich war er in
der Liste der angelegten Personen gar nicht drin -- ohne Person kein
Keks, ohne Keks die Anmeldewand. Steht jetzt mit Begruendung in der
Datei: Eine Messung, die ihren eigenen Aufbau nicht im Griff hat,
erzeugt Befunde, die niemandem gehoeren.
ABNAHME IM BROWSER, alle fuenf Rollen, 390 px, echte Anmeldung:
Community 14 Karten · "Drei Dinge vorweg" ja · "Deine Stufe"
ja (Neu) · vier Stufen-Marken · Filter Muss -> 5
Modi 29 Karten · vorweg nein · Stufe nein · Filter -> 7
Linke Hand 29 Karten · vorweg nein · Stufe nein · Filter -> 7
Rechte Hand 34 Karten · vorweg nein · Stufe nein · Filter -> 8
DogFather 0 Karten · Auskunft + Pflegeleiste · keine
Begruessung, kein Rundgang
Ueberall: kein Platzhaltertext, kein Querscrollen, keine
Browsermeldungen, keine fehlgeschlagenen Anfragen.
Rundgang: Community 3 Stationen, alle Teamrollen 5.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
88a8d302b9 |
Kapitel 11 auf der Crew-Adresse: die Community gehoert nicht in die Pflegeliste
ZWEITER BEFUND DES ABENDS, und wieder einer, den es im Agenturhaus
gar nicht geben konnte.
Bauplan Kapitel 11, woertlich: "Stand der Ersten Schritte: nur fuer
Team-Rollen, 'fertig / offen' mit Datum. Fuer die Community wird
nichts je Person angezeigt."
Gemessen: Auf der Crew-Adresse nahm die Liste schlicht alle Fassungen
des Hauses -- und seit die Community seit heute frueh eine eigene
Fassung hat, stand jedes Mitglied mit Namen, Fortschritt und Datum
darin. Im Agenturhaus konnte das nie auffallen, dort ist jede Fassung
eine Teamrolle.
Das ist kein Schoenheitsfehler: Ein Mitglied hat sich zum Mitlesen
angemeldet, nicht zu einer Fortschrittsakte. Jetzt siebt
`standRollen()` ueber AUSSEN_ROLLEN -- abgeleitet und nicht als zweite
Liste, damit die naechste Rolle von aussen automatisch heraus ist.
Gegenprobe gefahren: Sieb ausgebaut -> die Zeile wird rot und nennt
"1 von 4".
DAZU GEPRUEFT, was Kapitel 11 sonst verlangt (pruef-anleitung
173 -> 181): DogFather bekommt auf der Crew-Adresse die Pflege statt
einer Fassung, mit den VIER Fassungen dieses Hauses (nicht denen der
Agentur); ein Modi kommt an die Liste gar nicht heran (403); und die
"Vorschau in der Sicht dieser Rolle" liefert ihm die 29 Karten des
Modi, mit `darf_pflegen: true` und `darf_abhaken: false` -- er soll
pflegen koennen, aber nicht in fremdem Namen abhaken. Nachgestellt
wird dabei genau die Anfrage, die kopf.js stellt (`sicht=<Nummer>`
an jede lesende Anfrage), nicht eine nachgebaute.
AUSSERDEM: ZWEI DINGE HIESSEN `an-stufe`
Der Kasten einer EINORDNUNG ("Das brauchst du sofort") und der Kasten
"Deine Stufe" mit Neu, Dabei, Stamm trugen dieselbe Klasse. Der
Bauplan warnt in Kapitel 14 ausdruecklich davor, die beiden zu
verwechseln -- im Quelltext taten sie es.
Aufgefallen beim Messen des Filters "Muss": Er musste seine Suche von
Hand auf `#stufen` eingrenzen, sonst haette er die Karte "Deine Stufe"
mit weggeblendet. Eine Regel wie `.an-stufe { display: none }` haette
denselben Schaden angerichtet, und man haette sie nicht kommen sehen.
Die Mitglieder-Stufe heisst jetzt `an-rang`; in der Oberflaeche aendert
sich kein Wort.
IM BROWSER NACHGEMESSEN (390 px, echte Anmeldung)
Filter "Muss" -> Community 5 Karten, rechte Hand 8. Genau die
Zahlen der Abnahme-Checkliste, und nach dem
Umbenennen blendet er nur noch den einen
Abschnitt aus statt zwei.
"Deine Stufe" -> Community ja ("Du bist gerade: Neu"), rechte Hand
nein. Steht und faellt mit dem neuen Namen.
Keine Browsermeldungen, kein Querscrollen.
pruef-css-klassen und pruef-anleitung (181) gruen.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
a7b5775268 |
Die Rechtetafel siebt die Karten jetzt wirklich -- und „ab Dabei" steht dran
ZWEI SACHEN, EINE DAVON EIN ECHTER BEFUND. 1) DIE KARTEN KAMEN AN DER RECHTETAFEL VORBEI Der Bauplan sagt in Kapitel 04 und noch einmal in der Abnahme: "Leite die sichtbaren Karten aus derselben Rechte-Tafel ab, die rechte.html verwendet. Eine Rolle sieht nur Karten zu Seiten, die sie oeffnen darf; pruefe das SERVERSEITIG." Ich habe dafuer eine Pruefung geschrieben, die die Seite ueber die ECHTE Schnittstelle sperrt (nicht mit einem UPDATE in der Datenbank -- nur so laeuft tafelLaden() mit). Sie wurde sofort rot: Nach dem Sperren von bereich.html fuer einen Modi lieferte der Server weiterhin ALLE ELF Bereichs-Karten. Im Browser fiel das nicht auf, und das ist der heikle Teil: Die Seite verbindet jede Karte mit einer Kachel, und die Kachelliste ist gefiltert -- die Karten verschwanden also auf dem Bildschirm. Die TEXTE gingen trotzdem hinaus. Eine Oberflaeche, die etwas nicht anzeigt, ist keine Schranke; genau deshalb steht im Bauplan "serverseitig". Jetzt siebt `darfKarte()` an der Quelle. Der Pfad wird aus dem Schluessel GERECHNET (`bereich:highlight` -> /workspace/bereich.html), nicht aus einer Zuordnungsliste -- das ist die Umkehrung von `schluesselVonZiel`, und eine gepflegte Tabelle daneben waere die, die beim naechsten neuen Brett fehlt. Entschieden wird mit `darfSeite` selbst; hier wird nichts davon nachgebaut. Gegenprobe in derselben Pruefung: zuruecksperren -> die Karten sind wieder da (29 von 29). Und eine Zeile dazwischen, die zaehlt, dass NUR sie verschwunden sind -- waere mit der Sperre die halbe Anleitung weggefallen, waere die erste Zeile auch gruen gewesen. 2) „AB DABEI" UND „AB STAMM" AN DER KARTE (Kapitel 04) "Kann ein Community-Mitglied etwas wegen seiner Stufe noch nicht, steht das an der Karte." Auch das abgeleitet: aus TREFF_SCHREIBEN, derselben Tafel, die das Schreiben ENTSCHEIDET. `null` darin heisst "von aussen schreibt hier niemand" -- das ist keine Stufe, die man erreicht, und bekommt deshalb keine Marke. "ab Stamm" an einem Anschlagbrett waere ein Versprechen, das nie eingeloest wird. Als Wort, nicht als Schloss-Symbol: Ein Schloss sagt "du darfst nicht" und laesst offen, ob jemals. "ab Dabei" sagt, dass es kommt -- und wann, steht mit Datum in der Karte "Deine Stufe" darueber. Ruhig gestaltet, nicht rot: Es ist keine Sperre, sondern eine Auskunft ueber die Zeit. GEPRUEFT (pruef-anleitung 166 -> 173) Die wichtigste der neuen Zeilen ist die, dass die Marke nach dem Aufstieg VERSCHWINDET. Eine Marke, die bleibt, ist schlimmer als keine: Sie sagt jemandem, er duerfe etwas nicht, das er laengst darf, und er probiert es gar nicht erst. Gemessen an drei Karten mit drei verschiedenen Antworten (Chat: Dabei, Highlights: Stamm, Anschlagbrett: gar nichts) -- waere die Rechnung grob falsch, traefe sie alle drei gleich. Dazu die Gegenprobe, dass eine Teamrolle keine einzige solche Marke bekommt. Mitgelaufen: pruef-rechtetafel 19, pruef-rechte-umstellen 56, pruef-css-klassen, pruef-tippziele 13 -- alle gruen. Die Abnahmezahlen aus Kapitel 13 (14/29/29/34 mit ihrer Aufteilung) sind nach dem neuen Sieb unveraendert; das ist der Beleg, dass es im Normalfall nichts wegnimmt. Im Browser nachgemessen (390 px, echte Anmeldung): Community sieht vier Marken (Rudel-Chat, Wunschliste, Mitmachen „ab Dabei", Highlights „ab Stamm"), die rechte Hand keine einzige. Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
1f0ab7860a |
Bauplan Etappen 4 und 6: Kachelplatz, Aufstiegskarte, und das Alte raeumt ab
Drei Dinge, die zusammengehoeren, weil sie alle denselben Satz aus
Kapitel 01 des Bauplans beantworten: Wer neu ist, soll nicht alles
gleich wichtig vorgesetzt bekommen.
1) DIE KACHEL STEHT BEIM TEAM OBEN (Kapitel 03)
Gemessen stand "Willkommen & Anleitung" bei einem Modi in der Gruppe
"Community" -- der FUENFTEN von sechs, hinter allen Brettern, die er
moderiert. Der Plan sagt dazu "zusaetzlich als erste Kachel in 'Fuer
dich', weil sie bei ihnen sonst weit unten steht".
Ich habe sie VERSCHOBEN statt verdoppelt, und das ist eine bewusste
Abweichung vom Wortlaut: Zwei Kacheln mit demselben Namen und
demselben Ziel hatte dieses Haus am 19.09. schon einmal (zweimal
"Chat"), und der Satz, der daraus wurde, steht seitdem im Quelltext --
"Zwei gleich benannte Wege zum selben Ort sind schlimmer als ein
fehlender". Das Ziel des Plans ist so erreicht, der Nebeneffekt bleibt
aus. Fuer die Community aendert sich nichts: Bei ihr ist "Community"
die erste Gruppe, dort steht sie schon vorne und breit.
Entschieden wird das an AUSSEN_ROLLEN, nicht an Rollennamen.
2) "NEU FUER DICH" BEIM AUFSTIEG (Kapitel 10, Etappe 6)
Erreicht ein Mitglied "Dabei" oder "Stamm", steht auf der Zentrale
einmal eine Karte mit dem, was jetzt geht, und einem Sprung auf die
passende Karte der Anleitung.
WAS JETZT GEHT, IST ABGELEITET -- aus TREFF_SCHREIBEN, derselben
Tafel, die es auch ENTSCHEIDET. Eine Liste im Code haette beim
naechsten neuen Brett entweder etwas versprochen, das die Person gar
nicht darf, oder verschwiegen, was sie duerfte.
Der Schluessel ist (Person, STUFE) und nicht (Person): Wer von Neu auf
Dabei steigt, bekommt die Karte, und Wochen spaeter beim Sprung auf
Stamm noch einmal, mit anderem Inhalt. Eine einzelne Spalte "schon
gesehen" haette den zweiten Aufstieg verschluckt -- und das waere
niemandem aufgefallen, es fehlt ja nur etwas.
Gemerkt wird beim ZEIGEN, nicht beim Wegklicken. Dieselbe Entscheidung
wie bei der Begruessung, aus demselben gemessenen Grund.
Dazu springt `anleitung.html?karte=<schluessel>` jetzt auf eine
bestimmte Karte. Erst beim Messen fiel auf, dass der Sprung ins Leere
ging, obwohl Karte und Abschnitt richtig waren: Unter den Karten
werden danach noch drei Abschnitte eingehaengt, und das sanfte
Scrollen zielte auf eine Hoehe, die sich dabei verschob. Der Sprung
steht jetzt ganz am Ende des Aufbaus.
3) DAS ABGELOESTE WILLKOMMEN IST WEG
willkommen.html ist seit heute frueh eine Weiterleitung. Der Unterbau
lief aber weiter: eine Schnittstelle, die jede Kachel einer Rolle
gleich ausfuehrlich erklaerte (genau das, was Kapitel 01 als Problem
beschreibt), dazu ein Skript und ein Stilblatt, die keine Seite mehr
lud. Entfernt: server/workspace-willkommen.js, assets/js/willkommen.js,
assets/css/willkommen.css und der Router in index.js.
Aufgefallen ist es, weil pruef-willkommen rot wurde und danach in ihre
Notbremse lief -- eine Pruefung, die eine zurueckgenommene Regel
verteidigt. Sie ist mitgegangen: Die inhaltlichen Fragen beantwortet
jetzt pruef-anleitung; hier bleibt die eine, die sonst niemand stellt
("verliert die alte Adresse jemanden?") plus der Nachweis, dass das
Alte wirklich fort ist. 15 Pruefungen statt der alten Fassung, und der
Rueckgang ist damit erklaert.
Nebenbefund: tools/kachel-regenbogen.mjs verwies auf pruef-willkommen
als Wache ueber den gerechneten CSS-Block. Die Datei hat ihn nie
angesehen -- die Wache ist pruef-kachelfarben. Zeiger berichtigt.
AUSSERDEM: .zeileneditor__weg war 34x34 und das einzige ungedeckte
Tippziel des Hauses (pruef-tippziele war deshalb rot). Er wirft eine
Zeile aus einem Eintrag. Auf Fingergeraeten jetzt 44x44, das Kreuz
mitgerechnet statt geraten. Der Knopf stammt aus einer anderen
Sitzung; ich habe ihn Filipe gemeldet und keine Antwort bekommen --
eine rote Pruefung, die liegen bleibt, wird nach dem zweiten Mal
weggeklickt, deshalb jetzt behoben statt weiter gemeldet.
GEPRUEFT
pruef-anleitung 137 -> 166 (neu: Kachelplatz je Rolle mit
Gegenprobe aufs Agenturhaus, der ganze
Aufstiegsweg inkl. ZWEITEM Aufstieg, und die
Abnahme-Checkliste aus Kapitel 13 -- 14/29/29/34
Karten MIT ihrer Aufteilung 5/4/5, 7/7/15,
7/7/15, 8/7/19 und "Nicht deins")
pruef-willkommen neu gefasst, 15, gruen
pruef-sackgassen 14, 145 Kacheln, 0 ins Leere
pruef-start-ansicht gruen, keine Konsolenfehler
pruef-rollen 454, gruen (das eine "nicht nachsehbar" ist das
Haus-Wechsel-Feld und war immer so)
pruef-tippziele 13, jetzt 0 Fehlschlaege
Gegenproben gefahren: Umsortierung ausgebaut -> drei FEHL (und die
Meldung zeigte den alten Zustand, Gruppe 5 von 6). Datenbank vor der
Schemaaenderung gesichert (sicherungen/vor-aufstieg-20261006-172614.db,
integrity_check ok).
Im Browser nachgemessen (echte Anmeldung, 390 px, HTTPS-Vorbau):
Karte da, Satz richtig, drei Wege, 0 zu kleine Tippziele, Sprung
landet auf der richtigen Karte, Abschnitt aufgeklappt, im Bild -- und
beim zweiten Aufruf ist sie weg.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
f09a0c3456 |
Rundgang: drei Schritte fuer die Community, fuenf fuers Team
Bauplan Kapitel 10 verlangt "Community drei Schritte, Team-Rollen
fuenf Schritte (zusaetzlich 'Deine Aufgaben' und die Gruppen ...)".
Gemessen hatte die Community bisher FUENF -- sie bekam auch die beiden
Arbeitslisten gezeigt, "Was ist dran" und "Deine Aufgaben". Auf ihrer
Zentrale stehen beide Kaesten zwar, aber leer; eine Station, die vor
einem leeren Kasten erklaert, was dort sonst steht, ist schlechter als
keine.
WO DIE ENTSCHEIDUNG LIEGT, UND WARUM NICHT IN rundgang.js:
Der Server schickt mit der Einweisung jetzt `team: true/false`
(abgeleitet aus AUSSEN_ROLLEN, nicht aus einer zweiten Liste von
Rollennamen). `rundgang.js` siebt damit und kennt weiterhin keinen
einzigen Rollennamen. Haette ich die Rollen dort hineingeschrieben,
waere jede spaeter dazukommende Rolle stillschweigend eine Teamrolle --
und niemand kaeme auf die Idee, in einer Datei ueber Begruessungen
nach Rechten zu suchen.
ZWEI SIEBE, UND BEIDE SIND NOETIG: `nurTeam` nimmt der Community die
Arbeitslisten, `querySelector` nimmt jedem das, was auf SEINER
Zentrale gar nicht steht. Ohne das zweite bliebe der Rundgang vor
einem Kasten stehen, den es nicht gibt.
Dazu zwei Kleinigkeiten, beide beim Nachmessen aufgefallen:
* Die Begruessung sagte "In fuenf Minuten"; im Bauplan steht "In
zwei Minuten". Fuenf Minuten sind eine Ankuendigung, die abschreckt
-- und bei drei Schritten auch nicht wahr.
* Ohne Namen stand dort "Willkommen im Creator Workspace". Dieselbe
Datei laeuft auf beiden Adressen; bei Team Dogi war das das
falsche Haus. Jetzt nur "Willkommen!" -- kein Haus zu nennen ist
besser als das falsche.
GEPRUEFT (pruef-anleitung 137 -> 148):
Die Zaehlung wird nicht nachgebildet, sondern AUSGEFUEHRT: Die
Stationsliste und der Siebausdruck werden aus der echten Datei geholt
und laufen zweimal, mit team=false und team=true. Ein Muster ("steht
da istTeam?") waere gruen, sobald das Wort in einem Kommentar steht --
genau der Fall, der am 04.10. bei pruef-anruf-klingelt aufgefallen ist.
Gegenprobe gefahren: Sieb entfernt -> drei FEHL, Anzahl bleibt 148
(kein stilles Ueberspringen). Dazu eine Zeile, die festhaelt, dass in
rundgang.js kein Rollenname steht, auf dem Code ohne Kommentare.
Im Browser nachgemessen (mess-anleitung-crew, echte Anmeldung, 390 px,
HTTPS-Vorbau wegen HSTS): Community 3 Stationen, Rechte Hand 5, beide
mit der neuen Begruessung.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
8aaadbd403 |
Die Kachel heisst jetzt "Willkommen & Anleitung" -- und zeigt dorthin, wo die Anleitung ist
Bauplan "Einweisung je Rolle", Kapitel 03 und 04.
ES GAB ZWEI SEITEN NEBENEINANDER. `willkommen.html` listete alle
Bereiche gleich auf -- genau das, was Kapitel 01 des Bauplans als
Problem beschreibt. `anleitung.html` sortiert je Rolle nach Muss,
Regelmaessig und Bei Bedarf; dort war die Einweisung fuer die Agentur
schon gebaut. Die Crew-Kachel zeigte auf die alte.
Jetzt zeigt sie auf die neue, heisst "Willkommen & Anleitung" mit der
Unterzeile "Was du brauchst und was nicht", und anleitung.html ist in
der Rechtetafel auch fuer die Crew geoeffnet. WELCHE Inhalte jemand
sieht, entscheidet weiterhin die Adresse.
willkommen.html bleibt und leitet weiter -- der Bauplan verlangt
ausdruecklich, dass alte Verweise funktionieren. Drei Wege, damit
keiner ins Leere laeuft: meta-refresh (auch ohne JavaScript),
`location.replace` (ohne Eintrag im Verlauf -- sonst landet man beim
Zurueckgehen wieder hier) und ein sichtbarer Verweis.
DABEI AUFGEFALLEN, weil die Pruefung rot wurde: Nach dem Umhaengen
antwortete willkommen.html mit 302 auf start.html. Grund ist die
zweite Schranke `gehoertAufDieseAdresse` -- eine Seite gehoert zur
Crew-Adresse, wenn eine KACHEL dorthin fuehrt. Es fuehrte keine mehr.
Die Seite steht jetzt in OHNE_KACHEL_UEBERALL; ohne das waere das
Lesezeichen von gestern eine Sackgasse.
DREI DINGE VORWEG und DEINE STUFE (Kapitel 04), beide nur fuer die
Community:
"Dein Code gehoert dir" · "Nachts ist Ruhe" · "Was hier passiert,
bleibt hier" -- neue Zeilenart `vorweg`, leer bei allen anderen
Rollen, dann faellt der Abschnitt weg.
Die Stufenkarte zeigt Neu/Dabei/Stamm, hebt die eigene hervor und
nennt das DATUM, ab dem mehr geht -- aus dem Beitrittstag gerechnet
("fruehestens ab 13.10.2026"), nicht "in ein paar Tagen". Die
Fristen kommen aus workspace-treff.js, wo die Stufe auch berechnet
wird; sie sind dafuer ausgefuehrt worden statt abgeschrieben. Eine
zweite 7 im Text waere ausgerechnet in der Erklaerung veraltet.
DIE KACHELN KOMMEN JETZT AUS BEIDEN QUELLEN. anleitung.js baute
seinen Kachel-Index immer aus `Bereiche.GRUPPEN` -- der Liste im
Browser. Fuer die Agentur stimmt das (der Server schickt dort
bewusst `bereiche: null`). Fuer die Crew schickt er eine echte Liste,
und die Browserliste kennt deren Kacheln nicht: Gemessen zeigte die
Seite 0 Karten, obwohl die Schnittstelle 14 bzw. 34 lieferte. Jede
Karte wurde weggelassen, weil zu ihrem Schluessel keine Kachel zu
finden war -- von aussen sah die Seite einfach leer aus.
GEMESSEN IM BROWSER, 390 px, mit Bild:
Community 14 Karten · Vorweg ja · Stufe "Du bist gerade: Neu"
Rechte Hand 34 Karten · Vorweg nein · Stufe nein
kein Querscrollen, keine Browsermeldungen.
Die Messung hat dabei zweimal sich selbst korrigiert: Auf der
Crew-Wand faengt bei 390 px das Buehnenbild jeden Klick ab (angemeldet
wird deshalb ueber die Schnittstelle), und ueber `http://` laedt die
Seite nackt -- der Name steht in der HSTS-Liste, Chromium erzwingt
https fuer alles Nachgeladene. Jetzt derselbe HTTPS-Vorbau wie in
pruef-chat-neu-stelle.
pruef-anleitung 127 -> 137. Vier weitere Zeilen darin verteidigten
den alten Zustand (Seite gesperrt, keine Hinweise fuer die Crew) und
sind mitgewandert. Neu dazu: die Community in der Rollenliste, die
Altersbestaetigung beim Anmelden, und die Gegenprobe, dass ein Modi
weder "Vorweg" noch Stufenkarte bekommt.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
96eff525d0 |
Die Einweisung gibt es jetzt auch fuer Team Dogi -- vier Fassungen, 106 Karten
Filipe hat den Bauplan "Willkommen & Anleitung -- Einweisung je Rolle"
(27 Seiten, Stand 06.10.2026) geschickt: pruefen, perfektionieren und
auf der Crew-Seite umsetzen.
AUSGANGSMESSUNG, bevor etwas angefasst wurde:
agentur creator 18 · manager 22 · scout 21 · spicy 23 Karten
crew 0 Karten -- die Schnittstelle antwortete 404 "nicht_hier"
Die Seite lud also, war aber leer. Baulich vorbereitet war sie schon:
Alle drei Inhaltstabellen tragen `haus` mit UNIQUE (haus, rolle,
kachel), und die Aussaat nimmt das Haus als Parameter.
WAS JETZT DA IST
gast 14 Karten (5 Muss, 4 Regelmaessig, 5 Bedarf)
modi 29 Karten (7 / 7 / 15)
linke 29 Karten (7 / 7 / 15)
hand 34 Karten (8 / 7 / 19)
Jede Zahl entspricht Kapitel 13 des Bauplans. Dazu je Rolle
Leitgedanke, drei Saetze, fuenf Erste Schritte, "Nicht deins",
Rhythmus und Fragen -- woertlich aus Kapitel 06 bis 09.
VOR DEM SCHREIBEN ABGEGLICHEN, nicht danach: Ein Skript prueft jede
Karte gegen die echte Kachelliste der Rolle. Ergebnis fuer alle vier
Fassungen: Kartenzahl wie im Plan, jede Karte trifft eine Kachel,
jede Kachel hat eine Karte, keine doppelt.
ZWEI KACHELN AUF EINER SEITE. Auf der Crew-Adresse fuehren "Chat"
(das Team) und "Rudel-Chat" (`?raum=treff`) beide auf chat.html.
`schluesselVonZiel` behielt nur `b` -- beide ergaben denselben
Schluessel, und damit konnten sie keine eigenen Karten haben, obwohl
der Bauplan ihnen verschiedene Einordnungen gibt (fuer die rechte
Hand: Team-Chat Muss, Rudel-Chat nur bei Bedarf). Jetzt wird auch
`raum` unterschieden. Auf der Agenturadresse gibt es nur eine
Chat-Kachel; dort aendert sich nichts.
DAS HAUS KOMMT AUS DER ADRESSE, nicht aus der angesehenen Rolle.
`const HAUS = "agentur"` ist einer Funktion gewichen. Nimmt DogFather
die Sicht einer anderen Rolle ein, wechselt er die ROLLE, nicht die
ADRESSE -- wer hier `req.sicht` naehme, bekaeme auf der Crew-Adresse
Agenturinhalte, sobald eine Sicht gesetzt ist.
`FASSUNGEN` stand an zehn Stellen fest und haette die Crew ueberall
abgewiesen. Jetzt `fassungenFuer(haus)` -- eine Funktion statt zweier
Listen an zehn Stellen.
Neue Zeilenart `vorweg` fuer "Drei Dinge vorweg" (nur die Community,
Bauplan Kapitel 04). Fehlt die Liste bei einer Rolle, wird nichts
eingetragen -- kein Sonderfall noetig.
Eigene Datei fuer die Crew-Inhalte: anleitung-tabellen.js traegt
schon die Agenturfassungen und ist 856 Zeilen lang. Getrennte Dateien
sind hier dasselbe Prinzip wie getrennte Haeuser.
pruef-anleitung 125 -> 127. Fuenf Zeilen darin verteidigten den alten
Zustand ("ein Modi bekommt die Anleitung nicht, erwartet 404") -- sie
sind mitgewandert statt stehenzubleiben. Dazu eine neue Gegenprobe
zur Haustrennung: In der Crew-Fassung darf keine Agenturkachel
vorkommen.
Datenbank vorher gesichert und zurueckgelesen (integrity_check,
84 Karten).
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
98cfdc3ebc |
Anleitung, Etappen 3 bis 7: alle vier Fassungen, Pflege, Suche, Rundgang, Abnahme
Der Bauplan ist damit vollstaendig umgesetzt.
ETAPPE 3 -- SCOUT, MANAGER UND SPICY MEDIA.
Woertlich aus Kapitel 07 bis 09, zusammen 84 Karten. Die Zahlen des
Bauplans stimmen auf die Karte genau: 18/21/22/23, verteilt 5/6/7,
5/7/9, 6/9/7, 5/5/13.
EINE ZWEIDEUTIGKEIT IM PDF, GEMESSEN STATT GERATEN. Beim Manager
nennt die Merke-Spalte "61, 58, 51 feste Punkte", und Layout- und
Raw-Auszug ordnen sie verschiedenen Kacheln zu. Nachgezaehlt im Code:
LIVE 69, Content-Ideen 61, Community 58, Technik 51. Damit ist die
zeilenweise Lesart bewiesen richtig -- die Layout-Lesart haette "61"
der LIVE-Analyse gegeben, die 69 hat.
Die Zuordnungspruefung laeuft jetzt fuer alle vier Rollen, und die
erwartete Kartenzahl wird AUS DER KACHELLISTE abgeleitet, nicht aus
der Abnahmeliste abgeschrieben. Dazu eine Gegenprobe, dass sich die
vier Fassungen wirklich unterscheiden -- sonst waeren alle Zeilen
gruen, solange die Kachellisten zufaellig passen.
ETAPPE 4 -- DIE PFLEGE, fuer DogFather UND Spicy.
Bearbeitet wird an Ort und Stelle: Stufe und die drei Zeilen je Karte,
Titel und Text je Listenzeile, Leitgedanke je Rolle. Fehlende Karten
werden benannt und lassen sich mit einem Griff anlegen -- das ist der
Fall "Fuer diese Kachel fehlt ein Eintrag" aus Kapitel 11. Dazu "Wer
ist wie weit": eine Arbeitslage, keine Ueberwachung.
KEINE ZWEITE ROLLENAUSWAHL. Die Vorschau gibt es schon -- sie heisst
"Meine Sicht" und steht in der Kopfleiste. Geprueft wird fuers Pflegen
`req.person` und nicht `req.sicht`: Wer durch fremde Augen sieht, soll
nicht aus Versehen in fremdem Namen aendern.
DIE MARKE "NEU" HAT EIN ENDE: 14 Tage ODER bis die Person die Seite
nach der Aenderung geoeffnet hat. Der Bauplan sagt dazu nichts, und
ohne Ende waere nach einem halben Jahr alles neu.
ETAPPE 5 -- DIE SUCHE.
Die Karten stehen in der Kopfleisten-Suche, aber nur die der EIGENEN
Rolle: Faende ein Creator die Manager-Karte, stuende dort "Zuteilen,
freigeben" neben einer Kachel, die er nicht hat. Der Treffer traegt
den Zusatz hinter dem Fragezeichen, sonst landen fuenf Karten auf
derselben Seite.
ETAPPE 6 -- BEGRUESSUNG UND RUNDGANG.
Fuenf Schritte ueber die Zentrale, im letzten leuchten nur die
Muss-Kacheln. EIGENE DATEI (`rundgang.js`) und nicht ein Stueck
start.js: Er laeuft auf der meistbenutzten Seite des Hauses, und wenn
hier etwas schiefgeht, darf davon nichts anderes betroffen sein.
Keine gerechnete Koordinate, kein Loch in einer Abdeckung -- die Seite
wird leiser, das Ziel bleibt hell. Faellt das Skript aus, ist beim
naechsten Laden alles normal.
DER ROLLENWECHSEL IST KEINE SONDERREGEL, sondern der Schluessel:
`(Person, Rolle)`. Die neue Rolle hat schlicht noch keine Zeile, also
startet die Einweisung von selbst noch einmal. Eine Spalte
"zuruecksetzen", an die jemand denken muesste, waere die Stelle, an
der es vergessen wird.
EIN FUND AUS DER MESSUNG: Gemerkt wurde zuerst erst am ENDE des
Rundgangs. Wer "Los geht's" drueckte und dann wegging, bekam die
Begruessung bei jedem Aufruf wieder -- fuer immer. Jetzt wird beim
ZEIGEN gemerkt; das ist die Tatsache, um die es geht.
ETAPPE 7 -- DIE ABNAHME.
Dabei fiel auf, dass der Rollen-Rundgang SPICY MEDIA gar nicht kannte:
fuenf Durchgaenge, aber zweimal Manager, zweimal Scout und Spicy nie.
Ihr gehoert die Gruppe "Rund um das Team" samt Team-Lage -- diese
Kachel ist in keinem Durchgang je geoeffnet worden. Jetzt laeuft sie
mit: 452 statt 406 Pruefungen.
MITGENOMMEN, WEIL ES ROT WAR: `pruef-eventkarte` und
`pruef-haus-luecke` bildeten ihr Tagesdatum aus UTC. Zwischen 00:00
und 02:00 deutscher Zeit liegt UTC im Vortag -- ein naechtlicher Lauf
haette an einem Datum gesucht, das er selbst nicht geschrieben hat.
Beide benutzen jetzt `helfer-zeit`. `pruef-struktur` ist damit gruen.
Gemessen (alle gruen, kein einziger Befund)
pruef-anleitung 125 Pruefungen (vorher 70)
pruef-rollen 452 Pruefungen (vorher 406) -- mit Spicy Media
pruef-struktur gruen (vorher rot)
pruef-rechtetafel, pruef-css-klassen, pruef-kachel-universum,
pruef-suchfeld, pruef-kachelraster, pruef-start-ansicht,
pruef-sicht, pruef-eventkarte alle gruen
mess-anleitung Rundgang fuenf Schritte, im letzten genau 5
Muss-Kacheln hervorgehoben; beim zweiten
Aufruf keine Begruessung mehr; kein
Querschieben bei 412 und 1440 px
Sicherung: ~/sicherungen/workspace-vor-anleitung-e37-20261006-1536.db
OFFEN, NICHT VON MIR UND NICHT AUS DIESEM BAUPLAN: pruef-haus-luecke
endet mit Rueckgabewert 3 ("konnte nicht nachsehen") -- eine der
beiden Adressen liefert das Anschlagbrett nicht. Nachgemessen: Das war
vor dieser Arbeit genauso.
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
df67574f90 |
Anleitung, Etappe 2: Erste Schritte zum Abhaken -- und eine Farbe, die vier Tage falsch war
Ein Creator hakt seine fuenf Ersten Schritte ab, sieht seinen
Fortschritt im Kopf, bekommt unter „Was ist dran" den Punkt „Erste
Schritte noch offen" und ganz oben auf der Startseite eine breite
Kachel „Fang hier an". Alle drei verschwinden von selbst, sobald er
durch ist -- niemand muss etwas wegklicken oder abschalten.
EINE QUELLE, DREI ANZEIGEN.
Der Bauplan wollte einen Punkt bei „Was ist dran" UND einen eigenen
Zaehler an der Kachel. Zwei getrennt gebaute Zaehler zeigen irgendwann
zwei verschiedene Zahlen uebereinander auf einem Bildschirm. Es gibt
deshalb nur `offeneHinweise()`: Daraus kommen die Zeile, die Zahl an
der kleinen Kachel und die Zahl an der breiten. Die breite Kachel
entsteht ausserdem aus der BEREITS GEFILTERTEN Kachelliste und erbt
damit beide Schranken (Rollenliste und Rechtetafel), statt sie ein
drittes Mal zu beantworten.
Gespeichert wird nur Erledigtes: eine Zeile heisst „abgehakt", keine
Zeile heisst „offen". Kein Feld mit 0 und 1 -- sonst gaebe es zwei
Arten, „offen" zu sagen.
DIE WICHTIGSTE ENTDECKUNG WAR NICHT TEIL DIESER ETAPPE.
`pruef-kachel-universum` wurde rot. Nachgemessen gegen den Stand VOR
Etappe 1: Sie war schon rot -- seit dem 02.10., und zwar wegen Ton 47
(Manager-Ziele, #7368ff), den ich selbst eingetragen habe. Im
Kommentar daneben steht sogar meine eigene Messung: „Abstand zum
naechsten Nachbarn 0,0899 ... knapp unter der 0,090". Ich habe die
Zahl hingeschrieben und die Pruefung nie laufen lassen. Vier Tage.
#7368ff -> #7269ff. Eine Hexziffer, Abstand zum alten Wert 0,0024 --
das sieht kein Mensch --, aber der Abstand zur naechsten Kachel im
eigenen Haus steigt von 0,0899 auf 0,0918. Nicht die am weitesten
entfernte Farbe genommen (das waere ein grelles Gruen gewesen):
Manager-Ziele ist in Benutzung und violett, gesucht war die kleinste
Aenderung, die die Regel haelt.
UND DIE REGEL SELBST WAR FUER EIN HAUS GESCHRIEBEN.
Auch mit sauberem Ton 47 blieb die Pruefung rot: Sie vergleicht ALLE
48 Toene miteinander, und rechnerisch ist 0,09 fuer 48 Farben nicht zu
halten (das Werkzeug findet als besten freien Platz 0,0793). Seit dem
24.09.2026 gibt es aber zwei Haeuser, und eine Kachel des einen steht
nie neben einer des anderen -- sie liegen auf verschiedenen Adressen.
Die Messung ist jetzt haus-bewusst: 0,09 innerhalb eines Hauses
(streng, und mit rund 24 Farden je Haus zu halten -- gemessen 0,0905),
ein Boden von 0,06 ueber die Haeuser hinweg. Das ist SCHAERFER, nicht
weicher: Vorher verteilte sich die Grenze auf 48 Farben und war
unerreichbar, weshalb die Pruefung dauerhaft rot stand -- und eine
Warnung, die immer kommt, ist keine mehr. Welcher Ton zu welchem Haus
gehoert, wird aus bereiche.js abgeleitet, nicht aufgelistet. Dazu eine
Gegenprobe, dass die Einteilung ueberhaupt trennt (553 Paare im Haus,
575 darueber hinweg).
NOCH EINE FESTE ZAHL ERSETZT: `pruef-start-ansicht` verlangte „genau
drei Gruppen" fuer einen Creator. Mit „Fang hier an" sind es
zeitweilig vier, und beides ist richtig. Gezaehlt wird nicht mehr,
sondern benannt -- auch das die schaerfere Pruefung: Die alte Zeile
waere gruen geblieben, wenn eine der drei Gruppen verschwindet und
eine fremde dazukommt.
Gemessen
pruef-anleitung 70 Pruefungen, 0 Fehler (vorher 47)
pruef-rollen 402 Pruefungen, 0 Fehler (vorher 401)
pruef-kachel-universum 16 Pruefungen, 0 Fehler (vorher 13, davon 1 rot)
pruef-start-ansicht alles in Ordnung (vorher 1 rot)
pruef-kachelraster 24 Pruefungen, 0 Fehler
pruef-css-klassen alles in Ordnung, 42 Stellen unter 11,5 px
mess-anleitung mit offenen Schritten: Gruppe „Fang hier an",
breite Kachel mit Zaehler 5, Hinweiszeile.
Nach dem Abhaken: alle drei weg, ein Weg
statt drei. Kein Querschieben bei 412/1440 px.
Sicherung: ~/sicherungen/workspace-vor-anleitung-e2-20261006-1421.db
Co-Authored-By: Claude Opus 5 <[email protected]>
|
||
|
|
a7b2ad77b8 |
Anleitung, Etappe 1: die Einweisung fuer Creator steht
Erste von sieben Etappen aus dem geprueften Bauplan
(`02 Projekte/Anleitung-Kachel – Bauplan.md`). Ein Creator oeffnet die
neue Kachel und sieht seine vollstaendige Einweisung: drei Saetze „In
60 Sekunden", fuenf Erste Schritte, achtzehn Karten in drei Stufen,
„Das kannst du liegen lassen", sein Rhythmus und vier Fragen.
WAS NICHT IN DER DATENBANK STEHT -- und das ist der Kern.
Eine Karte zeigt Name, Symbol, Farbe und Adresse ihrer echten Kachel.
Nichts davon ist gespeichert. Es steht in bereiche.js, genau einmal,
und wird ueber einen abgeleiteten Schluessel verbunden
(`bereich.html?b=live` -> `bereich:live`). Haette ich den Namen
danebengeschrieben, erklaerte die Anleitung nach der ersten Umbenennung
eine Kachel, die es so nicht mehr gibt -- und niemandem fiele es auf.
Gespeichert ist nur, was der Bauplan NEU bringt: die Stufe und die drei
Saetze Wozu / Was du hier tust / Merke.
Der Schluessel muss abgeleitet sein, weil zwei Faelle sonst
zusammenfallen: `bereich.html` ist FUENF Kacheln, und `profil.html`
heisst beim Creator „Mein Profil" und beim Manager „Creator-Profile".
DIE WICHTIGSTE PRUEFUNG STEHT NICHT IM BAUPLAN.
pruef-anleitung.mjs fragt in BEIDE Richtungen: Hat jede Kachel, die
diese Rolle sieht, genau eine Karte -- und zeigt jede Karte auf eine
Kachel, die es wirklich gibt? Beides kann lautlos kaputtgehen, und der
Bauplan sah dafuer nur einen Hinweis in der Pflege-Ansicht vor. Der
hilft nur, wenn jemand hinsieht.
Dafuer wird bereiche.js in der Pruefung AUSGEFUEHRT (node:vm mit einem
winzigen Browser-Ersatz), nicht mit einem Muster durchsucht. Ein Muster
waere eine ungenaue Nachbildung und wuerde bei der ersten ungewohnten
Schreibweise „alles in Ordnung" melden.
DREI BEFUNDE BEIM BAUEN, ALLE GEMESSEN STATT GEAHNT:
1. Ton 48. Das Hauswerkzeug schlug #b0ec0a vor -- Abstand 0,0815 zur
Kachel „Agentur", die ein Creator direkt daneben sieht, und 13,28:1
Kontrast. Der Grund: Es rechnet gegen alle 47 Toene, aber die Haelfte
gehoert zum anderen Haus und erscheint nie auf demselben Bildschirm.
Gegen die 24 Toene DIESES Hauses gerechnet: #ff7eed, Abstand 0,1168
(43 % mehr) bei sanfteren 8,46:1. Die Herleitung steht in start.css,
samt Warnung, dass ein erneuter Werkzeuglauf es verschlechtern wuerde.
2. Die Erste-Schritte-Verweise waren 20 px hoch. Gemessen bei 412 px --
die halbe Hausgroesse fuer einen Daumen, auf der Seite, die fuer
Leute gebaut ist, die zum ersten Mal hier sind und auf dem Handy
sitzen. Jetzt ist die ganze Zeile das Ziel, 44 px.
3. Die Textbloecke standen ohne Flaeche auf der Seite. Auf dem ersten
Bild lief „Fast alles andere fuellt deine Betreuung fuer dich" quer
ueber das helle Wasserzeichen des Hintergrundbildes. Deshalb hat im
Haus jeder Textträger `--flaeche`: Ein Kontrast, der vom
Bildausschnitt abhaengt, ist keiner.
NEBENBEI ZWEI LUECKEN GESCHLOSSEN: `manager-ziele.html` und
`anleitung.html` fehlten in der Seitenliste von pruef-rollen. Ganz
ungeprueft waren sie nicht -- der Kachel-Durchgang oeffnet jede Kachel
--, aber er prueft nur, WO man landet. Konsolenfehler, 4xx-Antworten,
tote Verweise und Ueberstehen liefen fuer beide nie. Dieselbe Sorte
stiller Luecke wie am 28.08.2026 bei RunOne.
ENTSCHEIDUNGEN VON FILIPE (06.10.2026):
Pflege durch DogFather UND Spicy (nicht nur DogFather wie im Bauplan)
-- dieselbe Regel wie bei den Manager-Zielen am 02.10.
Vorerst nur das Agenturhaus, die Daten aber haus-bewusst angelegt.
DogFather bekommt keine Kachel (er braucht keine Einweisung), darf die
Seite aber oeffnen: Ueber den vorhandenen Sicht-Umschalter sieht er
jede Fassung. Eine zweite Rollenauswahl auf der Seite waere dieselbe
Funktion an einer Stelle, an der sie niemand sucht.
Gemessen
pruef-anleitung 47 Pruefungen, 0 Fehler (neu)
pruef-rollen 401 Pruefungen, 0 Fehler (vorher 384)
pruef-rechtetafel 19 Pruefungen, 0 Fehler
pruef-css-klassen alles in Ordnung, jetzt 40 Seiten, 42 Stellen
unter 11,5 px (unveraendert)
mess-anleitung kein Querschieben bei 412 und 1440 px, keine
Konsolenfehler, alle 18 Karten mit Kachelfarbe
Sicherung vor dem Ausliefern:
~/sicherungen/workspace-vor-anleitung-20261006-1325.db (integrity ok)
Co-Authored-By: Claude Opus 5 <[email protected]>
|