/flashcards — Karteikarten

Hinweis: Rahmen: 00-rahmen.md. Code: plugins/src/flashcards/client/Karteikartenschirm.tsx (dünn) — er zeichnet den Lerndurchgang des Studiums, und zwar über den Anschluss ANSCHLUESSE.studium?.Lerndurchgang, nicht über einen Import, und daneben ebenso ANSCHLUESSE.studium?.AnkiEinlesen · plugins/src/flashcards/client/lage.ts (die eigenen Entscheidungen — welche Lage gilt, welche drei Verlaufsreihen gezeigt werden, welche zwei fremden Abschnitte angesteuert werden; mit lage.test.ts als Probe) · plugins/src/flashcards/nachweis/verifyKarteikarten.ts · Nachweise verify:karteikarten (dieser Schirm, 25 Prüfungen), verify:cards, verify:fsrs.

Wofür

Der Zettelkasten. Der Schirm ist absichtlich dünn: CardStudy bringt alles mit, was Lernen braucht — Warteschlange, Modus, Tastatur, Intervallvorschau. Ein zweiter Rahmen darum wäre eine Kopie, kein Gewinn.

Angelegt und verwaltet werden Karten im Studien-Schirm, weil sie dort an Kategorie und Modul hängen; die Auswahllisten dafür gehören dorthin, wo die Stammdaten liegen. Seit dem 21.09.2026 führt von hier ein Knopf dorthin — und zwar in das schon aufgeklappte Formular.

Der Satz daneben geht seit dem 22.09.2026 durch t(). Er stand bis dahin roh im JSX, über zwei Zeilen verteilt, und war damit nicht nur unübersetzt, sondern ungezählt: verify:sprache sucht seine Kandidaten zwischen zwei Marken in einer Zeile, und dieser ging über zwei. Der Bereich tauchte damit in keiner seiner drei Zahlen auf (Punkt 32).

Die Geschichte, die man kennen muss

Bis zum 08.09.2026 stand hier das Karteikartensystem des Alpha-Standes: SM-2, an Blöcke in Dokumenten gehängt, mit eigener Oberfläche und eigenen Endpunkten. Daneben gab es seit der Notion-Ablösung ein zweites — FSRS-4.5, 745 Karten, im Studien-Schirm. Zwei Systeme für dieselbe Tätigkeit, das ältere zuletzt am 17.11.2025 benutzt.

Der Weg führt jetzt auf das neue. Seit dem 21.09.2026 liest die alte Tabelle personal.flashcards niemand mehr (der zweite Lesepfad liegt in archiv/2026-09-21-sm2-lesepfad/). Seit dem 23.09.2026 gibt es nur noch FSRS (G02, Grundsatz 42): Wanderung 97 hat die alten Karten mit abgeleitetem Stand nach study.flashcards überführt (C10, N158, N159), und Wanderung 105 legt die alte Tabelle ab dem 24.09.2026 als archiv.flashcards ins Archiv — ohne Schreibrecht, nichts gelöscht (N188).

Weg und Rahmen

Route/flashcards
MerkmalFLASHCARDS
ZimmerZettelkasten · Lautstärke 4 · #ff8a3d

Was man sieht

Ohne eine einzige Karte steht der Leerzustand allein (RL02, 28.09.2026). Bis dahin standen fünf Nullen (Gesamt, Fällig, Ungesehen, Reif, Heute) und drei Reihen Schalter — Betriebsart, Richtung, Lern-Timer — vor der Eule, als fehle nur ein Handgriff. Jetzt fehlen Zahlen und Schalter, sobald gezählt ist, dass es keine Karte gibt; solange die Zahlen laden, bleibt alles stehen. Der Satz lautet „Noch keine Karteikarte. Karten entstehen im Studium oder als Karteikarten-Block in einem Dokument.“ — vorher nannte er nur das Dokument und widersprach der Kopfzeile, die ins Studium schickt (Lerndurchgang.leer.test.tsx). Betriebsart, Richtung und der Zeitraum des Verlaufs stehen seit demselben Tag als Segmente in einer Kapsel (Segmentwahl, abgeleitet aus N400).

Ohne das Studium sieht man nichts davon — und seit dem 21.09.2026 ist dieses Nichts gestaltet (00-rahmen.md §6): der Horizont mit der Eule, ein Satz, und ein Knopf, wo es einen gibt. Kein Lerndurchgang, kein Verlauf, kein Verweis auf /study — denn diesen Weg kennt die Anwendung dann gar nicht.

Drei Leerzustände, nicht einer (seit dem 22.09.2026 der dritte), und der Unterschied ist der nächste Schritt:

LageWas dasteht
Merkmal gewährt, aber abgeschaltet„…das hast du abgeschaltet." plus Studium einschalten
Merkmal nicht gewährt„…ist für dieses Konto nicht freigeschaltet — vergeben kann es nur die Verwaltung." — kein Knopf, weil der Schalter drüben gar nicht dasteht
study gar nicht im Bau„…ist in dieser Ausgabe von Denotato nicht eingebaut." — kein Knopf, und auch niemand, den man fragen könnte

