Commit Graph
10 Commits
Author SHA1 Message Date
DogFatherGitandClaude Opus 5 d92ba76e33 Kategorie-Kanaele und angeheftete Ankuendigungen (Kapitel 7.2)
Die vier Saetze aus dem Anforderungsdokument, der Reihe nach: Team-
Gruppenchat, Kategorie-Kanaele mit Zugriff fuer Owner und rechte Hand,
private 1:1-Chats OHNE diesen Zugriff, und Pin-Nachrichten an alle.

EIN KANAL IST KEINE VIERTE TABELLE, sondern eine dritte Art Raum
(`art = 'kanal'` neben 'direkt' und 'gruppe'). Damit gilt fuer ihn ohne
eine einzige neue Zeile alles, was schon da ist: Verlauf, Anhaenge,
Suche, Ungelesen-Zaehler, Live-Strom, Wegraeumen. Eine eigene Tabelle
haette all das ein zweites Mal gebraucht -- und die zweite Fassung waere
die gewesen, in der die Zugriffsregel fehlt.

Welche Zustaendigkeit, kommt aus MODI_KATEGORIEN -- derselben Liste, aus
der auch die Aufgaben ihre Kategorie nehmen. Der NAME kommt aus der
Kategorie und ist kein freies Feld: "Clipping" neben "Clipping-Team"
waeren zwei halbe Verlaeufe, und man merkt es erst, wenn jemand die
Antwort im falschen sucht. Ein eindeutiger Teilindex haelt das auch
dann fest, wenn zwei Anfragen im selben Augenblick ankommen.

DIE ZUGRIFFSREGEL STEHT IN istDrin() -- der Funktion, durch die alle
sieben lesenden und schreibenden Wege gehen. In den Routen stuende sie
in sechs davon und in der siebten nicht. Sie gilt AUSDRUECKLICH nur
fuer 'kanal': Zweier-Gespraeche bleiben zu, auch fuer DogFather (so
steht es im Dokument), und Gruppen ebenfalls -- wer eine Gruppe
aufmacht, hat sich fuer einen geschlossenen Kreis entschieden, und den
nachtraeglich still zu oeffnen waere das Gegenteil dessen, was er getan
hat. Wenn Filipe das anders will, ist es eine Zeile -- aber es waere
seine Entscheidung und muesste fuer die Beteiligten SICHTBAR sein.

istDrin() nimmt dafuer die PERSON statt ihrer Nummer und wirft bei
einer Nummer einen Fehler, statt stillschweigend "nein" zu antworten.

HOECHSTENS DREI ANKUENDIGUNGEN je Raum. Nicht eine (Regeln, Live-Plan
und Frist muessen gleichzeitig oben stehen koennen) und nicht beliebig
viele -- eine Pinnwand, die scrollt, ist ein zweiter Verlauf. Der
Aushang hat eine EIGENE Abfrage, weil der Verlauf nur 200 Zeilen
liefert: Eine Ansage von vorletzter Woche waere sonst genau dann weg,
wenn sie am laengsten oben stehen sollte. Wird die Nachricht
zurueckgenommen, faellt sie ab UND gibt den Platz frei.

DREI DINGE, DIE ERST DAS HINSEHEN GEZEIGT HAT:

  Der frisch angelegte Kanal hatte zwei Leute statt vier. Die
  Personenauswahl zeichnete nach der Rollenfolge aus bereiche.js -- wer
  dort nicht steht, wurde NICHT GEZEICHNET. Team Dogi steht dort nicht
  und darf es auch nicht (der Rollenname gehoert in keine Datei, die
  jeder herunterlaedt). Folge: DogFather konnte ueber die Auswahl
  niemandem aus seinem Team schreiben. Der Server schickt die
  Ueberschrift jetzt mit; der Browser braucht dafuer keinen
  Rollennamen. Der Kommentar, der genau davor warnte, stand die ganze
  Zeit darueber.

  Dieser Fehler war nebenbei ein Netz: Was nicht gezeichnet wird, kann
  auch nicht falsch gezeichnet werden. Deshalb ist jetzt gemessen, dass
  ein Manager und Spicy Media Team Dogi gar nicht erst geschickt
  bekommen -- und dabei fiel auf, dass Spicy Media in der EIGENEN
  Auswahl stand: Sobald es jemanden zu verbergen gibt, schreibt
  ohneVerborgene() aus "sieht alles" eine echte Liste, und darin steckt
  man selbst.

  Am Fuss jeder Nachricht stehen jetzt vier Handgriffe statt drei. Bei
  390 px -- der haeufigsten Handybreite -- stand "kopieren" 18 px ueber
  der Blase, bei 320 px 75. Behoben mit `flex-wrap: wrap` und nicht mit
  einer Schwelle: Eine Regel, die misst, bleibt beim fuenften Handgriff
  richtig; eine Zahl nicht. pruef-chat-optik misst es ab jetzt.

