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."
Bis heute waren beide Kacheln ein leeres Formular: Titel tippen, Art
wählen, Text schreiben. Ein leeres Feld beantwortet keine Frage — es
stellt sie noch einmal.
ENTWICKLUNG: 34 Beobachtungen in fünf Blöcken, vier Antworten je Zeile
(Läuft · Wächst gerade · Da hakt es · Kann ich nicht sagen). Es sind
BEOBACHTUNGEN, keine Eigenschaften — "Absagen kommen rechtzeitig" statt
"ist zuverlässig". Eine Eigenschaft kann man nur bestätigen oder
bestreiten; ein Verhalten kann man gesehen haben oder nicht.
TALENTE: 21 Merkmale in fünf Gruppen, 6 Warnzeichen getrennt geführt,
fünf Trichterstufen mit je GENAU EINEM nächsten Schritt. Eine Liste
wächst und wird nie wieder angesehen; ein Trichter fragt bei jeder Karte
"und jetzt?". Die Standzeit steht dabei — "seit 41 Tagen beobachtet"
ist eine Auskunft über uns, nicht über den Kandidaten.
VIER RIEGEL, JEDER MIT GEGENPROBE:
· Block 5 ("Wie geht es dir damit?") gehört der Person — lesend UND
schreibend, auch vor DogFather. Er kommt gar nicht erst aus dem
Server; Schreiben gibt dasselbe 404 wie ein erfundener Schlüssel.
Nach außen dringt eine Ampel OHNE Namen, und die schweigt, solange
das Team so klein ist, dass "jemandem geht es zu viel" dasselbe wäre
wie ein Name.
· Der Stand des anderen kommt erst nach dem eigenen Klick — sonst
klickt man dasselbe. Sichtbar ist nur, DASS es einen gibt: sonst
sähen "noch niemand" und "du darfst es nicht sehen" gleich aus.
· "Da hakt es" ohne Anlass wird abgelehnt. "Läuft" nicht — 28
Pflichtfelder je Person wären das Gegenteil von "so einfach wie
möglich".
· Talente gehört DogFather und der rechten Hand. Ein Modi bekommt 404
auf Seite UND Schnittstelle.
WAS NICHT GEBAUT IST, UND WARUM: keine Punktzahl, kein Durchschnitt,
keine Rangliste, keine Gesamtnote. Eine Zahl über einem Menschen wird
gelesen, verglichen und weitererzählt. Und kein Rot — "da hakt es" ist
eine Beobachtung, kein Alarm.
DER PLAN LAG AN EINER STELLE FALSCH, gemessen statt vermutet: Er sagte
"keine neue Tabelle, der Stand liegt in punkt_stand". Dort ist der
Schlüssel (bereich, schluessel, creator_id) — genau EIN Stand je Punkt
und Person. Zwei unabhängige Augenpaare passen da nicht hinein, ohne
eine lebende Tabelle neu zu bauen. Also eine eigene.
EIN RÜCKSCHLAG, DEN NUR DIE PRÜFUNG GEFUNDEN HAT: Die Liste der
Bretter, die ein Modi oder die rechte Hand öffnen darf, wird aus den
KACHELZIELEN abgeleitet. Als die Kacheln auf die neuen Seiten zeigten,
fielen beide Bretter heraus — und die Seite verlinkte auf ein 404. Kein
Fehler im Riegel, sondern in seiner Quelle.
Dazu zwei kleinere Funde vom Hinsehen statt vom Messen: Die Ampel sagte
"Solange ihr zu 1 seid" (jetzt drei Sätze für drei Lagen), und die
Fußzeile der Talente-Seite lag auf der Bühne — die Kontrastprüfung hatte
sie übersprungen, weil ein Link darin steht. Beide behoben, und die
Prüfung hat den stillen Aussetzer gleich mit verloren.
Geprüft: rollen 314 · start-ansicht 147 · crew-adresse 132 · neue-seiten
70 · nachwuchs 69 · entwicklung 40 · css-klassen 30 · zwischenspeicher
21 · alle-wege 19 · rechtetafel 19 — alles grün.
Was noch fehlt, steht in der Notiz, Abschnitt 9: die eigene Karte für
die Person, der Übergang "Probe" → Zugang, der Vorlagentext zum
Ansprechen.
Co-Authored-By: Claude Opus 5 <[email protected]>
226 lines
11 KiB
JavaScript
226 lines
11 KiB
JavaScript
/* =====================================================================
|
||
Der Katalog „Talente" (11.09.2026)
|
||
|
||
Zuschauer, die ins Team passen könnten. Die andere Hälfte von
|
||
Filipes Auftrag: *„fertige Sachen, so dass DogFather und rechte Hand
|
||
es so einfach wie möglich haben."*
|
||
|
||
Herleitung im Vault (02 Projekte/Entwicklung & Nachwuchs – Plan.md,
|
||
Abschnitt 1.3 und 4). Hier steht bei jedem Eintrag, warum er drin
|
||
ist — und bei zweien, warum sie es NICHT sind.
|
||
|
||
---------------------------------------------------------------------
|
||
TALENTE IST EIN TRICHTER, KEINE LISTE
|
||
|
||
Eine Liste wächst und wird nie wieder angesehen. Ein Trichter hat
|
||
Stufen, und jede Stufe hat GENAU EINEN nächsten Schritt — nicht drei
|
||
Möglichkeiten, zwischen denen man sich entscheiden müsste. Wer eine
|
||
Karte öffnet, soll in zwei Sekunden wissen, was jetzt dran ist.
|
||
|
||
UND DIE STANDZEIT GEHOERT ZUR ANZEIGE. „Seit 41 Tagen beobachtet,
|
||
nie angesprochen" ist eine Auskunft über UNS, nicht über den
|
||
Kandidaten. Ohne sie verwandelt sich der Trichter in eine Liste
|
||
zurück.
|
||
|
||
---------------------------------------------------------------------
|
||
ZWEI DINGE STEHEN AUSDRUECKLICH NICHT IM KATALOG
|
||
|
||
„SCHREIBT VIEL IM CHAT." Angenehm im Chat zu sein und ein guter
|
||
Moderator zu sein sind nachweislich verschiedene Dinge. Die beiden
|
||
zu verwechseln ist der häufigste Fehler bei der Modsuche — und weil
|
||
die Zahl so leicht zu bekommen wäre, steht hier, dass sie fehlt.
|
||
|
||
HEIMLICHE TESTS. Kein Zweitkonto, das jemanden auf die Probe stellt.
|
||
Das kostet mehr Vertrauen, als es an Erkenntnis bringt — und zwar
|
||
auch bei denen, die davon nur hören.
|
||
|
||
---------------------------------------------------------------------
|
||
UND EIN RIEGEL, DER NICHT VERHANDELBAR IST
|
||
|
||
In diesem Katalog stehen Namen von Menschen, die nichts davon
|
||
wissen. Er gehört DogFather und der rechten Hand, sonst niemandem —
|
||
kein Modi, keine Agentur, und ganz sicher nicht der Community.
|
||
Durchgesetzt wird das in workspace-entwicklung.js und in der
|
||
Rechtetafel, nicht hier; hier steht nur, warum.
|
||
===================================================================== */
|
||
|
||
/** Die fünf Stufen des Trichters.
|
||
*
|
||
* `schritt` ist der EINE nächste Handgriff. `frist` die Zahl der Tage,
|
||
* nach denen eine Karte auf dieser Stufe als liegengeblieben gilt --
|
||
* sie wird nicht gemahnt, sie wird ANGEZEIGT. Eine Erinnerung, die
|
||
* man wegklicken kann, wird weggeklickt; eine Zahl, die dasteht,
|
||
* nicht. */
|
||
export const TALENT_STUFEN = [
|
||
{
|
||
schluessel: "aufgefallen", name: "Aufgefallen", rang: 1, frist: 14,
|
||
bedeutet: "Ein Name ist gefallen. Mehr nicht.",
|
||
schritt: "Beobachten einschalten – ab jetzt Merkmale sammeln.",
|
||
knopf: "Beobachten",
|
||
},
|
||
{
|
||
schluessel: "beobachtet", name: "Beobachtet", rang: 2, frist: 30,
|
||
bedeutet: "Merkmale werden über Wochen gesammelt.",
|
||
schritt: "Ansprechen – der Vorlagentext liegt bereit.",
|
||
knopf: "Ansprechen",
|
||
},
|
||
{
|
||
schluessel: "angesprochen", name: "Angesprochen", rang: 3, frist: 7,
|
||
bedeutet: "Gefragt, ob überhaupt Interesse besteht.",
|
||
schritt: "Antwort eintragen: ja, nein oder später.",
|
||
knopf: "Auf Probe nehmen",
|
||
},
|
||
{
|
||
schluessel: "probe", name: "Probe", rang: 4, frist: 30,
|
||
bedeutet: "Echte Schicht, kleiner Rahmen, fester Buddy – 30 Tage, beidseitig ausgesprochen.",
|
||
schritt: "Nach 30 Tagen: übernehmen oder sauber beenden.",
|
||
knopf: "Ins Team",
|
||
},
|
||
{
|
||
schluessel: "imteam", name: "Im Team", rang: 5, frist: null,
|
||
bedeutet: "Zugang steht. Ab hier zählt die Entwicklungskarte, nicht mehr diese.",
|
||
schritt: "Zugang in „Personen & Zugänge“ anlegen, Rolle Modi.",
|
||
knopf: null,
|
||
},
|
||
];
|
||
|
||
/** Die Merkmale, in fünf Gruppen. Angeklickt, nicht getippt.
|
||
*
|
||
* DIE REIHENFOLGE DER GRUPPEN IST NICHT ZUFAELLIG: „Ruhe" steht
|
||
* vorn, weil es das am besten belegte Einzelmerkmal ueberhaupt ist --
|
||
* und weil die erste Gruppe die ist, die man immer ausfuellt. */
|
||
export const TALENT_GRUPPEN = [
|
||
{
|
||
schluessel: "ruhe", name: "Ruhe",
|
||
text: "Das am stärksten belegte Einzelmerkmal. Wer unter Druck ruhig bleibt, "
|
||
+ "kann alles andere lernen – umgekehrt nicht.",
|
||
},
|
||
{
|
||
schluessel: "hilft", name: "Hilft von selbst",
|
||
text: "Nicht ob jemand helfen WILL, sondern ob er es schon tut, ohne gefragt zu sein.",
|
||
},
|
||
{
|
||
schluessel: "haus", name: "Kennt das Haus",
|
||
text: "Regeln, Leute, Witze. Das kann man nicht einarbeiten – das hat man oder nicht.",
|
||
},
|
||
{
|
||
schluessel: "da", name: "Ist da",
|
||
text: "Regelmäßigkeit schlägt Menge. Und eine Zeit, zu der ihr niemanden habt, "
|
||
+ "schlägt beides.",
|
||
},
|
||
{
|
||
schluessel: "empfohlen", name: "Aus dem Team",
|
||
text: "Wer aus dem Team kommt, ist schon einmal durch ein Augenpaar gegangen.",
|
||
},
|
||
];
|
||
|
||
export const TALENT_MERKMALE = {
|
||
ruhe: [
|
||
{ schluessel: "t-ruhe-streit", titel: "Bleibt ruhig, wenn im Chat gestritten wird",
|
||
text: "Der Normalfall, an dem sich alles zeigt." },
|
||
{ schluessel: "t-ruhe-provokation", titel: "Geht auf Provokation nicht ein",
|
||
text: "Nicht ignorieren – nicht mitgehen. Zwei verschiedene Dinge." },
|
||
{ schluessel: "t-ruhe-widerspricht", titel: "Widerspricht, ohne auszuteilen",
|
||
text: "Wer nie widerspricht, ist nicht ruhig, sondern still. Das ist etwas anderes." },
|
||
{ schluessel: "t-ruhe-gegen-sich", titel: "Hat sich auch dann im Griff, wenn es gegen ihn selbst geht",
|
||
text: "Der härteste der vier – und der aussagekräftigste." },
|
||
],
|
||
hilft: [
|
||
{ schluessel: "t-hilft-vor-team", titel: "Beantwortet Fragen anderer, bevor jemand vom Team da ist",
|
||
text: "Tut die Arbeit schon, ohne den Titel zu haben." },
|
||
{ schluessel: "t-hilft-erklaert-neuen", titel: "Erklärt Neuen, wie es hier läuft",
|
||
text: "Setzt voraus, dass er es selbst verstanden hat." },
|
||
{ schluessel: "t-hilft-meldet-statt-moderiert", titel: "Meldet etwas, statt selbst zu moderieren",
|
||
text: "Genau die richtige Grenze zu kennen, ist das eigentliche Signal – "
|
||
+ "wer ohne Rolle durchgreift, wird es mit Rolle erst recht." },
|
||
{ schluessel: "t-hilft-unbeobachtet", titel: "Hilft auch dann, wenn es niemand sieht",
|
||
text: "Schwer zu beobachten, deshalb selten angeklickt – und wenn, dann zählt es." },
|
||
],
|
||
haus: [
|
||
{ schluessel: "t-haus-regeln", titel: "Kennt die Regeln, ohne sie nachzulesen",
|
||
text: "Und wendet sie im Gespräch an, nicht als Zitat." },
|
||
{ schluessel: "t-haus-leute", titel: "Kennt die Leute – weiß, wer wer ist",
|
||
text: "Ein halbes Jahr Einarbeitung, die schon passiert ist." },
|
||
{ schluessel: "t-haus-witze", titel: "Versteht die Witze, die nur hier funktionieren",
|
||
text: "Klingt nebensächlich und ist der Unterschied zwischen Gast und Zuhause." },
|
||
{ schluessel: "t-haus-frueh-dabei", titel: "War schon da, als es kleiner war",
|
||
text: "Nicht mehr wert – aber belastbarer, weil länger beobachtet." },
|
||
],
|
||
da: [
|
||
{ schluessel: "t-da-regelmaessig", titel: "Über Wochen regelmäßig, nicht nur bei den großen Streams",
|
||
text: "Regelmäßigkeit ist planbar, Begeisterung nicht." },
|
||
{ schluessel: "t-da-auch-wenig-los", titel: "Auch dann, wenn wenig los ist",
|
||
text: "Die kleinen Streams sind der ehrlichere Test." },
|
||
{ schluessel: "t-da-luecke", titel: "Zu Zeiten, zu denen wir niemanden haben",
|
||
text: "Operativ der entscheidendste Punkt der ganzen Liste: Ein guter Kandidat "
|
||
+ "zur falschen Zeit löst kein einziges Problem." },
|
||
{ schluessel: "t-da-kommt-wieder", titel: "Kommt nach einer Pause von selbst wieder",
|
||
text: "Pausen sind normal. Wiederkommen ist das Signal." },
|
||
],
|
||
empfohlen: [
|
||
{ schluessel: "t-emp-vom-team", titel: "Von jemandem aus dem Team vorgeschlagen",
|
||
text: "Ein Augenpaar, das den Alltag kennt." },
|
||
{ schluessel: "t-emp-mehrfach", titel: "Mehr als eine Person hat unabhängig denselben Namen genannt",
|
||
text: "Der stärkste Einzelbefund im ganzen Katalog. Zwei unabhängige Nennungen "
|
||
+ "schlagen jede einzelne Beobachtung." },
|
||
{ schluessel: "t-emp-schicht-tauschen", titel: "Jemand aus dem Team würde eine Schicht mit ihm tauschen",
|
||
text: "Die ehrlichste Frage, die man dem Team stellen kann." },
|
||
{ schluessel: "t-emp-schon-ausgeholfen", titel: "Hat schon mal ausgeholfen, ohne Rolle",
|
||
text: "Der beste verfügbare Beweis – er hat es getan." },
|
||
{ schluessel: "t-emp-von-zuschauer", titel: "Wurde von einem Zuschauer vorgeschlagen",
|
||
text: "Schwächer als eine Nennung aus dem Team, aber es zählt." },
|
||
],
|
||
};
|
||
|
||
/** Die Warnzeichen. Getrennt und in einem warmen Ton — nicht rot.
|
||
*
|
||
* WARUM SIE UEBERHAUPT GETRENNT STEHEN: Bei Moderatoren sagt das
|
||
* Fehlverhalten mehr voraus als das Koennen. Ein Warnzeichen neben
|
||
* zwanzig Haken ginge unter; getrennt steht es da.
|
||
*
|
||
* UND WARUM NICHT ROT: Keines davon ist ein Ausschluss. Rot heisst
|
||
* "nein" -- gemeint ist "hier laenger hinsehen". Ein Ton, der mehr
|
||
* sagt als die Sache, macht aus einem Hinweis ein Urteil. */
|
||
export const TALENT_WARNZEICHEN = [
|
||
{ schluessel: "t-warn-will-die-rolle", titel: "Will die Rolle sehr deutlich",
|
||
text: "Der klassischste Warnhinweis überhaupt. Kein Ausschluss – "
|
||
+ "aber ein Grund, länger hinzusehen." },
|
||
{ schluessel: "t-warn-war-ausfaellig", titel: "War im Chat schon einmal ausfällig",
|
||
text: "Muss nicht das letzte Wort sein. Aber es gehört auf die Karte, "
|
||
+ "nicht in die Erinnerung von einem." },
|
||
{ schluessel: "t-warn-nur-ein-thema", titel: "Nur bei einem Thema da",
|
||
text: "Begeisterung für eine Sache, nicht für den Ort. Hält, solange das Thema hält." },
|
||
{ schluessel: "t-warn-verschwindet", titel: "Verschwindet für Wochen und kommt wieder",
|
||
text: "Schwer zu verplanen – unabhängig davon, wie gut jemand ist." },
|
||
{ schluessel: "t-warn-redet-ueber", titel: "Redet über andere, nicht mit ihnen",
|
||
text: "Sagt Streit im Team voraus – den zweithäufigsten Ausstiegsgrund." },
|
||
{ schluessel: "t-warn-nur-bei-dir", titel: "Nur da, wenn du sendest",
|
||
text: "An eine Person gebunden, nicht an die Community. Das hält nicht." },
|
||
];
|
||
|
||
/* ---------------------------------------------------------------------
|
||
Abgeleitet, nicht abgeschrieben -- dieselbe Regel wie im anderen
|
||
Katalog: keine Zahl, die jemand pflegen muesste.
|
||
------------------------------------------------------------------- */
|
||
|
||
export const TALENT_ALLE = TALENT_GRUPPEN.flatMap((g) =>
|
||
(TALENT_MERKMALE[g.schluessel] || []).map((m) => ({ ...m, gruppe: g.schluessel })));
|
||
|
||
export const TALENT_NACH_SCHLUESSEL = new Map([
|
||
...TALENT_ALLE.map((m) => [m.schluessel, { ...m, warnung: false }]),
|
||
...TALENT_WARNZEICHEN.map((w) => [w.schluessel, { ...w, warnung: true }]),
|
||
]);
|
||
|
||
/** Die Stufe zu einem Schluessel -- und `null`, wenn es sie nicht gibt.
|
||
* Kein Rueckfall auf die erste Stufe: Eine erfundene Stufe soll
|
||
* auffallen, nicht stillschweigend zu "Aufgefallen" werden. */
|
||
export const talentStufe = (s) =>
|
||
TALENT_STUFEN.find((x) => x.schluessel === s) || null;
|
||
|
||
/** Die naechste Stufe -- oder null am Ende des Trichters. */
|
||
export function talentNaechste(s) {
|
||
const i = TALENT_STUFEN.findIndex((x) => x.schluessel === s);
|
||
if (i < 0 || i + 1 >= TALENT_STUFEN.length) return null;
|
||
return TALENT_STUFEN[i + 1];
|
||
}
|