Die letzten beiden waren bis zum 22.09.2026 einer. Für den Betrachter war das fast richtig — er kann in beiden Fällen nichts tun. Für den Satz war es falsch: „das steht diesem Konto nicht offen" behauptet einen Kontozustand, wo ein Bauzustand vorliegt, und schickt jemanden zu einer Verwaltung, die ihm nichts freischalten kann.

Bis der Zugriff geladen ist, gilt „vorhanden" und nicht „fehlt", sonst blitzte der Leerzustand bei jedem Seitenaufbau kurz auf.

Seit dem 23.09.2026 trägt jeder der drei Leerzustände zusätzlich ein Zeichen (N134, Zeichensprache): ein Chip mit demselben Wort wie in der Tabelle oben, links davon lautlos das Zeichen — seit E12 (30.09.2026) der Kippschalter schalter bei „abgeschaltet", das durchgestrichene Rund blockiert bei „nicht gewährt" und das fehlende Bauteil fehlteil bei „nicht im Bau". Die drei Zeichen unterscheiden sich, damit „nicht gewährt" und „nicht im Bau" (Punkt 26 — bis 22.09.2026 ein einziger Satz) jetzt auch ohne Lesen des Satzes auseinanderfallen. Das Wort daneben bleibt namensgebend und neutral gefärbt; die Farbe trägt allein das Zeichen (lage.ts, LEERZUSTANDZEICHEN/LEERZUSTANDWORT, mit leerlagen.test.ts als Probe — Muster: admin/client/arten.test.ts). Vom 23. bis zum 30.09.2026 standen hier die nächstbesten vorhandenen Zeichen hebel, gesperrt und hinweis (Punkt 38 unten, behoben).

Was man tun kann

TasteKnopfWirkung
Leertaste—Karte umdrehen
1Nochmalheute wieder
2Schwerkurzes Intervall
3Gutdas normale Intervall
4Einfachlanges Intervall
—Karte anlegenführt auf /study?a=cards&neu — den Studien-Schirm, Reiter „Lernen", Anlegefach offen
—Anki-Stapel einlesenlinks neben „Karte anlegen“: wählt eine .apkg-Datei, legt sie in die eigene Ablage und liest sie ein; darunter steht, wie viele Karten, Fächer und Bilder angelegt wurden, und wie viele davon den Lernstand aus Anki behalten (KN-261015-anki-import). Gehört dem Studium und kommt über den Anschluss studium.AnkiEinlesen
—Studium einschaltennur im Leerzustand, und nur wenn das Merkmal gewährt ist: führt auf /settings?a=bereiche
—Erklär mir daserst nach dem Aufdecken, unter der Bewertung: der Begleiter erklärt die Karte in einem Fenster; zählt als freie Frage (KI13, N327)

Jeder Bewertungsknopf zeigt das Intervall an, das er bewirkt. Ohne diese Angabe ist die Selbsteinschätzung ein Blindflug: „Gut" und „Einfach" fühlen sich gleich an, bedeuten aber vier Tage oder zwei Wochen. Die Ziffer steht am Knopf — ein Kurzbefehl, den niemand sieht, ist keiner. Auf einem Gerät ohne Tastatur (hover: none und pointer: coarse) fallen Ziffer, Leertaste und „Z“ am Knopf weg, wie die Tastenhinweise der Schnellsuche (KN-261015-tastenhinweise-telefon).

„Karte anlegen" trägt seit dem 23.09.2026 das Zeichen anlegen (16px, lautlos, vor dem Wort — N134). „Studium einschalten" hat keines (Punkt 36).

„Karte anlegen" ist ein Verweis, kein Formular. Der Satz „leg sie im Studium an" stand hier seit dem 08.09.2026 und war richtig; er half nur nicht, weil von dort noch zwei Klicks fehlten — Reiter wählen, Fach aufklappen. ?a=<abschnitt> und ?neu sind der Rahmen, den jeder Bereichsschirm mitbringt (00-rahmen.md §3), und eine Adresse ist kein Import: Sie koppelt die beiden Bereiche nicht, sie navigiert nur.

Das Anlegefach fragt nur Frage und Antwort (15.10.2026, KN-261015-karte-ohne-titel). Beide sind Pflicht; ein Feld „Titel“ gibt es nicht mehr, die Karte heißt nach der ersten Zeile ihrer Frage (titelAusFrage in @shared/utils/kartentitel, dieselbe Regel wie im Kartenentwurf des Begleiters und auf dem Server, wenn ein Werkzeug keinen Titel schickt). Kategorie und Modul bleiben nach „Karte anlegen“ stehen (bleibt am Feld des Formulars), Frage und Antwort leeren sich für die nächste. Nach einem Neuladen sind beide wieder leer; einen gemerkten Stand über die Sitzung hinaus gibt es erst, wenn jemand ihn verlangt. Die Schnellsuche kennt „Neue Karte“ und führt auf dieselbe Adresse wie „Neu anlegen › Karte“ (/study?a=cards&neu).

