Entwicklung: der Mensch sieht, was seine Aufgabe ist

VanVan im Support: „wenn ich … Aufgaben an einen Modi zutrage und
auch bewerte, dann sieht der Modi zwar die Auswertung im Bereich
Entwicklung, aber bei ihm taucht nichts im Bereich eure Aufgaben
unten in der Karte auf."

IHR FALL NACHGESTELLT (server/mess-vanvan-karte.mjs): VanVan traegt
einem Modi zwei von 68 Punkten zu und bewertet sie, Filipe bewertet
nichts -- genau wie bei ihr.

  vorher   seine Karte: fertig=0 von 68, alles „offen",
           Punktzeilen sichtbar: 0
           Kennt sie das Wort „zugetragen"?  NEIN
  nachher  Abschnitt „Deine Aufgaben (2)" mit beiden Titeln

ZWEI DINGE WAREN EINS, DIE GETRENNT GEHOEREN

  Was er TUN soll   die Zuteilung. Die gibt es, bevor jemand etwas
                    bewertet, und sie gehoert ihm.
  Was man SIEHT     die Bewertung. Die erscheint erst, wenn alle
                    hingesehen haben.

`meine-karte` kannte nur das Zweite. War die Bewertung noch nicht
vollstaendig, stieg die Anzeige mit `return` aus -- und damit sah er
gar nichts, obwohl ihm zwei Aufgaben zugetragen waren. Das ist die
falsche Reihenfolge: Wer seine Aufgabe erst sieht, wenn sich zwei
Leute ueber ihre Ausfuehrung einig sind, kann sie nicht angehen.

Die Regel fuer die Bewertung bleibt unveraendert. Eine einzelne
Meinung soll bei einem Menschen nicht als Urteil des Teams ankommen.

UND DIE ANDERE HAELFTE: NIEMAND SAGTE ES IHR

VanVan hatte gesetzt, es kam nicht an, und nichts auf ihrem
Bildschirm erklaerte das. Ein Mensch, der das zweimal erlebt, hoert
auf zu setzen. An einem Punkt, den sie bewertet hat, steht jetzt
leise: „Er sieht das noch nicht -- es fehlt noch eine Einschaetzung."
Ohne Namen: Wer fehlt, waere eine Aufforderung, jemanden
anzutreiben.

IHRE ZWEITE BEOBACHTUNG, EBENFALLS GEMESSEN

„bei jedem Punkt läuft obwohl auch wenn die Aufgaben darüber gar
nicht zugetragen wurde." Stimmt: Die vier Bewertungsknoepfe („✓
Läuft ↗ Wächst ! Da hakt es – Kann ich nicht sagen") stehen an allen
68 Punkten, auch an den nicht zugetragenen. Beim Durchscrollen liest
man deshalb ueberall „Läuft".

DIE 68 BLEIBEN. Filipe am 25.09.2026 ausdruecklich: „dogfather und
die rechte hand sollen immer noch die 68 sachen sehen wie vorher …
unsere sicht soll sich nicht aendern." Also kein Ausblenden und
keine neue Vorgabe, sondern ein Knopf mehr in der Leiste, die es
schon gibt: „Zugetragen · 2". „Alle" bleibt, was beim Aufmachen
gilt. Gemessen grenzt er auf 2 Punkte ein, Kopf „2 / 2".

NEBENBEI ZUSAMMENGEFUEHRT
* `beurteilerZahl()` an einer Stelle -- beide Enden stellen dieselbe
  Frage, zwei Abschriften saegten irgendwann Verschiedenes ueber
  denselben Punkt.
* `antwortReihe()` und `punkteGefiltert()` ebenso.
* Die Abfrage stand zuerst je Punkt in der Schleife: 68
  Datenbankfragen fuer eine Zahl, die sich nicht aendert.

