Chartmotor: Baufortschritt
Teststand: E2E-Lauf auf Commit 5da1e3d vom 20.10.2026, Unit-Lauf auf Commit 971bb77
Stand 20.10.2026. Automatisch erzeugt mit „pnpm progress“ aus docs/milestones.json und den Testergebnissen. Nicht von Hand bearbeiten.
Ende-zu-Ende-Tests: Lauf vom 20.10.2026, 11:23 UTC auf Commit 5da1e3d, passt zum aktuellen Code. Der aktuelle Commit ist 2de34cc; der getestete Code ist derselbe.
- Rot: offen
- Grau: blockiert, wartet auf eine Freigabe
- Gelb: Test grün, Nacharbeiten offen
- Hellgrün: fertig, nach Zieltermin
- Dunkelgrün: fertig, im Zieltermin
Aufwand in Arbeitsstunden: grobe Schätzung.
- Gesamtaufwand Phasen 1–6
- 1068 Std.
- Gesamtaufwand inkl. Wunschliste
- 1251 Std.
- Davon erreicht
- 853 Std. (80 % von Phasen 1–6, 68 % inkl. Wunschliste)
- Veränderung seit gestern
- +30 Std.
Stunden sind Schätzwerte aus dem Bauplan, keine gemessene Arbeitszeit. Als erreicht zählt jeder Schritt mit grünem Test, auch wenn Nacharbeiten offen sind.
Phase 7 ist eine Wunschliste und zählt nicht zum Produkt (Phasen 1–6). Sie hat eine eigene Summe.
Gesamtfortschritt nach Tagen
Erreichte Arbeitsstunden (Schätzwert), aufsummiert
Phase 0: Einrichten
Zieltermin 01.10.2026 · 4 von 4 Schritten fertig · Aufwand 8 Std.
| Schritt | Status | Aufwand (Std.) | Erstmals grün |
|---|---|---|---|
| Das Paket guardrail ist im Monorepo angelegt und lädt. | 2 | 01.10.2026 | |
| Das Paket render ist im Monorepo angelegt und lädt. | 2 | 01.10.2026 | |
| Das Paket data ist im Monorepo angelegt und lädt. | 2 | 01.10.2026 | |
| Das Platzhalter-Paket web ist im Monorepo angelegt und lädt. | 2 | 01.10.2026 | |
| Summe Phase 0 | 8 |
Phase 1: Leitplanke und Renderer (HG2)
Zieltermin 22.10.2026 · 6 von 6 Schritten fertig · Aufwand 105 Std.
| Schritt | Status | Aufwand (Std.) | Erstmals grün |
|---|---|---|---|
| Das Datenmodell bildet die sechs Datenstatus je Datenpunkt und die drei Ausliefer-Stufen je Chart ab. | 10 | 01.10.2026 | |
| Die Verweigerungsregeln sind umgesetzt: die Drittel-Regel für Anteilsdarstellungen, die Regel für leere Charts und die Lückenentscheidung bei Anteilsdarstellungen. | 10 | 01.10.2026 | |
| Der HG2-Testfall ist bestanden: Zwei Reihen mit unterschiedlicher Definitionsbasis bleiben sichtbar getrennt, sind in der Legende gekennzeichnet und werden nicht gestapelt. | 15 | 01.10.2026 | |
| Linien-, Säulen- und Balkendiagramm werden als SVG erzeugt, und zwei Läufe mit derselben Eingabe liefern bytegleiche Ausgaben. | 40 | 01.10.2026 | |
| Die Locale-Tests für Deutsch und Englisch aus spec.md 6.4 sind grün. | 15 | 01.10.2026 | |
| Der Datenstatus ist im Bild sichtbar: Lücken für nicht erhobene und nicht anwendbare Werte mit Fußnote, Näherungswerte und abgeleitete Werte erkennbar anders gezeichnet. | 15 | 01.10.2026 | |
| Summe Phase 1 | 105 |
Phase 2: Minimal-Editor und Stoppuhr
Zieltermin 05.11.2026 · 10 von 11 Schritten fertig · Aufwand 76 Std.
| Schritt | Status | Aufwand (Std.) | Erstmals grün |
|---|---|---|---|
| Daten werden per Einfügen (CSV/TSV) und XLSX-Upload übernommen; deutsche und englische Zahlenformate werden erkannt, leere Zellen bleiben fehlende Werte und werden nie zu 0. | 10 | 02.10.2026 | |
| Der Editor zeigt eine Live-Vorschau im Browser für Linie, Säule und Balken mit Titel, Untertitel und Quelle in Deutsch und Englisch. | 10 | 02.10.2026 | |
| Kein Chart wird ausgeliefert, solange ein fehlender Wert keinen Status hat; verweigerte Charts nennen den Grund im Klartext. | 10 | 02.10.2026 | |
| Nur Adressen auf der Allowlist melden sich per Magic Link an; ohne Sitzung ist der Editor nicht erreichbar. | 5 | 02.10.2026 | |
| Anmeldelinks sind begrenzt: höchstens 3 Anforderungen je Adresse in 15 Minuten und 30 insgesamt je Stunde; die Antwort und ihre Dauer verraten nicht, ob eine Adresse bekannt ist oder eine Grenze greift. | 3 | 02.10.2026 | |
| Ein Anmeldelink wird erst durch die Schaltfläche auf der Bestätigungsseite verbraucht, nicht schon durch das Öffnen. | 3 | 02.10.2026 | |
| Linkanforderungen sind zusätzlich je Client-Adresse begrenzt (5 in 15 Minuten, 10 je Stunde; global 60 je Stunde); die Adresse wird nur als Schlüssel-Hash gespeichert und nach einer Stunde gelöscht; ohne verwertbare Client-Adresse ist die Grenze aus und die App warnt einmal. | 3 | 03.10.2026 | |
| Der Export als PNG und als SVG funktioniert. | 15 | 02.10.2026 | |
| Ein Erstnutzer erstellt aus einer eingefügten Tabelle in unter 90 Sekunden ein PNG (End-to-End-Test). | 10 | 02.10.2026 | |
| Login-Links werden per E-Mail verschickt (Scaleway Transactional Email); im Dateimodus bleibt alles wie gehabt. | 5 | 03.10.2026 | |
| Anmeldung, PNG-Export und Abmelden laufen in einem echten Browser gegen den Produktions-Build mit aktiver CSRF-Prüfung; eine falsche Mail-Konfiguration verhindert den Start. | 2 | 03.10.2026 | |
| Summe Phase 2 | 76 |
Phase 3: Datenkatalog
Zieltermin 03.12.2026 · 13 von 24 Schritten fertig · Aufwand 231 Std.
| Schritt | Status | Aufwand (Std.) | Erstmals grün |
|---|---|---|---|
| Katalogformat mit Gruppen und fester Reihenfolge der harmonisierten Quellen, Anbieter-Schnittstelle, Status-Abbildung (Wert, fehlend im Wertebereich, Schätzung), Wertebereich je Reihe, Lizenzfeld und Definitions-Etikett stehen. | 8 | 03.10.2026 | |
| Antworten der Anbieter lassen sich einfrieren; kein Test erreicht einen echten Anbieter, und keine Fixture enthält einen Schlüssel. | 8 | 03.10.2026 | |
| Der IMF-Anbieter liefert Beispiel 1 aus spec.md 6.3 (fünf Länder, jährlich, Linie mit „%“) aus eingefrorenen Daten. | 10 | noch nie | |
| Jede Anbieter-Antwort wird mit der Lebensdauer aus spec.md 1.1 auf der Platte zwischengespeichert; ein zweiter Abruf innerhalb der Lebensdauer geht nicht ins Netz. | 6 | 03.10.2026 | |
| guardrail-spec.md v1.3 ist angewandt: Leitplanke und Renderer zeichnen den Wertebereich jeder Reihe mit den beiden Fußnoten, addierende Darstellungen nutzen nur den gemeinsamen Bereich, docs/hg2-nachweis.md ist aktualisiert, und die neuen Musterbilder hat Olaf abgenommen. | 10 | 03.10.2026 | |
| Im Editor kann man einen Indikator aus dem Katalog wählen statt eine Tabelle einzufügen; Quellenzeile, Lizenzhinweis und Lückenstatus kommen aus dem Katalog und sind nicht änderbar. | 14 | 03.10.2026 | |
| Der WHO-Anbieter liefert Beispiel 5 als Linie (vier Länder in Eingabereihenfolge, ohne Suffix an der Werteachse); fehlende Einträge erscheinen als „nicht erhoben“. | 8 | 03.10.2026 | |
| Der Weltbank-Anbieter liest die zweiteilige Antwort, rechnet mit dem Teiler um und liefert eine jährliche Mehrländer-Reihe aus eingefrorenen Daten. | 8 | noch nie | |
| Monats- und Quartalskategorien werden mit den freigegebenen Periodenbeschriftungen („Jan. 2024“, „Q1/2024“) beschriftet. Über mehr als 24 Monate zeigt die Achse nur das Jahr („2005“) am Januar bzw. am ersten Quartal, mit höchstens 10 Beschriftungen in gleichem Abstand; über höchstens 24 Monate höchstens 10 Periodenbeschriftungen in gleichem Abstand (guardrail-spec.md v1.8, Auftrag 46). | 6 | 04.10.2026 | |
| Der ECB-Anbieter liefert Beispiel 4 (EUR/USD monatlich, eine Reihe „Eurozone“ bzw. „Euro area“, keine Länderwahl). | 10 | 04.10.2026 | |
| Line charts choose decimal nice steps and a relevant-range mode with tight bounds and no axis-break marker; bars and columns never truncate; at most 6 ticks (9 if needed, steps 1, 2 and 5 times 10^n since order 46), no unit suffix on ticks, two decimals for money amounts | 6 | 04.10.2026 | |
| Charts stay legible on a phone: at most 10 time labels, horizontal; larger secondary fonts; headline at most two lines | 6 | 04.10.2026 | |
| Standard template has two colour schemes (sand, mint) with brand colours for one and two series; guardrail colour tests cover both | 6 | 05.10.2026 | |
| Der OECD-Anbieter liest SDMX-JSON mit der Länderliste im Datensatz-Pfad und liefert eine monatliche Mehrländer-Reihe aus eingefrorenen Daten. | 10 | noch nie | |
| Der Eurostat-Anbieter liest JSON-stat mit Filtern und liefert harmonisierte Reihen als Linie oder Säule. | 12 | 05.10.2026 | |
| Der Quellenvorrang aus guardrail-spec.md 7 mit der Ergänzung v1.3 wählt zwischen den Quellen einer Gruppe und setzt Fußnote und Definitions-Etikett. | 12,5 | 06.10.2026 | |
| Der Destatis-Anbieter liefert als ersten Indikator die Inflationsrate aus dem Verbraucherpreisindex (Tabelle 61111-0002, Veränderung zum Vorjahresmonat, Deutschland, monatlich). Seit Auftrag 81 liefert er auch Beispiel 2 (BIP-Wachstum, Säulen): Quartale aus Tabelle 81000-0002 zum Vorjahresquartal (Standard) und zum Vorquartal, Jahre aus Tabelle 81000-0001 wie spec.md Beispiel 2. | 14 | 05.10.2026 | |
| Der FRED-Anbieter liefert Beispiel 3 (Leitzins monatlich) mit dem FRED-Pflichthinweis; blockiert bis zum Schlüssel. | 21 | 07.10.2026 | |
| In der Gruppe „Inflationsrate“ wählt der Nutzer bis zu fünf aus allen 27 EU-Mitgliedstaaten, der Eurozone und der EU; Deutschland allein kommt von Destatis, jede andere Auswahl von Eurostat (guardrail-spec.md Abschnitt 7). | 13,5 | 07.10.2026 | |
| Im Standard stehen unter dem Chart nur Pflichtzeilen; Zusatzzeilen sind je Art in den Feineinstellungen zuschaltbar; ist der Textblock höher als 40 % der Zeichenfläche, zeigt der Editor einen Hinweis (guardrail-spec.md Abschnitt 4a). | 10 | 08.10.2026 | |
| Ein Chart mit genau einem Gebiet nennt das Gebiet: Nach dem Laden füllt der Editor das Feld „Untertitel“ mit „{Gebiet}: {Einheit}“, sonst mit der Einheit (guardrail-spec.md Abschnitt 7). | 2,5 | 08.10.2026 | |
| Ein Ausreißer nach Regel K2 unterbricht die Werteachse von Linien sichtbar; Werte jenseits des Bruchs stehen in einem schmalen Teil der Zeichenfläche, ihr wahrer Wert ist an dessen eigenem Maßstab abzulesen (zweigeteilte Werteachse, Form F2, guardrail-spec.md Abschnitt 8a). | 11,5 | 08.10.2026 | |
| Alle Referenz-Renderings der Phase laufen zusammen gegen eingefrorene Daten und sind als Referenzbilder von Olaf abgenommen. | 8 | 16.10.2026 | |
| Rechtliche Klärung Datenquellen und Editor (Olaf entscheidet) | 10 | noch nie | |
| Summe Phase 3 | 231 |
Phase 4: Alle Charttypen, Templates, Brandkit
Zieltermin 23.12.2026 · 3 von 13 Schritten fertig · Aufwand 211 Std.
| Schritt | Status | Aufwand (Std.) | Erstmals grün |
|---|---|---|---|
| Alle Charttypen, Templates und das Brandkit sind umgesetzt. | 90 | noch nie | |
| Symmetrische Ränder, echte Schriftbreiten, typografisches Minus | 16 | 11.10.2026 | |
| Markenprofil: eigene Schrift hochladen, Farben, Logo, Formatvorgaben | 30 | 11.10.2026 | |
| Markenprofil, zweiter Teil: Logo und Formatvorgaben im Markenprofil; eine eigene Schrift lässt sich im Browser hochladen (bisher pnpm brand:add auf dem Server). | 12 | 16.10.2026 | |
| Spinnengrafik: gleiche Achsenskala als Standard, abschaltbar | 6 | 12.10.2026 | |
| Bewertungsindex: Hitzematrix und Punkt auf der Skala, umschaltbar | 20 | 12.10.2026 | |
| Erstes Kundenprofil mit je einem Beispiel pro Form und Sichtabnahme | 10 | noch nie | |
| PWA, Schritt 1: Schalter „pwa“ (aus), Web-App-Manifest (Start /neu, Petrol #106E66, Sand #F4EEE2, standalone) und PNG-Icons aus der Bildmarke mit Hash-Test; der Manifest-Link nur mit dem Schalter (docs/pwa-plan.md 3.1, 3.2). Start nach p6-series-live, nicht vor dem 24.10.2026. | 2 | noch nie | |
| PWA, Schritt 2: eigener Service Worker mit $service-worker von SvelteKit, nur die App-Hülle im Cache (nie Katalogdaten, nie Exporte), ein Cache je Build, Registrierung nur mit dem Schalter „pwa“ (docs/pwa-plan.md 3.3). Nach p4-pwa-manifest. | 5 | noch nie | |
| PWA, Schritt 3: /neu bis 480 px Breite mit Katalog zuerst, Dateiauswahl statt Einfügefeld, Formatvorgaben Quadrat, 9:16 und X, Installationshinweis nach dem ersten fertigen Chart; Texte der Leitplanke unverändert (docs/pwa-plan.md 3.4, 4). Nach p4-pwa-service-worker. | 10 | noch nie | |
| PWA, Schritt 4: Teilen über das Teilen-Menü des Handys (Web Share API) für PNG, MP4 und GIF nach Prüfung mit canShare; sonst Download wie bisher (docs/pwa-plan.md 5). Nach p4-pwa-mobile-flow. | 4 | noch nie | |
| PWA, Schritt 5: Demo-Modus, Kachel „Beispieldaten“ direkt zum fertigen Chart, sichtbare Stoppuhr mit Neustart, nur hinter Anmeldung und Allowlist (docs/pwa-plan.md 6). Nach p4-pwa-share. | 4 | noch nie | |
| PWA, Schritt 6: nach Olafs Freigabe Schalter „pwa“ an, production.prod.ts und volle E2E-Suite grün, Manifest und Service Worker mit tools/live-check.ts geprüft (docs/pwa-plan.md 9). Nach p4-pwa-demo-mode. | 2 | noch nie | |
| Summe Phase 4 | 211 |
Phase 4b: Animation
Zieltermin 04.12.2026 · 9 von 11 Schritten fertig · Aufwand 131 Std.
| Schritt | Status | Aufwand (Std.) | Erstmals grün |
|---|---|---|---|
| guardrail-spec.md enthält die Animationsregeln A1 bis A6 mit den Verweigerungstexten in docs/refusal-texts.md, Stand PROPOSED bis zu Olafs Sichtprüfung. | 12 | 15.10.2026 | |
| packages/render nimmt je Element einen Fortschritt von 0 bis 1 für Reveal, Morph und Pulse an und gibt bei Fortschritt 1 das statische Chart Byte für Byte gleich zurück. | 24 | 15.10.2026 | |
| Chromium nimmt die Bilder mit einer virtuellen Uhr auf, die je Bild genau 1000/fps ms weiterläuft; ffmpeg erzeugt MP4 (H.264, 30 fps, yuv420p) und GIF; zwei Läufe mit derselben Eingabe ergeben Byte für Byte dieselben Dateien. | 20 | 15.10.2026 | |
| Die Galerie zeigt Kandidaten-Videos mit einem Abspieler; /neu zeigt auf Bildschirm 3 eine Video-Vorschau; die Download-Karte zählt Videos wie Dateien; das ZIP der Serie enthält die Videos. | 14 | 15.10.2026 | |
| Animierte Anmerkung „Pfeil/Markierung“ mit Pflichtzahl, erlaubt nur auf einer Werteachse ohne Bruch; ohne Zahl verweigert die Leitplanke in einfachen Worten. | 12 | 16.10.2026 | |
| Videoformate 1:1, 9:16 und 16:9 mit eigenen Platzierungsregeln unter P1 bis P5. | 10 | 16.10.2026 | |
| Hilfeabschnitt „Animation“ und Glossarzeilen (Reveal, Morph, Pulse, Anmerkung) auf Deutsch und Englisch. | 4 | 16.10.2026 | |
| Warteschlange für Videos auf dem Server (spec.md 5.3): eine Serie beliebiger Länge läuft auf dem Server, der Fortschritt kommt durch Abfragen, die Ergebnisse bleiben etwa 7 Tage (spec.md 3.7), die Herkunftsangaben stehen in den Metadaten des Videos; die Grenze von 10 Zeilen (A8) fällt, sobald dieser Schritt grün ist. | 16 | 16.10.2026 | |
| X als Video: das 16:9-Video, auf 1600 × 900 px verkleinert. | 3 | 16.10.2026 | |
| Hintergrundvideo (spec.md 3.7) und Videos in A5 quer, Druck breit, 4:5 und Link-Vorschau, jedes Format mit eigener Prüfung der Platzierung. | 12 | 16.10.2026 | |
| Englische Hilfeseite mit den schon freigegebenen englischen Texten. | 4 | 16.10.2026 | |
| Summe Phase 4b | 131 |
Phase 5: Beleg-Seite, Daten-Download, Provenienz
Zieltermin 31.01.2027 · 2 von 7 Schritten fertig · Aufwand 54 Std.
| Schritt | Status | Aufwand (Std.) | Erstmals grün |
|---|---|---|---|
| Beleg-Seite chartmotor.de/b/<id>: Chart, Quelle, Abrufdatum, Datensatz, Zeitraum, Leitplanken-Version und Statuswerte; kurze, nicht erratbare Id; je Chart öffentlich oder privat, Standard privat; Herkunftsangabe für AI Act Art. 50 (docs/phase-5-plan.md 5.1, guardrail-spec.md 8t). | 15 | 18.10.2026 | |
| Daten-Download der eigenen Daten auf der Beleg-Seite: CSV, XLSX und README mit Zitierhinweis (Vorbild Our World in Data); nur für eingefügte oder hochgeladene Daten, ohne Lizenzklärung; der Eigentümer immer, andere nur auf einer öffentlichen Seite (E-10) (docs/phase-5-plan.md 5.2). | 6 | 18.10.2026 | |
| Beleg-Feinschliff: (a) der Datensatz speichert Kategorie und Reihe je Punkt, damit der Status einer Lücke immer stimmt (143 F-2); (b) Fußnoten und „nicht bewertbar“ stehen auf der Beleg-Seite noch einmal als Text (142 F-3); (c) eine Liste „Meine Belege“ für den Eigentümer (142 F-4) (Entscheidung Olaf 18.10.2026, Auftrag 145, E-6). | 6 | 18.10.2026 | |
| Link ins Bild: SVG und PDF mit echtem Link in der Quellenzeile; PNG mit Kurzlink als Text oder QR-Code unten rechts, zwei Kandidaten, Olaf entscheidet; mit dem Logo unten rechts steht der QR-Code unten links (E-10); die Pflicht-Quellenzeile bleibt unverändert (docs/phase-5-plan.md 5.4). Auftrag 147 (Entscheidung Olaf 18.10.2026): Variante A „app.chartmotor.de/b/<id>“ am Ende der Quellenzeile, Variante B QR-Code unten rechts, mit dem Logo unten rechts links davon (eine Logobreite Abstand); Schalter „evidence-link-in-image“ (aus); guardrail-spec.md 8v v1.92 PROPOSED. | 5 | 18.10.2026 | |
| PDF-Export nach dem Link ins Bild: das Vektor-Chart des SVG-Exports als PDF in der Größe des Formats, Schriften eingebettet, mit dem Link aus 5.4 in der Quellenzeile (Entscheidung Olaf 17.10.2026, E-11; docs/phase-5-plan.md 4a). | 6 | 18.10.2026 | |
| Daten-Download der Katalogdaten je Anbieter hinter einem Freigabe-Schalter, alle aus bis zur rechtlichen Freigabe; Destatis zuerst (DL-DE 2.0 mit Namensnennung), WHO und FRED unbelegt, EZB und Eurostat ungeprüft (docs/phase-5-plan.md 5.3). | 8 | noch nie | |
| Export als Karussell-ZIP, nach dem Link ins Bild (Olaf, 17.10.2026: erst die Beleg-Seite, dann das Karussell). Auftrag 150 (18.10.2026): 2 bis 10 Bilder in einem Format (1:1 oder 4:5), „n/N“ oben rechts, aus einer Seriendatei oder einer Tabelle mit mehreren Reihen, gleiche Achse auf allen Bildern (guardrail-spec.md 8w v1.93 PROPOSED), Schalter „carousel“ (aus). | 8 | 18.10.2026 | |
| Summe Phase 5 | 54 |
Phase 6: Chart first
Zieltermin 31.10.2026 · 19 von 38 Schritten fertig · Aufwand 252 Std.
| Schritt | Status | Aufwand (Std.) | Erstmals grün |
|---|---|---|---|
| Vorschlagsregeln R1 bis R6 (guardrail-spec.md 8m): eine reine Funktion schlägt bis zu drei Charts vor, nur solche, die die Leitplanke annimmt. | 14 | 13.10.2026 | |
| Vorschlags-Galerie: synthetische Testfälle in docs/proposal-cases.md und die Seite vorschlaege.html mit den gezeichneten Vorschlägen. | 8 | 13.10.2026 | |
| Neuer Editor-Ablauf „Chart zuerst“, Stufe 1: Daten rein, Vorschläge, fertiges Chart mit drei Textfeldern, Zeile „Von Chartmotor geprüft“ und Downloads nach Zweck. | 30 | 13.10.2026 | |
| Ende-zu-Ende-Tests auf den neuen Ablauf umgestellt, ohne Abdeckung der Leitplanke zu verlieren. | 12 | noch nie | |
| White-Label-Oberfläche je Markenprofil: Farben, Logo und Schrift der Oberfläche nach der Anmeldung, Kontrastschutz 4,5:1. | 20 | 14.10.2026 | |
| Profilwechsel im Kopf der Seite für Adressen mit mehr als einem Profil; Daten und Texte bleiben. | 6 | 14.10.2026 | |
| Fortschrittsgrafik mit waagerechten Hilfslinien alle 100 Std., senkrechten Hilfslinien an jedem Datum und „Baustart 1.10.“ unten an der Achse. | 2 | 13.10.2026 | |
| /neu nach den Brettern E2 und E3: Kopf mit Zeichen und Schrittanzeige, Karten, Kacheln mit Vorschaubild ohne Text, fertiges Chart in zwei Spalten, Fußzeile mit Hilfe und Impressum. | 10 | 14.10.2026 | |
| Formatauswahl „Herunterladen“: mehrere Formate mit einem Klick, je Format eine eigene Datei über das unveränderte /export, Auswahl für die Sitzung gemerkt. | 8 | 14.10.2026 | |
| Format für X: das 16:9-Chart, auf 1600 × 900 px verkleinert, nur PNG. | 2 | 14.10.2026 | |
| Gruppierte Balken: die erste Reihe steht oben in jeder Gruppe, wie in der Legende (guardrail-spec.md 8j v1.60). | 3 | 14.10.2026 | |
| Formatzeilen nur mit Namen; ein runder Knopf „i“ je Zeile öffnet Größe, Dateitypen und Verwendung; Hilfe-Abschnitt 6 als Tabelle „Formate“; das Quadrat auch als SVG. | 4 | 14.10.2026 | |
| Seitenhintergrund: Chartmotor #E1EAE6 mit Mint-Ton, Kundenprofile ohne eigenen Hintergrund neutral #E4E8E6; jeder Text mindestens 4,5:1. | 2 | 14.10.2026 | |
| Die Hilfeseite /hilfe hat Kopf, Schrift, Seitenhintergrund und Fußzeile wie /neu; die Hilfetexte bleiben unverändert. | 2 | 14.10.2026 | |
| Serie aus einer Datei in /neu: jede Zeile einer Excel-, CSV- oder TSV-Datei wird ein Chart (höchstens 200), jedes Chart wie ein einzelnes geprüft, alle Dateien in einem ZIP; Regeln S1 bis S5 (guardrail-spec.md 8n v1.61, freigegeben am 14.10.2026), hinter der Funktion „series-batch“. | 10 | 14.10.2026 | |
| Bewertungsskala 0 bis 5: 0 heißt „nicht bewertbar“. Die Spinne lässt die Achse aus und nennt sie in einer Pflichtzeile, der Bewertungsindex verweigert die 0 (auch mit 3 Stufen); Achsen in der Reihenfolge der Spalten (guardrail-spec.md 8o B1 bis B3, APPROVED 14.10.2026). Funktion „rating-not-rated“ an seit dem Nachtrag zu Auftrag 108; Referenzbild spider-not-rated. | 4 | 14.10.2026 | |
| Zeile unter dem Chart für eigene Daten in /neu: „Quelle“ (gedruckt als „Quelle: …“) oder „Hinweis“ (gedruckt wie eingegeben), im einzelnen Chart und einmal für eine Serie; Katalogdaten behalten ihre Quellenzeile (guardrail-spec.md 8o N1 und N2, APPROVED 14.10.2026). | 3 | 14.10.2026 | |
| Serie aus einer Excel-Datei mit mehreren Tabellenblättern: dieselbe Auswahl „Tabellenblatt“ wie im einzelnen Ablauf über „Charttyp“, erstes Blatt als Standard; „{m} Charts gefunden“ folgt dem gewählten Blatt. | 2 | 14.10.2026 | |
| Format „Instagram Hochformat“ 1080 × 1350 px (4:5) in /neu und in der Serie: PNG ohne dpi, Grundschrift des Quadrats; das Chart ist Byte für Byte das Quadrat-Chart auf 1080 × 1350 (guardrail-spec.md 8p v1.63, APPROVED 15.10.2026). | 2 | 14.10.2026 | |
| Format „Link-Vorschau“ 1200 × 630 px (1,91:1) in /neu und in der Serie: PNG ohne dpi, Schrift des Quadrats mal 1200/1080, Überschrift höchstens eine Zeile, höchstens 8 Beschriftungen der Zeitachse, Regel P5 für die Zeichenfläche, nicht für Spinne und Bewertungsindex (guardrail-spec.md 8p v1.63, APPROVED 15.10.2026). | 3 | 14.10.2026 | |
| Format „Druck breit“ 170 × 100 mm in /neu und in der Serie: PNG mit 300 dpi (2008 × 1181 px, pHYs) oder SVG in mm, Schriftgrößen in pt wie A5 quer, jeder Text mindestens 8 pt (guardrail-spec.md 8p v1.63, APPROVED 15.10.2026). | 3 | 14.10.2026 | |
| Eingefügte oder hochgeladene Quartale und Monate (deutsche und englische Namen, Zahlenformen) sind in /neu eine Zeitachse wie bei Katalogdaten: Jahreszahl in der Mitte des Jahres, höchstens 10 Beschriftungen; eine Zelle ohne erkannte Form lässt die Spalte Text, mit Hinweis (guardrail-spec.md 8q v1.64, APPROVED 15.10.2026). | 4 | 14.10.2026 | |
| Serie mit mehreren Reihen je Zeile: Kopfzellen „Kategorie|Reihe“ (alle oder keine); jedes Chart mit den Reihengrenzen eines einzelnen Charts, eine Zeile über der Grenze verweigert, die Serie läuft weiter (guardrail-spec.md 8n S6 v1.65, APPROVED 15.10.2026). | 4 | 14.10.2026 | |
| Die Serie geht live: Schalter „series-batch“ an, Serien-Vorlage unter /vorlagen, Hilfeabschnitt zur Serie (Olaf, 15.10.2026: beim Livegang; docs/series-plan.md Abschnitt 8). | 4 | 18.10.2026 | |
| Hinweis in /neu über den Vorschlägen, wenn eine Tabelle mit „Titel“ in der ersten Zelle und mindestens drei Datenzeilen kommt: „Jede Zeile ein eigenes Chart? Dann „Serie aus einer Datei“ wählen.“; der Knopf öffnet die Serie mit demselben Text oder derselben Datei. | 2 | 14.10.2026 | |
| Mehrere Nutzer, Schritt 1: Schalter „organisations“ (aus), Tabellen Organisation und Mitgliedschaft (Rolle admin oder member) in der Datenbank von auth.ts, Werkzeuge org:enable, org:disable und org:migrate (nur Probelauf) (docs/multi-user-plan.md 3, 4, 7). Start nach p4-pwa-release. | 6 | noch nie | |
| Mehrere Nutzer, Schritt 2: Anmeldung und Sitzung lesen mit dem Schalter die Mitgliedschaft; ein Nicht-Mitglied bekommt dieselbe Antwort wie heute; Entfernen beendet die Sitzung bei der nächsten Anfrage (docs/multi-user-plan.md 4). Nach p6-org-model. | 5 | noch nie | |
| Mehrere Nutzer, Schritt 3: Markenprofile gehören der Organisation; /neu, /export, /video und /brand/<id> nehmen die Profile der Organisation; ein fremdes Profil bleibt 403 (docs/multi-user-plan.md 3). Nach p6-org-login. | 5 | noch nie | |
| Mehrere Nutzer, Schritt 4: Seite /organisation für den Admin: Mitglieder mit Rolle und Datum, hinzufügen, entfernen, Rolle wählen; der letzte Admin ist geschützt; Texte PROPOSED (docs/multi-user-plan.md 4). Nach p6-org-brand-profiles. | 8 | noch nie | |
| Mehrere Nutzer, Schritt 5: jeder neue Beleg trägt die Organisation; Liste „Belege der Organisation“ für alle Mitglieder; öffentliche Belege bleiben für jeden sichtbar; Übernahme der alten Belege (docs/multi-user-plan.md 3, 6, 7). Nach p6-org-admin-ui. | 4 | noch nie | |
| Mehrere Nutzer, Schritt 6: nach Olafs Freigabe Sicherung des Datenordners, org:migrate (jede Adresse wird eine Organisation mit einem Mitglied als Admin), Schalter „organisations“ an, production.prod.ts und volle E2E-Suite grün (docs/multi-user-plan.md 7, 8). Nach p6-org-evidence. | 2 | noch nie | |
| FRED nach den Nutzungsbedingungen (Entscheidungen Olaf vom 19.10.2026, Auftrag 164): Beleg ohne Werte mit Prüfsumme, Link und Lizenz-Tag; kein Zwischenspeicher; Positivliste nach Tags (citation required/requested); keine Suchliste; Migration alter Belege (tools/evidence/migrate-fred-records.ts); Regeln guardrail-spec.md 6f (PROPOSED), Texte PROPOSED. | 10 | 19.10.2026 | |
| Schlüsseltresor für persönliche Schlüssel (Auftrag 168, docs/secret-store.md): AES-256-GCM, Schlüssel je Name per HKDF aus CHARTMOTOR_SECRET_KEY, Dateien je Nutzer im Datenordner; ohne Server-Geheimnis „nicht eingerichtet“ ohne Absturz; darauf der eigene FRED-Schlüssel je Nutzer auf /profil (Schalter „fred-source“); Regel guardrail-spec.md 6f R7 und Texte PROPOSED. | 8 | 19.10.2026 | |
| Lesendes Prüfwerkzeug für Datenquellen (Auftrag 172): node tools/probe-source.ts <Adresse> [--out tmp/probe-<Name>.json]; nur Hosts der Erlaubnisliste, kein Schlüssel in der Adresse, GET mit 15 Sekunden Zeitgrenze und höchstens einer Weiterleitung; schreibt nur eine Zusammenfassung (Status, Typ, Titel, Feldnamen, erste drei Beobachtungen), nie die ganze Antwort. | 2 | 19.10.2026 | |
| Neuer Anbieter Deutsche Bundesbank (Statistik-Schnittstelle): Aktienindizes, Dividendenrendite und KGV-Aggregate, monatlich; Plan, Aufnahme-Werkzeug mit synthetischen Fixtures, Anbieter mit Status je Wert, Rechte- und Lizenzprüfung, Katalogeinträge, Texte PROPOSED, Muster als Kandidaten. Kalibriert an p3-destatis (14 h) und p3-eurostat (12 h). Seit Auftrag 171 (Entscheidung Olaf 19.10.2026): zuerst nur Reihen der Bundesbank selbst (EUR/USD, Hauptrefinanzierungssatz, Bundeswertpapiere 10 Jahre), hinter dem Schalter „source-bundesbank“. | 14 | 20.10.2026 | |
| Weitere Reihen aus dem ECB Data Portal auf Grundlage des vorhandenen EZB-Anbieters (p3-ecb, 10 h): Plan, Auswahl der Reihen, Prüfung der Nutzungsbedingungen, Katalogeinträge, synthetische Fixtures, Texte PROPOSED, Muster als Kandidaten. | 8 | 19.10.2026 | |
| Linie im Chart (Auftrag 177, Entscheidungen Olaf vom 20.10.2026 04:55 und 05:25; guardrail-spec.md 8l L-1 bis L-5 v2.08 PROPOSED): Feineinstellung in /neu für das einzelne Chart und die Serie, „keine“ / „Ø der gezeigten Werte“ / „Eigener Wert“ mit Wert und Beschriftung; eine gestrichelte Referenzlinie bei Linie, Säule und Balken; Export trägt sie; hinter dem eigenen Schalter „reference-line“ (aus). | 6 | 20.10.2026 | |
| Feineinstellungen für Fähigkeiten des Renderers, die /neu nie anbot (Auftrag 178, Entscheidung Olaf 20.10.2026 05:19 und 05:25; guardrail-spec.md v2.09 PROPOSED): „Werteachse: fest“ (schneidet nie ab), „Zahlenformat: Geldbetrag“, „Titel bis drei Zeilen“, „Wertbeschriftungen“ (alle / nur letzter Wert), „Anmerkung“ und „Stufennamen“ des Bewertungsindex; einzelnes Chart und Serie; je ein eigener Schalter (alle aus). | 10 | 20.10.2026 | |
| Summe Phase 6 | 252 |
Phase 7 — Wunschliste (zählt nicht zum Produkt)
Kein Zieltermin · 0 von 12 Schritten fertig · Aufwand 183 Std.
| Schritt | Status | Aufwand (Std.) | Erstmals grün |
|---|---|---|---|
| 7.0 Zeichnung einer gerechneten Reihe: kein neuer Status, die ganze Reihe hat den bestehenden Status „abgeleitet“, gestrichelt ohne Punktzeichen, Legendenzusatz „(gerechnet)“ / „(computed)“; Voraussetzung für 7.1 und 7.4; Entscheidung Olaf 17.10.2026, E-2 (docs/phase-7-wishlist.md, guardrail-spec.md 8s). | 4 | noch nie | |
| 7.1 Nachlaufender gleitender Durchschnitt: Fenster nach Frequenz (12 Monate, 4 Quartale, bei Jahren nicht angeboten), erste n−1 Stellen leer, nie still verkürzt, Status „abgeleitet“, gezeichnet nach 7.0. | 5 | noch nie | |
| 7.2 Logarithmische Achse: nur Linie, alle Werte größer als 0, sonst Ablehnung; Pflichtzeile „Logarithmische Skala: gleiche Abstände bedeuten gleiche prozentuale Veränderung.“; Striche 1 · 2 · 5 je Dekade. | 6 | noch nie | |
| 7.3 Streudiagramm: neuer Typ im selben Renderer, zwei Zahlenspalten, Punktbeschriftung alle, keine oder nur Ausreißer; gefüllt = belegt, hohl = Näherungswert; Vorbild nötig. | 15 | noch nie | |
| 7.4 Regressionsgerade: nur auf Wunsch, nie über den Datenbereich hinaus, n und R² im Bild oder in der Fußnote, Ablehnung unter 8 Punkten, Status „abgeleitet“, gezeichnet nach 7.0; nach 7.0 und 7.3. | 5 | noch nie | |
| 7.5 Small Multiples: gleiche Skala und gleiche Null in allen Feldern, Raster 4 × 4, 3 × 9, 5 × 8; mehr als fünf Reihen werden ein Angebot statt einer Ablehnung; Vorbild nötig. | 20 | noch nie | |
| 7.9 Punktmatrix: Zeilen = Gebiete, Spalten = Zeit, Kreisfläche proportional zum Wert, Farbe = zweite Größe in genau 5 Klassen, beide Legenden im Bild, keine Werte im Bild, Lücke = leere Zelle mit Fußnote; gebündelt mit 7.5 ab sechs Reihen; Vorbild bei Olaf. | 12 | noch nie | |
| 7.6 Karten (Choroplethen): kein Bauauftrag, kein Prototyp und kein Vorbild-Rendering vor der schriftlichen Freigabe je Geodatenquelle zu vier Fragen; flächentreue Weltkarten, Klassen als Pflichtzeile; Vorbild nötig. | 50 | noch nie | |
| 7.7 Einbettung mit Mouseover: von Chartmotor gehostetes Snippet, lebendes SVG mit Tooltip, eingefrorener Stand mit Abrufdatum; öffentliche Anzeige von Katalogdaten erst nach Freigabe je Anbieter; nur auf Kundenwunsch. | 40 | noch nie | |
| 7.8 Dekorativer Verlauf (Markenprofil): freiwilliges Feld colors.seriesGradient, geprüft von pnpm brand:check; nur eine Reihe, beide Endfarben 4,5:1 und Farbtests gegen Hintergrund und Palette, Richtung entlang der Balkenlänge (hell → dunkel oder umgekehrt: beide als Kandidaten), nur Säulen und Balken; nie vorgeschlagen. | 4 | noch nie | |
| 7.10a Kachelkarte: gleiche Kacheln an festen Plätzen je Gebietsliste (16 Länder, 27 EU-Staaten, 12 Berliner Bezirke), Farbe = Anteil in genau 5 Klassen, Legende und Klassenmethode Pflicht; keine Geodaten, keine Lizenz; Vorbild nötig (Vorbild fehlt). | 8 | noch nie | |
| 7.10b Rechteck-Kartogramm: Rechteckfläche proportional zur Menge, Farbe = Anteil, zwei Legenden, feste Anordnung je Gebietsliste ohne Überlappung, Mindestfläche eine Zeile der Achsenschrift (darunter Hinweislinie), Lücke = leeres Rechteck mit Fußnote, keine Werte im Bild; Vorbild bei Olaf. | 14 | noch nie | |
| Summe Phase 7 | 183 |