Files
dogfather-universe/workspace/befinden.html
T
DogFatherGit bfbe6feafe Fett, kursiv, unterstrichen, durchgestrichen -- ueberall
Filipe, 21.09.2026: "dan will ich dass die leute auch immer die art
von text aussuchen können, fettgedrückt, unterstrichen und so alles.
das überall sei es im chat jeder für sich oder sei es wenn die modis
oder rechte hand oder dogfather eine aufgabe oder sachen posten."

VORHER GEMESSEN: Es gab genau EINE Auszeichnung im ganzen Haus --
fett, und nur auf den Brettern (`mitFett` in bereich.js). Im Chat
konnte niemand etwas hervorheben.

EINE QUELLE FUER DAS GANZE HAUS: workspace/assets/js/textform.js.
Chat, Bretter und Aufgaben zeichnen ihren Text jetzt durch denselben
Zerleger. Drei Fassungen derselben Regel waeren drei Fassungen, die
verschieden altern.

  **fett**   _kursiv_   __unterstrichen__   ~~durchgestrichen~~

Dazu eine Leiste ueber jedem Schreibfeld: F K U S, 44 px am Finger,
Strg+B/I/U, und ein zweiter Druck nimmt die Zeichen wieder weg.

DIE WORTGRENZEN SIND DER EIGENTLICHE BAU. Ein Zerleger, der alles
auszeichnet, ist schlimmer als keiner: `datei_name_hier` hiesse
plotzlich anders, als es heisst, und `@max_muster` ebenso. Deshalb
stehen bei den Unterstrichen Wortgrenzen -- bei Sternchen und Tilden
nicht, die kommen in Text nicht versehentlich paarweise vor.

GEBAUT MIT createTextNode, NIE innerHTML. Wer Text zu Auszeichnung
macht, ist einen Tippfehler von einer Luecke entfernt. Das ist heute
sicher; pruef-textform misst es, damit es das morgen auch ist.

EIN ECHTER FEHLER DABEI GEFUNDEN -- in meinem eigenen Einbau von
vorhin: Auf dem Aufgabenbrett stand `$('f-text')` in einem Block, der
`$` gar nicht kennt (die Datei hat drei getrennte Bloecke).
`ReferenceError: $ is not defined`, die Leiste kam dort nie an, und
die Seite sah dabei vollkommen normal aus. Derselbe Block beginnt
ausserdem mit `if (!feld) return;` auf ein Aufwand-Feld, das mit
Textgestaltung nichts zu tun hat -- die Leiste haette an einer
voellig fremden Bedingung gehangen. Jetzt ein eigener Block, ohne
fremden Helfer und ohne fremde Bedingung.

Gefunden hat es die Pruefung, weil sie die Leiste AM FELD sucht,
statt den Aufruf im Quelltext zu zaehlen. Sie sammelt seitdem auch
Skriptfehler ein -- ein ReferenceError ist immer ein Befund, auch
wenn man noch nicht weiss, was er anrichtet.

pruef-textform.mjs, 50 Aussagen:
  - welche Seite das Modul braucht, wird ABGELEITET (beide
    Richtungen: keine ohne, keine umsonst) -- 3 brauchen, 32 nicht
  - 13 Regelfaelle im echten Browser an der echten Datei, davon
    sechs, die NICHT gestaltet werden duerfen
  - eine echte Nachricht wird zu <strong>/<em>/<u>/<s>
  - Sicherheitsprobe: <b> und <img onerror> bleiben Text, nichts
    wird ausgefuehrt -- und die echte Auszeichnung daneben wirkt
    trotzdem (sonst waere nur bewiesen, dass gar nichts passiert)
  - die Leiste legt Zeichen wirklich um und wieder ab
  - Gegenproben fuer beide Richtungen

Nachbarn unveraendert gruen: pruef-chat-optik 45/0 (war 39 -- die
Antwortleiste kam dazu), pruef-aufgabenbrett 49/0, pruef-nachfrage
49/0, pruef-css-klassen 30/0, pruef-tippziele 11/0, pruef-meldungen
8/0.
2026-09-21 16:42:43 +02:00

