Files
dogfather-universe/workspace/bereich.html
T
DogFatherGitandClaude Opus 5 670940bd3a Stufe 4: eine Bremse -- und eine stille Sperre, die es nicht gibt
Aus dem Plan im Vault. Diese Stufe steht dort bewusst VOR Galerie und
Gespraech: Mehr Sichtbarkeit heisst mehr Angriffsflaeche, und ein
Bereich, der waechst und keine Bremse hat, waechst genau einmal.

DER TREFF HATTE SCHON MEHR, ALS MEIN PLAN ANNAHM
Stufen (WER schreiben darf: neu, dabei, stamm) und Massnahmen (wer
NICHT MEHR darf: Hinweis, Pause, Ausschluss). Gefehlt hat die Frage
dazwischen: WIE SCHNELL. Ein Stammgast konnte in einer Minute vierzig
Beitraege absetzen -- aus Aerger, aus Versehen oder per Skript.

DIE STILLE SPERRE IST VERWORFEN -- nach einer Messung, nicht nach
einem Gefuehl. `gast` ist eine Rolle mit Zugangscode, es gibt KEINE
Selbstanmeldung. Wer ausgeschlossen wird, kann sich nicht neu
anmelden. Damit loest ein Shadowban ein Problem, das dieses System
nicht hat; er bliebe ein Werkzeug, das Menschen taeuscht, ohne etwas
zu verhindern. Steht jetzt in §9 des Plans: was wir NICHT bauen.

DIE BREMSE: 10 Beitraege je Stunde und Person, nur auf den
Community-Brettern. Keine neue Tabelle -- die Antwort steht schon in
`eintraege`, eine Zaehlung ueber die letzte Stunde genuegt. Eine eigene
Tabelle waere ein zweiter Ort fuer dieselbe Wahrheit und muesste
zusaetzlich aufgeraeumt werden.

Die Absage sagt, WANN es weitergeht ("In 37 Minuten"). Ohne Zeitangabe
probiert jemand im Minutentakt weiter -- genau die Last, die man
verhindern wollte.

MEIN ERSTER ENTWURF BREMSTE DIE FALSCHE ARBEIT: Er zaehlte ALLE
Eintraege. Eine Creatorin mit zehn Content-Ideen haette danach im Treff
nichts mehr schreiben koennen. Eine Bremse, die das richtige Verhalten
bestraft, wird abgeschaltet -- und ist ab da wirkungslos.

DIE TEAM-SICHT: "Was hereinkommt", ganz oben auf der Moderationsseite,
vor den offenen Meldungen. Eine Meldung setzt voraus, dass jemand etwas
GESEHEN hat -- und wer acht Bretter durchklicken muss, tut das nicht
achtmal am Tag. Eine Zeile je Beitrag statt einer Karte: Hier
ueberfliegt man, man liest nicht. Der Inhalt steht auf dem Brett; eine
Vorschau waere eine zweite Stelle, an der derselbe Beitrag steht.

NEU: pruef-bremse (16 Pruefungen)
Die Grenze wird aus dem Code GELESEN, nicht abgeschrieben -- sonst
misst die Pruefung beim naechsten Anpassen etwas anderes als der
Server tut. Dazu die drei Fragen: Greift sie? Trifft sie die richtige
Arbeit (Content bleibt offen, das zweite Treff-Brett nicht)? Und laesst
sie den normalen Fall in Ruhe? Gegenprobe: Beitraege auf vorgestern
zurueckdatiert -- danach muss es sofort wieder gehen.

pruef-treff 66, pruef-wunschliste 30, pruef-countdown 22,
pruef-bereiche-lesend, pruef-css-klassen: gruen.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-17 11:35:30 +02:00