NACHGEZOGEN, was pruef-css-klassen an MEINEM letzten Commit fand:
teamlage.html lud kopf.js ohne wahl.js (der Sicht-Umschalter sah aus
wie aus einem anderen Programm -- kaputt war nichts, und genau deshalb
faellt es niemandem auf), und .tampel__tag stand auf 11,2 px. Beides
war schon gepusht, weil ich die Pruefung nicht laufen liess.

pruef-chat-kanaele 73 (neu) · pruef-chat 48 · pruef-chat-ausbau 64 ·
pruef-chat-anhaenge 60 · pruef-chat-optik 24 -> 26 · pruef-css-klassen
gruen · pruef-rollen 274 · pruef-modi-verborgen 78 · pruef-team-ampel 28
· pruef-start-ansicht gruen · pruef-modi-wortleck 5 ·
pruef-zwischenspeicher 21.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-10 20:18:04 +02:00
DogFatherGitandClaude Opus 5 6b2f34d105 Verfuegbarkeits-Ampel im Eingang -- und eine eigene Gruppe fuer Team Dogi
Filipe: "ich will dass die kacheln von den modis bei der rolle dogfather
eine eigene kategorie haben. damit ich nicht zwischen den kacheln
suchen muss."

DIE AMPEL (Blueprint 7.1). Der Eingang zeigt je Person sieben Tage:
gruen frei, gelb belegt, rot voll ab 180 Minuten. Die Abfrage sammelt
Termine ueber VIER Wege (creator_id, teilnehmer_id, erstellt_von und
die Tabelle termin_teilnehmer) -- ueber nur einen davon waeren die
meisten Termine unsichtbar geblieben und die Ampel dauerhaft gruen.
Sie waehlt NIE titel, beschreibung oder ort: Filipe soll sehen, WANN
jemand kann, nicht WAS die Person vorhat. Belegung ist Arbeitslage,
Inhalt ist privat.

DIE GRUPPE. Die zwei Team-Kacheln standen zwischen einundzwanzig
anderen. Jetzt tragen sie `gruppe: "Team Dogi"` und `gruppeNach:
"Täglich"`; start.js setzt eine so markierte Gruppe direkt HINTER die
genannte statt ans Ende. Ohne das waere sie unten gelandet -- richtig
gruppiert und trotzdem zum Suchen.

Das Ideen-Board ist dabei aus workspace/assets/js/bereiche.js
ausgezogen. Es stand dort mit `rollen: ['admin']` in einer Datei, die
jeder Modi herunterlaedt: die Kachel war unsichtbar, ihr Name nicht.
Jetzt liefert der Server sie, wie den Eingang auch.

DREI FEHLER, DIE DER BILDSCHIRM GEZEIGT HAT, NICHT DER CODE:

  Das Profilbild sprengte die Karte. teamlage.js baute ein blankes
  <img> in `.tperson__zeichen` -- ohne die Klasse `tperson__bild`, die
  es auf 44 px begrenzt. Gemeldet hat es Filipe mit einem Bildschirm-
  foto, nicht eine Pruefung.

  Der Eingang hatte ueberhaupt keine Buehne. `zuSeite()` sucht nur in
  bereiche.js, und die Eingangs-Kachel kommt vom Server -- der Rueck-
  fall war ausgerechnet der Spicy-Wasserfall. Jetzt haengt das Bild an
  `data-buehne="eingang"` im CSS, wo kein Skript daran vorbeikommt.

  Pausierte Mitglieder verschwanden. `WHERE aktiv = 1` versteckte sie
  samt ihrer offenen Meldungen. Jetzt stehen sie hinten, sichtbar
  gekennzeichnet.

DIE ERWARTUNG IN pruef-start-ansicht steht auf FUENF Gruppen, in
ihrer Reihenfolge -- die Position ist hier die eigentliche Aussage.
Eine Gruppe, die ans Ende rutscht, faellt auf dem Bildschirm kaum auf.
Die Kachelzahl blieb bei 24: umgezogen, nichts hinzugefuegt.

pruef-team-ampel 28, pruef-team-stufen 24, pruef-rollen 274,
pruef-crew-adresse 123, pruef-modi-ideen 30, pruef-modi-wortleck 5,
pruef-zwischenspeicher 21, pruef-start-ansicht gruen.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-10 18:08:27 +02:00
DogFatherGitandClaude Opus 5 241b408edc Eigene Buehnen fuer die Modi-App -- und die Kopfleiste dazu
Filipe: "auch die hintergrund bilder vom crew espace sollen anderes
aussehen, der community angepasst wie die zugangscode seite die ist
mega."

UMFAERBEN HAETTE HIER NICHT GEREICHT. Bei der Zugangswand war Rot das
Problem; innen zeigen die neun Buehnen das SPICY-MEDIA-LOGO selbst, in
`halle` und `arena` vielfach nebeneinander. Ein blaues fremdes Logo
waere schlimmer gewesen als ein rotes.

