Files
planer/ROADMAP.md
T
Florian WildeandClaude Opus 5 475b1d5c08 docs: Handbuchseite, README und Fahrplan fuer M6
Der Wartungsplaner steht als offener Punkt drin, nicht als Haken.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 04:51:38 +02:00

7.1 KiB
Raw Permalink Blame History

Fahrplan

Acht Meilensteine. Jeder endet mit einer lauffähigen Version auf main, grünen Prüfungen, aktueller Dokumentation und einem Eintrag im DEVLOG.

Meilenstein Ziel Status
M1 Fundament erledigt
M2 Aufgaben und Projekte erledigt
M3 Kalender lesen erledigt
M4 Wochenplanung und Zeitblöcke erledigt
M5 Benachrichtigungen erledigt
M6 Integrationen erledigt
M7 Schnellerfassung und API geplant
M8 MCP geplant

M1 – Fundament

Erledigt am 10.09.2026 mit Version 0.1.0.

Ziel: Ein angemeldeter, betreibbarer Rumpf. Noch keine Aufgaben, kein Kalender — aber alles, worauf die späteren Meilensteine aufsetzen.

  • Projektgerüst: Next 16, React 19, TypeScript strict, Tailwind 4
  • npm run pruefen: Prettier, ESLint, tsc, Vitest, ShellCheck
  • Datenmodell für Anmeldung, Passkeys, Bereiche und Audit
  • Anmeldung über OIDC, Passkey und wahlweise Passwort
  • Rollen BENUTZER und ADMIN, serverseitig in Seite und Server Action
  • Audit-Eintrag je schreibender Aktion, Details werden gesäubert
  • Instanzsteuerung INSTANZ=firma|daheim mit 404 statt Hinweis
  • Bereiche verwalten: Farbe, Arbeitsfenster, Tageskapazität
  • Protokollseite für die Verwaltung
  • /api/health mit Status, Version und Instanz
  • Dockerfile, Compose-Stapel mit eigenem Migrationsdienst
  • backup.sh, update.sh, scripts/release.sh, scripts/zeit.sh
  • Unit-, Integrations-, Migrations- und E2E-Tests
  • Screenshot-Kette mit eigener Wegwerf-Instanz
  • README, Schnellstart, Handbuch, CHANGELOG, DEVLOG

Bewusst verschoben: Aufgabe und Zeitblock kommen mit M2 und M4, Kalenderkonto mit M3 — jeweils mit den Feldern, die der Provider dann wirklich braucht, statt heute geraten.

M2 – Aufgaben und Projekte

Erledigt am 10.09.2026 mit Version 0.2.0.

Ziel: Alles erfassen und wiederfinden, noch ohne Kalender.

  • Aufgabe mit Typ, Status, Priorität, Aufwand, Fälligkeit, Quelle
  • Eindeutigkeit [quelle, quelleRef], Integrationen upserten
  • Inbox: schnell erfassen, später einsortieren
  • Ideen getrennt von Aufgaben
  • Projekte mit Arbeitspaketen und Meilensteinen
  • Listen mit Filtern nach Bereich, Status und Fälligkeit
  • Handbuchseiten und Bilder

Bewusst offen gelassen: Kein Wiederholungsrhythmus für Aufgaben und keine Verknüpfung von Aufgaben untereinander — beides steht unter „Ideen für später" und wartet darauf, ob es im Alltag wirklich fehlt.

M3 – Kalender lesen

Erledigt am 10.09.2026 mit Version 0.3.0.

Ziel: Termine aus Microsoft 365 und Google sehen.

  • Kalenderkonto mit Anbieter, Tokens und Delta-Verweis
  • OAuth-Verbindung je Instanz: Graph immer, Google nur daheim
  • Graph-Delta-Sync und Google-Sync über fetch, Antworten mit zod geprüft
  • Ganztägige Termine zählen nicht zur Belegung
  • Anonymisierte Beispielantworten in test/fixtures/
  • Hintergrundjob mit node-cron

M4 – Wochenplanung und Zeitblöcke

Erledigt am 11.09.2026 mit Version 0.4.0.