208 lines
9.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>Bereich · 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=202609171134" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609171134" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609171134" />
<link rel="stylesheet" href="assets/css/start.css?v=202609171134" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609171134" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609171134" />
<link rel="stylesheet" href="assets/css/module.css?v=202609171134" />
<!-- 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=202609171134" />
</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>
<!-- Der innere span.marke__text fehlte hier als einziger Seite. Damit
griffen weder die Überlauf-Kürzung noch der Rang im Schriftzug --
aufgefallen erst, als die Seitenprüfung die Marke auf allen
dreizehn Seiten nachgesehen hat. -->
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Creator&nbsp;Workspace</a> ·
<span id="marke-bereich">…</span></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">Betreuung</p>
<h1 class="titel" id="titel">…</h1>
<p class="unterzeile" id="unterzeile"></p>
</div>
<button type="button" class="knopf knopf--klein" id="neu-oeffnen">Neuer Eintrag</button>
</section>
<form class="neu" id="neu" hidden>
<div class="neu__raster">
<div>
<label class="feld-schild" for="f-art">Art</label>
<select id="f-art"></select>
</div>
<div>
<label class="feld-schild" for="f-datum" id="schild-datum">Datum</label>
<input id="f-datum" type="date" />
</div>
<!-- DIE UHRZEIT (17.09.2026). Nur dort sichtbar, wo Termine
stehen. Optional: Viele Termine haben keine Uhrzeit ("diese
Woche", "im Oktober"), und ein Pflichtfeld haette dafuer eine
erfundene erzwungen. Ohne sie zaehlt der Countdown in Tagen. -->
<div id="feld-uhrzeit" hidden>
<label class="feld-schild" for="f-uhrzeit">Uhrzeit</label>
<input id="f-uhrzeit" type="time" />
<p class="feld-hinweis">Wenn du sie weißt. Dann zählt der Countdown in Stunden.</p>
</div>
<!-- Nur bei Agentur-Events: das Ende des Zeitraums. Der Beginn ist
das Feld darueber -- ein zweites Datumsfeld daneben liest sich
als Spanne, ein Feld "Zeitraum" mit Text darin nicht. -->
<div id="feld-ende" hidden>
<label class="feld-schild" for="f-ende">Bis</label>
<input id="f-ende" type="date" />
</div>
<!-- Was DogFather dafuer tun muesste. Nur in Bereichen, die das
Feld kennen (siehe BEREICHE.angebote) -- sonst bleibt es
verborgen und wird auch nicht mitgeschickt. -->
<div id="feld-einsatz" hidden>
<label class="feld-schild" for="f-einsatz" id="einsatz-schild">Einsatz</label>
<input id="f-einsatz" type="text" maxlength="300"
placeholder="z. B. Termin ansagen und den Gast einladen" />
</div>
<!-- FÜRS TEAM ODER NUR AN DOGFATHER (10.09.2026, Kapitel 5).
Steht nur dort, wo der Bereich es vorsieht -- der Server sagt
das über `einstellung.vertraulich`, nicht diese Datei.
Es ist ein Schalter mit zwei Zuständen und keine Auswahlliste:
Es gibt genau zwei Antworten, und eine davon ist der
Normalfall. -->
<div id="feld-vertraulich" hidden>
<label class="feld-schild" for="f-vertraulich">Wer darf das lesen?</label>
<label class="vertraulich-zeile">
<input type="checkbox" id="f-vertraulich" />
<span>
<strong>Nur DogFather</strong>
<em>Sonst liest es das ganze Team – auch die rechte Hand.</em>
</span>
</label>
</div>
<div id="feld-dringlich" hidden>
<label class="feld-schild" for="f-dringlich" id="dringlich-schild">Dringlichkeit</label>
<select id="f-dringlich">
<option value="hoch">hoch</option>
<option value="mittel" selected>mittel</option>
<option value="niedrig">niedrig</option>
</select>
</div>
<div id="feld-bewertung" hidden>
<label class="feld-schild" for="f-bewertung" id="bewertung-schild">Bewertung (1–5)</label>
<select id="f-bewertung">
<option value="">—</option>
<option value="1">1 – schwach</option>
<option value="2">2</option>
<option value="3">3 – solide</option>
<option value="4">4</option>
<option value="5">5 – stark</option>
</select>
</div>
<div id="feld-creator" hidden>
<label class="feld-schild" for="f-creator" id="schild-creator">Creator</label>
<select id="f-creator"><option value="">—</option></select>
<p class="feld-hinweis" id="hinweis-creator" hidden></p>
</div>
</div>
<div class="neu__zeile">
<label class="feld-schild" for="f-titel" id="schild-titel">Überschrift</label>
<input id="f-titel" maxlength="160" required />
</div>
<div class="neu__zeile">
<label class="feld-schild" for="f-text" id="schild-text">Text <span class="leise">(optional)</span></label>
<textarea id="f-text" rows="4" maxlength="6000"></textarea>
</div>
<!-- ==== Nur bei Agentur-Events ====================================
Zwei Felder, die den Unterschied zwischen einem Aufruf und einer
Aktion ausmachen, an der jemand teilnehmen kann: WAS ist zu tun
(und was springt dabei heraus) und WAS GILT dabei. Beides stand
bisher irgendwo im Fliesstext oder gar nicht -- und jede
Rueckfrage dazu kostet eine Nachricht. -->
<div class="neu__zeile" id="feld-aufgaben" hidden>
<label class="feld-schild" for="f-aufgaben">Aufgaben
<span class="leise">– womit sammelt man Punkte, was gibt es zu gewinnen</span></label>
<textarea id="f-aufgaben" rows="5" maxlength="6000"
placeholder="z. B.&#10;· 1 Punkt je Live-Stunde&#10;· 3 Punkte je neuem Abo&#10;· Platz 1 gewinnt …"></textarea>
</div>
<div class="neu__zeile" id="feld-regeln" hidden>
<label class="feld-schild" for="f-regeln">Regeln
<span class="leise">– was zählt, was nicht, bis wann</span></label>
<textarea id="f-regeln" rows="5" maxlength="6000"
placeholder="z. B.&#10;· Nur Streams auf dem eigenen Konto&#10;· Punkte zählen bis 23:59 am letzten Tag"></textarea>
</div>
<p class="fehler" id="neu-fehler" role="alert" aria-live="polite"></p>
<div class="neu__knoepfe">
<button type="submit" class="knopf knopf--klein" id="neu-speichern">Eintragen</button>
<button type="button" class="abmelden" id="neu-abbrechen">Abbrechen</button>
</div>
</form>
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
<div class="filter" id="filter"></div>
<!-- Fertige Punkte zum Uebernehmen -- nur in Bereichen, fuer die es
welche gibt (derzeit LIVE-Analyse). -->
<!-- Unterweisungen mit beidseitiger Bestaetigung. Nur im Bereich
"Schutz & Regeln" -- dort gehoeren Richtlinien hin. -->
<div id="schulung" hidden></div>
<div id="vorlagen" hidden></div>
<!-- DER COUNTDOWN. Nur bei "Was ansteht": Die einzige Frage, die
ein Zuschauer dort wirklich hat, ist WANN -- und sie gehoert
gross beantwortet, nicht in Zeile vier. -->
<section id="countdown" class="countdown" hidden></section>
<div id="liste" aria-busy="true"><p class="leise">Einträge werden geladen …</p></div>
</main>
<script src="assets/js/wahl.js?v=202609171134" defer></script>
<script src="assets/js/bereiche.js?v=202609171134" defer></script>
<script src="assets/js/kopf.js?v=202609171134" defer></script>
<script src="assets/js/glocke.js?v=202609171134" defer></script>
<script src="assets/js/checkliste.js?v=202609171134" defer></script>
<script src="assets/js/ampel.js?v=202609171134" defer></script>
<script src="assets/js/schulung.js?v=202609171134" defer></script>
<script src="assets/js/vorlagen.js?v=202609171134" defer></script>
<script src="assets/js/bereich.js?v=202609171134" defer></script>
</body>
</html>