Die Motive gibt es laengst -- auf der oeffentlichen Dogfather-Seite:
  studio/lounge  "Team Dogi -- Familie. Treue. Zusammenhalt."
  halle          TEAM DOGI mit den Menschen des Teams
  skyline/portal "Streamplan": Dogi und HasiDog auf der Buehne
  arena          "DogFathers Galerie": Filmrollen, ein Archiv
  garage         "Der Streamer": Filipe an seinem Platz

Fuer `garage` stand zuerst der Holo-Kontrollraum da -- grossartiges
Bild, aber darauf steht "WERDE MODI". Eine Einladung hinter dem
Aufgabenbrett von Leuten, die laengst dabei sind, liest sich falsch.
Ein Bild sagt etwas, auch wenn es nur Hintergrund ist.

DIE ABDUNKLUNG IST GERECHNET, NICHT GEWAEHLT
Mein erster fester Wert haette 18 von 27 Fassungen HELLER gemacht als
die, die sie ersetzen (114 gegen 67) -- ueber ihnen steht derselbe
kleine Text. Das Werkzeug misst jetzt jede Fassung gegen die bestehende
Buehne derselben Szene und senkt sie genau auf deren Wert.

Ueber eine KURVE statt eines schwarzen Schleiers: v' = 255*(v/255)^g
senkt die Lichter viel staerker als die Tiefen -- das Bild wird dunkler
und behaelt seine Zeichnung. Ein Schleier haette bei den hellsten
Motiven ueber 80 % gebraucht, und darunter liegt dann Nebel statt Bild
(derselbe Fehler wie beim Tresorbild).

Der erste Anlauf mit einer geschlossenen Formel war falsch: Die Kurve
wirkt auf jeden FARBKANAL, die Helligkeit ist eine gewichtete Summe der
drei, und L(v^g) ist nicht L(v)^g. Die Rechnung sagte 61,5 und heraus
kamen 67. Jetzt wird genaehert und nachgemessen, hoechstens sechsmal.

Beim Hochkant-Ausschnitt wird zusaetzlich das FENSTER GESUCHT: fuenf
Kandidaten, erst "dunkel genug", dann "am meisten Motiv". Die Mitte --
die das Haus sonst nimmt -- ist bei diesen Bildern das Hellste.

ZWEI FUNDE AUS DEM BILDSCHIRMFOTO, die nichts mit den Buehnen zu tun
hatten:

1. DIE KOPFLEISTE sagte "SPICY & DOGI · CREATOR WORKSPACE". Reitertitel,
   Begruessung und Symbol waren laengst richtig -- nur die Zeile, die
   man als Erstes ansieht, nicht. Der Grund: Auf Unterseiten traegt die
   Leiste einen Rueckweg-Verweis, auf der Startseite blossen Text; mein
   Code kannte nur die erste Bauform.

2. DAS CHILI-ZEICHEN kommt aus dem CSS als Bild, an drei Stellen
   (Kopfleiste, Siegel im Ring, die schwebenden Wasserzeichen). Auf
   crew. wird die Datei serverseitig durch den Husky ersetzt -- alle
   drei auf einmal, und ohne Flackern, weil schon der erste Abruf das
   richtige Bild bekommt.

GEMESSEN
pruef-crew-adresse  123 (statt 117): Fuer JEDE Buehne aus start.css --
                    die Namen werden dort GELESEN, nicht abgeschrieben --
                    gibt es auf crew. ein eigenes Motiv, auf workspace.
                    das alte, und die beiden sind nachweislich
                    verschiedene Dateien.
pruef-rollen        274   pruef-start-ansicht, pruef-zwischenspeicher 21
pruef-modi-wortleck   5 -- er hat wieder angeschlagen, zweimal auf
                    Kommentare, die ich selbst geschrieben hatte.

27 Fassungen, 3,5 MB (die bisherigen neun Szenen brauchen 7,1).

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-10 17:02:54 +02:00
DogFatherGitandClaude Opus 5 449fe35c0a Der Eingang: Mitglieder-Kachel, drei Stufen -- und lesbar statt leer
Zwei Auftraege in einem Zug: "mach weiter" (Blueprint Kapitel 4/4.1)
und, zum Bildschirmfoto der Seite, "das muss viel krasser sein".

KAPITEL 4 -- DIE MITGLIEDER-KACHEL
Der Blueprint nennt: "Name & Foto · Rolle(n)/Kategorie(n) · Status
(aktiv/pausiert) · Anzahl offener Aufgaben · Datum 'Modi seit' ·
Schnellaktionen". Name, Foto und Zahlen standen schon; Status, "dabei
seit", Stufe und ein Knopf zum Schreiben kommen dazu.

KAPITEL 4.1 -- DIE DREI STUFEN
Probe, Standard, Senior. Sie sind eine ARBEITSEINTEILUNG, keine
Rechtegrenze -- was ein Modi darf, haengt an der Rolle; die Stufe sagt,
wo er im Team steht. Gesetzt werden sie nur von DogFather: Der
Blueprint gibt der rechten Hand den gleichen UEBERBLICK, aber
"Verwaltungsrechte optional durch Owner freischaltbar", also aus.
NULL heisst "Probe" und nicht "unbekannt" -- ein dritter Zustand waere
eine Frage, die niemand beantworten kann.