„Erklär mir das“ steht erst unter der Bewertung der aufgedeckten Karte (27.09.2026, KI13, N327). Zuerst stand er zwischen Antwort und Bewertung und schob am Telefon „Gut“ und „Einfach“ unter Eule und Stift; bewertet wird jede Karte, erklärt nur manche. Der Knopf gehört dem Begleiter und kommt über ANSCHLUESSE.begleiter?.Erklaerknopf in den Lerndurchgang; er schickt nur die Kennung der Karte. Was das Modell sieht, liest der Server über den Anschluss der Lernkarten (flashcards/server/erklaeren.ts): Name, Modul, Frage, Hinweis und Antwort — die Antwort mit, weil der Knopf ohnehin erst neben ihr steht. Er fehlt ohne Studium und ohne Lernkarten, und eine fremde oder alte SM-2-Karte (personal.flashcards) erklärt er nicht. Einzelheiten zu Fenster, Zählung und Verlauf: begleiter.md, „Erklär mir das“.

Unter der aufgedeckten Karte steht das Verknüpfungsfeld „Hängt zusammen mit“ (NV17, N506), mit der Kennung der gezeigten Karte und der Art flashcard. Eine Karte hat im Studium keine Tabellenzeile und kein Bearbeitungsformular; der Lerndurchgang ist der Ort, an dem man sie einzeln vor sich hat. Das Feld erscheint erst mit der Antwort, vor dem Aufdecken fragt es nichts an, und wechselt mit jeder Karte neu (Lerndurchgang.verknuepfung.test.tsx). Es kommt aus dem Gerüst links; die Karte erscheint in den Verknüpfungen der anderen Sachen als „Karteikarte“ und führt zurück in den Lerndurchgang.

?runde=N setzt die Größe des Stapels (KI-261007-lernen-vorschlaege). Die Wiederholungskarte des Begleiters („Jetzt 10 Karten wiederholen?“) führt mit dieser Adresse hierher, und der Lerndurchgang holt so viele fällige Karten, wie die Karte nennt. Was keine ganze Zahl von 1 bis 50 ist, gilt nicht; dann bleibt es bei 20 (rundeAusAdresse, Lerndurchgang.runde.test.tsx). Die Karte selbst entsteht beim Lesen des Anstoßes (flashcards/server/wiederholung.ts); Schwelle und Rundengröße stellt ein Admin ein (karten.wiederholung.ab, karten.wiederholung.runde). Einzelheiten: begleiter.md, „Vorschlagskarten“.

Das Ende einer Runde ist ein Erfolgsmoment (D-261008-erfolgsmomente, 10.10.2026). Ist die letzte Karte des Stapels bewertet, meldet der Lerndurchgang „Runde gelernt“; erst danach, nie mitten in der Runde, darf Denotato um etwas bitten. Ein Gast sieht dann die Bitte, ein Konto anzulegen (00-rahmen.md, „Die Bitte nach einem Erfolg“; Lerndurchgang.erfolg.test.tsx).

Woher die Daten kommen

STUDY_CARDS_QUEUE · STUDY_CARDS_REVIEW · STUDY_CARDS_SUMMARY · STUDY_CARDS_UNDO — alle vom Lerndurchgang aus dem Studium gerufen, keiner von diesem Schirm selbst. Ebenso FILES_UPLOAD und STUDY_CARDS_ANKI_IMPORT aus „Anki-Stapel einlesen“; danach meldet das Bauteil über study/client/kartenbestand.ts, dass Karten dazugekommen sind, und der Lerndurchgang lädt Stand und Warteschlange neu. Die Tafel darunter liest study.review_log über den Verlauf-Endpunkt (Q03); sein Name in APIPaths steht noch aus.

STUDY_CARDS_REVIEW nimmt seit dem 26.09.2026 freiwillig durationMs an (NB06, N310, Wanderung 163): Der Lerndurchgang misst die Zeit vom Zeigen der Karte bis zur Bewertung, ohne die Wartezeit auf den Server, und der Server legt sie in study.review_log.duration_ms ab. Über einer Stunde, ohne Anfang oder bei rückwärts laufender Uhr geht keine Dauer hinaus; leer heißt „nicht gemessen". Sichtbar ist davon noch nichts — eine Anzeige „Sekunden je Karte" ist nicht gebaut.

Die Eule: „Eine Karte erklären“ (KI21, N372)

Der Lerndurchgang schreibt die gezeigte Karte als ?karte=<id> in die Adresse, erst wenn sie aufgedeckt ist — vorher verriete die Eule die Antwort. Daraus liest die Eule ihren Gegenstand; erklärt wird über „Erklär mir das“ (KI13) mit einer eigenen Karte.

Als Baustein im Wiki (WI-261008-bausteine-artikel)

Stumm und mit festen Beispieldaten; Form und Wortlaut stehen in wiki.md unter „Bausteine im Artikel“. Ein Baustein: der Knopf „Karte anlegen“ (flashcards.add-card, im Satz). Er steht dafür als KarteAnlegenKnopf in client/KarteAnlegen.tsx; die Kopfzeile zeigt ihn wie vorher.

