CG-Feedback-Monitor/docs/STATUS_UND_OFFENE_PUNKTE.md

170 lines
7.3 KiB
Markdown
Raw Permalink Normal View History

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