ZWEI ECHTE FEHLER, BEIDE VON DER NEUEN PRUEFUNG GEFUNDEN

1. PAUSIERTE VERSCHWANDEN KOMPLETT. In der Abfrage stand `AND aktiv =
   1`. Wer jemanden pausierte, bei dem verschwand er samt seiner
   OFFENEN RUECKMELDUNGEN aus dem Eingang -- die warteten weiter auf
   eine Antwort, nur sah sie niemand mehr.

2. DER EINGANG HAETTE AUF FRISCHER ANLAGE 503 GELIEFERT. Die
   Checklisten-Tabellen entstehen beim ersten Aufruf einer Checkliste;
   diese Seite liest sie aber auch. Wer sie oeffnete, bevor je jemand
   eine Checkliste angesehen hatte, bekam einen Fehler ohne Erklaerung
   -- auf einer neuen Anlage also beim allerersten Blick. Das Schema
   hat jetzt einen Besitzer, der es herausgibt; ein zweites CREATE
   TABLE waere der Anfang von zwei Schemata gewesen.

"VIEL KRASSER" -- UND ZWAR MIT INFORMATION, NICHT MIT LAERM

  * ZWEI REIHEN STATT EINER. Alle fuenf Kaesten lagen in EINEM Raster
    mit 150 px Mindestbreite: Im Bildschirmfoto stand "Community 12
    von" -- abgeschnitten mitten in der Zahl -- und die laengste Liste
    machte die ganze Reihe so hoch wie sich selbst. Jetzt oben, was
    eine Antwort braucht, darunter das Team; 300 px Mindestbreite.
  * DIE KARTE WAR FAHL, und das war ein Fehler: `--r` fiel auf ein
    helles Grau zurueck, aus dem das Kantenlicht einen Nebel ueber die
    ganze Karte legte. Sie traegt jetzt die Farbe der Stufe -- kein
    Nebel, und man sieht am Rand, wer wo steht.
  * SECHS ZAHLENKAESTEN WURDEN DREI BALKEN. "40 offen" beantwortet
    nicht, wie weit man ist: 40 von 40 ist etwas anderes als 40 von
    100. Gruen (in Ordnung) und Bernstein (zu besprechen) fuellen den
    Balken; die ganze Zeile ist der Weg dorthin.
  * DIE DREI ZAHLEN DER SEITE stehen oben als Zahlen statt in einem
    Satz. Die Warnfarbe erscheint NUR, wenn wirklich etwas wartet --
    eine Null in Bernstein waere ein Alarm ohne Anlass, und ab dem
    dritten Mal sieht man ihn nicht mehr.

GEMESSEN
pruef-team-stufen (neu)  24, mit Gegenprobe: hoch- und zurueckstufen,
                         und dieselbe Stufe zweimal zu setzen darf
                         keine zweite Protokollzeile erzeugen
pruef-rollen            274   pruef-modi-checkliste  59
pruef-zwischenspeicher   21
Ansicht: Rechner 1440 und Handy 412 -- keine Skriptfehler, nichts
ragt seitlich heraus (0 px).

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-10 16:27:44 +02:00
DogFatherGitandClaude Opus 5 cdddf32183 Husky bei DogFather und der Rechten Hand, Pfote bei den Modis
Filipe mit Bildschirmfoto: "bei rechte hand soll der husky sein und bei
modis soll die pfote sein."

DAS DREHT EINE FRUEHERE VORGABE UM, und der Grund gehoert in den Code:
Am 09.09. hiess es "das modi symbol soll das gleiche sein wie bei
dogfather" -- damals gab es dort zwei Rollen, und der Satz bedeutete
"die Modis gehoeren zu Dogi, nicht zur Agentur". Mit drei Rollen sagt
dieselbe Absicht etwas anderes: Der Husky steht bei den beiden, die den
Ueberblick haben, die Pfote bei denen, die taeglich unterwegs sind.
Zwei gleiche Zeichen und ein anderes lesen sich als Gruppe, nicht als
Reihe.

GEPRUEFT WIRD DIE ZUORDNUNG, NICHT DAS AUSSEHEN
An beiden Stellen -- Zugangswand und Rollenauswahl in der
Personenverwaltung -- wird gegen die DogFather-Karte verglichen, nicht
gegen "#r-husky": Waere dort morgen ein anderes Zeichen, muesste die
rechte Hand mitwandern. Gewollt ist "dasselbe wie er".

DAZU DIE GEGENPROBE, die vorher fehlte: Der Modi muss sich davon
UNTERSCHEIDEN. Ohne sie waere die Zeile darueber auch dann gruen, wenn
alle drei Karten dasselbe truegen -- und genau so sah es bis heute
Nachmittag aus.

Nebenbei hat der Wortleck-Test wieder angeschlagen: Meine eigene
Begruendung fuer die Pfote nannte zum Vergleich eine Rolle der anderen
Wand. In einer Datei, die auf crew. ausgeliefert wird, hat die nichts
verloren.