Was fehlt

  1. SM-2 lebt noch als Tabelle — aber nicht mehr als Verfahren (Stand 21.09.2026, G02). Bis dahin entschieden zwei Stellen, wann eine Karte drankommt: FSRS über study.flashcard_states.std_due und getFlashcardsDueForReview über personal.flashcards.next_review_at. Die zweite hatte keinen Aufrufer mehr und liegt seitdem in archiv/2026-09-21-sm2-lesepfad/. Was bleibt, sind 266 Zeilen, die niemand liest, in vier Konten — davon 70 Christians, 35 davon mit Historie und noch vorhandenem Inhalt. Sie zu überführen ist Christians Entscheidung (C10), weil es Lernstand kostet: im Median 271 Tage Intervall je Karte. npm run verify:ueberfuehrung --prefix packages/backend rechnet es bei jedem Lauf vor; verify:legacy zählt den Bestand mit.
  2. Kein Zurücknehmen — das gibt es (geprüft am 17.09.2026): STUDY_CARDS_UNDO und der Griff in CardStudy.tsx. Migration 19 hat den Vorzustand dafür angelegt. Was fehlt: es geht nur einen Schritt zurück, und außerhalb des Lernmodus gar nicht.
  3. Kein Weg zum Lern-Timer von hier (Guide S19) — gebaut am 26.09.2026 (NB06). Derselbe Knopf „Lern-Timer" wie im Studium steht rechts in der Reihe der Lernweisen des Lerndurchgangs, am Telefon darunter umgebrochen. Karteikartenschirm.tsx nimmt ihn aus ANSCHLUESSE.timer?.Startknopf und reicht ihn als zusatz in den Lerndurchgang; er ruft über TIMER_RUF die eine Leiste über allen Schirmen und fehlt, solange ein Block offen ist (docs/seiten/00-rahmen.md, „Die Leiste des Lern-Timers").
  4. Keine Karte anlegen von hier aus — ein Knopf führt jetzt ins offene Formular (21.09.2026). Was fehlt: anlegen kann man weiterhin nur drüben. Eine Schnellanlage auf diesem Schirm — Frage, Antwort, Fach, fertig — bräuchte einen Anschluss studium.karteAnlegen samt Fächerliste; STUDY_CARD_SAVE und STUDY_CATEGORIES direkt zu rufen, ist keiner der vier erlaubten Wege zwischen zwei Bereichen (Grundsatz 43).
  5. Keine Bilder auf der Karte — seit KN-261015-anki-import zeigen Frage und Antwort Bilder aus der eigenen Ablage (study/client/Kartentext.tsx, Marke ![…](datei:<Kennung>)). Anlegen lässt sich eine Karte mit Bild bisher nur über den Anki-Import. („und keine Formeln" war falsch, am 17.09.2026 nachgesehen: Lerndurchgang.tsx setzt Frage, Hinweis und Antwort durch Formeltext, also KaTeX, und verify:formeln prüft es.)
  6. Kein Fach-Filter — und er ist hier nicht baubar. Man lernt alles oder nichts. STUDY_CARDS_QUEUE nimmt genau zwei Angaben entgegen, mode und limit, und die Zeilen, die zurückkommen, tragen keine Kategorie: gefiltert werden könnte auch nachträglich nichts. Der Filter gehört deshalb in die Abfrage in study/server/karten.ts und nicht auf diesen Schirm.
  7. Kein Ziel für diese Sitzung. („Kein Ziel für heute" war falsch: das Tagesbudget gibt es — Feld „Neue Karten pro Tag" in den Lerneinstellungen, Kachel „Heute {n}/{budget}", und am Ende „Pensum geschafft". Was fehlt, ist „jetzt zwanzig und dann Schluss", unabhängig vom Tag.)
  8. Keine Trefferquote und kein Verlauf. Beides fehlt — der Verlauf steht seit dem 21.09.2026 unter dem Durchgang (Q03), mit Trefferquote als einer der drei Reihen. Was fehlt: er zeigt die Tage, nicht die laufende Sitzung.
  9. Kein Rückwärts-Lernen.
  10. Keine Vorschau der Warteschlange. Was kommt, sieht man nicht.
  11. Kein Knopf zum Aussetzen — die Mechanik gibt es. STUDY_CARD_SAVE nimmt lifecycle mit active/suspended/archived an, und die Warteschlange zieht nur active; im Kartenformular fehlt das Feld.
  12. Kein Ring. Die Philosophie §3.4 nennt ihn als Bild für Fälligkeit — hier wäre er richtig.
  13. 50 Karten zeigen auf Blöcke, die es nicht mehr gibt. personal.flashcards.blockid trägt keinen Fremdschlüssel — es gibt ihn schlicht nicht —, also hinterlässt jeder gelöschte Block seine Karten. verify:legacy hält die Zahl seit dem 17.09.2026 bei höchstens fünfzig fest; sie darf nur sinken. Seit Wanderung 105 liegen die Zeilen in archiv.flashcards. Wanderung 207 (G08, N331) rettet, was davon noch Inhalt hat — eine Karte je Block, dessen Kinder Frage und Antwort tragen, auch wenn der Block nur gelöscht ist — und zählt den Rest je Konto mit Grund; verify:ueberfuehrung prüft, dass nichts Rettbares offen bleibt.
  14. Der Inhalt der alten Karten hängt an 93 Blöcken, nicht an 266 Zeilen. Frage, Hinweis und Antwort stehen nicht in personal.flashcards, sondern in den Kindblöcken (flashcard_question, flashcard_answer, flashcard_hint). 216 Zeilen teilen sich 93 Blöcke — eine Zeile je Nutzer und Block. Stufe 2 ist seit dem 23.09.2026 gebaut: Wanderung 97 liest von dort, so wie der Editor (syncFlashcardBlock), und macht je Block eine Karte mit einem Lernstand je Konto (N158, N159). Sie trägt die Marke BEWUSST NOCH NICHT GELAUFEN und läuft erst nach einer Ankündigung von Hand (N61·8); bis dahin sieht niemand die alten Karten.
  15. Die Vorschauspalten fsrs_* zeigt niemand an. Wanderung 71 hat an personal.flashcards hingeschrieben, was eine Überführung ergäbe; zu sehen ist das nur mit einer Abfrage von Hand oder über verify:ueberfuehrung. Das bleibt richtig — eine ausgelieferte Vorschau wäre das dritte Verfahren neben den zweien, die G02 beseitigen soll. C10 ist entschieden (N158); die Spalten sind jetzt die Quelle, aus der Wanderung 97 die Lernstände schreibt, und verschwinden mit der Tabelle in Stufe 3.
  16. Ein Protokoll der Bewertungen gibt es für diese Karten nicht und hat es nie gegeben. study.review_log deckt nur die Studienkarten ab. Damit lassen sich die FSRS-Gewichte auf dem alten Bestand nie nachtrainieren — unabhängig davon, wie C10 entschieden wird.
  17. ?a=cards ist eine Verabredung ohne Nachweis — den gibt es seit dem 21.09.2026, und seit dem 22.09.2026 steht er in der Kette. Er liest den Quelltext der beiden fremden Schirme und hält fest, dass ABSCHNITTE im Studium noch cards nennt und die Einstellungen noch eine Kategorie bereiche führen. Gelesen wird Text, nicht ein Modul — damit hängt nichts aneinander, was sich abschalten können muss, und ein ausgebauter Bereich macht den Nachweis nicht rot, sondern stumm. Umgezogen ist er aus verabredungen.test.ts nach nachweis/verifyKarteikarten.ts, weil hier keine Oberfläche gemessen wird, sondern eine Verabredung zwischen zwei Bereichen; die gehört dorthin, wo jeder Lauf sie sieht. Was fehlt: dieselbe Lücke besteht in jede andere Richtung, und jeder Schirm, der einen fremden Abschnitt ansteuert, müsste seinen eigenen Nachweis mitbringen. Eine Regel dafür gibt es nicht.
  18. Der Leerzustand ist ein Satz, kein Zustand — seit dem 21.09.2026 ist er einer (00-rahmen.md §6): Horizont, Eule, ein Satz, und in einem von zwei Fällen ein Knopf. Den Knopf gibt es, weil kartenlage jetzt zwischen „gewährt, aber abgeschaltet" und „nicht gewährt" unterscheidet — vorher war beides derselbe graue Absatz. Was fehlt: der Satz erklärt nicht, warum das Merkmal fehlt, wenn es nie gewährt war; wen man dafür fragt, steht nirgends. — seit dem 22.09.2026 nennt er den Adressaten: „vergeben kann es nur die Verwaltung". Als Aussage und nicht als Aufforderung, weil EmptyState die Handlung in den Knopf legt und nicht in den Satz — und einen Knopf gibt es hier weiterhin nicht, weil er in eine Sackgasse führte. verify:karteikarten hält fest, dass der Satz ohne Knopf einen Adressaten nennt. Was fehlt: die Verwaltung ist von hier aus kein Weg, sondern ein Mensch — wer sie erreicht und wie, steht auf diesem Schirm nicht und lässt sich hier auch nicht sagen, solange Denotato keine Stelle dafür kennt.
  19. Die Tour verspricht mehr, als der Schirm hält — die Aufgabe in der Deklaration nennt seit dem 21.09.2026 den Weg, den es gibt: „Karte anlegen" drücken, drüben anlegen, hier üben. Vorher stand dort „Mach ein Fach auf", und ein Fach anlegen geht von hier aus gar nicht — auch nicht über einen Verweis. Was fehlt, und es ist am 22.09.2026 nachgemessen: diesen Satz zeigt die Tour nicht. plugin.tour liest kein Bauteil; der Wortlaut, den jemand beim ersten Öffnen liest, steht in frontend/src/config/tourkapitel.ts und ist ein anderer. Die Korrektur vom 21.09. war damit richtig und wirkungslos zugleich — siehe Punkt 33. Ein Fach anlegen geht weiterhin nur im Studium.
  20. Der Schirm weiß nichts über seine eigene Warteschlange. Alles, was er über Karten anzeigt, zeichnet der Lerndurchgang. Vorschau (10), Ring (12) und Sitzungsziel (7) lassen sich deshalb hier nicht bauen, ohne dieselben Daten ein zweites Mal zu holen — sie gehören in den Durchgang, nicht in diesen Rahmen.
  21. Niemand prüft, dass der Verlauf gefüllt ist. — halb geprüft seit dem 22.09.2026. Die drei Reihen standen als Konstante im Schirm und damit an einer Stelle, an der ein Nachweis sie nur mit React im Rücken lesen könnte; sie stehen jetzt in lage.ts, und verify:karteikarten hält gegen den Bauplan des Servers (backend/src/database/access/verlauf.ts), dass es jede der drei gibt und dass jede am Merkmal FLASHCARDS hängt — demselben, das der Bereich selbst trägt. Fällt eine weg oder wandert sie an ein anderes Merkmal, ist der Nachweis rot statt die Tafel leer. Was fehlt: dass für ein Konto auch Zahlen herauskommen, sagt das nicht. Der Bauplan kann vollständig sein und die Abfrage trotzdem nichts liefern — leere Tabelle, falsche Zeitzone, ein zusatz, der nie zutrifft. Dafür bräuchte es ein Prüfkonto mit Lernhistorie, und das ist ein Nachweis am Server, nicht an diesem Schirm.
  22. Dieser Schirm hat keinen eigenen Nachweis in der Kette. — seit dem 22.09.2026 hat er einen: verify:karteikarten (nachweis/verifyKarteikarten.ts, 17 Prüfungen, ohne Datenbank und ohne Server). Er misst genau das, was an einem Schirm ohne eigenen Besitz brechen kann, und zwar lautlos: jede Lage hat eine Verzweigung im JSX und keine Verzweigung eine Lage, die es nicht gibt; jeder Leerzustand trägt seinen eigenen Satz; der Satz ohne Knopf nennt einen Adressaten; die drei Verlaufsreihen stehen im Bauplan des Servers und am richtigen Merkmal; und die beiden fremden Abschnitte heißen drüben noch so. Gelesen wird durchweg Quelltext — ein Import über die Bereichsgrenze wäre die Verflechtung, die Grundsatz 43 verbietet, und ein abgeschalteter Bereich macht den Nachweis stumm statt rot. Seit dem 22.09.2026 sind es 25 Prüfungen: dazugekommen sind die Zahl der Leerzustandssätze, die Bindung der Kopfzeile an die Lage lernen, die Sprache des Schirms (Punkt 32) und das Tourkapitel (Punkt 33). Was hier bis zum 22.09.2026 falsch stand: „Wer die Verzweigung von lage === 'x' auf ein switch umbaut, hat einen grünen Nachweis, der nichts mehr misst." Nachgemessen — er wird rot: findet der Ausdruck keine Verzweigung mehr, fehlt jeder Lage eine, und genau das meldet er. Die Sorge stand andersherum richtig, und so ist sie auch behoben: Prüfungen, die ihre Fundstellen zählen, können mit null zufrieden sein. Davon gab es drei; zwei rechnen jetzt gegen eine zweite Quelle (Sätze gegen leere Lagen, Reihen gegen den Bauplan). Was fehlt: die dritte ist die Suche nach rohem Deutsch — sie kann nichts finden, weil es nichts gibt, oder weil sie nicht mehr sucht, und beides sieht gleich aus.
  23. Der Knopf ist von Hand gebaut, weil der Knopf aus dem Kern es nicht kann. Button mit asChild rendert ein nacktes Slot und lässt seine ganze Gestalt fallen; ActionButton mit as={Link} trägt Glas, was der Guide für Knöpfe ausschließt (§15: „sekundär: Stein — nie Glas"). Ein Verweis, der wie ein Knopf aussieht, muss deshalb hier nachgebaut werden. Seit dem 21.09.2026 ist es wenigstens eine Fassung, die zweimal benutzt wird; der Mangel im Kern steht.
  24. Beim Lernen sieht man nicht, woher eine Karte kommt. Der Durchgang zeigt Frage, Hinweis und Antwort — kein Fach, kein Modul, keinen Weg zu der Karte selbst. Wem beim Üben auffällt, dass eine Antwort falsch ist, der muss sie drüben suchen; von hier führt nichts hin.
  25. Die Deklaration nennt den Bereich „Freies Üben außerhalb des Studiums" — und genau das ist er nicht. — seit dem 22.09.2026 heißt er „Die Karten des Studiums üben". Der alte Satz beschrieb den Alpha-Stand: ein eigenes Kartensystem mit eigenen Karten. Seit dem 08.09.2026 sind es die Karten des Studiums, dieselben, mit denselben Fächern — „außerhalb" war damit das Gegenteil dessen, was der Schirm tut, und der Satz steht in der Tour, in der Suche und in der Bereichsübersicht. Was fehlt: die englische Fassung. Der Katalogeintrag „Freies Üben außerhalb des Studiums" → „Free practice outside your studies" ist jetzt verwaist und der neue Satz hat keinen; verify:sprache zählt beides und wird davon nicht rot.
  26. Der Leerzustand kennt zwei Gründe, es sind drei. — seit dem 22.09.2026 kennt er drei. „Merkmal nicht gewährt" und „das Verzeichnis study ist gar nicht im Bau" landeten beim selben Satz; kartenlage() trennt sie jetzt in nichtGewaehrt und nichtGebaut, und der Bauzustand geht dem Kontozustand vor — ohne Anschluss ist gleichgültig, was das Konto darf. verify:karteikarten hält fest, dass keine zwei Leerzustände denselben Satz zeigen. Was fehlt: nichtGebaut ist im ausgelieferten Stand nicht erreichbar, weil study immer mitübersetzt wird. Der Satz ist damit richtig und ungesehen — gelesen wird er erst von dem, der einen Bereich tatsächlich ausbaut, und dass er dann auch erscheint, prüft nur die Bausteinprobe, nicht der laufende Betrieb.
  27. „Studium einschalten" führt auf den Abschnitt, nicht auf den Schalter. Unter /settings?a=bereiche stehen alle schaltbaren Bereiche in ihren Gruppen; welcher gemeint war, muss man selbst suchen. Der Rahmen kennt ?id= für genau diese Hervorhebung — der Einstellungsschirm wertet es nicht aus.
  28. Vier neue Sätze stehen nur auf Deutsch — seit dem 22.09.2026 stehen sie im Katalog: „Karte anlegen", „Studium einschalten" und die beiden Leerzustandssätze haben ihren Eintrag in oberflaeche.en_us.json. Eingetragen hat sie nicht dieser Schirm, sondern der Durchgang, der den ganzen Katalog nachzieht — die Sätze standen bis dahin unter „offen". Was fehlt: ein neuer Satz bleibt bis zur nächsten Katalogrunde deutsch, und nichts meldet ihn im selben Commit, in dem er entsteht — für diesen Schirm meldet es jetzt verify:karteikarten: er liest den Katalog und nennt bei jedem Lauf die Sätze ohne Eintrag. Als gelbe Zeile, nicht als Fehlschlag, weil der Katalog eine geteilte Datei ist und die Zahl für das ganze Haus verify:sprache führt. Was fehlt: dieselbe Zeile hat kein anderer Schirm, und eine Regel dafür gibt es nicht — genau wie bei Punkt 17.
  29. verify:karteikarten hängt noch nicht in der Kette. Der Nachweis liegt da und ist grün (17 Prüfungen), aber verify:kette in packages/backend/package.json nennt ihn nicht — die Datei ist geteilt und wurde in diesem Durchgang nicht angefasst. Solange die Zeile fehlt, läuft er nur, wer ihn von Hand aufruft, und ein Nachweis, den niemand ruft, ist keiner. Die beiden Zeilen, die dort hineingehören, stehen in der Vorgangsdatei.
  30. Drei Sätze dieses Schirms stehen nur auf Deutsch. — nachgemessen am 22.09.2026: alle drei stehen im Katalog. „Die Karten des Studiums üben", „…ist für dieses Konto nicht freigeschaltet — vergeben kann es nur die Verwaltung." und „…ist in dieser Ausgabe von Denotato nicht eingebaut." haben ihren Eintrag in oberflaeche.en_us.json; eingetragen hat sie derselbe Durchgang wie in Punkt 28. Der Punkt stand hier einen Tag lang und war schon beim Aufschreiben überholt — das ist der Preis dafür, dass eine Seitendatei über eine geteilte Datei redet, die ein anderer pflegt. Was fehlt: die beiden Gegenstücke. „Freies Üben außerhalb des Studiums" und „Karteikarten kommen aus dem Studium, und das steht diesem Konto nicht offen." stehen noch im Katalog und kommen im Quelltext nicht mehr vor; verify:sprache führt sie unter „verwaist". Herausnehmen kann sie nur, wer die geteilte Datei anfassen darf.
  31. lage.ts ist die Restablage des Schirms geworden. Dort steht jetzt dreierlei nebeneinander: welche Lage gilt, welche drei Reihen die Verlaufstafel zeigt, und wie die beiden fremden Abschnitte heißen. Alle drei stehen dort aus demselben Grund — ein Nachweis muss sie lesen können, ohne React mitzubringen —, und keines davon gehört inhaltlich zu den anderen. Das trägt, solange es drei Dinge sind.
  32. Der Satz in der Kopfzeile geht an jeder Übersetzung vorbei. — seit dem 22.09.2026 geht er durch t(). „Karten hängen an Kategorie und Modul — angelegt werden sie deshalb im Studium." stand roh im JSX, als einziger Text dieses Schirms. Das Bemerkenswerte ist nicht, dass er unübersetzt war, sondern dass er ungezählt war: verify:sprache sucht seine Kandidaten zwischen zwei Marken in einer Zeile, und dieser Satz ging über zwei. Er war damit weder „umgestellt" noch „offen" — in keiner der drei Zahlen enthalten, die den Stand der Zweisprachigkeit melden, und der ganze Bereich tauchte in der Dateiliste des Nachweises gar nicht auf. Das Wort „Studium" darin ist weiterhin ein Verweis: der Satz trägt die Marke {studium}, und mitVerweis setzt an ihrer Stelle den <Link> ein — ein Satz bleibt ein Satz, auch wenn ein Wort darin klickbar ist, denn nur so kann eine andere Sprache die Wortstellung ändern. verify:karteikarten hält beides fest: dass kein deutscher Satz mehr roh im JSX steht, und dass eine vorhandene Übersetzung dieselbe Marke trägt — verliert sie die Marke, verschwindet der Verweis lautlos und nur für englische Konten. Was fehlt: dieselbe Lücke im Sprachnachweis besteht für jeden anderen Schirm weiter, und der neue Eintrag dafür („Karten hängen an … im {studium}.") steht noch nicht im Katalog — die Datei ist geteilt.
  33. Die Deklaration trägt ein Tourkapitel, das die Tour nicht zeigt. Nachgemessen am 22.09.2026: plugin.tour.beschreibung und plugin.tour.aufgabe liest kein Bauteil. Der einzige Leser im ganzen Haus ist bereiche/eineWahrheit.test.ts, und der prüft ihre Länge (> 40 bzw. > 20). Die Willkommenstour zeichnet ihre acht Kapitel aus frontend/src/config/tourkapitel.ts — eine zweite Liste mit eigenem Titel, eigenem Wortlaut, eigenen Marken und eigenem erledigt. Was jemand beim ersten Öffnen über diesen Bereich liest, ist deshalb „Karteikarten, die sich selbst einteilen / Du lernst, Denotato merkt sich, wann du eine Karte wiedersehen solltest." und nicht der Satz in plugin.ts. Das ist der Grund, warum Punkt 19 am 21.09.2026 richtig und wirkungslos war. Beide Texte sind inzwischen nachgezogen, und verify:karteikarten hält von der gelesenen Liste fest, dass genau ein Kapitel auf /flashcards führt und am Merkmal FLASHCARDS hängt. Was fehlt: es bleiben zwei Listen. Zusammengelegt werden sie mit dem gemeinsamen Register (Bauplan 1.2); bis dahin kann jeder Satz an einer Stelle stimmen und an der anderen nicht, und nur die Länge fällt auf.
  34. Das Tourkapitel hängt an einem Merkmal, der Schirm braucht zwei. braucht: Feature.FLASHCARDS entscheidet, ob das Kapitel läuft — der Schirm zeigt aber nur dann etwas, wenn zusätzlich STUDY eingeschaltet ist (die vier Lagen oben). Wer Karteikarten hat und das Studium nicht, bekommt ein Kapitel über einen Schirm, auf dem er den Leerzustand sieht: „Du lernst, Denotato merkt sich…" über einer Eule. Das ist genau das, was tourkapitel.ts in seiner eigenen Begründung ausschließen will — „eine Tour, die von Dingen erzählt, die es für einen nicht gibt, ist schlimmer als keine". Zu beheben ist es nicht hier: ein Kapitel nennt braucht: Feature | null, also ein Merkmal, und ein zweites einzuführen ändert die Liste für alle acht Kapitel.
  35. Die Suche nach rohem Deutsch kann nicht beweisen, dass sie sucht. verify:karteikarten findet keinen rohen Satz im JSX — das heißt entweder, dass es keinen gibt, oder dass der Ausdruck nicht mehr trifft. Beides sieht in der Ausgabe gleich aus. Gemessen ist heute nur der erste Fall: die Gegenprobe (Satz wieder roh einsetzen) macht ihn rot, und zwar von Hand, nicht bei jedem Lauf. Dasselbe gilt für jede Prüfung dieses Nachweises, die auf „nichts gefunden" grün ist — eine eingebaute Gegenprobe, die absichtlich etwas Kaputtes vorlegt und erwartet, dass es auffällt, hat hier keine.
  36. „Studium einschalten" trägt kein Zeichen. Der Auftrag für N134 auf diesem Schirm umfasste den „Karte anlegen"-Knopf und die drei Leerzustände (Punkt davor) — der zweite Knopf im Leerzustand „abgeschaltet" blieb außen vor. Ein Zeichen name="schalter" (bis E12 hebel) läge nahe, kollidiert aber mit dem Zeichen desselben Leerzustands direkt darüber (Chip und Knopf mit dem Schalter nebeneinander wäre eine Wiederholung, kein zweiter Hinweis) — welches Zeichen der Knopf stattdessen bekommt, ist offen.
  37. Drei neue Sätze stehen nur auf Deutsch. — nachgetragen am 23.09.2026. „Abgeschaltet", „Nicht freigeschaltet" und „Nicht eingebaut" — die Wörter in den drei neuen Chips — sind eigene t()-Aufrufe, keine Wiederholung der bestehenden Leerzustandssätze (Tabelle „Drei Leerzustände" weiter oben unter „Was man sieht"), und haben jetzt ihren Eintrag in oberflaeche.en_us.json. verify:karteikarten und verify:sprache zeigen dazu keine gelbe Zeile mehr.
  38. Drei Wunschnamen für die Registry, noch nicht angelegt. — behoben am 30.09.2026 (E12): schalter und fehlteil sind gezeichnet und stehen an „abgeschaltet" und „nicht im Bau". keinZugriff wurde nicht angelegt: Die gezeichnete Form — ein Rund mit Querstrich, „hier geht es nicht durch" — war Strich für Strich das vorhandene blockiert, und die Registry verbietet zwei Namen mit demselben Pfad. „Nicht gewährt" trägt deshalb blockiert. Der alte Befund: hebel, gesperrt und hinweis waren die nächstbesten vorhandenen Zeichen, und keines traf den Sinn genau.
  39. Die Verlaufstafel-Legende ist ungeprüft geblieben. Ob Zustände dort (auch) allein über Farbe unterschieden werden, war Teil des ursprünglichen N134-Auftrags für einen anderen Bereich (components/verlauf/Verlaufstafel.tsx ist Kern, kein Plugin-Verzeichnis) und wurde hier absichtlich nicht angefasst. Eine erste Suche nach „Legende"/„legend" im Quelltext ergab keinen Treffer — das Bauteil trägt seinen Wortlaut also unter anderem Namen oder gar nicht als Text.