Entwicklung & Nachwuchs: zwei Kataloge zum Anklicken statt zwei leerer Formulare
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]>
This commit is contained in:
@@ -137,9 +137,23 @@ console.log("=== Die beiden Bereiche ===");
|
||||
ok(arten.includes("last"),
|
||||
"„Zu viel gerade“ ist dabei -- der haeufigste Grund aufzuhoeren");
|
||||
|
||||
/* DAS NOTIZBRETT MUSS ERREICHBAR BLEIBEN -- gerade WEIL die Kachel
|
||||
nicht mehr darauf zeigt.
|
||||
|
||||
Genau hier ist am 11.09.2026 etwas kaputtgegangen: Die Liste der
|
||||
Bretter, die ein Modi oder die rechte Hand oeffnen darf, wird aus
|
||||
den KACHELZIELEN abgeleitet. Als die Kacheln auf die Katalogseiten
|
||||
umgestellt wurden, fielen beide Bretter aus der Liste -- und die
|
||||
Seite verlinkte auf ein 404. Kein Fehler im Riegel, sondern in
|
||||
seiner Quelle.
|
||||
|
||||
Diese Zeile ist die einzige, die das gemerkt hat. */
|
||||
const b = await hole(TAL, { host: CREW, keks: hand.keks });
|
||||
ok(b.daten?.einstellung?.name === "Talente",
|
||||
`die rechte Hand kann Talente oeffnen (${b.daten?.einstellung?.name})`);
|
||||
const bE = await hole(ENTW, { host: CREW, keks: hand.keks });
|
||||
ok(bE.daten?.einstellung?.name === "Entwicklung",
|
||||
`und das Notizbrett Entwicklung auch (${bE.daten?.einstellung?.name})`);
|
||||
const tArten = Object.keys(b.daten?.einstellung?.arten || {});
|
||||
ok(tArten.includes("empfohlen"),
|
||||
`die Empfehlung aus dem Team ist dabei (${tArten.join(", ")})`);
|
||||
@@ -240,17 +254,55 @@ console.log("=== An die Person schicken ===");
|
||||
console.log("");
|
||||
console.log("=== Die Kacheln ===");
|
||||
{
|
||||
/* DIE KACHELN ZEIGEN SEIT DEM 11.09.2026 AUF DIE KATALOGSEITEN.
|
||||
|
||||
Vorher stand hier `b=(entwicklung|talente)` -- das Ziel war ein
|
||||
Brett. Filipe: "ich will dass fertige aufgaben da stehen und so".
|
||||
Seither fuehrt die Kachel auf entwicklung.html bzw. talente.html;
|
||||
das Notizbrett gibt es weiter und ist von dort verlinkt.
|
||||
|
||||
GEPRUEFT WIRD DER NAME DER SEITE UND NICHT MEHR DAS BRETT -- eine
|
||||
Kachel, die auf ein Brett zeigt, waere ab jetzt der Rueckschritt,
|
||||
den diese Zeile melden soll. */
|
||||
for (const [wer, keks] of [["DogFather", dogi.keks], ["die rechte Hand", hand.keks]]) {
|
||||
const a = await hole("/workspace/api/ich", { host: CREW, keks });
|
||||
const alle = [...(a.daten?.bereiche || []), ...(a.daten?.bereiche_zusatz || [])];
|
||||
const beide = alle.filter((k) => /b=(entwicklung|talente)/.test(k.ziel || ""));
|
||||
/* NACH DEM NAMEN UND NICHT NACH DEM ZIEL.
|
||||
|
||||
Seit dem 11.09.2026 zeigen DREI Kacheln auf entwicklung.html: die
|
||||
beiden Katalogkacheln und „Wie geht's dir?" -- dieselbe Seite,
|
||||
drei verschiedene Zwecke, weil der Server entscheidet, was ein
|
||||
Modi dort sieht. Ein Filter nach dem Ziel zaehlt sie alle und
|
||||
meldet einen Fehler, wo keiner ist.
|
||||
|
||||
Der Name ist hier die ehrlichere Frage: Es geht um DIESE zwei
|
||||
Kacheln, nicht um alles, was zufaellig dieselbe Adresse hat. */
|
||||
const beide = alle.filter((k) => ["Entwicklung", "Talente"].includes(k.name));
|
||||
ok(beide.length === 2, `${wer}: beide Kacheln (${beide.map((k) => k.name).join(", ") || "keine"})`);
|
||||
ok(beide.every((k) => k.gruppe === "Entwicklung & Nachwuchs"),
|
||||
`${wer}: in einer eigenen Gruppe (${[...new Set(beide.map((k) => k.gruppe))].join(", ")})`);
|
||||
}
|
||||
/* DIE DRITTE KACHEL -- und sie gehoert ausdruecklich ALLEN im Team.
|
||||
|
||||
„Wie geht's dir?" ist die einzige Kachel des Hauses, deren Inhalt
|
||||
niemand ausser der Person selbst je sieht. Sie steht auch bei
|
||||
DogFather und der rechten Hand: Wenn es jemandem zu viel wird,
|
||||
dann ihnen genauso. Eine Kachel, die nur die anderen ausfuellen,
|
||||
waere genau die Schieflage, die dieses Haus nicht haben soll. */
|
||||
for (const [wer, keks] of [["DogFather", dogi.keks], ["die rechte Hand", hand.keks],
|
||||
["ein Modi", ayla.keks]]) {
|
||||
const x = await hole("/workspace/api/ich", { host: CREW, keks });
|
||||
const alleX = [...(x.daten?.bereiche || []), ...(x.daten?.bereiche_zusatz || [])];
|
||||
const befinden = alleX.find((k) => k.ziel === "entwicklung.html"
|
||||
&& !["Entwicklung", "Talente"].includes(k.name));
|
||||
ok(!!befinden, `${wer} hat „${befinden?.name || "—"}"`);
|
||||
ok(befinden?.gruppe === "Für dich",
|
||||
`und sie steht bei „Für dich" (${befinden?.gruppe})`);
|
||||
}
|
||||
|
||||
const a = await hole("/workspace/api/ich", { host: CREW, keks: ayla.keks });
|
||||
const alle = [...(a.daten?.bereiche || []), ...(a.daten?.bereiche_zusatz || [])];
|
||||
ok(!alle.some((k) => /b=(entwicklung|talente)/.test(k.ziel || "")),
|
||||
ok(!alle.some((k) => ["Entwicklung", "Talente"].includes(k.name)),
|
||||
`ein Teammitglied bekommt sie nicht angeboten (${alle.length} Kacheln)`);
|
||||
|
||||
/* Kein Farbton doppelt -- zwei Kacheln in derselben Farbe sind ein
|
||||
|
||||
Reference in New Issue
Block a user