GEMESSEN
pruef-crew-adresse      117 (statt 115 -- die neue Zuordnungspruefung)
pruef-personen-formular  27   pruef-crew-wand-bild  45

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-10 16:03:04 +02:00
DogFatherGitandClaude Opus 5 63b3ace3fa Die rechte Hand -- drei Rollen auf der Adresse des Teams
Filipe: "3 rollen. dogfather. rechte hand und modis. perfektionier das."

DIE RECHTE MUSSTE ICH NICHT ERFINDEN. Sie stehen im Blueprint V3.0,
Kapitel 3.1 und in der Sichtbarkeitsmatrix 3.2: "Gleicher Ueberblick wie
Owner. Kann Modis im Alltag koordinieren. Verwaltungsrechte optional
durch Owner freischaltbar." Also: alle Aufgaben, Ideen und Angebote des
Teams, der Eingang samt Entscheidungen, die Checklisten der Modis zum
Ansehen -- aber keine Personenverwaltung (laut Blueprint "optional",
also standardmaessig aus) und keine privaten Kalender oder Einzelchats.

DER EIGENTLICHE UMBAU WAR NICHT DIE ROLLE, SONDERN EINE MENGE.
Bis heute hiess "verborgen" im Code `rolle === "modi"` -- an acht
Stellen. Bei ZWEI verborgenen Rollen ist das genau die Sorte Stelle, die
man an sieben von acht Orten nachzieht; die achte faellt niemandem auf,
weil dort dann einfach jemand sichtbar ist, der es nicht sein sollte.
Ein vergessener Rechteschutz meldet sich nie.

Jetzt lesen alle Regeln aus TEAM_DOGI_ROLLEN: die SQL-Ausblendung
(ohneModi heisst deshalb jetzt ohneTeamDogi), die verborgenen Nummern,
die Marke, die Adressregel, die Schranke beim Anlegen. Eine dritte
verborgene Rolle waere eine Zeile.

Die Menge wohnt in crew-adresse.js und nicht bei den uebrigen Rollen:
workspace.js importiert jene Datei. Andersherum waere es ein Kreis --
Node loest ihn auf, aber mit halb gefuellten Modulen, und das faellt
erst zur Laufzeit auf.

ZWEI LOECHER, GEFUNDEN BEIM SYSTEMATISCHEN NACHLESEN
1. Die Bereichsschranke griff nur bei Modis -- die rechte Hand waere
   ueber die Adresszeile in die Agentur-Ablage gekommen.
2. Ihr Ideen-Board und ihr Angebote-Brett waeren LEER geblieben: Sie
   fiel durch den Team-Zweig hindurch in die Betreuungsregel, die fuer
   sie nichts findet. Derselbe Fehler wie am 01.09. beim Manager und am
   09.09. beim Modi -- und er meldet sich nie, weil ein leeres Brett
   nicht nach Fehler aussieht.

NEBENBEI EINE ALTE SCHWACHSTELLE WEG
gate.js hatte eine zweite Namensliste fuer die Rollen, mit dem Kommentar
daneben, sie sei "genau die Stelle, die beim naechsten Mal wieder
vergessen wird" -- was schon passiert war. Mit zwei Zugangswaenden
haette sie die Namen BEIDER tragen muessen, in einer Datei, die jeder
bekommt. Sie liest den Namen jetzt aus der Kachel, wo er ohnehin steht.

Die Zugangswand hat drei Kacheln: DogFather (Husky), Rechte Hand
(Pfote, neu) und Modi (derselbe Husky, Wunsch vom 09.09.). Die Pfote
liegt am naechsten an "rechte Hand", ohne eine Hand zu sein.

GEMESSEN
pruef-rollen           274 (statt 245; 128 statt 112 Durchgaenge)
pruef-crew-adresse     114   pruef-modi-verborgen     78 (statt 75)
pruef-modi-checkliste   59   pruef-crew-wand-bild     45
pruef-modi-ideen        30   pruef-personen-formular  27 (statt 25)
pruef-modi-katalog      29   pruef-modi-kategorien    25
pruef-zwischenspeicher  21   pruef-modi-livecheck     16
pruef-modi-wortleck      5   pruef-start-ansicht, pruef-bereiche-lesend

Jede gestiegene Zahl hat einen Grund: Die neue Rolle laeuft in DENSELBEN
Listen mit wie die Modis, nicht in eigenen. pruef-modi-verborgen war
vorher gruen, ohne sie ein einziges Mal angesehen zu haben.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-10 15:18:26 +02:00
DogFatherGitandClaude Opus 5 8bcbd83061 Die Modi-Seite gehoert Dogi und den Modis -- Wand, Zeichen, Reiter
Filipe zum Bildschirmfoto der Zugangswand auf crew.: "alles soll auf
dogfather und die modis perfektionniert werden auf der neuen modi seite."

Dort stand bis eben die gewohnte Wand: Spicy-Media-Logo, "Creator
Workspace", der Satz ueber Manager, Scouts und Creator, fuenf
Rollenkacheln. Fuer einen Modi war davon nichts richtig.