GEPRUEFT
pruef-entwicklung 79/0 (9 neue, mit Gegenproben in beide Richtungen:
ein nicht zugetragener Punkt traegt die Marke nicht, und sobald der
zweite Beurteiler setzt, geht es durch). mess-vanvan-karte ohne
ACHTUNG. pruef-werdegang 103/0, pruef-entwicklung-kacheln 34/0,
pruef-deutsche-texte, pruef-css-klassen, pruef-zwischenspeicher 34/0.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-30 16:48:24 +02:00
co-authored by Claude Opus 5
parent a3ec558127
commit 51c47e1c07
50 changed files with 1391 additions and 701 deletions
+96
View File
@@ -551,6 +551,102 @@ console.log("\n=== Punkte je Person aussuchen ===");
`und alles wieder wegnehmen geht ebenfalls (${danach?.gesamt})`);
}
/* =======================================================================
VANVANS MELDUNG AUS DEM SUPPORT (30.09.2026)
„Wenn ich … Aufgaben an einen Modi zutrage und auch bewerte, dann
sieht der Modi zwar die Auswertung im Bereich Entwicklung, aber bei
ihm taucht nichts im Bereich eure Aufgaben unten in der Karte auf."
Nachgestellt im Browser (mess-vanvan-karte) war es genau so: Seine
Karte lieferte alle 68 Punkte des Katalogs und kein Wort darueber,
welche davon ihm zugetragen wurden -- und weil noch nicht alle
Beurteiler gesetzt hatten, stieg die Anzeige ganz aus.
ZWEI GETRENNTE DINGE, die vorher eins waren:
* WAS ER TUN SOLL -- die Zuteilung. Die gibt es, bevor jemand
etwas bewertet, und sie gehoert ihm.
* WAS MAN SIEHT -- die Bewertung. Die erscheint erst, wenn
alle hingesehen haben, und das bleibt so.
======================================================================= */
console.log("");
console.log("=== VanVans Meldung: die eigene Karte kennt die Aufgaben ===");
{
const PA = "e-chat-neue-begruesst";
const PB = "e-chat-fragen-beantwortet";
/* Sauberer Ausgangspunkt -- die Abschnitte davor haben gesetzt. */
await hole(`/workspace/api/entwicklung/person/${idModi}/punkte`,
{ host: CREW, keks: dogi.keks, methode: "PUT",
rumpf: JSON.stringify({ punkte: [PA, PB] }) });
const meine = async () => (await hole("/workspace/api/entwicklung/meine-karte",
{ host: CREW, keks: ayla.keks })).daten;
const m0 = await meine();
const alle0 = (m0?.bloecke || []).flatMap((b) => b.punkte);
ok(alle0.some((p) => p.schluessel === PA && p.zugetragen === true),
"die eigene Karte weiss, welche Punkte zugetragen sind");
ok(m0?.meine_aufgaben === 2,
`und sagt, wie viele es sind (${m0?.meine_aufgaben})`);
/* DER KERN DER MELDUNG: Er sieht seine Aufgabe, BEVOR irgendjemand
sie bewertet hat. Vorher war das umgekehrt -- ohne vollstaendige
Bewertung sah er gar nichts. */
ok(alle0.find((p) => p.schluessel === PA)?.offen === true,
"sie steht da, obwohl noch niemand etwas dazu gesetzt hat");
/* GEGENPROBE: Ein Punkt, der NICHT zugetragen ist, traegt die Marke
auch nicht. Ohne sie hiesse „zugetragen=true" womoeglich nur,
dass dort immer `true` steht. */
const fremd = alle0.find((p) => p.schluessel !== PA && p.schluessel !== PB);
ok(fremd && fremd.zugetragen === false,
`ein nicht zugetragener Punkt traegt die Marke nicht (${fremd?.schluessel})`);
/* ---- Und die andere Haelfte: sieht die Leitung, dass es bei ihm
noch nicht ankommt? ------------------------------------- */
await hole(`/workspace/api/entwicklung/person/${idModi}/${PA}`,
{ host: CREW, keks: hand.keks, methode: "PUT",
rumpf: JSON.stringify({ stufe: "laeuft", anlass: "Im Stream gesehen." }) });
const sicht = async (keks) => {
const k = (await hole(`/workspace/api/entwicklung/person/${idModi}`,
{ host: CREW, keks })).daten;
return (k?.bloecke || []).flatMap((b) => b.punkte).find((p) => p.schluessel === PA);
};
const beiVan = await sicht(hand.keks);
ok(beiVan?.sieht_er && beiVan.sieht_er.da === 1 && beiVan.sieht_er.noetig === 2,
`VanVan sieht: eine von zwei Einschaetzungen liegt vor `
+ `(${JSON.stringify(beiVan?.sieht_er)})`);
const m1 = await meine();
ok((m1?.bloecke || []).flatMap((b) => b.punkte)
.find((p) => p.schluessel === PA)?.offen === true,
"und bei ihm ist der Punkt weiterhin offen -- eine halbe Karte waere schlimmer");
/* GEGENPROBE, OHNE DIE DIE ZWEI ZEILEN OBEN NICHTS BEWEISEN:
Setzt der zweite Beurteiler auch, geht es durch -- und die
Leitung sieht das ebenfalls. */
await hole(`/workspace/api/entwicklung/person/${idModi}/${PA}`,
{ host: CREW, keks: dogi.keks, methode: "PUT",
rumpf: JSON.stringify({ stufe: "laeuft", anlass: "Sehe ich auch so." }) });
const beiVan2 = await sicht(hand.keks);
ok(beiVan2?.sieht_er?.da === 2,
`nach der zweiten Einschaetzung steht es auf 2 von 2 `
+ `(${JSON.stringify(beiVan2?.sieht_er)})`);
const m2 = await meine();
const pa2 = (m2?.bloecke || []).flatMap((b) => b.punkte)
.find((p) => p.schluessel === PA);
ok(pa2?.offen === false && pa2?.zugetragen === true,
`jetzt sieht er die Einschaetzung -- und es ist weiterhin seine Aufgabe `
+ `(offen=${pa2?.offen}, zugetragen=${pa2?.zugetragen})`);
ok(Array.isArray(pa2?.antworten) && pa2.antworten[0]?.anzahl === 2,
`mit beiden Antworten (${JSON.stringify(pa2?.antworten)})`);
}
d.close();
try { rmSync(ordner, { recursive: true, force: true }); } catch { /* egal */ }
console.log("");