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:
2026-09-11 22:20:09 +02:00
co-authored by Claude Opus 5
parent 93ba881b18
commit dfd951861a
42 changed files with 3168 additions and 335 deletions
+60 -7
View File
@@ -629,13 +629,18 @@ const FUEHRUNG_GRUPPE = {
const ENTWICKLUNG_KACHEL = {
...FUEHRUNG_GRUPPE,
name: "Entwicklung", unter: "Was gut läuft, woran ihr arbeitet – je Person",
zeichen: "steckbrief", ton: 26, ziel: "bereich.html?b=entwicklung", szene: "studio",
/* SEIT DEM 11.09.2026 FUEHRT DIE KACHEL AUF DEN KATALOG, nicht mehr
auf das Notizbrett. Filipe: "ich will dass fertige aufgaben da
stehen und so". Das Brett gibt es weiter -- es ist von der
Katalogseite aus verlinkt und nimmt auf, was zwischen zwei
Durchgaengen auffaellt. */
zeichen: "steckbrief", ton: 26, ziel: "entwicklung.html", szene: "studio",
};
const TALENTE_KACHEL = {
...FUEHRUNG_GRUPPE,
name: "Talente", unter: "Zuschauer, die ins Team passen könnten",
zeichen: "scouting", ton: 27, ziel: "bereich.html?b=talente", szene: "portal",
zeichen: "scouting", ton: 27, ziel: "talente.html", szene: "portal",
};
const PERSONEN_KACHEL = {
@@ -700,11 +705,29 @@ function vorGruppe(liste, gruppe, ...neue) {
community", 11.09.2026), und sie kommen dort ueber
ZUSATZ_BEREICHE.admin mit eigenem gruppeNach. Zwei Adressen, zwei
Plaetze, beide entschieden. */
/* WIE GEHT'S DIR? -- die einzige Kachel des Hauses, deren Inhalt
niemand ausser der Person selbst je sieht (11.09.2026).
SIE STEHT BEI "FUER DICH" und nicht bei "Taeglich": Es sind sechs
Fragen, die man einmal im Monat beantwortet, nicht jeden Tag. Eine
taegliche Kachel, die man nicht taeglich braucht, wird nach einer
Woche uebersehen.
UND SIE STEHT AUCH BEI DOGFATHER UND DER RECHTEN HAND. Sie sind
Teil des Teams, nicht darueber -- 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. */
const BEFINDEN_KACHEL = {
gruppe: "Für dich", gruppeUnter: "Dein Platz im Team",
name: "Wie geht's dir?", unter: "Sechs Fragen – die Antworten sieht nur du",
zeichen: "steckbrief", ton: 37, ziel: "entwicklung.html", szene: "lounge",
};
const HAND_BEREICHE = vorGruppe(
[...MODI_BEREICHE, EINGANG_KACHEL, PERSONEN_KACHEL],
"Rund ums Live",
ENTWICKLUNG_KACHEL, TALENTE_KACHEL,
);
).concat(BEFINDEN_KACHEL);
/* =====================================================================
@@ -797,7 +820,8 @@ export const TREFF_ROLLEN = new Set(["gast", "modi", "hand", "admin"]);
Zusammengesetzt und nicht in MODI_BEREICHE hineingeschrieben, weil
diese Liste weiter oben steht als die Kacheln des Treffs. Eine Kopie
dort waere die Stelle, an der beim naechsten neuen Brett eines fehlt. */
const MODI_MIT_TREFF = [...MODI_BEREICHE, ...TREFF_BEREICHE, TREFF_MODERATION_KACHEL];
const MODI_MIT_TREFF = [...MODI_BEREICHE, BEFINDEN_KACHEL, ...TREFF_BEREICHE,
TREFF_MODERATION_KACHEL];
const HAND_MIT_TREFF = [...HAND_BEREICHE, ...TREFF_BEREICHE, TREFF_MODERATION_KACHEL];
/* AUSSEN_ROLLEN kommt aus crew-adresse.js und wird hier nur
@@ -861,10 +885,39 @@ const AGENTUR_LISTE = new Set(["spicy", "admin", "manager", "scout", "creator"])
Gebraucht wird sie, weil `bereich.html` seit heute fuer ihn offen ist
-- ohne diese Einschraenkung kaeme er ueber die Adresszeile auch in
die Agentur-Ablage, die ihn nichts angeht. */
export const MODI_BEREICHE_ERLAUBT = new Set(
HAND_MIT_TREFF
/* EINE KACHEL IST NICHT MEHR DER EINZIGE WEG ZU EINEM BRETT
(11.09.2026, gefunden von pruef-entwicklung).
Die Ableitung oben liest die Bretter aus den Kachelzielen. Das war
richtig, solange jede Kachel auf ein Brett zeigte. Seit „Entwicklung"
und „Talente" auf ihre KATALOGSEITEN zeigen, fielen genau diese
beiden Bretter aus der Liste -- und die rechte Hand bekam auf dem
Notizbrett, das die Katalogseite selbst verlinkt, ein 404.
Kein Fehler im Riegel, sondern in seiner QUELLE: Die Frage "welche
Bretter darf diese Rolle oeffnen" laesst sich nicht mehr allein aus
den Kacheln beantworten, weil es jetzt Bretter gibt, die man ueber
eine Seite erreicht statt ueber eine Kachel.
Beides wird deshalb zusammengezogen -- und die zweite Liste ist
ausdruecklich KURZ und begruendet, nicht offen: Hier stehen nur die
Bretter, zu denen eine erlaubte SEITE verlinkt. Wer ein drittes
dazunimmt, ohne es einzutragen, bekommt dasselbe 404 und findet
diesen Absatz. */
const BRETTER_UEBER_SEITEN = [
/* Beide sind von entwicklung.html bzw. talente.html aus verlinkt --
das Notizbrett neben dem Katalog. Wer die Seite oeffnen darf,
muss auch dorthin kommen. */
"entwicklung",
"talente",
];
export const MODI_BEREICHE_ERLAUBT = new Set([
...HAND_MIT_TREFF
.map((k) => (/bereich\.html\?b=([a-z]+)/.exec(k.ziel) || [])[1])
.filter(Boolean));
.filter(Boolean),
...BRETTER_UEBER_SEITEN,
]);
/* Der Satz unter der Begruessung. Die fuenf bekannten Rollen haben ihn
in assets/js/start.js stehen ("Creator · dein eigener Bereich"); fuer