DIE KACHELREIHE FAELLT WEG, und das ist eine Verbesserung: Eine Reihe mit
genau einem Eintrag ist keine Auswahl, sondern eine Huerde -- man muesste
erst daraufdruecken, bevor das Codefeld etwas annimmt. gate.js prueft
jetzt, OB es Kacheln gibt, statt sie vorauszusetzen.

DIE BUEHNE IST AUS DEM VORHANDENEN MOTIV GEBAUT, nicht neu erfunden, und
das ist kein Sparen: Die Anmeldeseite ist eine MECHANIK. Rechts steht im
Bild eine leere Tafel, und gate.css setzt die Karte auf Hundertstel genau
dort hinein. Ein frei erfundenes Bild haette diese vier Zahlen
mitgenommen. Also dieselbe Szene, ueber den Mischmodus "color" ins Blau
umgefaerbt (hue-rotate haette Rot nach Cyan UND Blau nach Gelb gedreht),
Dogi anstelle des Spicy-Medaillons, "TEAM DOGI" darunter.
Gemessen: rote Bildpunkte 18,1 % -> 0,0 %, Karte auf 0 px genau.

NACH DER ANMELDUNG geht es weiter: kopf.js zieht Reitertitel und Zeichen
aus `ich.marke` nach -- "Aufgaben · Team Dogi" statt "· Spicy & Dogi", mit
dem eigenen Symbol. An einer Stelle statt in 30 HTML-Dateien.

DREI FUNDE, DIE NICHT AUS DEM KOPF KAMEN

1. DER KNOPF WAERE SCHLECHTER LESBAR GEWORDEN. Mein erstes Blau endete
   bei #4aa4cf -- weisse Schrift darauf: 2,8 zu 1. Der rot-blaue Verlauf,
   den er ersetzt, haelt ueber seine GANZE Laenge 4,65; er war offenbar
   genau darauf gebaut. Jetzt 5,10 zu 1, am fertigen Bildschirmfoto
   gemessen statt aus einer einzelnen Farbe hergeleitet.

2. DIE NEUE WAND WAR AUCH AUF workspace. ABRUFBAR. Sie liegt als Datei im
   selben Ordner. Aufgefallen ist das, weil der Wortleck-Test sie ueberhaupt
   las -- die Frage WARUM war die Antwort. Ausserhalb von crew. antwortet
   sie jetzt mit 404; auf den Pruefadressen bleibt sie erreichbar, sonst
   koennte die Pruefung sie nicht mehr oeffnen und waere gruen ohne etwas
   zu messen.

3. ZWEI GLEICHE KACHELN AUF DER STARTSEITE, seit dem letzten Deploy live.
   Die Team-Lage-Kachel von heute Mittag hatte Name, Zeichen, Ton UND
   Gruppe einer schon vorhandenen -- fuehrte aber woandershin. Gefunden
   von "jede Kachel hat ihre eigene Farbe (23 Farben auf 24 Kacheln)".
   Jetzt "Eingang", Gruppe Taeglich, neuer Ton 24 (#8a20cf, Abstand 38,5
   im CIELAB-Raum; reines Blau haette 52 gehabt und waere auf dunklem
   Grund am schlechtesten zu fokussieren). Eine Fehlermeldung zeigte
   dadurch auf die falsche Seite -- ebenfalls behoben.
   Und die Pruefung, die es fand, zaehlte nur bereiche.js: Vom Server
   angehaengte Kacheln kannte sie nicht. Sie fragt jetzt beide Quellen.

Der Wortleck-Test meldete ausserdem sieben Fundstellen -- allesamt
Kommentare, die ich beim Bauen selbst geschrieben hatte.

GEMESSEN
pruef-crew-adresse     103   pruef-crew-wand-bild    43 (neu)
pruef-modi-checkliste   59   pruef-modi-verborgen    75
pruef-rollen           245   pruef-zwischenspeicher  21
pruef-modi-wortleck      4   pruef-start-ansicht     gruen

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-10 13:59:54 +02:00
DogFatherGitandClaude Opus 5 3cda64568d Die Modi-App bekommt ihre eigene Adresse: crew.dogfather-universe.com
Filipe: "ich will dass es eine eigene app wird" -- und dann "subdomain
machen jetzt sofort". Name von ihm gewaehlt: crew. (unauffaellig).

Auf einem Ursprung laesst sich genau EINE App installieren (w3c/manifest
Nr. 1180). Derselbe Grund, aus dem der Workspace am 06.09. umgezogen ist.
Getrennt wird ueber den HOSTNAMEN: ein Dienst, eine Datenbank, ein
Verzeichnis wie bisher.

