Aus der Probe wird ein Zugang - und die Seite sagt nicht mehr "Agentur"
Die drei offenen Punkte aus Abschnitt 9 des Plans, plus Filipes zweite
Ansage: "auf dieser seite soll nichts stehen von agentur, diese seite
hier ist nur fuer mich meine modis und meine community."
1. PROBE -> ZUGANG (ein Knopf statt eines Satzes)
Auf der Stufe "Probe" stand bisher "Zugang in Personen & Zugaenge
anlegen, Rolle Modi" - und wer das vergass, hatte eine Karte auf "Im
Team" und keinen Menschen darin. Jetzt haengt das Anlegen am Schritt
selbst.
Ueber DENSELBEN Weg wie in "Personen & Zugaenge", nicht ueber einen
zweiten: POST /workspace/api/verwaltung/personen, mit ihrer
Rechtepruefung, ihrem Protokolleintrag und ihrem genau einmal
angezeigten Code. Der Talente-Server legt selbst keinen einzigen Zugang
an, und die Pruefung zaehlt nach, dass es bei einem Weg bleibt.
Der Code steht im gleichen Kasten wie dort - die Gestaltung ist aus
personen.css nach start.css umgezogen, weil talente.html sie sonst nicht
laedt. Ein Geheimnis sieht im ganzen Haus gleich aus. Er steht
ausserhalb der Liste, sonst waere er in dem Moment weg, in dem er
entsteht: wenn die Karte auf "Im Team" springt.
Die rechte Hand bekommt an dieser Stelle KEINEN Knopf, sondern einen
Satz. Ein Knopf, der ihr jedes Mal "darfst du nicht" antwortet, waere
schlechter als gar keiner - er verspricht etwas.
2. DIE EIGENE KARTE (Abschnitt "Deine Karte")
Wer beschrieben wird, darf es lesen - aber erst, wenn ALLE gesetzt
haben (sonst waere die erste Einschaetzung eine Vorgabe fuer die
zweite), und ohne Namen und ohne Anlasstext. Gemessen in beide
Richtungen: vorher nicht sichtbar, nachher sichtbar.
3. DER VORLAGENTEXT
Gebaut aus den angeklickten Merkmalen, in einem Feld zum Aendern, nicht
zum Abschicken. Ohne Merkmale steht auch keines drin.
4. "GILT FUER" SAGT DER SERVER
In bereich.js stand woertlich "Agentur" - richtig auf der
Agenturadresse, falsch auf jeder anderen. Jetzt liefert der Server
`gehoert` ("Der Treff" / "Team Dogi" / "Agentur"); gemessen mit einem
einzigen Menschen auf zwei Adressen.
PRUEFUNGEN: treff 58 -> 66, nachwuchs 69 -> 109, neue-seiten 70 -> 93.
Die Katalogseiten werden jetzt auch mit den Augen der rechten Hand
angesehen - ohne das waere "Deine Karte" nie auf einem Bildschirm
gewesen. Und pruef-neue-seiten wartet nicht mehr 900 ms, sondern bis
sich der Text nicht mehr aendert: Die Karte stand da und wurde
trotzdem als fehlend gemeldet, weil zu frueh gelesen wurde.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -73,13 +73,13 @@ export const TALENT_STUFEN = [
|
||||
{
|
||||
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.",
|
||||
schritt: "Nach 30 Tagen: übernehmen – der Zugang entsteht dabei – 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.",
|
||||
schritt: "Nichts mehr zu tun – der Zugang steht, ab hier zählt die Entwicklungskarte.",
|
||||
knopf: null,
|
||||
},
|
||||
];
|
||||
@@ -116,58 +116,79 @@ export const TALENT_GRUPPEN = [
|
||||
|
||||
export const TALENT_MERKMALE = {
|
||||
ruhe: [
|
||||
{ schluessel: "t-ruhe-streit", titel: "Bleibt ruhig, wenn im Chat gestritten wird",
|
||||
{ schluessel: "t-ruhe-streit", du: "auch dann ruhig bleibst, wenn es im Chat hitzig wird",
|
||||
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",
|
||||
{ schluessel: "t-ruhe-provokation", du: "auf Provokation nicht anspringst",
|
||||
titel: "Geht auf Provokation nicht ein",
|
||||
text: "Nicht ignorieren – nicht mitgehen. Zwei verschiedene Dinge." },
|
||||
{ schluessel: "t-ruhe-widerspricht", titel: "Widerspricht, ohne auszuteilen",
|
||||
{ schluessel: "t-ruhe-widerspricht", du: "widersprichst, ohne auszuteilen",
|
||||
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",
|
||||
{ schluessel: "t-ruhe-gegen-sich", du: "dich sogar dann im Griff hast, wenn es gegen dich selbst geht",
|
||||
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",
|
||||
{ schluessel: "t-hilft-vor-team", du: "Fragen von anderen beantwortest, bevor jemand von uns da ist",
|
||||
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",
|
||||
{ schluessel: "t-hilft-erklaert-neuen", du: "Neuen erklärst, wie es hier läuft",
|
||||
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",
|
||||
{ schluessel: "t-hilft-meldet-statt-moderiert", du: "Sachen meldest, statt selbst durchzugreifen",
|
||||
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",
|
||||
{ schluessel: "t-hilft-unbeobachtet", du: "auch dann hilfst, wenn gerade niemand hinsieht",
|
||||
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",
|
||||
{ schluessel: "t-haus-regeln", du: "die Regeln hier kennst, ohne nachzulesen",
|
||||
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",
|
||||
{ schluessel: "t-haus-leute", du: "die Leute kennst und weißt, wer wer ist",
|
||||
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",
|
||||
{ schluessel: "t-haus-witze", du: "die Witze verstehst, die nur hier funktionieren",
|
||||
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",
|
||||
{ schluessel: "t-haus-frueh-dabei", du: "schon dabei warst, als es hier noch kleiner war",
|
||||
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",
|
||||
{ schluessel: "t-da-regelmaessig", du: "über Wochen regelmäßig da bist, nicht nur bei den großen Streams",
|
||||
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",
|
||||
{ schluessel: "t-da-auch-wenig-los", du: "auch dann kommst, wenn wenig los ist",
|
||||
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",
|
||||
{ schluessel: "t-da-luecke", du: "oft genau dann da bist, wenn wir sonst niemanden haben",
|
||||
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",
|
||||
{ schluessel: "t-da-kommt-wieder", du: "nach einer Pause von selbst wieder auftauchst",
|
||||
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",
|
||||
{ schluessel: "t-emp-vom-team", du: "jemandem aus dem Team aufgefallen bist",
|
||||
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",
|
||||
{ schluessel: "t-emp-mehrfach", du: "gleich mehreren aus dem Team unabhängig voneinander aufgefallen bist",
|
||||
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",
|
||||
{ schluessel: "t-emp-schicht-tauschen", du: "jemand aus dem Team gern eine Schicht mit dir tauschen würde",
|
||||
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",
|
||||
{ schluessel: "t-emp-schon-ausgeholfen", du: "schon mal ausgeholfen hast, ohne dass du musstest",
|
||||
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",
|
||||
{ schluessel: "t-emp-von-zuschauer", du: "auch anderen Zuschauern aufgefallen bist",
|
||||
titel: "Wurde von einem Zuschauer vorgeschlagen",
|
||||
text: "Schwächer als eine Nennung aus dem Team, aber es zählt." },
|
||||
],
|
||||
};
|
||||
@@ -217,6 +238,81 @@ export const TALENT_NACH_SCHLUESSEL = new Map([
|
||||
export const talentStufe = (s) =>
|
||||
TALENT_STUFEN.find((x) => x.schluessel === s) || null;
|
||||
|
||||
/* =====================================================================
|
||||
DER VORLAGENTEXT ZUM ANSPRECHEN (11.09.2026)
|
||||
=====================================================================
|
||||
|
||||
Auf Stufe 2 steht als naechster Schritt "Ansprechen". Bis heute stand
|
||||
daneben "der Vorlagentext liegt bereit" -- und es gab keinen. Ein
|
||||
Versprechen an eine Schublade.
|
||||
|
||||
ER WIRD GEBAUT, NICHT ABGESCHRIEBEN. Aus den Merkmalen, die wirklich
|
||||
angeklickt wurden. Ein allgemeiner Text ("wir fanden dich toll")
|
||||
klingt wie ein Serienbrief, weil er einer ist; drei konkrete
|
||||
Beobachtungen klingen nach jemandem, der hingesehen hat -- und das
|
||||
ist der Unterschied, ob jemand zusagt.
|
||||
|
||||
HOECHSTENS DREI. Wer fuenf Beobachtungen auflistet, klingt nach
|
||||
Personalakte. Die drei kommen in der Reihenfolge des Katalogs, und
|
||||
die faengt bei "Ruhe" an -- dem am besten belegten Merkmal.
|
||||
|
||||
DREI SAETZE, DIE IMMER DRINSTEHEN, und jeder hat einen Grund:
|
||||
* "kein Druck, sag ruhig nein" -- wer sich gedraengt fuehlt, sagt
|
||||
ja und hoert nach drei Wochen auf.
|
||||
* "30 Tage, danach schauen wir beide" -- die Probezeit wird
|
||||
BEIDSEITIG ausgesprochen. Wer weiss, dass er ohne Gesichtsverlust
|
||||
wieder gehen kann, sagt eher ehrlich, wie es ihm damit geht.
|
||||
* "du musst nichts koennen" -- die haeufigste Absage kommt nicht
|
||||
aus Desinteresse, sondern aus der Annahme, man muesse etwas
|
||||
mitbringen.
|
||||
|
||||
ER WIRD NICHT VERSCHICKT. Er steht da zum Kopieren. Eine Nachricht,
|
||||
die ein Programm verschickt, liest sich wie eine Nachricht, die ein
|
||||
Programm verschickt hat. */
|
||||
export function ansprechtext(name, gesetzteMerkmale) {
|
||||
/* NUR DAS ERSTE WORT. Im Brett steht selten ein Name allein --
|
||||
"Kessi aus dem Chat" ist eine Notiz, keine Anrede. "Hey Kessi aus
|
||||
dem Chat," liest sich wie ein Serienbrief, und genau das soll der
|
||||
Text nicht sein.
|
||||
|
||||
Es ist eine VORLAGE zum Kopieren, keine Nachricht, die abgeschickt
|
||||
wird -- wer den Namen anders schreiben will, tut das im Text. */
|
||||
const sauber = String(name || "").trim().split(/[\s,(–-]+/)[0].trim() || "du";
|
||||
const beobachtet = (gesetzteMerkmale || [])
|
||||
.map((sch) => TALENT_ALLE.find((m) => m.schluessel === sch)?.du)
|
||||
.filter(Boolean)
|
||||
.slice(0, 3);
|
||||
|
||||
const mitte = beobachtet.length
|
||||
? "Mir ist aufgefallen, dass du " + (beobachtet.length === 1
|
||||
? beobachtet[0]
|
||||
: beobachtet.slice(0, -1).join(", ") + " und " + beobachtet[beobachtet.length - 1]) + "."
|
||||
: "Du bist mir hier schon öfter positiv aufgefallen.";
|
||||
|
||||
/* ECHTE UMLAUTE UND ECHTE STRICHE.
|
||||
|
||||
In Kommentaren schreibt dieses Haus ASCII; in TEXT, den jemand
|
||||
liest, nicht. Der erste Entwurf stand voller "Haettest" und
|
||||
"koennen" -- und dieser Text hier ist der einzige im ganzen
|
||||
Bereich, den ein Fremder zu sehen bekommt. "Haettest du Lust" sieht
|
||||
aus wie ein Fehler, weil es einer ist. Derselbe Befund stand schon
|
||||
am 10.09. in workspace-personen.js. */
|
||||
return [
|
||||
`Hey ${sauber},`,
|
||||
"",
|
||||
mitte,
|
||||
"",
|
||||
"Deshalb die Frage: Hättest du Lust, bei uns im Mod-Team mitzumachen?",
|
||||
"",
|
||||
"Du musst dafür nichts können – alles, was es zu wissen gibt, zeigen wir dir. "
|
||||
+ "Wir würden mit 30 Tagen anfangen, und danach schauen wir beide, ob es passt. "
|
||||
+ "Wenn nicht, ist das völlig in Ordnung und ändert nichts.",
|
||||
"",
|
||||
"Und ganz wichtig: kein Druck. Sag ruhig nein oder „gerade nicht“ – "
|
||||
+ "das nehme ich dir null übel.",
|
||||
].join("\n");
|
||||
}
|
||||
|
||||
/** Die naechste Stufe -- oder null am Ende des Trichters. */
|
||||
export function talentNaechste(s) {
|
||||
const i = TALENT_STUFEN.findIndex((x) => x.schluessel === s);
|
||||
|
||||
Reference in New Issue
Block a user