173 lines
7.8 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>Wie geht's dir? · 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=202609211642" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609211642" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609211642" />
<link rel="stylesheet" href="assets/css/start.css?v=202609211642" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609211642" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609211642" />
<link rel="stylesheet" href="assets/css/module.css?v=202609211642" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609211642" />
</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> · 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>
<!-- ================================================================
DIE EINE AUSNAHME GEHÖRT DAZU (ergänzt 19.09.2026).
Hier stand: „Niemand aus dem Team sieht deine Antworten – auch
DogFather nicht." Punkt. Das ist fast wahr und deshalb
gefährlich: Aus denselben Antworten entsteht eine Ampel für die
Leitung (workspace-entwicklung.js). Sie ist sauber gebaut – sie
nennt keine Namen, keinen Punkt, kein Datum, und unter drei
Personen schweigt sie ganz. Aber sie existiert.
Der ehrliche Satz war längst geschrieben und wurde vom Server
sogar mitgeliefert (`block.text`) – nur hat ihn nie jemand
angezeigt. Er steht jetzt hier im HTML und nicht im Skript:
Wer diese Seite öffnet, soll ihn lesen, BEVOR er tippt, nicht
nachdem ein Abruf zurückgekommen ist.
Wenn jemand später davon erfährt und die Seite hatte „niemand"
gesagt, ist das Vertrauen weg – und mit ihm die ganze Funktion.
============================================================= -->
<p class="unterzeile">
Ein paar Fragen über dich. Deine Antworten liest niemand – auch
DogFather nicht.
</p>
<p class="unterzeile unterzeile--zusatz">
Das Einzige, was nach außen dringt: ob es im Team gerade
<em>jemandem</em> zu viel ist. Ohne Namen, ohne Frage, ohne Datum –
und erst ab drei Personen im Team, weil es darunter dasselbe wäre
wie ein Name.
</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>
<!-- ===================================================================
DIE EINE ZUSAMMENFASSUNG (20.09.2026)
Filipe: „am ende von allen fragen will ich eine gesamte
zusammenfassung, nicht bei jeder frage oder kategorie eine,
sondern EINE gesamte am ende. eine motivierende zusammenfassung
für die person."
SIE STEHT DIREKT UNTER DEN FRAGEN und über dem Verlauf. Das ist
Absicht: Sie handelt von dem, was man gerade angetippt hat —
Verlauf und Musteranalyse handeln von den Runden davor und
brauchen mindestens zwei. Diese hier gibt es beim ersten Mal.
GERECHNET HAT SIE DER SERVER (workspace-befinden-resuemee.js).
Dort steht auch, warum hier bewusst KEINE KI hängt: Das sind
Gesundheitsdaten, ein Sprachmodell erfindet, und ein fremder
Dienst fällt aus. Alle drei Gründe reichen einzeln.
=================================================================== -->
<section class="b-fazit" id="fazit-block" hidden aria-live="polite">
<h2 class="e-abschnitt">Was das zusammen heißt</h2>
<p class="b-fazit__kopf" id="fazit-kopf"></p>
<div class="b-fazit__traegt" id="fazit-traegt" hidden>
<p class="b-fazit__schild">Das trägt gerade</p>
<ul class="b-fazit__liste" id="fazit-traegt-liste"></ul>
</div>
<p class="b-fazit__thema" id="fazit-thema" hidden></p>
<p class="b-fazit__schluss" id="fazit-schluss"></p>
<p class="b-fazit__zahlen leise" id="fazit-zahlen"></p>
</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/meldung.js?v=202609211642" defer></script>
<script src="assets/js/nachfrage.js?v=202609211642" defer></script>
<script src="assets/js/wahl.js?v=202609211642" defer></script>
<script src="assets/js/bereiche.js?v=202609211642" defer></script>
<script src="assets/js/kopf.js?v=202609211642" defer></script>
<script src="assets/js/befinden.js?v=202609211642" defer></script>
</body>
</html>