# Projektstatus und offene Punkte — Assignment Monitor V2 Stand: **2026-08-16** (Abgleich Code + Session) · nur DEV (`AssigmentMonitorV2`) · Produktiv unberührt Kanonische Einstiege: [`HANDOVER.md`](./HANDOVER.md) · Isolation: [`DEV_ISOLATION.md`](./DEV_ISOLATION.md) · Feedback-Arbeitsliste: [`FEEDBACK_CASCADE_PLAN.md`](./FEEDBACK_CASCADE_PLAN.md) > Ältere STATUS-Stände (Juli 2026, IndexedDB/WASM/Enum-Skala) sind **ersetzt**. Offene Punkte unten sind gegen den Code abgeglichen. --- ## Kurzfazit Die V2-App ist für den DEV-/Team-Einsatz **funktional weitgehend fertig**: Skala 1–10, Meetings/Checklisten/Tagging, Feedback-KI-Kaskade A→B, Starter-ZIP, Assignment-Übergabe. **Heute erledigt:** … **UX.3 Teil 1**; **Personen v2** (E-Mail, Gruppen-CRUD, Verschieben, Excel-Import, Archiv, Detail inkl. Entwicklung, Lösch-Kaskade). **Als Nächstes:** Meeting-Polish (UX.4); parallel optional T4. --- ## Implementierungsstatus (Ist) ### Kernplattform | Feature | Status | Ort | |---|---|---| | React 19 + Vite PWA, Router 7, Tailwind v4 | ☑ | `package.json`, `src/` | | Express + `node:sqlite`, RPC `POST /api/rpc` | ☑ | `server/` | | 26 Tabellen via `tableRegistry` (Schema + Backup) | ☑ | `server/db/tableRegistry.ts` | | Client-Queries 1:1 Server-Queries | ☑ | `src/db/queries/`, `server/db/queries/` | | DEV-Ports 5174/4001, Pfad-Guards | ☑ | `.env.example`, `database.ts` | | Dexie/IndexedDB-Legacy | ☑ entfernt | kein `dexie`, kein `schema.ts`/`seeds/` | ### Bewertung & Meetings | Feature | Status | Ort | |---|---|---| | Skala 1–10, Farbbänder, ScorePicker | ☑ inkl. Smoke (C0) | Config → Skala, `constants.ts`, `npm run smoke` | | Meeting-Kategorie-Scores | ☑ | `meetingCategoryRatings` | | Protokoll + Notation (führende Zahl), Füllwörter | ☑ | `ConversationTab`, `notationParser` | | Kriterium-Tags Zeile / allgemeine Notizen | ☑ | `lineTags`, `generalNoteTags` | | Checklisten (Config + Meeting + Export) | ☑ | `ChecklistTab`, `checklists` RPC | | Papierkorb/Archiv Assignments + Meeting-Trash | ☑ | Dashboard, Detail | | Gesamtprotokoll Historie | ☑ | `MeetingHistory.tsx` | | PDF Assignment-Report + Institutee-Feedback | ☑ | `pdfExport.tsx` | | MD/JSON Meeting-Export | ☑ | `meetingExport.ts` | ### Feedback & KI | Feature | Status | Ort | |---|---|---| | Benefits/Concerns Kategorie + Dimension | ☑ Code · Smoke ☐ (T4) | `AssignmentFeedbackPage`, Schema | | KI-Kaskade Stufe A (Cat) → B (Dim) | ☑ | `aiPrompt.ts`, Config → KI-Prompts | | Tagging Protokoll (`ZEILE n:`) inkl. Zeichen-/Zeilen-Batches | ☑ | `taggingBatches.ts`, `MeetingView.analyzeSuggestions` | | Checklisten-Tagging (`PUNKT n:`) gebatcht | ☑ | `checklistTagging.ts` | | KI-Client: Timeout, Retry, Prompt-Größen-Guard | ☑ | `aiClient.ts`, `AI_CONFIG` | | Typ → sichtbare Struktur | ☑ | `resolveVisibleStructure` | ### Verteilung & Übergabe | Feature | Status | Ort | |---|---|---| | Starter-Struktur ohne Personen | ☑ | `docs/starter/`, `npm run setup` | | Team-ZIP | ☑ | `npm run pack:zip`, `EINRICHTUNG.md` | | Laptop-Umzug ZIP | ☑ | `npm run pack:laptop`, `UMZUG.md` (Code + volle DB) | | Assignment-Übergabe Export/Import | ☑ | `assignmentTransfer`, Detail ↔ / Dashboard ↔ | ### Cascade-Plan (Kurz) | Paket | Status | |---|---| | 0 Smoke Skala | ☑ | | 1 / 1b / 2 / 3 | ☑ | | 4 / 5 UI+PDF Benefits | ☑ Code · Smoke ☐; 5.3 MD/JSON-Feedback ☐ | | 6 Tagging-Batches | ☑ | | 7 KI-Robustheit | ☑ | | 8.3 Dexie-Legacy | ☑ | | UX-Paket | UX.1–UX.3 Teil1 ☑ · Personen v2 ☑ · UX.4–UX.8 ☐ | Details und Checkboxen: [`FEEDBACK_CASCADE_PLAN.md`](./FEEDBACK_CASCADE_PLAN.md). --- ## Offene Punkte (priorisiert) ### Hoch / als Nächstes sinnvoll | ID | Thema | Hinweis | |---|---|---| | **T4** | Cascade 4/5 Feinschliff | Benefits/Concerns UI+PDF smoke; optional 5.3 MD/JSON Assignment-Feedback | ### Mittel | ID | Thema | Hinweis | |---|---|---| | **T1** | npm-Deprecations / Audit | z.B. ungenutztes `recharts`, transitive Warnungen — beim nächsten Release/ZIP | | **T5** | Evaluation / FeedbackDraft Legacy | an 1–10 + Benefits anpassen oder deprecaten (Cascade 8.5) | | **T3** | Backup-Reminder nach Meeting | nie gebaut | | **T6** | Datenschutz Tagging+Feedback (externe API) | vor Produktivnutzung organisatorisch | ### Niedrig | ID | Thema | Hinweis | |---|---|---| | **N1** | `instituteeEnrollments` schon beim Anlegen | Create vs. nur Edit | | **N2** | Assignment-Nummer in URL | Nice-to-have | | **N3** | Notation-Schnellbuttons / mobile Hit-Areas | Cascade 8.2 / UX | | **N4** | UX-Paket (Cascade) | UX.1–UX.3 Teil1 ☑ · Personen v2 ☑ · UX.4 Meeting offen | | **N5** | Server seed-if-empty | weitgehend durch Starter/`setup` ersetzt — optional | ### Erledigt / obsolet (nicht wieder öffnen) | ID / Thema | Status | |---|---| | **C0** Smoke Skala 1–10 | ☑ 2026-08-16 — `npm run smoke` (31 pass) + Abnahme | | **C6** Tagging-Batches | ☑ 2026-08-16 — `taggingBatches.ts`; Limits in `AI_CONFIG` | | **C7** KI-Client Timeout/Retry/Prompt-Guard | ☑ 2026-08-16 — `aiClient.ts` | | **T2** Dexie/IndexedDB-Legacy | ☑ 2026-08-16 — Dependency + `schema.ts` + `seeds/` entfernt | | Cascade 1 / 1b / 2 / 3 | ☑ Benefits-Schema, Sichtbarkeit, KI A→B | | IndexedDB → SQLite WASM + OPFS | Obsolet — lokaler Server + SQLite | | `db/queries/`-Layer fehlt | ☑ 2026-07-04 | | Selbstlernendes Tagging „Idee“ | Basis + Batches erledigt | | Prompt-System Neubau „ungescoped“ | Stufe A/B + Config erledigt | | Enum-Skala Client-Ready | Abgelöst durch 1–10 | | KI „komplett kaputt“ (alter Monolith) | Architektur ersetzt | ### Produktiv-Kontext (nicht V2-Dev) | Thema | Hinweis | |---|---| | Echtdaten-Migration Produktiv → ggf. späteres System | V2 eigene DB + Starter; Produktiv-Ordner unangetastet lassen | --- ## Empfohlene Reihenfolge ```text UX.4 Meeting · UX.5 Feedback · UX.6 Config · UX.7–8 → T4 Cascade 4/5 Smoke + ggf. 5.3 → T1 npm-Bereinigung (nächstes Team-ZIP/Release) → T5 Legacy Evaluation/FeedbackDraft (oder deprecaten) → T6 Datenschutz vor Prod ``` --- ## Bekannte Konsistenz-Risiken | Risiko | Mitigation | |---|---| | Verwaiste IDs in `criteriaIds` / Tags nach Kriterium-Löschung | Cascade/`reassign` in Feedback-Struktur-Config | | Assignment-Übergabe braucht passende Feedback-Struktur auf dem Ziel | Gleicher Starter; Import mappt per Name | | Checkliste ↔ Assessment | Kein Auto-Spiegel; Evidence über Primärquellen | | Voll-Backup-Import = Wipe | Nicht mit Assignment-Übergabe verwechseln | | Sehr lange Einzelzeile im Protokoll | Wird nicht mitten im Text gesplittet — eigener Batch / Struktur-Verengung / Hard-Limit | --- ## Dokumentations-Landkarte | Doc | Rolle | |---|---| | `HANDOVER.md` | Session-Einstieg, Stack, Fallstricke | | `STATUS_UND_OFFENE_PUNKTE.md` | **Diese Datei** — Ist + Offene Punkte (kanonisch) | | `SMOKE_TESTS.md` | Automatisierter `npm run smoke` + manuelle UI-Checkliste (C0/C6/T4) | | `DEV_ISOLATION.md` | Ports, Guards, Produktiv-Trennung | | `TEAM_SETUP.md` / `EINRICHTUNG.md` | Kollegen-Onboarding / ZIP | | `SCALE_1_TO_10.md` | Skalen-Konzept | | `FEEDBACK_CASCADE_PLAN.md` | Feature-Arbeitsliste Feedback/KI | | `CLAUDE.md` | Agent-Regeln + lange Erledigt-Historie | | `FACHLICHE_` / `TECHNISCHE_ARCHITEKTUR.md` | Historisch — bei Widerspruch HANDOVER/STATUS/Code gewinnen |