DIE REGEL STEHT AN EINER STELLE
crew-adresse.js beantwortet: Darf diese Rolle auf dieser Adresse
angemeldet sein? Eingehaengt in sitzungLesen() -- durch die Funktion geht
jedes der 26 Fachmodule und jede Seitenschranke. Eine Middleware daneben
kann man in einem neuen Modul vergessen, und ein vergessener Rechteschutz
faellt nicht auf, weil dann alles geht.

  crew.      nur Modis; jeder andere bekommt 401 wie bei einem Tippfehler
  workspace. keine Modis mehr; sie bekommen den Weg zur neuen Adresse
  localhost  UNVERAENDERT

Die dritte Zeile ist der Kern: Die Regel ist eine AUFZAEHLUNG der drei
echten Adressen, nicht "alles ausser crew". Sonst wuerden sieben andere
Pruefdateien ab sofort messen, dass ein Modi nirgends hereinkommt -- gruen,
weil sie nichts mehr finden.

ZWEI APPS, ZWEI NAMEN
Beide Adressen liefern dieselben HTML-Dateien. Auf crew. wird
/workspace/app.webmanifest serverseitig auf crew.webmanifest umgebogen --
so braucht keine der 30 Seiten eine zweite Zeile, die man bei der 31.
vergisst. "Team Dogi" statt "Creator Workspace", eigenes Zeichen:
derselbe Husky, aber ohne Chili (die gehoert zu Spicy Media, nicht zu
ihnen) und im Modi-Ton #5f8a9f.

tools/crew-symbol.mjs erzeugt die sechs Symbole und bricht ab, wenn sie
sich zu weniger als 10 % vom Workspace-Symbol unterscheiden. Gemessen:
43 bis 53 %.

GEMESSEN
pruef-crew-adresse    74 Pruefungen, 0 Fehler -- mit Gegenprobe: der Modi
                      bekommt in der Datenbank die Rolle 'manager', danach
                      MUSS dieselbe Sitzung auf crew. ins Leere laufen
pruef-rollen          245, unveraendert (die Regel ist lokal wirkungslos)
pruef-workspace-umzug 31 Faelle
pruef-zwischenspeicher 21 -- ein Stempel im Haus, jetzt ueber 23 Dateien

Der Server kennt die Adresse damit. DNS und Caddy bleiben Filipes Schritt.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-10 13:07:12 +02:00
DogFatherGitandClaude Opus 5 05f262eb61 Modis verteilen Aufgaben statt sie zu bekommen -- und Angebote zur Entscheidung
Die drei Beurteilungs-Bereiche liefen bisher in die falsche Richtung: Sie
bewerteten die Modis. Filipe: "die modis sind ja da um mir zu helfen."
Also umgedreht.

WAS SICH GEDREHT HAT
- Alle 101 Punkte sind jetzt Beobachtungen ueber den Stream, nicht
  Pflichten des Modis ("Der Ton blieb verstaendlich" statt "Ton geprueft").
- Nur der Modi selbst drueckt auf seiner Liste. Wer sonst darauf zeigt,
  bekommt 403 und den Weg zur Team-Lage -- bewerten wird hier niemand.
- "Verbessern" landet als Eingang bei DogFather. Ein Klick macht daraus
  eine Aufgabe mit dem Satz des Modis im Text, oder eine Absage mit Grund.
  Beides schreibt eine Nachricht zurueck, damit der Modi sieht: angekommen.

ANGEBOTE
Neuer Bereich, in dem Modis planen und vorschlagen: Nutzen und Aufwand
statt Bewertung und Dringlichkeit, dazu ein Feld "was DogFather danach
tun muss". Wird ein Angebot angenommen, entstehen zwei Aufgaben -- eine
beim Modi zum Umsetzen, eine bei DogFather aus genau diesem Feld.

GEMESSEN
pruef-modi-checkliste  59 Pruefungen, 0 Fehler (neu geschrieben)
pruef-rollen          245 statt 244 -- der Zuwachs ist die neue
                      Angebote-Kachel, alle 11 Modi-Kacheln kommen an
pruef-modi-ideen       30, pruef-modi-verborgen 75, pruef-bereiche-lesend: gruen

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-10 12:52:45 +02:00
DogFatherGitandClaude Opus 5 6122ea6972 Eigene Checklisten fuer die Modis -- und eine Seite fuer euch beide
Wunsch Filipe (10.09.2026): *"diese kategorien mussen auf dieser seite
auch noch auf die modis perfektionniert werden, da mussen lauter sachen
sein die vanvan und ich danach verteilen können und da anpassen können
ob gut oder nicht."* Und: *"da soll es eine kategorie geben für uns
beide nur sonst keinen wo wir dass alles sehen und behandeln können."*

=== TEIL 1: SEIN EIGENER PUNKTESATZ ===

101 Punkte in workspace-modi-punkte.js -- Live-Ablauf 40, Community 36,
Technik 25. Die vorhandenen sagen "Upload messen", "Sendeplan
festlegen", "Verweildauer vergleichen": Ein Modi sendet nicht, er
moderiert. Ihm dieselbe Liste vorzulegen hiesse, ihn an Dingen zu
messen, die nicht seine Arbeit sind.

DIESELBE EINTEILUNG (Vor/Waehrend/Nach usw.), nur andere Punkte darin.
Zwei verschiedene Einteilungen waeren zwei Dinge zum Lernen statt
einem, und die Oberflaeche kaeme ohne Umbau nicht damit zurecht.

