Wunsch des Eigentuemers: faellige oder ueberschrittene Termine dezent
gelb/orange hinterlegen und mit "ueberschritten" markieren - Service-Seite und
Mein Audi; auf der Uebersicht zusaetzlich die Kennzahl im Warnton.
Erkannt wird am DATUM, nicht an den Restkilometern. Gemessen: die Sensoren
melden -28600 bzw. -22000 bei Faelligkeit 2028 bzw. 2027, negativ heisst hier
also "noch so weit hin". Welches Vorzeichen ein tatsaechlich ueberschrittener
Wert traegt, ist an den vorliegenden Daten nicht beobachtbar - geraten wird es
nicht. Der km-Fall faellt ohnehin unter die Datumsregel: servicePrognose()
setzt datum auf heute, sobald restKm auf 0 laeuft. Der Faelligkeitstag zaehlt
mit ("bereits faellig bzw. ueberschritten").
Dabei eine Luecke im Panel gefunden, vom Test und nicht im Betrieb:
datumAusText() ist verankert und nimmt keine vollen Zeitstempel - die
Fahrzeugmeldung ist aber genau das und bei Oelwechsel und Inspektion die
Hauptquelle. Sie waere still nie als ueberschritten erkannt worden.
zeitstempelAlsDatum() schliesst sie; die App hatte die Luecke nie.
Farbe nach Rolle geteilt wie --bad/--bad-flaeche: --warn ist die Flaeche,
--warn-text die Schrift. Grund: #FF9F0A als Text auf Weiss sind 2.06:1. Auf dem
12% hinterlegten Grund misst --warn-text 4.90:1 (Tag, #A15800) bzw. 9.30:1
(Nacht).
Geprueft: 15 Faelle gegen die echten Panel-Funktionen, 7 in der App, 14
Paritaetsfaelle Panel gegen App, 3 Rendertests ueber alle drei Anzeigestellen.
Gegenprobe: mit ausgehaengter Entscheidung fallen 9 Tests. 327/327, tsc sauber,
Panel als Modul geparst, Manifest und Buendel auf 2026.9.6.6, Container sauber
gestartet.
Offen: optisch nicht gesehen - der Testbestand enthaelt keinen ueberschrittenen
Termin. In OFFEN.md vermerkt.
Auf die Frage, welche Datei man am Mac in die Hand nimmt: der Backlog war die
richtige Antwort, ihm fehlte aber genau das - er beschrieb den Zustand und die
Pruefliste, nicht den Ablauf.
Neuer Abschnitt "Wie ein Lauf abläuft": was vorher zu tun ist (git pull; das
Skript bricht selbst ab, wenn der Baum unsauber oder HEAD nicht gleich
origin/main ist), der eine Befehl samt seiner dreizehn Schritte, dass die
Fassung aus manifest.json kommt und nichts von Hand hochzuzaehlen ist, das
einmalige Schluesselbund-"Immer erlauben" samt Symptom wenn man es uebersieht,
und danach Push plus der itms-services-Link in Safari - ausdruecklich ohne ?v=,
mit Verweis auf den Befund aus Abschnitt CK.
Damit ist die Datei als alleinige Uebergabe brauchbar; AGENTS.md braucht man nur
noch fuers Warum. OFFEN.md 1.1 verweist entsprechend darauf.
Ansage des Eigentuemers: ueber eine zentrale Datei bzw. einen zentralen Aufruf
muss immer klar sein, was aktuell zu tun ist.
OFFEN.md ist diese Datei. Sie nennt den Zustand, nicht die Geschichte, und
teilt sich die Arbeit mit den vorhandenen: AGENTS.md beantwortet WARUM etwas so
ist, APPLE_DEV_BACKLOG.md was davon Xcode oder das Portal braucht, OFFEN.md WAS
JETZT zu tun ist. Jeder Punkt sagt auch, was konkret zu tun ist - nicht nur,
dass etwas offen ist.
Gegliedert nach Zustaendigkeit statt nach Thema: was auf den Eigentuemer wartet
(Xcode-Lauf, Gitea-Token DM180, steuer.faellig), was eine Entscheidung braucht
(Uebersicht-Box Versicherung), was eine Sitzung bauen kann (PDF-Ablage,
Notizfeld, Dokumentendrift), was gemeldet aber nicht reproduzierbar ist, und
was bewusst so bleibt - letzteres, damit bekannte Grenzen nicht als Fehler
wiederkommen.
/stand (.claude/commands/stand.md) ist der zentrale Aufruf. Er misst den
mechanischen Teil selbst - Repo-Gleichstand, Manifest gegen OTA-Buendel samt
sha256, Fassung der ausgelieferten .ipa, ob die eigenen Plugins darin
registriert sind, und welche nativen Commits sich seit ihr angesammelt haben -
und liest OFFEN.md dazu. Dieser Teil kann deshalb nicht veralten. Probelauf
ausgefuehrt: er meldet korrekt 2026.9.6.5, Buendel passend, .ipa auf
2026.9.4.17 ohne die beiden eigenen Plugins, zwei native Commits wartend.
Verankert in CLAUDE.md (wird beim Sitzungsstart geladen) und als Punkt 0 der
Leseordnung in AGENTS.md.