Files
dogfather-universe/server/workspace-entwicklungs-punkte.js
T
DogFatherGitandClaude Opus 5 8f0a184b9f Was DogFather eintraegt, sehen jetzt auch die anderen -- und 113 fertige Inhalte
Vier Bildschirmfotos, vier Auftraege. Vor dem Bauen gemessen
(server/mess-sichtbarkeit.mjs): alle Bereiche, alle vier Rollen.

ZWEI FEHLER, DIE NIEMAND GEMELDET HAETTE
Beide sahen auf DogFathers eigenem Bildschirm vollkommen richtig aus --
und das ist das Tueckische: Ein leeres Brett sieht nicht nach Fehler
aus, sondern nach "da ist eben noch nichts".

1. DIE FREIGABE. "Was ansteht" und "Highlights" zeigen der Community
   nur, was freigegeben ist. Ein aus dem Vorschlagskasten uebernommener
   Eintrag hatte keine Freigabe. Gemessen:

       Brett      DogFather  rechte Hand  Modi  Community
       ansteht        4           4         4        0
       highlight      3           3         3        0

   Filipe konnte fuellen, so viel er wollte -- fuer die Community
   blieben genau die zwei Bretter leer, auf die es ankommt. Wer aus dem
   Team uebernimmt, gibt jetzt zugleich frei: Die Freigabe fragt "hat
   das Team diesen Text gesehen?", und die Antwort ist beim Uebernehmen
   ja. Eine zweite Entscheidung daneben waere keine Sicherheit, sondern
   ein Klick.

2. TEAM_DOGI_ROLLEN IST {hand, modi} -- OHNE "admin". Die
   Sichtbarkeitsregel fuer Team Dogi lautete damit woertlich "Eintraege
   von hand oder modi". Folge: ALLES, was DogFather in Live, Technik,
   Community, Ideen, Angebote oder Rueckmeldung schreibt, war fuer sein
   eigenes Team unsichtbar. Das ist nicht erst seit dem Startkatalog so
   -- der hat es nur sichtbar gemacht, weil vorher ueberall Null stand
   und Null gleich Null aussieht, egal aus welchem Grund.

   Die Liste wird genau dort erweitert, wo es um Sichtbarkeit geht --
   NICHT in TEAM_DOGI_ROLLEN selbst: Diese Menge entscheidet auch,
   welches Haus jemand bewohnt. Ein Eintrag dort haette DogFather
   stillschweigend zur Crew umgezogen.

113 FERTIGE INHALTE IN DEN LEEREN KATEGORIEN
Gemessen waren elf Bereiche ausserhalb des Treffs komplett leer -- fuer
JEDE Rolle. Der Startkatalog kannte nur die sieben Treff-Bretter; die
Oberflaeche war die ganze Zeit bereit, es fehlten nur die Texte.
workspace-arbeit-start.js fuellt neun davon: Live, Content, Technik,
Community, Schutz, Ideen, Rueckmeldung, Angebote, Agentur.

"talente" und "entwicklung" bekommen ABSICHTLICH nichts: Dort waere ein
"fertiger Inhalt" ein erfundener Mensch -- ein Testdatensatz in einem
System, das echte Menschen bewertet. Die Talente-Seite bekommt ihre
Hilfe anders (siehe unten).

DER ENTWICKLUNGSKATALOG: 28 -> 68 PUNKTE, VIERTE STUFE
Filipe: "wieso ist da immer noch nicht perfektionniert wie bei den
anderen mit fortgeschritten und so, und VIIIIIEEEELLLLLL mehr aufgaben."
  * Neue Stufe "Fortgeschritten" zwischen "nach ein paar Monaten" und
    "wofuer man jemanden fragt" -- genau die Mitte fehlte.
  * Stufenleiter als FILTER ueber den Kategorien, wie die Checkliste es
    seit dem 10.09. vormacht. Aus r.erwartung gebaut, nicht aufgezaehlt.
  * Zwei neue Bloecke, die Filipe ausdruecklich wollte: "Clips, Schnitt
    und Kommentare" und "Waehrend der Stream laeuft" -- seine
    Wunschkategorien vom 17.09. ("videos schneide, kommentieren,
    markierungen").
  * Keine Note, keine Punktzahl, keine Rangliste. Unveraendert.

DAS BEFINDEN: 6 -> 12 FRAGEN, UND SIE MELDET SICH VON SELBST
Den 14-Tage-Rhythmus gab es schon -- er wirkte aber nur, WENN jemand die
Seite aufmachte. Wer sie vergisst, wurde nie wieder gefragt: Das war
eine Anzeige, keine Anfrage. Jetzt kommt sie ueber dasselbe Push-System
wie faellige Aufgaben, hoechstens einmal je sieben Tage, und sie fragt
rhythmus() aus workspace-befinden.js -- dieselbe Funktion wie die Seite,
keine zweite Formel daneben.
Sechs neue Fragen zu Erholung, Sinn, Klarheit, Anfeindung, Entwicklung
und dem Blick nach vorn, jede mit ihrer Einordnung.
Und an acht Stellen stand "sechs Fragen" ueber zwoelf Fragen -- wo ein
Skript den Text baut, wird jetzt gezaehlt; in den festen Seiten steht
gar keine Zahl mehr.

DIE TALENTE-SEITE, WENN NIEMAND DARAUF STEHT
Statt "Noch niemand auf der Liste" stehen dort jetzt die fuenf Gruppen
mit ihren 21 Anzeichen -- die gab es laengst, sie waren auf der leeren
Seite nur nie zu sehen. Dazu der Weg in beide Richtungen: woher ein
Talent kommt (der Treff) und wo es endet (die Entwicklung).

DIE PRUEFUNG (server/pruef-alle-sehen-es.mjs, 42 Pruefungen)
Sie prueft BEIDE Haelften von Filipes Satz. Nur zu zaehlen, ob alle
alles sehen, waere gruen, wenn man saemtliche Schranken entfernte --
Abschnitt 4 belegt, dass 19 Bereich-Rollen-Paare zu bleiben und die
Community an keinen der elf Arbeitsbereiche kommt.

ZWEI GEGENPROBEN, weil 42 von 42 im ersten Lauf kein Beweis ist:
  a) "admin" aus der Team-Sicht entfernen  -> 13 Pruefungen rot
  b) Freigabe beim Uebernehmen abschalten  ->  2 rot, genau ansteht
     und highlight
