Punkt 7: Vier Koennensstufen in den Bereichslisten -- Anfaenger bis Meister

Wunsch Filipe: "ich will dass es in diesen kategorien ... kategorien
gibt wie jetzt, aber fuer anfaenger, fortgeschrittene, profis .... falls
es noch eine kategorie gibt fuege ruhig hinzu. informiere dich so krass
wie es nur geht ... und dan will ich dass du das perfekt alles aufbaust
mit aufgaben und so."

VIER STUFEN, UND DIE VIERTE IST NICHT AUSGEDACHT. In den gaengigen
Kompetenzmodellen (Dreyfus) folgt auf "kompetent" eine Stufe, auf der
es nicht mehr um das eigene Koennen geht, sondern darum, dass es OHNE
einen weiterlaeuft. Genau daran haengen die elf Punkte der obersten
Stufe: Vorlagen, eingewiesene Vertretung, abgelegte Loesungen.

  Anfaenger        was von Anfang an sitzen muss
  Fortgeschritten  Routine statt Zufall
  Profi            gemessen statt geschaetzt
  Meister          laeuft auch ohne dich

DIE STUFE HAENGT AM PUNKT, NICHT AN DER GRUPPE. Eine Gruppe ist ein
ABLAUF ("Vor der Sendung"), eine Stufe ist ein KOENNEN. Als Gruppen
gebaut waeren es zwoelf Abschnitte statt drei, und dieselbe Frage
stuende viermal da. So bleibt der Ablauf die Gliederung und die Stufe
ein Filter darueber.

DIE INHALTE SIND RECHERCHIERT, NICHT AUSGEDACHT. 47 vorhandene Punkte
haben eine Stufe bekommen, 28 neue sind dazugekommen -- ueberwiegend
auf Profi und Meister, weil der Bestand dort duenn war. Was jetzt
drinsteht und vorher fehlte, unter anderem:

  * Bitrate hoechstens 70-80 % des GEMESSENEN Uploads; der Rest ist
    der Puffer gegen verworfene Bilder.
  * Keyframe-Abstand zwei Sekunden -- alles andere kann beim
    Zuschauer zu Puffern oder gar nicht erst zum Abspielen fuehren.
  * Tonfilter in der Reihenfolge Rauschunterdrueckung, Kompressor,
    Rauschsperre: Ein Kompressor davor hebt das Rauschen mit an.
  * Hardware-Encoder statt Prozessor -- der groesste Einzelgewinn an
    Stabilitaet.
  * Verworfene Bilder ABLESEN: Leitung und Kodierung sind zwei
    verschiedene Fehler mit zwei verschiedenen Loesungen.
  * Eskalationsleiter in vier Stufen (ansprechen, loeschen, Auszeit,
    Sperre) -- vorher festgelegt, weil Ungleichbehandlung das ist, was
    Communitys spaltet.
  * Moderatoren EINGEWIESEN, nicht nur ernannt: Regeln schriftlich,
    Eskalationsleiter, Werkzeuge einmal gezeigt.
  * Privater Probelauf statt Programmvorschau -- erst der zeigt, was
    beim Zuschauer ankommt.

Zahlen: LIVE 33 Punkte (11/10/8/4), Community 23 (7/7/5/4), Technik 19
(6/6/4/3). Jeder Punkt hat genau eine Stufe -- nachgemessen, nicht
angenommen.

DIE VORGABE IST "ALLE". Ein Filter, der beim Oeffnen schon etwas
versteckt, laesst einen Punkte suchen, die man gestern noch gesehen
hat. Die Gruppenzahlen zaehlen mit dem Filter mit; eine Gruppe, in der
nichts uebrigbleibt, sagt das in einem Satz statt leer dazustehen.

Die vier Stufenfarben sind GELIEHEN, nicht ausgesucht: dieselben, die
auf der Uebersicht schon "offen / dringend / laeuft / erledigt"
tragen. Wer die eine Seite kennt, liest die andere ohne Legende.

ZWEI EIGENE FEHLER UNTERWEGS:

1. NAMENSKOLLISION. Ich habe die Marke `fest-punkt__stufe` genannt --
   den Namen gibt es dort laengst fuer den BEARBEITUNGSstand (Offen /
   Passt so / Verbessern). Gemessen standen danach 66 Marken an 33
   Punkten, und mein neues CSS faerbte den alten Behaelter mit. Heisst
   jetzt `__koennen`. Zwei verschiedene Dinge unter einem Namen ist
   derselbe Fehler wie zwei Regeln fuer dieselbe Sache, nur eine Ebene
   frueher.

