Files
dogfather-universe/workspace/entwicklung.html
T
DogFatherGitandClaude Opus 5 9f5dbb42e3 Support: melden mit Bild, und für die Leitung ein Eingang
Filipe: „da fehlt auch eine support kachel. die jeder sieht. jeder
benutzen kann. jeder kann da probleme von der seite melden und
hinweisen. fotos mit schicken mit einem text. … so einfach wie
möglich, will nichts kompliziertes oder zu viel. kurz und knapp …
bei dogfather und der rechten hand soll die kachel anders gebaut sein
weil die sind die die sich um die probleme kümmern."

WARUM DAS NICHT DER VORHANDENE MELDEWEG IST. Es gibt ihn schon
(hilfe.html) und er sieht aehnlich aus. Drei Unterschiede machen ihn
zu etwas anderem:
  1. Er ist NICHT fuer alle -- in rechte.js steht
     `["gast","hand","admin"]`. Modis, Creator, Scouts, Manager und
     die linke Hand hatten gar keinen Weg, einen kaputten Knopf zu
     melden.
  2. Er kann keine Bilder. Bei „der Knopf tut nichts" ist ein
     Bildschirmfoto die halbe Antwort.
  3. Er ist bewusst schwer: strikter Wechsel, hoechstens drei offene
     Faelle, ein Betreff. Richtig bei einem Vorfall zwischen
     Menschen, zu viel fuer „das Datum steht falsch da".

Deshalb eigen und sehr kurz: EIN Feld, EIN Bild, fertig. Kein
Betreff, keine Kategorie, keine Dringlichkeitsstufe -- wer ein
Formular mit fuenf Feldern sieht, meldet den kleinen Fehler nicht,
und genau die kleinen erfaehrt sonst niemand.

DIE LEITUNG SIEHT ETWAS ANDERES: einen Eingang mit Zahlenband
(neu / in Arbeit / erledigt), drei Filtern und zwei Handgriffen --
„Ich kuemmere mich" und „Erledigt …". Zwei, nicht fuenf; eine
Zuweisung an eine Person und Prioritaeten waeren ein Ticketsystem
fuer zwei Menschen, die nebeneinander sitzen. Das Melde-Feld bleibt
auch fuer sie da, rutscht aber unter den Eingang.

Wer zumacht, schreibt einen Satz dazu -- der Melder sieht nur diesen
Satz, und ohne ihn weiss er nicht, ob etwas behoben wurde oder ob
niemand Zeit hatte. Beide Seiten bekommen eine Benachrichtigung.

UEBERNOMMEN STATT NEU ERFUNDEN:
  * `dateiErkennen` aus workspace-chat.js -- EXPORTIERT, nicht
    abgeschrieben. An ihr haengt die ganze Sicherheit der Uploads
    (der Typ kommt aus den ersten Bytes, nicht aus Name oder
    Content-Type), und eine zweite Fassung waere die, die beim
    naechsten Dateiformat vergessen wird.
  * Die zweigeteilte Sicht und `meldungFuer()` (gibt den Datensatz
    oder null zurueck, nie true/false) aus dem vertraulichen
    Meldeweg.
  * Der Upload-Weg (express.raw, Text im Kopf, Ordner unter
    DATEN_ORDNER, damit die Sicherungspruefung ihn findet).

DIE KACHEL BEKOMMT JEDER -- an EINER Stelle angehaengt: `bereicheFuer`
haengt sie an jede Rollenliste, statt sie in fuenf Listen
einzutragen. Genau so ist heute der Benachrichtigungs-Knopf auf 14
Seiten verschwunden. Dazu der Eintrag in rechte.js (ohne ihn
verschwindet die Kachel lautlos, `nurOffeneKacheln` filtert dagegen)
und in der Browser-Kachelliste fuer die Agentur-Rollen.

