2026-09-16 14:17:25 +02:00
# Projektstatus und offene Punkte — Assignment Monitor V2
2026-07-02 10:10:06 +02:00
2026-09-16 14:17:25 +02:00
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.
2026-07-02 10:10:06 +02:00
---
2026-09-16 14:17:25 +02:00
## 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 ↔ |
2026-07-02 10:10:06 +02:00
2026-09-16 14:17:25 +02:00
### Cascade-Plan (Kurz)
2026-07-02 10:10:06 +02:00
2026-09-16 14:17:25 +02:00
| Paket | Status |
2026-07-02 10:10:06 +02:00
|---|---|
2026-09-16 14:17:25 +02:00
| 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 ).
2026-07-02 10:10:06 +02:00
---
2026-09-16 14:17:25 +02:00
## 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
2026-07-02 10:10:06 +02:00
2026-09-16 14:17:25 +02:00
| 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 |
2026-07-02 10:10:06 +02:00
2026-09-16 14:17:25 +02:00
### Erledigt / obsolet (nicht wieder öffnen)
2026-07-02 10:10:06 +02:00
2026-09-16 14:17:25 +02:00
| 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 |
2026-07-02 10:10:06 +02:00
2026-09-16 14:17:25 +02:00
---
2026-07-02 10:10:06 +02:00
2026-09-16 14:17:25 +02:00
## Empfohlene Reihenfolge
2026-07-02 10:10:06 +02:00
2026-09-16 14:17:25 +02:00
```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
```
2026-07-02 10:10:06 +02:00
---
2026-09-16 14:17:25 +02:00
## 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 |
2026-07-02 10:10:06 +02:00
---
2026-09-16 14:17:25 +02:00
## Dokumentations-Landkarte
2026-07-02 10:10:06 +02:00
2026-09-16 14:17:25 +02:00
| 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 |