Die Einweisung gibt es jetzt auch fuer Team Dogi -- vier Fassungen, 106 Karten
Filipe hat den Bauplan "Willkommen & Anleitung -- Einweisung je Rolle"
(27 Seiten, Stand 06.10.2026) geschickt: pruefen, perfektionieren und
auf der Crew-Seite umsetzen.
AUSGANGSMESSUNG, bevor etwas angefasst wurde:
agentur creator 18 · manager 22 · scout 21 · spicy 23 Karten
crew 0 Karten -- die Schnittstelle antwortete 404 "nicht_hier"
Die Seite lud also, war aber leer. Baulich vorbereitet war sie schon:
Alle drei Inhaltstabellen tragen `haus` mit UNIQUE (haus, rolle,
kachel), und die Aussaat nimmt das Haus als Parameter.
WAS JETZT DA IST
gast 14 Karten (5 Muss, 4 Regelmaessig, 5 Bedarf)
modi 29 Karten (7 / 7 / 15)
linke 29 Karten (7 / 7 / 15)
hand 34 Karten (8 / 7 / 19)
Jede Zahl entspricht Kapitel 13 des Bauplans. Dazu je Rolle
Leitgedanke, drei Saetze, fuenf Erste Schritte, "Nicht deins",
Rhythmus und Fragen -- woertlich aus Kapitel 06 bis 09.
VOR DEM SCHREIBEN ABGEGLICHEN, nicht danach: Ein Skript prueft jede
Karte gegen die echte Kachelliste der Rolle. Ergebnis fuer alle vier
Fassungen: Kartenzahl wie im Plan, jede Karte trifft eine Kachel,
jede Kachel hat eine Karte, keine doppelt.
ZWEI KACHELN AUF EINER SEITE. Auf der Crew-Adresse fuehren "Chat"
(das Team) und "Rudel-Chat" (`?raum=treff`) beide auf chat.html.
`schluesselVonZiel` behielt nur `b` -- beide ergaben denselben
Schluessel, und damit konnten sie keine eigenen Karten haben, obwohl
der Bauplan ihnen verschiedene Einordnungen gibt (fuer die rechte
Hand: Team-Chat Muss, Rudel-Chat nur bei Bedarf). Jetzt wird auch
`raum` unterschieden. Auf der Agenturadresse gibt es nur eine
Chat-Kachel; dort aendert sich nichts.
DAS HAUS KOMMT AUS DER ADRESSE, nicht aus der angesehenen Rolle.
`const HAUS = "agentur"` ist einer Funktion gewichen. Nimmt DogFather
die Sicht einer anderen Rolle ein, wechselt er die ROLLE, nicht die
ADRESSE -- wer hier `req.sicht` naehme, bekaeme auf der Crew-Adresse
Agenturinhalte, sobald eine Sicht gesetzt ist.
`FASSUNGEN` stand an zehn Stellen fest und haette die Crew ueberall
abgewiesen. Jetzt `fassungenFuer(haus)` -- eine Funktion statt zweier
Listen an zehn Stellen.
Neue Zeilenart `vorweg` fuer "Drei Dinge vorweg" (nur die Community,
Bauplan Kapitel 04). Fehlt die Liste bei einer Rolle, wird nichts
eingetragen -- kein Sonderfall noetig.
Eigene Datei fuer die Crew-Inhalte: anleitung-tabellen.js traegt
schon die Agenturfassungen und ist 856 Zeilen lang. Getrennte Dateien
sind hier dasselbe Prinzip wie getrennte Haeuser.
pruef-anleitung 125 -> 127. Fuenf Zeilen darin verteidigten den alten
Zustand ("ein Modi bekommt die Anleitung nicht, erwartet 404") -- sie
sind mitgewandert statt stehenzubleiben. Dazu eine neue Gegenprobe
zur Haustrennung: In der Crew-Fassung darf keine Agenturkachel
vorkommen.
Datenbank vorher gesichert und zurueckgelesen (integrity_check,
84 Karten).
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -46,6 +46,8 @@
|
||||
===================================================================== */
|
||||
|
||||
/** Die drei Stufen. Reihenfolge ist die Anzeigereihenfolge. */
|
||||
import { INHALTE_CREW, FASSUNGEN_CREW } from "./anleitung-inhalte-crew.js";
|
||||
|
||||
export const STUFEN = [
|
||||
{ schluessel: "muss", name: "Muss",
|
||||
titel: "Das brauchst du sofort",
|
||||
@@ -70,6 +72,19 @@ export const STUFEN_SCHLUESSEL = STUFEN.map((s) => s.schluessel);
|
||||
* Pflege-Ansicht. */
|
||||
export const FASSUNGEN = ["creator", "scout", "manager", "spicy"];
|
||||
|
||||
/** Welche Fassungen gibt es in DIESEM Haus?
|
||||
*
|
||||
* DAS HAUS ENTSCHEIDET, NICHT DIE ROLLE (06.10.2026). Die Agentur
|
||||
* hat vier Fassungen, die Crew hat vier andere -- und keine Rolle
|
||||
* kommt in beiden vor. Vorher stand `FASSUNGEN` an zehn Stellen
|
||||
* fest; jede davon haette die Crew stillschweigend abgewiesen.
|
||||
*
|
||||
* EINE FUNKTION STATT ZWEIER LISTEN AN ZEHN STELLEN: Wer eine
|
||||
* Fassung ergaenzt, traegt sie an einer Stelle ein. */
|
||||
export function fassungenFuer(haus) {
|
||||
return haus === "crew" ? FASSUNGEN_CREW : FASSUNGEN;
|
||||
}
|
||||
|
||||
/** Wer die Texte aendern darf.
|
||||
*
|
||||
* DogFather UND Spicy — Entscheidung Filipe am 06.10.2026, und zwar
|
||||
@@ -99,6 +114,11 @@ export const ZEILEN_ARTEN = {
|
||||
takt: { titel: true, ziel: false },
|
||||
/* "Haeufige Fragen" — `titel` die Frage, `text` die Antwort. */
|
||||
frage: { titel: true, ziel: false },
|
||||
/* "Drei Dinge vorweg" — NUR die Community (Bauplan, Kapitel 04).
|
||||
`titel` die Regel in drei Worten, `text` was sie bedeutet.
|
||||
Sie steht VOR allem anderen, weil sie nichts erklaert, sondern
|
||||
sagt, woran sich alle halten. */
|
||||
vorweg: { titel: true, ziel: false },
|
||||
};
|
||||
|
||||
export const ARTEN_SCHLUESSEL = Object.keys(ZEILEN_ARTEN);
|
||||
@@ -821,6 +841,9 @@ function rolleEinspielen(d, haus, rolle, inhalt, jetzt) {
|
||||
["nicht", inhalt.nicht],
|
||||
["takt", inhalt.takt],
|
||||
["frage", inhalt.fragen],
|
||||
/* Nur die Community bringt "Drei Dinge vorweg" mit. Fehlt die
|
||||
Liste, wird nichts eingetragen -- kein Sonderfall noetig. */
|
||||
["vorweg", inhalt.vorweg || []],
|
||||
];
|
||||
for (const [art, liste] of listen) {
|
||||
liste.forEach((z, i) => {
|
||||
@@ -840,15 +863,20 @@ export function anleitungTabellen(d) {
|
||||
const jetzt = new Date().toISOString();
|
||||
let gesamt = 0;
|
||||
const neu = [];
|
||||
for (const rolle of FASSUNGEN) {
|
||||
const inhalt = INHALTE[rolle];
|
||||
for (const [haus, rollen, quelle] of [
|
||||
["agentur", FASSUNGEN, INHALTE],
|
||||
["crew", FASSUNGEN_CREW, INHALTE_CREW],
|
||||
]) {
|
||||
for (const rolle of rollen) {
|
||||
const inhalt = quelle[rolle];
|
||||
/* Eine Rolle ohne Inhalte ist kein Fehler, sondern der Stand der
|
||||
Arbeit: Etappe 1 bringt nur den Creator, die drei anderen kommen
|
||||
in Etappe 3. Still uebergehen — aber die Zuordnungspruefung
|
||||
weiss davon und meldet es als offen, nicht als in Ordnung. */
|
||||
if (!inhalt) continue;
|
||||
const n = rolleEinspielen(d, "agentur", rolle, inhalt, jetzt);
|
||||
if (n) { gesamt += n; neu.push(`${rolle} ${n}`); }
|
||||
const n = rolleEinspielen(d, haus, rolle, inhalt, jetzt);
|
||||
if (n) { gesamt += n; neu.push(`${haus}/${rolle} ${n}`); }
|
||||
}
|
||||
}
|
||||
if (gesamt) {
|
||||
console.log(`[workspace] Anleitung: ${gesamt} Zeilen erstbefuellt (${neu.join(", ")}).`);
|
||||
|
||||
Reference in New Issue
Block a user