TON 44 GERECHNET, NICHT GEWAEHLT -- und dabei zweimal danebengelegen:
  * Ich habe erst einen eigenen Modus in kachel-farben.mjs gebaut.
    `tools/kachel-farbe-einzeln.mjs` gibt es aber seit dem 22.09. fuer
    genau diesen Zweck. Meine Dopplung ist wieder weg.
  * Von Hand hatte ich #bcdbff eingetragen. pruef-kachelfarben lehnte
    es ab (Buntheit 0,060, verlangt sind 0,12) -- und das vorhandene
    Werkzeug verteidigte es trotzdem, weil sein Abstand gut war. Ein
    Werkzeug, das einen regelwidrigen Zustand haelt, weil er zufaellig
    gut misst, behebt genau den Fehler nicht, fuer den es da ist.
    Behoben: Zuerst die Regeln, dann der Abstand. Ergebnis #fd6401,
    Abstand 0,0914 (engstes vorhandenes Paar: 0,0154).

DREI MESSFEHLER VON MIR, die wie schwere Befunde aussahen: `fetch`
verwirft den Host-Kopf (die Community kommt nur auf crew. herein),
die Community bestaetigt ihr Alter (`alter_ok`), und die Startroute
heisst /api/ich. Alle drei stehen in pruef-treff.mjs richtig.

Ein ECHTER Fehler kam dazu: support.html lud bereiche.js nicht, und
kopf.js stuerzte mit „Cannot read properties of undefined (reading
'LEITUNG')" ab -- sichtbar nur in der Browserkonsole. Und
pruef-css-klassen fand sofort, dass auch wahl.js fehlte.

Gemessen: pruef-support 45 Pruefungen, 0 Fehler (alle neun Rollen
kommen herein, jede sieht die Kachel, als Bild getarntes HTML wird
abgelehnt, eine fremde Meldung bleibt fremd, erledigt bleibt
erledigt). Dazu 24 Messungen am Bild in drei Groessen. Gruen:
pruef-kachelfarben (22), pruef-css-klassen.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-24 01:32:55 +02:00