Jede trifft ihr Ziel und nicht alles.

UND EINE LUECKE IN EINER ALTEN PRUEFUNG
pruef-deutsche-texte war gruen -- und hatte die 113 neuen Texte, die 40
neuen Entwicklungspunkte und die 6 neuen Fragen nie gesehen: Sie stehen
in Dateien, die sie nicht kannte. Jetzt 391 statt 174 geprueften
Texten. (Meine erste Untergrenze stand auf 400 und war sofort rot --
geraten statt gemessen.)

Stempel 202609171318.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-17 13:18:45 +02:00

499 lines
29 KiB
JavaScript
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.
/* =====================================================================
Der Katalog „Entwicklung" (11.09.2026)
Filipe: *"ich will dass diese zwei kategorien perfektionniert werden,
ich will dass fertige aufgaben da stehen und so … so dass dogfather
und rechte hand es so einfach wie möglich haben aber so
professionell wie auch nur möglich."*
Hier steht die eine Hälfte davon: das, was man anklickt, statt es zu
tippen. Die Herleitung jeder einzelnen Zeile steht im Vault
(02 Projekte/Entwicklung & Nachwuchs – Plan.md, Abschnitt 1 und 3);
hier steht bei jedem Punkt in zwei Sätzen, WARUM er im Katalog ist.
---------------------------------------------------------------------
VIER ENTSCHEIDUNGEN, DIE MAN DEM KATALOG NICHT ANSIEHT
---------------------------------------------------------------------
1. ES SIND BEOBACHTUNGEN, KEINE EIGENSCHAFTEN.
Nicht „ist zuverlässig", sondern „Absagen kommen rechtzeitig".
Eine Eigenschaft kann man nur bestätigen oder bestreiten; ein
Verhalten kann man gesehen haben — oder eben nicht. Das ist der
Unterschied zwischen einem Gespräch und einem Urteil.
2. JEDER PUNKT IST ALS ETWAS FORMULIERT, DAS PASSIERT — nicht als
etwas, das fehlt. „Fragen bleiben nicht unbeantwortet" statt
„ignoriert Fragen". Die Liste soll man mit jemandem durchgehen
können, ohne dass sie wie eine Anklageschrift klingt.
3. DIE STUFEN SIND KEINE NOTEN, SONDERN ERWARTUNGEN.
`probe` ist das, was ab Tag eins gilt. `standard` das, was nach
ein paar Monaten normal ist. `senior` das, wofür man jemanden
fragt. Wer auf Probe ist, wird nicht daran gemessen, ob ein
Bereich ohne ihn läuft — und die Oberfläche zeigt das auch so.
4. KEINE GESAMTNOTE, NIRGENDS. Es gibt keine Punktzahl, keinen
Durchschnitt, keine Rangliste. Das ist keine Nachlässigkeit,
sondern der wichtigste Einzelentscheid des ganzen Bereichs: Eine
Zahl über einem Menschen wird gelesen, verglichen und
weitererzählt. Gebraucht wird ein Gesprächsanlass, keine Note.
---------------------------------------------------------------------
UND DER LETZTE BLOCK GEHOERT NICHT EUCH
Block 5 beantwortet ausschliesslich die Person selbst. DogFather und
die rechte Hand sehen dort keinen einzigen Klick — nur eine Ampel
ohne Namen. Das ist kein Entgegenkommen, sondern die Bedingung
dafuer, dass ehrlich geantwortet wird; eine unehrliche Antwort waere
schlechter als keine.
Die sechs Punkte darin stammen aus der Forschung dazu, warum
freiwillige Moderatoren aufhoeren — in dieser Reihenfolge: zu wenig
Zeit, Streit im Team, fehlende Eskalationswege, seelische Last ohne
Ansprechpartner, fehlende Autonomie, fehlende Anerkennung.
===================================================================== */
/** Die vier Antworten. Reihenfolge und Bedeutung stehen hier, nicht in
* der Oberflaeche -- sonst hiesse dieselbe Antwort auf zwei Seiten
* unterschiedlich.
*
* "unklar" IST EINE ECHTE ANTWORT und kein Weglassen. Ohne sie klickt
* man im Zweifel "laeuft", weil das die freundlichste Taste ist --
* und ab da steht im Katalog eine Beobachtung, die niemand gemacht
* hat. */
export const ENTWICKLUNG_STUFEN = [
{ schluessel: "laeuft", name: "Läuft", zeichen: "✓",
text: "Habe ich gesehen. Passt." },
{ schluessel: "waechst", name: "Wächst gerade", zeichen: "↗",
text: "Geht in die richtige Richtung – noch nicht durchgehend." },
{ schluessel: "hakt", name: "Da hakt es", zeichen: "!",
text: "Ist mir aufgefallen. Kein Vorwurf – ein Thema." },
{ schluessel: "unklar", name: "Kann ich nicht sagen", zeichen: "–",
text: "Habe ich nicht gesehen. Ehrlicher als zu raten." },
];
/** Die Erwartungsstufen. `rang` nur zum Sortieren -- er ist keine Note. */
export const ENTWICKLUNG_ERWARTUNG = [
{ schluessel: "probe", name: "Ab Tag eins", rang: 1,
text: "Das gilt für alle, auch in der Probezeit." },
{ schluessel: "standard", name: "Nach ein paar Monaten", rang: 2,
text: "Das ist normal, wenn jemand angekommen ist." },
/* DIE VIERTE STUFE (17.09.2026). Filipe: „wieso ist da immer noch
nicht perfektionniert wie bei den anderen mit fortgeschritten und
so". Die Checkliste nebenan hat Anfänger/Fortgeschritten/Profi/
Meister; hier fehlte genau die Mitte — zwischen „läuft seit ein
paar Monaten" und „dafür fragt man jemanden" lag nichts.
SIE IST KEINE NOTE, wie die anderen drei auch nicht. Es gibt
weiterhin keine Punktzahl, keinen Durchschnitt, keine Rangliste —
das bleibt der wichtigste Einzelentscheid dieses Bereichs. */
{ schluessel: "fort", name: "Fortgeschritten", rang: 3,
text: "Wer länger dabei ist, macht das von selbst – ohne dass es jemand anstößt." },
{ schluessel: "senior", name: "Wofür man jemanden fragt", rang: 4,
text: "Das kann nicht jeder – und es wird auch nicht von jedem erwartet." },
];
/** Die fünf Blöcke. `nurSelbst` ist der Riegel: Was hier `true` steht,
* sieht ausser der Person NIEMAND -- auch DogFather nicht. */
export const ENTWICKLUNG_BLOECKE = [
{ schluessel: "chat", name: "Im Chat",
text: "Die tägliche Arbeit. Was hier passiert, sehen die Zuschauer – "
+ "und es entscheidet, ob sie wiederkommen." },
{ schluessel: "druck", name: "Wenn es eng wird",
text: "Der Teil, der sich nicht üben lässt. Hier zeigt sich, was bleibt, "
+ "wenn es unangenehm wird." },
{ schluessel: "team", name: "Im Team",
text: "Wie die Zusammenarbeit läuft. Streit im Team ist der zweithäufigste "
+ "Grund, warum Leute aufhören – noch vor der Arbeit selbst." },
{ schluessel: "selbst", name: "Wie viel von selbst",
text: "Der Unterschied zwischen Ausführen und Mitdenken. Und – weiter unten – "
+ "zwischen Mitdenken und Überlastung." },
/* ZWEI BLOECKE, DIE FILIPE AUSDRUECKLICH WOLLTE (17.09.2026):
„ich will auch dass es fortgeschrittene aufgaben gibt und
individuelle auch für kategorien wie videos schneide,
kommentieren, markierungen". Das war bisher nirgends abgebildet —
die vier alten Blöcke beschreiben Moderation, nicht Mitarbeit an
den Inhalten. */
{ schluessel: "inhalte", name: "Clips, Schnitt und Kommentare",
text: "Die Arbeit an den Videos selbst — für DogFather, DogFather Clips "
+ "und HasiDog. Hier entscheidet sich, ob aus einem Stream etwas "
+ "übrig bleibt." },
{ schluessel: "stream", name: "Während der Stream läuft",
text: "Was im Livestream passiert, lässt sich nicht nachholen. Dieser "
+ "Block beschreibt die Arbeit, die genau dann stattfinden muss." },
{ schluessel: "befinden", name: "Wie geht es dir damit?", nurSelbst: true,
text: "Diese Fragen beantwortest nur du. Niemand aus dem Team sieht "
+ "deine Antworten – auch DogFather nicht. Sichtbar wird nur, ob es im "
+ "Team gerade jemandem zu viel wird, ohne Namen." },
];
export const ENTWICKLUNG_PUNKTE = {
/* ---- Block 1: Im Chat --------------------------------------------- */
chat: [
{ schluessel: "e-chat-neue-begruesst", stufe: "probe",
titel: "Neue werden begrüßt statt übersehen",
text: "Der erste Satz an einen Neuen entscheidet, ob er wiederkommt. "
+ "Kostet nichts und passiert trotzdem selten." },
{ schluessel: "e-chat-fragen-beantwortet", stufe: "probe",
titel: "Fragen bleiben nicht unbeantwortet",
text: "Eine unbeantwortete Frage ist schlimmer als eine abgelehnte – "
+ "sie sagt: du bist hier nicht gemeint." },
{ schluessel: "e-chat-regel-erklaert", stufe: "probe",
titel: "Regeln werden erklärt, bevor sie durchgesetzt werden",
text: "Wer erst löscht und dann erklärt, hat einen Gegner statt eines Mitglieds." },
{ schluessel: "e-chat-frueh-abgefangen", stufe: "standard",
titel: "Ein Spruch wird abgefangen, bevor eine Debatte daraus wird",
text: "Die eigentliche Arbeit passiert vorher, nicht beim Timeout. "
+ "Was man hier sieht, ist das, was NICHT passiert ist." },
{ schluessel: "e-chat-ton-bleibt", stufe: "standard",
titel: "Der Ton bleibt derselbe, auch wenn der Chat kippt",
text: "Nicht Freundlichkeit – Gleichmäßigkeit. Genau darauf achtet ein Chat: "
+ "ob dieselbe Sache heute anders behandelt wird als gestern." },
{ schluessel: "e-chat-ohne-buehne", stufe: "standard",
titel: "Es wird eingegriffen, ohne den Chat zur Bühne zu machen",
text: "Eine Bestrafung mit Publikum erzeugt Publikum." },
{ schluessel: "e-chat-laeuft-ohne-blick", stufe: "senior",
titel: "Der Chat läuft auch, wenn gerade niemand hinsieht",
text: "Das Gegenteil von Anwesenheit. Man merkt es nur daran, dass nichts passiert." },
{ schluessel: "e-chat-weitergereicht", stufe: "senior",
titel: "Neue werden weitergereicht, nicht nur bedient",
text: "Aus einem beantworteten Neuen wird ein Mitglied, sobald er jemanden kennt." },
{ schluessel: "e-chat-ton-beim-zehnten-mal", stufe: "probe",
titel: "Dieselbe Frage wird auch beim zehnten Mal freundlich beantwortet",
text: "Für den, der fragt, ist es das erste Mal. Das ist der ganze Punkt." },
{ schluessel: "e-chat-niemand-blossgestellt", stufe: "probe",
titel: "Niemand wird im Chat bloßgestellt",
text: "Auch nicht jemand, der es verdient hätte. Wer zuschaut, merkt sich "
+ "nicht den Anlass, sondern dass es passieren kann." },
{ schluessel: "e-chat-stammzuschauer-namen", stufe: "fort",
titel: "Stammzuschauer werden mit Namen angesprochen",
text: "Der Unterschied zwischen Publikum und Community — und er kostet "
+ "nichts außer Aufmerksamkeit." },
{ schluessel: "e-chat-witz-erkannt", stufe: "fort",
titel: "Ein Witz wird als Witz erkannt, bevor daraus ein Verstoß wird",
text: "Die häufigste unnötige Eskalation. Wer den Chat kennt, hört den "
+ "Unterschied — wer nur die Regel liest, nicht." },
{ schluessel: "e-chat-ohne-dogfather", stufe: "fort",
titel: "Der Chat läuft weiter, wenn DogFather kurz weg ist",
text: "Pause, Technik, Telefon. Was in diesen Minuten passiert, "
+ "entscheidet, ob die Leute bleiben." },
{ schluessel: "e-chat-reguliert-sich", stufe: "senior",
titel: "Der Chat reguliert sich zunehmend selbst",
text: "Stammleute weisen einander zurecht, bevor ein Modi es tun muss. "
+ "Das ist kein Zufall, das ist das Ergebnis von allem darüber." },
],
/* ---- Block 2: Wenn es eng wird ------------------------------------ */
druck: [
{ schluessel: "e-druck-fragt-statt-raet", stufe: "probe",
titel: "Bei Unsicherheit wird gefragt statt geraten",
text: "Fragen ist ein Zeichen von Sicherheit, nicht von Schwäche – "
+ "und genau das misst, ob sich jemand im Team traut." },
{ schluessel: "e-druck-eigener-fehler", stufe: "probe",
titel: "Eine eigene Fehlentscheidung wird von selbst angesprochen",
text: "Der einzige Punkt der Liste, der sich nicht vortäuschen lässt." },
{ schluessel: "e-druck-nicht-persoenlich", stufe: "standard",
titel: "Provokation geht nicht ins Persönliche zurück",
text: "Unhöflichkeit ist in vergleichbaren Gemeinschaften der häufigste "
+ "Ablehnungsgrund – noch vor jedem Können." },
{ schluessel: "e-druck-notiz-statt-erinnerung", stufe: "standard",
titel: "Nach einem Vorfall steht eine Notiz da, keine Erinnerung",
text: "Am nächsten Tag fehlt die Hälfte. Eine Notiz von gestern schlägt "
+ "ein gutes Gedächtnis." },
{ schluessel: "e-druck-frueh-eskaliert", stufe: "standard",
titel: "Es wird eskaliert, bevor es zu spät ist – nicht danach",
text: "Zu früh eskalieren ist ein kleiner Fehler. Zu spät ist der teure." },
{ schluessel: "e-druck-streit-beruhigt", stufe: "senior",
titel: "Ein Streit zwischen zwei anderen wird beruhigt, ohne Partei zu sein",
text: "Unparteilichkeit unter Druck – in jeder Moderationsanleitung der erste Punkt." },
{ schluessel: "e-druck-unpopulaer-getragen", stufe: "senior",
titel: "Eine unpopuläre Entscheidung wird getragen, auch öffentlich",
text: "Wer eine Regel nur durchsetzt, solange Applaus kommt, setzt sie nicht durch." },
{ schluessel: "e-druck-welle-ruhig", stufe: "standard",
titel: "Eine plötzliche Welle wird ruhig abgearbeitet",
text: "Ein Raid, ein viraler Clip, hundert Neue auf einmal. Nicht "
+ "schneller werden — der Reihe nach bleiben." },
{ schluessel: "e-druck-erklaert-ohne-verteidigen", stufe: "fort",
titel: "Eine Entscheidung wird erklärt, ohne sie zu verteidigen",
text: "Erklären beendet die Sache, Verteidigen eröffnet sie. Der "
+ "Unterschied liegt in einem Satz." },
{ schluessel: "e-druck-reihenfolge-nachvollziehbar", stufe: "fort",
titel: "Auch im Andrang bleibt nachvollziehbar, wer warum dran war",
text: "Wer sich übergangen fühlt, kommt nicht wieder — und sagt vorher "
+ "nichts." },
{ schluessel: "e-druck-nachverfolgt", stufe: "fort",
titel: "Was eskaliert wurde, wird auch nachverfolgt",
text: "Eine Eskalation ohne Rückmeldung fühlt sich an wie Ignoriertwerden. "
+ "Für beide Seiten." },
{ schluessel: "e-druck-team-aufgefangen", stufe: "senior",
titel: "Nach einem schweren Vorfall wird das Team aufgefangen",
text: "Wer Hässliches wegmoderiert, nimmt es mit nach Hause. Jemand muss "
+ "danach fragen — von allein sagt es niemand." },
],
/* ---- Block 3: Im Team --------------------------------------------- */
team: [
{ schluessel: "e-team-absage-rechtzeitig", stufe: "probe",
titel: "Absagen kommen rechtzeitig, nicht im letzten Moment",
text: "Nicht Zuverlässigkeit – Vorlaufzeit. Die kann man planen, "
+ "eine Absage um 19:55 nicht." },
{ schluessel: "e-team-teamchat-gelesen", stufe: "probe",
titel: "Was im Teamchat steht, wird gelesen",
text: "Der billigste Punkt der Liste und der am häufigsten gerissene." },
{ schluessel: "e-team-wissen-geteilt", stufe: "standard",
titel: "Wissen wird geteilt, nicht gehortet",
text: "Wer als Einziger weiß, wie etwas geht, ist kein Gewinn, sondern ein "
+ "Ausfallrisiko – und darf nicht krank werden." },
{ schluessel: "e-team-kritik-direkt", stufe: "standard",
titel: "Kritik an anderen kommt zu ihnen, nicht über sie",
text: "Streit im Team ist der zweithäufigste Grund, warum Moderatoren "
+ "aufhören. Dieser eine Punkt bewacht ihn." },
{ schluessel: "e-team-zusagen-halten", stufe: "standard",
titel: "Zusagen halten – und wenn nicht, wird es gesagt",
text: "Der zweite Halbsatz ist der wichtigere." },
{ schluessel: "e-team-neue-eingearbeitet", stufe: "senior",
titel: "Neue werden eingearbeitet, ohne dass jemand darum bittet",
text: "Der Punkt, an dem aus Mitarbeit Verantwortung wird." },
{ schluessel: "e-team-widerspruch-nach-oben", stufe: "senior",
titel: "Widerspruch kommt auch mir gegenüber",
text: "Ausdrücklich so formuliert: Ein Team, das dem Sprecher nicht "
+ "widerspricht, hat aufgehört zu denken. Hier steht niemand über dem anderen." },
{ schluessel: "e-team-lob-weitergegeben", stufe: "standard",
titel: "Lob wird weitergegeben, nicht nur Kritik",
text: "Kritik findet von allein ihren Weg nach oben. Lob nicht." },
{ schluessel: "e-team-schichten-getauscht", stufe: "fort",
titel: "Schichten werden untereinander getauscht, ohne dass jemand es organisieren muss",
text: "Ein Team, das das kann, braucht keine Einsatzplanung — nur einen "
+ "Kalender." },
{ schluessel: "e-team-uebergabe-vollstaendig", stufe: "fort",
titel: "Eine Übergabe enthält, was die nächste Schicht wissen muss",
text: "Wer war auffällig, was steht offen, was ist gerade heikel. Drei "
+ "Zeilen sparen der nächsten Schicht eine Stunde." },
{ schluessel: "e-team-uneinigkeit-entschieden", stufe: "fort",
titel: "Uneinigkeit endet mit einer Entscheidung, nicht mit Schweigen",
text: "Ein ungelöster Streit verschwindet nicht, er zieht um — in "
+ "Privatnachrichten." },
{ schluessel: "e-team-regeln-mitentwickelt", stufe: "senior",
titel: "Regeln werden mitentwickelt, nicht nur befolgt",
text: "Wer mitliest, sieht Dinge, die von vorn niemand sieht. Regeln, die "
+ "von dort kommen, werden auch eingehalten." },
],
/* ---- Block 4: Wie viel von selbst ---------------------------------- */
selbst: [
{ schluessel: "e-selbst-ohne-erinnerung", stufe: "probe",
titel: "Aufgaben werden abgearbeitet, ohne Erinnerung",
text: "Die untere Kante. Alles darüber ist ein Plus, das hier ist die Grundlage." },
{ schluessel: "e-selbst-nicht-in-der-liste", stufe: "standard",
titel: "Etwas wird gesehen und gemacht, was nicht in der Liste stand",
text: "Der Unterschied zwischen Ausführen und Mitdenken." },
{ schluessel: "e-selbst-vorschlag-statt-klage", stufe: "standard",
titel: "Eigene Vorschläge kommen als Vorschlag, nicht als Beschwerde",
text: "Dieselbe Beobachtung, zwei Formen – eine davon ist brauchbar." },
{ schluessel: "e-selbst-abgegeben", stufe: "standard",
titel: "Aufgaben werden abgegeben, statt alles selbst zu machen",
text: "Die häufigste Ursache für Überlastung ist nicht die Menge, "
+ "sondern das Nicht-Abgeben." },
{ schluessel: "e-selbst-bereich-laeuft-allein", stufe: "senior",
titel: "Ein Bereich läuft komplett ohne mich",
text: "Der Punkt, an dem eine Stufe wirklich verdient ist." },
{ schluessel: "e-selbst-nein-gesagt", stufe: "senior",
titel: "Es wird nein gesagt, wenn es zu viel ist",
text: "Steht bewusst ganz oben statt als Mangel: Nein sagen zu können ist "
+ "die schwerste Fähigkeit im Ehrenamt – und sie verhindert genau den "
+ "Ausfall, der sonst kommt." },
{ schluessel: "e-selbst-schicht-eingetragen", stufe: "probe",
titel: "Die eigene Schicht steht im Kalender, ohne Nachfrage",
text: "Ein Kalender, in dem die Hälfte fehlt, ist schlimmer als keiner — "
+ "man plant dann auf falscher Grundlage." },
{ schluessel: "e-selbst-vorlage-gemacht", stufe: "fort",
titel: "Wiederkehrendes wird zur Vorlage, statt jedes Mal neu gemacht",
text: "Das Dritte Mal ist die Grenze. Was dreimal gleich war, wird beim "
+ "vierten Mal nicht besser, nur länger." },
{ schluessel: "e-selbst-grenze-benannt", stufe: "fort",
titel: "Eine eigene Grenze wird benannt, bevor sie gerissen wird",
text: "Danach ist es keine Grenze mehr, sondern eine Erklärung." },
{ schluessel: "e-selbst-nicht-umgangen", stufe: "fort",
titel: "Was nicht funktioniert, wird angesprochen statt umgangen",
text: "Jeder Umweg wird irgendwann zum Weg — und dann fragt niemand mehr, "
+ "warum er so lang ist." },
{ schluessel: "e-selbst-jemand-eingearbeitet", stufe: "senior",
titel: "Jemand wurde eingearbeitet, der es danach allein kann",
text: "Nicht gezeigt — übergeben. Das ist der Unterschied, und er zeigt "
+ "sich erst, wenn man selbst nicht da ist." },
],
/* ---- Block 5: Clips, Schnitt und Kommentare ------------------------
Filipes Wunschkategorien vom 17.09.2026, woertlich: „videos
schneide, kommentieren, markierungen". */
inhalte: [
{ schluessel: "e-inhalt-momente-markiert", stufe: "probe",
titel: "Gute Momente werden markiert, während sie passieren",
text: "Uhrzeit notieren, fertig. Wer nachher sucht, findet nichts — "
+ "daran scheitern die meisten Clips, nicht am Schneiden." },
{ schluessel: "e-inhalt-kommentare-gelesen", stufe: "probe",
titel: "Die Kommentare unter den Videos werden gelesen",
text: "Dort stehen die Fragen, die im Stream niemand gestellt hat — und "
+ "die Themen des nächsten Videos." },
{ schluessel: "e-inhalt-geantwortet", stufe: "probe",
titel: "Auf Kommentare wird geantwortet, nicht nur reagiert",
text: "Ein Herz ist kein Gespräch. Eine Antwort bringt denselben Menschen "
+ "beim nächsten Video wieder." },
{ schluessel: "e-inhalt-clip-ohne-anstoss", stufe: "standard",
titel: "Ein Clip entsteht, ohne dass DogFather ihn anstoßen muss",
text: "Das Material liegt ohnehin da. Was fehlt, ist meistens nur der "
+ "Anfang." },
{ schluessel: "e-inhalt-richtiger-kanal", stufe: "standard",
titel: "Der Clip landet auf dem richtigen Kanal",
text: "DogFather für Streams, DogFather Clips für Ausschnitte, HasiDog "
+ "für Casper. Auf dem falschen Kanal ist ein Video nicht falsch — es "
+ "findet nur niemanden." },
{ schluessel: "e-inhalt-erste-sekunden", stufe: "fort",
titel: "Die ersten drei Sekunden eines Clips sitzen",
text: "Wer erst erklärt und dann zeigt, hat verloren. Das Interessanteste "
+ "steht am Anfang, nicht in der Mitte." },
{ schluessel: "e-inhalt-cover-mitgeliefert", stufe: "fort",
titel: "Cover und Text kommen mit, nicht hinterher",
text: "Ein fertiger Clip ohne Cover ist kein fertiger Clip. Das Cover "
+ "entscheidet, ob jemand überhaupt tippt." },
{ schluessel: "e-inhalt-kommentare-draussen", stufe: "fort",
titel: "Kommentare unter fremden Videos bringen Leute mit",
text: "Nicht Werbung — etwas Sinnvolles zum Thema. Das ist mühsam, "
+ "wirkt aber besser als jeder Aufruf im eigenen Stream." },
{ schluessel: "e-inhalt-mehrere-clips", stufe: "senior",
titel: "Aus einem Stream entstehen mehrere Clips, ohne Rückfrage",
text: "Wenn sich ein Clip nicht in einem Satz zusammenfassen lässt, sind "
+ "es zwei. Das ist keine Kürzung, sondern doppelt so viel." },
{ schluessel: "e-inhalt-gemessen-wiederholt", stufe: "senior",
titel: "Was gut lief, wird gemessen und wiederholt",
text: "Nicht das Gefühl — die Zahl daneben. Ein Format, das zweimal "
+ "funktioniert hat, ist kein Zufall mehr." },
],
/* ---- Block 6: Während der Stream läuft ----------------------------- */
stream: [
{ schluessel: "e-stream-vorher-da", stufe: "probe",
titel: "Vor dem Start ist jemand im Chat",
text: "Die ersten Minuten entscheiden über die Stimmung der ganzen "
+ "Sendung. Ein leerer Chat beim Start füllt sich schwer." },
{ schluessel: "e-stream-technik-gemeldet", stufe: "probe",
titel: "Technische Probleme werden sofort gemeldet",
text: "DogFather hört sich selbst nicht so, wie die Zuschauer ihn hören. "
+ "Wer es merkt und nichts sagt, lässt die Sendung laufen." },
{ schluessel: "e-stream-fragen-gesammelt", stufe: "standard",
titel: "Fragen aus dem Chat werden gesammelt, damit sie drankommen",
text: "Im Trubel geht die Hälfte unter. Gesammelt sind sie der beste "
+ "Anfang für den nächsten Stream." },
{ schluessel: "e-stream-mitgeschrieben", stufe: "standard",
titel: "Was auffällt, wird währenddessen notiert",
text: "Am nächsten Tag fehlt die Hälfte. Eine Zeile von gestern schlägt "
+ "ein gutes Gedächtnis." },
{ schluessel: "e-stream-gelenkt", stufe: "fort",
titel: "Der Chat wird zurückgeholt, wenn er abdriftet",
text: "Nicht abwürgen — umlenken. Eine Frage an die Runde wirkt besser "
+ "als eine Ermahnung." },
{ schluessel: "e-stream-wunsch-eingebracht", stufe: "fort",
titel: "Ein Wunsch aus dem Treff wird im Stream eingebracht",
text: "Die Wunschliste sortiert sich nach Stimmen. Wer den obersten "
+ "einbringt, schließt den Kreis für den, der ihn geschrieben hat." },
{ schluessel: "e-stream-auswertung", stufe: "fort",
titel: "Nach dem Stream steht eine kurze Auswertung da",
text: "Wann sind Leute gegangen, was hat den Chat bewegt, was wird ein "
+ "Clip. Fünf Minuten, und der nächste Stream fängt besser an." },
{ schluessel: "e-stream-laeuft-ohne", stufe: "senior",
titel: "Der Stream trägt auch eine Pause",
text: "Technik, Telefon, Casper. Wenn diese Minuten funktionieren, "
+ "bleiben die Leute — sonst nicht." },
{ schluessel: "e-stream-format-entstanden", stufe: "senior",
titel: "Aus wiederkehrenden Fragen wird ein Format",
text: "Dieselbe Frage zum dritten Mal ist kein Ärgernis, sondern ein "
+ "Themenvorschlag, den die Zuschauer selbst gemacht haben." },
],
/* ---- Block 7: Wie geht es dir damit? (nur die Person selbst) ------- */
befinden: [
{ schluessel: "e-ich-menge-passt", stufe: "probe",
titel: "Die Menge passt gerade",
text: "Zu wenig Zeit ist der meistgenannte Grund, warum Moderatoren aufhören." },
{ schluessel: "e-ich-niemand-schwierig", stufe: "probe",
titel: "Es gibt gerade niemanden im Team, mit dem es schwierig ist",
text: "Der zweithäufigste Grund – und der, über den am wenigsten geredet wird." },
{ schluessel: "e-ich-weiss-an-wen", stufe: "probe",
titel: "Ich weiß, an wen ich mich wende, wenn etwas eskaliert",
text: "Ein fehlender Eskalationsweg fühlt sich nicht wie ein fehlender Weg an, "
+ "sondern wie Unsicherheit." },
{ schluessel: "e-ich-jemand-zum-reden", stufe: "probe",
titel: "Nach einer hässlichen Schicht gibt es jemanden zum Reden",
text: "Wer Hässliches wegmoderiert, nimmt es mit. Das geht nicht von allein weg." },
{ schluessel: "e-ich-nein-ohne-problem", stufe: "probe",
titel: "Ich kann nein sagen, ohne dass es ein Problem ist",
text: "Nicht ob du darfst – ob es sich so anfühlt. Das ist der Unterschied." },
{ schluessel: "e-ich-faellt-auf", stufe: "probe",
titel: "Ich habe das Gefühl, dass es auffällt, wenn ich da bin",
text: "Fehlende Anerkennung ist der am häufigsten genannte emotionale Preis – "
+ "und der billigste zu beheben." },
/* SECHS WEITERE (17.09.2026). Sie decken die Luecken, die die
ersten sechs offen lassen: Erholung, Sinn, Klarheit, Sicherheit
vor Anfeindung, Entwicklung und der Blick nach vorn.
ALLE AUF "probe": Diese Fragen sind keine Stufenleiter. Sie
gelten am ersten Tag genauso wie im dritten Jahr -- ein
Befinden hat keine Erwartungsstufe. */
{ schluessel: "e-ich-abschalten", stufe: "probe",
titel: "Nach einer Schicht kann ich abschalten",
text: "Nicht ob du müde bist – ob es aufhört, wenn du aufhörst. "
+ "Das ist der Unterschied zwischen anstrengend und zehrend." },
{ schluessel: "e-ich-sinn", stufe: "probe",
titel: "Ich habe das Gefühl, dass meine Arbeit hier etwas bewirkt",
text: "Wer nicht sieht, was seine Arbeit bewirkt, hört auf – auch wenn "
+ "alles andere stimmt. Es ist der stillste Grund von allen." },
{ schluessel: "e-ich-klar-was-erwartet", stufe: "probe",
titel: "Mir ist klar, was von mir erwartet wird",
text: "Unklarheit fühlt sich nicht wie Unklarheit an, sondern wie "
+ "das Gefühl, es nie ganz richtig zu machen." },
{ schluessel: "e-ich-nicht-angefeindet", stufe: "probe",
titel: "Ich werde außerhalb des Streams in Ruhe gelassen",
text: "Privatnachrichten, andere Plattformen, das Privatleben. Wer hier "
+ "„da hakt es“ setzt, braucht keine Umfrage, sondern ein Gespräch." },
{ schluessel: "e-ich-lerne-dazu", stufe: "probe",
titel: "Ich lerne hier etwas, das mir auch sonst nützt",
text: "Ehrenamt hält, wenn es etwas zurückgibt. Das muss kein Geld sein – "
+ "aber es muss etwas sein." },
{ schluessel: "e-ich-naechste-monate", stufe: "probe",
titel: "Ich kann mir gut vorstellen, in ein paar Monaten noch dabei zu sein",
text: "Die ehrlichste Frage der Liste. Wer hier zögert, hat es meistens "
+ "vorher schon gewusst – und niemand hat gefragt." },
],
};
/* ---------------------------------------------------------------------
ABGELEITET, NICHT ABGESCHRIEBEN
Jede Zahl ueber diesen Katalog wird gerechnet. Eine Ueberschrift
"38 Beobachtungen" waere beim naechsten Punkt still falsch -- und
genau das war sie schon: Der Plan im Vault sagt 38, gezaehlt sind es
34. Deshalb steht nirgends eine Zahl, die jemand pflegen muesste.
------------------------------------------------------------------- */
/** Alle Punkte als flache Liste, mit ihrem Block. */
export const ENTWICKLUNG_ALLE = ENTWICKLUNG_BLOECKE.flatMap((b) =>
(ENTWICKLUNG_PUNKTE[b.schluessel] || []).map((p) => ({ ...p, block: b.schluessel })));
/** Die Punkte, die andere ueber jemanden setzen duerfen -- also alles
* ausser Block 5. Als eigene Liste, damit die Riegel im Server sie
* nicht jedes Mal neu zusammensuchen muessen. */
export const ENTWICKLUNG_FREMD = ENTWICKLUNG_ALLE.filter((p) => {
const b = ENTWICKLUNG_BLOECKE.find((x) => x.schluessel === p.block);
return !b?.nurSelbst;
});
/** Und die, die nur die Person selbst beantwortet. */
export const ENTWICKLUNG_SELBST = ENTWICKLUNG_ALLE.filter((p) => {
const b = ENTWICKLUNG_BLOECKE.find((x) => x.schluessel === p.block);
return !!b?.nurSelbst;
});
/** Schnellzugriff Schluessel -> Punkt. */
export const ENTWICKLUNG_NACH_SCHLUESSEL = new Map(
ENTWICKLUNG_ALLE.map((p) => [p.schluessel, p]));