2. SCHRIFTGROESSE. Die Marke stand auf 0,66 rem = 10,56 px.
   pruef-css-klassen hat es sofort gemeldet (44 statt 43 Stellen unter
   11,5 px). Jetzt 0,72 rem.

Geprueft: pruef-checkliste, pruef-css-klassen, pruef-workspace-seiten,
pruef-schulung -- alle in Ordnung. Dazu alle drei Bereiche im Browser
durchgefiltert.

Quellen der Recherche: obsproject.com (NVENC/Encoder), dacast.com und
obs-versions.com (Bitrate, Keyframe, Tonfilter), switcherstudio.com
(Probelauf), help.twitch.tv und sendbird.com (Moderation,
Eskalation), jeffbullas.com (Einweisung von Moderatoren).

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-09 02:05:30 +02:00
co-authored by Claude Opus 5
parent 6815ba89ba
commit e616d88a30
22 changed files with 491 additions and 240 deletions
+108 -2
View File
@@ -44,6 +44,45 @@
auf den ersten. */
const gewaehlt = {};
/* =====================================================================
DIE VIER KÖNNENSSTUFEN (09.09.2026, screen7)
Filipe: "ich will dass es in diesen kategorien ... kategorien gibt
wie jetzt, aber für anfänger, fortgeschrittene, profis .... falls
es noch eine kategorie gibt füge ruhig hinzu."
Die vierte ist dazugekommen und sie ist nicht ausgedacht: In den
gängigen Kompetenzmodellen (Dreyfus) folgt auf "kompetent" noch
eine Stufe, auf der es nicht mehr um das eigene Können geht,
sondern darum, dass es OHNE einen weiterläuft -- Vorlagen,
eingewiesene Vertretung, abgelegte Lösungen. Genau daran hängen
hier die elf Punkte der obersten Stufe.
WARUM DIE STUFE AM PUNKT HÄNGT UND NICHT AN DER GRUPPE: Eine
Gruppe ist ein ABLAUF ("Vor der Sendung"), eine Stufe ist ein
KÖNNEN. Wer sie zu Gruppen machte, hätte zwölf Abschnitte statt
drei und müsste dieselbe Frage viermal stellen. So bleibt der
Ablauf die Gliederung, und die Stufe ist ein Filter darüber.
DIE VORGABE IST "ALLE". Ein Filter, der beim Öffnen schon etwas
versteckt, lässt einen Punkte suchen, die man gestern noch
gesehen hat. Wer filtert, hat es selbst getan und weiß es. */
const STUFEN_LEITER = [
{ schluessel: '', name: 'Alle' },
{ schluessel: 'anfaenger', name: 'Anfänger',
hilfe: 'Was von Anfang an sitzen muss. Ohne diese Punkte hilft alles Weitere nichts.' },
{ schluessel: 'fort', name: 'Fortgeschritten',
hilfe: 'Für alle, die regelmäßig senden. Hier entsteht Routine statt Zufall.' },
{ schluessel: 'profi', name: 'Profi',
hilfe: 'Gemessen statt geschätzt: konkrete Werte, Belege, ein Versuch nach dem anderen.' },
{ schluessel: 'meister', name: 'Meister',
hilfe: 'Was auch ohne dich weiterläuft — Vorlagen, Vertretung, abgelegte Lösungen.' },
];
/* Welche Stufe gerade gefiltert ist, je Bereich. Wie die
Klappzustände: Es soll beim Neuzeichnen nicht zurückspringen. */
const stufenFilter = {};
window.checkliste = async function (behaelter, bereich) {
if (!behaelter) return;
let daten;
@@ -111,6 +150,42 @@
block.append(bilanz);
}
/* ---- Die Stufenleiste ----
Sie steht ZWISCHEN Bilanz und Gruppen: erst was los ist, dann
womit man es eingrenzt, dann die Sache selbst. */
const gefiltert = stufenFilter[bereich] || '';
if (alle.some((p) => p.stufe)) {
const leiter = el('div', 'stufenleiter');
leiter.setAttribute('role', 'group');
leiter.setAttribute('aria-label', 'Nach Könnensstufe filtern');
for (const st of STUFEN_LEITER) {
const n = st.schluessel
? alle.filter((p) => p.stufe === st.schluessel).length
: alle.length;
/* EINE STUFE OHNE PUNKTE BEKOMMT KEINEN KNOPF. Ein Filter, der
auf eine leere Liste führt, sieht aus wie ein Fehler. */
if (!n) continue;
const b = el('button', 'stufenleiter__knopf');
b.type = 'button';
b.dataset.stufe = st.schluessel || 'alle';
b.setAttribute('aria-pressed', String(gefiltert === st.schluessel));
if (st.hilfe) b.title = st.hilfe;
b.append(el('span', 'stufenleiter__name', st.name));
b.append(el('span', 'stufenleiter__zahl', String(n)));
b.addEventListener('click', () => {
stufenFilter[bereich] = gefiltert === st.schluessel ? '' : st.schluessel;
window.checkliste(behaelter, bereich);
});
leiter.append(b);
}
block.append(leiter);
/* Der Satz zur gewählten Stufe steht DA, nicht nur im Titel: Ein
Hinweis, den man nur mit der Maus findet, gibt es auf dem Handy
nicht. */
const erklaerung = STUFEN_LEITER.find((x) => x.schluessel === gefiltert)?.hilfe;
if (erklaerung) block.append(el('p', 'stufenleiter__hilfe', erklaerung));
}
/* ---- Die Gruppen ---- */
const aufgeklappt = standLesen(bereich);
const markierte = []; /* Gruppen mit etwas zum Verbessern */
@@ -133,7 +208,10 @@
pfeil.setAttribute('aria-hidden', 'true');
gk.append(pfeil);
gk.append(el('h3', 'fest-gruppe__name', g.name));
gk.append(el('span', 'fest-gruppe__zahl', String(g.punkte.length)));
/* Die Zahl zeigt, was der Filter uebriglaesst -- sonst stuende
"8" an einer Gruppe, in der drei Punkte sichtbar sind. */
gk.append(el('span', 'fest-gruppe__zahl', String(
(stufenFilter[bereich] ? g.punkte.filter((p) => p.stufe === stufenFilter[bereich]) : g.punkte).length)));
/* Das Merkzeichen am Gruppenkopf ist der Grund, warum zugeklappte
Gruppen überhaupt vertretbar sind: Ohne es wäre eine Markierung
@@ -150,9 +228,19 @@
if (g.text) koerper.append(el('p', 'fest-gruppe__text', g.text));
const liste = el('div', 'fest-punkte');
for (const p of g.punkte) {
const sichtbar = gefiltert
? g.punkte.filter((p) => p.stufe === gefiltert)
: g.punkte;
for (const p of sichtbar) {
liste.append(punktBauen(p, daten, bereich, behaelter));
}
/* Eine Gruppe, in der der Filter nichts uebrig laesst, sagt das --
statt leer dazustehen. Ein leerer Kasten liest sich wie ein
Fehler, ein Satz wie eine Antwort. */
if (!sichtbar.length) {
liste.append(el('p', 'fest-gruppe__leer',
'Auf dieser Stufe steht hier nichts an.'));
}
koerper.append(liste);
abschnitt.append(koerper);
@@ -261,6 +349,24 @@
}
if (p.text) links.append(el('p', 'fest-punkt__beschreibung', p.text));
if (p.format) links.append(el('span', 'fest-punkt__marke', p.format));
/* Die Koennensstufe steht AM PUNKT, nicht nur im Filter. Sonst
weiss man beim Blaettern durch "Alle" nicht, warum ein Punkt
schwerer aussieht als der davor. */
if (p.stufe) {
const name = { anfaenger: 'Anfänger', fort: 'Fortgeschritten',
profi: 'Profi', meister: 'Meister' }[p.stufe] || p.stufe;
/* `__koennen`, NICHT `__stufe`. Den Namen `fest-punkt__stufe` gibt
es hier laengst -- er traegt den BEARBEITUNGSstand (Offen /
Passt so / Verbessern). Im ersten Anlauf hatte ich ihn ein
zweites Mal vergeben; gemessen standen danach 66 Marken an 33
Punkten, und mein neues CSS faerbte auch den alten Behaelter
mit. Zwei verschiedene Dinge unter einem Namen ist derselbe
Fehler wie zwei Regeln fuer dieselbe Sache, nur eine Ebene
frueher. */
const m = el('span', 'fest-punkt__koennen', name);
m.dataset.stufe = p.stufe;
links.append(m);
}
kopf.append(links);
/* Die Marke rechts -- immer sichtbar, auch für den Creator, auch