2026-08-08 17:35:05 +02:00
# Konzept: Bewertungsskala 1– 10 (AssignmentMonitorV2)
Stand: 2026-08-06 · nur DEV (`AssigmentMonitorV2`), Produktiv unberührt.
## Festgezogene Entscheidungen
| # | Entscheidung |
|---|---|
| Skala | **1– 10** , ganzzahlig; `null` = nicht gesetzt (kein N/A-String mehr) |
| Primäre Ebene | **Kategorie** — Meeting-Bewertung und Assignment-Feedback setzen den Score hier |
| Kriterien | Primär **Beobachtungen** (Tags, Notizen, Gewichtung); nicht die Pflicht-Bewertungsebene |
| Warum Kategorie direkt? | Nicht alle Kriterien sind in jedem Meeting beobachtbar → Score darf **nicht** nur aus Kriterien-Ø abgeleitet werden müssen |
| Notation | Führende Zahl `1` – `10` am Zeilenanfang; **keine** `+` / `!` / `(+)` / `(!)` mehr; `>` Zitat und `[…]` Abschnitte bleiben |
| Farben | 4 Bänder, **konfigurierbar** unter Config (Defaults unten) |
| Labels | Nur Zahlen, keine Ankertexte |
| Altdaten | Keine Migration; frische Dev-DB (`npm run db:reset` bei Bedarf) |
2026-09-16 14:17:25 +02:00
| Struktur | In V2 über Starter/`npm run setup` und Config pflegbar (Stand 2026-08) |
| Typ-Strukturen | Sichtbarkeit über `criteriaIds` + `resolveVisibleStructure` (Cascade 1b) |
2026-08-08 17:35:05 +02:00
| Schnelle Zuordnung | `lineTags` / Tag-Picker / Vorschläge bleiben |
### Default-Farbbänder
Überlappung an der 5 in der Erstidee bereinigt:
| Score | Farbe |
|---|---|
| 1– 2 | rot |
| 3– 5 | orange |
| 6– 8 | hellgrün |
| 9– 10 | dunkelgrün |
Speicherung in `appSettings.ratingColorBands` (JSON), editierbar in einem neuen Config-Bereich „Skala / Farben“.
---
## Zielmodell (Daten)
```text
Beobachtung (Kriterium)
lineTags / generalNoteTags / Assessment.note
optionale Notations-Zahl auf der Zeile → Vorschlag / Detail
Meeting-Bewertung (Pflicht-Skala)
NEU bzw. klar: Score 1– 10 pro Kategorie × Institutee × Meeting
direkt setzbar, unabhängig davon ob alle Kriterien getaggt sind
Assignment-Feedback
FeedbackCategoryRating.rating → 1– 10
Vorschlag aus zeitgewichteten Meeting-Kategorie-Scores
Checkliste
ChecklistResponse.rating → 1– 10 (gleiche Skala/Farben)
```
### Speicherung Meeting-Kategorie-Score
Neue Tabelle `meetingCategoryRatings` :
- `meetingInstanceId` , `instituteeId` , `categoryId` , `score` (INTEGER nullable 1– 10), optional `note`
Bestehende `ConversationSkillScore` (Schnellscore am Protokoll-Eintrag) ebenfalls auf 1– 10 umstellen — bleibt optionaler Feinschliff während des Tippens, ersetzt aber nicht die Meeting-Gesamtbewertung pro Kategorie.
`Assessment.score` (pro Kriterium): optional `number | null` für Detail/KI; UI der Gesamtbewertung fokussiert auf **Kategorien** . Kriterien darunter zeigen Beobachtungen + optionalen Detail-Score.
---
## Umsetzungsphasen
### Phase 1 — Skalen-Kern ✅ (2026-08-06)
- Types: `RatingScore` 1– 10, `null` = unset; `meetingCategoryRatings` ; `ratingColorBands`
- `constants.ts` : Bänder, `resolveScoreStyle` , `ScorePicker`
- Config-Tab „Skala“
- `ratingTrend` / Notation (führende Zahl) / Meeting-/Feedback-/Export-UI umgestellt
- Hard-Delete räumt `meetingCategoryRatings` + `checklistResponses` auf
### Phase 2 — Meeting-UI Feinschliff
- Notation-Schnellbuttons weiter verfeinern; Farbbänder live aus Config laden (nicht nur Defaults)
- Detail/History-Chips primär aus `meetingCategoryRatings`
### Phase 3 — Feedback & Auswertung
- Trend/Vorschlag konsequent aus Meeting-Kategorie-Scores
- **Neukonzeption Benefits/Concerns + KI-Kaskade:** siehe `docs/FEEDBACK_CASCADE_PLAN.md`
### Phase 4 — Export & KI
- Persistierte Dimension-Prompts auf neue Skalen-Sprache zurücksetzen/syncen
- Kategorie-Benefits/Concerns im PDF (Teil von `FEEDBACK_CASCADE_PLAN.md` Paket 5)
### Phase 5 — UX-Feinschliff
- Slider/Stepper, mobile Hit-Areas; Schreibfluss schützen
### Phase 6 (Prio 2) — Struktur je Assignment-Typ
- Sichtbarkeit Dimension/Kategorie pro Typ — **umgesetzt als Paket 1b** (`resolveVisibleStructure`, Config → Ass.-Typen → Struktur)
---
## Nicht-Ziele (jetzt)
- Produktiv-Migration / Mapping alter Enum-Werte
- Ankertexte auf der Skala
- Getrennte Taxonomien pro Assignment-Typ (erst Prio 2)