Ziel: Aufgaben per Ziehen und Ablegen in den Kalender schreiben — und Verschiebungen von dort zurückholen.

  • Zeitblock an genau einer Aufgabe und einem Kalenderkonto
  • Wochenansicht mit @dnd-kit/core
  • Schreiben in den Kalender, Rückweg beim Verschieben
  • Schleifenschutz über hash = sha256(startISO|endeISO)
  • Konflikte: der Kalender gewinnt (HTTP 412 auf If-Match)
  • Belegung gegen die Tageskapazität des Bereichs

Bewusst offen gelassen: Die Dauer lässt sich nicht am Balken ziehen, und ein Zeitblock landet immer im ersten verbundenen Kalender. Beides steht unter "Ideen für später" — erst zeigt der Alltag, ob es wirklich fehlt.

M5 – Benachrichtigungen

Erledigt am 11.09.2026 mit Version 0.5.0.

Ziel: Sagen, was ansteht — und dabei so selten stören, dass niemand auf die Idee kommt, alles abzuschalten.

  • Web-Push mit web-push, Anmeldung je Browser
  • Tagesüberblick per E-Mail über nodemailer
  • Erinnerungen an Fälligkeiten und vor Zeitblöcken, Jobs über node-cron
  • Je Benutzer einstellbar, mit Ruhezeiten über Mitternacht
  • Wiederholungssperre je Anlass, Sache und Tag
  • Abgleichfehler erst nach mehreren Versuchen hintereinander

Bewusst offen gelassen: Keine Sammelmeldung mehrerer Anlässe in einer Nachricht und kein Nachholen dessen, was in die Ruhezeit fiel. Eine Erinnerung an einen Zeitblock, der längst begonnen hat, hilft niemandem.

M6 – Integrationen

Erledigt am 12.09.2026 mit Version 0.6.0.

Ziel: Aufgaben dort abholen, wo sie entstehen — ohne dass die Planung darunter leidet, die hier passiert.

  • Gemeinsame Aufnahmestelle: jede Integration liefert nur Funde
  • Zammad (nur firma), lesend
  • Wartungsplaner-API — Schnittstelle steht noch nicht fest
  • Telegram (nur daheim): erfassen, melden, abhaken
  • Spiegel: firma sendet, daheim empfängt
  • Jede Integration upsertet über [quelle, quelleRef]

Offen geblieben: Der Wartungsplaner ist nicht angebunden. Die Aufnahmestelle steht bereit und die Seite „Integrationen" führt ihn als sichtbare Lücke; es fehlt allein das Abholen, und dafür muss erst feststehen, was das Produkt an Schnittstelle hergibt.

Bewusst offen gelassen: Zammad wird nur gelesen. Ein Ticket schließt man im Ticketsystem — sonst weiß die Kollegin nicht, warum es plötzlich zu ist.

M7 – Schnellerfassung und API

  • Erfassung vom Handy, auch offline
  • Öffentliche API mit Token je Anwendung
  • Rechte je Token, jede Nutzung im Protokoll

M8 – MCP

  • MCP-Server über @modelcontextprotocol/sdk
  • Lesen und Anlegen von Aufgaben und Zeitblöcken
  • Rechte wie bei der API, jede Nutzung im Protokoll

Ideen für später

  • Auswertung: wie viel Zeit ging tatsächlich in welchen Bereich
  • Wiederkehrende Aufgaben mit eigenem Rhythmus
  • Vorlagen für wiederkehrende Projekte
  • Verknüpfung von Aufgaben untereinander (blockiert, gehört zu)
  • Export der eigenen Daten als JSON

Bewusst nicht geplant

  • Wiederkehrende Wartungsaufgaben mit Nachweispflicht. Die bleiben im Wartungsplaner. Der Planer liest nur Fälligkeiten über dessen API.
  • Mehrbenutzerbetrieb mit geteilten Aufgaben. Der Planer ist für eine Person gedacht; Kollegen melden sich in der Firmeninstanz nur an ihren eigenen Daten an.
  • Eigene Kalenderdarstellung als Ersatz für Outlook. Der Planer schreibt in die vorhandenen Kalender, er ersetzt sie nicht.
  • Zeiterfassung zur Abrechnung. Dafür gibt es andere Werkzeuge.