DIE SCHLUESSEL BEGINNEN MIT "m-". Der Stand haengt an (bereich,
schluessel, person) -- ohne Praefix koennte ein Modi-Punkt eines Tages
denselben Namen tragen wie ein Creator-Punkt und dessen Bewertung
erben.

BEIDE SAETZE STEHEN IN GUELTIG. Stuenden dort nur die Creator-Punkte,
kaeme die Liste an und jeder Klick darauf brachte einen 404 -- die
Sorte Fehler, die man erst beim Benutzen merkt.

Ein Modi sieht SEINE Liste, ohne jemanden auszuwaehlen (wie ein
Creator), und bewertet sich nicht selbst. Ohne diese Zeile waere er in
den Betreuer-Zweig gefallen, haette eine Auswahl fremder Creator
vorgesetzt bekommen und seine eigene Liste gar nicht gesehen.

DER HEIKELSTE PUNKT WAR EIN ANDERER: `darfCreator` sagt bei
siehtAlles() pauschal ja -- und darin steckt auch Spicy Media. Wer die
Modi-Auswahl daran haengt, oeffnet sie ihr nebenbei mit, ohne dass an
der Stelle etwas davon steht. Deshalb eine eigene Regel (darfPerson),
und die Pruefung versucht es ueber die Liste, ueber die Adresse UND
ueber das Bewerten.

Die Auswahl heisst bei der DogFather-Rolle jetzt "Person" statt
"Creator" -- ein Feld namens "Creator", in dem ein Modi steht, ist
falsch beschriftet. Das Wort kommt vom Server; ein Rollenvergleich im
Browser waere die Stelle, an der der Name in einer ausgelieferten Datei
landet.

=== TEIL 2: DIE GEMEINSAME SEITE ===

teamlage.html, nur fuer die DogFather-Rolle -- also Filipe und VanVan.
Fuer alle anderen gibt es weder die Kachel noch die Seite noch die
Schnittstelle (404, wie bei einer Adresse, die es nicht gibt). Zwei
Schloesser, absichtlich: die Schranke und die Abfrage. Faellt eines
weg, haelt das andere.

Je Person: offene und ueberfaellige Aufgaben, beigetragene Ideen,
Rueckmeldungen, und je Bereich gut/verbessern/offen. Jede Zeile fuehrt
in den Bereich -- MIT DER PERSON VORAUSGEWAEHLT. Dafuer liest die
Checkliste jetzt `creator_id` aus der Adresse; ohne das landet man auf
der erstbesten Person und weiss beim zweiten Suchen nicht mehr, warum
man hier war.

SIE ZAEHLT, SIE BEWERTET NICHT. Bewertet wird dort, wo die Punkte
stehen. Eine zweite Stelle dafuer waere eine zweite Stelle, an der es
auseinanderlaeuft.

UND SIE IST KEINE UEBERWACHUNG. Ueber team.html steht schon, dass eine
Seite mit Zahlen ueber Kollegen als Kontrolle gelesen wird -- und dann
arbeitet niemand mehr offen damit. "Offen" heisst hier deshalb
ausdruecklich: darueber habt ihr noch nicht geredet. Eine Merkliste
fuer euch beide, keine Note.

ALLES IN VIER ABFRAGEN, nicht vier je Person -- bei zehn Modis waeren
das vierzig. Denselben Fehler hat das Haus bei den Terminen schon
gemacht und ihn dort vermerkt.

KEINE NEUEN CSS-KLASSEN: Fuer genau diese Karten gibt es sie schon
(tperson, tz, schritt -- aus team.html). Elf neue haetten gepflegt
werden muessen fuer ein Aussehen, das bereits da ist.

ZUSATZKACHELN sind ein neuer, kleiner Mechanismus: `bereiche` ERSETZT
die Liste im Browser (fuer Rollen, die dort nicht vorkommen),
`bereiche_zusatz` HAENGT an. Gebraucht fuer Kacheln, die nur eine
einzige Rolle bekommt -- in bereiche.js duerften sie nicht stehen, weil
eine Kachel, die nur bei einem erscheint, die Frage aufwirft, fuer wen
sie ist. Findet sich die genannte Gruppe nicht, wird eine eigene
angelegt: Sonst faellt die Kachel lautlos weg, sobald jemand eine
Gruppe umbenennt.

EHRLICH ZUM UMFANG: Technik ist mit 25 Punkten der duennste Bereich.
Das ist Absicht -- der technische Spielraum eines Moderators ist
kleiner als der eines Streamers. Auffuellen haette Fuellmaterial in
eine Liste gebracht, die Filipe und VanVan durchgehen muessen.

GEPRUEFT: pruef-modi-checkliste (39, neu), pruef-rollen (244 statt 243
-- die neue Kachel wird angeklickt und muss ankommen),
pruef-modi-verborgen (75), pruef-workspace-seiten.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-10 03:10:04 +02:00