/tasks — To-Dos
Hinweis: Rahmen: 00-rahmen.md. Code:
packages/plugins/src/tasks/· Nachweisnpm run verify:tasks.
Wofür
Die Werkbank: was zu tun ist, als eine Liste, nach Frist gegliedert, auf dem Telefon wie am Schreibtisch (N477, Aufbau A). Abgehakt wird mit dem Kreis vor dem Namen oder am Telefon mit einem Wisch nach rechts; die anderen Zustände stehen im Menü der Zeile und im Editor.
Sie ist kein Projektwerkzeug: es gibt keine Zuweisung an andere, keine Abhängigkeiten zwischen Aufgaben und keine Zeiterfassung.
Seit TD06 (02.10.2026) ist der Schirm nach Christians Wahl aus dem Musterbogen gebaut (N477). Bis dahin standen sieben Reiter mit Tabellen und Brettern nebeneinander, ein Anlegefach mit neun Feldern über der Liste und an jeder Zeile die Knöpfe „Erledigt“ und „Löschen“.
Weg und Rahmen
| Route | /tasks. ?v=tasks-planned, ?v=tasks-done und ?v=tasks-wishes wählen die Reiter „Geplant“, „Erledigt“ und „Wünsche“, ohne ?v= steht „Offen“. ?art=uni (und die anderen Arten) setzt den Chip über der Liste. Beim Öffnen steht der Cursor am Schreibtisch schon in der Eingabezeile, am Telefon nicht, weil die Tastatur sonst über der Liste läge (NV-261007-kernaufgaben). ?neu stellt ihn auch dorthin, wenn er woanders steht — nach dem Neu-Knopf und nach „To-Do anlegen“ in der Schnellsuche, seit dem 05.10.2026 auch, wenn die Liste schon offen ist (NV-261005-palette-luecken). ?id=<id> öffnet den Editor einer Aufgabe (KI21). Die sieben Kennungen von vor N477 (tasks-all, tasks-due, tasks-kinds, tasks-board, tasks-tree) landen einmal auf „Offen“ mit der Ordnung, die sie meinten — „Nach Zustand“ als Brett nach Zustand, „Baum“ als Baum —, danach fällt ?v= weg |
| Merkmal | TASKS — abschaltbar |
| Zimmer | Werkbank · Lautstärke 3 · #ffc400 |
| Plugin | packages/plugins/src/tasks/, abschaltbar: true |
Was man sieht
Von oben nach unten:
- Die Lastzeile unter dem Titel: die Summe der Aufwandspunkte des Offenen, etwa „3 Aufwandspunkte (1 von 6 mit Aufwand).“ Wie viele offen, überfällig und heute fällig sind, zeigen die Gruppen; seit dem 15.10.2026 wiederholt die Zeile das nicht mehr (C-261015-zwei-gestaltungsfragen). Sie zählt alle Aufgaben, nicht den gewählten Reiter — eine Zahl, die sich mit dem Reiter ändert, ist keine Auskunft über den Tag. Punkte und keine Minuten: „sieben Stunden“ wäre eine Zahl, die niemand belegen kann; das Verhältnis schon. Trägt keine offene Aufgabe einen Aufwand, steht sie nicht da.
- Vier Reiter: Offen · Geplant · Erledigt · Wünsche (N477, Ansichten A; „Wünsche“ seit NB12, N319), ohne Zeichen und ohne Zahlen, damit das Telefon dieselben Wörter in seine Segmente bekommt wie der Schreibtisch. Ohne eine einzige Aufgabe stehen sie nicht da (N406).
- Die Ordnenleiste: links die Art-Chips Alle · Arbeit · Uni · Abgabe · Schule · Haushalt · Einkauf · Privat, jede Art mit Zeichen (
KIND_ZEICHEN) und der Wertfarbe seiner Art (Guide §3.5); rechts der Knopf „Ordnen“. Die Chips brechen um, statt seitwärts zu rollen — am Telefon stehen sie in zwei Zeilen. Unter „Erledigt“ fehlt „Ordnen“, dort ordnet der Tag. Ohne eine einzige Aufgabe fehlt die ganze Leiste. „Abgabe“ ist der eine Ort für offene Abgaben (seit dem 15.10.2026, B7 Weg A, KN-261015-abgaben-ort): ein Übungsblatt mit kommender Frist legt sein To-Do selbst an, eine Moodle-Abgabe ohne Blatt kommt als Vorschlagskarte, und von Hand wird jede Aufgabe mit der Art „Abgabe“ eine. Abgehakt wird hier; der Haken gilt auch für das Blatt im Studium. Moodle › Abgaben und die Modulspalte „Abgaben“ verweisen auf?art=submission. „Einkauf“ ist der Einkaufszettel (seit dem 15.10.2026, TD-261015-einkaufszettel): Im Laden filtert der Chip auf alles, was zu besorgen ist (?art=shopping), die Tasche ist sein Zeichen. Eine Aufgabe darf zugleich Haushalt und Einkauf sein. - Die Eingabezeile „Neue Aufgabe …“ (N477, Anlegen A), darunter seit dem 15.10.2026 eine Reihe kleiner Knöpfe: Frist · Art · Prio · Aufwand · Skill · Notiz und rechts der Haken, der anlegt (TD-261015-anlegezeile). Den Skill gibt es nur mit Fortschritt (N66). Unter „Erledigt“ steht sie nicht.
- Die Liste.
Die Liste unter „Offen“ ist nach Frist gegliedert: Überfällig · Heute · Morgen · Diese Woche · Später · Ohne Frist, jede Gruppe mit Überschrift und Zahl, leere Gruppen fehlen; „Überfällig“ steht in der Gefahrfarbe. „Diese Woche“ heißt die Tage zwei bis sechs ab heute, nicht die Kalenderwoche. Gerechnet wird in der eingestellten Zeitzone (shared/fristlage.ts), eine Frist ohne Uhrzeit meint das Ende des Tages.
Darunter steht, was heute erledigt wurde („Heute erledigt“, das zuletzt Abgehakte unten — Christians Notiz zu N477), und ganz unten die Klappe „Erledigt (n)“ mit dem früher Erledigten, aufgeklappt nach Tag, der jüngste zuerst. Beim Öffnen des Schirms ist sie zu: Erledigtes ist Beleg, nicht Arbeit.
Kommende Fristen (n) (TD-261024-fristen-als-todos): Ein To-do zu einer Frist, die noch fern ist, steht nicht in der Liste, sondern eingeklappt in der Klappe „Kommende Fristen“ über „Erledigt“, mit Zahl; sie klappt mit einem Tippen auf. Es erscheint in der Liste, sobald „anfangen ab“ erreicht ist: die Frist minus der Vorlauf, nie später als der späteste Anfang aus dem Aufwand (start_from, gerechnet, nicht gespeichert). Den Vorlauf stellt ein Admin als Instanzwert todos.fristVorlaufTage (Vorgabe 7 Tage, 0 bis 90; 0 heißt am Tag der Frist). Ein erledigtes To-do steht nie in der Klappe.
„Geplant“ zeigt nur, was einen Plantag hat, und gliedert nach ihm statt nach der Frist — dieselben Gruppen von „Heute“ bis „Später“. Der Plantag zählt nach dem Kalendertag, nicht nach dem Augenblick: Eine Aufgabe, die für heute eingeplant ist, steht bis Mitternacht unter „Heute“ und nicht ab dem Mittag unter „Überfällig“ (TD06). Um Mitternacht in der eingestellten Zone ordnet der Schirm von selbst neu, auch wenn er die ganze Nacht offen stand.
„Erledigt“ zeigt alles Abgeschlossene nach dem Tag des Abschlusses: „Heute“, „Gestern“, dann Wochentag und Datum.
Leer steht unter dem Reiter ein Satz: „Nichts offen.“, „Nichts eingeplant.“ oder „Noch nichts erledigt.“ Ohne eine einzige Aufgabe stehen nur die Eingabezeile und dieser Satz da.
Die Zeile (N477, Zeile A; Guide §6, §7.6)
Kreis · Name, darunter klein Frist, Art, Teilaufgaben und das Zeichen der Notiz; rechts nur, was vom Normalfall abweicht; am Schreibtisch ganz rechts „⋯“.
- Der Kreis (Trefferfläche nach Guide §16.1, 44 px, Marke
layout.zielflaeche) hakt ab. Ein abgeschlossener Kreis trägt den Haken und öffnet wieder. - Die Frist steht als Text: „seit 2 Tagen“, „seit gestern“, „heute 14:00“, „morgen“, sonst Wochentag und Datum, mit Uhrzeit, wenn eine gesetzt ist. Die Zeile kippt mit der Frist (Guide §7.6): Ab „bald“ — Vorgabe drei Tage — nimmt das Datum die Bereichsfarbe und Gewicht 500 an, ab „heute“ — Vorgabe vierundzwanzig Stunden — wird es fett, und erst wenn es zu spät ist, werden Datum und Kreis rot. Eine Schiene links und einen Rand rechts gibt es seit dem 10.10.2026 nicht mehr (ES-261009-farbige-seitenstreifen, E11): Das Datum allein drängt. Beide Grenzen stellt die Instanz (
fristen.grenzen, TD07). Die Nähe rechnet in Stunden, die Gruppe der Liste in Kalendertagen — eine Frist morgen früh um acht steht unter „Morgen“ und drängt schon wie eine von heute. - Die Art steht mit Zeichen und Wort in der Wertfarbe ihrer Art; das Wort wird bei Tag so wenig wie nötig abgedunkelt und bei Nacht aufgehellt, bis es 4,5:1 gegen jeden Grund der Szene hält (
lesefarbe, TD06); das Wort in der Pille des Zustands rechnet dabei gegen deren Tönung. Eine Aufgabe mit zwei Arten nennt beide. - Teilaufgaben als „2/5“, wo welche hängen.
- Betrag und Verweis eines Wunschs (NB12) stehen in der Unterzeile: der Betrag als Geld in der Schreibweise der Kontosprache („12,50 €“,
geldText), der Verweis als Zeichen „Weblink“, beschriftet „Mit Verweis“. Rechts steht beim Wunsch nur „vergeben“ als Pille; „offen“ ist sein Normalfall, „bekommen“ zeigt die Gruppe. - Die Notiz (TD08, N483) verrät sich nur durch das Absatzzeichen ¶ am Ende der Unterzeile, beschriftet „Mit Notiz“; ihr Text steht im Editor. Das Blatt läge näher, trägt in der Zeile aber schon die Art „Schule“. Eine Notiz aus bloßem Leerraum gibt es nicht, also auch kein Zeichen dafür.
- Rechts stehen eine hohe Priorität (zwei Winkel in der Warnfarbe und das Wort, Guide §7.4) und ein Zustand, der nicht „als Nächstes“ ist — „in Arbeit“, „wartet“, „fällig“, „passt so“, „verworfen“ als getönte Pille in der Farbe seines Tons, mit Zeichen und Wort (
Pilleaus den Datenzellen). Am Telefon fällt das Wort weg, die Pille bleibt farbig. Gilt beides, steht beides da. Mittlere und niedrige Priorität zeichnen nichts. „Fällig“ steht in der Warnfarbe, nicht in Rot — Rot gehört der überfälligen Zeile (Guide §3.3) —, und neben einer Frist gar nicht, weil das Datum links es schon sagt (§7.6; E34, 15.10.2026). - Zustand und Aufwand zum Wählen (TD-261015-eigenschaften-zeile, Rückmeldung
445de415, 15.10.2026): Am Schreibtisch stehen rechts vor „⋯“ zwei Knöpfe in festen Breiten, damit sie von Zeile zu Zeile untereinander stehen — der Zustand mit Zeichen und Wort, „als Nächstes“ blass, alles andere in der Farbe seines Tons, und der Aufwand mit seinen Punkten, leer als blasses „Aufwand“. Jeder klappt seine Wahl an Ort und Stelle auf: der Zustand „in Arbeit · wartet · als Nächstes“ ohne den jetzigen, der Aufwand „klein · mittel · groß“ und „Ohne Aufwand“. Der Zustand braucht damit zwei Klicks statt vier. Die Zustandspille rechts entfällt dann, weil der Knopf sie trägt. Am Telefon und unter 600 px Breite fehlen beide Knöpfe; dort bleibt es beim Wischen, und am Wunsch, der keinen Aufwand kennt, bei der Pille. - Wartet und In Arbeit auf einen Blick (TD-261019-wartet-gedaempft, Rückmeldung
0a5c012f, 20.10.2026): Eine wartende Aufgabe trägt ihren Namen in der Lesetinte statt in voller Schrift, also gedämpft, aber noch gut lesbar. Eine Aufgabe in Arbeit bekommt einen feinen Ring im Ton ihrer Pille (blau), nach innen gezeichnet, damit die Zeile nicht springt. Das Wort in der Pille bleibt; der Zustand hängt nie allein an der Farbe. Erledigte Zeilen bleiben, wie sie waren.
Bewegung (BW-261007-listen, BW-261007-schirmwechsel-abhaken, Guide §11.2): Jede Zeile, jede Gruppenüberschrift und die Klappe „früher erledigt“ sind Einträge der Form gleitzeile in einem Gleitrahmen (components/bewegung/gleiten.tsx): Sie blenden ein und aus, und was bleibt, gleitet mit der Feder der Liste an seinen neuen Platz — auch dann, wenn eine ausgeblendete Zeile erst nach ihrer Fahrt aus der Liste geht. Beim Abhaken sieht man die Zeile so aus ihrer Gruppe nach unten zu „Heute erledigt“ wandern; vorher sprang sie. Das Gleiten ist eine Web-Animation des Browsers auf transform und läuft im Compositor; layout von Framer Motion und eine Höhe im Takt kosteten hier am Telefon rund jedes vierte Bild (gemessen im Vorgang). Nach dem Wischen schnappt die Zeile mit der Feder des Ziehens zurück. Bei der Bewegungsstufe „aus“ steht alles sofort an seinem Platz.
Ordnen (N477, Ansichten A)
Ein Menü mit drei Fragen; die Tafel kommt als Überlagerung von oben (useUeberlagerung('oben')):
| Wahl | Vorgabe | |
|---|---|---|
| Gruppieren | Frist · Art · Zustand · Keine | Frist |
| Sortieren | Frist · Prio · Name | Frist |
| Zeigen als | Liste · Brett · Baum | Liste |
Die Wahl gilt für den ganzen Schirm, nicht je Reiter, und bleibt in der Einstellung ansicht unter dem Schlüssel tasks gemerkt (client/useOrdnung.ts): „nach Prio sortiert“ ist eine Gewohnheit, und wer sie unter „Offen“ wählt, meint „Geplant“ mit. Ohne eigene Wahl gilt ORDNUNG_VORGABE in shared/ordnung.ts.
- Brett stellt jede Gruppe als Spalte nebeneinander; die Spalten brechen um, statt seitwärts zu rollen. Die Zeilen darin sind dieselben wie in der Liste, mit Kreis und Editor.
- Baum stellt jede Teilaufgabe eingerückt unter ihre Hauptaufgabe, über beliebig viele Ebenen, Geschwister in der gewählten Reihenfolge. Er gruppiert nicht — ein Baum ordnet schon, nach Herkunft. Eine Teilaufgabe, deren Hauptaufgabe abgeschlossen oder weggefiltert ist, steht als Wurzel da.
- Nach Art gruppiert erscheint eine Aufgabe mit zwei Arten in beiden Gruppen; die Gruppen folgen der Reihe der Chips (
ART_FOLGE).
Der Art-Chip filtert, und deshalb steht er in der Adresse (?art=uni) und nicht in der Einstellung: Ein Verweis auf „alles für die Uni“ soll genau das zeigen. Es ist immer eine Art an oder „Alle“; ein zweiter Tipp auf eine Art führt zurück zu „Alle“. Eine Aufgabe mit mehreren Arten steht unter jedem ihrer Chips.
Was man tun kann
Reiter ordnen (OE10, N500): Wer Vorgaben für alle setzen darf, ordnet und blendet die Reiter über „Bearbeiten“ im Kopf; die Folge steht in oberflaeche.reiter unter tasks (die Ansichten; Abschnitte hat der Schirm nicht) (Rahmen §3).
Vorgaben im Bearbeitungsmodus (TD07, N497, N498): Derselbe Knopf „Bearbeiten“ stellt drei Werte für die ganze Instanz; „Übernehmen“ im Balken schreibt sie zusammen mit der Reiterfolge, „Fertig“ mit offenem Entwurf fragt „Übernehmen / Verwerfen / Weiter bearbeiten“.
- Grenzlinien der Fristen (
fristen.grenzen, Vorgabe 72 und 24 Stunden): Im Reiter „Offen“ steht im Modus alles nach Frist sortiert, Fristloses darunter, und zwei gestrichelte Linien stehen dort, wo die Frist die Grenze kreuzt, mit − und + über feste Stufen von einer Stunde bis vier Wochen; „heute“ bleibt vor „bald“. Die Zeilen färben sich mit dem Entwurf um. Ohne Fristzeilen (und in der Form „Brett“) springen drei Musterzeilen ein. - Haltezeit (
todos.verweilen, Vorgabe 0,8 s, 0,3 bis 10 s): am Kopf „Heute erledigt“, der im Modus auch ohne Erledigtes dasteht, mit „Ausprobieren“. - Folge des Formulars (
todos.formular, Vorgabe die Folge aus TD06): Im offenen Formular steht jedes Feld als gestrichelte Stelle mit Griff, „Früher“ und „Später“, dazu der Strich „Mehr“ als eigene Stelle. Was über ihm steht, ist immer zu sehen; kurze Felder (Frist, Prio, Art, Aufwand, Plantag) teilen sich eine Reihe, wenn sie aufeinander folgen, am Telefon nie. Die Uhrzeit wandert mit der Frist, die Bonus-XP mit dem Skill, „Heute“ und „Morgen“ mit dem Plantag. Die Schnellzeile bleibt fest.
| Element | Wo | Was passiert |
|---|---|---|
| Eingabezeile | über der Liste | Name tippen, Enter legt an. Die Zeile leert sich, der Cursor bleibt stehen, und die neue Aufgabe bleibt in der Liste hinterlegt, bis die nächste kommt oder man neben sie klickt; ebenso eine Zeile, auf die ein Verweis (?id=) zeigt, solange kein Editor offen ist (F-261015-todo-bleibt-markiert). Ein gewählter Art-Chip geht von selbst mit, sonst verschwände die neue Aufgabe beim Anlegen aus der Liste. Pfeil nach unten im leeren Feld springt auf den Kreis genau dieser Aufgabe (dann Leertaste hakt ab); die Tab-Reihenfolge bleibt, wie sie war (TD-261005-neues-todo-haken) |
| Haken | rechts unter der Eingabezeile | legt an wie Enter; ohne Namen ruht er (TD-261015-anlegezeile) |
| Frist | unter der Eingabezeile | öffnet unter dem Knopf ein kleines Fenster, am Telefon das Blatt an der Unterkante: Heute · Morgen · In einer Woche und ein Datumsfeld. Ohne Uhrzeit gilt das Ende des Tages. Unter „Geplant“ setzt derselbe Knopf den Plantag statt der Frist und heißt dort seit dem 14.10.2026 „Geplant für“ — nicht wie der Reiter (F-261013-zweimal-geplant) |
| Art | unter der Eingabezeile | öffnet die Art-Chips unter dem Knopf; mehrere sind erlaubt |
| Prio · Aufwand · Skill | unter der Eingabezeile | eine Liste gleich unter dem Knopf, wie in Notion; Christian am 14.10.2026: die Wahl unten links verlange „unnötig viel Mouse-Movement“. Ist etwas gewählt, nimmt „keine“ es zurück |
| Notiz | unter der Eingabezeile | öffnet ein Notizfeld unter dem Knopf; der Knopf zeigt danach den Anfang der Notiz |
| Kreis | vor dem Namen | hakt ab: Haken und Strich sofort, die zwei Sternchen blitzen (Guide §7.5), die Zeile verweilt kurz und gleitet dann mit der Feder nach unten zu „Heute erledigt“. In dieser Zeit nehmen Kreis und Wischen keinen zweiten Zug an — ein Doppeltipp öffnete sonst wieder (TD06); zurück geht es über die Rücknahmeleiste, die sich danach meldet |
| Nach rechts wischen | Zeile, am Telefon | dasselbe wie der Kreis (Philosophie §18, Guide §16.3). Hinter der Zeile erscheint die grüne Fläche mit Haken; ausgelöst wird ab einem Drittel der Zeilenbreite, mindestens 72 px. Beim Einrasten rüttelt das Telefon kurz, wenn „Kurzes Rütteln" an ist (Guide §11.6). Ein Wisch, der in den ersten 24 px am linken Rand beginnt, löst nichts aus — dort wischt der Browser zurück (BW-261007-gesten) |
| Nach links wischen | Zeile, am Telefon | öffnet das Fach: alle Zustände, in die man von Hand setzt (in Arbeit · wartet · als Nächstes), außer dem aktuellen — an einer fälligen Zeile also alle drei —, und ganz rechts „Löschen“ in der Gefahrfarbe. Das Fach bleibt offen, bis man tippt oder zurückwischt |
| ⋯ | Zeile, am Schreibtisch | dasselbe als Menü, „Löschen“ als letzter Eintrag. Am Telefon fehlt es, das Fach zeigt dasselbe |
| Löschen | Fach, Menü oder Editor | fragt an der Zeile „ja, weg“ / „doch nicht“ (Wegtun, Q09); „ja, weg“ legt die Aufgabe in den Papierkorb (B07, dreißig Tage zurückzuholen). Der Fokus geht auf die nächste Zeile, ohne sie auf die Eingabezeile, und unten erscheint sechs Sekunden lang „Aufgabe gelöscht · Wiederherstellen“ (Loeschleiste); der Knopf holt sie aus dem Papierkorb zurück (TD06) |
| Zeile anklicken | Name oder Unterzeile | öffnet den Editor unter der Zeile; noch einmal oder Escape schließt |
| Art-Chip | Ordnenleiste | filtert die Liste auf diese Art; „Alle“ oder ein zweiter Tipp nimmt den Filter zurück |
| Ordnen | Ordnenleiste | Gruppieren, Sortieren, Zeigen als (siehe oben) |
| Erledigt (n) | unter der Liste | klappt das früher Erledigte auf und zu |
| Suche | Kopf | die Schnellsuche über alle Bereiche (Strg/Cmd + K); der Schirm hat keine eigene Suche mehr (N477, W12) |
| Zurücknehmen | Leiste unten am Schirm, oder Strg/Cmd + Z | nimmt den letzten Zug zurück — zehn Minuten lang (Q05); die Leiste selbst geht nach 15 Sekunden (Instanzwert ruecknahme.anzeige), mit dem Kreuz oder nach unten gewischt, Tasten und Kopfleiste bleiben |
Der Editor (N477, Formular A)
Oben der Name groß, darunter Frist (mit Uhrzeit, sobald ein Tag steht), Prio und die Art als dieselben Chips wie in der Eingabezeile (Artwahl) — am Schreibtisch in einer Reihe, so viele kurze Felder die Breite fasst, am Telefon jedes für sich (TD-261015-eigenschaften-zeile) — Name, Frist und Art in derselben Reihenfolge wie beim Anlegen. Jedes Feld trägt seinen Namen darüber, sobald es gefüllt ist (N361, MitNamen); leer steht er als Platzhalter darin. Die Prio zeigt ihren Rang nach Guide §7.4 auch im zugeklappten Feld — hoch zwei Winkel in der Warnfarbe, mittel einer in der Bereichsfarbe, niedrig ein blasser Winkel nach unten; drei rote Winkel gibt es bei Aufgaben nicht —, ebenso der Zustand sein Zeichen.
„Mehr“ klappt mit der Feder auf: Aufwand · Geplant (mit Heute und Morgen) · Gehört zu, mit Fortschritt dazu Skill und Bonus-XP, zuletzt die Notiz; darunter, außerhalb des Formulars, der Zustand, die Teilaufgaben und Hängt zusammen mit …. Zugeklappt steht am Schreibtisch neben „Mehr“ je Feld darunter ein kleines Zeichen — Punkte für den Aufwand, Kalender für den Plantag, Baum für „Gehört zu“, Stern für den Skill, ¶ für die Notiz —, blass, wenn es leer ist, in der Bereichsfarbe, wenn es gesetzt ist („Notiz: gesetzt“). Ein Klick klappt auf und stellt den Fokus gleich in das Feld. In Worten nennt der Knopf dort nur, was kein Feld ist: „Mehr · 2 Teilaufgaben“. Am Telefon nennt er alles in Worten: „Mehr · Geplant, Notiz, 2 Teilaufgaben“. Ob „Mehr“ offen steht, merkt der Schirm über die Zeilen hinweg, bis man ihn verlässt.
Im Fuß links „Löschen“, rechts „Speichern“. „Speichern“ schickt die Felder der Aufgabe; der Zustand gilt sofort und nicht erst mit „Speichern“, weil er Fortschritt ist und in game.task_progress liegt. Der Fuß steht direkt unter den Feldern, vor Zustand, Teilaufgaben und Verknüpfungen, die selbst speichern. Schließt der Editor mit ungespeicherten Änderungen — woanders hinklicken, abhaken, Seite wechseln —, speichert er sie selbst; nach dem Löschen nicht, und ein leerer Name bleibt ungespeichert (F-261015-todo-speichern-unten, Rückmeldung vom 14.10.2026).
| Feld | Was es tut |
|---|---|
| Frist und Uhrzeit | Die Uhrzeit erscheint erst mit einem Tag — eine Uhrzeit ohne Datum ist keine Frist. Leer heißt „Ende des Tages“, und was als 23:59 gespeichert wurde, steht beim Bearbeiten wieder leer da. Gerechnet wird in der eingestellten Zeitzone (shared/fristzeit.ts). Kommt ein reines Datum ohne Uhrzeit über die API oder das MCP, ergänzt der Server es selbst — Frist 23:59, Plantag 12:00 in der Zone des Kontos (speicherZeitpunkt, TD09); das Formular schickt weiter einen vollen Zeitpunkt |
| Erinnerung | Seit dem 13.10.2026 (BE-261007-frist-erinnerung): erscheint neben der Uhrzeit, sobald die Frist eine trägt — eine Frist ohne Uhrzeit meldet sich nur im Morgenbriefing. Zur Wahl stehen „Wie eingestellt (…)“ mit der Vorgabe des Kontos in Klammern, „Zur Frist“, 5 Minuten bis 2 Tage vorher und „Aus“; ein gespeicherter Zwischenwert (über das MCP) steht dazwischen. Das Formular schickt die Wahl nur, wenn es das Feld zeigt; ohne Uhrzeit bleibt eine Abweichung stehen. Die Mitteilung schickt der Push-Timer (runPushKlopfen.ts) an alle angemeldeten Geräte, ein Tippen führt zu den Aufgaben; wird die Frist verschoben, erinnert die neue wieder |
| Geplant | der Tag, an dem man es sich vornimmt; füllt den Reiter „Geplant“. Heute und Morgen daneben zeigen, dass sie an sind, und ein zweiter Druck nimmt den Plantag zurück |
| Gehört zu | hängt die Aufgabe unter eine andere. Die Auswahl zeigt die offenen Aufgaben ohne diese selbst und ohne alles, was schon unter ihr hängt — und immer die eigene Hauptaufgabe, auch wenn die abgeschlossen ist |
| Notiz | freier, mehrzeiliger Text, höchstens 10 000 Zeichen, so breit wie das Formular und in der Höhe zu ziehen. Sie steht zuletzt, weil sie als einziges Feld wächst. Gespeichert wird sie außen gekürzt, Umbrüche und Einrückungen innen bleiben; leer oder nur Leerraum löscht sie. Das Formular schickt sie immer mit, sonst ließe sie sich nicht leeren |
| Zustand | alle sieben Zustände mit Zeichen — der Weg zu „passt so“ und „verworfen“, die im Fach fehlen. Gilt sofort, der Editor bleibt offen |
Ein Knopf, dessen Zeile gerade arbeitet, ist gesperrt — der zweite Druck auf einer langsamen Leitung öffnete sonst wieder, was der erste gerade abgehakt hat.
Wünsche (NB12, N319, Entwurf B)
Ein Wunsch ist eine Aufgabe der Art wish mit Betrag und Verweis; einen eigenen Bereich gibt es nicht (Christians Wahl vom 26.09.2026). Er steht nur im Reiter „Wünsche“: Lastzeile, „Offen“, „Geplant“ und „Erledigt“ zählen und zeigen ihn nicht, denn ein Wunsch hat keine Frist und ist keine Arbeit. Auch der Art-Chip „Wunsch“ fehlt in der Ordnenleiste.
- Die Liste gliedert nach den drei Zuständen offen · vergeben · bekommen, jeder mit Kopf und Zahl, leere fehlen. Sie liegen auf den Aufgabenzuständen
next,waitingundfine(@shared/handlers/tasks/wunsch); ein verworfener Wunsch steht nicht mehr darin. Leer steht „Noch keine Wünsche.“ - Anlegen: Über der Liste steht statt der Eingabezeile das Wunschformular mit Name, Betrag, Verweis und Notiz und „Wunsch anlegen“. Der Betrag nimmt Komma und Punkt als Dezimaltrenner, aber keinen Tausendertrenner — „1.250“ hieße sonst für den einen 1,25 € und für den anderen 1250 € (
betragAusText); mehr als zwei Nachkommastellen oder etwas anderes als Ziffern meldet das Formular, statt still zu runden. Der Verweis muss mithttp://oderhttps://beginnen; einjavascript:-Link wäre sonst ein Klick, der Code ausführt. - Der Kreis setzt einen Wunsch auf „bekommen“; das Fach und das Menü bieten „offen“ und „vergeben“.
- Der Editor eines Wunschs ist dasselbe Formular mit „Speichern“ und „Löschen“, darunter der Zustand (offen · vergeben · bekommen, gilt sofort) und „Hängt zusammen mit …“. „Verweis öffnen“ steht nur beim gespeicherten, geprüften Verweis und öffnet ihn in einem neuen Tab ohne
Referer.
Gespeichert wird der Betrag als Ganzzahl in Cent (Euro), nie als Gleitkommazahl. Eine andere Währung kennt die Spalte noch nicht; der Formatierer kann sie schon.
Die Rücknahmeleiste (Q05, 21.09.2026)
Nach jedem Zustandswechsel schwebt unten am Schirm eine schmale Leiste aus Glas: „Zustand der Aufgabe geändert · <Name> · noch 9 Minuten", daneben der Knopf Zurücknehmen. Strg/Cmd + Z tut dasselbe, solange der Finger nicht in einem Eingabefeld steht.
Sie steht über der Eule und dem Rückmeldeknopf, auf dem Telefon zusätzlich über der Reihe unten (TD04, 01.10.2026). Vorher lag sie auf beiden: Die Eule verdeckte ihren Anfang, auf dem Telefon die Reihe ihren Knopf. Seit TD04 ist sie aus dem Werkstoff glas (Guide §5) statt durchscheinend; „noch 10 Minuten" stand auf dem Telefon bei 2,4:1 und liegt jetzt bei 4:1, und der Knopf trägt die Textfarbe statt der Akzentfarbe. Der Abstand ist derselbe, den die Leiste des Weckers nimmt (FIGURHOEHE, REIHENHOEHE aus Schnellaktionen).
Sie ist kein Hinweis, der wegläuft. Bis zum 21.09.2026 hing das Zurücknehmen am Toast und damit an dessen vier Sekunden; wer wegsah, hatte es verpasst, und die XP blieben ohnehin stehen, weil der Weg zurück nur ein zweites „Weiter" in die andere Richtung war. Jetzt liegt der Vorzustand im Buch (personal.undo_log), das Fenster ist zehn Minuten lang, und die Gutschrift geht mit — eine Handlung, die nicht stattgefunden hat, hat auch nichts verdient.
Die Restzeit zählt der Schirm selbst herunter, in Schritten von einer Viertelminute; bei null verschwindet die Leiste. Wer zweimal drückt, geht zweimal zurück — das Buch ist danach ja kürzer. Was es nicht gibt, ist eine Liste zum Aussuchen.
Der Unterschied zum Papierkorb steht in einem Satz: Löschen ist eine Absicht, Zurücknehmen die Korrektur eines Versehens. Deshalb dreißig Tage dort und zehn Minuten hier.
Scheitert das Anlegen, Abhaken oder Löschen, bleibt der jeweilige Knopf bedienbar (F28b, 23.09.2026): „Speichern" im Aufgabenformular setzt seinen Laufmerker über useBusyLock. Kreis und „Löschen" an der Zeile und an einer Teilaufgabe führen ihren Merker als Kennung der Zeile statt als Wahrheitswert — dort sichert ein try/finally dieselbe Freigabe ab. Vorher blieb der jeweils betroffene Knopf bis zum Neuladen gesperrt, wenn die Anfrage warf.
Teilaufgaben (S-tasks, 21.09.2026)
Sie waren da und unsichtbar. Eine Aufgabe konnte seit N66 unter einer anderen hängen — im Datenmodell. Die Oberfläche zeigte davon genau eine Richtung: Eine Teilaufgabe nannte ihre Hauptaufgabe in der Spalte „Gehört zu". Wer die Hauptaufgabe ansah, sah nichts. Und setzen ließ sich die Verwandtschaft überhaupt nur über das MCP-Werkzeug.
Jetzt gibt es beide Richtungen und den Weg dorthin:
- Setzen im Editor unter „Mehr“ über den Wähler Gehört zu. Die Eingabezeile setzt Name, Frist, Art, Prio, Aufwand, Skill und Notiz; eine neue Teilaufgabe bekommt ihre Hauptaufgabe danach im Editor.
- Sehen im aufgeklappten Editor: Unter „Mehr“ steht Teilaufgaben mit Name und Fortschritt jeder einzelnen. Der Abschnitt steht nur da, wenn es welche gibt; „Keine Teilaufgaben" wäre ein Satz unter jeder zweiten Aufgabe. Zugeklappt nennt „Mehr“ ihre Zahl. Neben der Überschrift steht seit dem 22.09.2026 „2 von 5 erledigt" — eine Zahl allein sagte nur, dass etwas hängt, und „3" kann drei offene heißen oder drei abgehakte. Seit dem 22.09.2026 steht dort der ganze Ast, nicht mehr die erste Ebene: Was unter einer Teilaufgabe hängt, steht eingerückt darunter, und die Bilanz zählt alles, was die Liste zeigt. Vorher konnte an einer Aufgabe „3 von 5 erledigt" stehen, unter der in Wahrheit zwölf hängen.
- Abhaken von dort aus, seit dem 22.09.2026: An jeder Teilaufgabe steht ein Knopf Erledigt beziehungsweise Wieder öffnen, und er tut dasselbe wie der Kreis an der Zeile —
TASK_STATUSmit dem Zieldoneodernext(TD03), die Rücknahmeleiste meldet sich. Der Editor der Hauptaufgabe bleibt dabei offen. - Wegtun von dort aus, ebenfalls seit dem 22.09.2026: dieselbe Frage wie an der Zeile der Liste, danach der Papierkorb. Auch das braucht keine Zeile in der gezeigten Ansicht, nur eine Kennung — und eine Teilaufgabe, die falsch angelegt wurde, sucht man sonst in einer Liste von hundertneunzehn. Bis zum 23.09.2026 war das ein Knopf, der scharf wurde, und scharf durfte immer nur einer im Schirm sein. Seit Q09 fragt
Wegtunmit „ja, weg" / „doch nicht" an der eigenen Zeile. Sind zwei Fragen offen, gilt jede sichtbar nur für ihre eigene Zeile. - Zählen in der Unterzeile der Hauptaufgabe als „2/5“ (TD06): wie viele direkte Teilaufgaben abgeschlossen sind und wie viele es gibt. Bis dahin stand unter „Alle“ eine Spalte mit nur der Gesamtzahl.
- Einrücken mit „Ordnen“ → Baum — dort steht jede Teilaufgabe unter ihrer Hauptaufgabe, über beliebig viele Ebenen.
Einen Ring gibt es nicht. Eine Aufgabe unter sich selbst oder unter eine ihrer eigenen Teilaufgaben zu hängen, wird verworfen — der Wähler bietet solche Ziele gar nicht erst an, und der Server wirft sie stillschweigend weg, weil todo_speichern jede Kennung entgegennimmt und dort ein Modell den Knopf drückt. Ein Ring hätte keine Hauptaufgabe. Und falls doch einer in der Datenbank stünde, hängt die Liste im Editor nicht: Der Ast wird in shared/teilbaum.ts gerechnet, ohne React und ohne Server, und merkt sich, was er schon gesehen hat.
Öffnen lässt sich eine Teilaufgabe von dort weiterhin nicht, und das ist kein Vergessen: Der Editor hängt an der Zeile der gerade gezeigten Liste, und eine früher erledigte Teilaufgabe steht dort nur in der zugeklappten Klappe „Erledigt“. Ein Knopf, der in der Hälfte der Fälle nichts tut, ist schlimmer als kein Knopf. Das Abhaken hat dieses Problem nicht: Es braucht keine Zeile, nur eine Kennung — deshalb gibt es genau das seit dem 22.09.2026 und das Öffnen nicht.
Hängt zusammen mit … (Q02, 21.09.2026)
Unter „Mehr“ im aufgeklappten Editor steht, woran diese Aufgabe hängt — das Dokument mit der Lösung, das Modul, zu dem sie gehört. Chips mit Zeichen und Farbe des anderen Bereichs; „Verknüpfen" öffnet ein Suchfeld über alle mitmachenden Bereiche auf einmal, ohne Kennung und ohne vorherige Bereichswahl.
Es steht im Editor und nicht in einer Spalte: Eine Spalte „Verknüpfungen" hätte in einer Liste von hundert Zeilen neunzig leere Zellen. Und es steht nicht in der Eingabezeile — eine Aufgabe, die es noch nicht gibt, hat kein Ende, an das sich etwas hängen ließe. Im Editor steht es neben dem Formular und nicht darin: Das Suchfeld ist ein eigenes Formular, und Enter darin soll verknüpfen, nicht speichern.
Die Verbindung gilt in beide Richtungen: Am Dokument steht sie danach von selbst.
Scheitert das Verbinden oder Trennen, bleibt das Verknüpfungsfeld bedienbar (F28b, 23.09.2026): „Verknüpfen" und das Lösen an einem Chip teilen sich einen Riegel über useBusyLock, der in einem try/finally freigibt, statt bis zum Neuladen gesperrt zu bleiben.
Im Tutor lernen (KI-261015-todo-tutor, 15.10.2026)
Ist eine Aufgabe mit einem Thema verknüpft, steht über ihrem Editor der Knopf „Im Tutor lernen“. Er öffnet den Tutor mit diesem Thema (/tutor?topic=…): Die Sitzung gilt dem Thema, die Übungen stehen darauf eingeengt. Bei mehreren Themen gibt es einen Knopf je Thema, mit seinem Namen.
Woran eine Aufgabe zu lernen ist, sagt die Verknüpfung, kein eigenes Feld: Christian verknüpft von Hand unter „Mehr“, das Modell über verknuepfung_anlegen. Der Knopf erscheint, sobald dort ein Thema hinzukommt. Den Weg liefert der Tutor über seinen Anschluss tutor; ist der Tutor abgeschaltet, fehlt der Knopf.
Mögliche Dubletten (E08, N453, 30.09.2026)
Tragen zwei offene Aufgaben denselben Namen — Groß- und Kleinschreibung, Leerzeichen und Satzzeichen zählen nicht —, steht über der Liste „„Einkaufen“ gibt es zweimal — zusammenführen?“ mit dem Titel des Paares bzw. „2 mögliche Dubletten zusammenführen?“ (seit 10.10.2026, ES-261009-oberflaechentexte-ohne). Erledigte und verworfene zählen nicht mit: Ein erledigtes „Einkaufen“ neben einem neuen ist keine Dublette, sondern der nächste Einkauf.
Der Knopf öffnet ein Fenster mit den Paaren — seit dem 10.10.2026 als Zeilen mit Haarlinien statt als Karten (ES-261010-restliche-kartenraster); „Verschmelzen“ stellt beide Aufgaben nebeneinander, mit Datum und Verknüpfungen je Art, und lässt wählen, welche bleibt — vorgewählt die mit mehr Verknüpfungen, sonst die ältere (N349). Tragen beide eine Notiz, hängt die der aufgehenden unter einer Leerzeile an die der bleibenden an; gleiche Notizen stehen nur einmal da, und „Wieder trennen“ stellt beide wieder her. Danach steht in derselben Zeile eine Meldung mit „Wieder trennen“ — nicht schwebend, denn unten in der Mitte steht schon die Rücknahmeleiste. Ohne Paare steht nichts da.
Zwei Aufgaben, die gewollt gleich heißen — „Blatt 3“ in zwei Kursen —, merkt „Sind verschieden“ je Konto (seit 01.10.2026, E29, N466). Das Paar verschwindet aus der Liste, das Fenster bleibt offen. Unter der Liste klappt „{n} als verschieden gemerkt“ die gemerkten Paare auf, je Paar mit „Wieder anbieten“. Die Hinweiszeile zählt Gemerktes nicht mit; sind alle Paare gemerkt, verschwindet sie, und zurückgeholt wird mit dem MCP-Werkzeug dublette_verschieden (N469).
Form: Guide §15.3; Wege VERSCHMELZUNG_DUBLETTEN, VERSCHMELZEN, VERSCHMELZUNG_ZURUECKNEHMEN und VERSCHMELZUNG_VERSCHIEDEN des Gerüsts links, die Kandidaten aus tasks/server/verschmelzung.ts.
Aufgegangen in diesem Eintrag (E28, N489, 15.10.2026)
Unter „Hängt zusammen mit …“ nennt der Editor, welche Aufgaben in diese aufgegangen sind und noch nicht wieder getrennt wurden: je Zeile ihr Name, das Datum der Verschmelzung und „Wieder trennen“. So lässt sich eine Verschmelzung auch am nächsten Tag zurücknehmen, wenn die Meldung in der Hinweiszeile längst weg ist. Nach dem Trennen steht die Aufgabe wieder in der Liste, sobald sie neu geladen wird, und das Verknüpfungsfeld liest seine Chips neu. Ohne Verschmelzung steht der Abschnitt nicht da. Einen allgemeinen Verlauf des Eintrags gibt es nicht (N489).
Weg VERSCHMELZUNGEN mit art und id; der Name kommt aus dem Abbild der Verschmelzung (titelAusAbbild in tasks/server/verschmelzung.ts), weil die aufgegangene Aufgabe im Papierkorb liegt.
Woher die Daten kommen
TASKS (lesen) · TASK_SAVE (anlegen und ändern) · TASK_STATUS (Zustand setzen, gibt die XP zurück; der Schirm schickt immer ein Ziel, ohne Ziel rückt nur noch todo_status einen Schritt vor) · TASK_DELETE. Jede Zeile aus TASKS trägt seit TD06 closed_at — wann eine abgeschlossene Aufgabe abgeschlossen wurde, aus game.task_progress.updated_at; danach gliedern „Heute erledigt“ und der Reiter „Erledigt“. Seit TD08 (02.10.2026, N483, Wanderung 213) trägt sie außerdem notes, die Notiz aus game.tasks.notes, null, wenn es keine gibt. TASK_SAVE unterscheidet dabei „fehlt“ von „leer“ (@shared/handlers/tasks/notiz): Fehlt notes, bleibt die Notiz stehen — so löscht weder ein Umbenennen per MCP (todo_speichern) noch die Rücknahme eines Begleiterzugs sie still —; null oder Leerraum löscht sie. Die Notiz liegt wie der Name im Klartext in der Spalte und ist auf dem Weg wie jedes Feld einer Aufgabe verschlüsselt (registerEncryptedRoute). Seit NB12 (Wanderung 278) trägt sie amount_minor, den Betrag eines Wunschs in Cent, und reference_url, seinen Verweis, beide null, wenn keiner; TASK_SAVE nimmt sie als amountMinor und referenceUrl wie die Notiz an — fehlt das Feld, bleibt der Wert, null löscht ihn. Dieselben Grenzen (Ganzzahl bis 2 147 483 647, Verweis nur http/https bis 2048 Zeichen) prüft die Datenbank noch einmal. Dazu /api/game/skills für die Skill-Auswahl im Formular — ist Fortschritt aus, antwortet der Server 403, die Liste bleibt leer, und das Formular zeigt weder Skill noch Bonus.
Dazu RUECKNAHME (was zurückginge) und RUECKNAHME_ZURUECK (es tun) für die Rücknahmeleiste. Beide nehmen keine Kennung entgegen: Was zurück geht, sucht der Server im Buch dieses Kontos — deshalb gibt es hier auch nichts, worüber ein Konto auf ein anderes zeigen könnte. „Nichts da" ist dabei ein Erfolg und keine 404; ein Schirm, der laufend fragt, füllte sonst das Fehlerprotokoll im Minutentakt.
Dazu LINKS · LINKS_SUCHE · LINKS_ANLEGEN · LINKS_LOESEN für das Verknüpfungsfeld. Sie gehören keinem Bereich, sondern dem Gerüst (packages/plugins/src/links/). Seit G04 (24.09.2026, N176) kennt das Gerüst zwölf Knotenarten statt drei — dazu kamen topic, exam, flashcard, source, lecturenote, person, event, memory und course —; das Feld unter einer Aufgabe kann sie alle finden, sofern der Bereich einen Suchanschluss hat. Ein eigenes Feld auf den Schirmen der neuen Arten gibt es noch nicht. Nachts entfernt der Kehrlauf Kanten, deren Knoten endgültig gelöscht ist (verify:kehrlauf).
Die Eule schlägt eine Reihenfolge vor (KI20, 27.09.2026). In der schwebenden Eule steht „Eine Reihenfolge vorschlagen“ als Knopf. Er schickt nur die Kennung des Angebots an BEGLEITER_ANGEBOT; was das Modell liest, holt der Bereich selbst (tasks/server/angebote.ts): die eigenen offenen To-Dos — nicht erledigt, nicht verworfen, nicht im Papierkorb —, höchstens 40, die dringendsten zuerst, je mit Stand, Wichtigkeit, Aufwand, Frist, „anfangen bis“, ob überfällig und der Hauptaufgabe. Beschreibungen, Notizen, Fähigkeiten und XP gehen nicht mit. Ein Klick zählt als freie Frage; was dahinter steht, sagt docs/seiten/begleiter.md, Abschnitt „Die Angebote der Eule“.
Aufgehoben wird unter tasks.aufgaben (G03, 21.09.2026, Rahmen 7). Eine To-do-Liste, die bei einem Ausfall leer aussieht, ist die gefährlichste von allen: Sie sagt „nichts zu tun".
Aus Microsoft To Do (KN-261015-microsoft-todo, 16.10.2026)
Wer in den Einstellungen Microsoft To Do verbindet, findet danach jede Liste aus To Do als Hauptaufgabe und ihre offenen Aufgaben als Teilaufgaben darunter. Es sind gewöhnliche Aufgaben: Sie lassen sich bearbeiten, planen und verschieben wie jede andere. Der Abgleich läuft gleich nach dem Verbinden und danach alle dreißig Minuten.
- Aus To Do herein: neue offene Aufgaben; Titel, Frist, Notiz und Wichtigkeit, wenn sie dort geändert wurden („hoch“ und „niedrig“ werden Priorität, „normal“ bleibt ohne); erledigt und wieder offen; gelöscht (in den Papierkorb, dreißig Tage zurückholbar). Eine verschwundene Liste nimmt ihre Aufgaben mit in den Papierkorb.
- Nach To Do hinaus: nur der Haken. Wer hier erledigt oder wieder öffnet, sieht es beim nächsten Abgleich auch dort. Titel, Frist und neue Aufgaben bleiben hier.
- Bewegen sich beide Seiten zugleich, gilt To Do.
- Nicht übernommen werden erledigte Aufgaben, die Denotato nie offen gesehen hat, und die Liste der gekennzeichneten E-Mails.
- Erledigen aus To Do bringt keine XP; der Rückblick zählt es trotzdem.
- Trennen löscht nur die Zuordnung; die Aufgaben bleiben.
Die Zuordnung steht in game.task_links (Migration 337): je Aufgabe die Kennung bei Microsoft und ob sie beim letzten Abgleich erledigt war.
Vorschläge des Begleiters (KI-261007-planen-vorschlaege)
Eine Frist ohne To-do wird eine Vorschlagskarte „To-dos · To-do anlegen?“ an der Eule dieses Schirms und im Begleiter (docs/seiten/begleiter.md). Ein Anbieter meldet seine Fristen über den Anschluss fristen, sobald er sie sieht — heute Moodle beim Abgleich und beim Lesen der Fristen —; der Erzeuger steht hier (tasks/server/fristkarten.ts). Die Karte legt mit einem Klick ein To-do der Art Uni an: Name „Titel (Kurs)“, fällig am Tag der Frist in der eingestellten Zeitzone, in der Notiz Kurs und Adresse. „Bearbeiten“ zeigt Name, Tag (Tageswähler) und Notiz. „Zurücknehmen“ löscht das eben angelegte To-do; mit „Immer so“ legt der Begleiter die nächste Frist selbst an und meldet sie.
Teile derselben Abgabe (TD-261015-ober-todos) kommen als eine Karte „To-dos · Als ein To-do mit Teilaufgaben anlegen?“: Fristen desselben Anbieters und Kurses zum selben Zeitpunkt, deren Titel einen gemeinsamen Stamm haben — „Aufgabe 1.1“, „Aufgabe 1.2“, „Aufgabe 1.3“ werden „Aufgabe 1 (Kurs)“ mit drei Teilaufgaben. Geschnitten wird an Wort- und Zahlgrenzen („Aufgabe 10“ und „Aufgabe 11“ teilen „Aufgabe“); ohne Stamm bleibt jede Frist ihre eigene Karte, und mehr als zwölf Teile werden keine. Der Klick legt das Ober-To-do und jeden Teil darunter an, alle mit derselben Frist und Art; die Notiz des Ober-To-dos trägt Kurs und alle Adressen. „Bearbeiten“ zeigt Name, Teilaufgaben (eine je Zeile), Tag und Notiz. Nachweis: fristkarten.test.ts.
Keine Karte bekommt eine Frist, deren Tag vorbei ist, und eine, zu der schon ein To-do steht — mit der Adresse in der Notiz oder mit gleichem Namen am selben Tag, auch ein erledigtes. Ein Konto ohne diesen Bereich bekommt keine. „Nicht jetzt“ hält, bis die Frist sich verschiebt oder umbenannt wird. Nachweis: verify:tasks, Abschnitt „Fristen werden To-do-Karten“; Anlegen, Zurücknehmen und „Immer so“ in verify:begleiter, Abschnitt „Die To-do-Karte“.
Ein überfälliges To-do wird eine Karte „Verschobene To-Dos · Auf einen neuen Tag legen?“ mit dem Knopf Verschieben. Der Erzeuger (tasks/server/ueberfaellig.ts) läuft, wenn jemand die Liste liest, höchstens einmal am Tag je Konto und legt höchstens drei Karten je Lauf ab. Der vorgeschlagene Tag ist unter den nächsten sieben der erste, an dem am wenigsten anderes fällig ist; mehrere Karten verteilen sich. Der Klick ruft todo_planen (Route /api/tasks/plan), das nur die Frist umlegt: Uhrzeit, Priorität, Aufwand und Vornahme bleiben. „Bearbeiten“ zeigt den Tag im Tageswähler. „Zurücknehmen“ stellt die alte Frist her; mit „Immer so“ verschiebt der Begleiter künftig selbst und meldet es.
Ein großes To-do (Aufwand „groß“) ohne Teilaufgaben bekommt statt dessen „Geteilte To-Dos · In Teilschritte zerlegen?“ mit dem Knopf Zerlegen: Ein Modell schlägt zwei bis acht Teilschritte vor, der Klick legt die Frist um und jeden Schritt als Teilaufgabe an, „Zurücknehmen“ tut die Teilaufgaben weg und stellt die Frist her. Ohne Modell (kein Schlüssel, keine Einwilligung, Budget aus) kommt die Karte zum Verschieben (Grundsatz 40). Erledigtes und Kommendes bekommt keine Karte; „Nicht jetzt“ hält, bis sich die Frist ändert. Der Schalter in den Einstellungen des Begleiters heißt „Wenn ein To-do überfällig ist“. Nachweis: verify:tasks, Abschnitt „Ueberfaellige To-dos werden Karten“; Anlegen, Zurücknehmen und „Immer so“ in verify:begleiter am Ende von „Die To-do-Karte“.
Eine Aufgabe in einer Seite („bis Freitag Blatt 3 abgeben“) wird dieselbe Karte „To-do anlegen?“ mit dem Herkunftssatz „Aus einer Aufgabe in einer Seite“. Ein Bereich meldet einen geschriebenen Text über den Anschluss aufgabentexte — heute die Dokumente, wenn eine eigene Seite drei Minuten nicht mehr geändert wurde —; der Erzeuger steht hier (tasks/server/textaufgaben.ts). Ein Modell liest Titel und Text (bis 8000 Zeichen) mit dem heutigen Tag und nennt bis zu drei Aufgaben mit Tag; Wochentage und „morgen“ rechnet es von heute aus. Das To-do bekommt keine Aufgabenart — ob „Uni“, weiß der Text nicht sicher — und in der Notiz Titel und Adresse der Seite.
Ohne Modell entsteht keine Karte: Eine falsch gelesene Frist wäre schlimmer als keine. Vor dem Ruf sieben zwei Regeln: Der Text braucht ein Wort der Pflicht („bis“, „abgeben“, „fällig“, „due“ …) und eines der Zeit (ein Datum, ein Wochentag, „morgen“, „Woche“ …), und derselbe Text wird nicht zweimal gefragt, ein Gegenstand höchstens einmal in der Stunde. Ist der Schalter aus oder der Stapel voll, geht nichts hinaus. Keine Karte bekommt eine Aufgabe, deren Tag vorbei ist, eine, zu der ein To-do mit gleichem Namen steht (auch erledigt, an welchem Tag auch immer), und eine am selben Tag wie ein To-do, das schon aus derselben Seite stammt. Der Schalter heißt „Wenn in einer Seite eine Aufgabe mit Frist steht“. Nachweis: verify:tasks, Abschnitt „Aufgaben aus Seiten werden To-do-Karten“ (mit festem Leser statt Modell); welche Seiten gemeldet werden, verify:seitenaufgaben.
Moodle-Ankündigungen und Skripte melden noch nicht: Ankündigungen liest Moodle nur im Moment des Ansehens, ohne sie abzulegen. Der Anschluss ist für sie offen (Folgevorgang in docs/vorhaben/).
Die Eule: „Eine Aufgabe zerlegen“ (KI21, N372)
Das gewählte To-Do steht als ?id=<id> in der Adresse (client/gegenstand.ts). Der Leser gibt nur ein eigenes To-Do außerhalb des Papierkorbs mit: Name, Stand, Wichtigkeit, Aufwand, Frist, Dauer, die Hauptaufgabe und die Teilaufgaben — keine Fähigkeit und kein XP. Seit KI42 (04.10.2026) kommen die Teilschritte als Einträge mit „Übernehmen“; der Knopf legt über den Klientanschluss uebernahmen (client/uebernahme.ts) eine Teilaufgabe des gewählten To-Dos an — dieselbe Route wie das Speichern im Bereich, mit der Sitzung des Kontos.
Das Modell trägt nach, was fehlt (TD-261015-ki-traegt-fehlende, 16.10.2026)
Fehlen einem To-do Priorität, Aufwand oder (mit Fortschritt) die Fähigkeit, trägt das Modell sie nach (Anlass „To-dos einordnen“, tasks/server/einordnung.ts). Wann, stellt die Verwaltung je Stufe unter „Instanzwerte“ (aufgaben.einordnen.frei|premium|admin|dev): 0 nie, 1 nachts, 2 gleich nach dem Anlegen. Ab Werk Gratis 0, alle anderen 2. „Gleich“ gilt für das Anlegen über diesen Schirm, die Schnellzeile und das MCP (saveTask, vier Sekunden gesammelt); was über Eingang, Text oder Kartenanlage entsteht, holt der Nachtlauf (denotato-aufgabeneinordnung.timer, 04:10) nach, ebenso was beim Anlegen ausfiel. Ein Ruf nimmt bis zu zwanzig To-dos eines Kontos.
- Nie über den Menschen. Das Modell füllt nur leere Felder, und jedes To-do fragt es genau einmal (
ki_eingeordnet_at, Migration 335): Wer einen Vorschlag zurücknimmt oder ein Feld bewusst leer lässt, bekommt ihn nicht in der nächsten Nacht wieder. - Erkennbar.
ki_nachgetragennennt die Felder, die gerade den Wert des Modells tragen. Der Editor zeigt darunter „Vom Modell vorgeschlagen: Prio, Aufwand“ mit dem Knopf „Vorschlag zurücknehmen“, der diese Felder leert; gespeichert wird wie jede Änderung. Setzt der Mensch ein Feld auf einen anderen Wert, fällt es aus der Liste. - Was hinausgeht. Name und Notiz (gekürzt auf 300 Zeichen) der nummerierten To-dos, dazu die Namen der Fähigkeiten — keine Kennung.
Als Baustein im Wiki (WI-261008-bausteine-artikel)
Stumm und mit festen Beispieldaten; Form und Wortlaut stehen in wiki.md unter „Bausteine im Artikel“. Drei Bausteine: die Aufgabenzeile (tasks.task-row, Block) mit „Hausarbeit gliedern“, die Schnellzeile „Neue Aufgabe“ (tasks.quick-add, Block) und der Knopf „Frist“ (tasks.due-button, im Satz). Der Fristknopf ist dafür aus der Schnellzeile als eigenes Bauteil Fristknopf gelöst; auf diesem Schirm ändert sich nichts.
Was fehlt
Was fehlt, bleibt der Papierkorb.— seit dem 19.09.2026 gibt es ihn (B07). „Löschen" legt die Aufgabe weg statt sie zu entfernen; dreißig Tage lang holt ein Klick unter Einstellungen → Deine Daten sie zurück, danach räumtdenotato-papierkorb.timerab. Die Rückfrage an der Zeile bleibt — sie ist jetzt der Riegel vor einem umkehrbaren Schritt und nicht vor einem endgültigen.Zwei Berichtigungen zum Satz von gestern: Die Spalte liegt an
game.tasksund nicht anpersonal.tasks— letztere hat null Zeilen und keinen Leser. Undtodo_loeschen(MCP) löscht seither ebenfalls nicht mehr endgültig; das war der schärfste Fall überhaupt, denn dort drückt ein Modell den Knopf.Was noch fehlt: die mittlere Stufe „für den Nutzer gelöscht" als eigener Zustand — heute gibt es nur „da" und „im Papierkorb".
- Keine Wiederholung. „Jeden Montag" gibt es nicht; Gewohnheiten liegen in einem anderen Bereich (
game.habits) und wissen nichts von To-Dos. Christians Rückmeldung vom 11.09. („Quests mit To-Dos verschmelzen") zielt genau darauf. Keine Unteraufgaben in der Oberfläche— seit dem 21.09.2026 gibt es den Weg (S-tasks). Im Editor steht „Gehört zu" (seit TD06 unter „Mehr“) und darunter, was an dieser Aufgabe hängt; die Unterzeile der Hauptaufgabe zählt „2/5“ (bis TD06 die Spalte Teilaufgaben unter „Alle“). Ein Ring ist nicht möglich: Wer eine Aufgabe unter sich selbst oder unter eine ihrer eigenen Teilaufgaben hängen will, bekommt sie ohne Hauptaufgabe zurück — die Auswahl bietet es gar nicht erst an, der Server verwirft es noch einmal, weil dort auchtodo_speichernankommt. Seit dem 22.09.2026 ist die Liste auch ein Weg (S-tasks): An jeder Teilaufgabe steht der Knopf zum Abhaken, neben der Überschrift „2 von 5 erledigt", und die Ansicht Baum rückt jede Teilaufgabe unter ihre Hauptaufgabe ein — über beliebig viele Ebenen.Und die Liste im Editor zeigteine Ebene: Was unter einer Teilaufgabe hängt, steht nicht darin, obwohl der Baum es kennt.Löschengeht von dort nicht — der einzige Knopf an der Teilaufgabe ist „Weiter".— beides behoben am 22.09.2026 (S-tasks): Die Liste zeigt den ganzen Ast, eingerückt um die Tiefe, die Bilanz zählt alles davon, und neben dem Knopf zum Abhaken steht Löschen mit derselben Rückfrage wie an der Tabellenzeile. Gerechnet wird der Ast inshared/teilbaum.ts— ohne React, ohne Server, mit Nachweisen (Grundsatz 59) und ringfest. Was fehlt: Öffnen geht von dort weiterhin nicht — der Editor hängt an einer Zeile der gezeigten Ansicht, und eine erledigte Teilaufgabe hat dort keine. Das ist der einzige Knopf, der an der Teilaufgabe fehlt, und er fehlt mit Grund.- Keine Mehrfachauswahl. Zehn Aufgaben abhaken heißt zehnmal klicken.
Kein Zurücknehmen— seit dem 21.09.2026 gibt es die Rücknahmeleiste (Q05): zehn Minuten, der Vorzustand aus dem Buch, und die XP gehen mit. Der Toast von gestern hatte vier Sekunden und ließ die Gutschrift stehen. Was fehlt: dasselbe für „Löschen" (dort hilft nur die Rückfrage und danach der Papierkorb) und für „Anlegen" — eine versehentlich angelegte Aufgabe muss man löschen, und das ist der schärfere Schritt. Was bewusst fehlt: eine Liste, aus der man sich eine ältere Handlung aussucht.Der Plantag ist tot— seit dem 21.09.2026 lebt er (S-tasks). Im Editor steht „Geplant" (seit TD06 unter „Mehr“); der Reiter „Geplant" zeigt seither, was jemand gesetzt hat, und nicht mehr eine leere Liste. Er war nicht nur tot, er hat gelöscht: Weil das FormularplannedAtnie mitschickte und der Server die Spalte bei jedem Speichern schreibt, hat jede Änderung an einer Aufgabe den Plantag stillschweigend entfernt — auch den, den ein MCP-Werkzeug gesetzt hatte.Was fehlt:… es gibt keinen Knopf „heute" oder „morgen" — beides tippt man als Datum.— seit dem 22.09.2026 gibt es beide (S-tasks): Neben „Geplant" stehen Heute und Morgen, gerechnet in der eingestellten Zeitzone; der Knopf zeigt, dass er an ist, und ein zweiter Druck nimmt den Plantag zurück. Was bleibt: Der Plantag ist ein Tag ohne Uhrzeit — „mittags" ist eine Setzung im Formular, damit keine Zeitzone ihn über Mitternacht schiebt.Keine Fälligkeit mit Uhrzeit— seit dem 21.09.2026 gibt es sie (S-tasks). Neben „Fällig" steht ein Uhrfeld, sobald ein Datum gewählt ist; bleibt es leer, gilt weiterhin 23:59, und genau das ist der Vorzustand. Die Umrechnung geschieht jetzt in der Zeitzone des Geräts statt als nackter Text — vorher wurde…T23:59:00ohne Versatz verschickt und von der Datenbank (Etc/UTC) als UTC gelesen, sodass eine Berliner Frist einen Tag später aussah und beim nächsten Öffnen des Editors noch einen weiter rutschte.Was fehlt:Die Uhrzeit steht nirgends in der Liste — die Spalte „Fällig" zeigt weiter nur den Tag (kind: 'date', undformatDatekennt keine Uhrzeit). Eine Frist um 9:00 sieht in der Tabelle aus wie eine um 23:59.Und es ist keine Fleißarbeit, sondern eine Entscheidung(22.09.2026): Eine Zellart, die TagundUhrzeit zeigt, säße inpackages/frontend/src/config/views/viewTypes.tssamtzellen.tsxund gälte dann für jede Tabelle in Denotato. Vor allem aber nennt der Style-Guide §7.6 genau das alsGegenprobe:„Eine Uhr neben jedem Datum."Der Weg, den er stattdessen vorsieht, ist dieZeile, die kippt— drei Stufen ab drei Tagen. Wer die Uhrzeit sichtbar machen will, baut also nicht eine Spalte um, sondern entscheidet, ob die Dringlichkeit am Text oder an der Zeile hängt. Das ist ein Vorgang für den Rahmen, nicht für dieses Plugin.— erledigt mit TD06 (02.10.2026): Die Liste hat keine Spalten mehr; die Zeile nennt die Frist als Text („heute 14:00“, „Mo., 05.10. 09:00“) und die Uhrzeit nur, wo eine gesetzt ist. Gedrängt wird über die kippende Zeile (§7.6), wie der Style-Guide es vorsieht — die Uhr steht nicht neben jedem Datum, sondern nur neben einem, das eine hat. Berichtigt am 22.09.2026: Hier stand, „überfällig" rechne der Server ebenfalls auf den Tag. Das stimmt nicht — er vergleichtt.due_on <= NOW()auf einertimestamptz, also auf die Sekunde genau (server/aufgaben.ts). Falsch ist nur die Anzeige, nicht die Rechnung: Eine Aufgabe, die um 9:00 fällig war, steht um 9:01 unter „Fällig" — man sieht der Spalte nur nicht an, warum.Kein Filter nach Art— die Ansicht „Nach Art" gibt es seit dem 17.09.2026.Was fehlt, ist dieKombination: „Uniundüberfällig" geht nicht, weil eine Ansicht einen Filter trägt und keine Auswahl anbietet.— seit TD06 (02.10.2026) geht sie: Der Art-Chip filtert, die Liste darunter gliedert nach Frist, „Uni und überfällig“ ist die oberste Gruppe unter dem Chip „Uni“. Was fehlt: zwei Arten zugleich — die Chips lassen eine Art an oder „Alle“.- Keine Verknüpfung zu Dokumenten oder Terminen. Eine Aufgabe „Aufsatz schreiben" kennt das Dokument nicht.
Kein Notizfeld.Eine Aufgabe hat einen Namen und sonst keinen Text.— seit dem 02.10.2026 gibt es eins (TD08, N483):game.tasks.notes, im Editor unter „Mehr“, an der Zeile als ¶.Keine Sortierung von Hand— der Satz war schon falsch, als er hier stand: Jede Tabelle sortiert seit N69 über ihre Spaltenköpfe und merkt sich die Wahl. Seit dem 21.09.2026 können es die Bretter auch (E02). Was fehlt: Die Ordnung wandert beim Reiterwechsel nicht mit. Wer „Offen" nach Prio sortiert und auf „Nach Zustand" wechselt, sieht dort die Ordnung, die dieses Brett zuletzt hatte — gemerkt wird je Ansicht, nicht je Schirm. Das ist kein Versehen: Die Felder unterscheiden sich zwischen den Ansichten (planned_atnur unter „Geplant",overduenur unter „Fällig"), und eine mitwandernde Sortierung liefe still auf ein Feld, das die Zielansicht nicht kennt. Ob sie trotzdem mitwandern soll, ist eine Entscheidung. Entschieden mit N477, gebaut in TD06 (02.10.2026): Es gibt nur noch eine Ordnung für den ganzen Schirm, gewählt über „Ordnen“ und gemerkt unter dem Schlüsseltasks. Die Felder unterscheiden sich nicht mehr zwischen den Reitern; „Geplant“ ordnet nach dem Plantag, wo die anderen nach der Frist ordnen. Was bleibt: eine Reihenfolge von Hand, durch Ziehen einer Zeile.Keine Aufwandssumme— steht seit dem 17.09.2026 über der Liste. Was fehlt: ein Verlauf („letzte Woche waren es 40") und ein Ziel („heute höchstens 8 Punkte"). Ohne beides ist die Zahl eine Momentaufnahme.- Der Papierkorb ist von hier aus nicht zu sehen. Wer eine Aufgabe weggetan hat, findet sie unter Einstellungen → Deine Daten und nicht dort, wo sie stand — kein Hinweis an der Liste, kein „zuletzt weggetan". Seit Q06 gibt es immerhin eine Adresse dafür:
/papierkorb. - „Anfangen" rechnet ohne Kalender. Frist minus Aufwand nimmt an, dass jeder Tag gleich viel Platz hat — ein Tag mit sechs Veranstaltungen zählt wie ein freier Sonntag. Die große Fassung bräuchte den Stundenplan (NB08) und steht in W05.
- „Anfangen" färbt sich nicht. Ein Anfangstag, der vorbei ist, sieht aus wie jeder andere;
anfangVerpasstgibt es insharedund niemand ruft es. Was eine überschrittene Marke anzeigen soll, entscheidet der Style-Guide — und er schweigt dazu (Grundsatz 9). - Der Aufwand ist eine Stufe, keine Zeit. Klein, mittel, groß lassen sich nicht summieren zu „vier Stunden"; die Umrechnung in Tage ist eine Setzung, die niemand gemessen hat.
Die Ordnung der Bretter liegt im Plugin, nicht inDataBoard.— behoben am 30.09.2026 (E02):DataBoardliest den gemerkten Stand selbst (useAnsichtsstand) und zeigt dieOrdnungsleisteüber jedem Brett in Denotato. Der alte Befund:mitOrdnunglag in einer Datei dieses Bereichs, wirkte nur, weil dieser Schirm es rief, und jedes andere Brett konnte es nicht.Die Gruppenwahl des Bretts ist eine Liste von Hand— behoben am 30.09.2026 (E02): Die Wahl kommt aus den Spalten (brettGruppenfelder:gruppierbarder Ansicht, sonst die Spalten mit kleinem Wertevorrat, und immer das Feld der Vorgabe). Der alte Befund: Die Liste TASK_GRUPPEN stand neben den Spalten und lief mit ihnen auseinander, sobald jemand eine änderte.Zwei Platzhalter für „ohne Wert".— behoben am 30.09.2026 (E02):groupRowsschreibt jetztOHNE_WERTwiegruppiere, stellt die leere Spalte ans Ende, und ihr Kopf heißt „Ohne Angabe" wie in der Tabelle (gruppentitel). Der alte Befund: Die Tabelle schriebOHNE_WERT, das Brett einen Strich.- Der Rückfall endet am Schirmrand. Die Liste steht noch da, wenn der Server schweigt — abhaken kann man dabei nichts, und ein Haken, der bis zur nächsten Antwort wartet, wäre der nächste Schritt (G03, Rahmen 7).
Die Frist hängt am Gerät.— behoben am 22.09.2026 (S-tasks). Das Formular rechnete Tag und Uhrzeit dort um, wo der Schirm läuft, nicht in der Zeitzone, die unter Einstellungen steht: Wer eine Frist in Berlin setzte und sie in Tokio öffnete, sah eine andere Uhrzeit, und beim Speichern rutschte sie mit. Jetzt holt das Formular die Zone aus der Zeitschicht (useZeit) — dieselbe Quelle, aus der die Liste schon ihre Datumsanzeige nimmt —, und gerechnet wird inshared/fristzeit.ts: ohne React, ohne Server, mit Nachweisen über vier Zonen, über die Sommerzeit und über den Rückweg (Grundsatz 59). Die Regel „leer heißt 23:59" gilt jetzt ebenfalls in der eingestellten Zone — vorher konnte eine Frist, die als Tagesende gespeichert war, beim Bearbeiten mit 21:59 im Uhrfeld stehen.- „Gehört zu" bietet nur offene Aufgaben an. Etwas neu unter eine abgeschlossene zu hängen, geht über die Oberfläche nicht; über
todo_speichernschon. Das ist eine Setzung und keine Regel — ob ein abgeschlossener Sammelvorgang eine sinnvolle Hauptaufgabe ist, hat niemand entschieden, und die Entscheidung steht weiter aus.Sichtbar wurde es an einer Stelle: Hängt eine Aufgabe unter einer inzwischen abgeschlossenen, stand im Feld der Platzhalter statt des Namens.— behoben am 22.09.2026: Die eigene Hauptaufgabe steht immer in der Auswahl, auch wenn sie abgeschlossen ist. Verloren ging dabei nie etwas, gespeichert wurde weiter dieselbe Kennung; aber der Schirm behauptete das Gegenteil dessen, was in der Datenbank steht. Was bleibt: Hängt eine Aufgabe unter einer weggetanen, steht dort weiterhin der Platzhalter — und das ist richtig so, denn der Server liefert Weggetanes nicht mit, und einen Namen, den man nicht hat, kann man nicht anbieten. - Die Zahl zählt eine Ebene.
subtask_countsagt, was direkt an einer Aufgabe hängt, nicht, was darunter noch hängt.Und sie sagt nichts darüber, wie viel davon erledigt ist.— seit dem 22.09.2026 steht „2 von 5 erledigt" über der Liste im Editor, gerechnet aus denselben Zeilen, die darunter stehen, ohne eine zweite Frage an den Server.Was fehlt:In derSpaltesteht weiter nur die eine Zahl — ein Verhältnis dort bräuchte ein zweites Feld aus dem Server und damit die API und das MCP-Werkzeug.— seit TD06 (02.10.2026) steht in der Unterzeile „2/5“, gerechnet auf dem Client aus den geladenen Zeilen, ohne neues Feld; gezählt wird weiter nur die erste Ebene. Und ein Fortschritt über die Teilaufgaben bräuchte die Entscheidung, ob eine Hauptaufgabe von selbst fertig wird, wenn alle Teile es sind. - Der Baum kennt kein Zuklappen. Jeder Knoten steht ausgereiht da, und bei dreistelligen Beständen ist die Ansicht eine Rolle statt eines Überblicks. Seit TD06 zeichnet der Bereich den Baum selbst (
baumfolgeinshared/ordnung.ts) und nicht mehrDataTable; ein Dreieck an der Elternzeile wäre damit ein Vorgang dieses Plugins. Der Baum zeigt auch Abgeschlossenes, und das lässt sich nicht abstellen.— umgekehrt seit TD06 (02.10.2026): Der Baum steht unter „Offen“ und zeigt nur Offenes; eine Teilaufgabe, deren Hauptaufgabe abgeschlossen ist, steht als Wurzel da. Was fehlt: ein Zeichen an einer solchen Wurzel, dass sie eine Hauptaufgabe hat — die Einrückung allein sagt es nicht mehr.Sieben Reiter, und keiner lässt sich wegstellen.— seit TD06 (02.10.2026) sind es drei (N477, Ansichten A): Offen, Geplant, Erledigt. Tabelle, Brett und Baum wählt „Ordnen“. Was bleibt (Grundsatz 72): Reihenfolge und Auswahl der drei Reiter stehen inclient/ansichten.tsund lassen sich in Denotato nicht stellen.- Die Teilaufgabenliste kennt keine Grenze und kein Zuklappen. Seit dem 22.09.2026 steht dort der ganze Ast, und damit hat sie das Problem geerbt, das der Baum schon hatte (24): Eine Aufgabe mit vierzig Nachfahren macht aus dem Editor eine Rolle, und ab der vierten Ebene schiebt die Einrückung (
spacing.mdje Ebene) den Namen aus dem Feld — er endet dann mit „…", und der volle Name steht nur noch im Zeigerhinweis. Einen Schalter „nur die erste Ebene" gibt es nicht. - Anlegen geht von der Teilaufgabenliste nicht. Wer eine neue Teilaufgabe will, legt sie seit TD06 oben in der Eingabezeile an, öffnet sie und wählt unter „Mehr“ „Gehört zu" — an der Hauptaufgabe selbst steht kein „+". Das ist seit TD06 ein Schritt weiter weg als vorher, weil die Eingabezeile „Gehört zu“ nicht kennt.
- „Heute" und „Morgen" veralten um Mitternacht. Beide Tage werden einmal gerechnet, wenn das Formular baut, und hängen nur an der eingestellten Zeitzone. Wer den Schirm über Mitternacht offen lässt, bekommt von „Heute" noch den gestrigen Tag. Ein Zeitgeber dafür wäre ein Wecker je Formular; sauberer wäre ein Tageswechsel, den die Zeitschicht meldet — und den gibt es für keinen Schirm in Denotato.
Nur der Plantag hat Schnellknöpfe, die Frist nicht.Neben „Geplant" stehen „Heute" und „Morgen"; neben „Fällig" steht nichts, obwohl „heute Abend" die häufigste Frist überhaupt sein dürfte. Dahinter steht keine Entscheidung, sondern nur die Reihenfolge, in der gebaut wurde — und die Frage, ob ein Knopf „Heute" dort dann 23:59 meint oder die Uhrzeit offen lässt.— seit TD06 (02.10.2026) bietet der Knopf „Frist“ der Eingabezeile Heute, Morgen und In einer Woche, jeweils als Ende des Tages. Was bleibt: Im Editor hat die Frist weiter keine Schnellknöpfe, und welche Tage die Eingabezeile anbietet, steht im Code (Grundsatz 72).Die Spaltenköpfe der Bretter „Nach Art" und „Nach Zustand" bleiben ohne Zeichen— für „Nach Zustand" seit dem 23.09.2026 behoben (N134). Der frühere Satz nahm an, ein Zeichen am Spaltenkopf bräuchte einen eigenen Weg inDataBoard, der eine Spalte nur für den Kopf und nicht für die Karte liest — das stimmte nicht:studyundmaterialslösen genau das schon, indem die gruppierende Spalte (dortstatus) einfach als eigene Spalte in der Ansicht steht.DataBoardfindet ihr Zeichen darüber — „Nach Zustand" folgt seither demselben Bau. Seit TD04 (01.10.2026) steht der Wert der Spalte nicht mehr ein zweites Mal auf der Karte darunter, weder die Marke des Zustands noch „Art Privat" unter „Privat" (Grundsatz 75); nur eine Aufgabe mit zwei Arten nennt beide, weil die zweite in keinem Kopf steht. Der Reiter an der Karte (cardTone; bis zum 10.10.2026 ein Streifen links, E11) bleibt trotzdem bei der Priorität, aus demselben Grund wie zuvor: eine zweite Farbe für denselben Zustand sagte nichts Neues. Was an „Nach Art" bleibt:kindshat anders alsstatusgar keine Zuordnung zu Tönen oder Zeichen, aus der sich eine an die Spalte tragen ließe — kein Gegenstück zuSTATUS_ZEICHEN. Der Spaltenkopf bleibt deshalb ohne Zeichen, bis es eine Ton-/Zeichen-Zuordnung für die fünf Arten gibt; das ist ein eigener Vorgang. — Seit TD06 (02.10.2026) gibt es sie:KIND_ZEICHENinclient/ansichten.ts, die Farbe aus der Wertfarbe des Schlüssels (Guide §3.5); Chips, Zeilen und Gruppenköpfe tragen sie. Was bleibt: Die Zuordnung ist eine Wahl im Code und keine aus Guide §7.1; Christian hat sie nicht gesehen.„Heute fällig" bekommt kein eigenes Zeichen(N134, 23.09.2026). Guide §7.6 will ein Zeichen für „heute" (faellig)undfür „überfällig" (ueberfaellig) — hier steht nur Letzteres.TaskRowkennt nurdue_onund den Wahrheitswertoverdue, keinen „heute fällig"-Wert; den auf dem Client ausdue_onzu errechnen liefe an der Zeitzone der Einstellungen vorbei (siehe Punkt 7), und der Server liefert ihn nicht. Eindue_today-Feld wäre eine Änderung anserver/aufgaben.tsundTaskRow— außerhalb dieses Baus.— anders gelöst mit TD06 (02.10.2026):shared/fristlage.tsrechnet „heute“ auf dem Client, in der eingestellten Zone aus der Zeitschicht und nicht in der des Geräts. Ein Zeichen braucht es dafür nicht mehr: Was heute fällig ist, steht in der Gruppe „Heute“, und die Zeile kippt (§7.6).Für die Stufe „offen" fehlt der Registry ein eigenes Zeichen— behoben am 30.09.2026 (E12): Die Registry hat den leeren Ringoffen, und die Stufe trägt ihn. Der alte Befund (N134, 23.09.2026, berichtigt 23.09.2026):laufend(laeuft) undabgeschlossen(erledigt) treffen genau; „offen" trägt seither gar kein Zeichen mehr — bis zum 23.09.2026 stand dort ersatzweiseklemmbrett, aber das trifft weder „offen" noch den Bereich:klemmbrettheißt „Vorhaben" (packages/frontend/src/components/zeichen/registry.ts), und das Zeichen des Bereichs selbst istaufgabe(plugin.ts). Ein leerer Ring oder ein Punkt — das Gegenstück zuhaken— wäre der eigentliche Name für „offen".Die Gruppierwahl hat kein eigenes Zeichen für Zustand und Art— mit Absicht so, geklärt am 30.09.2026 (E02): Vor der Gruppierwahl steht überhaupt kein Zeichen mehr, wie über der Tabelle. Ein Zeichen für ein Feld gibt es in Denotato nicht; die Zeichen einer Spalte gehören ihren Werten (N134), und die stehen in den Spaltenköpfen. Der alte Befund: Zustand und Art trugen bis zum 23.09.2026tafelundkacheln, die Zeichen der gleichnamigen Reiter, danach keines, und ein eigenes Feldzeichen stand als Wunsch aus.„Überfällig" steht unter „Fällig" in jeder Zeile gleich(F64, 23.09.2026). Die Ansicht filtert genau danach (overdueist wahr), die Spalte sagt also auf jeder Zeile dasselbe — und kostet mit ihrer Überschrift gut hundert Punkte Breite. Gemessen in der Messprobe von F64: Bei 900 Punkten Fensterbreite rollt „Fällig" 44 Punkte seitwärts, „Offen" — dieselben Spalten ohne sie — gar nicht. Ob sie fällt oder ein anderes Feld an ihre Stelle tritt, ist eine Frage der Ansicht und damit Christians.— mit TD06 (02.10.2026) gegenstandslos: Es gibt keine Tabelle mehr; Überfälliges steht als erste Gruppe der Liste, und die Zeile sagt „seit 2 Tagen“.„Alle" passt auf keinen Schreibtisch.Elf Spalten plus Knöpfe brauchen mehr als die Vorgabe von 960 Punkten; gemessen rollt die Tabelle dort 172 Punkte seitwärts (vorher 79, als der Name in 69 px stand und die Daten brachen). Die Knöpfe bleiben seit F64 stehen, und der Name rollt mit weg — eine angehefteteersteSpalte gibt es nicht. Entweder weniger Spalten in „Alle" oder eine Datenansicht, die den Namen links genauso festhält wie die Knöpfe rechts.— mit TD06 (02.10.2026) gegenstandslos: Die Liste rollt nirgends seitwärts, auch am Telefon nicht (N477, Aufbau A;/ansehenmisst null Überlauf).Der Editor hat kein Notizfeld.Formular A sieht unter „Mehr“ eine Notiz vor (N477);game.taskshat keine Textspalte dafür, und eine neue Spalte samt Wanderung lag außerhalb von TD06. Das ist Punkt 10 mit einem Platz im Formular, der auf ihn wartet.— mit TD08 (02.10.2026) erledigt, siehe Punkt 10.- Nicht stellbar, was Grundsatz 72 stellbar will. Fest im Code stehen: die Folge der Reiter, welche Felder das Formular vor „Mehr“ zeigt, dass das früher Erledigte eingeklappt beginnt und dass es dort ohne Grenze stehen bleibt, die Tage der Frist-Knöpfe und die Gruppengrenze „Diese Woche“ (Tage zwei bis sechs). Ein Admin kann davon nichts in Denotato einstellen.
- „Mehr“ und die Klappe „Erledigt“ vergessen ihren Stand. Beide merkt der Schirm nur, solange man auf ihm bleibt; beim nächsten Öffnen sind sie zu. Eine Einstellung dafür wäre ein neues Feld in
ansicht. - Die Reiter tragen keine Zahlen. Wie viel unter „Geplant“ steht, sieht man erst nach dem Wechsel; die Lastzeile zählt nur das Offene.
- Das Fach am Telefon kennt nur drei Zustände. „passt so“ und „verworfen“ stehen nur im Editor, damit „Löschen“ im Fach Platz behält (
HANDZUSTAENDEinclient/Aufgabenmenue.tsx). - Der Abschluss-Zeitpunkt ist geliehen.
closed_atist der letzte Zeitpunkt, zu dem sich der Fortschritt geändert hat (task_progress.updated_at). Ändert jemand an einer erledigten Aufgabe etwas, das den Fortschritt schreibt, wandert sie im Erledigten auf diesen Tag. Ein eigenes Feld bräuchte eine Wanderung. /ansehenbelegt das Wischen nicht. Das Werkzeug kann nicht ziehen; Fläche und Fach sind nur im jsdom-Test und inwischen.test.tsgeprüft, nicht im Bild.- Eine Wunschliste lässt sich nicht teilen (NB12, Kästchen 4). Das Teilen über NB10 schließt To-Dos aus, bis C23/D18 entschieden ist (
sharingTypes.ts), undgame.taskslässt per RLS nur den Eigentümer lesen. Fehlen würden: eine Art inresource_shares_kind, eine Lese-Policy überauth.resource_shares, fremde Zeilen inlistTasks, ein Zustand „vergeben“, den ein anderer setzen darf, und die Regel, dass nur Wünsche geteilt werden. - Ein Wunsch kennt nur Euro. Der Formatierer (
geldform.ts) kann jede Währung; die Spalteamount_minorträgt aber keine, also gilt Euro.