Sichert den lokalen Entwicklungsstand nach Gitea: Nav/Dashboard, Personen-Excel/Archiv, Team-Setup, Assignment-Übergabe und C6/C7/T2. Co-authored-by: Cursor <cursoragent@cursor.com>
170 lines
7.3 KiB
Markdown
170 lines
7.3 KiB
Markdown
# 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 |
|