Damit sind alle acht Stufen des Plans gebaut. STUFE 6 -- DAS GESPRAECH "Der Treff -- Hallo sagen, fragen, loben" war eine Liste aus Karten. Der einzige Bereich, in dem Menschen MITEINANDER reden sollen, zwang sie, nebeneinander zu reden: Jeder schrieb eine eigene Karte, niemand antwortete jemandem. Jetzt: Antworten eingerueckt unter ihrem Beitrag, aelteste zuerst (so liest man ein Gespraech), mit Namen und Rolle. Das Feld steht immer da statt hinter einem "Antworten"-Knopf -- ein leeres Feld ist die deutlichste Einladung, die es gibt. Nur EINE Stufe eingerueckt: Auf 390 px ist bei der zweiten Schluss. Eine EIGENE Tabelle, kein Eintrag mit "antwort_auf": Eine Antwort hat keine Art, keinen Zustand, keine Frist und gehoert in keinen Filter. Als Eintrag gefuehrt haette sie zwanzig immer leere Spalten -- und tauchte in jeder Zaehlung auf, die Beitraege zaehlt. Und nicht ueberall: nur Treff und Wunschliste. Aus dem Plan, §9 -- ein Antwortfeld unter jedem Aushang hiesse, jeder Aushang muss betreut werden. ZWEI FEHLER, BEIDE VON DER PRUEFUNG GEFUNDEN 1. EIN PFAD, DER AUSSAH WIE EIN BEREICH. `/api/bereich/antwort/:id` lief in die Middleware auf `/api/bereich/:bereich` -- "antwort" ist kein Bereich. Fuer DogFather ging es (ein frueherer Zweig liess ihn durch), fuer einen Modi kam 404. Ein Weg, der je nach ROLLE an voellig anderer Stelle scheitert, sucht man lange. Liegt jetzt unter `/api/antwort/:id`. 2. UND EIN ECHTES LOCH. Die Loeschregel hiess `!darfSchreiben(req.person, "treff")` -- also "wer schreiben darf", und das duerfen Gaeste ab der Stufe "dabei". JEDER GAST HAETTE JEDE FREMDE ANTWORT LOESCHEN KOENNEN. Gefunden hat es eine Pruefung mit einer FALSCHEN Erwartung: Sie verlangte, dass ein Modi keine fremde Antwort loeschen kann. Das war falsch -- er moderiert ja --, aber der Weg dorthin hat das echte Problem freigelegt. Jetzt entscheidet TREFF_TEAM_ROLLEN. Der Gast-Fall ist ueber HTTP nicht messbar (er kommt nur ueber die crew-Adresse herein, und den Host-Kopf kann fetch nicht setzen). Statt stillschweigend zu ueberspringen prueft die Pruefung die REGEL selbst -- und dass die Route wirklich diese Menge benutzt. STUFE 7 -- JEDES BRETT BEKOMMT SEINE FORM - "Regeln & Hilfe" ist ein DOKUMENT: Sprungmarken oben, vier Abschnitte (Regel, Was passiert wenn, Hilfe, Haeufige Frage). Man schlaegt es im Streitfall auf und will FINDEN, nicht scrollen. scroll-margin-top, sonst verschwindet die angesprungene Ueberschrift unter der Kopfleiste und der Sprung sieht aus wie ins Leere. - "Anschlagbrett" zeigt grosse AUSHAENGE statt Zeilen -- gemessen 21 px Titel statt 17. Ein Aushang zwischen dreissig anderen ist kein Aushang. - "Mitmachen" gruppiert nach Art, die drei Schritte zuerst. UND EINE SCHRIFT, DIE ZU KLEIN WAR: Die Rollen-Marke an einer Antwort stand auf 11,2 px, die Hausgrenze liegt bei 11,5. Die Grenze anzuheben waere der bequeme Weg gewesen -- und ab da haette pruef-css-klassen nichts mehr gehalten. NEU: pruef-gespraech (27 Pruefungen) pruef-treff-start jetzt 34 (Stufe 7 mitgeprueft) Alle Community-Pruefungen gruen: gespraech 27, treff-start 34, kreislauf 23, countdown 22, wunschliste 30, galerie 26, bremse 16, treff 66, bereiche-lesend, css-klassen, deutsche-texte 12. Co-Authored-By: Claude Opus 5 <[email protected]>
114 lines
4.7 KiB
HTML
114 lines
4.7 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>Wie geht's dir? · Spicy & 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=202609171211" />
|
||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609171211" />
|
||
<link rel="stylesheet" href="assets/css/gate.css?v=202609171211" />
|
||
<link rel="stylesheet" href="assets/css/start.css?v=202609171211" />
|
||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609171211" />
|
||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609171211" />
|
||
<link rel="stylesheet" href="assets/css/module.css?v=202609171211" />
|
||
<link rel="stylesheet" href="assets/css/haus.css?v=202609171211" />
|
||
</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 Dogi</a> · Wie geht's dir?</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">
|
||
|
||
<!-- ==================================================================
|
||
DIESE SEITE GEHÖRT DEM MENSCHEN, DER SIE ÖFFNET.
|
||
|
||
Hier steht kein anderer Name, keine Beobachtung über jemanden und
|
||
keine Zahl, die jemand anders sieht. Genau das war der Grund für
|
||
die eigene Seite: Die Kachel verspricht „die Antworten sieht nur
|
||
du" – und führte vorher auf eine Seite voller anderer Leute.
|
||
|
||
Was DogFather sieht, ist eine einzige Zahl ohne Namen: wie viele
|
||
im Team es gerade schwer haben. Nicht wer, nicht womit.
|
||
============================================================== -->
|
||
|
||
<section class="kopf-zeile">
|
||
<div>
|
||
<p class="marke">Für dich</p>
|
||
<h1 class="titel">Wie geht's dir?</h1>
|
||
<p class="unterzeile">
|
||
Sechs Fragen über dich. Niemand aus dem Team sieht deine Antworten –
|
||
auch DogFather nicht.
|
||
</p>
|
||
</div>
|
||
</section>
|
||
|
||
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
||
|
||
<!-- Der Rhythmus. Steht VOR den Fragen: Wer hereinkommt, soll zuerst
|
||
wissen, ob gerade etwas von ihm erwartet wird. -->
|
||
<section class="b-takt" id="takt" hidden>
|
||
<p class="b-takt__satz" id="takt-satz">…</p>
|
||
<button type="button" class="knopf knopf--klein" id="takt-knopf" hidden>Runde abschließen</button>
|
||
</section>
|
||
|
||
<section id="fragen-block">
|
||
<div id="fragen" aria-busy="true"><p class="leise">wird geladen …</p></div>
|
||
</section>
|
||
|
||
<!-- Der Verlauf. Nur für die Person selbst – er wird nirgends sonst
|
||
im Haus gelesen. Er steht unter den Fragen, weil er sie erklärt
|
||
und nicht ersetzt. -->
|
||
<section class="b-verlauf" id="verlauf-block" hidden>
|
||
<h2 class="e-abschnitt">Wie es sich entwickelt</h2>
|
||
<p class="b-verlauf__satz" id="verlauf-satz">…</p>
|
||
<div id="verlauf" class="b-verlauf__gitter"></div>
|
||
</section>
|
||
|
||
<!-- ==================================================================
|
||
WAS DEIN VERLAUF SAGT (15.09.2026)
|
||
|
||
Filipe: „mach mir auch eine analyse […] eine professionelle auch
|
||
mit infos und so aus aller welt was tiktok angeht."
|
||
|
||
Sie steht UNTER dem Verlauf: erst die Antworten, dann das Muster
|
||
darin. Andersherum läse man die Deutung, bevor man weiß, worauf
|
||
sie sich bezieht.
|
||
|
||
Sie wird gerechnet, nicht gespeichert – und sie bewertet nicht.
|
||
Keine Punktzahl über das eigene Befinden: Eine Zahl lädt dazu
|
||
ein, sie zu verbessern statt ehrlich zu antworten.
|
||
============================================================== -->
|
||
<section class="b-analyse" id="analyse-block" hidden>
|
||
<h2 class="e-abschnitt">Was dein Verlauf sagt</h2>
|
||
<p class="b-analyse__satz" id="analyse-satz">…</p>
|
||
<div id="analyse" class="b-analyse__liste"></div>
|
||
<p class="b-analyse__quelle" id="analyse-quelle"></p>
|
||
</section>
|
||
|
||
</main>
|
||
|
||
<script src="assets/js/wahl.js?v=202609171211" defer></script>
|
||
<script src="assets/js/bereiche.js?v=202609171211" defer></script>
|
||
<script src="assets/js/kopf.js?v=202609171211" defer></script>
|
||
<script src="assets/js/befinden.js?v=202609171211" defer></script>
|
||
</body>
|
||
</html>
|