Filipe: "Nicht nur ich soll meine Modis bewerten oder ihnen Feedback geben koennen. Auch die Modis sollen mir Feedback geben koennen. Sie sollen mir beispielsweise sagen koennen: Was koennte ich verbessern?" Und der Schlusssatz seines Pflichtenhefts: "Es soll nicht nur dazu dienen, Leistungen zu kontrollieren. Es soll vor allem dabei helfen, als Team besser zu werden." EIN BRETT FUER BEIDE KAPITEL, NICHT ZWEI. Kapitel 5 (gegenseitiges Feedback) und Kapitel 6 (gemeinsame Reflexion) stellen dieselben Fragen -- "was laeuft gut, was laeuft schlecht, was fehlt" --, einmal an eine Person und einmal an das Team. Zwei Bretter haetten bedeutet, dass man beim Schreiben zuerst entscheiden muss, an WEN es geht, bevor man weiss, WAS man sagen will. Hier ist es umgekehrt: erst die Sache, dann die Richtung. DIE NEUN FRAGEN SIND SEINE, wortwoertlich aus dem Pflichtenheft zusammengezogen: laeuft gut · laeuft nicht gut · unbedingt behalten · an DogFather · was dem Team fehlt · Regel aendern · besser organisieren · Idee · Wunsch fuer spaeter. Sie stehen als feste Faecher da und nicht als freies Feld -- genau das ist der Unterschied zwischen einer Sammlung und einem Haufen: Neun Faecher kann man auswerten, tausend Formulierungen nicht. KEIN NEUER BAUKASTEN. Die Rueckmeldung ist ein BEREICH wie das Ideen-Board: dieselbe Tabelle, dieselbe Seite, dieselben Regeln fuers Anlegen, Aendern und Loeschen, dieselbe Zugangssperre. Ein eigenes Modul haette all das ein zweites Mal gebraucht -- und die zweite Fassung waere die gewesen, in der eine Regel fehlt. DIE EINE NEUE SACHE IST DIE RICHTUNG. Beim Schreiben waehlt man zwischen "fuers Team" (Vorgabe) und "nur an DogFather". Ohne diese Wahl haette man eines von beidem verloren: Wer "was koenntest du besser machen" vor versammelter Mannschaft sagen muss, sagt es nicht -- wer alles nur unter vier Augen sagen kann, hat kein Team-Gespraech. UND "NUR DOGFATHER" HEISST NUR DOGFATHER -- die rechte Hand ausdruecklich nicht. Sie sieht sonst ueberall dasselbe wie er; hier nicht, weil das Etikett sonst nicht stimmen wuerde. Eine Zusage mit einer Ausnahme im Kleingedruckten ist keine. Sie schreibt selbst genauso -- auch ueber ihn. DIE ZUSAGE STEHT IN sichtbarEintrag(), also in derselben Funktion, durch die auch das Lesen einer einzelnen Zeile, das Aendern und das Loeschen gehen. Eine Regel, die nur die Liste filtert, laesst die Zeile ueber ihre Nummer trotzdem heraus; die Pruefung klopft deshalb auch von hinten (PATCH und DELETE auf die vertrauliche Zeile: 404, auf die offene: 200). `COALESCE(nur_leitung, 0)`: Jede Zeile, die es vor heute gab, hat dort NULL, und in SQL ist `NULL = 0` nicht falsch, sondern UNBEKANNT. Ohne den Ersatzwert waere der gesamte alte Bestand von einer Minute auf die andere unsichtbar gewesen -- und niemand haette es gemeldet, denn ein leeres Brett sieht nicht nach Fehler aus. Beide Richtungen sind gemessen. KEINE ANONYMITAET, und das ist eine Entscheidung, keine Luecke. In einem Team dieser Groesse waere sie ohnehin keine: An drei Saetzen erkennt jeder jeden. Ein Versprechen, das nicht haelt, ist schlimmer als keines. DER FARBTON DER KACHEL IST AUSGERECHNET, NICHT AUSGESUCHT. Bei 24 vorhandenen Toenen landet ein neuer fast zwangslaeufig neben einem alten, und zwei Kacheln in FAST derselben Farbe sind schlimmer als in derselben -- bei gleicher merkt man den Fehler, bei fast gleicher sucht man ihn. Alle 24 wurden in Farbwinkel umgerechnet; die groesste Luecke liegt zwischen 90 und 160 Grad und ist 70 Grad breit, mehr als doppelt so viel wie die naechste. Der neue Ton sitzt in ihrer Mitte, 8,9 zu 1 auf dunklem Grund. pruef-rueckmeldung 34 (neu) · pruef-rollen 274 -> 277 · pruef-start-ansicht zaehlt jetzt 25 Kacheln und 25 Farben (sie zaehlt selbst, statt eine Zahl festzuhalten -- deshalb blieb sie gruen) · pruef-modi-ideen 30 · pruef-modi-verborgen 78 · pruef-css-klassen gruen · pruef-modi-wortleck 5. Co-Authored-By: Claude Opus 5 <[email protected]>
100 lines
4.6 KiB
HTML
100 lines
4.6 KiB
HTML
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||
<title>Calls & Protokolle · Spicy & Dogi</title>
|
||
<meta name="robots" content="noindex, nofollow" />
|
||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||
<!-- Die Farbe der Fensterleiste, wenn der Workspace als App laeuft.
|
||
Stand auf #0674b9 (kraeftiges Blau) und stach damit als einziger
|
||
heller Balken ueber einer durchweg dunklen Seite. Jetzt derselbe
|
||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||
eine Flaeche sind statt zweier. -->
|
||
<meta name="theme-color" content="#06090f" />
|
||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609102244" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609102244" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609102244" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609102244" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609102244" />
|
||
<link rel="stylesheet" href="assets/css/calls.css?v=202609102244" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609102244" />
|
||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||
<link rel="stylesheet" href="assets/css/haus.css?v=202609102244" />
|
||
</head>
|
||
|
||
<body class="start">
|
||
|
||
<!-- Der Schleier ueber der Buehne (Casper und HasiDog in den unteren
|
||
Ecken, siehe start.css). Ein eigenes Element statt eines dritten
|
||
Pseudo-Elements -- body hat nur ::before und ::after. -->
|
||
<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">Creator Workspace</a> · Calls</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">Gespräche</p>
|
||
<h1 class="titel">Calls & Protokolle</h1>
|
||
<p class="unterzeile">
|
||
Jeder Call endet mit klaren To-dos – die landen direkt im Aufgabenbrett,
|
||
nicht in einem Dokument, das niemand mehr öffnet.
|
||
</p>
|
||
</div>
|
||
<a class="knopf knopf--klein" href="kalender.html">Call planen</a>
|
||
</section>
|
||
|
||
<!-- Wo die Calls stattfinden. Einmal festgelegt, steht der Knopf
|
||
„Call beitreten" danach an JEDEM Gespräch – niemand muss mehr bei
|
||
jedem Termin einen Link eintippen, und die Frage „wo führe ich den
|
||
Call?" ist beantwortet, bevor sie jemand stellt. -->
|
||
<section class="call-raum" id="call-raum" hidden>
|
||
<p class="call-raum__zeile">
|
||
<span class="call-raum__schild">Call-Raum</span>
|
||
<a class="call-raum__link" id="call-raum-link" target="_blank" rel="noopener noreferrer" hidden></a>
|
||
<span class="call-raum__leer" id="call-raum-leer" hidden>noch nicht festgelegt</span>
|
||
</p>
|
||
<button type="button" class="knopf-still" id="call-raum-aendern" hidden>Ändern</button>
|
||
<form class="call-raum__form" id="call-raum-form" hidden>
|
||
<label class="feld-schild" for="call-raum-feld">Link zum Sprachkanal (Discord)</label>
|
||
<input id="call-raum-feld" type="url" maxlength="400"
|
||
placeholder="https://discord.com/channels/…" />
|
||
<button type="submit" class="knopf knopf--klein">Speichern</button>
|
||
<button type="button" class="abmelden" id="call-raum-abbrechen">Abbrechen</button>
|
||
</form>
|
||
</section>
|
||
|
||
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
||
|
||
<div id="listen" aria-busy="true"><p class="leise">Gespräche werden geladen …</p></div>
|
||
|
||
</main>
|
||
|
||
<script src="assets/js/ki.js?v=202609102244" defer></script>
|
||
<script src="assets/js/wahl.js?v=202609102244" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202609102244" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609102244" defer></script>
|
||
<script src="assets/js/glocke.js?v=202609102244" defer></script>
|
||
<script src="assets/js/calls.js?v=202609102244" defer></script>
|
||
</body>
|
||
</html>
|