317 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<title>Eure Aufgaben · Spicy &amp; Dogi</title>
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609240132" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609240132" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609240132" />
<link rel="stylesheet" href="assets/css/start.css?v=202609240132" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609240132" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609240132" />
<link rel="stylesheet" href="assets/css/module.css?v=202609240132" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609240132" />
</head>
<body class="start">
<div class="schleier" aria-hidden="true"></div>
<header class="kopfleiste">
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="M14.5 5.5 8 12l6.5 6.5" />
</svg>
<span class="zurueck-knopf__text">Zurück</span>
</button>
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Team&nbsp;Dogi</a> · Eure Aufgaben</span></p>
<div class="kopfleiste__rechts">
<span class="wer" id="wer">…</span>
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
</div>
</header>
<main class="inhalt inhalt--breit">
<section class="kopf-zeile">
<div>
<p class="marke" id="ober">Entwicklung &amp; Nachwuchs</p>
<!-- UMBENANNT AM 19.09.2026 (siehe workspace.js). Diese Seite ist
der Aufgabenkatalog: was ein Modi koennen soll und wo er
gerade steht. Der Name "Entwicklung" bleibt dem vorbehalten,
was Filipe darunter versteht -- einer Auswertung je Person. -->
<h1 class="titel" id="titel">Eure Aufgaben</h1>
<p class="unterzeile" id="unterzeile">
Anklicken statt tippen. Keine Noten, keine Punktzahl – ein Gesprächsanlass.
</p>
</div>
</section>
<!-- ==================================================================
DIE REIHENFOLGE AUF DIESER SEITE IST DAS EIGENTLICHE DESIGN
1. Die Ampel — sie betrifft Menschen, nicht Prozesse.
2. Die Personen — wen gehe ich heute durch.
3. Was er bekommt — das Formular und der Katalog.
4. Was bei ihm liegt — seine Aufgaben.
5. Die Karte — und darin die ABWEICHUNGEN zuerst.
6. Ganz unten der Weg zu den eigenen sechs Fragen — sie haben
seit dem 15.09.2026 eine eigene Seite.
Wer die Seite öffnet, soll die wichtigste Sache zuerst sehen, und
das ist nicht die Liste. Eine Ampel unter 34 Beobachtungen hätte
niemand je gelesen.
DIESE ORDNUNG WAR ZWISCHENZEITLICH VERLOREN (berichtigt
23.09.2026). Die Punkte 1 bis 3 standen hier schon seit dem
15.09. — nur nicht mehr in dieser Reihenfolge: Am 22.09. kam das
Verteilen auf die Seite, am 23.09. der Katalog, und beide sind
VOR die Ampel und die Personenwahl gerutscht.
Gemessen mit sechs Leuten und offenem Katalog: Am Handy begann
die Personenwahl erst bei Bildschirm 5,3 von 14,9. Man scrollte
also an allem vorbei, um überhaupt anzufangen — und das, was man
dabei überscrollte (Formular, Katalog), betrifft genau die
Person, die man noch gar nicht gewählt hatte.
Filipe: „ich will dass du die so krass übersichtlich machst."
Die Reihenfolge ist jetzt die, in der man denkt: Wie steht das
Team? → Wen nehme ich mir vor? → Was gebe ich ihm? → Was liegt
schon bei ihm? → Wie steht er da?
============================================================== -->
<section id="ampel" class="e-ampel" hidden></section>
<section id="personen-block" hidden>
<h2 class="e-abschnitt">Wen gehst du durch?</h2>
<div id="personen" class="e-personen" role="group" aria-label="Person wählen" aria-busy="true"></div>
</section>
<!-- VERTEILEN GEHOERT HIERHER (22.09.2026).
Filipe, zum wiederholten Mal: "ich will immer noch ... dass man
bei aufgaben nur die aufgaben sieht und bei eure aufgaben die
aufgaben verteilt."
Und so stand es schon im Auftrag vom 21.09. (Abschnitt 2): "Die
Kachel Eure Aufgaben soll erhalten bleiben. Innerhalb dieses
Bereichs soll zusaetzlich eine Funktion integriert werden, mit
der DogFather und die rechte Hand Aufgaben erstellen und
verteilen koennen."
ES IST EIN WEG, KEIN ZWEITES FORMULAR. Zwei Formulare fuer
dieselbe Sache waeren zwei Gelegenheiten, eines davon zu
vergessen -- und man wuesste nie, welches das richtige ist. Der
Knopf nimmt die gerade gewaehlte Person mit. -->
<!-- HIER STAND EIN LINK AUF EINE ANDERE SEITE (bis 22.09.2026).
Filipe: „dieser buttion da soll nicht einen zu der seite
aufgaben fuehren sondern da in dieser seite die aufgaben
erstellen und vergeben koennen. plus man soll die aufgaben hier
in dieser seite auch sehen."
Er hat recht, und der Grund liegt auf der Hand, sobald man es
einmal macht: Wer hier jemanden durchgeht, hat den Menschen vor
sich. Ihn dafuer auf eine andere Seite zu schicken heisst, den
Faden zu verlieren und danach zurueckzusuchen.
ES IST NICHT DAS GROSSE FORMULAR VON aufgaben.html.
Das hat zwoelf Felder -- Prioritaet, Kategorie, Kanal, Bereich,
Mehrfachauswahl. Die braucht man, wenn man eine Aufgabe fuer
irgendwen irgendwo anlegt. Hier steht die Person schon fest,
und was fehlt, sind drei Angaben: was, bis wann, und ob noch
jemand mitmacht. Alles andere waere dieselbe Maske zweimal --
und zwei Masken fuer dieselbe Sache sind zwei Gelegenheiten,
eine davon zu vergessen.
Wer mehr braucht, findet die Aufgabe danach auf dem Brett und
kann sie dort in Ruhe ausbauen. -->
<section class="e-verteilen" id="verteilen-band" hidden>
<div class="e-verteilen__text">
<h2 class="e-verteilen__titel">Aufgabe verteilen</h2>
<p class="e-verteilen__satz" id="verteilen-satz">
Aufgabe anlegen und an eine oder mehrere Personen geben.
</p>
</div>
<button type="button" class="knopf" id="verteilen-knopf">Aufgabe anlegen</button>
<form class="e-neu" id="e-neu" hidden>
<!-- FÜR WEN — DIE ERSTE FRAGE, UND SIE STEHT JETZT HIER.
---------------------------------------------------------
Bis zum 22.09.2026 abends stand oben „Wähl links jemanden
aus", und der Knopf war so lange tot. Gemessen: Die Auswahl
steht gar nicht links, sondern 206 Pixel WEITER UNTEN, bei
genau derselben linken Kante (130 px wie das Band). Links
war nichts. Wer der Anweisung folgte, schaute auf eine
leere Fläche und hatte einen Knopf, der nicht ging.
Filipe: „weil gerade hängt das und weiß nicht wieso."
Ein Knopf, der nichts tut, erklärt sich nie selbst. Also
steht die Frage jetzt dort, wo man sie beantwortet: im
Formular, als erste Zeile. Wer unten schon jemanden
angeklickt hat, findet ihn hier angehakt wieder — beides
führt zum selben Ziel, keins ist Pflicht. -->
<div class="e-neu__zeile" id="e-fuer-block">
<!-- DIE KOPFZEILE DER AUSWAHL (23.09.2026)
---------------------------------------------------------
Filipe: „auch die möglichkeit alle auf einmal auszuwählen
und so. mach es hoch krass profissionel, übersichtlich"
Links die Frage, rechts der Stand („3 von 6") und die
Schnellwahl. Der Zähler ist der Teil, der Übersicht
macht: Bei acht Kästchen sieht man nicht mehr, wie viele
angehakt sind — man zählt nach.
DIE SCHNELLWAHL WIRD GEBAUT, NICHT GESCHRIEBEN: Welche
Gruppen es gibt, steht in den Leuten selbst (regelZeile
in entwicklung.js). Eine Liste hier wäre die, die beim
nächsten Rollenzuschnitt eine Gruppe verschweigt. -->
<div class="e-fuer__kopf">
<p class="feld-schild" id="e-fuer-schild">Für wen ist das?</p>
<div class="e-fuer__rechts">
<span class="e-fuer__zahl" id="e-fuer-zahl" aria-live="polite"></span>
<div class="e-fuer__schnell" id="e-fuer-schnell" role="group"
aria-label="Schnell auswählen"></div>
</div>
</div>
<div id="e-fuer-leute" class="e-fuer__leute" role="group"
aria-labelledby="e-fuer-schild"></div>
<!-- WIE SOLL DAS LAUFEN — nur bei mehr als einer Person.
Bei einer gibt es nichts zu verteilen, dann wäre die
Frage Füllwerk. Der zweite Punkt ist die Bewerbung:
Filipe: „plus die option dass die modis sich für aufgaben
bewerben können." -->
<fieldset id="e-art" class="z-art" hidden>
<legend class="feld-schild">Wie soll das laufen?</legend>
<label class="z-art__wahl">
<input type="radio" name="e-verteilart" value="mehrere" checked />
<span><strong>Jede macht ihren Teil.</strong>
Alle sind gemeint, jede hat ihren eigenen Stand.</span>
</label>
<label class="z-art__wahl">
<input type="radio" name="e-verteilart" value="pool" />
<span><strong>Wer zuerst Zeit hat, übernimmt.</strong>
Sie bewerben sich, du nimmst an oder lehnst ab.</span>
</label>
</fieldset>
</div>
<div class="e-neu__zeile">
<label class="feld-schild" for="e-titel">Was ist zu tun?</label>
<input type="text" id="e-titel" maxlength="200" required
placeholder="z. B. Clips vom Samstag schneiden" />
</div>
<div class="e-neu__zeile">
<label class="feld-schild" for="e-frist">Bis wann? (freiwillig)</label>
<input type="date" id="e-frist" />
</div>
<div class="e-neu__zeile">
<label class="feld-schild" for="e-text">Worum geht es genau? (freiwillig)</label>
<textarea id="e-text" rows="2" maxlength="2000"></textarea>
</div>
<!-- HIER STAND „Noch jemanden dazunehmen" (bis 22.09.2026).
Zwei Personenlisten in einem Formular -- eine Hauptperson
oben, weitere hinter einem Klapp-Knopf -- waren zwei
Bedienungen fuer dieselbe Frage. Und die Bewerbungs-Option
steckte in der zweiten, zugeklappten: Sie war nur zu
finden, wenn man erst „Noch jemanden dazunehmen" oeffnete
UND dort jemanden ankreuzte. Eine Moeglichkeit, die man
nicht findet, gibt es nicht.
Jetzt ist es EINE Liste ganz oben. Wer einen anhakt, gibt
die Aufgabe an ihn; wer mehrere anhakt, wird gefragt, wie
es laufen soll. -->
<p class="fehler" id="e-neu-fehler" role="alert" aria-live="polite"></p>
<p class="e-neu__knoepfe">
<button type="submit" class="knopf knopf--klein" id="e-neu-speichern">Anlegen</button>
<button type="button" class="knopf-still" id="e-neu-abbrechen">Abbrechen</button>
</p>
</form>
</section>
<!-- DIE AUFGABEN DER PERSON, AUF DERSELBEN SEITE.
„plus man soll die aufgaben hier in dieser seite auch sehen."
Ohne sie legt man hier Aufgaben an und weiss nicht, was schon
da ist -- und traegt zum dritten Mal dieselbe ein. -->
<!-- AUFGABEN AUS DER VORLAGE (umgezogen am 23.09.2026)
Filipe: "das soll auch bitte nicht in der kategorie aufgaben
sondern eure aufgaben sein bitte."
ER STEHT ZWISCHEN DEM FORMULAR UND DER AUFGABENLISTE, und das
ist die Reihenfolge, in der man denkt: erst die Person, dann was
sie bekommt -- entweder selbst getippt (das Formular darueber)
oder eines der fertigen (hier) --, und darunter sofort, was
daraufhin bei ihr liegt.
Zwei Wege zur selben Handlung stehen damit nebeneinander, statt
auf zwei Seiten verteilt. -->
<section class="vorlagenbrett" id="vorlagenbrett" hidden></section>
<section class="e-aufgaben" id="e-aufgaben-block" hidden>
<h2 class="e-abschnitt" id="e-aufgaben-titel">Ihre Aufgaben</h2>
<p class="e-aufgaben__satz" id="e-aufgaben-satz"></p>
<div class="e-aufgaben__liste" id="e-aufgaben-liste" aria-live="polite"></div>
</section>
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
<section id="karte" class="e-karte" hidden></section>
<!-- DEINE EIGENE KARTE.
Sie steht ÜBER den sechs Fragen und UNTER der Liste der anderen:
Wer diese Seite als DogFather öffnet, kommt zuerst zu seiner
Arbeit; wer beurteilt wird, sieht die Liste gar nicht und
landet direkt hier.
Sie erscheint erst, wenn alle gesetzt haben — eine halbe Karte
ist schlimmer als keine. -->
<section id="karte-block" class="e-meine" hidden>
<h2 class="e-abschnitt">Deine Karte</h2>
<p class="e-meine__satz" id="karte-satz">…</p>
<div id="meine-karte" aria-busy="true"></div>
</section>
<!-- ==== DIE SECHS FRAGEN STEHEN WOANDERS (15.09.2026) ==========
Sie hatten hier ihren Platz, solange es keine eigene Seite gab.
Jetzt gibt es eine – und zwei Stellen für dieselben sechs Fragen
wären zwei Stände, die auseinanderlaufen. Hier bleibt der Weg
dorthin, nicht eine Kopie. -->
<section class="e-meins e-meins--verweis" id="meins-block" hidden>
<h2 class="e-abschnitt">Und wie geht es dir?</h2>
<p class="e-meins__satz">
Ein paar Fragen über dich – die Antworten sieht niemand außer dir.
</p>
<a class="knopf knopf--klein" href="befinden.html">Zu deinen Fragen</a>
</section>
</main>
<script src="assets/js/meldung.js?v=202609240132" defer></script>
<script src="assets/js/nachfrage.js?v=202609240132" defer></script>
<script src="assets/js/wahl.js?v=202609240132" defer></script>
<script src="assets/js/bereiche.js?v=202609240132" defer></script>
<script src="assets/js/installieren.js?v=202609240132" defer></script>
<script src="assets/js/kopf.js?v=202609240132" defer></script>
<script src="assets/js/glocke.js?v=202609240132" defer></script>
<script src="assets/js/holen.js?v=202609240132" defer></script>
<!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein,
also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide
in Dokumentreihenfolge. -->
<script src="assets/js/vorlagenbrett.js?v=202609240132" defer></script>
<script src="assets/js/entwicklung.js?v=202609240132" defer></script>
</body>
</html>