From d894c3c8e4c1454561f4fb4ba278146fc38ef246 Mon Sep 17 00:00:00 2001 From: Lars Date: Wed, 16 Sep 2026 14:17:25 +0200 Subject: [PATCH] V2-Stand: UX-Dashboard, Personen v2, Starter-Paket und Dexie-Legacy entfernt. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sichert den lokalen Entwicklungsstand nach Gitea: Nav/Dashboard, Personen-Excel/Archiv, Team-Setup, Assignment-Übergabe und C6/C7/T2. Co-authored-by: Cursor --- .claude/launch.json | 12 - .gitignore | 3 + .vscode/extensions.json | 5 - CLAUDE.md | 75 +- EINRICHTUNG.md | 87 ++ UMZUG.md | 68 ++ docs/DEV_ISOLATION.md | 15 + docs/FACHLICHE_ARCHITEKTUR.md | 4 +- docs/FEEDBACK_CASCADE_PLAN.md | 75 +- docs/HANDOVER.md | 323 +++-- docs/SCALE_1_TO_10.md | 4 +- docs/SMOKE_TESTS.md | 62 + docs/STATUS_UND_OFFENE_PUNKTE.md | 265 ++-- docs/TEAM_SETUP.md | 114 ++ docs/TECHNISCHE_ARCHITEKTUR.md | 2 + docs/starter/README.md | 8 + docs/starter/starter-structure.json | 1407 ++++++++++++++++++++++ index.html | 15 +- package-lock.json | 127 +- package.json | 10 +- public/apple-touch-icon.png | Bin 0 -> 22518 bytes public/favicon.svg | 4 + public/pwa-192.png | Bin 0 -> 25966 bytes public/pwa-512.png | Bin 0 -> 847737 bytes server/db/queries/appSettings.ts | 74 +- server/db/queries/assignmentTransfer.ts | 527 ++++++++ server/db/queries/assignments.ts | 28 +- server/db/queries/checklists.ts | 13 +- server/db/queries/consultants.ts | 268 ++++- server/db/starterPackage.ts | 165 +++ server/db/tableRegistry.ts | 10 + server/index.ts | 32 + server/rpcModules.ts | 2 + server/scripts/bootstrapFromStarter.ts | 34 + server/scripts/exportStarterPackage.ts | 22 + server/scripts/packLaptopZip.ts | 158 +++ server/scripts/packTeamZip.ts | 120 ++ server/scripts/smokeScaleAndTagging.ts | 124 ++ server/scripts/teamSetup.ts | 18 + src/App.tsx | 109 +- src/config/constants.ts | 70 +- src/db/index.ts | 7 - src/db/queries/appSettings.ts | 10 + src/db/queries/assignmentTransfer.ts | 10 + src/db/queries/assignments.ts | 1 + src/db/queries/checklists.ts | 3 +- src/db/queries/consultants.ts | 46 +- src/db/queries/index.ts | 1 + src/db/schema.ts | 162 --- src/db/seeds/assignmentTypes.ts | 88 -- src/db/seeds/feedbackStructure.ts | 65 - src/db/seeds/feedbackStructureFinal.json | 660 ---------- src/db/seeds/index.ts | 3 - src/db/seeds/migrations.ts | 106 -- src/db/types.ts | 122 +- src/index.css | 38 + src/pages/AiPromptConfig.tsx | 90 +- src/pages/AssignmentCreate.tsx | 86 +- src/pages/AssignmentDetail.tsx | 30 +- src/pages/AssignmentEdit.tsx | 28 +- src/pages/AssignmentFeedbackPage.tsx | 24 +- src/pages/AssignmentTypeConfig.tsx | 261 +++- src/pages/Configuration.tsx | 2 +- src/pages/ConsultantDetail.tsx | 262 ++++ src/pages/Consultants.tsx | 480 ++++++-- src/pages/Dashboard.tsx | 414 +++++-- src/pages/Evaluation.tsx | 2 +- src/pages/MeetingHistory.tsx | 3 +- src/pages/meeting/AssessmentTab.tsx | 163 ++- src/pages/meeting/ChecklistTab.tsx | 22 +- src/pages/meeting/CriterionTagPicker.tsx | 90 +- src/pages/meeting/MeetingView.tsx | 496 +++++--- src/utils/aiClient.ts | 108 +- src/utils/aiPrompt.ts | 95 +- src/utils/assignmentSignals.ts | 67 ++ src/utils/assignmentTransfer.ts | 36 + src/utils/charAwareBatches.ts | 42 + src/utils/checklistCriterion.ts | 10 + src/utils/checklistSuggestionPrompt.ts | 83 ++ src/utils/checklistTagging.ts | 91 ++ src/utils/consultantImport.ts | 40 + src/utils/criterionEvidence.ts | 240 ++++ src/utils/criterionScoreSuggestion.ts | 96 ++ src/utils/criterionSuggestionPrompt.ts | 49 +- src/utils/meetingExport.ts | 3 +- src/utils/notationParser.tsx | 23 +- src/utils/pdfExport.tsx | 3 +- src/utils/promptSize.ts | 21 + src/utils/taggingBatches.ts | 69 ++ tsconfig.server.json | 2 +- vite.config.ts | 18 +- 91 files changed, 7196 insertions(+), 2134 deletions(-) delete mode 100644 .claude/launch.json delete mode 100644 .vscode/extensions.json create mode 100644 EINRICHTUNG.md create mode 100644 UMZUG.md create mode 100644 docs/SMOKE_TESTS.md create mode 100644 docs/TEAM_SETUP.md create mode 100644 docs/starter/README.md create mode 100644 docs/starter/starter-structure.json create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon.svg create mode 100644 public/pwa-192.png create mode 100644 public/pwa-512.png create mode 100644 server/db/queries/assignmentTransfer.ts create mode 100644 server/db/starterPackage.ts create mode 100644 server/scripts/bootstrapFromStarter.ts create mode 100644 server/scripts/exportStarterPackage.ts create mode 100644 server/scripts/packLaptopZip.ts create mode 100644 server/scripts/packTeamZip.ts create mode 100644 server/scripts/smokeScaleAndTagging.ts create mode 100644 server/scripts/teamSetup.ts create mode 100644 src/db/queries/assignmentTransfer.ts delete mode 100644 src/db/schema.ts delete mode 100644 src/db/seeds/assignmentTypes.ts delete mode 100644 src/db/seeds/feedbackStructure.ts delete mode 100644 src/db/seeds/feedbackStructureFinal.json delete mode 100644 src/db/seeds/index.ts delete mode 100644 src/db/seeds/migrations.ts create mode 100644 src/pages/ConsultantDetail.tsx create mode 100644 src/utils/assignmentSignals.ts create mode 100644 src/utils/assignmentTransfer.ts create mode 100644 src/utils/charAwareBatches.ts create mode 100644 src/utils/checklistCriterion.ts create mode 100644 src/utils/checklistSuggestionPrompt.ts create mode 100644 src/utils/checklistTagging.ts create mode 100644 src/utils/consultantImport.ts create mode 100644 src/utils/criterionEvidence.ts create mode 100644 src/utils/criterionScoreSuggestion.ts create mode 100644 src/utils/promptSize.ts create mode 100644 src/utils/taggingBatches.ts diff --git a/.claude/launch.json b/.claude/launch.json deleted file mode 100644 index e8f8d41..0000000 --- a/.claude/launch.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": "0.0.1", - "configurations": [ - { - "name": "dev", - "runtimeExecutable": "npm", - "runtimeArgs": ["run", "dev"], - "port": 5173, - "autoPort": true - } - ] -} diff --git a/.gitignore b/.gitignore index ce7968f..f20e3cc 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,9 @@ dist-ssr/ # Lokale SQLite-Datenbank (enthält personenbezogene Daten, siehe CLAUDE.md → Datenschutz) server/data/ +# Versand-ZIPs (lokal erzeugt, nicht committen) +dist-release/ + # Local environment / secrets .env .env.local diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index de106ed..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "recommendations": [ - "syncfusioninc.document-viewer-vscode-extensions" - ] -} \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index 7b7304d..887e3cd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,7 +2,7 @@ Progressive Web App zur Live-Bewertung von Capgemini-Trainees (Institutees) während Kunden-Assignments. -**Vollständige Dokumentation:** `docs/` — bei neuer Session zuerst `docs/HANDOVER.md` lesen. +**Vollständige Dokumentation:** `docs/` — bei neuer Session zuerst `docs/HANDOVER.md` lesen; offene Punkte kanonisch: `docs/STATUS_UND_OFFENE_PUNKTE.md` (Stand 2026-08-16, inkl. C6/C7/T2 erledigt). **DEV-Isolation:** Dieses Repo (`AssigmentMonitorV2`) ist von Produktiv (`c:\dev\AssigmentMonitor`) getrennt — Ports **5174/4001**, DB `assignment-monitor-v2-dev.sqlite3`. Regeln: `docs/DEV_ISOLATION.md`. Produktiv-Code und -Daten niemals anfassen. @@ -10,23 +10,23 @@ Progressive Web App zur Live-Bewertung von Capgemini-Trainees (Institutees) wäh ## Stack -- React 18 + TypeScript + Vite (PWA) +- **React 19** + TypeScript + Vite (PWA) - Tailwind CSS v4 — `@import "tailwindcss"` in CSS, **kein** `tailwind.config.js`; Brandfarbe als `@theme { --color-brand }` in `src/index.css` - **Lokaler Node/Express-Server + SQLite** (seit 2026-07-04) — löst Dexie/IndexedDB als primären Datenspeicher ab, siehe eigener Abschnitt unten -- React Router v6 +- **React Router 7** (`react-router-dom`) - Capgemini-Brandfarbe: `#0070AD` (Tailwind-Klasse `brand`, JS-Konstante `BRAND_COLOR` in `src/config/constants.ts`) +- Bewertungsskala: **1–10** (`RatingScore`) — siehe `docs/SCALE_1_TO_10.md` (nicht mehr Client-Ready-Enum) -## Projektstruktur (Stand 2026-07-04) +## Projektstruktur (Stand 2026-08; Erledigt-Historie unten weiter gültig) ``` src/ - config/constants.ts ← RATING_OPTIONS, INST_COLORS, AI_CONFIG, RATING_NUM_MAP, BRAND_COLOR, DEFAULT_RATING_TREND_WEIGHT_STEP + config/constants.ts ← RATING_SCORES, Score-Styles, AI_CONFIG, BRAND_COLOR, DEFAULT_RATING_TREND_WEIGHT_STEP, … db/ - index.ts ← Re-Export (types + queries), rpcClient.ts eingebunden - types.ts ← alle Interfaces, FeedbackRating, AppSettings — von Client UND Server importiert + index.ts ← Re-Export (types + queries) + types.ts ← alle Interfaces, RatingScore, AppSettings — von Client UND Server importiert rpcClient.ts ← rpc(module, fn, ...args) — POST /api/rpc, einziger Netzwerk-Kontaktpunkt des Clients queries/ ← Client-DB-Zugriffsschicht (siehe eigener Abschnitt unten) - schema.ts, seeds/ ← Dexie/IndexedDB-Legacy-Code, wird nicht mehr gelesen (siehe Datenbank-Abschnitt) pages/ meeting/ ← MeetingView.tsx, ConversationTab.tsx, AssessmentTab.tsx, CriterionTagPicker.tsx RatingWeightConfig.tsx ← Settings-Tab für Zeitgewichtungs-Faktor (in Configuration.tsx eingebunden) @@ -41,10 +41,10 @@ src/ pdfExport.tsx ← PDF-Export (seit 2026-07-14, `@react-pdf/renderer`): Assignment-Report (Gesamtprotokoll + Feedback aller Institutees) und Einzel-Feedback-PDF pro Institutee server/ index.ts ← Express-App, ein Endpunkt POST /api/rpc - database.ts ← node:sqlite-Verbindung (server/data/assignment-monitor.sqlite3), Schema aus tableRegistry.ts - rpcModules.ts ← Dispatch-Registry { appSettings, consultants, ..., backup } → server/db/queries/*.ts + database.ts ← node:sqlite-Verbindung (V2: assignment-monitor-v2-dev.sqlite3), Schema aus tableRegistry.ts, Pfad-Guards + rpcModules.ts ← Dispatch-Registry inkl. checklists, meetingCategoryRatings, assignmentTransfer, backup, … db/ - tableRegistry.ts ← EINE Quelle der Wahrheit: alle 21 Tabellen + Spalten + JSON-/Bool-Codecs (treibt Schema UND Backup) + tableRegistry.ts ← EINE Quelle der Wahrheit: alle 26 Tabellen + Spalten + JSON-/Bool-Codecs (treibt Schema UND Backup) crud.ts ← generische SQL-CRUD-Bausteine über die Registry queries/ ← Server-Pendant zu src/db/queries/*.ts, gleiche Funktionsnamen, echtes SQL statt Dexie scripts/verifyBackupRoundtrip.ts ← automatisierter Vollständigkeits-Beweis für Backup-Export/-Import @@ -52,7 +52,7 @@ server/ ### Datenbank: lokaler Server statt IndexedDB (seit 2026-07-04) -Grund: Mehrere Browser (Chrome, Edge, ...) auf demselben Laptop sollen dieselben Daten sehen, unabhängig vom Browser-Cache — als Testschritt vor einem späteren Umzug auf einen Docker-Container auf einem Linux-Server. Browser können keine SQLite-Datei direkt öffnen, daher läuft ein kleiner Node/Express-Server (`server/`, Port 4000) mit **`node:sqlite`** (Node-eingebautes SQLite-Modul, **kein** `better-sqlite3`!). Alle Browser sprechen über `http://localhost:5173` (Vite-Dev-Proxy `/api` → `http://localhost:4000`) denselben Server an. +Grund: Mehrere Browser auf demselben Laptop sollen dieselben Daten sehen. Browser können keine SQLite-Datei direkt öffnen, daher lokaler Node/Express-Server mit **`node:sqlite`** (**kein** `better-sqlite3`!). **V2-Defaults:** API Port **4001**, Vite **5174**, Proxy `/api` → `http://localhost:4001`, Datei `assignment-monitor-v2-dev.sqlite3`. (Produktiv bleibt 4000/5173 — nie vermischen, siehe `docs/DEV_ISOLATION.md`.) **Abweichung vom ursprünglich gewählten Stack:** `better-sqlite3` scheiterte lokal an einer fehlenden/kaputten Python-Installation (node-gyp-Kompilierung). `node:sqlite` bietet dieselbe synchrone API (`DatabaseSync`, `.prepare().run()/.get()/.all()`), braucht keine native Kompilierung und ist ab dieser Node-Version (25.x) ohne Flag nutzbar (Node meldet es noch als "experimental" — rein informativ, funktioniert stabil). Falls auf einem anderen Rechner/Server `node:sqlite` fehlt (ältere Node-Version), wäre `better-sqlite3` dort nachzuholen, sofern eine funktionierende Build-Toolchain (Python + C++-Compiler) vorhanden ist. @@ -60,21 +60,23 @@ Grund: Mehrere Browser (Chrome, Edge, ...) auf demselben Laptop sollen dieselben **RPC statt REST:** Ein einziger Endpunkt `POST /api/rpc` mit Body `{ module, fn, args }` statt ~80 einzelnen Routen — Client (`src/db/rpcClient.ts`) und Server (`server/rpcModules.ts`) sind darüber 1:1 gekoppelt: jede Funktion aus `src/db/queries/*.ts` hat ein gleichnamiges Pendant in `server/db/queries/*.ts`. -**Dexie/IndexedDB ist toter Code, aber noch nicht entfernt:** `src/db/schema.ts` und `src/db/seeds/*.ts` bleiben unverändert im Repo liegen, werden aber von nichts mehr gelesen (Seed-Aufrufe in `main.tsx` wurden entfernt). Vollständiges Entfernen ist eine spätere, bewusste Entscheidung. +**Dexie/IndexedDB-Legacy entfernt (2026-08-16):** `dexie`-Dependency, `src/db/schema.ts` und `src/db/seeds/` sind weg. Primärspeicher bleibt Express + `node:sqlite`; Struktur-Seed über Starter/`npm run setup`. -**Backup ist jetzt server-seitig:** `src/utils/dbBackup.ts` ruft `rpc('backup', 'exportAll'/'importAll', ...)` statt direkt gegen Dexie zu laufen. `server/db/queries/backup.ts` iteriert exakt `tableRegistry.ts` — dieselbe Liste, die auch das SQL-Schema erzeugt, damit eine neue Tabelle nicht mehr unbemerkt aus dem Backup fallen kann (das ist genau einmal mit `appSettings` passiert, siehe Erledigt-Historie). `server/scripts/verifyBackupRoundtrip.ts` (`npm run verify-backup -- `) beweist automatisiert Zeilenzahl- und Inhaltsgleichheit pro Tabelle nach einem Import→Export-Zyklus. +**Backup ist server-seitig** über `tableRegistry`. Zusätzlich: **Starter-Paket** (nur Struktur, `docs/starter/`, `npm run setup`) und **Assignment-Transfer** (ein Assignment inkl. Berater/Notizen/Checklisten, Merge-Import — `assignmentTransfer`). ### DB-Zugriffsschicht (`src/db/queries/`, seit 2026-07-04, intern auf RPC umgestellt) -Alle Komponenten greifen auf Daten ausschließlich über benannte Funktionen aus `src/db/queries/*.ts` zu (re-exportiert über `'../db'`) — nach außen unverändert seit der ursprünglichen Extraktion, nur die Innenseite ruft jetzt `rpc(...)` statt `db..*` auf. Ein Modul pro Domäne: `appSettings.ts`, `consultants.ts` (Groups+Consultants), `assignmentTypes.ts` (AssignmentTypes+PhaseTemplates), `assignments.ts`, `feedbackStructure.ts` (Dimensions/Categories/CriterionItems — `filterVisibleFeedbackStructure()` bleibt reine Client-Funktion ohne RPC), `meetings.ts` (MeetingInstances inkl. kanonischem `!deletedAt && status==='done'`-Filter als `listDoneMeetingsChronological()`, Cascade-Deletes, Export-Datenaggregation `getMeetingExportData()`), `conversationEntries.ts`, `assessments.ts`, `assignmentFeedback.ts`. +Module u.a.: `appSettings`, `consultants`, `assignmentTypes`, `assignments`, `feedbackStructure` (`resolveVisibleStructure`/`filterVisibleFeedbackStructure`), `meetings` (`listDoneMeetingsChronological`, `getMeetingExportData`), `conversationEntries`, `assessments`, `assignmentFeedback`, `meetingCategoryRatings`, `checklists`, `criterionSuggestions`, **`assignmentTransfer`**. ## Entwicklung ```bash -npm run dev:all # Frontend (Vite, :5173) + lokaler Server (Express, :4000) zusammen starten -npm run dev # Nur Frontend (Server muss separat laufen, sonst laufen alle DB-Zugriffe ins Leere) -npm run server # Nur den lokalen Server -npx tsc -b # TypeScript-Check über alle 3 Projekte (App/Node/Server) — muss vor jeder Abgabe fehlerfrei sein +npm run dev:all # Frontend :5174 + Server :4001 +npm run setup # Starter-Struktur einspielen (Feedback/Typen/Prompts/Checklisten-Defs) +npm run pack:zip # Team-ZIP → dist-release/ (ohne DB) +npm run pack:laptop # Umzug: Code + volle Dev-DB → dist-release/ +npm run starter:export +npx tsc -b # TypeScript — muss vor jeder Abgabe fehlerfrei sein ``` **Wichtig:** `npx tsc --noEmit` am Root prüft **nichts** (0 Dateien, `tsc --noEmit --listFiles` bestätigt das) — der Root-`tsconfig.json` hat `"files": []` und nur `references`. Ohne `-b` (Build-Modus) werden referenzierte Projekte nicht ausgewertet. Der bisher in diesem Dokument dokumentierte Workflow `npx tsc --noEmit` war dadurch vermutlich seit Einführung der Project References ein stiller No-Op — **immer `npx tsc -b` verwenden.** @@ -100,16 +102,12 @@ Filterlogik: `filterVisibleFeedbackStructure(allCategories, allItems, criteriaId ### Rating-Skala ```typescript -type FeedbackRating = 'na' | 'not_client_ready' | 'partially_client_ready' | 'nearly_client_ready' | 'client_ready' -// Numerisch: na=0, not=1, partially=2, nearly=3, fully=4 -// N/A gilt als "nicht gesetzt" — aus allen Berechnungen ausschließen! +type RatingScore = number // 1–10; unset = null — siehe docs/SCALE_1_TO_10.md +// Farbbänder in appSettings.ratingColorBands / Config → Skala +// N/A-String-Enum (not_client_ready …) ist abgelöst — nicht neu einführen ``` -Aggregation: gewichteter Durchschnitt → `avg < 1.5` Not · `< 2.5` Partially · `< 3.5` Nearly · `≥ 3.5` Fully - -**Bug-Klasse, auf die immer prüfen:** Filter der Form `a.score !== null` schließen N/A NICHT aus (N/A ist der String `'na'`, nicht `null`!). Richtig ist immer `a.score !== null && a.score !== 'na'`. Gefunden und gefixt in `Evaluation.tsx` (2026-07-02); dieselbe Prüfung nötig überall, wo `Assessment.score` oder `ConversationSkillScore.score` gemittelt wird. - -**Zweite Bug-Klasse, auf die immer prüfen (Kriterium-Gewichtung):** `FeedbackCriterionItem.weight` geht seit 2026-07-03 von `0,0` bis `2,0` (Config → Feedback, vorher grobe `×1`–`×5`-Stufen). Jede gewichtete Mittelung MUSS normieren — `Σ(score×weight) / Σ(weight)`, niemals `score×weight` direkt als Endwert interpretieren (würde die Bewertungsstufe verzerren, z.B. Score 3 „Nearly" × Gewicht 0,5 = 1,5, was fälschlich zwischen Not/Partially läge). Zusätzlich: wenn `Σweight === 0` (z.B. alle beteiligten Kriterien einer Kategorie auf Gewicht 0 gesetzt), **nicht** dividieren — `NaN < 1.5/2.5/3.5` ist überall `false` und fällt sonst still auf den letzten Bucket „Fully" durch. Immer `if (wSum === 0) return null` (bzw. `continue`) vor der Division. Seit dem `db/queries/`-Refactoring (2026-07-04) **eine** Implementierung: `weightedAverageScore()`/`weightedAverageRating()` in `src/utils/ratingTrend.ts`, genutzt von `buildGroupMeetingScores()`, `catMode()` (`AssessmentTab.tsx`) und der Meeting-Chip-Anzeige in `AssignmentDetail.tsx` (dort fehlte der `Σweight===0`-Guard vorher — beim Konsolidieren mitgefixt). Bei jedem neuen gewichteten Durchschnitt diese Funktion wiederverwenden, nicht neu implementieren. +Aggregation: gewichteter Durchschnitt über `weightedAverageScore`/`weightedAverageRating` in `ratingTrend.ts` — bei `Σweight === 0` null. ### Routing @@ -131,7 +129,7 @@ MeetingView liest: `const { id, meetingId: meetingIdParam } = useParams()` - Meeting-Filter bei Aggregationen über mehrere Meetings: immer `!m.deletedAt && m.status === 'done'` — sonst fließen Papierkorb-/unfertige Meetings mit ein - **Weichmacher/Füllwörter in Formulierungen** (z.B. "ein bisschen") werden bewusst **nicht** über eine eigene Text-Erkennungslogik behandelt — stattdessen legt man dafür ein eigenes, niedrig gewichtetes Kriterium an (z.B. "Sprachliche Präzision", Gewicht < 1) und taggt/notiert entsprechende Zeilen ganz normal (meist mit `(!)`). Die bestehende Tagging- + Notation-Vorschlag-Mechanik deckt das automatisch ab. - Der `äh`-Zähler (`ConversationEntry.fillerCount`) bleibt bewusst **rein informativ** — keine automatische Schwellenwert-Bewertung. Würde eine eigene Design-Entscheidung brauchen (ab wann gilt die Zahl als "zu hoch"), aktuell reicht die reine Anzeige als Grundlage für die manuelle Bewertung. -- **Cross-Boundary-Imports von `src/` nach `server/`**: Dateien, die (wie `src/db/types.ts`) sowohl vom Client als auch vom Server importiert werden, müssen frei von Laufzeit-Abhängigkeiten auf Browser-Only-Code sein — auch `import type` reicht nicht als Schutz, wenn die importierte Datei selbst wieder aus dem `'../db'`-Barrel importiert (der zieht Dexie/rpcClient/Seeds mit, siehe `src/config/constants.ts`-Fix vom 2026-07-07: Import auf `'../db/types'` direkt umgestellt). Jede neue Datei dieser Art muss zusätzlich explizit in `tsconfig.server.json`s `include` aufgenommen werden (sonst „File is not listed within the file list of project" bzw. sie wird stillschweigend nicht mitkompiliert) — Muster: `src/db/types.ts`, `src/config/constants.ts`. +- **Cross-Boundary-Imports von `src/` nach `server/`**: Dateien, die (wie `src/db/types.ts`) sowohl vom Client als auch vom Server importiert werden, müssen frei von Laufzeit-Abhängigkeiten auf Browser-Only-Code sein — auch `import type` reicht nicht als Schutz, wenn die importierte Datei selbst wieder aus dem `'../db'`-Barrel importiert (der zieht `rpcClient` mit, siehe `src/config/constants.ts`-Fix vom 2026-07-07: Import auf `'../db/types'` direkt umgestellt). Jede neue Datei dieser Art muss zusätzlich explizit in `tsconfig.server.json`s `include` aufgenommen werden (sonst „File is not listed within the file list of project" bzw. sie wird stillschweigend nicht mitkompiliert) — Muster: `src/db/types.ts`, `src/config/constants.ts`. - `ConversationEntry` entspricht weiterhin **einem ganzen Sprecher-Turn** (ein zusammenhängender, mehrzeiliger Text-Block bis "✓ Schließen") — bewusst so belassen, ein Zwischenstand mit "ein Entry pro Zeile" wurde am 2026-07-02 wieder verworfen, weil er die Lesbarkeit des Protokolls zerstört hat. Kriterium-Zuordnung passiert stattdessen **pro Zeile innerhalb** eines Entry über `ConversationEntry.lineTags` (Matching per exaktem Zeilentext, nicht per Index — robust gegenüber nachträglichem Einfügen/Löschen von Zeilen). Zeilen splitten immer über `splitNoteLines()` in `src/utils/notationParser.tsx`, nicht erneut `note.split('\n')` inline schreiben (sonst laufen Trim-/Filter-Verhalten auseinander). --- @@ -140,19 +138,24 @@ MeetingView liest: `const { id, meetingId: meetingIdParam } = useParams()` - **Keine Kommentare** außer für nicht-offensichtliche Invarianten (kein „Was", nur „Warum") - **Keine Auto-Resize-Textarea via `rows={1}` + JS** — stattdessen View/Edit-Toggle oder `fieldSizing: 'content'` als Inline-Style -- **`RATING_OPTIONS`-Array** nicht neu definieren — immer aus dem bestehenden Array in der jeweiligen Datei verwenden +- **Score-UI** über `ScorePicker` / `RATING_SCORES` / `resolveScoreStyle` — keine alten Enum-`RATING_OPTIONS` neu erfinden +- Gewichtete Mittel immer über `weightedAverageScore`/`weightedAverageRating` in `ratingTrend.ts` - **Kein `useEffect` für DB-Calls** außer bei initialem Load — lieber direkte `async`-Funktionen --- ## Offene Punkte (priorisiert) -| Prio | Aufgabe | Datei | -|---|---|---| -| M | **Migration der echten Daten aussteht:** Aktuelle IndexedDB-Daten müssen noch einmalig über Config → Backup → Export (alte Version) exportiert und über Config → Backup → Import (neue, serverbasierte Version) in die SQLite-DB eingespielt werden. Siehe Datenbank-Abschnitt oben. | — | -| L | Dexie/IndexedDB-Legacy-Code vollständig entfernen (`src/db/schema.ts`, `src/db/seeds/`) — aktuell bewusst nur stillgelegt, nicht gelöscht | `src/db/schema.ts`, `src/db/seeds/` | -| L | Server-seitiges "Seed-if-empty" für Assignment-Typen/Feedback-Struktur (aktuell nur clientseitig vorhanden und nicht mehr wirksam) — nicht dringend, da der Backup-Import denselben Zweck erfüllt | `server/db/queries/` (neu) | -| L | SQLite WASM + OPFS Migration — durch den lokalen Server-Ansatz (2026-07-04) überholt/hinfällig | `src/db/schema.ts` | +**Kanonisch und aktuell:** `docs/STATUS_UND_OFFENE_PUNKTE.md` (2026-08-16). Kurz: + +| Prio | Aufgabe | +|---|---| +| H | **UX.3** Dashboard · **UX.4** Meeting-Live-UX | +| M | UX.5–UX.8; **T4** Cascade Smoke; **T1** npm-Audit; **T5** Legacy; **T3** Backup-Reminder; **T6** Datenschutz | +| L | Create-Enrollments, Assignment-Nr. in URL | +| — | **C0/C6/C7/T2/UX.1–UX.2** + Cascade 1–3/1b: **erledigt** | + +**Erledigt (2026-08-16):** C0 Skala-Smoke, C6 Tagging-Batches, C7 KI-Client, T2 Dexie-Legacy, UX.1 Design-Tokens + UX.2 App-Chrome (`index.css`, `App.tsx`, Source Sans 3). **Erledigt (2026-07-19): Live-Formulierungshilfe, Beobachter-Fokus, Meeting-Checkliste umgesetzt** (Konzept siehe Eintrag unten, dort auch die Design-Begründungen). Neue Dateien: `src/utils/criterionOptions.tsx` (aus `FeedbackStructureConfig.tsx` extrahiertes `criterionOptionGroups()`, jetzt auch von `AssignmentTypeConfig.tsx` genutzt), `server/db/queries/checklists.ts` + `src/db/queries/checklists.ts` (neues RPC-Modul `checklists`), `src/pages/meeting/ChecklistTab.tsx` (neuer dritter Meeting-Tab, nur sichtbar wenn `PhaseTemplate.hasChecklist`). `AssignmentTypeConfig.tsx` bekam pro Phase eine „Checkliste"-Checkbox + aufklappbaren Punkte-Editor (Label, Scope-Auswahl, bei `perInstitutee` optionales Kriterium-Dropdown). `deletePhaseTemplate`/`deleteAssignmentType` cascaden jetzt zusätzlich über `checklistItemDefs` (gleiches Verteidigungsprinzip wie bei `deleteFeedbackCriterionItem`). Live-Formulierungshilfe: neuer State `corpus` in `MeetingView.tsx` (einmal pro Meeting-Load geholt, nicht pro Tastendruck), debounced (~800ms) Aufruf von `findSimilarTaggedLines()` sowohl in `ConversationTab.tsx` (aktive Notiz) als auch für die allgemeinen Notizen — rein lesendes „💭 Ähnliche frühere Notizen"-Panel. Fokus-Übersicht als neue aufklappbare „📊 Fokus-Übersicht"-Box in `FeedbackStructureConfig.tsx` (Top 5 Kriterien nach `getCriterionUsageMap()`-Verwendung, inkl. `learnedPatternHints` als Kontext). Verifiziert: `npx tsc -b` fehlerfrei (dabei einen fehlenden `hasChecklist`-Wert im toten Dexie-Seed-Code `src/db/seeds/assignmentTypes.ts` nachgezogen, da dieser weiterhin vom Client-Build mitkompiliert wird); neue RPC-Endpunkte (`checklists.listChecklistItemDefsForPhaseTemplate`, `assignmentTypes.listPhaseTemplates`) direkt gegen die laufende Dev-Instanz getestet — Schema-Migration (neue Spalte `hasChecklist`, neue Tabellen `checklistItemDefs`/`checklistResponses`) griff automatisch ohne manuellen Server-Neustart. Manueller Ausfüll-Test einer Checkliste in einem echten Meeting (inkl. Prüfung, dass verknüpfte Punkte korrekt in `Assessment` landen) steht noch aus. @@ -236,7 +239,7 @@ MeetingView liest: `const { id, meetingId: meetingIdParam } = useParams()` ## Datenschutz -- Alle Daten lokal — seit 2026-07-04 in `server/data/assignment-monitor.sqlite3` (lokaler Server auf demselben Rechner) statt im Browser-IndexedDB; weiterhin **kein Cloud-Upload**, Server ist nur unter `localhost` erreichbar (kein Auth-Schutz nötig, solange das so bleibt — siehe Offene Punkte, falls sich das ändert, z.B. bei Docker/Linux-Deployment mit Netzwerkzugriff) +- Alle Daten lokal — V2: `server/data/assignment-monitor-v2-dev.sqlite3`; **kein Cloud-Upload**, nur `localhost` (kein Auth, solange das so bleibt) - `server/data/` ist per `.gitignore` ausgeschlossen — Datenbankdatei nie committen - GDPR-relevant: Institutee-Namen, Kundennamen, Gesprächsnotizen - KI-API-Key in `localStorage` — nie loggen oder ausgeben diff --git a/EINRICHTUNG.md b/EINRICHTUNG.md new file mode 100644 index 0000000..8a7b937 --- /dev/null +++ b/EINRICHTUNG.md @@ -0,0 +1,87 @@ +# Einrichtung — Assignment Monitor (Team-Paket) + +Kurz: ZIP entpacken → Node installieren → einrichten → Browser öffnen. + +**Wichtig:** Das ist die Team-/DEV-Version (Ports **5174** / **4001**). +Eine vorhandene Produktiv-Installation wird **nicht** verändert. + +**Laptop-Umzug** (Code + komplette Datenbank): siehe **`UMZUG.md`**. Dort **kein** `npm run setup`. + +--- + +## Was du bekommst / was nicht + +| Enthalten (nach Setup) | Nicht enthalten | +|---|---| +| Feedback-Struktur (Dimensionen, Kategorien, Kriterien) | Institutees / Personen | +| Assignment-Typen + Phasen | Kunden-Assignments | +| Checklisten-Definitionen | Meetings, Protokolle, Beobachtungen | +| KI-Prompts (Feedback, Tagging) + Farbbänder | Bewertungen, Scores, Feedback-Texte | + +Die Struktur liegt in `docs\starter\starter-structure.json` und wird beim Setup in die lokale DB geladen. + +--- + +## 1. Voraussetzung + +- **Node.js 25 oder neuer** — https://nodejs.org/ + Prüfen: + +```powershell +node -v +``` + +--- + +## 2. Entpacken + +z.B. nach `C:\dev\AssigmentMonitorV2`, dann: + +```powershell +cd C:\dev\AssigmentMonitorV2 +``` + +--- + +## 3. Einmalig einrichten + +```powershell +copy .env.example .env +npm install +npm run setup +``` + +`npm run setup` spielt die **Struktur** ein (Feedback, Typen, Prompts, Checklisten) — ohne Bewertungen/Beobachtungen. + +Falls du `setup` vergisst: Beim ersten Server-Start wird die Struktur automatisch nachgeladen, sobald die DB noch leer ist. + +--- + +## 4. Starten + +```powershell +npm run dev:all +``` + +Browser: **http://localhost:5174** + +Beenden: `Strg+C` im Terminal. + +--- + +## Optional: KI + +Unter **Config → KI-Prompts** einen eigenen OpenRouter-API-Key eintragen (bleibt nur lokal im Browser). + +--- + +## Probleme + +| Symptom | Lösung | +|---|---| +| `node` nicht gefunden | Node 25+ installieren, neues Terminal | +| Port belegt | Anderes Programm auf 5174/4001 beenden — **nicht** auf 5173/4000 umbiegen | +| Keine Kriterien / leere Config | `npm run setup` nochmal | +| `npm install` fehlerhaft | Im Projektordner ausführen | + +Mehr: `docs\TEAM_SETUP.md` diff --git a/UMZUG.md b/UMZUG.md new file mode 100644 index 0000000..0b61046 --- /dev/null +++ b/UMZUG.md @@ -0,0 +1,68 @@ +# Umzug auf einen neuen Laptop — Assignment Monitor V2 + +Dieses Paket ist **kein Team-Starter**. Es enthält den aktuellen Code **und die komplette lokale Datenbank** (Personen, Assignments, Meetings, Feedback). + +**Nicht** `npm run setup` ausführen — das würde die mitgelieferte Datenbank durch die leere Struktur ersetzen. + +--- + +## 1. Voraussetzung + +- **Node.js 25 oder neuer** — https://nodejs.org/ +- Prüfen: `node -v` + +Eine vorhandene Produktiv-Installation (`AssigmentMonitor` ohne V2, Ports 5173/4000) bleibt unberührt. + +--- + +## 2. Entpacken + +Nach z.B. `C:\dev\AssigmentMonitorV2`, dann: + +```powershell +cd C:\dev\AssigmentMonitorV2 +``` + +--- + +## 3. Einmalig einrichten + +```powershell +copy .env.example .env +npm install +``` + +Kein `setup`, kein `bootstrap`, kein `db:reset`. + +Die Datei `server\data\assignment-monitor-v2-dev.sqlite3` muss nach dem Entpacken vorhanden sein. + +--- + +## 4. Starten + +```powershell +npm run dev:all +``` + +Browser: **http://localhost:5174** + +Beenden: `Strg+C` im Terminal. + +--- + +## 5. KI-Schlüssel + +Der OpenRouter-API-Key lag im Browser (`localStorage`) des alten Laptops und ist **nicht** in diesem ZIP. Unter **Einstellungen → KI-Prompts** neu eintragen. + +--- + +## Probleme + +| Symptom | Lösung | +|---|---| +| `node` nicht gefunden | Node 25+ installieren, neues Terminal | +| Leere App / keine Assignments | `setup` wurde ausgeführt — ZIP erneut entpacken, DB nicht überschreiben | +| Port belegt | Anderes Programm auf 5174/4001 beenden — **nicht** auf 5173/4000 umbiegen | +| `npm install` fehlerhaft | Im Projektordner ausführen | + +Neues Paket erzeugen (alter Laptop): `npm run pack:laptop` → Datei unter `dist-release\`. diff --git a/docs/DEV_ISOLATION.md b/docs/DEV_ISOLATION.md index c1cf6a5..44c66c0 100644 --- a/docs/DEV_ISOLATION.md +++ b/docs/DEV_ISOLATION.md @@ -43,3 +43,18 @@ npm run dev:all - Niemals Skripte aus V2 gegen den Produktiv-Ordner ausführen. - Niemals die Produktiv-SQLite nach `AssigmentMonitorV2/server/data/` kopieren, außer bewusst als read-only Analyse (dann anderen Dateinamen verwenden und nicht als `SQLITE_FILENAME` setzen). - Backup-Import in V2 nur mit **anonymisierten / Testdaten**, nicht mit dem Produktiv-Backup, solange ihr an der Skala umbaut — sonst vermischt ihr personenbezogene Produktivdaten mit Experimenten. + +## Team-Verteilung + +Struktur an Kollegen weitergeben über das **Starter-Paket** (keine Personen-/Meeting-Daten): + +```bash +npm run starter:export # Maintainer: Struktur aus V2-Dev exportieren +npm run setup # Team: frische V2-DB mit Struktur befüllen +npm run pack:zip # Versand-ZIP (ohne DB) +npm run pack:laptop # Umzug: Code + volle Dev-DB (personenbezogen) +``` + +Assignment-Übergabe Lead→Lead: UI **↔ Übergabe** / **↔ Import** (`assignmentTransfer`). + +Details: [`TEAM_SETUP.md`](./TEAM_SETUP.md), [`HANDOVER.md`](./HANDOVER.md). Produktiv bleibt davon unberührt. diff --git a/docs/FACHLICHE_ARCHITEKTUR.md b/docs/FACHLICHE_ARCHITEKTUR.md index 8e71e7a..5717e88 100644 --- a/docs/FACHLICHE_ARCHITEKTUR.md +++ b/docs/FACHLICHE_ARCHITEKTUR.md @@ -1,5 +1,7 @@ # Fachliche Architektur — Assignment Monitor +> **Stand Hinweis (2026-08-16):** Dieses Dokument ist **historisch** (u.a. IndexedDB, ältere Skala). Aktueller Ist-Stand und offene Punkte: [`HANDOVER.md`](./HANDOVER.md), [`STATUS_UND_OFFENE_PUNKTE.md`](./STATUS_UND_OFFENE_PUNKTE.md). Bei Widerspruch gewinnen HANDOVER/STATUS/Code. + ## Zweck und Kontext Assignment Monitor ist eine Progressive Web App (PWA) zur **Live-Begleitung und Bewertung von Capgemini-Trainees** (Institutees) während ihrer Kunden-Assignments. Die App wird vom jeweiligen Lead (Führungskraft / Mentor) auf dem Smartphone genutzt, um: @@ -10,7 +12,7 @@ Assignment Monitor ist eine Progressive Web App (PWA) zur **Live-Begleitung und **Nutzer:** Lars Stommer (Capgemini Management Consultant Trainee Program Lead) **Sprache der App:** Deutsch (Bedienoberfläche), Englisch (Rating-Labels) -**Datenschutz:** Alle Daten bleiben lokal im Browser (IndexedDB). Kein Public Cloud Upload. +**Datenschutz:** Alle Daten bleiben lokal (V2: SQLite unter `server/data/`, kein Public-Cloud-Upload). Details: [`HANDOVER.md`](./HANDOVER.md). --- diff --git a/docs/FEEDBACK_CASCADE_PLAN.md b/docs/FEEDBACK_CASCADE_PLAN.md index 95d0a62..b10c80b 100644 --- a/docs/FEEDBACK_CASCADE_PLAN.md +++ b/docs/FEEDBACK_CASCADE_PLAN.md @@ -1,9 +1,11 @@ # Plan: Feedback-Neukonzeption, KI-Kaskadierung & UX -Stand: 2026-08-06 · nur DEV (`AssigmentMonitorV2`) -Voraussetzung: Bewertungsskala 1–10 weitgehend umgesetzt (`docs/SCALE_1_TO_10.md`). +Stand: 2026-08-16 (Abgleich) · nur DEV (`AssigmentMonitorV2`) +Voraussetzung: Bewertungsskala 1–10 umgesetzt (`docs/SCALE_1_TO_10.md`). -Dieses Dokument ist die **Arbeitsliste**. Pakete nacheinander abarbeiten; innerhalb eines Pakets Unterpunkte möglichst in der angegebenen Reihenfolge. Abhaken in diesem File oder in der Session-Todo-Liste. +Dieses Dokument ist die **Arbeitsliste**. Status der offenen Punkte gesamt: `docs/STATUS_UND_OFFENE_PUNKTE.md`. + +**Fortschritt 2026-08-16:** Pakete **0, 1, 1b, 2, 3, 6, 7**, **8.3** und **UX.1–UX.2** (Tokens + Shell) erledigt; **4/5** Code weitgehend; UX.3–UX.8 offen. **Nächster Fokus:** UX.3 Dashboard / UX.4 Meeting. --- @@ -57,10 +59,10 @@ Bereits weitgehend erledigt; nur nachziehen, was noch hinkt. | # | Aufgabe | Done | |---|---|---| -| 0.1 | Farbbänder speichern/laden (`getOrSeed`/`saveRatingColorBands` Server) — Hell-/Dunkelgrün unterscheidbar | ☐ prüfen | -| 0.2 | Chips Detail/History/PDF/MD aus `meetingCategoryRatings` (+ Fallback) | ☐ prüfen | -| 0.3 | Dimension-Prompts per „Auf Standard (1–10) setzen“ nachziehen / manuell testen | ☐ | -| 0.4 | Kurz-Smoke: Speichern Skala → Meeting-Einschätzung → Farben greifen nach Reload | ☐ | +| 0.1 | Farbbänder speichern/laden (`getOrSeed`/`saveRatingColorBands` Server) — Hell-/Dunkelgrün unterscheidbar | ☑ `npm run smoke` + manuell | +| 0.2 | Chips Detail/History/PDF/MD aus `meetingCategoryRatings` (+ Fallback) | ☑ geprüft | +| 0.3 | Dimension-Prompts per „Auf Standard (1–10) setzen“ nachziehen / manuell testen | ☑ | +| 0.4 | Kurz-Smoke: Speichern Skala → Meeting-Einschätzung → Farben greifen nach Reload | ☑ | **Exit:** Skala und Farben verhalten sich in Config, Meeting und Feedback konsistent. @@ -110,9 +112,9 @@ Bereits weitgehend erledigt; nur nachziehen, was noch hinkt. | # | Aufgabe | Done | |---|---|---| -| 4.1 | Pro Kategorie: ScorePicker + Trend/KI-Score-Vorschlag („Übernehmen“) + Benefits/Concerns (editierbar + suggested-Boxen) | ☐ | -| 4.2 | Pro Dimension: nur Benefits/Concerns (3–5), suggested übernehmen/verwerfen | ☐ | -| 4.3 | Alten Ein-Text-pro-Kategorie und Achievements/DevNeeds-Labels entfernen bzw. umbenennen | ☐ | +| 4.1 | Pro Kategorie: ScorePicker + Trend/KI-Score-Vorschlag („Übernehmen“) + Benefits/Concerns (editierbar + suggested-Boxen) | ☑ Code · Smoke ☐ | +| 4.2 | Pro Dimension: nur Benefits/Concerns (3–5), suggested übernehmen/verwerfen | ☑ Code · Smoke ☐ | +| 4.3 | Alten Ein-Text-pro-Kategorie und Achievements/DevNeeds-Labels entfernen bzw. umbenennen | ☑ Code · Smoke ☐ | | 4.4 | „Trend in Text“ → sinnvoll auf Concerns oder Benefits mappen (Regel festlegen, z.B. Verschlechterung→Concern) | ☑ | | 4.5 | Fortschrittsanzeige Generierung: Kategorie X/Y, dann Dimension Z | ☑ | @@ -124,8 +126,8 @@ Bereits weitgehend erledigt; nur nachziehen, was noch hinkt. | # | Aufgabe | Done | |---|---|---| -| 5.1 | `InstituteeFeedbackDocument` / Assignment-Report: pro Kategorie Score + Benefits + Concerns; pro Dimension Benefits + Concerns | ☐ | -| 5.2 | Nur finale Felder, nie `suggested*` | ☐ | +| 5.1 | `InstituteeFeedbackDocument` / Assignment-Report: pro Kategorie Score + Benefits + Concerns; pro Dimension Benefits + Concerns | ☑ Code · Smoke ☐ | +| 5.2 | Nur finale Felder, nie `suggested*` | ☑ Code · Smoke ☐ | | 5.3 | Markdown/JSON Assignment-Feedback falls vorhanden nachziehen | ☐ | **Exit:** Internes PDF für Manager-Gespräch brauchbar. @@ -136,12 +138,12 @@ Bereits weitgehend erledigt; nur nachziehen, was noch hinkt. | # | Aufgabe | Done | |---|---|---| -| 6.1 | Hilfsfunktion: offene Zeilen sammeln (unverändert: ohne bereits Getaggte, ohne Kundenzitate wie bisher) | ☐ | -| 6.2 | Batch-Builder: max. Zeilen **und** max. Zeichensumme (Konstanten in `constants` oder AI_CONFIG, konfigurierbar später) | ☐ | -| 6.3 | `analyzeSuggestions`: Schleife über Batches; Ergebnisse mergen; Fortschritt „Batch i/n“; Teilfehler retrybar | ☐ | -| 6.4 | Hybrid-Notnagel: wenn ein Batch trotz 1 Zeile zu groß (Struktur+Text), `{{KRITERIEN_STRUKTUR}}` auf Jaccard-Top-K der Batch-Zeilen beschränken | ☐ | -| 6.5 | `MUSTER:`-Block: nach allen Batches einmal zusammenführen/schreiben oder nur aus Batches mit Treffern — Regel dokumentieren | ☐ | -| 6.6 | Info-Zeile + Rohantwort weiter nutzbar (pro Batch oder letzte) | ☐ | +| 6.1 | Hilfsfunktion: offene Zeilen sammeln (unverändert: ohne bereits Getaggte, ohne Kundenzitate wie bisher) | ☑ `collectOpenProtocolLines` | +| 6.2 | Batch-Builder: max. Zeilen **und** max. Zeichensumme (Konstanten in `constants` oder AI_CONFIG, konfigurierbar später) | ☑ `buildCharAwareBatches` / `AI_CONFIG.taggingBatch*` | +| 6.3 | `analyzeSuggestions`: Schleife über Batches; Ergebnisse mergen; Fortschritt „Batch i/n“; Teilfehler retrybar | ☑ | +| 6.4 | Hybrid-Notnagel: wenn ein Batch trotz 1 Zeile zu groß (Struktur+Text), `{{KRITERIEN_STRUKTUR}}` auf Jaccard-Top-K der Batch-Zeilen beschränken | ☑ `narrowCriteriaIdsForBatch` | +| 6.5 | `MUSTER:`-Block: nach allen Batches einmal zusammenführen/schreiben oder nur aus Batches mit Treffern — Regel dokumentieren | ☑ Merge, später überschreibt früher; ein DB-Write am Ende | +| 6.6 | Info-Zeile + Rohantwort weiter nutzbar (pro Batch oder letzte) | ☑ Rohantworten mit Batch-Trennern | **Exit:** Lange Protokolle brechen nicht mehr am Einzelcall; getaggte Zeilen bleiben draußen. @@ -153,10 +155,10 @@ Betrifft Feedback- und Tagging-Calls. | # | Aufgabe | Done | |---|---|---| -| 7.1 | Timeouts / Abbruch klar melden (nicht still) | ☐ | -| 7.2 | Retry mit Backoff für transient failures (einmalig) | ☐ | -| 7.3 | Grobe Prompt-Größen-Schätzung vor Call → Warnung oder Auto-Split | ☐ | -| 7.4 | Gleiche `aiClient`-Hilfen für Feedback und Tagging | ☐ | +| 7.1 | Timeouts / Abbruch klar melden (nicht still) | ☑ `callOpenRouter` 90s + Abort-Meldung | +| 7.2 | Retry mit Backoff für transient failures (einmalig) | ☑ 429/5xx/Netz/Timeout | +| 7.3 | Grobe Prompt-Größen-Schätzung vor Call → Warnung oder Auto-Split | ☑ Soft-Warn + Hard-Limit; Tagging auto-split (6) | +| 7.4 | Gleiche `aiClient`-Hilfen für Feedback und Tagging | ☑ | **Exit:** Abbrüche sind erklärbar und oft automatisch reparierbar. @@ -176,8 +178,8 @@ Bisher wirkt die App funktional, aber wie ein schneller Prototyp (graue Fläche, | # | Aufgabe | Done | |---|---|---| -| UX.1 | **Design-Tokens:** Schrift, Abstände, Radius, Schatten, Flächen (`bg-app`, `surface`, `border-subtle`) in `index.css` / `@theme` — App-Shell (`App.tsx`) darauf umstellen | ☐ | -| UX.2 | **App-Chrome:** Header (Titel/Kontext), Bottom-Nav ohne Emoji-Overload, aktiver Zustand klar, sichere Touch-Targets | ☐ | +| UX.1 | **Design-Tokens:** Schrift, Abstände, Radius, Schatten, Flächen (`bg-app`, `surface`, `border-subtle`) in `index.css` / `@theme` — App-Shell (`App.tsx`) darauf umstellen | ☑ | +| UX.2 | **App-Chrome:** Header (Titel/Kontext), Bottom-Nav ohne Emoji-Overload, aktiver Zustand klar, sichere Touch-Targets | ☑ | | UX.3 | **Dashboard / Assignment-Listen:** einheitliche Zeilen/Kacheln, Status, Typografie-Hierarchie (Nummer, Kunde, Institutees) | ☐ | | UX.4 | **Meeting-Live-UX:** Einschätzung + Protokoll dichter und ruhiger; ScorePicker/Chips konsistent; Fokus auf Tippen + schnelle Scores | ☐ | | UX.5 | **Feedback-Seite:** nach Paket 4 — klare Hierarchie Dimension → Kategorie; Benefits/Concerns optisch getrennt; KI-Vorschläge als „Entwurf“, nicht als Lärm | ☐ | @@ -199,28 +201,27 @@ Nicht blockierend für Pakete 1–7 / UX; einplanen wenn Kapazität. |---|---|---|---| | 8.1 | Sichtbarkeit Dim/Cat pro Typ — **vorgezogen nach Paket 1b** | SCALE Phase 6 | → 1b | | 8.2 | Notation-Schnellbuttons / mobile Hit-Areas (kann in UX.4 aufgehen) | SCALE Phase 5 | ☐ | -| 8.3 | Dexie/IndexedDB-Legacy entfernen | CLAUDE Offene Punkte L | ☐ | -| 8.4 | Server Seed-if-empty Assignment-Typen/Struktur | CLAUDE L | ☐ | -| 8.5 | Evaluation.tsx / FeedbackDraftPage auf neue Benefits/Concerns + Bänder prüfen oder Legacy deprecaten | | ☐ | -| 8.6 | Datenschutz: Hinweis Tagging+Feedback (externe API) vor Prod | CLAUDE | ☐ | +| 8.3 | Dexie/IndexedDB-Legacy entfernen | STATUS T2 | ☑ | +| 8.4 | Server Seed-if-empty Assignment-Typen/Struktur | STATUS N5 (weitgehend durch `setup` ersetzt) | ☐ optional | +| 8.5 | Evaluation.tsx / FeedbackDraftPage auf neue Benefits/Concerns + Bänder prüfen oder Legacy deprecaten | STATUS T5 | ☐ | +| 8.6 | Datenschutz: Hinweis Tagging+Feedback (externe API) vor Prod | STATUS T6 | ☐ | --- ## Empfohlene Abarbeitungsreihenfolge ```text -0 (Smoke Skala) - → 1 (Schema Benefits/Concerns) ← erledigt - → 1b (Typ → sichtbare Struktur) ← VOR Feedback-KI: gleiche Teilmenge in Meeting + Feedback + Kaskade - → 6 + 7 parallel möglich ← Tagging-Abbrüche lindern - → 2 → 3 → 4 → 5 ← Feedback-Neukonzeption Ende-zu-Ende - → 8 Rest nach Bedarf - → UX später +0 / 1 / 1b / 2 / 3 / 6 / 7 / 8.3 ← erledigt + → UX.1–UX.2 Tokens + Shell ← erledigt + → UX.3 Dashboard · UX.4 Meeting ← nächster UX-Schritt + → UX.5 Feedback · UX.6 Config · UX.7–8 + → T4 Smoke / 5.3 parallel möglich + → T1 / T5 / T6 nach Bedarf ``` -**Hinweis:** Paket UX ist spezifiziert, aber **zurückgestellt** — erst Features fertig, dann Optik. +**Hinweis:** Feature-Stabilität vor UX war Absicht; UX.1–UX.2 sind Fundament für die Folgeschritte. -**Warum 1b vor 2:** Stufe A (ein Call pro Kategorie) und Feedback-UI müssen nur Kategorien/Dimensionen des Assignment-Typs sehen. Ohne kanonische Sichtbarkeit generiert die KI später Inhalte für ausgeblendete Strukturteile. +**Warum 1b vor 2 (historisch):** Stufe A und Feedback-UI müssen nur Kategorien/Dimensionen des Assignment-Typs sehen — erledigt. --- diff --git a/docs/HANDOVER.md b/docs/HANDOVER.md index 6d156f5..aca1f49 100644 --- a/docs/HANDOVER.md +++ b/docs/HANDOVER.md @@ -1,198 +1,173 @@ -# Handover-Dokument — Assignment Monitor +# Handover-Dokument — Assignment Monitor V2 -Dieses Dokument ermöglicht einem neuen Chat-Kontext, die Arbeit am Projekt nahtlos fortzuführen. +Einstieg für neue Chat-/Dev-Sessions. **Produktiv** (`c:\dev\AssigmentMonitor`) niemals anfassen. -> **DEV-Isolation (V2):** Dieses Repo (`AssigmentMonitorV2`) läuft getrennt vom Produktivsystem (`c:\dev\AssigmentMonitor`). Ports **5174 / 4001**, eigene SQLite `assignment-monitor-v2-dev.sqlite3`. Details und Regeln: [`docs/DEV_ISOLATION.md`](./DEV_ISOLATION.md). Produktiv-Daten und -Code niemals anfassen. +> **DEV-Isolation:** Repo `AssigmentMonitorV2` · Ports **5174 / 4001** · SQLite `assignment-monitor-v2-dev.sqlite3` +> Details: [`DEV_ISOLATION.md`](./DEV_ISOLATION.md) · Team-Verteilung: [`TEAM_SETUP.md`](./TEAM_SETUP.md) · Offene Punkte: [`STATUS_UND_OFFENE_PUNKTE.md`](./STATUS_UND_OFFENE_PUNKTE.md) --- -## Stand & nächste Schritte +## Stand (2026-08-16) -Zuletzt abgeschlossen (2026-07-13, dritte Runde): Kriterium-Zuordnung für „Allgemeine Notizen" (`MeetingInstance.generalNoteTags`) — wirkt anders als die bestehende `ConversationEntry.lineTags`-Zuordnung nicht auf ein einzelnes Institutee, sondern auf alle Institutees des Assignments gleichzeitig; alle fünf bestehenden Konsumenten von `lineTags` (Vorschlags-Badges, KI-Prompt, Markdown-Export, Legacy-Feedback-Entwurf, Meeting-Historie) wurden entsprechend erweitert. Details: `CLAUDE.md` → Erledigt-Historie (2026-07-13, dritte Runde). +**Arbeitsverzeichnis:** `C:\dev\AssigmentMonitorV2` -Davor abgeschlossen (2026-07-13, zweite Runde): Chronologisches Gesamtprotokoll aller Meetings eines Assignments (`MeetingHistory.tsx`, `/assignment/:id/history`, erreichbar von `AssignmentDetail.tsx` und `MeetingView.tsx` aus) — für Recap-Calls nach Kundenmeetings und die Gesamtdurchsprache im Feedback-Call. Details: `CLAUDE.md` → Erledigt-Historie (2026-07-13, zweite Runde). +### Zuletzt umgesetzt (Auswahl) -Davor abgeschlossen (2026-07-13): Papierkorb + Archiv für Assignments — Dashboard zeigt standardmäßig nur aktive Assignments, Löschen abgeschlossener Assignments erst möglich wenn für alle Institutees finales Feedback vorliegt, zweistufige Löschung (Papierkorb → automatische endgültige Löschung nach 30 Tagen, mit Wiederherstellen-Option) sowie ein unabhängiges, umkehrbares Archiv für dauerhafte Aufbewahrung. Details: `CLAUDE.md` → Erledigt-Historie (2026-07-13). +| Wann | Thema | +|---|---| +| 2026-08-16 | **Personen v2** E-Mail Pflicht · Gruppen umbenennen/löschen · Verschieben · Excel-Import · Archiv · Detail (Assignments/Feedbacks/Entwicklung) · Lösch-Kaskade | +| 2026-08-16 | **UX.3 Teil 1** Nav (Assignments/Feedbacks/Personen/Einstellungen) · Dashboard-Kachel-Grid · Plandaten · Typ-Farben · Filter/Überfällig | +| 2026-08-16 | **UX.1–UX.2** Design-Tokens + App-Chrome · **C0** Smoke · **C6/C7** Tagging/KI · **T2** Dexie entfernt | +| 2026-08 | Assignment-**Übergabe** Export/Import (Lead→Lead, inkl. Berater/Checklisten/Notizen) | +| 2026-08 | Team-**Starter-Paket** (`starter:export` / `bootstrap` / `setup` / `pack:zip`) | +| 2026-08 | Bewertungsskala **1–10**, Farbbänder, `meetingCategoryRatings` | +| 2026-08 | Feedback-Kaskade Stufe A (Kategorie) → B (Dimension), Benefits/Concerns | +| 2026-07 | Checklisten, selbstlernendes Kriterien-Tagging, PDF-Exporte, Papierkorb/Archiv, Meeting-Historie | +| 2026-07-04 | Lokaler Node/Express + `node:sqlite` statt IndexedDB als Primärspeicher | -Davor abgeschlossen (2026-07-04): Umstellung von Dexie/IndexedDB auf einen lokalen Node/Express-Server mit `node:sqlite` (RPC-Bridge `POST /api/rpc`), damit mehrere Browser auf demselben Laptop dieselben Daten sehen. Details: `CLAUDE.md` → Abschnitt "Datenbank: lokaler Server statt IndexedDB". **Sofort nächster Schritt: die echten IndexedDB-Daten müssen noch per Backup-Export/-Import in die neue SQLite-DB migriert werden** — siehe CLAUDE.md-Offene-Punkte-Tabelle, Prio M. +**Laufende Arbeitsliste Feedback/KI:** [`FEEDBACK_CASCADE_PLAN.md`](./FEEDBACK_CASCADE_PLAN.md) — Pakete **0**, 1–3, 1b, **6, 7**, 8.3 erledigt; 4/5 Code weitgehend (manuelles Smoke/5.3 offen). -Davor abgeschlossen (2026-07-02/03): zeitgewichteter Bewertungs-Vorschlag (`ratingTrend.ts`), Kriterium-Zuordnung für Freitext-Notizen (`ConversationEntry.lineTags` + `CriterionTagPicker.tsx`), Notation → Bewertungs-Vorschlag in der Gesamtbewertung, feinere Kriterium-Gewichtung (0,0–2,0) inkl. Division-durch-Null-Fix, diverse Export-/Backup-Fixes. Design-Hintergrund dazu: `docs/EVALUATION_FEEDBACK_REDESIGN.md`. - -**Vollständige, priorisierte Liste der offenen Punkte:** siehe `CLAUDE.md` → Abschnitt "Offene Punkte (priorisiert)" — das ist die laufend gepflegte Quelle, hier nicht dupliziert. Größere offene Themen, die eine eigene Design-Session brauchen: mehrstufiges Prompt-System für die KI-Generierung, selbstlernendes Tagging. +**Kanonischer Status + offene Punkte:** [`STATUS_UND_OFFENE_PUNKTE.md`](./STATUS_UND_OFFENE_PUNKTE.md) — als Nächstes **T4**. --- ## Worum geht es? -**Assignment Monitor** ist eine PWA für Lars Stommer (Capgemini Management Consultant Trainee Program Lead). Die App wird auf dem Smartphone genutzt, um Trainees (intern: „Institutees") während ihrer Kunden-Assignments live zu begleiten und zu bewerten. Lars führt die Meetings, beobachtet die Trainees und möchte sofort Notizen und Bewertungen erfassen, ohne Stift/Papier. +PWA für die Live-Bewertung von Capgemini-Trainees („Institutees“) während Kunden-Assignments: Meetings protokollieren, Kriterien taggen, einschätzen, Abschluss-Feedback (Benefits/Concerns) erzeugen. + +--- ## Tech-Stack -- **React 18 + TypeScript + Vite** (PWA-Frontend) -- **Tailwind CSS v4** (`@import "tailwindcss"` — kein `tailwind.config.js`!) -- **Lokaler Node/Express-Server + `node:sqlite`** (seit 2026-07-04) — löst Dexie/IndexedDB als Datenspeicher ab, siehe CLAUDE.md. `npm run dev:all` startet Frontend + Server zusammen. -- **React Router v6** -- **Capgemini-Brandfarbe:** `#0070AD` -- Arbeitsverzeichnis: `C:\dev\AssigmentMonitor` - -**Wichtig für den TypeScript-Check:** `npx tsc --noEmit` prüft am Root **nichts** (Project-References-Setup, `files: []`) — immer `npx tsc -b` verwenden. - -## Bewertungsskala (kritisch für alle Berechnungen) - -```typescript -type FeedbackRating = 'na' | 'not_client_ready' | 'partially_client_ready' | 'nearly_client_ready' | 'client_ready' -// Numerisch: na=0, not=1, partially=2, nearly=3, fully=4 -// Labels: N/A, Not, Partially, Nearly, Fully -// Farben: grau, rot, orange, hellgrün, dunkelgrün -// N/A gilt als "nicht gesetzt" — aus allen Berechnungen ausgeschlossen! -``` - -Aggregation: **gewichteter Durchschnitt** (avg < 1.5 → Not, < 2.5 → Partially, < 3.5 → Nearly, ≥ 3.5 → Fully) - -## Datenmodell-Kern (was zu wissen ist) - -### Schlüssel-Unterschied: zwei `criteriaId`-Semantiken - -``` -Assessment.criteriaId → FeedbackCriterionItem.id (Gesamtbewertung nach Meeting) -ConversationSkillScore.criteriaId → FeedbackCategory.id (Schnellbewertung während Gespräch) -ConversationLineTag.criterionItemId → FeedbackCriterionItem.id (Kriterium-Zuordnung einer Protokoll-Zeile, bewusst anders benannt als "criteriaId") -``` - -Das klingt inkonsistent — ist aber so gewollt und funktioniert so. - -### AssignmentType.criteriaIds - -```typescript -// Leer = alle Kriterien anzeigen -// Befüllt = nur diese FeedbackCriterionItem.id anzeigen -criteriaIds?: number[] // → FeedbackCriterionItem.id -``` - -Filterlogik (in MeetingView + AssignmentDetail): -```typescript -const itemFilter = aType?.criteriaIds?.length ? new Set(aType.criteriaIds) : null -const filteredItems = itemFilter ? allItems.filter(i => itemFilter.has(i.id!)) : allItems -const visibleCatIds = new Set(filteredItems.map(i => i.categoryId)) -const filteredCats = itemFilter ? allCats.filter(c => visibleCatIds.has(c.id!)) : allCats -``` - -### Dateiname für Meeting-Exporte - -```typescript -`${assignment.assignmentNumber ?? assignment.title}_${date}_${template.label}${phaseIndex > 1 ? `-${phaseIndex}` : ''}.${ext}` -// Beispiel: CGI-2024-001_02-07-2026_Alignment Call-2.md -``` - -## Routing-Übersicht - -``` -/ Dashboard -/assignment/new Neues Assignment -/assignment/:id AssignmentDetail -/assignment/:id/edit AssignmentEdit -/assignment/:id/meeting/:meetingId MeetingView (src/pages/meeting/) ← WICHTIG: meetingId != assignmentId -/assignment/:id/feedback/:instituteeId AssignmentFeedbackPage -/assignment/:id/feedback-draft/:instituteeId FeedbackDraftPage (Legacy) -/evaluation Auswertung — zeitgewichteter Bewertungs-Vorschlag + Trend, nach Assignment gruppiert -/consultants Berater -/config Konfiguration (4 Tabs: Feedback | Ass.-Typen | Gewichtung | Backup) -``` - -MeetingView liest den Param als: `const { id, meetingId: meetingIdParam } = useParams()` - -## Konfigurationsbereich - -**Tab "Feedback"** (`FeedbackStructureConfig.tsx`): -- Dimensionen → Kategorien → Kriterium-Items (mit Gewichtung `0,0–2,0` in `0,1`-Schritten, seit 2026-07-03 — vorher grobe `×1`–`×5`-Stufen) -- Nur Feedback-Struktur, kein AssignmentType-CRUD mehr! - -**Tab "Ass.-Typen"** (`AssignmentTypeConfig.tsx`): -- AssignmentTypen CRUD -- Pro Typ: Sub-Tabs "Phasen" und "Kriterien" -- Kriterien-Tab: Baumstruktur Dimension → Kategorie → Items (Checkbox, Indeterminate) - -**Tab "Gewichtung"** (`RatingWeightConfig.tsx`, seit 2026-07-02): -- Ein Regler für den Zeitgewichtungs-Faktor des Bewertungs-Vorschlags (`AppSettings.ratingTrendWeightStep`, Tabelle `appSettings`) - -**Tab "Backup"** (`Configuration.tsx`): -- JSON-Export aller Tabellen via `exportFullBackup()` -- JSON-Import via `importFullBackup(file)` (löscht alles, dann bulkAdd) - -## Bekannte offene Punkte (Priorität nach Dringlichkeit) - -### Mittlere Aufgaben -1. **KI-Generierung funktionsunfähig** — `generateWithAi()` schlägt fehl, vermutlich Capgemini-Netzwerk/Firewall blockiert `openrouter.ai`. Root Cause nicht untersucht. - -### Große Aufgaben (eigene Design-Session nötig) -2. **SQLite WASM + OPFS** — Migration weg von IndexedDB. Konzept steht, Implementierung steht aus. -3. **Mehrstufiges, pro Dimension konfigurierbares Prompt-System** — löst den aktuellen Einzel-Prompt in `buildAiPrompt` ab, braucht Spezialwissen je Dimension + Platzhaltersystem. -4. **Selbstlernendes Tagging** — aus bisherigen Zeile-zu-Kriterium-Zuordnungen automatische Tag-Vorschläge beim Tippen ableiten. - -**Erledigt (2026-07-04):** `db/queries/`-Layer eingeführt — DB-Zugriffe aus allen 20 betroffenen Komponenten/Utils in domänenspezifische Query-Funktionen unter `src/db/queries/` extrahiert (Details siehe CLAUDE.md). Dabei die drei unabhängigen Implementierungen der gewichteten-Durchschnitt-Logik auf eine gemeinsame Funktion in `ratingTrend.ts` konsolidiert (Nebeneffekt: fehlender `Σweight===0`-Guard in `AssignmentDetail.tsx` gefixt) sowie die duplizierte `criteriaIds`-Filterlogik und die doppelten Meeting-Export-Queries zusammengeführt. - -**Erledigt (2026-07-03, zweite Runde):** N/A-Aggregationsbug in `buildAiPrompt` gefixt. `FeedbackDraftPage.tsx` vollständig auf `feedbackCriterionItems`/`feedbackCategories` migriert (Notizen jetzt korrekt pro Kriterium über `lineTags`, Score-Anzeige über `RATING_OPTIONS`). Toter Code in `FeedbackStructureConfig.tsx` entfernt. "Dashboard zeigt keine Assignment-Nummer" war bereits gelöst — nur die Doku war veraltet. - -**Erledigt (2026-07-02):** Zeitgewichteter Bewertungs-Vorschlag mit Trend-Erkennung — `src/utils/ratingTrend.ts` berechnet pro Kategorie einen zeitgewichteten Vorschlag aus den Meeting-Assessments (Gewichtungsfaktor konfigurierbar unter Config → Gewichtung, neue Tabelle `appSettings`), erkennt Verbesserung/Verschlechterung über die Laufzeit und zeigt beides als Badge auf `AssignmentFeedbackPage` (mit „Übernehmen" + „Trend in Text übernehmen"). `buildAiPrompt` wurde um einen Trend-Abschnitt erweitert; dabei wurde auch der alte `db.criteria`-Bug mitgefixt. - -**Erledigt (2026-07-03):** Kriterium-Zuordnung für Freitext-Notizen (`ConversationEntry.lineTags`, `CriterionTagPicker.tsx`, nachträglich pro Zeile innerhalb eines zusammenhängenden Sprecher-Blocks). Notation → Bewertungs-Vorschlag in der Gesamtbewertung (`detectNotationRating()`, „Vorschlag aus Protokoll"-Badge + Kategorie-weite 💡-Zähler). `meetingExport.ts` und `dbBackup.ts` gefixt (Legacy-`db.criteria`-Bug bzw. fehlende `appSettings`-Tabelle im Backup). Assignment-Nummer ist jetzt Pflichtfeld. Kriterium-Gewichtung auf `0,0–2,0` verfeinert, dabei einen Division-durch-Null-Bug bei Gewicht `0` in allen gewichteten Mittelwerten gefunden und gefixt. - -## Stil-Regeln (bitte einhalten) - -- **Tailwind v4**: kein `bg-[#0070AD]` via config, direkt als CSS-Variable nicht nötig — `bg-[#0070AD]` im Class-String funktioniert direkt -- **Keine Kommentare** außer für nicht-offensichtliche Invarianten -- **Kein `rows={1}` + JS-Autoresize** — besser View/Edit-Toggle oder `fieldSizing: 'content'` via Inline-Style -- **Rating-Buttons** immer mit `RATING_OPTIONS`-Array (nicht neu definieren): - ```typescript - { value, short, color (inaktiv), active (aktiv) } - ``` -- **Weighted-Average** immer: N/A excludieren, dann `Σ(score×weight)/Σ(weight)` - -## Notations-Parser - -`src/utils/notationParser.tsx` exportiert `` — rendert `+`, `(+)`, `!`, `(!)`, `>`, `[…]` farbig. Überall verwenden wo Protokoll-Text angezeigt wird. - -## DB-Backup - -`src/utils/dbBackup.ts` exportiert: -```typescript -exportFullBackup(): Promise // Download als JSON -importFullBackup(file: File): Promise<{ ok: boolean; error?: string }> // Clears + bulkAdd -``` - -Alle 21 Tabellen-Namen sind in `TABLE_NAMES` aufgelistet — bei neuen Tabellen dort ergänzen (ein fehlender Eintrag fällt nicht auf, bis jemand ein Backup zurückspielt und Daten fehlen — genau so ist `appSettings` einmal vergessen worden, siehe Kommentar über der Liste). - -## Seed-Daten - -`src/main.tsx` ruft beim Start auf: -1. `seedIfEmpty()` — 3 AssignmentTypen + Legacy-Kriterien -2. `seedFeedbackStructureIfEmpty()` — 5 Dimensionen, 14 Kategorien, ~70 Items -3. `seedCriterionMappingsIfEmpty()` — Legacy-Mappings -4. `migrateToUnifiedCriteriaIfNeeded()` — Migration auf FeedbackCategory-IDs in PhaseTemplates - -## Datenschutz-Hinweise - -- Alle Daten lokal — seit 2026-07-04 in `server/data/assignment-monitor.sqlite3` (lokaler Server, kein Cloud-Backend), `server/data/` ist gitignored -- GDPR-relevant: Institutee-Namen + Kundennamen in der DB -- KI-API: OpenRouter, API-Key in localStorage (nicht im Klartext loggen!) -- Backup-JSON enthält alle personenbezogenen Daten → vertraulich behandeln - -## TypeScript-Build +| | | +|---|---| +| Frontend | **React 19** + TypeScript + Vite (PWA) | +| Routing | **React Router 7** (`react-router-dom`) | +| CSS | Tailwind v4 — `@import "tailwindcss"`, Brand `brand` / `#0070AD` | +| Daten | Lokaler **Express** + **`node:sqlite`** (kein better-sqlite3), RPC `POST /api/rpc` | +| Ports (V2) | Frontend **5174**, API **4001** | +| DB-Datei | `server/data/assignment-monitor-v2-dev.sqlite3` (gitignored) | +| Tabellen | **26** — einzige Quelle: `server/db/tableRegistry.ts` | ```bash -npx tsc -b # Muss ohne Fehler durchlaufen — NICHT --noEmit, das prüft am Root nichts (siehe Tech-Stack-Abschnitt) -npm run dev:all # Frontend + lokaler Server zusammen starten +npm run dev:all # Vite :5174 + API :4001 +npx tsc -b # TypeScript — NICHT tsc --noEmit am Root +npm run setup # Starter-Struktur einspielen +npm run pack:zip # Team-ZIP nach dist-release/ (ohne DB) +npm run pack:laptop # Umzug: Code + volle Dev-DB ``` -Vor jeder Abgabe: `npx tsc -b` ausführen und alle Fehler beheben. +--- -## Wichtige Eigenheiten / Fallstricke +## Bewertungsskala (1–10) -1. **`MeetingInstance.generalNotes`**: Kann in alten Datensätzen `undefined` sein → immer `?? ''` fallback -2. **`Assessment.criteriaId`**: Zeigt auf `FeedbackCriterionItem.id`, NICHT auf `FeedbackCategory.id` — das verwirrt, weil der Feldname `criteriaId` ist -3. **`PhaseKey`**: Ist `type PhaseKey = string` (kein Union-Typ mehr) -4. **`aType2`** in `AssignmentDetail.tsx`: Doppelte Variable aus Refactoring — `aType` wird zweimal deklariert, zweite heißt `aType2`. Technische Schuld. -5. **`expandedCat`** in `MeetingView`: `Record` — öffnet pro Institutee genau eine Kategorie gleichzeitig -6. **Backup-Import** (`server/db/queries/backup.ts`, seit 2026-07-04 SQL-basiert): leert alle Tabellen und fügt Zeilen mit expliziter, ursprünglicher `id` wieder ein (`insertRowWithId`), damit Fremdschlüssel-Referenzen im importierten Datensatz stabil bleiben — kein Dexie/`bulkAdd` mehr, siehe CLAUDE.md-Datenbank-Abschnitt -7. **Gewichtete Mittelwerte**: immer `Σ(score×weight)/Σ(weight)`, nie `score×weight` roh interpretieren; bei `Σweight === 0` (seit Gewicht `0` erlaubt ist) `null`/`continue` statt Division — sonst `NaN < x` überall `false` → fällt auf „Fully" durch. Siehe `catMode()` (`AssessmentTab.tsx`) und `buildGroupMeetingScores()` (`ratingTrend.ts`). -8. **`ConversationEntry`** entspricht einem ganzen Sprecher-Turn (mehrzeiliger Text-Block), nicht einer einzelnen Zeile — ein Zwischenstand mit "ein Entry pro Zeile" wurde verworfen. Kriterium-Zuordnung läuft über `lineTags` (Matching per Zeilentext, nicht Index). +```typescript +type RatingScore = number // 1–10 ganzzahlig; unset = null (kein N/A-String mehr) +``` + +- Farbbänder konfigurierbar: Config → **Skala** (`ratingColorBands` in `appSettings`) +- Notation in Protokollen: **führende Zahl** `1`–`10` am Zeilenanfang (`parseNotationPrefix`); `>` Zitat, `[…]` Abschnitte bleiben +- Meeting-Pflichtscore oft auf **Kategorie**-Ebene (`meetingCategoryRatings`); Kriterien bleiben Beobachtungs-/Detail-Ebene +- Aggregation: gewichtet `Σ(score×weight)/Σ(weight)`; `Σweight===0` → null; Details `docs/SCALE_1_TO_10.md` + +**Legacy:** Alte Enum-Skala `not_client_ready` … und Notation `+`/`!` sind abgelöst — nicht neu einbauen. + +--- + +## Datenmodell-Kern + +### `criteriaId`-Semantiken (unverändert kritisch) + +``` +Assessment.criteriaId → FeedbackCriterionItem.id +ConversationSkillScore.criteriaId → FeedbackCategory.id +ConversationLineTag.criterionItemId → FeedbackCriterionItem.id +``` + +### Sichtbare Struktur je Assignment-Typ + +`AssignmentType.criteriaIds` (leer = alle). Kanonisch: + +`resolveVisibleStructure()` / `filterVisibleFeedbackStructure()` in `src/db/queries/feedbackStructure.ts` — nicht erneut inline. + +### Checkliste + +- `PhaseTemplate.hasChecklist` + `checklistItemDefs` / `checklistResponses` +- Effektives Kriterium: Antwort-Override oder Config-`linkedCriterionItemId` (`getEffectiveChecklistCriterionId`) +- UI im Gesprächsprotokoll-Tab (kein eigener Meeting-Tab) +- Tagging: eigener Prompt `checklistTaggingPromptTemplate` (`PUNKT n:`), getrennt vom Protokoll (`ZEILE n:`) + +--- + +## Routing + +``` +/ Dashboard (+ Import Übergabe) +/assignment/new +/assignments/trash | /assignments/archive +/assignment/:id Detail (+ Export Übergabe, PDF) +/assignment/:id/edit +/assignment/:id/history Gesamtprotokoll +/assignment/:id/meeting/:meetingId MeetingView ← meetingId ≠ Assignment-ID +/assignment/:id/feedback/:instituteeId +/assignment/:id/feedback-draft/:instituteeId Legacy +/evaluation | /consultants | /config +``` + +--- + +## Konfiguration (6 Tabs) + +| Tab | Inhalt | +|---|---| +| Feedback | Dimensionen → Kategorien → Kriterien (Gewicht 0,0–2,0) | +| Ass.-Typen | Phasen, Checklisten, Kriterien-Sichtbarkeit, Standard-Zuordnung (KI) | +| Gewichtung | Zeitgewichtungs-Faktor Trend | +| Skala | Farbbänder 1–10 | +| KI-Prompts | Kategorie-/Dimension-Templates, Protokoll- + Checklisten-Tagging | +| Backup | Voll-Backup JSON (Wipe-Import) | + +--- + +## Team & Übergabe + +| Zweck | Wie | +|---|---| +| Frische Struktur ohne Personen | `docs/starter/starter-structure.json` · `npm run setup` | +| ZIP an Kollegen | `npm run pack:zip` → `dist-release/` · Anleitung `EINRICHTUNG.md` | +| Laptop-Umzug (Code + volle DB) | `npm run pack:laptop` → `dist-release/` · Anleitung `UMZUG.md` | +| Assignment an anderen Lead | Detail **↔ Übergabe** / Dashboard **↔ Import** (`assignmentTransfer`) | + +Import prüft Berater per Vor-/Nachname (wiederverwenden oder anlegen); Feedback-Struktur muss auf dem Ziel (Starter) passen. + +--- + +## Stil-Regeln + +- Keine Kommentare außer nicht-offensichtlichen Invarianten +- Kein Auto-Resize-Textarea via `rows={1}` + JS +- Scores: `ScorePicker` / `resolveScoreStyle` / `RATING_SCORES` — keine alten `RATING_OPTIONS`-Enums neu erfinden +- Gewichtete Mittel: immer `weightedAverageScore` / `weightedAverageRating` in `ratingTrend.ts` +- Zeilen splitten: `splitNoteLines()` — nicht `note.split('\n')` inline +- Cross-Boundary: Dateien für Client+Server nur aus `src/db/types.ts` / `src/config/constants.ts` (in `tsconfig.server.json` include) + +--- + +## Datenschutz + +- Daten nur lokal unter V2-`server/data/` · kein Cloud-Upload +- GDPR: Institutee-/Kundennamen, Gesprächsnotizen +- KI-Key in `localStorage` — nie loggen +- Backup- und Übergabe-JSON = personenbezogen → vertraulich +- Produktiv-Backup nicht in V2-Experimente mischen + +--- + +## Fallstricke + +1. `MeetingInstance.generalNotes` → immer `?? ''` +2. `Assessment.criteriaId` ≠ Kategorie-ID +3. `npx tsc --noEmit` am Root prüft nichts — immer `npx tsc -b` +4. V2-Ports 5174/4001 — Start bricht bei 5173/4000 ab +5. Protokoll-Tagging-Prompt in DB darf kein `{{CHECKLISTEN_PUNKTE}}` mehr enthalten (Auto-Migration in `getOrSeedCriterionTaggingPromptTemplate`) +6. Dexie/IndexedDB-Legacy ist entfernt (2026-08-16) — nicht wieder einführen; Struktur über Starter/`npm run setup` diff --git a/docs/SCALE_1_TO_10.md b/docs/SCALE_1_TO_10.md index c3507a8..4812533 100644 --- a/docs/SCALE_1_TO_10.md +++ b/docs/SCALE_1_TO_10.md @@ -14,8 +14,8 @@ Stand: 2026-08-06 · nur DEV (`AssigmentMonitorV2`), Produktiv unberührt. | 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) | -| Struktur | Noch nicht angelegt — parallel in Config pflegbar, kein Blocker für Skalen-Umbau | -| Typ-Strukturen | Prio 2 (später) | +| Struktur | In V2 über Starter/`npm run setup` und Config pflegbar (Stand 2026-08) | +| Typ-Strukturen | Sichtbarkeit über `criteriaIds` + `resolveVisibleStructure` (Cascade 1b) | | Schnelle Zuordnung | `lineTags` / Tag-Picker / Vorschläge bleiben | ### Default-Farbbänder diff --git a/docs/SMOKE_TESTS.md b/docs/SMOKE_TESTS.md new file mode 100644 index 0000000..45ee3b1 --- /dev/null +++ b/docs/SMOKE_TESTS.md @@ -0,0 +1,62 @@ +# Smoke-Tests — Assignment Monitor V2 + +Stand: 2026-08-16 · nur DEV + +## Automatisiert (C0 Kern + C6/C7-Logik) + +```powershell +cd C:\dev\AssigmentMonitorV2 +npm run smoke +``` + +Prüft u.a.: Score-Normalisierung, Default-Farbbänder inkl. Hell-/Dunkelgrün, DB-Roundtrip Farbbänder (stellt vorherigen Stand wieder her), Tagging-Batches, offene Zeilen ohne Tags/Zitate, Prompt Soft/Hard-Limit. + +Kein Browser, keine echte OpenRouter-API. + +--- + +## Manuell — C0 Skala (UI, ~10–15 Min) + +Voraussetzung: `npm run dev:all` → http://localhost:5174 + +### 0.1 / 0.4 Farbbänder + Reload + +1. **Config → Skala** öffnen. +2. Grenzen leicht ändern (z.B. Rot bis 3 statt 2) → speichern. +3. Seite neu laden (F5) → Werte müssen gleich bleiben. +4. Optional: `npm run smoke` danach — Roundtrip bleibt grün; eigene Werte bleiben erhalten. + +### 0.2 / 0.4 Meeting → Chips + +1. Assignment mit Institutee öffnen → Meeting mit Einschätzung. +2. Im Tab **Gesamtbewertung** / Kategorie-Scores Werte setzen (z.B. 2, 6, 9). +3. Speichern / Meeting verlassen. +4. Prüfen: + - **Assignment-Detail**: Chips farbig (rot / hellgrün / dunkelgrün unterscheidbar) + - **📜 Gesamtprotokoll**: gleiche Scores/Farben + - Optional: Meeting-**Export MD** enthält Scores +5. Config → Skala wieder auf Default setzen (falls geändert). + +### 0.3 KI-Prompts Standard + +1. **Config → KI-Prompts** +2. Eine Dimension „Auf Standard zurücksetzen“ (1–10 / Benefits-Concerns-Vorlage). +3. Auf Feedback-Seite Prompt-Vorschau kurz ansehen — Platzhalter/Struktur wirken stimmig. + +**C0 abhaken:** erledigt 2026-08-16 (`npm run smoke` + Abnahme). + +--- + +## Manuell — C6 Batches (optional, ~5 Min) + +1. Meeting mit **≥15 ungetaggten** Protokollzeilen (kein `>`, keine Tags). +2. **🏷 Vorschläge analysieren** (API-Key nötig). +3. Erwartung: Fortschritt `Protokoll-Batch i/n`, Info mit Batch-Anzahl, Rohantwort mit `--- Protokoll-Batch ---`. + +--- + +## Manuell — T4 Feedback kurz (optional) + +1. Assignment → Feedback einer Person. +2. Benefits/Concerns auf Kategorie + Dimension sichtbar; ScorePicker 1–10. +3. PDF Institutee-Feedback: finale Benefits/Concerns, keine `suggested*`. diff --git a/docs/STATUS_UND_OFFENE_PUNKTE.md b/docs/STATUS_UND_OFFENE_PUNKTE.md index e5819f4..56b3e2b 100644 --- a/docs/STATUS_UND_OFFENE_PUNKTE.md +++ b/docs/STATUS_UND_OFFENE_PUNKTE.md @@ -1,118 +1,169 @@ -# Projektstatus und offene Punkte — Assignment Monitor +# Projektstatus und offene Punkte — Assignment Monitor V2 -Stand: 2026-07-03 +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. --- -## Implementierungsstatus +## Kurzfazit -### ✅ Vollständig implementiert - -| Feature | Seite / Datei | -|---|---| -| Dashboard: Assignment-Liste | `Dashboard.tsx` | -| Assignment anlegen (Typ, Institutees, Phasen-Preview) | `AssignmentCreate.tsx` | -| Assignment nachbearbeiten (Nummer, Typ-Wechsel-Warnung, Institutee-Laufzeiten) | `AssignmentEdit.tsx` | -| Phasen-Flow-Ansicht pro Assignment | `AssignmentDetail.tsx` | -| Soft-Delete + Papierkorb für Meetings | `AssignmentDetail.tsx` | -| Bewertungs-Chips je Institutee + Kategorie in der Übersicht | `AssignmentDetail.tsx` | -| Live-Gesprächsprotokoll mit Sprecher-Zeitlinie | `MeetingView.tsx` | -| Schnellnotation (+, !, >, […]) mit farbigem Rendering | `MeetingView.tsx`, `notationParser.tsx` | -| Äh-Counter pro Institutee (live + nachträgliche Anpassung) | `MeetingView.tsx` | -| Gesamtbewertung auf Kriterium-Ebene (Accordion, farbige Kategorie-Header) | `MeetingView.tsx` | -| Auto-Calc Bewertung aus Protokoll-Kategorie-Scores | `MeetingView.tsx` | -| Allgemeine Notizen mit Auto-Resize + Notation-Rendering | `MeetingView.tsx` | -| Meeting-Export: Markdown + JSON, strukturierter Dateiname | `meetingExport.ts` | -| Assignment-Nummer im Dateinamen | `MeetingView.tsx`, `AssignmentDetail.tsx` | -| Strukturiertes Abschluss-Feedback pro Institutee | `AssignmentFeedbackPage.tsx` | -| KI-Feedback-Generierung via OpenRouter | `AssignmentFeedbackPage.tsx` | -| Feedback-Status: Entwurf → Final | `AssignmentFeedbackPage.tsx` | -| Feedback-Dimensionsstruktur CRUD mit Gewichtung (0,0–2,0 in 0,1-Schritten) | `FeedbackStructureConfig.tsx` | -| AssignmentTyp CRUD mit Phasen-Templates | `AssignmentTypeConfig.tsx` | -| Kriterien-Auswahl je Typ (Baumstruktur, Indeterminate) | `AssignmentTypeConfig.tsx` | -| Kriterien-Filterung je Typ in Meetings + Übersicht | `MeetingView.tsx`, `AssignmentDetail.tsx` | -| Vollständiges DB-Backup (JSON Export/Import) | `dbBackup.ts`, `Configuration.tsx` | -| Berater/Gruppen-Verwaltung | `Consultants.tsx` | -| PWA (installierbar, Offline-fähig) | Vite-PWA-Plugin | -| Konfiguration zentralisiert (Farben, Ratings, AI-Settings) | `src/config/constants.ts` | -| `db/index.ts` in types/schema/seeds aufgeteilt (Re-Export bleibt kompatibel) | `src/db/` | -| `MeetingView.tsx` in 3 Dateien aufgeteilt | `src/pages/meeting/` | -| Auswertung auf `feedbackCriterionItems` migriert, nach Assignment gruppiert, Papierkorb/Status gefiltert, N/A-Bug gefixt | `Evaluation.tsx` | -| Zeitgewichteter Bewertungs-Vorschlag mit Trend-Erkennung (konfigurierbarer Gewichtungsfaktor, Vorschlags-Badge auf Feedback-Seite, Trend-Satz-Insertion, KI-Prompt-Erweiterung) | `Evaluation.tsx`, `AssignmentFeedbackPage.tsx`, `src/utils/ratingTrend.ts`, `RatingWeightConfig.tsx` | -| Kriterium-Zuordnung für Freitext-Notizen — pro Zeile innerhalb eines zusammenhängenden Sprecher-Blocks (`ConversationEntry.lineTags`, Matching per Zeilentext), Chip+Popover mit Suche direkt an der Zeile, nachträglich im Protokoll; `buildAiPrompt` führt Assessment- und Konversations-Notizen pro Kriterium zusammen | `ConversationTab.tsx`, `CriterionTagPicker.tsx`, `notationParser.tsx`, `MeetingView.tsx`, `AssignmentFeedbackPage.tsx` | -| Notation → Bewertungs-Vorschlag in der Gesamtbewertung: `!`/`(!)`/`(+)`/`+` an getaggten Zeilen ergeben einen Rating-Vorschlag je Kriterium ("Vorschlag aus Protokoll" + Übernehmen), plus Kategorie-Kopfzeile zeigt Anzahl offener Vorschläge (💡 N) auch zugeklappt | `AssessmentTab.tsx`, `notationParser.tsx` (`detectNotationRating`) | -| Meeting-Export (Markdown) zeigt Kriterium-Namen korrekt (`db.criteria`-Legacy-Bug gefixt) + Kriterium pro getaggter Zeile; Voll-Backup deckt wieder alle Tabellen ab (`appSettings` ergänzt) | `meetingExport.ts`, `dbBackup.ts` | -| Assignment-Nummer ist Pflichtfeld beim Anlegen | `AssignmentCreate.tsx` | -| Kriterium-Gewichtung feiner (0,0–2,0 in 0,1-Schritten statt `×1`–`×5`), inkl. Division-durch-Null-Fix bei Gewicht 0 in allen gewichteten Mittelwerten | `FeedbackStructureConfig.tsx`, `AssessmentTab.tsx`, `ratingTrend.ts` | -| Sprecher eines Protokoll-Beitrags nachträglich änderbar (im Bearbeiten-Modus) | `ConversationTab.tsx`, `MeetingView.tsx` | -| N/A-Aggregationsbug in `buildAiPrompt` gefixt (letzte offene Stelle außer Legacy-Code) | `AssignmentFeedbackPage.tsx` | -| `FeedbackDraftPage.tsx` auf `feedbackCriterionItems`/`feedbackCategories` migriert, Notizen korrekt pro Kriterium über `lineTags` (nicht mehr alle Protokoll-Notizen an jedes Kriterium), Score-Anzeige auf `RATING_OPTIONS`-Labels | `FeedbackDraftPage.tsx` | -| Toter Code (verwaiste AssignmentType/PhaseTemplate-CRUD-Reste) entfernt | `FeedbackStructureConfig.tsx` | +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. --- -## ⚠️ Offene Punkte / Bugs +## Implementierungsstatus (Ist) -### Priorität Hoch +### Kernplattform -| # | Beschreibung | Datei | Aufwand | -|---|---|---|---| -| H1 | **IndexedDB-Robustheit**: Browser kann IndexedDB unter Speicherdruck löschen. Migration zu SQLite WASM + OPFS geplant. Bis dahin: regelmäßige Backups als einzige Sicherheit. | `db/schema.ts` | L (Wochen) | -| H2 | **Backup-Reminder fehlt**: Es gibt keine automatische Erinnerung / keinen Hinweis nach abgeschlossenem Meeting, dass ein Backup erstellt werden sollte. | `pages/meeting/MeetingView.tsx` | S | -| H6 | **KI-Generierung funktionsunfähig**: `generateWithAi()` schlägt beim Ausführen fehl, vermutlich Capgemini-Netzwerk/Firewall blockiert den Call zu `openrouter.ai`. Root Cause noch nicht untersucht. | `AssignmentFeedbackPage.tsx` | ? | -| H7 | **Prompt-System-Neubau (noch nicht gescoped)**: Mehrstufiges, pro Dimension konfigurierbares Prompt-System mit Spezialwissen je Dimension + Platzhaltersystem, löst den aktuellen Einzel-Prompt in `buildAiPrompt` ab. Braucht eigene Design-Session. | `AssignmentFeedbackPage.tsx` | L | - -### Priorität Mittel - -| # | Beschreibung | Datei | Aufwand | -|---|---|---|---| -| M5 | **`db/queries/`-Layer fehlt**: DB-Zugriffe direkt aus Komponenten (`db.*`), keine Abstraktionsschicht. Erschwert die geplante SQLite-Migration (H1). | `src/db/queries/` (neu) | M | -| M6 | **Selbstlernendes Tagging (Idee, noch nicht gescoped)**: Zeile-zu-Kriterium-Zuordnungen sammeln und daraus beim Tippen automatische Tag-Vorschläge ableiten. Braucht eigene Design-Session. | `CriterionTagPicker.tsx` | ? | - -### Priorität Niedrig - -| # | Beschreibung | Datei | Aufwand | -|---|---|---|---| -| N5 | **AssignmentCreate**: Erstellt keine `instituteeEnrollments`. Von/Bis-Daten können nur über Edit gepflegt werden. | `AssignmentCreate.tsx` | S | -| N6 | **Meeting-Route**: URL ist `/assignment/:id/meeting/:meetingId` — `:id` ist die Assignment-ID, aber die Assignment-Nummer (z.B. CGI-2024-001) ist nicht in der URL. Akzeptiert als nice-to-have. | `App.tsx` | M | - ---- - -## Geplante Erweiterungen (Roadmap) - -### SQLite WASM + OPFS (Datenbankevolution) -**Ziel:** Robuste lokale Datenhaltung ohne Installation, ohne Risiko durch Browser-Speicherdruck. -**Technologie:** SQLite compiled to WebAssembly, persistiert via Origin Private File System (OPFS). -**Vorteil:** Echte Datei auf Gerät, nicht löschbar wie IndexedDB. Kein Server nötig. -**Status:** Konzept beschlossen. Implementierung steht aus. Paralleles Backup-System ist die aktuelle Notlösung. - -### Evaluation — Zeitgewichteter Vorschlag (erledigt, 2026-07-02) -Vollständig umgesetzt, siehe `docs/EVALUATION_FEEDBACK_REDESIGN.md` für die Design-Entscheidungen: -- Kategorie-Scores werden über `src/utils/ratingTrend.ts` zeitgewichtet gemittelt (Rang = Reihenfolge der tatsächlich erfolgten Bewertungen dieser Kategorie, nicht fester Meeting-Index); Gewichtungsfaktor konfigurierbar unter Config → Gewichtung (`RatingWeightConfig.tsx`, Tabelle `appSettings`) -- Trend (Verbesserung/Verschlechterung) wird ab 2 bewerteten Meetings pro Kategorie erkannt (Delta ≥ 0,5 Punkte) -- Vorschlags-Badge auf `AssignmentFeedbackPage` dauerhaft sichtbar neben dem manuellen Rating, mit „Übernehmen“ und „Trend in Text übernehmen" (fügt deterministischen Satz in Achievements/Development Needs ein) -- `buildAiPrompt` um Trend-Abschnitt erweitert; dabei auch den Legacy-`db.criteria`-Bug (ehem. M2) gefixt -- `Assessment`- und `FeedbackCategoryRating`-Daten bleiben bewusst getrennte, unabhängige Strukturen — der Vorschlag ist rein additiv - -### Kriterium-Tagging + Notation-Vorschlag (erledigt, 2026-07-03) -- `ConversationEntry.lineTags: { text, criterionItemId }[]` ordnet einzelne Zeilen innerhalb eines Sprecher-Blocks einem Kriterium zu (Matching per exaktem Zeilentext, nicht Index — überlebt nachträgliches Einfügen/Löschen von Zeilen). Ein früherer Zwischenstand mit "ein Entry pro Zeile" wurde verworfen, weil er die Protokoll-Lesbarkeit zerstört hat. -- `detectNotationRating()` (`notationParser.tsx`) mappt `!`/`(!)`/`(+)`/`+` auf eine Bewertungsstufe; kombiniert mit getaggten Zeilen liefert `AssessmentTab.tsx` einen Rating-Vorschlag pro Kriterium-Item ("Vorschlag aus Protokoll"), unabhängig von der bestehenden `ConversationSkillScore`-Kategorie-Schnellbewertung. -- Füllwörter/Weichmacher-Formulierungen werden bewusst nicht über eigene Text-Erkennung behandelt, sondern über ein niedrig gewichtetes Kriterium + normales Tagging abgedeckt. -- Kriterium-Gewichtung dabei auf `0,0–2,0` (0,1-Schritte) verfeinert; ein latenter Division-durch-Null-Bug bei Gewicht `0` in allen gewichteten Mittelwerten (`catMode`, `ratingTrend.ts`) wurde dabei gefunden und gefixt. - -### Dashboard-Verbesserungen (N1 oben) -- Assignment-Nummer anzeigen -- Filtern nach Status (aktiv/abgeschlossen) -- Sortierung nach Datum / Assignment-Nummer - ---- - -## Bekannte Datenkonsistenz-Risiken - -| Risiko | Beschreibung | Mitigation | +| Feature | Status | Ort | |---|---|---| -| `criteriaIds` auf `AssignmentType` | Referenziert `FeedbackCriterionItem.id`. Wenn Kriterien gelöscht werden, bleiben verwaiste IDs in `criteriaIds`. Filter ignoriert fehlende IDs stillschweigend. | Beim Löschen von Items: `criteriaIds` in allen AssignmentTypes bereinigen | -| `Assessment.criteriaId` | Referenziert `FeedbackCriterionItem.id`. Kein FK-Constraint in IndexedDB. | Beim Löschen von Items: zugehörige Assessments löschen | -| `ConversationSkillScore.criteriaId` | Referenziert `FeedbackCategory.id`. Gleiche Gefahr. | Beim Löschen von Kategorien: ConversationSkillScores bereinigen | -| `ConversationEntry.lineTags[].criterionItemId` | Referenziert `FeedbackCriterionItem.id`. Kein FK-Constraint — beim Löschen eines Kriterium-Items bleiben Zeilen-Tags verwaist (Anzeige zeigt dann kein Kriterium mehr, aber Datensatz bleibt). | Beim Löschen von Items: `lineTags` in betroffenen `conversationEntries` bereinigen | -| Typ-Wechsel bei Assignment | Zeigt Warnung, löscht aber keine alten Meeting-Bewertungen. Bewertungen mit IDs aus dem alten Typ-Kriteriensatz bleiben erhalten, werden aber möglicherweise nicht mehr angezeigt. | Dokumentiertes Verhalten, absichtlich so gestaltet | +| 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 | diff --git a/docs/TEAM_SETUP.md b/docs/TEAM_SETUP.md new file mode 100644 index 0000000..2c985a4 --- /dev/null +++ b/docs/TEAM_SETUP.md @@ -0,0 +1,114 @@ +# Team-Setup — Assignment Monitor V2 + +Verteilung an Teammitglieder **nur über dieses Repo** (`AssigmentMonitorV2`). +Das Produktivsystem (`c:\dev\AssigmentMonitor`, Ports 5173/4000) wird **nicht** angefasst und darf nicht verändert werden. + +## Was im Starter-Paket steckt + +Datei: [`docs/starter/starter-structure.json`](./starter/starter-structure.json) + +| Enthalten | Nicht enthalten | +|---|---| +| Feedback-Struktur (Dimensionen, Kategorien, Kriterien) | Personen / Groups / Consultants | +| Dimension-Prompts, Tagging-Prompts, Farbbänder | Assignments, Meetings, Notizen | +| Assignment-Typen, Phasen, Checklisten-Definitionen | Scores, Feedback-Entwürfe, Backups mit Echtdaten | + +`learnedPatternHints` aus echten Protokollen werden beim Export entfernt. + +## Neuinstallation per ZIP (ohne Git) + +1. ZIP entpacken (z.B. nach `C:\dev\AssigmentMonitorV2`) +2. Anleitung im Paket: **`EINRICHTUNG.md`** (Kurzfassung) + +```powershell +cd C:\dev\AssigmentMonitorV2 +copy .env.example .env +npm install +npm run setup +npm run dev:all +``` + +(`npm run setup` = Starter-Struktur; alternativ `npm run bootstrap -- --yes`) + +Öffnen: **http://localhost:5174** + +ZIP erzeugen (Maintainer, nur V2): + +```powershell +npm run pack:zip +``` + +Die Datei liegt unter `dist-release/AssignmentMonitor-Team-YYYY-MM-DD.zip` (gitignored, enthält keine Dev-DB und kein `.env`). + +### Laptop-Umzug (Code + komplette Datenbank) + +Für den eigenen Rechnerwechsel, nicht für Kollegen: + +```powershell +npm run pack:laptop +``` + +Datei: `dist-release/AssignmentMonitor-Umzug-YYYY-MM-DD.zip` — enthält die SQLite unter `server/data/` (personenbezogene Daten). Anleitung im Paket: **`UMZUG.md`**. Am Ziel **kein** `npm run setup` (sonst wird die mitgelieferte DB überschrieben). + +### Assignment-Übergabe (Lead → Lead) + +Nicht das Team-ZIP — sondern ein einzelnes Assignment inkl. Notizen/Checklisten/Beratern: + +- **Export:** Assignment öffnen → **↔ Übergabe** +- **Import:** Dashboard → **↔ Import** + +Voraussetzung: gleiche Feedback-Struktur (Starter) auf beiden Rechnern. Details: `docs/HANDOVER.md`, RPC `assignmentTransfer`. + +## Neuinstallation per Git + +Voraussetzungen: **Node.js 25+** (wegen `node:sqlite`), Git. + +```powershell +git clone +cd AssigmentMonitorV2 +copy .env.example .env +npm install +npm run setup +npm run dev:all +``` + +Öffnen: **http://localhost:5174** (nicht 5173). + +Optional: OpenRouter-API-Key unter **Config → KI-Prompts / Feedback**. + +## Starter aktualisieren (Maintainer, nur V2) + +Nach Änderungen an Struktur/Typen/Checklisten/Prompts in der **eigenen V2-Dev-DB**: + +```powershell +cd C:\dev\AssigmentMonitorV2 +npm run starter:export +git add docs/starter/starter-structure.json +git commit -m "Starter-Paket: Struktur aktualisiert" +``` + +Teammitglieder holen die Datei per `git pull` und spielen bei Bedarf neu ein: + +```powershell +npm run bootstrap -- --yes +``` + +**Achtung:** `bootstrap` löscht die lokale V2-Dev-DB-Inhalte (Meetings etc.) und ersetzt sie durch das Starter-Paket. + +## Sicherheitsregeln + +- Nie Produktiv-Ordner, -Ports (5173/4000) oder Produktiv-SQLite verwenden — siehe [`DEV_ISOLATION.md`](./DEV_ISOLATION.md). +- Starter-Skripte brechen ab bei `API_PORT=4000`, `PORT=5173` oder Dateiname `assignment-monitor.sqlite3`. +- Kein Produktiv-Backup in V2 importieren, wenn ihr nur Struktur teilen wollt. + +## npm-Scripts + +| Script | Zweck | +|---|---| +| `npm run starter:export` | Struktur aus V2-Dev-DB → `docs/starter/starter-structure.json` | +| `npm run bootstrap -- --yes` | Starter in V2-Dev-DB einspielen (Wipe) | +| `npm run setup` | Wie bootstrap + legt `.env` an falls fehlend | +| `npm run pack:zip` | Versandfertiges Team-ZIP nach `dist-release/` (ohne DB) | +| `npm run pack:laptop` | Laptop-Umzug: Code + komplette Dev-DB nach `dist-release/` | +| `npm run db:reset` | Nur Dev-DB-Datei löschen (leere DB beim nächsten Start) | +| `npm run dev:all` | Frontend :5174 + API :4001 | diff --git a/docs/TECHNISCHE_ARCHITEKTUR.md b/docs/TECHNISCHE_ARCHITEKTUR.md index 061bd9a..de2d98a 100644 --- a/docs/TECHNISCHE_ARCHITEKTUR.md +++ b/docs/TECHNISCHE_ARCHITEKTUR.md @@ -1,5 +1,7 @@ # Technische Architektur — Assignment Monitor +> **Stand Hinweis (2026-08-16):** Dieses Dokument ist **historisch** (React 18, Dexie/IndexedDB, Router 6, Enum-Skala). Aktueller Stack: React 19, Router 7, Express + `node:sqlite`, Skala 1–10 — siehe [`HANDOVER.md`](./HANDOVER.md), [`STATUS_UND_OFFENE_PUNKTE.md`](./STATUS_UND_OFFENE_PUNKTE.md). Bei Widerspruch gewinnen HANDOVER/STATUS/Code. + ## Stack | Schicht | Technologie | Version | Zweck | diff --git a/docs/starter/README.md b/docs/starter/README.md new file mode 100644 index 0000000..a99a5fc --- /dev/null +++ b/docs/starter/README.md @@ -0,0 +1,8 @@ +# Starter-Struktur + +Maschinell erzeugtes Paket für Team-Onboarding — **ohne personenbezogene Daten**. + +- Erzeugen: `npm run starter:export` (nur AssignmentMonitorV2) +- Einspielen: `npm run bootstrap -- --yes` + +Siehe [`../TEAM_SETUP.md`](../TEAM_SETUP.md). diff --git a/docs/starter/starter-structure.json b/docs/starter/starter-structure.json new file mode 100644 index 0000000..62db982 --- /dev/null +++ b/docs/starter/starter-structure.json @@ -0,0 +1,1407 @@ +{ + "kind": "assignment-monitor-starter", + "version": 1, + "exportedAt": "2026-08-13T07:51:59.743Z", + "note": "Nur Struktur/Config — keine Personen, Assignments oder Meetings. Nur für AssignmentMonitorV2.", + "tables": { + "categories": [], + "criteria": [], + "assignmentTypes": [ + { + "id": 1, + "name": "Standard Assignment", + "defaultPhaseKeys": [], + "criteriaIds": [] + }, + { + "id": 2, + "name": "CxO Case - Roleplay", + "defaultPhaseKeys": [], + "criteriaIds": [ + 220, + 227, + 235, + 241, + 248, + 256, + 263, + 271, + 221, + 228, + 236, + 242, + 249, + 257, + 264, + 272, + 222, + 229, + 237, + 243, + 250, + 258, + 265, + 273, + 223, + 230, + 238, + 244, + 251, + 259, + 266, + 274, + 224, + 231, + 239, + 245, + 252, + 260, + 267, + 275, + 225, + 232, + 240, + 246, + 253, + 261, + 268, + 276, + 226, + 233, + 247, + 254, + 262, + 269, + 277, + 234, + 255, + 270 + ] + } + ], + "phaseTemplates": [ + { + "id": 1, + "assignmentTypeId": 1, + "phaseKey": "pre_briefing", + "label": "pre Briefing", + "withWhom": "lead", + "isRepeatable": false, + "hasConversation": true, + "hasAssessment": true, + "hasChecklist": true, + "criteriaIds": [], + "order": 1 + }, + { + "id": 2, + "assignmentTypeId": 1, + "phaseKey": "briefing", + "label": "Briefing", + "withWhom": "client", + "isRepeatable": false, + "hasConversation": true, + "hasAssessment": true, + "hasChecklist": false, + "criteriaIds": [], + "order": 2 + }, + { + "id": 3, + "assignmentTypeId": 1, + "phaseKey": "alignment", + "label": "Alignment", + "withWhom": "client", + "isRepeatable": true, + "hasConversation": true, + "hasAssessment": true, + "hasChecklist": false, + "criteriaIds": [], + "order": 3 + }, + { + "id": 4, + "assignmentTypeId": 1, + "phaseKey": "pre_delivery", + "label": "pre Delivery", + "withWhom": "lead", + "isRepeatable": false, + "hasConversation": true, + "hasAssessment": true, + "hasChecklist": true, + "criteriaIds": [], + "order": 4 + }, + { + "id": 5, + "assignmentTypeId": 1, + "phaseKey": "delivery", + "label": "Delivery", + "withWhom": "client", + "isRepeatable": false, + "hasConversation": true, + "hasAssessment": true, + "hasChecklist": true, + "criteriaIds": [], + "order": 5 + }, + { + "id": 6, + "assignmentTypeId": 2, + "phaseKey": "cxo_gespräch", + "label": "CxO Gespräch", + "withWhom": "client", + "isRepeatable": false, + "hasConversation": true, + "hasAssessment": true, + "hasChecklist": true, + "criteriaIds": [], + "order": 1 + }, + { + "id": 7, + "assignmentTypeId": 2, + "phaseKey": "self-assessment", + "label": "Self-Assessment", + "withWhom": "lead", + "isRepeatable": false, + "hasConversation": true, + "hasAssessment": false, + "hasChecklist": false, + "criteriaIds": [], + "order": 2 + } + ], + "groups": [], + "consultants": [], + "assignments": [], + "meetingInstances": [], + "conversationEntries": [], + "conversationSkillScores": [], + "assessments": [], + "meetingCategoryRatings": [], + "feedbackDrafts": [], + "feedbackDimensions": [ + { + "id": 10, + "name": "Client-Readiness", + "order": 1 + }, + { + "id": 11, + "name": "AI-Readiness", + "order": 2 + }, + { + "id": 12, + "name": "Culture-Readiness", + "order": 3 + } + ], + "feedbackCategories": [ + { + "id": 49, + "dimensionId": 10, + "name": "Problem Structuring", + "order": 1, + "description": "Übersetzt eine zunächst offene oder komplexe Kundenfragestellung in eine präzise, logisch gegliederte und bearbeitbare Problemstruktur, die eine fokussierte Analyse und zielgerichtete Entscheidungsfindung ermöglicht." + }, + { + "id": 50, + "dimensionId": 10, + "name": "Problem Solving", + "order": 2, + "description": "Bearbeitet strukturierte Fragestellungen analytisch belastbar, pragmatisch und ergebnisorientiert. Entwickelt aus Fakten und Erkenntnissen umsetzbare Optionen, Entscheidungen und Empfehlungen." + }, + { + "id": 51, + "dimensionId": 10, + "name": "Storylining", + "order": 3, + "description": "Verdichtet komplexe Inhalte zu einer logisch schlüssigen, adressatengerechten und entscheidungsorientierten Argumentationslinie, die Kernbotschaften klar transportiert." + }, + { + "id": 52, + "dimensionId": 10, + "name": "Precise Communication", + "order": 4, + "description": "Nimmt Informationen aktiv auf und kommuniziert mündlich wie schriftlich klar, prägnant, adressatengerecht und handlungsorientiert." + }, + { + "id": 53, + "dimensionId": 10, + "name": "Client Intimacy Building", + "order": 5, + "description": "Baut professionelle, vertrauensvolle Kundenbeziehungen auf, versteht fachliche und persönliche Stakeholderbedürfnisse und entwickelt sich vom Ausführenden zum wirksamen Berater." + }, + { + "id": 54, + "dimensionId": 10, + "name": "Quality of Deliverables", + "order": 6, + "description": "Erstellt fachlich belastbare, konsistente und professionell aufbereitete Arbeitsergebnisse, die für den Kunden verständlich, relevant und unmittelbar nutzbar sind." + }, + { + "id": 55, + "dimensionId": 10, + "name": "Proposal Writing & Value Proposition Design", + "order": 7, + "description": "Übersetzt einen Kundenbedarf in ein überzeugendes, differenziertes und realistisch lieferbares Leistungsversprechen mit klarer Wirkung, Vorgehensweise und Nutzenargumentation." + }, + { + "id": 56, + "dimensionId": 10, + "name": "Workshop Design & Facilitation", + "order": 8, + "description": "Konzipiert und moderiert Workshops so, dass relevante Beteiligte fokussiert zusammenarbeiten, belastbare Ergebnisse erzielen und klare Entscheidungen oder nächste Schritte vereinbaren." + }, + { + "id": 57, + "dimensionId": 11, + "name": "AI Fundamentals", + "order": 1, + "description": "Versteht Funktionsweise, Einsatzvoraussetzungen, Chancen, Grenzen und Risiken von KI auf einem für die Beratung angemessenen Niveau und handelt verantwortungsvoll." + }, + { + "id": 58, + "dimensionId": 11, + "name": "AI-Augmented Consulting", + "order": 2, + "description": "Integriert KI gezielt und verantwortungsvoll in typische Beratungsaufgaben, um Qualität, Geschwindigkeit und Erkenntnisgewinn zu verbessern, ohne die Verantwortung für Ergebnisse abzugeben." + }, + { + "id": 59, + "dimensionId": 11, + "name": "AI Certification", + "order": 3, + "description": "Dokumentiert formale, rollenbezogene KI-Qualifikationsnachweise. Da Zertifizierungen primär einen Nachweisstatus und kein beobachtbares Verhalten darstellen, sollten diese Kriterien möglichst als erfüllt, nicht erfüllt oder nicht erforderlich geführt werden." + }, + { + "id": 60, + "dimensionId": 12, + "name": "Quality Excellence", + "order": 1, + "description": "Verankert Qualität als kontinuierliche Arbeitsweise und sorgt durch Standards, Reviews und kritische Prüfung dafür, dass belastbare Ergebnisse reproduzierbar entstehen." + }, + { + "id": 61, + "dimensionId": 12, + "name": "Drive (Extra Mile)", + "order": 2, + "description": "Zeigt wirkungsorientierte Initiative, Ausdauer und Gestaltungswillen und leistet bei relevantem Mehrwert bewusst mehr als das formal Geforderte. Bewertet wird nicht die Anzahl der Arbeitsstunden, sondern der zusätzliche Beitrag zum Ergebnis." + }, + { + "id": 62, + "dimensionId": 12, + "name": "Ownership", + "order": 3, + "description": "Übernimmt End-to-End-Verantwortung für übertragene Aufgaben und angestrebte Ergebnisse, steuert die eigene Arbeit aktiv und schafft jederzeit Transparenz über Fortschritt, Risiken und Handlungsbedarf." + }, + { + "id": 63, + "dimensionId": 12, + "name": "Coachability", + "order": 4, + "description": "Nutzt Feedback, Reflexion und neue Erfahrungen aktiv zur Weiterentwicklung und zeigt nachvollziehbare Verhaltensänderungen über mehrere Assignments hinweg." + }, + { + "id": 64, + "dimensionId": 12, + "name": "Collaboration", + "order": 5, + "description": "Arbeitet verlässlich, respektvoll und lösungsorientiert mit anderen zusammen, stärkt den gemeinsamen Teamerfolg und nutzt unterschiedliche Perspektiven und Fähigkeiten konstruktiv." + } + ], + "feedbackCriterionItems": [ + { + "id": 220, + "categoryId": 49, + "name": "Problem- und Zielklarheit", + "weight": 1, + "order": 1, + "description": "Klärt Ausgangslage, eigentliches Problem, angestrebtes Ergebnis und relevante Entscheidung, bevor mit der Bearbeitung begonnen wird.", + "learnedPatternHints": null + }, + { + "id": 221, + "categoryId": 49, + "name": "Scope-Klarheit", + "weight": 1, + "order": 2, + "description": "Grenzt Untersuchungsgegenstand, Betrachtungszeitraum, Stakeholder, Annahmen und Nicht-Ziele nachvollziehbar ab.", + "learnedPatternHints": null + }, + { + "id": 222, + "categoryId": 49, + "name": "Logische Zerlegung", + "weight": 1, + "order": 3, + "description": "Zerlegt komplexe Fragestellungen in verständliche, trennscharfe und gemeinsam hinreichend vollständige Teilfragen.", + "learnedPatternHints": null + }, + { + "id": 223, + "categoryId": 49, + "name": "Hypothesenorientierung", + "weight": 1, + "order": 4, + "description": "Formuliert frühzeitig plausible, überprüfbare Hypothesen und nutzt sie zur Steuerung der weiteren Analyse.", + "learnedPatternHints": null + }, + { + "id": 224, + "categoryId": 49, + "name": "Priorisierung nach Relevanz", + "weight": 1, + "order": 5, + "description": "Fokussiert die Struktur auf die entscheidungs- und wirkungsrelevanten Fragestellungen und vermeidet unnötige Analysebreite.", + "learnedPatternHints": null + }, + { + "id": 225, + "categoryId": 49, + "name": "Treiber- und Abhängigkeitsverständnis", + "weight": 1, + "order": 6, + "description": "Erkennt wesentliche Ursachen, Wirkzusammenhänge, Abhängigkeiten und Wechselwirkungen innerhalb der Fragestellung.", + "learnedPatternHints": null + }, + { + "id": 226, + "categoryId": 49, + "name": "Ableitung eines Analyseplans", + "weight": 1, + "order": 7, + "description": "Übersetzt die Problemstruktur in konkrete Arbeitsschritte, benötigte Informationen, Verantwortlichkeiten und sinnvolle Prüfsequenzen.", + "learnedPatternHints": null + }, + { + "id": 227, + "categoryId": 50, + "name": "Fakten- und Evidenzorientierung", + "weight": 1, + "order": 1, + "description": "Stützt Aussagen auf belastbare Daten, Quellen, Interviews, Analysen oder transparent hergeleitete Annahmen.", + "learnedPatternHints": null + }, + { + "id": 228, + "categoryId": 50, + "name": "Methodengerechte Analyse", + "weight": 1, + "order": 2, + "description": "Wählt geeignete qualitative und quantitative Methoden aus und wendet sie fachlich korrekt und zweckmäßig an.", + "learnedPatternHints": null + }, + { + "id": 229, + "categoryId": 50, + "name": "Kritische Prüfung von Informationen", + "weight": 1, + "order": 3, + "description": "Hinterfragt Datenqualität, Quellen, Annahmen, Widersprüche und mögliche Verzerrungen, statt Ergebnisse ungeprüft zu übernehmen.", + "learnedPatternHints": null + }, + { + "id": 230, + "categoryId": 50, + "name": "Hypothesenprüfung und Iteration", + "weight": 1, + "order": 4, + "description": "Prüft Hypothesen systematisch, verwirft oder schärft sie anhand neuer Erkenntnisse und passt das Vorgehen entsprechend an.", + "learnedPatternHints": null + }, + { + "id": 231, + "categoryId": 50, + "name": "Entwicklung von Lösungsoptionen", + "weight": 1, + "order": 5, + "description": "Entwickelt mehrere relevante Handlungsoptionen und macht deren Unterschiede, Vor- und Nachteile sowie Konsequenzen sichtbar.", + "learnedPatternHints": null + }, + { + "id": 232, + "categoryId": 50, + "name": "Impact- und Value-Orientierung", + "weight": 1, + "order": 6, + "description": "Richtet Analyse, Vorgehen und Lösung auf den höchsten realistischen Kundennutzen aus. Hinterfragt bei Bedarf den ursprünglich gewünschten Deliverable-Typ und entwickelt wirkungsvollere Alternativen, ohne Ziel, Scope, Risiken oder Umsetzbarkeit eigenmächtig zu verändern.", + "learnedPatternHints": null + }, + { + "id": 233, + "categoryId": 50, + "name": "Machbarkeit und Realitätsnähe", + "weight": 1, + "order": 7, + "description": "Berücksichtigt organisatorische, technische, wirtschaftliche und zeitliche Rahmenbedingungen bei der Lösungsentwicklung.", + "learnedPatternHints": null + }, + { + "id": 234, + "categoryId": 50, + "name": "Entscheidungsorientierte Empfehlung", + "weight": 1, + "order": 8, + "description": "Verdichtet Analyseergebnisse zu einer klaren Empfehlung mit Begründung, Auswirkungen, Risiken und nächsten Schritten.", + "learnedPatternHints": null + }, + { + "id": 235, + "categoryId": 51, + "name": "Answer First / Kernaussage", + "weight": 1, + "order": 1, + "description": "Stellt die zentrale Aussage, Empfehlung oder Antwort frühzeitig und eindeutig heraus.", + "learnedPatternHints": null + }, + { + "id": 236, + "categoryId": 51, + "name": "Logische Argumentationsstruktur", + "weight": 1, + "order": 2, + "description": "Ordnet Aussagen so, dass Schlussfolgerungen nachvollziehbar aus Fakten, Analysen und Teilargumenten hervorgehen.", + "learnedPatternHints": null + }, + { + "id": 237, + "categoryId": 51, + "name": "Relevanz und Fokus", + "weight": 1, + "order": 3, + "description": "Beschränkt die Storyline auf Inhalte, die für Fragestellung, Zielgruppe und Entscheidung tatsächlich erforderlich sind.", + "learnedPatternHints": null + }, + { + "id": 238, + "categoryId": 51, + "name": "Belegführung", + "weight": 1, + "order": 4, + "description": "Verknüpft Kernaussagen sichtbar mit belastbaren Fakten, Analysen und nachvollziehbaren Begründungen.", + "learnedPatternHints": null + }, + { + "id": 239, + "categoryId": 51, + "name": "Managementgerechte Dramaturgie", + "weight": 1, + "order": 5, + "description": "Führt verständlich von Ausgangslage und Handlungsdruck über Erkenntnisse zu Empfehlung, Wirkung und nächstem Schritt.", + "learnedPatternHints": null + }, + { + "id": 240, + "categoryId": 51, + "name": "Konsistenz über Medien und Beiträge", + "weight": 1, + "order": 6, + "description": "Hält Botschaften, Begriffe, Zahlen und Argumentationslogik über Folien, Dokumente und mündliche Beiträge hinweg widerspruchsfrei.", + "learnedPatternHints": null + }, + { + "id": 241, + "categoryId": 52, + "name": "Active Listening", + "weight": 1, + "order": 1, + "description": "Hört aufmerksam zu, erfasst Inhalt und Kontext und greift relevante Aussagen, Bedenken und Signale gezielt auf.", + "learnedPatternHints": null + }, + { + "id": 242, + "categoryId": 52, + "name": "Präzise Fragetechnik", + "weight": 1, + "order": 2, + "description": "Stellt klare, relevante und aufeinander aufbauende Fragen, die Verständnis, Erkenntnisgewinn oder Entscheidung fördern.", + "learnedPatternHints": null + }, + { + "id": 243, + "categoryId": 52, + "name": "To the Point", + "weight": 1, + "order": 3, + "description": "Formuliert die wesentliche Aussage ohne unnötige Vorrede, Wiederholungen oder Nebenpfade.", + "learnedPatternHints": null + }, + { + "id": 244, + "categoryId": 52, + "name": "Adressatengerechte Kommunikation", + "weight": 1, + "order": 4, + "description": "Passt Tonalität, Detailtiefe, Begriffswahl und Kommunikationsstil an Zielgruppe, Hierarchie und Situation an.", + "learnedPatternHints": null + }, + { + "id": 245, + "categoryId": 52, + "name": "Sprachliche Klarheit und Verbindlichkeit", + "weight": 1, + "order": 5, + "description": "Verwendet eindeutige Formulierungen und vermeidet unnötige Füllwörter, Weichmacher, Mehrdeutigkeit und Scheingenauigkeit.", + "learnedPatternHints": null + }, + { + "id": 246, + "categoryId": 52, + "name": "Recap und Verständnissicherung", + "weight": 1, + "order": 6, + "description": "Fasst Kernaussagen, Entscheidungen, offene Punkte und nächste Schritte prägnant zusammen und prüft gemeinsames Verständnis.", + "learnedPatternHints": null + }, + { + "id": 247, + "categoryId": 52, + "name": "Souveräne Präsenz", + "weight": 1, + "order": 7, + "description": "Tritt ruhig, vorbereitet, klar und entscheidungsorientiert auf. Behält auch bei kritischen Rückfragen, Widerspruch oder unvollständigen Informationen die Handlungsfähigkeit, unterscheidet sicher zwischen Fakten, Annahmen und offenen Punkten und vermittelt Orientierung, ohne Sicherheit vorzutäuschen.", + "learnedPatternHints": null + }, + { + "id": 248, + "categoryId": 53, + "name": "Verständnis des Kundenkontexts", + "weight": 1, + "order": 1, + "description": "Erfasst Ziele, Geschäftsmodell, Prioritäten, Restriktionen, Entscheidungslogiken und relevante Rahmenbedingungen des Kunden.", + "learnedPatternHints": null + }, + { + "id": 249, + "categoryId": 53, + "name": "Stakeholderverständnis", + "weight": 1, + "order": 2, + "description": "Erkennt Interessen, Einfluss, Erwartungen und mögliche Widerstände relevanter Stakeholder und berücksichtigt sie im Vorgehen.", + "learnedPatternHints": null + }, + { + "id": 250, + "categoryId": 53, + "name": "Vertrauensaufbau und Beziehungsqualität", + "weight": 1, + "order": 3, + "description": "Schafft durch Verlässlichkeit, Integrität, professionelles Verhalten und respektvolle Zusammenarbeit eine belastbare Arbeitsbeziehung.", + "learnedPatternHints": null + }, + { + "id": 251, + "categoryId": 53, + "name": "Fachliche Glaubwürdigkeit und Kompetenzwahrnehmung", + "weight": 1, + "order": 4, + "description": "Wird durch fachliche Substanz, Kundenverständnis, klare Einordnung und belastbare Empfehlungen als relevanter und kompetenter Ansprechpartner wahrgenommen. Gibt Orientierung und macht zugleich Grenzen des eigenen Wissens transparent.", + "learnedPatternHints": null + }, + { + "id": 252, + "categoryId": 53, + "name": "Aktives Erwartungsmanagement", + "weight": 1, + "order": 5, + "description": "Klärt Ziele, Rollen, Umfang, Annahmen, Risiken und Liefererwartungen und steuert Abweichungen frühzeitig nach.", + "learnedPatternHints": null + }, + { + "id": 253, + "categoryId": 53, + "name": "Active Advisory und Customer Steering", + "weight": 1, + "order": 6, + "description": "Führt den Kunden aktiv durch Fragestellungen, Optionen, Konsequenzen und notwendige Entscheidungen. Spricht klare Empfehlungen aus und verhindert eine rein ausführende Rolle, ohne die Entscheidungsverantwortung des Kunden zu übergehen.", + "learnedPatternHints": null + }, + { + "id": 254, + "categoryId": 53, + "name": "Konstruktives Challengen", + "weight": 1, + "order": 7, + "description": "Hinterfragt Annahmen oder Kundenwünsche respektvoll, faktenbasiert und lösungsorientiert, wenn dies dem Ergebnis dient.", + "learnedPatternHints": null + }, + { + "id": 255, + "categoryId": 53, + "name": "Beziehungsentwicklung über den Einzeltermin hinaus", + "weight": 1, + "order": 8, + "description": "Pflegt relevante Kontakte, erkennt Anschlussbedarfe und schafft Kontinuität in der Zusammenarbeit, ohne aufdringlich oder rein vertriebsorientiert zu handeln.", + "learnedPatternHints": null + }, + { + "id": 256, + "categoryId": 54, + "name": "Fachliche Richtigkeit", + "weight": 1, + "order": 1, + "description": "Inhalte, Berechnungen, Aussagen und Schlussfolgerungen sind fachlich korrekt und belastbar.", + "learnedPatternHints": null + }, + { + "id": 257, + "categoryId": 54, + "name": "Inhaltliche Vollständigkeit", + "weight": 1, + "order": 2, + "description": "Deckt die für Fragestellung und Entscheidung relevanten Aspekte, Perspektiven und Auswirkungen angemessen ab.", + "learnedPatternHints": null + }, + { + "id": 258, + "categoryId": 54, + "name": "Logische Konsistenz", + "weight": 1, + "order": 3, + "description": "Stellt sicher, dass Aussagen, Zahlen, Argumente und Empfehlungen in sich sowie untereinander widerspruchsfrei sind.", + "learnedPatternHints": null + }, + { + "id": 259, + "categoryId": 54, + "name": "Kundenspezifische Konkretisierung", + "weight": 1, + "order": 4, + "description": "Überträgt generische Erkenntnisse sichtbar auf Situation, Sprache, Daten und Handlungsrealität des Kunden.", + "learnedPatternHints": null + }, + { + "id": 260, + "categoryId": 54, + "name": "Informationsdichte und Nutzbarkeit", + "weight": 1, + "order": 5, + "description": "Wählt eine angemessene Detailtiefe und ermöglicht dem Adressaten, Kernaussagen und Handlungsbedarf schnell zu erfassen.", + "learnedPatternHints": null + }, + { + "id": 261, + "categoryId": 54, + "name": "Visualisierungs- und Darstellungsqualität", + "weight": 1, + "order": 6, + "description": "Nutzt Struktur, Layout, Tabellen, Grafiken und Visualisierungen so, dass sie Verständnis und Botschaft wirksam unterstützen.", + "learnedPatternHints": null + }, + { + "id": 262, + "categoryId": 54, + "name": "Formale Qualität und Standardkonformität", + "weight": 1, + "order": 7, + "description": "Hält relevante Templates, Designvorgaben, Sprache, Quellenangaben, Versionierung und Dokumentationsstandards konsequent ein.", + "learnedPatternHints": null + }, + { + "id": 263, + "categoryId": 55, + "name": "Verständnis von Bedarf und Buying Context", + "weight": 1, + "order": 1, + "description": "Erfasst Problem, Auslöser, Zielbild, Entscheidungskriterien, Stakeholder und Beschaffungskontext hinter der Anfrage.", + "learnedPatternHints": null + }, + { + "id": 264, + "categoryId": 55, + "name": "Klare Value Proposition", + "weight": 1, + "order": 2, + "description": "Formuliert prägnant, welchen konkreten Nutzen und welche angestrebten Ergebnisse das Angebot für den Kunden erzeugt.", + "learnedPatternHints": null + }, + { + "id": 265, + "categoryId": 55, + "name": "Kundenspezifische Differenzierung", + "weight": 1, + "order": 3, + "description": "Verbindet Kundenbedarf mit relevanten Fähigkeiten, Erfahrungen, Assets und unterscheidbaren Stärken des eigenen Angebots.", + "learnedPatternHints": null + }, + { + "id": 266, + "categoryId": 55, + "name": "Schlüssiger Scope und Deliverables", + "weight": 1, + "order": 4, + "description": "Beschreibt Leistungsumfang, Ergebnisse, Grenzen und Verantwortlichkeiten klar und vermeidet Interpretationsspielräume.", + "learnedPatternHints": null + }, + { + "id": 267, + "categoryId": 55, + "name": "Plausibles Vorgehensmodell", + "weight": 1, + "order": 5, + "description": "Entwickelt einen nachvollziehbaren Ansatz mit Arbeitspaketen, Meilensteinen, Beteiligten und Entscheidungszeitpunkten.", + "learnedPatternHints": null + }, + { + "id": 268, + "categoryId": 55, + "name": "Belastbare Annahmen und Machbarkeit", + "weight": 1, + "order": 6, + "description": "Macht Voraussetzungen, Abhängigkeiten, Risiken und Mitwirkungspflichten transparent und verspricht nur realistisch Lieferbares.", + "learnedPatternHints": null + }, + { + "id": 269, + "categoryId": 55, + "name": "Kommerzielles Verständnis", + "weight": 1, + "order": 7, + "description": "Berücksichtigt Aufwand, Preislogik, Wirtschaftlichkeit, Risiken und den für beide Seiten tragfähigen Zuschnitt des Angebots.", + "learnedPatternHints": null + }, + { + "id": 270, + "categoryId": 55, + "name": "Überzeugende Angebotsstory", + "weight": 1, + "order": 8, + "description": "Verbindet Kundensituation, Handlungsdruck, Lösung, Nutzen, Vorgehen und Glaubwürdigkeit zu einer konsistenten Entscheidungsgrundlage.", + "learnedPatternHints": null + }, + { + "id": 271, + "categoryId": 56, + "name": "Ziel- und Ergebnisdefinition", + "weight": 1, + "order": 1, + "description": "Klärt vorab, welches konkrete Ergebnis, welche Entscheidung oder welcher Arbeitsfortschritt im Workshop erreicht werden soll.", + "learnedPatternHints": null + }, + { + "id": 272, + "categoryId": 56, + "name": "Teilnehmer- und Stakeholderdesign", + "weight": 1, + "order": 2, + "description": "Bindet die für Inhalt, Entscheidung und Umsetzung relevanten Personen mit passenden Rollen ein.", + "learnedPatternHints": null + }, + { + "id": 273, + "categoryId": 56, + "name": "Dramaturgie und Methodenauswahl", + "weight": 1, + "order": 3, + "description": "Entwickelt eine logische Agenda und wählt Methoden, die Ziel, Teilnehmergruppe, Zeit und Arbeitsmodus unterstützen.", + "learnedPatternHints": null + }, + { + "id": 274, + "categoryId": 56, + "name": "Vorbereitung und Arbeitsfähigkeit", + "weight": 1, + "order": 4, + "description": "Stellt Inhalte, Leitfragen, Daten, Materialien, Technik, Rollen und organisatorische Voraussetzungen rechtzeitig bereit.", + "learnedPatternHints": null + }, + { + "id": 275, + "categoryId": 56, + "name": "Zielgerichtete Moderation", + "weight": 1, + "order": 5, + "description": "Führt verständlich durch den Prozess, hält Fokus und Zeit und macht Übergänge sowie Arbeitsaufträge klar.", + "learnedPatternHints": null + }, + { + "id": 276, + "categoryId": 56, + "name": "Aktivierung und Gruppendynamik", + "weight": 1, + "order": 6, + "description": "Fördert ausgewogene Beteiligung, geht konstruktiv mit Dominanz, Zurückhaltung, Konflikten und Abschweifungen um.", + "learnedPatternHints": null + }, + { + "id": 277, + "categoryId": 56, + "name": "Ergebnissicherung und Follow-up", + "weight": 1, + "order": 7, + "description": "Verdichtet Diskussionen, dokumentiert Entscheidungen, Verantwortlichkeiten und nächste Schritte und stellt eine klare Nachbereitung sicher.", + "learnedPatternHints": null + }, + { + "id": 278, + "categoryId": 57, + "name": "Grundverständnis generativer KI", + "weight": 1, + "order": 1, + "description": "Erklärt in angemessener Tiefe, wie Modelle, Trainingsdaten, Kontext, Prompts und probabilistische Ausgabe die Ergebnisse beeinflussen.", + "learnedPatternHints": null + }, + { + "id": 279, + "categoryId": 57, + "name": "Use-Case-Eignung beurteilen", + "weight": 1, + "order": 2, + "description": "Erkennt, für welche Aufgaben KI sinnvoll ist und wo menschliche Expertise, klassische Analyse oder andere Werkzeuge geeigneter sind.", + "learnedPatternHints": null + }, + { + "id": 280, + "categoryId": 57, + "name": "Grenzen und Fehlerbilder erkennen", + "weight": 1, + "order": 3, + "description": "Berücksichtigt insbesondere Halluzinationen, Bias, fehlende Aktualität, Scheingenauigkeit, Kontextverlust und unvollständige Quellenlage.", + "learnedPatternHints": null + }, + { + "id": 281, + "categoryId": 57, + "name": "Datenschutz und Vertraulichkeit", + "weight": 1, + "order": 4, + "description": "Behandelt Kunden-, Personen- und Unternehmensdaten entsprechend den geltenden Sicherheits-, Datenschutz- und Vertraulichkeitsvorgaben.", + "learnedPatternHints": null + }, + { + "id": 282, + "categoryId": 57, + "name": "Responsible-AI-Verständnis", + "weight": 1, + "order": 5, + "description": "Berücksichtigt ethische, rechtliche, sicherheitsbezogene und gesellschaftliche Auswirkungen beim Einsatz von KI.", + "learnedPatternHints": null + }, + { + "id": 283, + "categoryId": 57, + "name": "Qualitätssicherung von KI-Ergebnissen", + "weight": 1, + "order": 6, + "description": "Prüft Ergebnisse fachlich, logisch, methodisch und quellenbezogen und übernimmt keine KI-Ausgabe ungeprüft.", + "learnedPatternHints": null + }, + { + "id": 284, + "categoryId": 58, + "name": "Zielgerichtete Tool- und Use-Case-Auswahl", + "weight": 1, + "order": 1, + "description": "Wählt KI-Werkzeug und Einsatzform passend zu Aufgabe, Datenlage, Risiko und erwartetem Mehrwert aus.", + "learnedPatternHints": null + }, + { + "id": 285, + "categoryId": 58, + "name": "Kontext- und Promptgestaltung", + "weight": 1, + "order": 2, + "description": "Formuliert klare Arbeitsaufträge, stellt relevanten Kontext bereit und verbessert Ergebnisse iterativ durch geeignete Steuerung.", + "learnedPatternHints": null + }, + { + "id": 286, + "categoryId": 58, + "name": "KI-gestützte Recherche und Verdichtung", + "weight": 1, + "order": 3, + "description": "Nutzt KI zur Informationsstrukturierung und Synthese, überprüft jedoch Quellen, Aktualität und Vollständigkeit.", + "learnedPatternHints": null + }, + { + "id": 287, + "categoryId": 58, + "name": "KI-gestützte Analyse und Hypothesenbildung", + "weight": 1, + "order": 4, + "description": "Nutzt KI zur Entwicklung von Analysefragen, Hypothesen, Strukturierungsansätzen oder Auswertungsoptionen und validiert diese eigenständig.", + "learnedPatternHints": null + }, + { + "id": 288, + "categoryId": 58, + "name": "KI-gestützte Storyline- und Deliverable-Erstellung", + "weight": 1, + "order": 5, + "description": "Erstellt mit KI erste Entwürfe für Storylines, Texte, Folien oder Arbeitsmaterialien und veredelt sie fachlich sowie kundenspezifisch.", + "learnedPatternHints": null + }, + { + "id": 289, + "categoryId": 58, + "name": "KI-gestützte Meeting- und Workshopvorbereitung", + "weight": 1, + "order": 6, + "description": "Nutzt KI für Interviewleitfäden, Fragen, Szenarien, Zusammenfassungen oder Moderationsvorbereitung und prüft die Praxistauglichkeit.", + "learnedPatternHints": null + }, + { + "id": 290, + "categoryId": 58, + "name": "Systematische Workflow-Integration", + "weight": 1, + "order": 7, + "description": "Identifiziert wiederkehrende Arbeitsschritte, integriert KI reproduzierbar und dokumentiert Vorgehen, Qualitätskontrollen und menschliche Entscheidungen angemessen.", + "learnedPatternHints": null + }, + { + "id": 291, + "categoryId": 59, + "name": "Vorgegebene Basiszertifizierung", + "weight": 1, + "order": 1, + "description": "Hat die für die Rolle oder Entwicklungsstufe vorgeschriebene grundlegende KI-Zertifizierung erfolgreich abgeschlossen.", + "learnedPatternHints": null + }, + { + "id": 292, + "categoryId": 59, + "name": "Rollen- oder technologiespezifische Zertifizierung", + "weight": 1, + "order": 2, + "description": "Verfügt über die für Einsatzgebiet, Technologie oder Projektkontext relevanten weiterführenden Nachweise, soweit diese gefordert sind.", + "learnedPatternHints": null + }, + { + "id": 293, + "categoryId": 59, + "name": "Aktualität des Nachweises", + "weight": 1, + "order": 3, + "description": "Hält verpflichtende Zertifizierungen, Rezertifizierungen und vorgeschriebene Lernstände aktuell.", + "learnedPatternHints": null + }, + { + "id": 294, + "categoryId": 59, + "name": "Nachgewiesener Praxistransfer", + "weight": 1, + "order": 4, + "description": "Kann zentrale Inhalte der Zertifizierung in Übungen oder Assignments korrekt anwenden und deren Grenzen erläutern.", + "learnedPatternHints": null + }, + { + "id": 295, + "categoryId": 60, + "name": "Qualitätsanspruch", + "weight": 1, + "order": 1, + "description": "Richtet die eigene Arbeit sichtbar auf fachlich belastbare, verständliche und kundentaugliche Ergebnisse aus.", + "learnedPatternHints": null + }, + { + "id": 296, + "categoryId": 60, + "name": "Systematische Qualitätschecks", + "weight": 1, + "order": 2, + "description": "Prüft Inhalte, Zahlen, Logik, Sprache, Quellen, Format und Konsistenz vor Weitergabe anhand geeigneter Kontrollschritte.", + "learnedPatternHints": null + }, + { + "id": 297, + "categoryId": 60, + "name": "Prozess- und Standardtreue", + "weight": 1, + "order": 3, + "description": "Kennt relevante Prozesse, Methoden, Templates und Vorgaben und wendet sie zweckmäßig sowie nachvollziehbar an.", + "learnedPatternHints": null + }, + { + "id": 298, + "categoryId": 60, + "name": "Reviewfähigkeit", + "weight": 1, + "order": 4, + "description": "Bereitet Arbeitsergebnisse so vor, dass andere sie effizient prüfen können, und arbeitet Reviewhinweise sauber und vollständig ein.", + "learnedPatternHints": null + }, + { + "id": 299, + "categoryId": 60, + "name": "Frühzeitige Qualitätssicherung", + "weight": 1, + "order": 5, + "description": "Plant Reviews, Abstimmungen und Prüfschritte rechtzeitig ein, statt Qualität ausschließlich am Ende herzustellen.", + "learnedPatternHints": null + }, + { + "id": 300, + "categoryId": 60, + "name": "Integrität und Compliance", + "weight": 1, + "order": 6, + "description": "Handelt ehrlich und regelkonform, macht Unsicherheiten oder Fehler transparent und wahrt Vertraulichkeit sowie relevante fachliche und organisatorische Vorgaben.", + "learnedPatternHints": null + }, + { + "id": 301, + "categoryId": 60, + "name": "Kontinuierliche Verbesserung", + "weight": 1, + "order": 7, + "description": "Erkennt wiederkehrende Fehler oder Ineffizienzen und verbessert Vorgehen, Standards oder Hilfsmittel nachhaltig.", + "learnedPatternHints": null + }, + { + "id": 302, + "categoryId": 61, + "name": "Proaktive Initiative", + "weight": 1, + "order": 1, + "description": "Erkennt Handlungsbedarf oder Chancen und wird selbstständig aktiv, ohne auf detaillierte Einzelaufträge zu warten.", + "learnedPatternHints": null + }, + { + "id": 303, + "categoryId": 61, + "name": "Ambitionierter Wirkungsanspruch", + "weight": 1, + "order": 2, + "description": "Strebt nicht nur formale Erledigung, sondern ein erkennbar nützliches und überzeugendes Ergebnis an.", + "learnedPatternHints": null + }, + { + "id": 304, + "categoryId": 61, + "name": "Beharrlichkeit bei Hindernissen", + "weight": 1, + "order": 3, + "description": "Verfolgt wichtige Themen trotz Rückschlägen konstruktiv weiter und sucht aktiv nach alternativen Lösungswegen.", + "learnedPatternHints": null + }, + { + "id": 305, + "categoryId": 61, + "name": "Mehrwert über den Auftrag hinaus", + "weight": 1, + "order": 4, + "description": "Identifiziert sinnvolle zusätzliche Beiträge, Impulse oder wiederverwendbare Lösungen, ohne Scope, Prioritäten oder Wirtschaftlichkeit aus dem Blick zu verlieren.", + "learnedPatternHints": null + }, + { + "id": 306, + "categoryId": 61, + "name": "Anpassungsfähigkeit", + "weight": 1, + "order": 5, + "description": "Bleibt bei veränderten Prioritäten, unvollständigen Informationen oder neuen Anforderungen handlungsfähig und richtet das Vorgehen neu aus.", + "learnedPatternHints": null + }, + { + "id": 307, + "categoryId": 61, + "name": "Konstruktive Energie unter Druck", + "weight": 1, + "order": 6, + "description": "Bewahrt auch bei hoher Belastung Fokus, Lösungsorientierung und professionelles Verhalten.", + "learnedPatternHints": null + }, + { + "id": 308, + "categoryId": 62, + "name": "Auftrags- und Ergebnisverständnis", + "weight": 1, + "order": 1, + "description": "Klärt Ziel, Qualitätsmaßstab, Umfang, Rollen, Abhängigkeiten und erwartete Lieferung, bevor die Umsetzung fortschreitet.", + "learnedPatternHints": null + }, + { + "id": 309, + "categoryId": 62, + "name": "Eigenständige Arbeitssteuerung", + "weight": 1, + "order": 2, + "description": "Plant, priorisiert und organisiert die eigene Arbeit nachvollziehbar und benötigt nur ein der Entwicklungsstufe angemessenes Maß an Steuerung.", + "learnedPatternHints": null + }, + { + "id": 310, + "categoryId": 62, + "name": "Verbindlichkeit und Zuverlässigkeit", + "weight": 1, + "order": 3, + "description": "Hält Zusagen ein und behandelt vereinbarte Termine, Qualitätsziele und Verantwortlichkeiten verbindlich.", + "learnedPatternHints": null + }, + { + "id": 311, + "categoryId": 62, + "name": "Fortschritts- und Risikotransparenz", + "weight": 1, + "order": 4, + "description": "Kommuniziert Arbeitsstand, offene Punkte, Abhängigkeiten und mögliche Abweichungen frühzeitig und konkret und vermittelt eine realistische Einschätzung der Zielerreichung.", + "learnedPatternHints": null + }, + { + "id": 312, + "categoryId": 62, + "name": "Stufenweises Alignment und Acceptance Management", + "weight": 1, + "order": 5, + "description": "Validiert Annahmen, Konzepte und Zwischenergebnisse rechtzeitig mit den relevanten Kundenvertretern. Sichert ein explizites gemeinsames Verständnis beziehungsweise eine Teilfreigabe als Grundlage für die weitere Bearbeitung und dokumentiert Entscheidungen, Vorbehalte und Änderungen nachvollziehbar.", + "learnedPatternHints": null + }, + { + "id": 313, + "categoryId": 62, + "name": "Vorausschauendes Handeln", + "weight": 1, + "order": 6, + "description": "Erkennt Risiken, Engpässe und Entscheidungsbedarfe früh und leitet geeignete Maßnahmen ein.", + "learnedPatternHints": null + }, + { + "id": 314, + "categoryId": 62, + "name": "Angemessene Entscheidung und Eskalation", + "weight": 1, + "order": 7, + "description": "Entscheidet im eigenen Verantwortungsbereich selbstständig und eskaliert rechtzeitig mit klarer Sachlage und Lösungsvorschlägen.", + "learnedPatternHints": null + }, + { + "id": 315, + "categoryId": 62, + "name": "Konsequenter Abschluss", + "weight": 1, + "order": 8, + "description": "Verfolgt offene Punkte bis zu einem belastbaren Ergebnis, sichert Übergaben und schließt Kommunikations- und Dokumentationsschleifen.", + "learnedPatternHints": null + }, + { + "id": 316, + "categoryId": 63, + "name": "Aktives Einholen von Feedback", + "weight": 1, + "order": 1, + "description": "Fragt gezielt und rechtzeitig nach Rückmeldung zu Wirkung, Vorgehen und Ergebnis, statt nur auf formale Feedbacktermine zu warten.", + "learnedPatternHints": null + }, + { + "id": 317, + "categoryId": 63, + "name": "Offene Feedbackannahme", + "weight": 1, + "order": 2, + "description": "Hört Feedback aufmerksam an, bleibt sachlich und vermeidet vorschnelle Rechtfertigung oder Abwehr.", + "learnedPatternHints": null + }, + { + "id": 318, + "categoryId": 63, + "name": "Verständnisklärung", + "weight": 1, + "order": 3, + "description": "Fragt bei unklarer Rückmeldung nach konkreten Situationen, Erwartungen und beobachtbaren Alternativen.", + "learnedPatternHints": null + }, + { + "id": 319, + "categoryId": 63, + "name": "Übersetzung in Entwicklungsmaßnahmen", + "weight": 1, + "order": 4, + "description": "Leitet aus Feedback konkrete, realistische und überprüfbare Verhaltens- oder Lernschritte ab.", + "learnedPatternHints": null + }, + { + "id": 320, + "categoryId": 63, + "name": "Sichtbarer Praxistransfer", + "weight": 1, + "order": 5, + "description": "Wendet vereinbarte Verbesserungen in folgenden Aufgaben erkennbar an und zeigt nachhaltigen Fortschritt.", + "learnedPatternHints": null + }, + { + "id": 321, + "categoryId": 63, + "name": "Selbstreflexion und Lernagilität", + "weight": 1, + "order": 6, + "description": "Analysiert eigene Wirkung, Stärken, Fehler und Muster realistisch und passt Verhalten an neue Situationen an.", + "learnedPatternHints": null + }, + { + "id": 322, + "categoryId": 64, + "name": "Proaktive Abstimmung", + "weight": 1, + "order": 1, + "description": "Stimmt sich rechtzeitig mit relevanten Beteiligten ab, macht Schnittstellen transparent und vermeidet Informationslücken.", + "learnedPatternHints": null + }, + { + "id": 323, + "categoryId": 64, + "name": "Wissens- und Ergebnisteilung", + "weight": 1, + "order": 2, + "description": "Teilt Informationen, Zwischenergebnisse, Erfahrungen und wiederverwendbare Inhalte so, dass das Team wirksam weiterarbeiten kann.", + "learnedPatternHints": null + }, + { + "id": 324, + "categoryId": 64, + "name": "Unterstützungsbereitschaft", + "weight": 1, + "order": 3, + "description": "Unterstützt andere konstruktiv und bedarfsgerecht, ohne eigene Verantwortlichkeiten oder gemeinsame Prioritäten zu vernachlässigen.", + "learnedPatternHints": null + }, + { + "id": 325, + "categoryId": 64, + "name": "Verlässliches Teamverhalten", + "weight": 1, + "order": 4, + "description": "Hält Teamzusagen ein, respektiert Rollen und schafft durch professionelles Verhalten eine belastbare Arbeitsbasis.", + "learnedPatternHints": null + }, + { + "id": 326, + "categoryId": 64, + "name": "Konstruktiver Umgang mit Differenzen", + "weight": 1, + "order": 5, + "description": "Spricht abweichende Sichtweisen sachlich an, hört Gegenargumente an und arbeitet auf eine tragfähige Lösung hin.", + "learnedPatternHints": null + }, + { + "id": 327, + "categoryId": 64, + "name": "Einbindung unterschiedlicher Perspektiven", + "weight": 1, + "order": 6, + "description": "Bezieht relevante Erfahrungen und Meinungen aktiv ein und schafft Raum für Beteiligung unabhängig von Rolle oder Hierarchie.", + "learnedPatternHints": null + }, + { + "id": 328, + "categoryId": 64, + "name": "Team- und organisationsübergreifende Zusammenarbeit", + "weight": 1, + "order": 7, + "description": "Vernetzt sich bei Bedarf über das unmittelbare Team hinaus und nutzt passende Experten, Communities oder Kontakte für den gemeinsamen Erfolg.", + "learnedPatternHints": null + } + ], + "assignmentFeedbacks": [], + "feedbackCategoryRatings": [], + "feedbackDimensionTexts": [], + "feedbackDimensionPrompts": [ + { + "id": 10, + "dimensionId": 10, + "promptTemplate": "Du bist Führungskraft bei Capgemini. Verdichte die folgenden Kategorie-Feedbacks zu übergreifenden Dimension-Hauptpunkten — ohne Rohprotokoll, nur auf Basis der Kategorie-Ergebnisse.\n\nBERATER: {{BERATER_NAME}}\nASSIGNMENT: {{ASSIGNMENT_TITEL}} | Kunde: {{ASSIGNMENT_KUNDE}}\nDIMENSION: {{DIMENSION_NAME}}\n\nKATEGORIE-ERGEBNISSE:\n{{KATEGORIE_ERGEBNISSE}}\n\nSchreibe für die gesamte Dimension:\n- ACHIEVEMENTS: genau 3 bis 5 übergreifende Benefits (keine bloße Wiederholung einzelner Kategorien)\n- DEVELOPMENT_NEEDS: genau 3 bis 5 übergreifende Concerns als Beobachtungen (keine Empfehlungsformeln wie \"Sollte …\")\n\nNutze ausschließlich die Kategorie-Ergebnisse oben. Antwortformat:\n\nACHIEVEMENTS:\n- \nDEVELOPMENT_NEEDS:\n- " + }, + { + "id": 11, + "dimensionId": 11, + "promptTemplate": "Du bist Führungskraft bei Capgemini. Verdichte die folgenden Kategorie-Feedbacks zu übergreifenden Dimension-Hauptpunkten — ohne Rohprotokoll, nur auf Basis der Kategorie-Ergebnisse.\n\nBERATER: {{BERATER_NAME}}\nASSIGNMENT: {{ASSIGNMENT_TITEL}} | Kunde: {{ASSIGNMENT_KUNDE}}\nDIMENSION: {{DIMENSION_NAME}}\n\nKATEGORIE-ERGEBNISSE:\n{{KATEGORIE_ERGEBNISSE}}\n\nSchreibe für die gesamte Dimension:\n- ACHIEVEMENTS: genau 3 bis 5 übergreifende Benefits (keine bloße Wiederholung einzelner Kategorien)\n- DEVELOPMENT_NEEDS: genau 3 bis 5 übergreifende Concerns als Beobachtungen (keine Empfehlungsformeln wie \"Sollte …\")\n\nNutze ausschließlich die Kategorie-Ergebnisse oben. Antwortformat:\n\nACHIEVEMENTS:\n- \nDEVELOPMENT_NEEDS:\n- " + }, + { + "id": 12, + "dimensionId": 12, + "promptTemplate": "Du bist Führungskraft bei Capgemini. Verdichte die folgenden Kategorie-Feedbacks zu übergreifenden Dimension-Hauptpunkten — ohne Rohprotokoll, nur auf Basis der Kategorie-Ergebnisse.\n\nBERATER: {{BERATER_NAME}}\nASSIGNMENT: {{ASSIGNMENT_TITEL}} | Kunde: {{ASSIGNMENT_KUNDE}}\nDIMENSION: {{DIMENSION_NAME}}\n\nKATEGORIE-ERGEBNISSE:\n{{KATEGORIE_ERGEBNISSE}}\n\nSchreibe für die gesamte Dimension:\n- ACHIEVEMENTS: genau 3 bis 5 übergreifende Benefits (keine bloße Wiederholung einzelner Kategorien)\n- DEVELOPMENT_NEEDS: genau 3 bis 5 übergreifende Concerns als Beobachtungen (keine Empfehlungsformeln wie \"Sollte …\")\n\nNutze ausschließlich die Kategorie-Ergebnisse oben. Antwortformat:\n\nACHIEVEMENTS:\n- \nDEVELOPMENT_NEEDS:\n- " + } + ], + "feedbackCategoryTexts": [], + "criterionCategoryMappings": [], + "criterionLevelDescriptions": [], + "appSettings": [ + { + "id": 1, + "ratingTrendWeightStep": 0.5, + "defaultDimensionPromptTemplate": "Du bist Führungskraft bei Capgemini. Verdichte die folgenden Kategorie-Feedbacks zu übergreifenden Dimension-Hauptpunkten — ohne Rohprotokoll, nur auf Basis der Kategorie-Ergebnisse.\n\nBERATER: {{BERATER_NAME}}\nASSIGNMENT: {{ASSIGNMENT_TITEL}} | Kunde: {{ASSIGNMENT_KUNDE}}\nDIMENSION: {{DIMENSION_NAME}}\n\nKATEGORIE-ERGEBNISSE:\n{{KATEGORIE_ERGEBNISSE}}\n\nSchreibe für die gesamte Dimension:\n- ACHIEVEMENTS: genau 3 bis 5 übergreifende Benefits (keine bloße Wiederholung einzelner Kategorien)\n- DEVELOPMENT_NEEDS: genau 3 bis 5 übergreifende Concerns als Beobachtungen (keine Empfehlungsformeln wie \"Sollte …\")\n\nNutze ausschließlich die Kategorie-Ergebnisse oben. Antwortformat:\n\nACHIEVEMENTS:\n- \nDEVELOPMENT_NEEDS:\n- ", + "defaultCategoryPromptTemplate": "Du bist Führungskraft bei Capgemini. Erstelle Feedback-Inhalte für EINE Kategorie auf Basis der Beobachtungsdaten aus Kundenterminen.\n\nBERATER: {{BERATER_NAME}}\nASSIGNMENT: {{ASSIGNMENT_TITEL}} | Kunde: {{ASSIGNMENT_KUNDE}}\nDIMENSION: {{DIMENSION_NAME}}\nKATEGORIE: {{KATEGORIE_NAME}}\n{{KATEGORIE_ERLAEUTERUNG}}\n\nKRITERIEN & BEOBACHTUNGEN (nur diese Kategorie):\n{{KRITERIEN_SCORES}}\n\nMANUELLE KATEGORIE-BEWERTUNG: {{KATEGORIE_BEWERTUNG}}\nENTWICKLUNG ÜBER MEETINGS: {{ENTWICKLUNG_VERLAUF}}\n{{TREND_VORSCHLAG}}\n\nGETAGGTE PROTOKOLLZEILEN (dieser Kategorie zugeordnet):\n{{PROTOKOLL_GETAGGT}}\n\nSchreibe:\n- SCORE: 1–10 (Trend-Vorschlag beachten — bestätigen oder maximal ±1 abweichen)\n- BENEFITS: 1–3 kurze positive Beobachtungen (Stichpunkte mit \"- \")\n- CONCERNS: 1–3 kurze kritische Beobachtungen (Stichpunkte mit \"- \"). Concerns sind Feststellungen, KEINE Handlungsempfehlungen.\n\nNutze ausschließlich die oben genannten Daten. Reicht die Datenlage nicht: SCORE weglassen, BENEFITS/CONCERNS mit \"- n/a\".\n\nAntwortformat (Marker in eigener Zeile oder mit Text in derselben Zeile), ohne Markdown-Codefences:\n\nSCORE: <1-10>\nBENEFITS:\n- \nCONCERNS:\n- ", + "criterionTaggingPromptTemplate": "Du bist Assistent bei der Auswertung von Kundentermin-Protokollen für Capgemini-Trainees (Institutees). Analysiere die folgenden noch nicht einem Bewertungskriterium zugeordneten Protokollzeilen (Freitext-Beobachtungen) und schlage pro Zeile passende Kriterien vor.\n\nASSIGNMENT-TYP: {{ASSIGNMENT_TYP}}\n\nVERFÜGBARE KRITERIEN (Dimension → Kategorie → Kriterium, referenziert über die Zahl in eckigen Klammern):\n{{KRITERIEN_STRUKTUR}}\n\nBEREITS BEKANNTE, TYPISCHE FORMULIERUNGSMUSTER PRO KRITERIUM (aus früheren Analyse-Läufen, sofern vorhanden):\n{{GELERNTE_MUSTER}}\n\nÄHNLICHE, BEREITS ZUGEORDNETE ALT-ZEILEN (Kontext-Hinweis, keine feste Vorgabe):\n{{AEHNLICHE_ALT_ZUORDNUNGEN}}\n\nNOCH NICHT ZUGEORDNETE PROTOKOLLZEILEN (nummeriert):\n{{PROTOKOLL_ZEILEN}}\n\nOrdne jede Zeile 0 bis 3 Kriterien zu, priorisiert nach Passung (wahrscheinlichstes zuerst). Nutze ausschließlich die oben gelisteten Kriterium-IDs. Wenn keine sinnvolle Zuordnung erkennbar ist, gib \"-\" an. Erfinde keine Kriterien und keine Beobachtungen, die nicht im Zeilentext stehen.\n\nAntworte AUSSCHLIESSLICH in exakt diesem Format, ohne zusätzliche Erklärungen, ohne Markdown-Formatierung (Kriterium-IDs als plain numbers, ohne eckige Klammern):\n\nZEILE : , , ...\nZEILE : -\n\nErgänze danach, nur für Kriterien mit mindestens einer Zuordnung in dieser Analyse, kurze generalisierte Formulierungsmuster (1-2 Sätze, keine Zitate einzelner Zeilen):\n\nMUSTER:\n: ", + "checklistTaggingPromptTemplate": "Du ordnest Checklistenpunkte aus Kundenterminen Bewertungskriterien zu. Jeder Punkt ist ein strukturierter Prüfpunkt mit festem Namen (Label). Kommentare zu Checklistenpunkten sind absichtlich nicht enthalten — sie dienen nur der späteren Feedback-Text-Erstellung, nicht der Kriterium-Zuordnung.\n\nASSIGNMENT-TYP: {{ASSIGNMENT_TYP}}\n\nVERFÜGBARE KRITERIEN (Dimension → Kategorie → Kriterium, referenziert über die Zahl in eckigen Klammern):\n{{KRITERIEN_STRUKTUR}}\n\nBEREITS BEKANNTE, TYPISCHE FORMULIERUNGSMUSTER PRO KRITERIUM (aus früheren Analyse-Läufen, sofern vorhanden):\n{{GELERNTE_MUSTER}}\n\nÄHNLICHE, BEREITS ZUGEORDNETE ALT-ZEILEN (Kontext-Hinweis — Suche primär nach Label-Ähnlichkeit):\n{{AEHNLICHE_ALT_ZUORDNUNGEN}}\n\nNOCH NICHT ZUGEORDNETE CHECKLISTENPUNKTE (nummeriert — ordne primär nach Bedeutung des Punkt-Namens; optionaler Score ist Zusatzkontext):\n{{CHECKLISTEN_PUNKTE}}\n\nOrdne jeden Punkt 0 bis 3 Kriterien zu, priorisiert nach Passung (wahrscheinlichstes zuerst). Nutze ausschließlich die oben gelisteten Kriterium-IDs. Wenn keine sinnvolle Zuordnung erkennbar ist, gib \"-\" an.\n\nAntworte AUSSCHLIESSLICH in exakt diesem Format, ohne zusätzliche Erklärungen, ohne Markdown-Formatierung:\n\nPUNKT : , , ...\nPUNKT : -", + "ratingColorBands": [ + { + "max": 2, + "key": "red" + }, + { + "max": 5, + "key": "orange" + }, + { + "max": 8, + "key": "lightGreen" + }, + { + "max": 10, + "key": "darkGreen" + } + ] + } + ], + "checklistItemDefs": [ + { + "id": 1, + "phaseTemplateId": 6, + "label": "Konkrete Empfehlungen", + "linkedCriterionItemId": 234, + "scope": "meetingWide", + "order": 1, + "scoreContribution": null + }, + { + "id": 2, + "phaseTemplateId": 6, + "label": "fachliche Komptenz", + "linkedCriterionItemId": 251, + "scope": "meetingWide", + "order": 2, + "scoreContribution": null + }, + { + "id": 3, + "phaseTemplateId": 6, + "label": "methodische Kompetenz", + "linkedCriterionItemId": 228, + "scope": "meetingWide", + "order": 3, + "scoreContribution": null + }, + { + "id": 4, + "phaseTemplateId": 6, + "label": "Erfahrungskompetenz", + "linkedCriterionItemId": 251, + "scope": "meetingWide", + "order": 4, + "scoreContribution": null + }, + { + "id": 5, + "phaseTemplateId": 6, + "label": "Mengengerüst/Aufwandsplanung vorbereitet", + "linkedCriterionItemId": 234, + "scope": "meetingWide", + "order": 5, + "scoreContribution": null + }, + { + "id": 6, + "phaseTemplateId": 6, + "label": "konkrete nächste Schritte", + "linkedCriterionItemId": 234, + "scope": "meetingWide", + "order": 6, + "scoreContribution": null + } + ], + "checklistResponses": [] + } +} \ No newline at end of file diff --git a/index.html b/index.html index 305f31e..19a674c 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,20 @@ - - + Assignment Monitor + + + + + + + + + + + +
diff --git a/package-lock.json b/package-lock.json index 022abb0..8fd3470 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,20 +1,20 @@ { - "name": "assignment-monitor", + "name": "assignment-monitor-v2", "version": "0.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "assignment-monitor", + "name": "assignment-monitor-v2", "version": "0.0.0", "dependencies": { "@react-pdf/renderer": "^4.5.1", - "dexie": "^4.0.11", "express": "^4.21.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router-dom": "^7.6.2", - "recharts": "^2.15.3" + "recharts": "^2.15.3", + "xlsx": "^0.18.5" }, "devDependencies": { "@eslint/js": "^9.25.0", @@ -67,7 +67,6 @@ "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", @@ -3534,7 +3533,6 @@ "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -3642,7 +3640,6 @@ "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3660,6 +3657,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/ajv": { "version": "6.15.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", @@ -3977,7 +3983,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.10.38", "caniuse-lite": "^1.0.30001799", @@ -4087,6 +4092,19 @@ ], "license": "CC-BY-4.0" }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -4137,6 +4155,15 @@ "node": ">=6" } }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -4304,6 +4331,18 @@ "url": "https://opencollective.com/core-js" } }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -4616,12 +4655,6 @@ "node": ">=8" } }, - "node_modules/dexie": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/dexie/-/dexie-4.4.4.tgz", - "integrity": "sha512-jIwsYI8Os2hgnqc6O49YwFDKGc5v5QjGx0wPVp543ip1F53VFAKMLthV2pQosQcVTv3eAskTWYspOx195PM0FQ==", - "license": "Apache-2.0" - }, "node_modules/dfa": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", @@ -4949,7 +4982,6 @@ "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -5481,6 +5513,15 @@ "node": ">= 0.6" } }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -7606,7 +7647,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -7616,7 +7656,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -8354,6 +8393,18 @@ "node": ">=0.10.0" } }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "license": "Apache-2.0", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/statuses": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", @@ -8628,7 +8679,6 @@ "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -9572,7 +9622,6 @@ "integrity": "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -9811,6 +9860,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -9914,7 +9981,6 @@ "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -10101,6 +10167,27 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index 523da79..1b7d329 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,13 @@ "server": "tsx watch --env-file=.env server/index.ts", "dev:all": "concurrently -n web,api -c blue,green \"npm:dev\" \"npm:server\"", "verify-backup": "tsx --env-file=.env server/scripts/verifyBackupRoundtrip.ts", + "smoke": "tsx --env-file=.env server/scripts/smokeScaleAndTagging.ts", "db:reset": "tsx --env-file=.env server/scripts/resetDevDatabase.ts", + "starter:export": "tsx --env-file=.env server/scripts/exportStarterPackage.ts", + "bootstrap": "tsx --env-file=.env server/scripts/bootstrapFromStarter.ts", + "setup": "tsx --env-file=.env server/scripts/teamSetup.ts", + "pack:zip": "tsx server/scripts/packTeamZip.ts", + "pack:laptop": "tsx --env-file=.env server/scripts/packLaptopZip.ts", "preload:feedback-structure": "tsx --env-file=.env server/scripts/preloadFeedbackStructure.ts", "build": "tsc -b && vite build", "lint": "eslint .", @@ -16,12 +22,12 @@ }, "dependencies": { "@react-pdf/renderer": "^4.5.1", - "dexie": "^4.0.11", "express": "^4.21.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router-dom": "^7.6.2", - "recharts": "^2.15.3" + "recharts": "^2.15.3", + "xlsx": "^0.18.5" }, "devDependencies": { "@eslint/js": "^9.25.0", diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ba15d3e52d48fba16c8bf4fb12753412c3a189b2 GIT binary patch literal 22518 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 Rlr#VU002ovPDHLkV1klZnLGdh literal 0 HcmV?d00001 diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..4962a6c --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,4 @@ + + + AM + diff --git a/public/pwa-192.png b/public/pwa-192.png new file mode 100644 index 0000000000000000000000000000000000000000..534980f084a64177a6d489176dd2f1570637ad0a GIT binary patch literal 25966 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 literal 0 HcmV?d00001 diff --git a/public/pwa-512.png b/public/pwa-512.png new file mode 100644 index 0000000000000000000000000000000000000000..9b1387ba7dd565bdab20915ef7d8015727bfd378 GIT binary patch literal 847737 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 L1)7)sw?@_n{}+%6!jc(&LJbr6j~_PzMso9u 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­TK!d9yv`qK3U*Ju0# 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

&){@w3y`4gQB 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 rbnRg%@xa(R%lh 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


8F2&{l!xoxE3WwNrT2~mu2|rx z(UbI7V|$O%$p3V1)vZ5yF?QmWb!%V0`PZJ85;n_sy-(eeuvszjB49xyhL!trGBgf()#q8g>re z7vLFSJFDhAcB(3(k=WKjgD>@4OY1FvMC^GJW0n;Nrx9EB7*;Eb7dFj|=NVQIrA?I# z@C;$w#Ys-4QJjX6*^56YytD1g4{v+qAE#YxHrH3r3K^!BnBszmA*-2TbOLA$`?x{7 z`l?4?fO)`7)Shj{YzJK3iDQ+r%v;}(+`!*<>!L!wR%l)X?Qg0Xh>xM#l-B+kN$Dd_==qO&ClQO zz3tfA!;c+4{qKQS&{R2G8;{qs32`~=T+IObVM}GHfXi1)lTbX;J;xqdO1BUoN2S|+ z`I%de-L`+rhU^c2;Q~NF0>S74j#e&sJ(jfOI?24S!r&Zgf_r7G-~)4S7{2F@fA?&D z=E&HqTj3uy?5=#PhsM)n>0w!g3I{x7(g0{u3@L98;MD*(!*KQJ>>ni#Rh-d1@A#MP zf4Mhh+By_zz_Ko9KY&=7Ou!eRLVs^KJPNhU@6PhfobMl9u%6xAZ2R2;mcS_oT9ynv z!+9}5^E-NSZfB2{C4HlJOB$cL^IBXZBsVeS%buc04s*x?d?56vbgsD!Jk(R*!XgA; zs*BMT1&TrL1`2?P+EY`rl9U)AJU4i}1^vi!OYb7WTC*93Ca8x5GG$gS8H40O&~%UR zrb-+<;Qb{;iS=OQPnLo2v^w#@S>2+N#Rka$VY5V<>k-{39 zChc{=Tp8i7%0w4$Q+~}1q&jqXoo+G}ne+W4=l?tu&`HW6Dtsb83wb@?MiPgi7qW^Y*W}6#JbY;R zcPB2pyv!P7ykla&7HYTJRe=Y#u*72{5LNEDypAnI$N+)^aKQ1k#ws~iTaj0%w&ENnj3dg{vZ+Y10r{ax*B&TB=iJuLKkfCQw%0DqjVS1#}Oj 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%0Aanj-hRnHu0 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

7k>QwgWam+q?|S2-W>@)**s#!E7p4P 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 MSO55zOWBY9A3F6$;{X5v literal 0 HcmV?d00001 diff --git a/server/db/queries/appSettings.ts b/server/db/queries/appSettings.ts index 91e3ad6..98035e0 100644 --- a/server/db/queries/appSettings.ts +++ b/server/db/queries/appSettings.ts @@ -88,24 +88,28 @@ export function saveDefaultDimensionPromptTemplate(template: string): number { } /** - * Prompt-Template für „🏷 Vorschläge analysieren" (selbstlernendes Kriterien-Tagging) — ein - * einziges, protokollweites Template statt eines pro Assignment-Typ, siehe CLAUDE.md. Gleiches - * Erstbefüllungs-/Persistenz-Muster wie `getOrSeedDefaultDimensionPromptTemplate`. + * Prompt-Template für Protokoll-Tagging („🏷 Vorschläge analysieren", Freitext-Zeilen). + * Checklisten haben seit der Trennung ein eigenes Template (`checklistTaggingPromptTemplate`). + * Alte Zwischenstände mit `{{CHECKLISTEN_PUNKTE}}` im Protokoll-Prompt werden einmalig auf den + * aktuellen Protokoll-Standard migriert — sonst bleibt der Platzhalter unersetzt und die KI + * liefert keine brauchbaren ZEILE-Vorschläge mehr. */ export function getOrSeedCriterionTaggingPromptTemplate(): string { + const fresh = AI_CONFIG.defaultCriterionTaggingPromptTemplate let settings = getRowById('appSettings', 1) if (!settings) { insertRowWithId('appSettings', 1, { ratingTrendWeightStep: DEFAULT_RATING_TREND_WEIGHT_STEP, - criterionTaggingPromptTemplate: AI_CONFIG.defaultCriterionTaggingPromptTemplate, + criterionTaggingPromptTemplate: fresh, }) - return AI_CONFIG.defaultCriterionTaggingPromptTemplate + return fresh } - if (!settings.criterionTaggingPromptTemplate) { - updateRow('appSettings', 1, { criterionTaggingPromptTemplate: AI_CONFIG.defaultCriterionTaggingPromptTemplate }) - return AI_CONFIG.defaultCriterionTaggingPromptTemplate + const stored = settings.criterionTaggingPromptTemplate + if (!stored || stored.includes('{{CHECKLISTEN_PUNKTE}}')) { + updateRow('appSettings', 1, { criterionTaggingPromptTemplate: fresh }) + return fresh } - return settings.criterionTaggingPromptTemplate + return stored } export function saveCriterionTaggingPromptTemplate(template: string): number { @@ -115,6 +119,32 @@ export function saveCriterionTaggingPromptTemplate(template: string): number { return 1 } +export function getOrSeedChecklistTaggingPromptTemplate(): string { + let settings = getRowById('appSettings', 1) + if (!settings) { + insertRowWithId('appSettings', 1, { + ratingTrendWeightStep: DEFAULT_RATING_TREND_WEIGHT_STEP, + checklistTaggingPromptTemplate: AI_CONFIG.defaultChecklistTaggingPromptTemplate, + }) + return AI_CONFIG.defaultChecklistTaggingPromptTemplate + } + if (!settings.checklistTaggingPromptTemplate) { + updateRow('appSettings', 1, { checklistTaggingPromptTemplate: AI_CONFIG.defaultChecklistTaggingPromptTemplate }) + return AI_CONFIG.defaultChecklistTaggingPromptTemplate + } + return settings.checklistTaggingPromptTemplate +} + +export function saveChecklistTaggingPromptTemplate(template: string): number { + const existing = getRowById('appSettings', 1) + if (existing) updateRow('appSettings', 1, { checklistTaggingPromptTemplate: template }) + else insertRowWithId('appSettings', 1, { + ratingTrendWeightStep: DEFAULT_RATING_TREND_WEIGHT_STEP, + checklistTaggingPromptTemplate: template, + }) + return 1 +} + export function getOrSeedDefaultCategoryPromptTemplate(): string { let settings = getRowById('appSettings', 1) if (!settings) { @@ -140,3 +170,29 @@ export function saveDefaultCategoryPromptTemplate(template: string): number { }) return 1 } + +export function getOrSeedRequirePlannedDates(): boolean { + let settings = getRowById('appSettings', 1) + if (!settings) { + insertRowWithId('appSettings', 1, { + ratingTrendWeightStep: DEFAULT_RATING_TREND_WEIGHT_STEP, + requirePlannedDates: false, + }) + return false + } + if (settings.requirePlannedDates === undefined || settings.requirePlannedDates === null) { + updateRow('appSettings', 1, { requirePlannedDates: false }) + return false + } + return !!settings.requirePlannedDates +} + +export function saveRequirePlannedDates(required: boolean): number { + const existing = getRowById('appSettings', 1) + if (existing) updateRow('appSettings', 1, { requirePlannedDates: required }) + else insertRowWithId('appSettings', 1, { + ratingTrendWeightStep: DEFAULT_RATING_TREND_WEIGHT_STEP, + requirePlannedDates: required, + }) + return 1 +} diff --git a/server/db/queries/assignmentTransfer.ts b/server/db/queries/assignmentTransfer.ts new file mode 100644 index 0000000..df2f3a0 --- /dev/null +++ b/server/db/queries/assignmentTransfer.ts @@ -0,0 +1,527 @@ +/** + * Einzel-Assignment Export/Import für Lead-Übergabe (Urlaub/Krankheit). + * Enthält Runtime-Daten inkl. Checklisten + referenzierte Berater/Gruppen. + * Struktur wird per stabilem Schlüssel gemappt; Berater werden bei Namensgleichheit + * wiederverwendet, sonst neu angelegt. + */ +import { db } from '../../database' +import { + getAllRows, getRowById, getRowsWhereEquals, getRowsWhereIn, insertRow, +} from '../crud' +import type { + Assignment, AssignmentType, PhaseTemplate, ChecklistItemDef, ChecklistResponse, + Group, Consultant, MeetingInstance, ConversationEntry, ConversationSkillScore, + Assessment, FeedbackDraft, AssignmentFeedback, + FeedbackCategoryRating, FeedbackDimensionText, FeedbackCategoryText, + FeedbackDimension, FeedbackCategory, FeedbackCriterionItem, ConversationLineTag, + AssignmentTransferPackage, AssignmentImportResult, +} from '../../../src/db/types' +import { ASSIGNMENT_TRANSFER_KIND } from '../../../src/db/types' +import { listMeetingInstancesForAssignment } from './meetings' +import { listChecklistItemDefsForPhaseTemplates, listChecklistResponsesForMeetings } from './checklists' +import { listConversationEntriesForMeetings } from './conversationEntries' +import { listAssessmentsForMeetings } from './assessments' +import { listMeetingCategoryRatingsForMeetings } from './meetingCategoryRatings' + +const norm = (s: string) => s.trim().toLowerCase().replace(/\s+/g, ' ') +const personKey = (c: Pick) => + `${norm(c.firstName)}|${norm(c.lastName)}` +const emailKey = (c: Pick): string | null => { + const e = (c.email ?? '').trim().toLowerCase() + return e || null +} +const groupKey = (g: Pick) => + `${norm(g.name)}|${g.cohortYear}` + +function collectCriterionIds(pkgParts: { + assignmentType: AssignmentType + phaseTemplates: PhaseTemplate[] + checklistItemDefs: ChecklistItemDef[] + assessments: Assessment[] + checklistResponses: ChecklistResponse[] + conversationEntries: ConversationEntry[] + meetingInstances: MeetingInstance[] +}): Set { + const ids = new Set() + for (const id of pkgParts.assignmentType.criteriaIds ?? []) ids.add(id) + for (const p of pkgParts.phaseTemplates) for (const id of p.criteriaIds ?? []) ids.add(id) + for (const c of pkgParts.checklistItemDefs) { + if (c.linkedCriterionItemId != null) ids.add(c.linkedCriterionItemId) + } + for (const a of pkgParts.assessments) ids.add(a.criteriaId) + for (const r of pkgParts.checklistResponses) { + if (r.criterionItemId != null) ids.add(r.criterionItemId) + } + for (const e of pkgParts.conversationEntries) { + for (const t of e.lineTags ?? []) ids.add(t.criterionItemId) + } + for (const m of pkgParts.meetingInstances) { + for (const t of m.generalNoteTags ?? []) ids.add(t.criterionItemId) + } + return ids +} + +function remapTags( + tags: ConversationLineTag[] | undefined, + criterionMap: Map, +): ConversationLineTag[] | undefined { + if (!tags) return tags + return tags.map(t => ({ + text: t.text, + criterionItemId: criterionMap.get(t.criterionItemId) ?? t.criterionItemId, + })) +} + +function requireMap(map: Map, oldId: number, label: string): number { + const next = map.get(oldId) + if (next == null) throw new Error(`${label}: Quell-ID ${oldId} konnte nicht gemappt werden`) + return next +} + +/** Exportiert ein Assignment inkl. aller Meetings/Notizen/Checklisten/Feedbacks und referenzierter Berater. */ +export function exportAssignmentTransfer(assignmentId: number): AssignmentTransferPackage { + const assignment = getRowById('assignments', assignmentId) + if (!assignment) throw new Error('Assignment nicht gefunden') + + const assignmentType = getRowById('assignmentTypes', assignment.assignmentTypeId) + if (!assignmentType) throw new Error('Assignment-Typ nicht gefunden') + + const phaseTemplates = getRowsWhereEquals('phaseTemplates', 'assignmentTypeId', assignment.assignmentTypeId) + .sort((a, b) => a.order - b.order) + const phaseIds = phaseTemplates.map(p => p.id!) + const checklistItemDefs = listChecklistItemDefsForPhaseTemplates(phaseIds) + + const meetingInstances = listMeetingInstancesForAssignment(assignmentId) + const meetingIds = meetingInstances.map(m => m.id!) + const conversationEntries = listConversationEntriesForMeetings(meetingIds) + const entryIds = conversationEntries.map(e => e.id!) + const conversationSkillScores = getAllRows('conversationSkillScores') + .filter(s => entryIds.includes(s.conversationEntryId)) + const assessments = listAssessmentsForMeetings(meetingIds) + const meetingCategoryRatings = listMeetingCategoryRatingsForMeetings(meetingIds) + const checklistResponses = listChecklistResponsesForMeetings(meetingIds) + + const feedbackDrafts = getRowsWhereEquals('feedbackDrafts', 'assignmentId', assignmentId) + const assignmentFeedbacks = getRowsWhereEquals('assignmentFeedbacks', 'assignmentId', assignmentId) + const feedbackIds = assignmentFeedbacks.map(f => f.id!) + const feedbackCategoryRatings = getRowsWhereIn('feedbackCategoryRatings', 'assignmentFeedbackId', feedbackIds) + const feedbackDimensionTexts = getRowsWhereIn('feedbackDimensionTexts', 'assignmentFeedbackId', feedbackIds) + const feedbackCategoryTexts = getRowsWhereIn('feedbackCategoryTexts', 'assignmentFeedbackId', feedbackIds) + + const instituteeIds = new Set(assignment.instituteeIds) + for (const e of assignment.instituteeEnrollments ?? []) instituteeIds.add(e.instituteeId) + for (const e of conversationEntries) instituteeIds.add(e.instituteeId) + for (const a of assessments) instituteeIds.add(a.instituteeId) + for (const r of meetingCategoryRatings) instituteeIds.add(r.instituteeId) + for (const r of checklistResponses) if (r.instituteeId != null) instituteeIds.add(r.instituteeId) + for (const f of feedbackDrafts) instituteeIds.add(f.instituteeId) + for (const f of assignmentFeedbacks) instituteeIds.add(f.instituteeId) + + const consultants = getRowsWhereIn('consultants', 'id', [...instituteeIds]) + const groupIds = [...new Set(consultants.map(c => c.groupId))] + const groups = getRowsWhereIn('groups', 'id', groupIds) + + const criterionIds = collectCriterionIds({ + assignmentType, phaseTemplates, checklistItemDefs, assessments, + checklistResponses, conversationEntries, meetingInstances, + }) + for (const r of meetingCategoryRatings) { + for (const i of getRowsWhereEquals('feedbackCriterionItems', 'categoryId', r.categoryId)) { + criterionIds.add(i.id!) + } + } + for (const r of feedbackCategoryRatings) { + for (const i of getRowsWhereEquals('feedbackCriterionItems', 'categoryId', r.feedbackCategoryId)) { + criterionIds.add(i.id!) + } + } + for (const s of conversationSkillScores) { + for (const i of getRowsWhereEquals('feedbackCriterionItems', 'categoryId', s.criteriaId)) { + criterionIds.add(i.id!) + } + } + + const feedbackCriterionItems = getRowsWhereIn('feedbackCriterionItems', 'id', [...criterionIds]) + .map(i => ({ ...i, learnedPatternHints: undefined })) + const categoryIds = new Set(feedbackCriterionItems.map(i => i.categoryId)) + for (const r of meetingCategoryRatings) categoryIds.add(r.categoryId) + for (const r of feedbackCategoryRatings) categoryIds.add(r.feedbackCategoryId) + for (const t of feedbackCategoryTexts) categoryIds.add(t.feedbackCategoryId) + for (const s of conversationSkillScores) categoryIds.add(s.criteriaId) + + const feedbackCategories = getRowsWhereIn('feedbackCategories', 'id', [...categoryIds]) + const dimensionIds = new Set(feedbackCategories.map(c => c.dimensionId)) + for (const t of feedbackDimensionTexts) dimensionIds.add(t.feedbackDimensionId) + const feedbackDimensions = getRowsWhereIn('feedbackDimensions', 'id', [...dimensionIds]) + + return { + kind: ASSIGNMENT_TRANSFER_KIND, + version: 1, + exportedAt: new Date().toISOString(), + source: { + assignmentId, + assignmentNumber: assignment.assignmentNumber, + title: assignment.title, + client: assignment.client, + }, + groups, + consultants, + assignmentType, + phaseTemplates, + checklistItemDefs, + feedbackDimensions, + feedbackCategories, + feedbackCriterionItems, + assignment, + meetingInstances, + conversationEntries, + conversationSkillScores, + assessments, + meetingCategoryRatings, + checklistResponses, + feedbackDrafts, + assignmentFeedbacks, + feedbackCategoryRatings, + feedbackDimensionTexts, + feedbackCategoryTexts, + } +} + +/** Importiert ein Transfer-Paket als neues Assignment (Merge, kein Wipe). */ +export function importAssignmentTransfer(pkg: AssignmentTransferPackage): AssignmentImportResult { + if (!pkg || pkg.kind !== ASSIGNMENT_TRANSFER_KIND || pkg.version !== 1) { + throw new Error('Ungültiges Assignment-Übergabe-Format') + } + if (!pkg.assignment || !pkg.assignmentType) { + throw new Error('Paket unvollständig (Assignment/Typ fehlt)') + } + + const groupMap = new Map() + const consultantMap = new Map() + const dimensionMap = new Map() + const categoryMap = new Map() + const criterionMap = new Map() + const typeMap = new Map() + const phaseMap = new Map() + const checklistDefMap = new Map() + const meetingMap = new Map() + const entryMap = new Map() + const feedbackMap = new Map() + + const consultantsMatched: string[] = [] + const consultantsCreated: string[] = [] + + const localDims = getAllRows('feedbackDimensions') + for (const d of pkg.feedbackDimensions) { + const byId = d.id != null ? getRowById('feedbackDimensions', d.id) : undefined + if (byId && norm(byId.name) === norm(d.name)) { + dimensionMap.set(d.id!, d.id!) + continue + } + const hit = localDims.find(x => norm(x.name) === norm(d.name)) + if (!hit?.id) { + throw new Error(`Feedback-Dimension „${d.name}" fehlt lokal — bitte zuerst npm run setup / Starter laden.`) + } + dimensionMap.set(d.id!, hit.id) + } + + const localCats = getAllRows('feedbackCategories') + for (const c of pkg.feedbackCategories) { + const dimId = requireMap(dimensionMap, c.dimensionId, 'Dimension') + const byId = c.id != null ? getRowById('feedbackCategories', c.id) : undefined + if (byId && norm(byId.name) === norm(c.name) && byId.dimensionId === dimId) { + categoryMap.set(c.id!, c.id!) + continue + } + const hit = localCats.find(x => x.dimensionId === dimId && norm(x.name) === norm(c.name)) + if (!hit?.id) { + throw new Error(`Feedback-Kategorie „${c.name}" fehlt lokal — bitte Starter-Struktur angleichen.`) + } + categoryMap.set(c.id!, hit.id) + } + + const localItems = getAllRows('feedbackCriterionItems') + for (const item of pkg.feedbackCriterionItems) { + const catId = requireMap(categoryMap, item.categoryId, 'Kategorie') + const byId = item.id != null ? getRowById('feedbackCriterionItems', item.id) : undefined + if (byId && norm(byId.name) === norm(item.name) && byId.categoryId === catId) { + criterionMap.set(item.id!, item.id!) + continue + } + const hit = localItems.find(x => x.categoryId === catId && norm(x.name) === norm(item.name)) + if (!hit?.id) { + throw new Error(`Kriterium „${item.name}" fehlt lokal — bitte Starter-Struktur angleichen.`) + } + criterionMap.set(item.id!, hit.id) + } + + const localTypes = getAllRows('assignmentTypes') + { + const t = pkg.assignmentType + const byId = t.id != null ? getRowById('assignmentTypes', t.id) : undefined + let typeId: number + if (byId && norm(byId.name) === norm(t.name)) { + typeId = t.id! + } else { + const hit = localTypes.find(x => norm(x.name) === norm(t.name)) + if (hit?.id) { + typeId = hit.id + } else { + typeId = insertRow('assignmentTypes', { + name: t.name, + defaultPhaseKeys: t.defaultPhaseKeys, + criteriaIds: (t.criteriaIds ?? []) + .map(id => criterionMap.get(id)) + .filter((id): id is number => id != null), + }) + } + } + typeMap.set(t.id!, typeId) + } + + const targetTypeId = requireMap(typeMap, pkg.assignmentType.id!, 'Assignment-Typ') + const localPhases = getRowsWhereEquals('phaseTemplates', 'assignmentTypeId', targetTypeId) + for (const p of pkg.phaseTemplates) { + const byKey = localPhases.find(x => x.phaseKey === p.phaseKey && norm(x.label) === norm(p.label)) + ?? localPhases.find(x => x.phaseKey === p.phaseKey) + let phaseId: number + if (byKey?.id) { + phaseId = byKey.id + } else { + phaseId = insertRow('phaseTemplates', { + assignmentTypeId: targetTypeId, + phaseKey: p.phaseKey, + label: p.label, + withWhom: p.withWhom, + isRepeatable: p.isRepeatable, + hasConversation: p.hasConversation, + hasAssessment: p.hasAssessment, + hasChecklist: p.hasChecklist, + criteriaIds: (p.criteriaIds ?? []) + .map(id => criterionMap.get(id)) + .filter((id): id is number => id != null), + order: p.order, + }) + } + phaseMap.set(p.id!, phaseId) + } + + for (const def of pkg.checklistItemDefs) { + const phaseId = requireMap(phaseMap, def.phaseTemplateId, 'Phase') + const localDefs = getRowsWhereEquals('checklistItemDefs', 'phaseTemplateId', phaseId) + const hit = localDefs.find(x => norm(x.label) === norm(def.label) && x.order === def.order) + ?? localDefs.find(x => norm(x.label) === norm(def.label)) + let defId: number + if (hit?.id) { + defId = hit.id + } else { + defId = insertRow('checklistItemDefs', { + phaseTemplateId: phaseId, + label: def.label, + linkedCriterionItemId: def.linkedCriterionItemId != null + ? (criterionMap.get(def.linkedCriterionItemId) ?? null) + : null, + scope: def.scope, + order: def.order, + scoreContribution: def.scoreContribution, + }) + } + checklistDefMap.set(def.id!, defId) + } + + const pkgGroupsById = new Map(pkg.groups.map(g => [g.id!, g])) + for (const g of pkg.groups) { + const locals = getAllRows('groups') + const hit = locals.find(x => groupKey(x) === groupKey(g)) + groupMap.set(g.id!, hit?.id ?? insertRow('groups', { name: g.name, cohortYear: g.cohortYear })) + } + + for (const c of pkg.consultants) { + const label = `${c.firstName} ${c.lastName}`.trim() + const locals = getAllRows('consultants') + const ek = emailKey(c) + const hit = ek + ? locals.find(x => emailKey(x) === ek) + : locals.find(x => personKey(x) === personKey(c)) + if (hit?.id) { + consultantMap.set(c.id!, hit.id) + consultantsMatched.push(label) + continue + } + const srcGroup = pkgGroupsById.get(c.groupId) + if (!srcGroup) throw new Error(`Gruppe für Berater „${label}" fehlt im Paket`) + let groupId = groupMap.get(srcGroup.id!) + if (groupId == null) { + const gLocals = getAllRows('groups') + const gHit = gLocals.find(x => groupKey(x) === groupKey(srcGroup)) + groupId = gHit?.id ?? insertRow('groups', { name: srcGroup.name, cohortYear: srcGroup.cohortYear }) + groupMap.set(srcGroup.id!, groupId) + } + const newId = insertRow('consultants', { + groupId, + firstName: c.firstName, + lastName: c.lastName, + email: ek ?? '', + }) + consultantMap.set(c.id!, newId) + consultantsCreated.push(label) + } + + let newAssignmentId = 0 + let checklistResponseCount = 0 + + db.exec('BEGIN') + try { + const a = pkg.assignment + newAssignmentId = insertRow('assignments', { + title: a.title, + client: a.client, + assignmentTypeId: targetTypeId, + instituteeIds: a.instituteeIds.map(id => requireMap(consultantMap, id, 'Berater')), + leadName: a.leadName, + status: a.status, + createdAt: a.createdAt || new Date().toISOString(), + assignmentNumber: a.assignmentNumber, + description: a.description, + instituteeEnrollments: (a.instituteeEnrollments ?? []).map(e => ({ + ...e, + instituteeId: requireMap(consultantMap, e.instituteeId, 'Berater'), + })), + deletedAt: null, + archivedAt: null, + }) + + for (const m of pkg.meetingInstances) { + const meetingId = insertRow('meetingInstances', { + assignmentId: newAssignmentId, + phaseTemplateId: requireMap(phaseMap, m.phaseTemplateId, 'Phase'), + phaseIndex: m.phaseIndex, + date: m.date, + status: m.status, + generalNotes: m.generalNotes ?? '', + deletedAt: m.deletedAt ?? null, + generalNoteTags: remapTags(m.generalNoteTags, criterionMap), + }) + meetingMap.set(m.id!, meetingId) + } + + for (const e of pkg.conversationEntries) { + const entryId = insertRow('conversationEntries', { + meetingInstanceId: requireMap(meetingMap, e.meetingInstanceId, 'Meeting'), + instituteeId: requireMap(consultantMap, e.instituteeId, 'Berater'), + sequenceIndex: e.sequenceIndex, + note: e.note, + fillerCount: e.fillerCount ?? 0, + updatedAt: e.updatedAt || new Date().toISOString(), + lineTags: remapTags(e.lineTags, criterionMap), + }) + entryMap.set(e.id!, entryId) + } + + for (const s of pkg.conversationSkillScores) { + insertRow('conversationSkillScores', { + conversationEntryId: requireMap(entryMap, s.conversationEntryId, 'Protokoll-Eintrag'), + criteriaId: requireMap(categoryMap, s.criteriaId, 'Kategorie (Skill-Score)'), + score: s.score, + }) + } + + for (const asmt of pkg.assessments) { + insertRow('assessments', { + meetingInstanceId: requireMap(meetingMap, asmt.meetingInstanceId, 'Meeting'), + instituteeId: requireMap(consultantMap, asmt.instituteeId, 'Berater'), + criteriaId: requireMap(criterionMap, asmt.criteriaId, 'Kriterium'), + score: asmt.score, + note: asmt.note ?? '', + updatedAt: asmt.updatedAt || new Date().toISOString(), + scoreNeedsReview: asmt.scoreNeedsReview ?? false, + }) + } + + for (const r of pkg.meetingCategoryRatings) { + insertRow('meetingCategoryRatings', { + meetingInstanceId: requireMap(meetingMap, r.meetingInstanceId, 'Meeting'), + instituteeId: requireMap(consultantMap, r.instituteeId, 'Berater'), + categoryId: requireMap(categoryMap, r.categoryId, 'Kategorie'), + score: r.score, + note: r.note, + }) + } + + for (const r of pkg.checklistResponses) { + insertRow('checklistResponses', { + meetingInstanceId: requireMap(meetingMap, r.meetingInstanceId, 'Meeting'), + instituteeId: r.instituteeId != null ? requireMap(consultantMap, r.instituteeId, 'Berater') : null, + checklistItemId: requireMap(checklistDefMap, r.checklistItemId, 'Checklistenpunkt'), + rating: r.rating, + note: r.note ?? '', + criterionItemId: r.criterionItemId != null ? (criterionMap.get(r.criterionItemId) ?? null) : null, + criterionOverride: r.criterionOverride ?? false, + }) + checklistResponseCount++ + } + + for (const d of pkg.feedbackDrafts) { + insertRow('feedbackDrafts', { + assignmentId: newAssignmentId, + instituteeId: requireMap(consultantMap, d.instituteeId, 'Berater'), + content: d.content, + updatedAt: d.updatedAt || new Date().toISOString(), + }) + } + + for (const f of pkg.assignmentFeedbacks) { + const fbId = insertRow('assignmentFeedbacks', { + assignmentId: newAssignmentId, + instituteeId: requireMap(consultantMap, f.instituteeId, 'Berater'), + status: f.status, + aiModel: f.aiModel ?? '', + updatedAt: f.updatedAt || new Date().toISOString(), + }) + feedbackMap.set(f.id!, fbId) + } + + for (const r of pkg.feedbackCategoryRatings) { + insertRow('feedbackCategoryRatings', { + assignmentFeedbackId: requireMap(feedbackMap, r.assignmentFeedbackId, 'Feedback'), + feedbackCategoryId: requireMap(categoryMap, r.feedbackCategoryId, 'Kategorie'), + rating: r.rating, + }) + } + + for (const t of pkg.feedbackDimensionTexts) { + insertRow('feedbackDimensionTexts', { + assignmentFeedbackId: requireMap(feedbackMap, t.assignmentFeedbackId, 'Feedback'), + feedbackDimensionId: requireMap(dimensionMap, t.feedbackDimensionId, 'Dimension'), + achievements: t.achievements ?? '', + developmentNeeds: t.developmentNeeds ?? '', + suggestedAchievements: t.suggestedAchievements, + suggestedDevelopmentNeeds: t.suggestedDevelopmentNeeds, + }) + } + + for (const t of pkg.feedbackCategoryTexts) { + insertRow('feedbackCategoryTexts', { + assignmentFeedbackId: requireMap(feedbackMap, t.assignmentFeedbackId, 'Feedback'), + feedbackCategoryId: requireMap(categoryMap, t.feedbackCategoryId, 'Kategorie'), + benefits: t.benefits ?? '', + concerns: t.concerns ?? '', + suggestedBenefits: t.suggestedBenefits, + suggestedConcerns: t.suggestedConcerns, + }) + } + + db.exec('COMMIT') + } catch (err) { + db.exec('ROLLBACK') + throw err + } + + return { + assignmentId: newAssignmentId, + consultantsMatched, + consultantsCreated, + meetings: pkg.meetingInstances.length, + checklistResponses: checklistResponseCount, + } +} diff --git a/server/db/queries/assignments.ts b/server/db/queries/assignments.ts index bd00749..3a19c58 100644 --- a/server/db/queries/assignments.ts +++ b/server/db/queries/assignments.ts @@ -68,6 +68,8 @@ export function purgeExpiredAssignmentTrash(): void { export interface AssignmentWithDetails extends Assignment { typeName: string + /** Hex-Farbe des Assignment-Typs (Fallback Brand). */ + typeColor: string instituteeNames: string[] /** Nur für status==='done' relevant: jedes Institutee hat ein finales Feedback — steuert den Löschen-Button in der Übersicht. */ feedbackComplete: boolean @@ -82,15 +84,19 @@ export function listAssignmentsWithDetails(): AssignmentWithDetails[] { const allFeedbacks = getAllRows('assignmentFeedbacks') const typeMap = new Map(types.map(t => [t.id!, t])) const consMap = new Map(consultants.map(c => [c.id!, c])) - return raw.map(a => ({ - ...a, - typeName: typeMap.get(a.assignmentTypeId)?.name ?? '—', - instituteeNames: a.instituteeIds.map(id => { - const c = consMap.get(id) - return c ? `${c.firstName} ${c.lastName}` : '?' - }), - feedbackComplete: a.instituteeIds.every(iid => - allFeedbacks.some(f => f.assignmentId === a.id && f.instituteeId === iid && f.status === 'final'), - ), - })) + return raw.map(a => { + const t = typeMap.get(a.assignmentTypeId) + return { + ...a, + typeName: t?.name ?? '—', + typeColor: t?.color?.trim() || '#0070AD', + instituteeNames: a.instituteeIds.map(id => { + const c = consMap.get(id) + return c ? `${c.firstName} ${c.lastName}` : '?' + }), + feedbackComplete: a.instituteeIds.every(iid => + allFeedbacks.some(f => f.assignmentId === a.id && f.instituteeId === iid && f.status === 'final'), + ), + } + }) } diff --git a/server/db/queries/checklists.ts b/server/db/queries/checklists.ts index 4991007..a652cae 100644 --- a/server/db/queries/checklists.ts +++ b/server/db/queries/checklists.ts @@ -48,16 +48,23 @@ export function upsertChecklistResponse(input: { checklistItemId: number rating: ChecklistResponse['rating'] note: string - criterionItemId?: number + criterionItemId?: number | null + criterionOverride?: boolean }): number { const existing = getAllRows('checklistResponses').find(r => r.meetingInstanceId === input.meetingInstanceId && r.checklistItemId === input.checklistItemId && (r.instituteeId ?? null) === (input.instituteeId ?? null), ) + const row = { + rating: input.rating, + note: input.note, + criterionItemId: input.criterionItemId, + criterionOverride: input.criterionOverride, + } if (existing?.id) { - updateRow('checklistResponses', existing.id, { rating: input.rating, note: input.note, criterionItemId: input.criterionItemId }) + updateRow('checklistResponses', existing.id, row) return existing.id } - return insertRow('checklistResponses', input) + return insertRow('checklistResponses', { ...input, ...row }) } diff --git a/server/db/queries/consultants.ts b/server/db/queries/consultants.ts index 125d828..a3cb2d3 100644 --- a/server/db/queries/consultants.ts +++ b/server/db/queries/consultants.ts @@ -1,12 +1,266 @@ -import { getAllRows, getRowById, getRowsWhereIn, insertRow, updateRow, deleteRowById } from '../crud' -import type { Group, Consultant } from '../../../src/db/types' +import { + getAllRows, getRowById, getRowsWhereIn, + insertRow, updateRow, deleteRowById, deleteRowsWhereEquals, deleteRowsWhereIn, +} from '../crud' +import type { + Group, Consultant, Assignment, AssignmentFeedback, FeedbackCategoryRating, + FeedbackCategory, ConversationEntry, RatingScore, + ConsultantImportRow, ConsultantImportResult, HardDeleteConsultantResult, + ConsultantAssignmentSummary, ConsultantDetail, +} from '../../../src/db/types' + +export type { + ConsultantImportRow, ConsultantImportResult, HardDeleteConsultantResult, + ConsultantAssignmentSummary, ConsultantDetail, +} + +export function normalizeEmail(email: string): string { + return email.trim().toLowerCase() +} + +export function listGroups(): Group[] { + return getAllRows('groups').sort((a, b) => + a.cohortYear !== b.cohortYear ? b.cohortYear - a.cohortYear : a.name.localeCompare(b.name), + ) +} + +export const getGroup = (id: number): Group | undefined => getRowById('groups', id) -export const listGroups = (): Group[] => getAllRows('groups') export const addGroup = (group: Omit): number => insertRow('groups', group) +export function updateGroup(id: number, patch: Partial): number { + return updateRow('groups', id, patch) +} + +/** Nur leere Gruppen — sonst Fehlertext. */ +export function deleteGroup(id: number): { ok: true } | { ok: false; reason: string; memberCount: number } { + const members = getAllRows('consultants').filter(c => c.groupId === id) + if (members.length > 0) { + return { + ok: false, + reason: 'Gruppe hat noch Personen — zuerst umziehen oder archivieren/löschen.', + memberCount: members.length, + } + } + deleteRowById('groups', id) + return { ok: true } +} + export const listConsultants = (): Consultant[] => getAllRows('consultants') + +export function listActiveConsultants(): Consultant[] { + return listConsultants().filter(c => !c.archivedAt) +} + +export function listArchivedConsultants(): Consultant[] { + return listConsultants().filter(c => !!c.archivedAt) +} + export const getConsultant = (id: number): Consultant | undefined => getRowById('consultants', id) -export const getConsultantsByIds = (ids: number[]): Consultant[] => getRowsWhereIn('consultants', 'id', ids) -export const addConsultant = (consultant: Omit): number => insertRow('consultants', consultant) -export const updateConsultant = (id: number, patch: Partial): number => updateRow('consultants', id, patch) -export const deleteConsultant = (id: number): void => deleteRowById('consultants', id) + +export const getConsultantsByIds = (ids: number[]): Consultant[] => + getRowsWhereIn('consultants', 'id', ids) + +export function findConsultantByEmail(email: string): Consultant | undefined { + const key = normalizeEmail(email) + if (!key) return undefined + return listConsultants().find(c => normalizeEmail(c.email ?? '') === key) +} + +function assertUniqueEmail(email: string, exceptId?: number): void { + const key = normalizeEmail(email) + if (!key) throw new Error('E-Mail ist Pflicht.') + const hit = listConsultants().find(c => normalizeEmail(c.email ?? '') === key && c.id !== exceptId) + if (hit) throw new Error(`E-Mail „${key}" ist bereits vergeben (${hit.firstName} ${hit.lastName}).`) +} + +export function addConsultant(consultant: Omit): number { + const email = normalizeEmail(consultant.email ?? '') + assertUniqueEmail(email) + return insertRow('consultants', { + ...consultant, + email, + firstName: consultant.firstName.trim(), + lastName: consultant.lastName.trim(), + }) +} + +export function updateConsultant(id: number, patch: Partial): number { + const next: Partial = { ...patch } + if (patch.email !== undefined) { + const email = normalizeEmail(patch.email) + assertUniqueEmail(email, id) + next.email = email + } + if (patch.firstName !== undefined) next.firstName = patch.firstName.trim() + if (patch.lastName !== undefined) next.lastName = patch.lastName.trim() + return updateRow('consultants', id, next) +} + +export function archiveConsultant(id: number): number { + return updateRow('consultants', id, { archivedAt: new Date().toISOString() }) +} + +export function unarchiveConsultant(id: number): number { + return updateRow('consultants', id, { archivedAt: null as unknown as undefined }) +} + +/** + * Import in eine gewählte Zielgruppe. Abgleich nur über E-Mail. + * moveIfDifferentGroup: bekannte Personen mit anderer Gruppe in die Zielgruppe verschieben. + */ +export function importConsultantsToGroup( + groupId: number, + rows: ConsultantImportRow[], + moveIfDifferentGroup = true, +): ConsultantImportResult { + const group = getGroup(groupId) + if (!group) throw new Error('Zielgruppe nicht gefunden.') + + const result: ConsultantImportResult = { created: 0, updated: 0, moved: 0, skipped: 0, errors: [] } + const seenInFile = new Set() + + for (let i = 0; i < rows.length; i++) { + const row = rows[i]! + const line = i + 1 + const email = normalizeEmail(row.email ?? '') + const firstName = (row.firstName ?? '').trim() + const lastName = (row.lastName ?? '').trim() + + if (!email) { + result.errors.push(`Zeile ${line}: E-Mail fehlt`) + result.skipped++ + continue + } + if (!firstName || !lastName) { + result.errors.push(`Zeile ${line}: Name unvollständig (${email})`) + result.skipped++ + continue + } + if (seenInFile.has(email)) { + result.errors.push(`Zeile ${line}: doppelte E-Mail in Datei (${email})`) + result.skipped++ + continue + } + seenInFile.add(email) + + const existing = findConsultantByEmail(email) + if (!existing?.id) { + insertRow('consultants', { groupId, firstName, lastName, email }) + result.created++ + continue + } + + const patch: Partial = { firstName, lastName } + if (existing.groupId !== groupId) { + if (moveIfDifferentGroup) { + patch.groupId = groupId + result.moved++ + } + } + updateRow('consultants', existing.id, patch) + result.updated++ + } + + return result +} + +/** Feedback + personenbezogene Meeting-Daten weg; Assignment bleibt, Person wird entkoppelt. */ +export function hardDeleteConsultant(id: number): HardDeleteConsultantResult { + const person = getConsultant(id) + if (!person) throw new Error('Person nicht gefunden.') + + const feedbacks = getAllRows('assignmentFeedbacks').filter(f => f.instituteeId === id) + const feedbackIds = feedbacks.map(f => f.id!).filter(Boolean) + if (feedbackIds.length) { + deleteRowsWhereIn('feedbackCategoryRatings', 'assignmentFeedbackId', feedbackIds) + deleteRowsWhereIn('feedbackDimensionTexts', 'assignmentFeedbackId', feedbackIds) + deleteRowsWhereIn('feedbackCategoryTexts', 'assignmentFeedbackId', feedbackIds) + } + deleteRowsWhereEquals('assignmentFeedbacks', 'instituteeId', id) + deleteRowsWhereEquals('feedbackDrafts', 'instituteeId', id) + + const entries = getAllRows('conversationEntries').filter(e => e.instituteeId === id) + const entryIds = entries.map(e => e.id!).filter(Boolean) + if (entryIds.length) { + deleteRowsWhereIn('conversationSkillScores', 'conversationEntryId', entryIds) + } + deleteRowsWhereEquals('conversationEntries', 'instituteeId', id) + deleteRowsWhereEquals('assessments', 'instituteeId', id) + deleteRowsWhereEquals('meetingCategoryRatings', 'instituteeId', id) + deleteRowsWhereEquals('checklistResponses', 'instituteeId', id) + + const emptiedAssignmentIds: number[] = [] + let assignmentsTouched = 0 + const assignments = getAllRows('assignments') + for (const a of assignments) { + if (!a.id || !a.instituteeIds.includes(id)) continue + assignmentsTouched++ + const instituteeIds = a.instituteeIds.filter(x => x !== id) + const instituteeEnrollments = (a.instituteeEnrollments ?? []).filter(e => e.instituteeId !== id) + updateRow('assignments', a.id, { instituteeIds, instituteeEnrollments }) + if (instituteeIds.length === 0) emptiedAssignmentIds.push(a.id) + } + + deleteRowById('consultants', id) + return { + emptiedAssignmentIds, + feedbacksDeleted: feedbacks.length, + assignmentsTouched, + } +} + +/** @deprecated — nutze hardDeleteConsultant; bleibt als Alias für alte Client-Aufrufe. */ +export function deleteConsultant(id: number): void { + hardDeleteConsultant(id) +} + +export function getConsultantDetail(id: number): ConsultantDetail | undefined { + const consultant = getConsultant(id) + if (!consultant) return undefined + + const group = getGroup(consultant.groupId) + const types = getAllRows<{ id?: number; name: string }>('assignmentTypes') + const typeMap = new Map(types.map(t => [t.id!, t.name])) + const categories = getAllRows('feedbackCategories') + const catMap = new Map(categories.map(c => [c.id!, c.name])) + const allFeedbacks = getAllRows('assignmentFeedbacks') + const allRatings = getAllRows('feedbackCategoryRatings') + + const assignments = getAllRows('assignments') + .filter(a => a.instituteeIds.includes(id)) + .map(a => { + const fb = allFeedbacks.find(f => f.assignmentId === a.id && f.instituteeId === id) + const ratings = fb?.id + ? allRatings + .filter(r => r.assignmentFeedbackId === fb.id) + .map(r => ({ + categoryId: r.feedbackCategoryId, + categoryName: catMap.get(r.feedbackCategoryId) ?? `Kategorie ${r.feedbackCategoryId}`, + rating: (r.rating ?? null) as RatingScore | null, + })) + : [] + return { + assignmentId: a.id!, + title: a.title, + assignmentNumber: a.assignmentNumber, + client: a.client, + status: a.status, + deletedAt: a.deletedAt, + archivedAt: a.archivedAt, + plannedStart: a.plannedStart, + plannedEnd: a.plannedEnd, + createdAt: a.createdAt, + typeName: typeMap.get(a.assignmentTypeId) ?? '—', + feedbackStatus: (!fb ? 'none' : fb.status === 'final' ? 'final' : 'draft') as 'none' | 'draft' | 'final', + categoryRatings: ratings, + } + }) + .sort((a, b) => { + const ae = a.plannedEnd ?? a.createdAt + const be = b.plannedEnd ?? b.createdAt + return be.localeCompare(ae) + }) + + return { consultant, group, assignments } +} diff --git a/server/db/starterPackage.ts b/server/db/starterPackage.ts new file mode 100644 index 0000000..345e25e --- /dev/null +++ b/server/db/starterPackage.ts @@ -0,0 +1,165 @@ +/** + * Starter-Paket: nur Konfigurations-/Strukturdaten für Team-Verteilung. + * Keine Personen-, Assignment- oder Meeting-Daten (GDPR). + * Produktiv (`AssigmentMonitor`) wird nie angefasst — Skripte nutzen dieselben Pfad-Guards. + */ +import { writeFileSync, readFileSync, mkdirSync, existsSync } from 'node:fs' +import { dirname, join, resolve, sep } from 'node:path' +import { fileURLToPath } from 'node:url' +import { TABLE_DEFINITIONS, TABLE_NAMES } from './tableRegistry' +import { getAllRows, insertRowWithId } from './crud' +import { db } from '../database' + +const __dirname = dirname(fileURLToPath(import.meta.url)) +export const PROJECT_ROOT = resolve(join(__dirname, '../..')) +export const STARTER_DIR = join(PROJECT_ROOT, 'docs', 'starter') +export const STARTER_FILE = join(STARTER_DIR, 'starter-structure.json') + +/** Tabellen mit Stammdaten / Config — IDs bleiben stabil (FK zwischen Struktur-Tabellen). */ +export const STARTER_STRUCTURE_TABLES = [ + 'feedbackDimensions', + 'feedbackCategories', + 'feedbackCriterionItems', + 'feedbackDimensionPrompts', + 'assignmentTypes', + 'phaseTemplates', + 'checklistItemDefs', + 'appSettings', + 'criterionLevelDescriptions', +] as const + +const STRUCTURE_SET = new Set(STARTER_STRUCTURE_TABLES) + +export interface StarterPackage { + kind: 'assignment-monitor-starter' + version: 1 + exportedAt: string + note: string + tables: Record>> +} + +/** Verweigert jeden Pfad außerhalb V2 und jeden Produktiv-DB-Pfad. */ +export function assertV2DevOnly(resolvedPath: string, label: string): void { + const pathNorm = resolvedPath.toLowerCase() + const rootNorm = PROJECT_ROOT.toLowerCase() + const rootPrefix = rootNorm.endsWith(sep) ? rootNorm : rootNorm + sep + + if (!pathNorm.startsWith(rootPrefix) && pathNorm !== rootNorm) { + throw new Error(`[${label}] SAFETY: Pfad außerhalb AssignmentMonitorV2:\n ${resolvedPath}`) + } + if ( + /[/\\]assigmentmonitor[/\\]/.test(pathNorm) && + !/[/\\]assigmentmonitorv2[/\\]/.test(pathNorm) + ) { + throw new Error(`[${label}] SAFETY: Produktiv-Pfad blockiert:\n ${resolvedPath}`) + } +} + +export function assertStarterEnv(): void { + const apiPort = process.env.API_PORT?.trim() || '4001' + const vitePort = process.env.PORT?.trim() || '5174' + const sqliteFilename = process.env.SQLITE_FILENAME?.trim() || 'assignment-monitor-v2-dev.sqlite3' + + if (apiPort === '4000') { + throw new Error('[starter] SAFETY: API_PORT=4000 ist der Produktiv-Port — abgebrochen.') + } + if (vitePort === '5173') { + throw new Error('[starter] SAFETY: PORT=5173 ist der Produktiv-Port — abgebrochen.') + } + if (sqliteFilename === 'assignment-monitor.sqlite3') { + throw new Error('[starter] SAFETY: Produktiv-DB-Dateiname blockiert.') + } + if (sqliteFilename.includes('/') || sqliteFilename.includes('\\') || sqliteFilename.includes('..')) { + throw new Error(`[starter] SAFETY: SQLITE_FILENAME ungültig: "${sqliteFilename}"`) + } +} + +function sanitizeStructureRow(tableName: string, row: Record): Record { + const copy = { ...row } + // Destillierte Muster stammen aus echten Protokollen — nicht mitverteilen. + if (tableName === 'feedbackCriterionItems' && 'learnedPatternHints' in copy) { + copy.learnedPatternHints = null + } + return copy +} + +/** Liest Struktur aus der aktuellen V2-Dev-DB (leere Laufzeit-Tabellen im Payload). */ +export function buildStarterPackageFromDb(): StarterPackage { + assertStarterEnv() + assertV2DevOnly(PROJECT_ROOT, 'starter:export') + + const tables: Record>> = {} + for (const name of TABLE_NAMES) { + if (STRUCTURE_SET.has(name)) { + tables[name] = getAllRows>(name).map(r => sanitizeStructureRow(name, r)) + } else { + tables[name] = [] + } + } + + return { + kind: 'assignment-monitor-starter', + version: 1, + exportedAt: new Date().toISOString(), + note: 'Nur Struktur/Config — keine Personen, Assignments oder Meetings. Nur für AssignmentMonitorV2.', + tables, + } +} + +export function writeStarterPackage(pkg: StarterPackage, targetPath = STARTER_FILE): string { + assertV2DevOnly(targetPath, 'starter:export') + mkdirSync(dirname(targetPath), { recursive: true }) + writeFileSync(targetPath, JSON.stringify(pkg, null, 2), 'utf8') + return targetPath +} + +export function readStarterPackage(sourcePath = STARTER_FILE): StarterPackage { + assertV2DevOnly(sourcePath, 'starter:import') + if (!existsSync(sourcePath)) { + throw new Error(`[starter] Datei fehlt: ${sourcePath}`) + } + const raw = JSON.parse(readFileSync(sourcePath, 'utf8')) as StarterPackage + if (raw.kind !== 'assignment-monitor-starter' || raw.version !== 1 || !raw.tables) { + throw new Error('[starter] Ungültiges Starter-Paket (kind/version/tables).') + } + return raw +} + +/** + * Ersetzt den kompletten DB-Inhalt durch das Starter-Paket (Struktur befüllt, Rest leer). + * Absichtlich voller Wipe — für frische Team-Installationen. + */ +export function importStarterPackage(pkg: StarterPackage): { structureRows: number } { + assertStarterEnv() + assertV2DevOnly(PROJECT_ROOT, 'starter:import') + + let structureRows = 0 + db.exec('BEGIN') + try { + for (const table of TABLE_DEFINITIONS) { + db.prepare(`DELETE FROM "${table.name}"`).run() + } + for (const table of TABLE_DEFINITIONS) { + const rows = pkg.tables[table.name] ?? [] + for (const row of rows) { + const { id, ...rest } = row + if (typeof id !== 'number') continue + insertRowWithId(table.name, id, sanitizeStructureRow(table.name, rest)) + if (STRUCTURE_SET.has(table.name)) structureRows++ + } + } + db.exec('COMMIT') + } catch (err) { + db.exec('ROLLBACK') + throw err + } + return { structureRows } +} + +export function summarizeStarter(pkg: StarterPackage): Record { + const counts: Record = {} + for (const name of STARTER_STRUCTURE_TABLES) { + counts[name] = pkg.tables[name]?.length ?? 0 + } + return counts +} diff --git a/server/db/tableRegistry.ts b/server/db/tableRegistry.ts index f0fd590..08c32b4 100644 --- a/server/db/tableRegistry.ts +++ b/server/db/tableRegistry.ts @@ -40,6 +40,7 @@ export const TABLE_DEFINITIONS: TableDef[] = [ col('name', 'TEXT'), col('defaultPhaseKeys', 'TEXT', 'json'), col('criteriaIds', 'TEXT', 'json'), + col('color', 'TEXT'), ]}, { name: 'phaseTemplates', columns: [ col('assignmentTypeId', 'INTEGER'), @@ -61,6 +62,8 @@ export const TABLE_DEFINITIONS: TableDef[] = [ col('groupId', 'INTEGER'), col('firstName', 'TEXT'), col('lastName', 'TEXT'), + col('email', 'TEXT'), + col('archivedAt', 'TEXT'), ]}, { name: 'assignments', columns: [ col('title', 'TEXT'), @@ -75,6 +78,8 @@ export const TABLE_DEFINITIONS: TableDef[] = [ col('instituteeEnrollments', 'TEXT', 'json'), col('deletedAt', 'TEXT'), col('archivedAt', 'TEXT'), + col('plannedStart', 'TEXT'), + col('plannedEnd', 'TEXT'), ]}, { name: 'meetingInstances', columns: [ col('assignmentId', 'INTEGER'), @@ -107,6 +112,7 @@ export const TABLE_DEFINITIONS: TableDef[] = [ col('score', 'INTEGER'), col('note', 'TEXT'), col('updatedAt', 'TEXT'), + col('scoreNeedsReview', 'INTEGER', 'bool'), ]}, { name: 'meetingCategoryRatings', columns: [ col('meetingInstanceId', 'INTEGER'), @@ -185,7 +191,9 @@ export const TABLE_DEFINITIONS: TableDef[] = [ col('defaultDimensionPromptTemplate', 'TEXT'), col('defaultCategoryPromptTemplate', 'TEXT'), col('criterionTaggingPromptTemplate', 'TEXT'), + col('checklistTaggingPromptTemplate', 'TEXT'), col('ratingColorBands', 'TEXT', 'json'), + col('requirePlannedDates', 'INTEGER', 'bool'), ]}, { name: 'checklistItemDefs', columns: [ col('phaseTemplateId', 'INTEGER'), @@ -193,6 +201,7 @@ export const TABLE_DEFINITIONS: TableDef[] = [ col('linkedCriterionItemId', 'INTEGER'), col('scope', 'TEXT'), col('order', 'INTEGER'), + col('scoreContribution', 'TEXT'), ]}, { name: 'checklistResponses', columns: [ col('meetingInstanceId', 'INTEGER'), @@ -201,6 +210,7 @@ export const TABLE_DEFINITIONS: TableDef[] = [ col('rating', 'INTEGER'), col('note', 'TEXT'), col('criterionItemId', 'INTEGER'), + col('criterionOverride', 'INTEGER', 'bool'), ]}, ] diff --git a/server/index.ts b/server/index.ts index 0a138a7..ca925a2 100644 --- a/server/index.ts +++ b/server/index.ts @@ -1,6 +1,14 @@ import express from 'express' +import { existsSync } from 'node:fs' import './database' +import { getAllRows } from './db/crud' import { rpcModules } from './rpcModules' +import { + STARTER_FILE, + readStarterPackage, + importStarterPackage, + summarizeStarter, +} from './db/starterPackage' const app = express() app.use(express.json({ limit: '50mb' })) // Backup-Import kann alle Tabellen als ein JSON-Body enthalten @@ -32,6 +40,30 @@ if (!Number.isFinite(port) || port === 4000) { ) } +/** Team-ZIP: leere DB automatisch mit Struktur befüllen (keine Meetings/Personen). */ +function seedStarterIfEmpty(): void { + const dims = getAllRows('feedbackDimensions') + if (dims.length > 0) return + if (!existsSync(STARTER_FILE)) { + console.warn('[server] DB ohne Feedback-Struktur und ohne Starter-Paket — Config bleibt leer.') + return + } + try { + const pkg = readStarterPackage() + const { structureRows } = importStarterPackage(pkg) + const counts = summarizeStarter(pkg) + console.log(`[server] Starter-Struktur automatisch geladen (${structureRows} Zeilen).`) + console.log( + `[server] Dimensionen=${counts.feedbackDimensions} Kategorien=${counts.feedbackCategories} ` + + `Kriterien=${counts.feedbackCriterionItems} Typen=${counts.assignmentTypes}`, + ) + } catch (err) { + console.warn('[server] Auto-Seed fehlgeschlagen:', err instanceof Error ? err.message : err) + } +} + +seedStarterIfEmpty() + app.listen(port, () => { console.log(`[server] DEV-RPC-API (AssignmentMonitorV2) auf http://localhost:${port}/api/rpc`) console.log(`[server] Produktiv (AssigmentMonitor) nutzt Port 4000 — diese Instanz ist davon getrennt.`) diff --git a/server/rpcModules.ts b/server/rpcModules.ts index 801b4f4..b5e1bba 100644 --- a/server/rpcModules.ts +++ b/server/rpcModules.ts @@ -11,6 +11,7 @@ import * as assessments from './db/queries/assessments' import * as assignmentFeedback from './db/queries/assignmentFeedback' import * as meetingCategoryRatings from './db/queries/meetingCategoryRatings' import * as backup from './db/queries/backup' +import * as assignmentTransfer from './db/queries/assignmentTransfer' const modules = { appSettings, @@ -26,6 +27,7 @@ const modules = { assignmentFeedback, meetingCategoryRatings, backup, + assignmentTransfer, } export type RpcModuleName = keyof typeof modules diff --git a/server/scripts/bootstrapFromStarter.ts b/server/scripts/bootstrapFromStarter.ts new file mode 100644 index 0000000..07b7f13 --- /dev/null +++ b/server/scripts/bootstrapFromStarter.ts @@ -0,0 +1,34 @@ +/** + * Spielt docs/starter/starter-structure.json in die V2-Dev-DB ein (voller Wipe). + * Usage: npm run bootstrap -- --yes + * Ohne --yes / CONFIRM=1: Abbruch (Schutz vor versehentlichem Löschen). + * Produktiv-Ports/DB-Namen werden blockiert. + */ +const args = new Set(process.argv.slice(2)) +const confirmed = args.has('--yes') || args.has('-y') || process.env.CONFIRM === '1' + +if (!confirmed) { + console.error('[bootstrap] Abbruch: würde die V2-Dev-DB komplett ersetzen.') + console.error('[bootstrap] Zum Bestätigen: npm run bootstrap -- --yes') + console.error('[bootstrap] Quelle: docs/starter/starter-structure.json') + process.exit(1) +} + +const { + readStarterPackage, + importStarterPackage, + summarizeStarter, + STARTER_FILE, +} = await import('../db/starterPackage') + +const pkg = readStarterPackage() +const counts = summarizeStarter(pkg) +const { structureRows } = importStarterPackage(pkg) + +console.log(`[bootstrap] Starter eingespielt (${structureRows} Struktur-Zeilen).`) +console.log(`[bootstrap] Quelle: ${STARTER_FILE} (${pkg.exportedAt})`) +for (const [table, n] of Object.entries(counts)) { + if (n > 0) console.log(` ${table}: ${n}`) +} +console.log('[bootstrap] Keine Personen-/Meeting-Daten. API-Key lokal unter Config → KI setzen.') +console.log('[bootstrap] Start: npm run dev:all → http://localhost:5174') diff --git a/server/scripts/exportStarterPackage.ts b/server/scripts/exportStarterPackage.ts new file mode 100644 index 0000000..6a64f04 --- /dev/null +++ b/server/scripts/exportStarterPackage.ts @@ -0,0 +1,22 @@ +/** + * Exportiert Struktur/Config aus der V2-Dev-DB nach docs/starter/starter-structure.json. + * Usage: npm run starter:export + * Produktiv wird per Guard blockiert. + */ +import { + buildStarterPackageFromDb, + writeStarterPackage, + summarizeStarter, + STARTER_FILE, +} from '../db/starterPackage' + +const pkg = buildStarterPackageFromDb() +const path = writeStarterPackage(pkg) +const counts = summarizeStarter(pkg) + +console.log(`[starter:export] geschrieben: ${path}`) +console.log(`[starter:export] Stand: ${pkg.exportedAt}`) +for (const [table, n] of Object.entries(counts)) { + if (n > 0) console.log(` ${table}: ${n}`) +} +console.log(`[starter:export] Ziel: ${STARTER_FILE}`) diff --git a/server/scripts/packLaptopZip.ts b/server/scripts/packLaptopZip.ts new file mode 100644 index 0000000..b87a720 --- /dev/null +++ b/server/scripts/packLaptopZip.ts @@ -0,0 +1,158 @@ +/** + * Laptop-Umzug: Code + komplette V2-Dev-SQLite (ohne node_modules, .env). + * Enthält personenbezogene Daten — nur an sich selbst / den Ziel-Laptop schicken. + * + * Usage: npm run pack:laptop + */ +import { mkdirSync, existsSync, rmSync, readFileSync, copyFileSync, writeFileSync } from 'node:fs' +import { dirname, join, resolve, relative } from 'node:path' +import { fileURLToPath } from 'node:url' +import { execFileSync } from 'node:child_process' + +const __dirname = dirname(fileURLToPath(import.meta.url)) +const projectRoot = resolve(join(__dirname, '../..')) +const outDir = join(projectRoot, 'dist-release') +const stamp = new Date().toISOString().slice(0, 10) +const zipName = `AssignmentMonitor-Umzug-${stamp}.zip` +const zipPath = join(outDir, zipName) +const stageName = 'AssigmentMonitorV2' +const stageRoot = join(outDir, '_stage-laptop', stageName) + +const rootNorm = projectRoot.toLowerCase() +if (!rootNorm.includes('assigmentmonitorv2')) { + throw new Error('[pack:laptop] SAFETY: Skript nur innerhalb AssigmentMonitorV2 ausführen.') +} + +const sqliteFilename = process.env.SQLITE_FILENAME?.trim() || 'assignment-monitor-v2-dev.sqlite3' +if (sqliteFilename.includes('/') || sqliteFilename.includes('\\') || sqliteFilename.includes('..')) { + throw new Error(`[pack:laptop] SAFETY: SQLITE_FILENAME ungültig: "${sqliteFilename}"`) +} +if (sqliteFilename === 'assignment-monitor.sqlite3') { + throw new Error('[pack:laptop] SAFETY: Produktiv-DB-Dateiname blockiert.') +} + +const dbPath = join(projectRoot, 'server', 'data', sqliteFilename) + +const EXCLUDE_DIR_NAMES = new Set([ + 'node_modules', + 'dist', + 'dist-release', + 'dist-ssr', + '.vite', + '.claude', + '.vscode', + '_quarantine', + '_stage', + '_stage-laptop', +]) + +const EXCLUDE_FILE_NAMES = new Set([ + '.env', + '.env.local', + 'dist-release-log.txt', +]) + +function shouldSkip(absPath: string): boolean { + const rel = relative(projectRoot, absPath).split(/[/\\]/).join('/') + if (!rel || rel.startsWith('..')) return true + if (rel === 'server/data' || rel.startsWith('server/data/')) return true + if (rel === 'dist-release' || rel.startsWith('dist-release/')) return true + const parts = rel.split('/') + if (parts.some(p => EXCLUDE_DIR_NAMES.has(p) || p.startsWith('_quarantine'))) return true + const base = parts[parts.length - 1] ?? '' + if (EXCLUDE_FILE_NAMES.has(base)) return true + if (base.endsWith('.tsbuildinfo')) return true + if (base.startsWith('.env.') && base.endsWith('.local')) return true + if (base.endsWith('.bak')) return true + return false +} + +async function copyTree(srcDir: string, destDir: string): Promise { + const { readdirSync, statSync, mkdirSync: mkdir, copyFileSync: cp } = await import('node:fs') + let count = 0 + mkdir(destDir, { recursive: true }) + for (const name of readdirSync(srcDir)) { + const src = join(srcDir, name) + if (shouldSkip(src)) continue + const dest = join(destDir, name) + const st = statSync(src) + if (st.isDirectory()) { + count += await copyTree(src, dest) + } else if (st.isFile()) { + cp(src, dest) + count++ + } + } + return count +} + +function zipWithPowerShell(sourceFolder: string, targetZip: string): void { + const parent = dirname(sourceFolder) + const leaf = sourceFolder.split(/[/\\]/).pop() + const ps = ` + $ErrorActionPreference = 'Stop' + if (Test-Path -LiteralPath '${targetZip.replace(/'/g, "''")}') { Remove-Item -LiteralPath '${targetZip.replace(/'/g, "''")}' -Force } + Compress-Archive -Path (Join-Path '${parent.replace(/'/g, "''")}' '${leaf}') -DestinationPath '${targetZip.replace(/'/g, "''")}' -CompressionLevel Optimal + ` + execFileSync('powershell.exe', ['-NoProfile', '-Command', ps], { stdio: 'inherit' }) +} + +if (!existsSync(dbPath)) { + throw new Error( + `[pack:laptop] Datenbank fehlt: ${dbPath}\n` + + 'Ohne SQLite wäre das nur ein Team-Paket — zuerst die App einmal starten oder pack:zip nutzen.', + ) +} + +mkdirSync(outDir, { recursive: true }) +const stageParent = join(outDir, '_stage-laptop') +if (existsSync(stageParent)) rmSync(stageParent, { recursive: true, force: true }) +mkdirSync(stageRoot, { recursive: true }) + +console.log('[pack:laptop] Kopiere Projektdateien (ohne node_modules, .env; inkl. .git) …') +const files = await copyTree(projectRoot, stageRoot) +console.log(`[pack:laptop] ${files} Dateien → Staging`) + +const stageDataDir = join(stageRoot, 'server', 'data') +mkdirSync(stageDataDir, { recursive: true }) +copyFileSync(dbPath, join(stageDataDir, sqliteFilename)) +let extraDbFiles = 0 +for (const suffix of ['-wal', '-shm']) { + const extra = `${dbPath}${suffix}` + if (existsSync(extra)) { + copyFileSync(extra, join(stageDataDir, `${sqliteFilename}${suffix}`)) + extraDbFiles++ + } +} +writeFileSync( + join(stageDataDir, 'README.txt'), + [ + 'Diese SQLite-Datei ist die vollständige lokale Datenbank (Personen, Assignments, Meetings).', + `Datei: ${sqliteFilename}`, + 'Nach dem Entpacken NICHT npm run setup / bootstrap / db:reset ausführen.', + '', + ].join('\n'), + 'utf8', +) +console.log(`[pack:laptop] DB kopiert: ${sqliteFilename}${extraDbFiles ? ` (+${extraDbFiles} WAL/SHM)` : ''}`) + +if (!existsSync(join(stageRoot, 'UMZUG.md'))) { + throw new Error('[pack:laptop] UMZUG.md fehlt im Staging — Abbruch.') +} +if (!existsSync(join(stageRoot, '.env.example'))) { + throw new Error('[pack:laptop] .env.example fehlt') +} +if (!existsSync(join(stageRoot, 'server', 'data', sqliteFilename))) { + throw new Error('[pack:laptop] DB landete nicht im Staging — Abbruch.') +} + +console.log(`[pack:laptop] Erzeuge ${zipName} …`) +zipWithPowerShell(stageRoot, zipPath) +rmSync(stageParent, { recursive: true, force: true }) + +const sizeMb = (readFileSync(zipPath).byteLength / (1024 * 1024)).toFixed(2) +console.log(`[pack:laptop] Fertig: ${zipPath}`) +console.log(`[pack:laptop] Größe: ${sizeMb} MB (E-Mail-tauglich, solange unter dem Postfach-Limit)`) +console.log('[pack:laptop] Enthält personenbezogene Daten — nur an den Ziel-Laptop schicken.') +console.log('[pack:laptop] Am Ziel: UMZUG.md folgen. Nicht npm run setup.') +console.log('[pack:laptop] Produktiv (AssigmentMonitor) wurde nicht angefasst.') diff --git a/server/scripts/packTeamZip.ts b/server/scripts/packTeamZip.ts new file mode 100644 index 0000000..3a2ad67 --- /dev/null +++ b/server/scripts/packTeamZip.ts @@ -0,0 +1,120 @@ +/** + * Erzeugt ein versandfertiges ZIP der V2-Team-Version (ohne node_modules, .env, Dev-DB, .git). + * Schreibt nach dist-release/ — Ordner ist gitignored; Produktiv wird nicht angefasst. + * + * Usage: npm run pack:zip + */ +import { mkdirSync, existsSync, rmSync, readFileSync } from 'node:fs' +import { dirname, join, resolve, relative } from 'node:path' +import { fileURLToPath } from 'node:url' +import { execFileSync } from 'node:child_process' + +const __dirname = dirname(fileURLToPath(import.meta.url)) +const projectRoot = resolve(join(__dirname, '../..')) +const outDir = join(projectRoot, 'dist-release') +const stamp = new Date().toISOString().slice(0, 10) +const zipName = `AssignmentMonitor-Team-${stamp}.zip` +const zipPath = join(outDir, zipName) +const stageName = 'AssigmentMonitorV2' +const stageRoot = join(outDir, '_stage', stageName) + +const rootNorm = projectRoot.toLowerCase() +if (!rootNorm.includes('assigmentmonitorv2')) { + throw new Error('[pack:zip] SAFETY: Skript nur innerhalb AssigmentMonitorV2 ausführen.') +} + +const EXCLUDE_DIR_NAMES = new Set([ + 'node_modules', + '.git', + 'dist', + 'dist-release', + 'dist-ssr', + '.vite', + '.claude', + '.vscode', + 'server\\data', + 'server/data', + '_quarantine', + '_stage', +]) + +const EXCLUDE_FILE_NAMES = new Set([ + '.env', + '.env.local', + 'dist-release-log.txt', +]) + +function shouldSkip(absPath: string): boolean { + const rel = relative(projectRoot, absPath).split(/[/\\]/).join('/') + if (!rel || rel.startsWith('..')) return true + if (rel === 'server/data' || rel.startsWith('server/data/')) return true + if (rel === 'dist-release' || rel.startsWith('dist-release/')) return true + const parts = rel.split('/') + if (parts.some(p => EXCLUDE_DIR_NAMES.has(p) || p.startsWith('_quarantine'))) return true + const base = parts[parts.length - 1] ?? '' + if (EXCLUDE_FILE_NAMES.has(base)) return true + if (base.endsWith('.tsbuildinfo')) return true + if (base.startsWith('.env.') && base.endsWith('.local')) return true + return false +} + +async function copyTree(srcDir: string, destDir: string): Promise { + const { readdirSync, statSync, mkdirSync: mkdir, copyFileSync: cp } = await import('node:fs') + let count = 0 + mkdir(destDir, { recursive: true }) + for (const name of readdirSync(srcDir)) { + const src = join(srcDir, name) + if (shouldSkip(src)) continue + const dest = join(destDir, name) + const st = statSync(src) + if (st.isDirectory()) { + count += await copyTree(src, dest) + } else if (st.isFile()) { + cp(src, dest) + count++ + } + } + return count +} + +function zipWithPowerShell(sourceFolder: string, targetZip: string): void { + // Compress-Archive braucht den Inhalt so, dass der Root-Ordner im ZIP liegt + const parent = dirname(sourceFolder) + const leaf = sourceFolder.split(/[/\\]/).pop() + const ps = ` + $ErrorActionPreference = 'Stop' + if (Test-Path -LiteralPath '${targetZip.replace(/'/g, "''")}') { Remove-Item -LiteralPath '${targetZip.replace(/'/g, "''")}' -Force } + Compress-Archive -Path (Join-Path '${parent.replace(/'/g, "''")}' '${leaf}') -DestinationPath '${targetZip.replace(/'/g, "''")}' -CompressionLevel Optimal + ` + execFileSync('powershell.exe', ['-NoProfile', '-Command', ps], { stdio: 'inherit' }) +} + +mkdirSync(outDir, { recursive: true }) +const stageParent = join(outDir, '_stage') +if (existsSync(stageParent)) rmSync(stageParent, { recursive: true, force: true }) +mkdirSync(stageRoot, { recursive: true }) + +console.log('[pack:zip] Kopiere Projektdateien (ohne DB, .env, node_modules, .git) …') +const files = await copyTree(projectRoot, stageRoot) +console.log(`[pack:zip] ${files} Dateien → Staging`) + +// Sicherstellen, dass Einrichtungsdateien im Root der ZIP liegen +if (!existsSync(join(stageRoot, 'EINRICHTUNG.md'))) { + throw new Error('[pack:zip] EINRICHTUNG.md fehlt im Staging — Abbruch.') +} +if (!existsSync(join(stageRoot, 'docs', 'starter', 'starter-structure.json'))) { + throw new Error('[pack:zip] starter-structure.json fehlt — zuerst npm run starter:export') +} +if (!existsSync(join(stageRoot, '.env.example'))) { + throw new Error('[pack:zip] .env.example fehlt') +} + +console.log(`[pack:zip] Erzeuge ${zipName} …`) +zipWithPowerShell(stageRoot, zipPath) +rmSync(stageParent, { recursive: true, force: true }) + +const sizeMb = (readFileSync(zipPath).byteLength / (1024 * 1024)).toFixed(2) +console.log(`[pack:zip] Fertig: ${zipPath}`) +console.log(`[pack:zip] Größe: ${sizeMb} MB`) +console.log('[pack:zip] An Kollegen: ZIP schicken + auf EINRICHTUNG.md verweisen.') +console.log('[pack:zip] Produktiv (AssigmentMonitor) wurde nicht angefasst.') diff --git a/server/scripts/smokeScaleAndTagging.ts b/server/scripts/smokeScaleAndTagging.ts new file mode 100644 index 0000000..08a8c6c --- /dev/null +++ b/server/scripts/smokeScaleAndTagging.ts @@ -0,0 +1,124 @@ +/** + * Automatisierter Smoke für C0 (Skala/Farbbänder) + C6/C7-Hilfslogik (Batches, Prompt-Größe). + * Schreibt temporär Farbbänder in die V2-Dev-DB und stellt den vorherigen Stand wieder her. + * + * Aufruf: npm run smoke + * Voraussetzung: .env mit V2-Ports/DB (wie npm run setup / server). + * + * Nur server-kompatible Imports (kein DOM/JSX) — siehe tsconfig.server.json. + */ +import '../database' +import { + DEFAULT_RATING_COLOR_BANDS, + BAND_STYLES, + bandForScore, + normalizeRatingColorBands, + normalizeRatingScore, + resolveScoreStyle, + AI_CONFIG, +} from '../../src/config/constants' +import { getOrSeedRatingColorBands, saveRatingColorBands } from '../db/queries/appSettings' +import { buildCharAwareBatches, mergePatternHints } from '../../src/utils/charAwareBatches' +import { checkPromptSize } from '../../src/utils/promptSize' + +let failed = 0 +let passed = 0 + +function assert(cond: boolean, label: string, detail?: string) { + if (cond) { + console.log(`✅ ${label}`) + passed++ + } else { + console.log(`❌ ${label}${detail ? ` — ${detail}` : ''}`) + failed++ + } +} + +console.log('=== Smoke: Skala 1–10 (C0) ===\n') + +assert(normalizeRatingScore(7) === 7, 'normalizeRatingScore(7) → 7') +assert(normalizeRatingScore(0) === null, 'normalizeRatingScore(0) → null') +assert(normalizeRatingScore(11) === null, 'normalizeRatingScore(11) → null') +assert(normalizeRatingScore('5') === 5, 'normalizeRatingScore("5") → 5') + +const bands = normalizeRatingColorBands(DEFAULT_RATING_COLOR_BANDS) +assert(bandForScore(1, bands).key === 'red', 'Score 1 → Band rot') +assert(bandForScore(2, bands).key === 'red', 'Score 2 → Band rot') +assert(bandForScore(3, bands).key === 'orange', 'Score 3 → Band orange') +assert(bandForScore(5, bands).key === 'orange', 'Score 5 → Band orange') +assert(bandForScore(6, bands).key === 'lightGreen', 'Score 6 → Band hellgrün') +assert(bandForScore(8, bands).key === 'lightGreen', 'Score 8 → Band hellgrün') +assert(bandForScore(9, bands).key === 'darkGreen', 'Score 9 → Band dunkelgrün') +assert(bandForScore(10, bands).key === 'darkGreen', 'Score 10 → Band dunkelgrün') + +assert( + BAND_STYLES.lightGreen.color !== BAND_STYLES.darkGreen.color, + 'Hellgrün und Dunkelgrün haben unterscheidbare CSS-Klassen', +) +assert( + BAND_STYLES.lightGreen.hex !== BAND_STYLES.darkGreen.hex, + 'Hellgrün und Dunkelgrün haben unterscheidbare Hex-Farben', +) + +const style6 = resolveScoreStyle(6, bands) +const style9 = resolveScoreStyle(9, bands) +assert(style6.color !== style9.color, 'resolveScoreStyle: 6 und 9 unterschiedliche Farben') + +const previousBands = getOrSeedRatingColorBands() +const probeBands = [ + { max: 3, key: 'red' as const }, + { max: 6, key: 'orange' as const }, + { max: 8, key: 'lightGreen' as const }, + { max: 10, key: 'darkGreen' as const }, +] +saveRatingColorBands(probeBands) +const reloaded = getOrSeedRatingColorBands() +assert( + JSON.stringify(reloaded) === JSON.stringify(normalizeRatingColorBands(probeBands)), + 'Farbbänder speichern/laden Roundtrip (DB)', + `got ${JSON.stringify(reloaded)}`, +) +saveRatingColorBands(previousBands) +const restored = getOrSeedRatingColorBands() +assert( + JSON.stringify(restored) === JSON.stringify(normalizeRatingColorBands(previousBands)), + 'Vorherige Farbbänder wiederhergestellt', +) + +console.log('\n=== Smoke: Tagging-Batches (C6) ===\n') + +const manyShort = Array.from({ length: 25 }, (_, i) => `Zeile ${i + 1} kurz`) +const byLines = buildCharAwareBatches(manyShort, s => s, 12, 50_000) +assert(byLines.length === 3, `25 Zeilen / max 12 → 3 Batches (ist ${byLines.length})`) +assert(byLines[0].length === 12 && byLines[1].length === 12 && byLines[2].length === 1, 'Batch-Größen 12+12+1') + +const longA = 'a'.repeat(2000) +const longB = 'b'.repeat(2000) +const byChars = buildCharAwareBatches([longA, longB, 'kurz'], s => s, 12, 3500) +assert(byChars.length === 2, `Zeichen-Budget → 2 Batches (ist ${byChars.length})`) +assert(byChars[0].length === 1 && byChars[0][0] === longA, 'Erste lange Zeile allein im Batch') +assert(byChars[1][0] === longB && byChars[1].includes('kurz'), 'Zweite lange Zeile + Kurzzeile im Folgebatch') + +const oneHuge = ['x'.repeat(5000)] +const alone = buildCharAwareBatches(oneHuge, s => s, 12, 3500) +assert(alone.length === 1 && alone[0].length === 1, 'Überlanges Einzelstück → 1 Batch mit 1 Zeile') + +const patterns = new Map() +mergePatternHints(patterns, new Map([[1, 'alt'], [2, 'zwei']])) +mergePatternHints(patterns, new Map([[1, 'neu']])) +assert(patterns.get(1) === 'neu' && patterns.get(2) === 'zwei', 'MUSTER-Merge: später überschreibt früher') + +console.log('\n=== Smoke: Prompt-Größe (C7) ===\n') + +const small = checkPromptSize('kurz') +assert(!small.softWarn && !small.overHardLimit, 'Kleiner Prompt: kein Soft/Hard') + +const soft = checkPromptSize('y'.repeat(AI_CONFIG.promptSoftWarnChars)) +assert(soft.softWarn && !soft.overHardLimit, 'Soft-Warn-Schwelle greift') + +const hard = checkPromptSize('z'.repeat(AI_CONFIG.promptHardLimitChars)) +assert(hard.overHardLimit, 'Hard-Limit-Schwelle greift') + +console.log(`\n=== Ergebnis: ${passed} pass, ${failed} fail ===`) +if (failed > 0) process.exit(1) +console.log('\nHinweis: UI-Teile → manuell in docs/SMOKE_TESTS.md') diff --git a/server/scripts/teamSetup.ts b/server/scripts/teamSetup.ts new file mode 100644 index 0000000..a94f43b --- /dev/null +++ b/server/scripts/teamSetup.ts @@ -0,0 +1,18 @@ +/** + * Einmal-Setup für Team-ZIP: Starter-Struktur in die V2-Dev-DB laden. + * Usage: npm run setup + */ +import { existsSync, copyFileSync } from 'node:fs' +import { dirname, join } from 'node:path' +import { fileURLToPath } from 'node:url' + +const rootPath = join(dirname(fileURLToPath(import.meta.url)), '../..') +const envPath = join(rootPath, '.env') +const examplePath = join(rootPath, '.env.example') +if (!existsSync(envPath) && existsSync(examplePath)) { + copyFileSync(examplePath, envPath) + console.log('[setup] .env aus .env.example angelegt.') +} + +process.env.CONFIRM = '1' +await import('./bootstrapFromStarter') diff --git a/src/App.tsx b/src/App.tsx index 263d716..44e18ad 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,5 @@ -import { Routes, Route, NavLink } from 'react-router-dom' -import { BRAND_COLOR } from './config/constants' +import { useEffect } from 'react' +import { Routes, Route, NavLink, Navigate, useLocation } from 'react-router-dom' import Dashboard from './pages/Dashboard' import Configuration from './pages/Configuration' import Consultants from './pages/Consultants' @@ -13,14 +13,60 @@ import MeetingView from './pages/meeting/MeetingView' import FeedbackDraftPage from './pages/FeedbackDraftPage' import AssignmentFeedbackPage from './pages/AssignmentFeedbackPage' import Evaluation from './pages/Evaluation' +import ConsultantDetailPage from './pages/ConsultantDetail' + +function headerContext(pathname: string): string { + if (pathname.startsWith('/config')) return 'Einstellungen' + if (pathname.startsWith('/consultants')) return 'Personen' + if (pathname.startsWith('/evaluation') || pathname.startsWith('/feedbacks')) return 'Feedbacks' + if (pathname.startsWith('/assignments/trash')) return 'Papierkorb' + if (pathname.startsWith('/assignments/archive')) return 'Archiv' + if (/\/meeting\//.test(pathname)) return 'Meeting' + if (/\/history$/.test(pathname)) return 'Gesamtprotokoll' + if (/\/feedback/.test(pathname)) return 'Feedback' + if (pathname.startsWith('/assignment')) return 'Assignment' + return 'Assignments' +} + +const NAV = [ + { to: '/', label: 'Assignments', end: true }, + { to: '/feedbacks', label: 'Feedbacks', end: false }, + { to: '/consultants', label: 'Personen', end: false }, + { to: '/config', label: 'Einstellungen', end: false }, +] as const export default function App() { + const { pathname } = useLocation() + const wideLayout = + pathname === '/' || + pathname.startsWith('/feedbacks') || + pathname.startsWith('/evaluation') || + pathname.startsWith('/consultants') || + /\/meeting\/|\/history$/.test(pathname) + const context = headerContext(pathname) + + useEffect(() => { + document.title = context === 'Assignments' + ? 'Assignment Monitor' + : `${context} · Assignment Monitor` + }, [context]) + return ( -

-
- Assignment Monitor +
+
+
+
+ Assignment Monitor +
+
{context}
+
-
+ +
} /> } /> @@ -32,30 +78,41 @@ export default function App() { } /> } /> } /> - } /> + } /> + } /> } /> + } /> } />
-
) diff --git a/src/config/constants.ts b/src/config/constants.ts index 7274568..87d9bfc 100644 --- a/src/config/constants.ts +++ b/src/config/constants.ts @@ -2,6 +2,20 @@ import type { RatingBandKey, RatingColorBand, RatingScore } from '../db/types' export const BRAND_COLOR = '#0070AD' +/** Voreinstellungen für AssignmentType.color (Einstellungen → Ass.-Typen). */ +export const ASSIGNMENT_TYPE_COLOR_PRESETS = [ + '#0070AD', + '#2E7D32', + '#C62828', + '#EF6C00', + '#6A1B9A', + '#00838F', + '#4527A0', + '#546E7A', +] as const + +export const DEFAULT_ASSIGNMENT_TYPE_COLOR = ASSIGNMENT_TYPE_COLOR_PRESETS[0] + export const RATING_MIN = 1 export const RATING_MAX = 10 @@ -109,6 +123,19 @@ export const AI_CONFIG = { localStorageKeyModel: 'ai_model', defaultModel: 'openai/gpt-4o-mini', openRouterBaseUrl: 'https://openrouter.ai/api/v1', + /** Timeout pro OpenRouter-Call (inkl. Retry). */ + requestTimeoutMs: 90_000, + /** Einmaliger Retry bei transienten Fehlern (Netz/429/5xx). */ + retryTransientOnce: true, + retryBackoffMs: 1_500, + /** Soft-Warnung / Hard-Abbruch nach Prompt-Zeichenzahl (roher Prompt-Text). */ + promptSoftWarnChars: 24_000, + promptHardLimitChars: 100_000, + /** Tagging-Batches: max. Zeilen und max. Summe Rohtext-Zeichen pro Call. */ + taggingBatchMaxLines: 12, + taggingBatchMaxChars: 3_500, + /** Hybrid-Notnagel: Top-K Kriterien per Jaccard, wenn ein Einzelzeilen-Prompt zu groß ist. */ + taggingStructureTopK: 15, /** * Seit 2026-07-14 nur noch einmaliger Erstbefüllungs-Wert für `appSettings.defaultDimensionPromptTemplate` * (siehe `getOrSeedDefaultDimensionPromptTemplate()` in server/db/queries/appSettings.ts) — der tatsächlich @@ -122,9 +149,13 @@ DIMENSION: {{DIMENSION_NAME}} KATEGORIE: {{KATEGORIE_NAME}} {{KATEGORIE_ERLAEUTERUNG}} -KRITERIEN & BEOBACHTUNGEN (nur diese Kategorie): +KRITERIEN & BEOBACHTUNGEN (nur diese Kategorie — chronologisch, mit Einzelbelegen): {{KRITERIEN_SCORES}} +Jedes Kriterium enthält Gesamt-Ø über Meetings sowie Einzelbelege mit Datum, Quelle, Score und Wichtigkeit. +Priorisiere bei der Auswertung: (1) Einträge mit Wichtigkeit „hoch"/„erhöht", (2) neuere Meetings, (3) konkrete Kommentare mit Score. +Nutze den Gesamt-Ø als Orientierung — wähle aus den Belegen die aussagekräftigsten für BENEFITS/CONCERNS. + MANUELLE KATEGORIE-BEWERTUNG: {{KATEGORIE_BEWERTUNG}} ENTWICKLUNG ÜBER MEETINGS: {{ENTWICKLUNG_VERLAUF}} {{TREND_VORSCHLAG}} @@ -172,7 +203,7 @@ DEVELOPMENT_NEEDS: { token: '{{DIMENSION_NAME}}', description: 'Name der übergeordneten Dimension' }, { token: '{{KATEGORIE_NAME}}', description: 'Name der aktuellen Kategorie' }, { token: '{{KATEGORIE_ERLAEUTERUNG}}', description: 'Optional: Erläuterung der Kategorie' }, - { token: '{{KRITERIEN_SCORES}}', description: 'Kriterien dieser Kategorie mit Ø-Score und Notizen' }, + { token: '{{KRITERIEN_SCORES}}', description: 'Pro Kriterium: Gesamt-Ø + chronologische Einzelbelege (Protokoll, Checkliste, Notizen) mit Datum, Score und Wichtigkeit' }, { token: '{{KATEGORIE_BEWERTUNG}}', description: 'Manuelle Kategorie-Bewertung (1–10)' }, { token: '{{ENTWICKLUNG_VERLAUF}}', description: 'Meeting-Verlauf dieser Kategorie' }, { token: '{{TREND_VORSCHLAG}}', description: 'Vorgeschlagener Score aus Meeting-Trend (±1 Regel)' }, @@ -185,7 +216,7 @@ DEVELOPMENT_NEEDS: { token: '{{DIMENSION_NAME}}', description: 'Name der aktuellen Dimension' }, { token: '{{KATEGORIE_ERGEBNISSE}}', description: 'Scores + Benefits/Concerns aller Kategorien (Stufe A)' }, ], - defaultCriterionTaggingPromptTemplate: `Du bist Assistent bei der Auswertung von Kundentermin-Protokollen für Capgemini-Trainees (Institutees). Analysiere die folgenden noch nicht einem Bewertungskriterium zugeordneten Protokollzeilen und schlage pro Zeile passende Kriterien vor. + defaultCriterionTaggingPromptTemplate: `Du bist Assistent bei der Auswertung von Kundentermin-Protokollen für Capgemini-Trainees (Institutees). Analysiere die folgenden noch nicht einem Bewertungskriterium zugeordneten Protokollzeilen (Freitext-Beobachtungen) und schlage pro Zeile passende Kriterien vor. ASSIGNMENT-TYP: {{ASSIGNMENT_TYP}} @@ -203,7 +234,7 @@ NOCH NICHT ZUGEORDNETE PROTOKOLLZEILEN (nummeriert): Ordne jede Zeile 0 bis 3 Kriterien zu, priorisiert nach Passung (wahrscheinlichstes zuerst). Nutze ausschließlich die oben gelisteten Kriterium-IDs. Wenn keine sinnvolle Zuordnung erkennbar ist, gib "-" an. Erfinde keine Kriterien und keine Beobachtungen, die nicht im Zeilentext stehen. -Antworte AUSSCHLIESSLICH in exakt diesem Format, ohne zusätzliche Erklärungen, ohne Markdown-Formatierung: +Antworte AUSSCHLIESSLICH in exakt diesem Format, ohne zusätzliche Erklärungen, ohne Markdown-Formatierung (Kriterium-IDs als plain numbers, ohne eckige Klammern): ZEILE : , , ... ZEILE : - @@ -217,7 +248,36 @@ MUSTER: { token: '{{KRITERIEN_STRUKTUR}}', description: 'ID-referenzierte Struktur Dimension → Kategorie → Kriterium, gefiltert auf die im Assignment-Typ sichtbaren Kriterien, inkl. aller Beschreibungen' }, { token: '{{GELERNTE_MUSTER}}', description: 'KI-destillierte Formulierungsmuster pro Kriterium aus früheren Analyse-Läufen (Nebenprodukt, siehe FeedbackCriterionItem.learnedPatternHints)' }, { token: '{{AEHNLICHE_ALT_ZUORDNUNGEN}}', description: 'Lokal (ohne KI) ermittelte, ähnlichste bereits getaggte Alt-Zeilen je noch offener Zeile' }, - { token: '{{PROTOKOLL_ZEILEN}}', description: 'Nummerierte, noch nicht zugeordnete Zeilen des gesamten offenen Protokolls (Gesprächsbeiträge + allgemeine Notizen)' }, + { token: '{{PROTOKOLL_ZEILEN}}', description: 'Nummerierte, noch nicht zugeordnete Protokollzeilen (Gesprächsbeiträge + allgemeine Notizen)' }, + ], + defaultChecklistTaggingPromptTemplate: `Du ordnest Checklistenpunkte aus Kundenterminen Bewertungskriterien zu. Jeder Punkt ist ein strukturierter Prüfpunkt mit festem Namen (Label). Kommentare zu Checklistenpunkten sind absichtlich nicht enthalten — sie dienen nur der späteren Feedback-Text-Erstellung, nicht der Kriterium-Zuordnung. + +ASSIGNMENT-TYP: {{ASSIGNMENT_TYP}} + +VERFÜGBARE KRITERIEN (Dimension → Kategorie → Kriterium, referenziert über die Zahl in eckigen Klammern): +{{KRITERIEN_STRUKTUR}} + +BEREITS BEKANNTE, TYPISCHE FORMULIERUNGSMUSTER PRO KRITERIUM (aus früheren Analyse-Läufen, sofern vorhanden): +{{GELERNTE_MUSTER}} + +ÄHNLICHE, BEREITS ZUGEORDNETE ALT-ZEILEN (Kontext-Hinweis — Suche primär nach Label-Ähnlichkeit): +{{AEHNLICHE_ALT_ZUORDNUNGEN}} + +NOCH NICHT ZUGEORDNETE CHECKLISTENPUNKTE (nummeriert — ordne ausschließlich nach Bedeutung des Punkt-Namens/Labels): +{{CHECKLISTEN_PUNKTE}} + +Ordne jeden Punkt 0 bis 3 Kriterien zu, priorisiert nach Passung (wahrscheinlichstes zuerst). Nutze ausschließlich die oben gelisteten Kriterium-IDs. Der Punkt-Name ist das einzige Zuordnungskriterium — es gibt keine Scores oder Kommentare. Wenn keine sinnvolle Zuordnung erkennbar ist, gib "-" an. + +Antworte AUSSCHLIESSLICH in exakt diesem Format, ohne zusätzliche Erklärungen, ohne Markdown-Formatierung (Kriterium-IDs als plain numbers, ohne eckige Klammern): + +PUNKT : , , ... +PUNKT : -`, + checklistTaggingPromptPlaceholders: [ + { token: '{{ASSIGNMENT_TYP}}', description: 'Name des Assignment-Typs des aktuellen Meetings' }, + { token: '{{KRITERIEN_STRUKTUR}}', description: 'ID-referenzierte Struktur Dimension → Kategorie → Kriterium (gefiltert)' }, + { token: '{{GELERNTE_MUSTER}}', description: 'Formulierungsmuster aus früheren Protokoll-Analysen' }, + { token: '{{AEHNLICHE_ALT_ZUORDNUNGEN}}', description: 'Ähnlichste Alt-Zuordnungen je Checklistenpunkt (Label-basiert)' }, + { token: '{{CHECKLISTEN_PUNKTE}}', description: 'Nummerierte Checklistenpunkte (nur Label — kein Score, kein Kommentar)' }, ], } as const diff --git a/src/db/index.ts b/src/db/index.ts index 74ea518..d2186f1 100644 --- a/src/db/index.ts +++ b/src/db/index.ts @@ -1,9 +1,2 @@ export * from './types' -export { db } from './schema' export * from './queries' -export { - seedIfEmpty, - seedFeedbackStructureIfEmpty, - seedCriterionMappingsIfEmpty, - migrateToUnifiedCriteriaIfNeeded, -} from './seeds' diff --git a/src/db/queries/appSettings.ts b/src/db/queries/appSettings.ts index 7959e0b..490563b 100644 --- a/src/db/queries/appSettings.ts +++ b/src/db/queries/appSettings.ts @@ -23,7 +23,17 @@ export const getOrSeedCriterionTaggingPromptTemplate = (): Promise => export const saveCriterionTaggingPromptTemplate = (template: string): Promise => rpc('appSettings', 'saveCriterionTaggingPromptTemplate', template) +export const getOrSeedChecklistTaggingPromptTemplate = (): Promise => + rpc('appSettings', 'getOrSeedChecklistTaggingPromptTemplate') +export const saveChecklistTaggingPromptTemplate = (template: string): Promise => + rpc('appSettings', 'saveChecklistTaggingPromptTemplate', template) + export const getOrSeedDefaultCategoryPromptTemplate = (): Promise => rpc('appSettings', 'getOrSeedDefaultCategoryPromptTemplate') export const saveDefaultCategoryPromptTemplate = (template: string): Promise => rpc('appSettings', 'saveDefaultCategoryPromptTemplate', template) + +export const getOrSeedRequirePlannedDates = (): Promise => + rpc('appSettings', 'getOrSeedRequirePlannedDates') +export const saveRequirePlannedDates = (required: boolean): Promise => + rpc('appSettings', 'saveRequirePlannedDates', required) diff --git a/src/db/queries/assignmentTransfer.ts b/src/db/queries/assignmentTransfer.ts new file mode 100644 index 0000000..79881bc --- /dev/null +++ b/src/db/queries/assignmentTransfer.ts @@ -0,0 +1,10 @@ +import { rpc } from '../rpcClient' +import type { AssignmentTransferPackage, AssignmentImportResult } from '../types' + +export type { AssignmentTransferPackage, AssignmentImportResult } + +export const exportAssignmentTransfer = (assignmentId: number): Promise => + rpc('assignmentTransfer', 'exportAssignmentTransfer', assignmentId) + +export const importAssignmentTransfer = (pkg: AssignmentTransferPackage): Promise => + rpc('assignmentTransfer', 'importAssignmentTransfer', pkg) diff --git a/src/db/queries/assignments.ts b/src/db/queries/assignments.ts index 2ebd206..b80012a 100644 --- a/src/db/queries/assignments.ts +++ b/src/db/queries/assignments.ts @@ -20,6 +20,7 @@ export const hardDeleteAssignment = (id: number): Promise => rpc('assignme export interface AssignmentWithDetails extends Assignment { typeName: string + typeColor: string instituteeNames: string[] /** Nur für status==='done' relevant: jedes Institutee hat ein finales Feedback — steuert den Löschen-Button in der Übersicht. */ feedbackComplete: boolean diff --git a/src/db/queries/checklists.ts b/src/db/queries/checklists.ts index 7759721..6b8991d 100644 --- a/src/db/queries/checklists.ts +++ b/src/db/queries/checklists.ts @@ -23,5 +23,6 @@ export const upsertChecklistResponse = (input: { checklistItemId: number rating: ChecklistResponse['rating'] note: string - criterionItemId?: number + criterionItemId?: number | null + criterionOverride?: boolean }): Promise => rpc('checklists', 'upsertChecklistResponse', input) diff --git a/src/db/queries/consultants.ts b/src/db/queries/consultants.ts index 533cd81..2db92da 100644 --- a/src/db/queries/consultants.ts +++ b/src/db/queries/consultants.ts @@ -1,12 +1,50 @@ import { rpc } from '../rpcClient' -import type { Group, Consultant } from '../types' +import type { + Group, Consultant, + ConsultantImportRow, ConsultantImportResult, + HardDeleteConsultantResult, ConsultantDetail, +} from '../types' + +export type { + ConsultantImportRow, ConsultantImportResult, + HardDeleteConsultantResult, ConsultantDetail, +} export const listGroups = (): Promise => rpc('consultants', 'listGroups') +export const getGroup = (id: number): Promise => rpc('consultants', 'getGroup', id) export const addGroup = (group: Omit): Promise => rpc('consultants', 'addGroup', group) +export const updateGroup = (id: number, patch: Partial): Promise => + rpc('consultants', 'updateGroup', id, patch) +export const deleteGroup = ( + id: number, +): Promise<{ ok: true } | { ok: false; reason: string; memberCount: number }> => + rpc('consultants', 'deleteGroup', id) export const listConsultants = (): Promise => rpc('consultants', 'listConsultants') +export const listActiveConsultants = (): Promise => rpc('consultants', 'listActiveConsultants') +export const listArchivedConsultants = (): Promise => rpc('consultants', 'listArchivedConsultants') export const getConsultant = (id: number): Promise => rpc('consultants', 'getConsultant', id) -export const getConsultantsByIds = (ids: number[]): Promise => rpc('consultants', 'getConsultantsByIds', ids) -export const addConsultant = (consultant: Omit): Promise => rpc('consultants', 'addConsultant', consultant) -export const updateConsultant = (id: number, patch: Partial): Promise => rpc('consultants', 'updateConsultant', id, patch) +export const getConsultantsByIds = (ids: number[]): Promise => + rpc('consultants', 'getConsultantsByIds', ids) +export const findConsultantByEmail = (email: string): Promise => + rpc('consultants', 'findConsultantByEmail', email) + +export const addConsultant = (consultant: Omit): Promise => + rpc('consultants', 'addConsultant', consultant) +export const updateConsultant = (id: number, patch: Partial): Promise => + rpc('consultants', 'updateConsultant', id, patch) +export const archiveConsultant = (id: number): Promise => rpc('consultants', 'archiveConsultant', id) +export const unarchiveConsultant = (id: number): Promise => rpc('consultants', 'unarchiveConsultant', id) +export const hardDeleteConsultant = (id: number): Promise => + rpc('consultants', 'hardDeleteConsultant', id) export const deleteConsultant = (id: number): Promise => rpc('consultants', 'deleteConsultant', id) + +export const importConsultantsToGroup = ( + groupId: number, + rows: ConsultantImportRow[], + moveIfDifferentGroup?: boolean, +): Promise => + rpc('consultants', 'importConsultantsToGroup', groupId, rows, moveIfDifferentGroup) + +export const getConsultantDetail = (id: number): Promise => + rpc('consultants', 'getConsultantDetail', id) diff --git a/src/db/queries/index.ts b/src/db/queries/index.ts index e39f049..4ff71d0 100644 --- a/src/db/queries/index.ts +++ b/src/db/queries/index.ts @@ -10,3 +10,4 @@ export * from './conversationEntries' export * from './assessments' export * from './assignmentFeedback' export * from './meetingCategoryRatings' +export * from './assignmentTransfer' diff --git a/src/db/schema.ts b/src/db/schema.ts deleted file mode 100644 index d350d6e..0000000 --- a/src/db/schema.ts +++ /dev/null @@ -1,162 +0,0 @@ -import Dexie, { type Table } from 'dexie' -import type { - Category, Criterion, - AssignmentType, PhaseTemplate, - Group, Consultant, - Assignment, MeetingInstance, - ConversationEntry, ConversationSkillScore, - Assessment, FeedbackDraft, - FeedbackDimension, FeedbackCategory, FeedbackCriterionItem, - AssignmentFeedback, FeedbackCategoryRating, FeedbackDimensionText, - CriterionCategoryMapping, CriterionLevelDescription, - AppSettings, -} from './types' - -class AssignmentMonitorDB extends Dexie { - categories!: Table - criteria!: Table - assignmentTypes!: Table - phaseTemplates!: Table - groups!: Table - consultants!: Table - assignments!: Table - meetingInstances!: Table - conversationEntries!: Table - conversationSkillScores!: Table - assessments!: Table - feedbackDrafts!: Table - feedbackDimensions!: Table - feedbackCategories!: Table - feedbackCriterionItems!: Table - assignmentFeedbacks!: Table - feedbackCategoryRatings!: Table - feedbackDimensionTexts!: Table - criterionCategoryMappings!: Table - criterionLevelDescriptions!: Table - appSettings!: Table - - constructor() { - super('AssignmentMonitorDB') - this.version(1).stores({ - categories: '++id, order', - criteria: '++id, categoryId, order', - groups: '++id', - consultants: '++id, groupId', - meetings: '++id, date, status, groupId', - assessments: '++id, meetingId, consultantId, criteriaId', - consultantNotes: '++id, meetingId, consultantId', - }) - this.version(2).stores({ - categories: '++id, order', - criteria: '++id, categoryId, order', - assignmentTypes: '++id', - phaseTemplates: '++id, assignmentTypeId, order', - groups: '++id', - consultants: '++id, groupId', - assignments: '++id, status, createdAt', - meetingInstances: '++id, assignmentId, phaseTemplateId', - conversationEntries: '++id, meetingInstanceId, instituteeId, sequenceIndex', - conversationSkillScores: '++id, conversationEntryId, criteriaId', - assessments: '++id, meetingInstanceId, instituteeId, criteriaId', - feedbackDrafts: '++id, assignmentId, instituteeId', - meetings: null, - consultantNotes: null, - }) - this.version(3).stores({ - categories: '++id, order', - criteria: '++id, categoryId, order', - assignmentTypes: '++id', - phaseTemplates: '++id, assignmentTypeId, order', - groups: '++id', - consultants: '++id, groupId', - assignments: '++id, status, createdAt', - meetingInstances: '++id, assignmentId, phaseTemplateId', - conversationEntries: '++id, meetingInstanceId, instituteeId, sequenceIndex', - conversationSkillScores: '++id, conversationEntryId, criteriaId', - assessments: '++id, meetingInstanceId, instituteeId, criteriaId', - feedbackDrafts: '++id, assignmentId, instituteeId', - feedbackDimensions: '++id, order', - feedbackCategories: '++id, dimensionId, order', - feedbackCriterionItems: '++id, categoryId, order', - assignmentFeedbacks: '++id, assignmentId, instituteeId', - feedbackCategoryRatings: '++id, assignmentFeedbackId, feedbackCategoryId', - feedbackDimensionTexts: '++id, assignmentFeedbackId, feedbackDimensionId', - meetings: null, - consultantNotes: null, - }) - this.version(4).stores({ - categories: '++id, order', - criteria: '++id, categoryId, order', - assignmentTypes: '++id', - phaseTemplates: '++id, assignmentTypeId, order', - groups: '++id', - consultants: '++id, groupId', - assignments: '++id, status, createdAt', - meetingInstances: '++id, assignmentId, phaseTemplateId', - conversationEntries: '++id, meetingInstanceId, instituteeId, sequenceIndex', - conversationSkillScores: '++id, conversationEntryId, criteriaId', - assessments: '++id, meetingInstanceId, instituteeId, criteriaId', - feedbackDrafts: '++id, assignmentId, instituteeId', - feedbackDimensions: '++id, order', - feedbackCategories: '++id, dimensionId, order', - feedbackCriterionItems: '++id, categoryId, order', - assignmentFeedbacks: '++id, assignmentId, instituteeId', - feedbackCategoryRatings: '++id, assignmentFeedbackId, feedbackCategoryId', - feedbackDimensionTexts: '++id, assignmentFeedbackId, feedbackDimensionId', - criterionCategoryMappings: '++id, criterionId, feedbackCategoryId', - meetings: null, - consultantNotes: null, - }) - this.version(5).stores({ - categories: '++id, order', - criteria: '++id, categoryId, order', - assignmentTypes: '++id', - phaseTemplates: '++id, assignmentTypeId, order', - groups: '++id', - consultants: '++id, groupId', - assignments: '++id, status, createdAt', - meetingInstances: '++id, assignmentId, phaseTemplateId', - conversationEntries: '++id, meetingInstanceId, instituteeId, sequenceIndex', - conversationSkillScores: '++id, conversationEntryId, criteriaId', - assessments: '++id, meetingInstanceId, instituteeId, criteriaId', - feedbackDrafts: '++id, assignmentId, instituteeId', - feedbackDimensions: '++id, order', - feedbackCategories: '++id, dimensionId, order', - feedbackCriterionItems: '++id, categoryId, order', - assignmentFeedbacks: '++id, assignmentId, instituteeId', - feedbackCategoryRatings: '++id, assignmentFeedbackId, feedbackCategoryId', - feedbackDimensionTexts: '++id, assignmentFeedbackId, feedbackDimensionId', - criterionCategoryMappings: '++id, criterionId, feedbackCategoryId', - criterionLevelDescriptions: '++id, criterionItemId, rating', - meetings: null, - consultantNotes: null, - }) - this.version(6).stores({ - categories: '++id, order', - criteria: '++id, categoryId, order', - assignmentTypes: '++id', - phaseTemplates: '++id, assignmentTypeId, order', - groups: '++id', - consultants: '++id, groupId', - assignments: '++id, status, createdAt', - meetingInstances: '++id, assignmentId, phaseTemplateId', - conversationEntries: '++id, meetingInstanceId, instituteeId, sequenceIndex', - conversationSkillScores: '++id, conversationEntryId, criteriaId', - assessments: '++id, meetingInstanceId, instituteeId, criteriaId', - feedbackDrafts: '++id, assignmentId, instituteeId', - feedbackDimensions: '++id, order', - feedbackCategories: '++id, dimensionId, order', - feedbackCriterionItems: '++id, categoryId, order', - assignmentFeedbacks: '++id, assignmentId, instituteeId', - feedbackCategoryRatings: '++id, assignmentFeedbackId, feedbackCategoryId', - feedbackDimensionTexts: '++id, assignmentFeedbackId, feedbackDimensionId', - criterionCategoryMappings: '++id, criterionId, feedbackCategoryId', - criterionLevelDescriptions: '++id, criterionItemId, rating', - appSettings: '++id', - meetings: null, - consultantNotes: null, - }) - } -} - -export const db = new AssignmentMonitorDB() diff --git a/src/db/seeds/assignmentTypes.ts b/src/db/seeds/assignmentTypes.ts deleted file mode 100644 index 8762da2..0000000 --- a/src/db/seeds/assignmentTypes.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { db } from '../schema' -import type { PhaseKey } from '../types' - -export async function seedIfEmpty() { - const count = await db.assignmentTypes.count() - if (count > 0) return - - // ── Gemeinsame Kategorien & Kriterien (Legacy-Tabellen für Evaluation.tsx) ── - const catKomm = await db.categories.add({ name: 'Kommunikation', order: 1 }) - const catFach = await db.categories.add({ name: 'Fachkompetenz', order: 2 }) - const catKunde = await db.categories.add({ name: 'Kundenorientierung', order: 3 }) - const catSelf = await db.categories.add({ name: 'Selbstorganisation', order: 4 }) - const catCase = await db.categories.add({ name: 'Case-Kompetenz', order: 5 }) - - const kritKlarheit = await db.criteria.add({ categoryId: catKomm, name: 'Klarheit & Struktur', description: 'Klare, strukturierte Aussagen', weight: 2, order: 1 }) - const kritUeberzeug = await db.criteria.add({ categoryId: catKomm, name: 'Überzeugungskraft', description: 'Argumente überzeugend präsentieren', weight: 2, order: 2 }) - const kritZuhoeren = await db.criteria.add({ categoryId: catKomm, name: 'Aktives Zuhören', description: 'Eingehen auf Gesprächspartner', weight: 1, order: 3 }) - const kritFragen = await db.criteria.add({ categoryId: catKomm, name: 'Umgang mit Fragen', description: 'Reaktion auf Kunden-Fragen', weight: 2, order: 4 }) - const kritTiefe = await db.criteria.add({ categoryId: catFach, name: 'Fachliche Tiefe', description: 'Inhaltliche Korrektheit und Tiefe', weight: 3, order: 1 }) - const kritProblem = await db.criteria.add({ categoryId: catFach, name: 'Problemlösung', description: 'Analytisches Vorgehen, Hypothesen', weight: 3, order: 2 }) - const kritStakeholder = await db.criteria.add({ categoryId: catKunde, name: 'Stakeholder-Verständnis', description: 'Erkennt Bedürfnisse und Erwartungen', weight: 2, order: 1 }) - const kritEmpathie = await db.criteria.add({ categoryId: catKunde, name: 'Empathie', description: 'Einfühlungsvermögen im Gespräch', weight: 1, order: 2 }) - const kritVorb = await db.criteria.add({ categoryId: catSelf, name: 'Vorbereitung', description: 'Zeigt gute Meeting-Vorbereitung', weight: 2, order: 1 }) - const kritInitiative = await db.criteria.add({ categoryId: catSelf, name: 'Eigeninitiative', description: 'Handelt proaktiv ohne Aufforderung', weight: 2, order: 2 }) - const kritStruktur = await db.criteria.add({ categoryId: catCase, name: 'Problemstrukturierung', description: 'Systematische Zerlegung des Problems', weight: 3, order: 1 }) - const kritHypo = await db.criteria.add({ categoryId: catCase, name: 'Hypothesenbildung', description: 'Klare, testbare Hypothesen', weight: 3, order: 2 }) - const kritAnalyse = await db.criteria.add({ categoryId: catCase, name: 'Rechnen & Analyse', description: 'Datenbasiertes Vorgehen, Schätzfähigkeit', weight: 2, order: 3 }) - const kritZeitmanage = await db.criteria.add({ categoryId: catCase, name: 'Zeitmanagement', description: 'Effizienter Umgang mit der Case-Zeit', weight: 2, order: 4 }) - - const addPhase = ( - assignmentTypeId: number, - phaseKey: PhaseKey, - label: string, - withWhom: 'lead' | 'client', - opts: { repeatable?: boolean; conv?: boolean; assess?: boolean; criteriaIds?: number[]; order: number } - ) => db.phaseTemplates.add({ - assignmentTypeId, - phaseKey, - label, - withWhom, - isRepeatable: opts.repeatable ?? false, - hasConversation: opts.conv ?? false, - hasAssessment: opts.assess ?? false, - hasChecklist: false, - criteriaIds: opts.criteriaIds ?? [], - order: opts.order, - }) - - // ── AssignmentType 1: Generisch ────────────────────────────────────────── - const genericId = await db.assignmentTypes.add({ - name: 'Generisch', - defaultPhaseKeys: ['preBriefing', 'briefing', 'alignmentCall', 'preDelivery', 'delivery', 'feedbackCallClient', 'feedbackCallLead'], - }) - const genericCriteria = [kritKlarheit, kritUeberzeug, kritZuhoeren, kritTiefe, kritProblem, kritStakeholder, kritEmpathie, kritVorb, kritInitiative] - await addPhase(genericId, 'preBriefing', 'Pre-Briefing (Lead)', 'lead', { order: 1 }) - await addPhase(genericId, 'briefing', 'Briefing (Kunde)', 'client', { conv: true, assess: true, criteriaIds: genericCriteria, order: 2 }) - await addPhase(genericId, 'alignmentCall', 'Alignment Call (Kunde)', 'client', { repeatable: true, conv: true, assess: true, criteriaIds: genericCriteria, order: 3 }) - await addPhase(genericId, 'preDelivery', 'Pre-Delivery (Lead)', 'lead', { order: 4 }) - await addPhase(genericId, 'delivery', 'Delivery (Kunde)', 'client', { conv: true, assess: true, criteriaIds: genericCriteria, order: 5 }) - await addPhase(genericId, 'feedbackCallClient', 'Feedback Call (Kunde)', 'client', { conv: true, assess: true, criteriaIds: genericCriteria, order: 6 }) - await addPhase(genericId, 'feedbackCallLead', 'Feedback Call (Lead)', 'lead', { order: 7 }) - - // ── AssignmentType 2: Case Interview ──────────────────────────────────── - const caseId = await db.assignmentTypes.add({ - name: 'Case Interview', - defaultPhaseKeys: ['preBriefing', 'briefing', 'delivery', 'feedbackCallClient', 'feedbackCallLead'], - }) - const caseCriteria = [kritStruktur, kritHypo, kritAnalyse, kritKlarheit, kritZeitmanage, kritUeberzeug, kritFragen] - await addPhase(caseId, 'preBriefing', 'Pre-Briefing (Lead)', 'lead', { order: 1 }) - await addPhase(caseId, 'briefing', 'Case Briefing (Kunde)', 'client', { conv: true, assess: true, criteriaIds: caseCriteria, order: 2 }) - await addPhase(caseId, 'delivery', 'Case Delivery (Kunde)', 'client', { conv: true, assess: true, criteriaIds: caseCriteria, order: 3 }) - await addPhase(caseId, 'feedbackCallClient', 'Feedback Call (Kunde)', 'client', { conv: true, assess: true, criteriaIds: caseCriteria, order: 4 }) - await addPhase(caseId, 'feedbackCallLead', 'Feedback Call (Lead)', 'lead', { order: 5 }) - - // ── AssignmentType 3: Stakeholder Meeting / Pitch ──────────────────────── - const pitchId = await db.assignmentTypes.add({ - name: 'Stakeholder Meeting / Pitch', - defaultPhaseKeys: ['preBriefing', 'briefing', 'alignmentCall', 'preDelivery', 'delivery', 'feedbackCallClient', 'feedbackCallLead'], - }) - const pitchCriteria = [kritVorb, kritKlarheit, kritUeberzeug, kritStakeholder, kritFragen, kritEmpathie, kritInitiative] - await addPhase(pitchId, 'preBriefing', 'Pre-Briefing (Lead)', 'lead', { order: 1 }) - await addPhase(pitchId, 'briefing', 'Briefing (Kunde)', 'client', { conv: true, assess: true, criteriaIds: pitchCriteria, order: 2 }) - await addPhase(pitchId, 'alignmentCall', 'Alignment Call (Kunde)', 'client', { repeatable: true, conv: true, assess: true, criteriaIds: pitchCriteria, order: 3 }) - await addPhase(pitchId, 'preDelivery', 'Pre-Delivery (Lead)', 'lead', { order: 4 }) - await addPhase(pitchId, 'delivery', 'Pitch / Delivery (Kunde)', 'client', { conv: true, assess: true, criteriaIds: pitchCriteria, order: 5 }) - await addPhase(pitchId, 'feedbackCallClient', 'Feedback Call (Kunde)', 'client', { conv: true, assess: true, criteriaIds: pitchCriteria, order: 6 }) - await addPhase(pitchId, 'feedbackCallLead', 'Feedback Call (Lead)', 'lead', { order: 7 }) -} diff --git a/src/db/seeds/feedbackStructure.ts b/src/db/seeds/feedbackStructure.ts deleted file mode 100644 index 01e1d76..0000000 --- a/src/db/seeds/feedbackStructure.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { db } from '../schema' - -export async function seedFeedbackStructureIfEmpty() { - const count = await db.feedbackDimensions.count() - if (count > 0) return - - type CatSeed = { name: string; items: string[] } - type DimSeed = { name: string; cats: CatSeed[] } - - const dimensions: DimSeed[] = [ - { - name: 'Mindset, Commitment, Collaboration', - cats: [ - { name: 'Persönliche Einstellung', items: ['Ruhig bei Stress', 'Offen für neue Themen', 'Auftreten / Ausstrahlung', 'Pro aktiv', 'Lösungsorientiert'] }, - { name: 'Professionalität', items: ['Pünktlichkeit', 'Professionell bei informellen Gesprächen', 'Adressatengerecht', 'Hohes Maß an Selbststeuerung', 'Klarheit', 'Zuverlässigkeit'] }, - { name: 'Commitment', items: ['Offen für spontane Änderungen', 'Selbständiger Lösungsansatz', 'Pro aktive Ideen', 'Verantwortungsbewusst', 'Hilfsbereit', 'Teamorientiert'] }, - { name: 'Kommunikationsfähigkeit', items: ['To the point', 'Recap-Fähigkeit', 'Active Listening', 'Souveränität'] }, - { name: 'Zusammenarbeit', items: ['Regelmäßige Abstimmung', 'Unterstützung bei Bedarf', 'Know-How Sharing', 'Starkes Teamverhalten', 'Verantwortung und Vertrauen', 'Inhaltlich unterstützend'] }, - ], - }, - { - name: 'Running Our Projects', - cats: [ - { name: 'Ergebnisverantwortung', items: ['Fokussierung', 'Priorisierung (Impact Driven)', 'Machbarkeit / Umsetzbarkeit', 'Alternativvorschläge', 'Interne Abstimmung und Feedback'] }, - { name: 'Arbeitsstil', items: ['Komplexitätsmanagement', 'Eigenverantwortung', 'Feedbackaffinität', 'Verantwortungsbewusst / vorausschauend', 'Selbstreflektiert, lösungsorientiert', 'Offen, initiativ, kollegial', 'Organisiert, kommunikationsfähig', 'Lernfähig, anpassungsbereit, flexibel'] }, - { name: 'Kundenmanagement', items: ['Aktives Erwartungsmanagement', 'Selbstsicherheit und fachliche Überzeugung', 'Aktive Advisory', 'Realistisch', 'Kundenfokussiert'] }, - { name: 'Lieferzeiten', items: ['Verlässlichkeit', 'Fortschrittskontrolle und Planadaption', 'Aktives Scoping', 'Meetingsvorbereitung', 'Transparent'] }, - ], - }, - { - name: 'Growing our People', - cats: [ - { name: 'Networking', items: ['Cross-Collaboration', 'Network Growth', 'Network Utilization'] }, - { name: 'Learning und Development', items: ['Kritikfähigkeit', 'Wissensaufbau (Kompetenzausstrahlung)', 'Umsetzungsbereitschaft Feedback'] }, - ], - }, - { - name: 'Functional & Technical Skills', - cats: [ - { name: 'Qualität des Inhalts', items: ['Belastbarkeit', 'Nachvollziehbarkeit', 'Logische Storyline'] }, - { name: 'Inhaltliche Vollständigkeit', items: ['Wesentliche Elemente vorhanden', 'Realitätsnähe', 'Nutzenfokus'] }, - { name: 'Qualität der Unterlage', items: ['Design nach Standardvorgaben', 'Sprachliche Präzision', 'Visualisierungen unterstützen Kernbotschaften'] }, - { name: 'Prozesstreue', items: ['Kenne und befolge Prozesse und Vorgaben', 'Nachvollziehbarkeit und Transparenz', 'Qualitätschecks'] }, - ], - }, - { - name: 'Innovation und Asset Development', - cats: [ - { name: 'Innovation', items: ['Aktiver Vorschlag für Verbesserungen', 'Neue Ideen zur Verbesserung', 'Nutze aktuellen Wissensstand', 'Liefere über den Kundenerwartungen'] }, - ], - }, - ] - - for (let di = 0; di < dimensions.length; di++) { - const dim = dimensions[di] - const dimId = await db.feedbackDimensions.add({ name: dim.name, order: di + 1 }) - for (let ci = 0; ci < dim.cats.length; ci++) { - const cat = dim.cats[ci] - const catId = await db.feedbackCategories.add({ dimensionId: dimId, name: cat.name, order: ci + 1 }) - for (let ii = 0; ii < cat.items.length; ii++) { - await db.feedbackCriterionItems.add({ categoryId: catId, name: cat.items[ii], order: ii + 1 }) - } - } - } -} diff --git a/src/db/seeds/feedbackStructureFinal.json b/src/db/seeds/feedbackStructureFinal.json deleted file mode 100644 index 8bad8b9..0000000 --- a/src/db/seeds/feedbackStructureFinal.json +++ /dev/null @@ -1,660 +0,0 @@ -{ - "dimensions": [ - { - "name": "Client-Readiness", - "categories": [ - { - "name": "Problem Structuring", - "items": [ - { - "name": "Problem- und Zielklarheit", - "weight": 1, - "description": "Klärt Ausgangslage, eigentliches Problem, angestrebtes Ergebnis und relevante Entscheidung, bevor mit der Bearbeitung begonnen wird." - }, - { - "name": "Scope-Klarheit", - "weight": 1, - "description": "Grenzt Untersuchungsgegenstand, Betrachtungszeitraum, Stakeholder, Annahmen und Nicht-Ziele nachvollziehbar ab." - }, - { - "name": "Logische Zerlegung", - "weight": 1, - "description": "Zerlegt komplexe Fragestellungen in verständliche, trennscharfe und gemeinsam hinreichend vollständige Teilfragen." - }, - { - "name": "Hypothesenorientierung", - "weight": 1, - "description": "Formuliert frühzeitig plausible, überprüfbare Hypothesen und nutzt sie zur Steuerung der weiteren Analyse." - }, - { - "name": "Priorisierung nach Relevanz", - "weight": 1, - "description": "Fokussiert die Struktur auf die entscheidungs- und wirkungsrelevanten Fragestellungen und vermeidet unnötige Analysebreite." - }, - { - "name": "Treiber- und Abhängigkeitsverständnis", - "weight": 1, - "description": "Erkennt wesentliche Ursachen, Wirkzusammenhänge, Abhängigkeiten und Wechselwirkungen innerhalb der Fragestellung." - }, - { - "name": "Ableitung eines Analyseplans", - "weight": 1, - "description": "Übersetzt die Problemstruktur in konkrete Arbeitsschritte, benötigte Informationen, Verantwortlichkeiten und sinnvolle Prüfsequenzen." - } - ], - "description": "Übersetzt eine zunächst offene oder komplexe Kundenfragestellung in eine präzise, logisch gegliederte und bearbeitbare Problemstruktur, die eine fokussierte Analyse und zielgerichtete Entscheidungsfindung ermöglicht." - }, - { - "name": "Problem Solving", - "items": [ - { - "name": "Fakten- und Evidenzorientierung", - "weight": 1, - "description": "Stützt Aussagen auf belastbare Daten, Quellen, Interviews, Analysen oder transparent hergeleitete Annahmen." - }, - { - "name": "Methodengerechte Analyse", - "weight": 1, - "description": "Wählt geeignete qualitative und quantitative Methoden aus und wendet sie fachlich korrekt und zweckmäßig an." - }, - { - "name": "Kritische Prüfung von Informationen", - "weight": 1, - "description": "Hinterfragt Datenqualität, Quellen, Annahmen, Widersprüche und mögliche Verzerrungen, statt Ergebnisse ungeprüft zu übernehmen." - }, - { - "name": "Hypothesenprüfung und Iteration", - "weight": 1, - "description": "Prüft Hypothesen systematisch, verwirft oder schärft sie anhand neuer Erkenntnisse und passt das Vorgehen entsprechend an." - }, - { - "name": "Entwicklung von Lösungsoptionen", - "weight": 1, - "description": "Entwickelt mehrere relevante Handlungsoptionen und macht deren Unterschiede, Vor- und Nachteile sowie Konsequenzen sichtbar." - }, - { - "name": "Impact- und Value-Orientierung", - "weight": 1, - "description": "Richtet Analyse, Vorgehen und Lösung auf den höchsten realistischen Kundennutzen aus. Hinterfragt bei Bedarf den ursprünglich gewünschten Deliverable-Typ und entwickelt wirkungsvollere Alternativen, ohne Ziel, Scope, Risiken oder Umsetzbarkeit eigenmächtig zu verändern." - }, - { - "name": "Machbarkeit und Realitätsnähe", - "weight": 1, - "description": "Berücksichtigt organisatorische, technische, wirtschaftliche und zeitliche Rahmenbedingungen bei der Lösungsentwicklung." - }, - { - "name": "Entscheidungsorientierte Empfehlung", - "weight": 1, - "description": "Verdichtet Analyseergebnisse zu einer klaren Empfehlung mit Begründung, Auswirkungen, Risiken und nächsten Schritten." - } - ], - "description": "Bearbeitet strukturierte Fragestellungen analytisch belastbar, pragmatisch und ergebnisorientiert. Entwickelt aus Fakten und Erkenntnissen umsetzbare Optionen, Entscheidungen und Empfehlungen." - }, - { - "name": "Storylining", - "items": [ - { - "name": "Answer First / Kernaussage", - "weight": 1, - "description": "Stellt die zentrale Aussage, Empfehlung oder Antwort frühzeitig und eindeutig heraus." - }, - { - "name": "Logische Argumentationsstruktur", - "weight": 1, - "description": "Ordnet Aussagen so, dass Schlussfolgerungen nachvollziehbar aus Fakten, Analysen und Teilargumenten hervorgehen." - }, - { - "name": "Relevanz und Fokus", - "weight": 1, - "description": "Beschränkt die Storyline auf Inhalte, die für Fragestellung, Zielgruppe und Entscheidung tatsächlich erforderlich sind." - }, - { - "name": "Belegführung", - "weight": 1, - "description": "Verknüpft Kernaussagen sichtbar mit belastbaren Fakten, Analysen und nachvollziehbaren Begründungen." - }, - { - "name": "Managementgerechte Dramaturgie", - "weight": 1, - "description": "Führt verständlich von Ausgangslage und Handlungsdruck über Erkenntnisse zu Empfehlung, Wirkung und nächstem Schritt." - }, - { - "name": "Konsistenz über Medien und Beiträge", - "weight": 1, - "description": "Hält Botschaften, Begriffe, Zahlen und Argumentationslogik über Folien, Dokumente und mündliche Beiträge hinweg widerspruchsfrei." - } - ], - "description": "Verdichtet komplexe Inhalte zu einer logisch schlüssigen, adressatengerechten und entscheidungsorientierten Argumentationslinie, die Kernbotschaften klar transportiert." - }, - { - "name": "Precise Communication", - "items": [ - { - "name": "Active Listening", - "weight": 1, - "description": "Hört aufmerksam zu, erfasst Inhalt und Kontext und greift relevante Aussagen, Bedenken und Signale gezielt auf." - }, - { - "name": "Präzise Fragetechnik", - "weight": 1, - "description": "Stellt klare, relevante und aufeinander aufbauende Fragen, die Verständnis, Erkenntnisgewinn oder Entscheidung fördern." - }, - { - "name": "To the Point", - "weight": 1, - "description": "Formuliert die wesentliche Aussage ohne unnötige Vorrede, Wiederholungen oder Nebenpfade." - }, - { - "name": "Adressatengerechte Kommunikation", - "weight": 1, - "description": "Passt Tonalität, Detailtiefe, Begriffswahl und Kommunikationsstil an Zielgruppe, Hierarchie und Situation an." - }, - { - "name": "Sprachliche Klarheit und Verbindlichkeit", - "weight": 1, - "description": "Verwendet eindeutige Formulierungen und vermeidet unnötige Füllwörter, Weichmacher, Mehrdeutigkeit und Scheingenauigkeit." - }, - { - "name": "Recap und Verständnissicherung", - "weight": 1, - "description": "Fasst Kernaussagen, Entscheidungen, offene Punkte und nächste Schritte prägnant zusammen und prüft gemeinsames Verständnis." - }, - { - "name": "Souveräne Präsenz", - "weight": 1, - "description": "Tritt ruhig, vorbereitet, klar und entscheidungsorientiert auf. Behält auch bei kritischen Rückfragen, Widerspruch oder unvollständigen Informationen die Handlungsfähigkeit, unterscheidet sicher zwischen Fakten, Annahmen und offenen Punkten und vermittelt Orientierung, ohne Sicherheit vorzutäuschen." - } - ], - "description": "Nimmt Informationen aktiv auf und kommuniziert mündlich wie schriftlich klar, prägnant, adressatengerecht und handlungsorientiert." - }, - { - "name": "Client Intimacy Building", - "items": [ - { - "name": "Verständnis des Kundenkontexts", - "weight": 1, - "description": "Erfasst Ziele, Geschäftsmodell, Prioritäten, Restriktionen, Entscheidungslogiken und relevante Rahmenbedingungen des Kunden." - }, - { - "name": "Stakeholderverständnis", - "weight": 1, - "description": "Erkennt Interessen, Einfluss, Erwartungen und mögliche Widerstände relevanter Stakeholder und berücksichtigt sie im Vorgehen." - }, - { - "name": "Vertrauensaufbau und Beziehungsqualität", - "weight": 1, - "description": "Schafft durch Verlässlichkeit, Integrität, professionelles Verhalten und respektvolle Zusammenarbeit eine belastbare Arbeitsbeziehung." - }, - { - "name": "Fachliche Glaubwürdigkeit und Kompetenzwahrnehmung", - "weight": 1, - "description": "Wird durch fachliche Substanz, Kundenverständnis, klare Einordnung und belastbare Empfehlungen als relevanter und kompetenter Ansprechpartner wahrgenommen. Gibt Orientierung und macht zugleich Grenzen des eigenen Wissens transparent." - }, - { - "name": "Aktives Erwartungsmanagement", - "weight": 1, - "description": "Klärt Ziele, Rollen, Umfang, Annahmen, Risiken und Liefererwartungen und steuert Abweichungen frühzeitig nach." - }, - { - "name": "Active Advisory und Customer Steering", - "weight": 1, - "description": "Führt den Kunden aktiv durch Fragestellungen, Optionen, Konsequenzen und notwendige Entscheidungen. Spricht klare Empfehlungen aus und verhindert eine rein ausführende Rolle, ohne die Entscheidungsverantwortung des Kunden zu übergehen." - }, - { - "name": "Konstruktives Challengen", - "weight": 1, - "description": "Hinterfragt Annahmen oder Kundenwünsche respektvoll, faktenbasiert und lösungsorientiert, wenn dies dem Ergebnis dient." - }, - { - "name": "Beziehungsentwicklung über den Einzeltermin hinaus", - "weight": 1, - "description": "Pflegt relevante Kontakte, erkennt Anschlussbedarfe und schafft Kontinuität in der Zusammenarbeit, ohne aufdringlich oder rein vertriebsorientiert zu handeln." - } - ], - "description": "Baut professionelle, vertrauensvolle Kundenbeziehungen auf, versteht fachliche und persönliche Stakeholderbedürfnisse und entwickelt sich vom Ausführenden zum wirksamen Berater." - }, - { - "name": "Quality of Deliverables", - "items": [ - { - "name": "Fachliche Richtigkeit", - "weight": 1, - "description": "Inhalte, Berechnungen, Aussagen und Schlussfolgerungen sind fachlich korrekt und belastbar." - }, - { - "name": "Inhaltliche Vollständigkeit", - "weight": 1, - "description": "Deckt die für Fragestellung und Entscheidung relevanten Aspekte, Perspektiven und Auswirkungen angemessen ab." - }, - { - "name": "Logische Konsistenz", - "weight": 1, - "description": "Stellt sicher, dass Aussagen, Zahlen, Argumente und Empfehlungen in sich sowie untereinander widerspruchsfrei sind." - }, - { - "name": "Kundenspezifische Konkretisierung", - "weight": 1, - "description": "Überträgt generische Erkenntnisse sichtbar auf Situation, Sprache, Daten und Handlungsrealität des Kunden." - }, - { - "name": "Informationsdichte und Nutzbarkeit", - "weight": 1, - "description": "Wählt eine angemessene Detailtiefe und ermöglicht dem Adressaten, Kernaussagen und Handlungsbedarf schnell zu erfassen." - }, - { - "name": "Visualisierungs- und Darstellungsqualität", - "weight": 1, - "description": "Nutzt Struktur, Layout, Tabellen, Grafiken und Visualisierungen so, dass sie Verständnis und Botschaft wirksam unterstützen." - }, - { - "name": "Formale Qualität und Standardkonformität", - "weight": 1, - "description": "Hält relevante Templates, Designvorgaben, Sprache, Quellenangaben, Versionierung und Dokumentationsstandards konsequent ein." - } - ], - "description": "Erstellt fachlich belastbare, konsistente und professionell aufbereitete Arbeitsergebnisse, die für den Kunden verständlich, relevant und unmittelbar nutzbar sind." - }, - { - "name": "Proposal Writing & Value Proposition Design", - "items": [ - { - "name": "Verständnis von Bedarf und Buying Context", - "weight": 1, - "description": "Erfasst Problem, Auslöser, Zielbild, Entscheidungskriterien, Stakeholder und Beschaffungskontext hinter der Anfrage." - }, - { - "name": "Klare Value Proposition", - "weight": 1, - "description": "Formuliert prägnant, welchen konkreten Nutzen und welche angestrebten Ergebnisse das Angebot für den Kunden erzeugt." - }, - { - "name": "Kundenspezifische Differenzierung", - "weight": 1, - "description": "Verbindet Kundenbedarf mit relevanten Fähigkeiten, Erfahrungen, Assets und unterscheidbaren Stärken des eigenen Angebots." - }, - { - "name": "Schlüssiger Scope und Deliverables", - "weight": 1, - "description": "Beschreibt Leistungsumfang, Ergebnisse, Grenzen und Verantwortlichkeiten klar und vermeidet Interpretationsspielräume." - }, - { - "name": "Plausibles Vorgehensmodell", - "weight": 1, - "description": "Entwickelt einen nachvollziehbaren Ansatz mit Arbeitspaketen, Meilensteinen, Beteiligten und Entscheidungszeitpunkten." - }, - { - "name": "Belastbare Annahmen und Machbarkeit", - "weight": 1, - "description": "Macht Voraussetzungen, Abhängigkeiten, Risiken und Mitwirkungspflichten transparent und verspricht nur realistisch Lieferbares." - }, - { - "name": "Kommerzielles Verständnis", - "weight": 1, - "description": "Berücksichtigt Aufwand, Preislogik, Wirtschaftlichkeit, Risiken und den für beide Seiten tragfähigen Zuschnitt des Angebots." - }, - { - "name": "Überzeugende Angebotsstory", - "weight": 1, - "description": "Verbindet Kundensituation, Handlungsdruck, Lösung, Nutzen, Vorgehen und Glaubwürdigkeit zu einer konsistenten Entscheidungsgrundlage." - } - ], - "description": "Übersetzt einen Kundenbedarf in ein überzeugendes, differenziertes und realistisch lieferbares Leistungsversprechen mit klarer Wirkung, Vorgehensweise und Nutzenargumentation." - }, - { - "name": "Workshop Design & Facilitation", - "items": [ - { - "name": "Ziel- und Ergebnisdefinition", - "weight": 1, - "description": "Klärt vorab, welches konkrete Ergebnis, welche Entscheidung oder welcher Arbeitsfortschritt im Workshop erreicht werden soll." - }, - { - "name": "Teilnehmer- und Stakeholderdesign", - "weight": 1, - "description": "Bindet die für Inhalt, Entscheidung und Umsetzung relevanten Personen mit passenden Rollen ein." - }, - { - "name": "Dramaturgie und Methodenauswahl", - "weight": 1, - "description": "Entwickelt eine logische Agenda und wählt Methoden, die Ziel, Teilnehmergruppe, Zeit und Arbeitsmodus unterstützen." - }, - { - "name": "Vorbereitung und Arbeitsfähigkeit", - "weight": 1, - "description": "Stellt Inhalte, Leitfragen, Daten, Materialien, Technik, Rollen und organisatorische Voraussetzungen rechtzeitig bereit." - }, - { - "name": "Zielgerichtete Moderation", - "weight": 1, - "description": "Führt verständlich durch den Prozess, hält Fokus und Zeit und macht Übergänge sowie Arbeitsaufträge klar." - }, - { - "name": "Aktivierung und Gruppendynamik", - "weight": 1, - "description": "Fördert ausgewogene Beteiligung, geht konstruktiv mit Dominanz, Zurückhaltung, Konflikten und Abschweifungen um." - }, - { - "name": "Ergebnissicherung und Follow-up", - "weight": 1, - "description": "Verdichtet Diskussionen, dokumentiert Entscheidungen, Verantwortlichkeiten und nächste Schritte und stellt eine klare Nachbereitung sicher." - } - ], - "description": "Konzipiert und moderiert Workshops so, dass relevante Beteiligte fokussiert zusammenarbeiten, belastbare Ergebnisse erzielen und klare Entscheidungen oder nächste Schritte vereinbaren." - } - ] - }, - { - "name": "AI-Readiness", - "categories": [ - { - "name": "AI Fundamentals", - "items": [ - { - "name": "Grundverständnis generativer KI", - "weight": 1, - "description": "Erklärt in angemessener Tiefe, wie Modelle, Trainingsdaten, Kontext, Prompts und probabilistische Ausgabe die Ergebnisse beeinflussen." - }, - { - "name": "Use-Case-Eignung beurteilen", - "weight": 1, - "description": "Erkennt, für welche Aufgaben KI sinnvoll ist und wo menschliche Expertise, klassische Analyse oder andere Werkzeuge geeigneter sind." - }, - { - "name": "Grenzen und Fehlerbilder erkennen", - "weight": 1, - "description": "Berücksichtigt insbesondere Halluzinationen, Bias, fehlende Aktualität, Scheingenauigkeit, Kontextverlust und unvollständige Quellenlage." - }, - { - "name": "Datenschutz und Vertraulichkeit", - "weight": 1, - "description": "Behandelt Kunden-, Personen- und Unternehmensdaten entsprechend den geltenden Sicherheits-, Datenschutz- und Vertraulichkeitsvorgaben." - }, - { - "name": "Responsible-AI-Verständnis", - "weight": 1, - "description": "Berücksichtigt ethische, rechtliche, sicherheitsbezogene und gesellschaftliche Auswirkungen beim Einsatz von KI." - }, - { - "name": "Qualitätssicherung von KI-Ergebnissen", - "weight": 1, - "description": "Prüft Ergebnisse fachlich, logisch, methodisch und quellenbezogen und übernimmt keine KI-Ausgabe ungeprüft." - } - ], - "description": "Versteht Funktionsweise, Einsatzvoraussetzungen, Chancen, Grenzen und Risiken von KI auf einem für die Beratung angemessenen Niveau und handelt verantwortungsvoll." - }, - { - "name": "AI-Augmented Consulting", - "items": [ - { - "name": "Zielgerichtete Tool- und Use-Case-Auswahl", - "weight": 1, - "description": "Wählt KI-Werkzeug und Einsatzform passend zu Aufgabe, Datenlage, Risiko und erwartetem Mehrwert aus." - }, - { - "name": "Kontext- und Promptgestaltung", - "weight": 1, - "description": "Formuliert klare Arbeitsaufträge, stellt relevanten Kontext bereit und verbessert Ergebnisse iterativ durch geeignete Steuerung." - }, - { - "name": "KI-gestützte Recherche und Verdichtung", - "weight": 1, - "description": "Nutzt KI zur Informationsstrukturierung und Synthese, überprüft jedoch Quellen, Aktualität und Vollständigkeit." - }, - { - "name": "KI-gestützte Analyse und Hypothesenbildung", - "weight": 1, - "description": "Nutzt KI zur Entwicklung von Analysefragen, Hypothesen, Strukturierungsansätzen oder Auswertungsoptionen und validiert diese eigenständig." - }, - { - "name": "KI-gestützte Storyline- und Deliverable-Erstellung", - "weight": 1, - "description": "Erstellt mit KI erste Entwürfe für Storylines, Texte, Folien oder Arbeitsmaterialien und veredelt sie fachlich sowie kundenspezifisch." - }, - { - "name": "KI-gestützte Meeting- und Workshopvorbereitung", - "weight": 1, - "description": "Nutzt KI für Interviewleitfäden, Fragen, Szenarien, Zusammenfassungen oder Moderationsvorbereitung und prüft die Praxistauglichkeit." - }, - { - "name": "Systematische Workflow-Integration", - "weight": 1, - "description": "Identifiziert wiederkehrende Arbeitsschritte, integriert KI reproduzierbar und dokumentiert Vorgehen, Qualitätskontrollen und menschliche Entscheidungen angemessen." - } - ], - "description": "Integriert KI gezielt und verantwortungsvoll in typische Beratungsaufgaben, um Qualität, Geschwindigkeit und Erkenntnisgewinn zu verbessern, ohne die Verantwortung für Ergebnisse abzugeben." - }, - { - "name": "AI Certification", - "items": [ - { - "name": "Vorgegebene Basiszertifizierung", - "weight": 1, - "description": "Hat die für die Rolle oder Entwicklungsstufe vorgeschriebene grundlegende KI-Zertifizierung erfolgreich abgeschlossen." - }, - { - "name": "Rollen- oder technologiespezifische Zertifizierung", - "weight": 1, - "description": "Verfügt über die für Einsatzgebiet, Technologie oder Projektkontext relevanten weiterführenden Nachweise, soweit diese gefordert sind." - }, - { - "name": "Aktualität des Nachweises", - "weight": 1, - "description": "Hält verpflichtende Zertifizierungen, Rezertifizierungen und vorgeschriebene Lernstände aktuell." - }, - { - "name": "Nachgewiesener Praxistransfer", - "weight": 1, - "description": "Kann zentrale Inhalte der Zertifizierung in Übungen oder Assignments korrekt anwenden und deren Grenzen erläutern." - } - ], - "description": "Dokumentiert formale, rollenbezogene KI-Qualifikationsnachweise. Da Zertifizierungen primär einen Nachweisstatus und kein beobachtbares Verhalten darstellen, sollten diese Kriterien möglichst als erfüllt, nicht erfüllt oder nicht erforderlich geführt werden." - } - ] - }, - { - "name": "Culture-Readiness", - "categories": [ - { - "name": "Quality Excellence", - "items": [ - { - "name": "Qualitätsanspruch", - "weight": 1, - "description": "Richtet die eigene Arbeit sichtbar auf fachlich belastbare, verständliche und kundentaugliche Ergebnisse aus." - }, - { - "name": "Systematische Qualitätschecks", - "weight": 1, - "description": "Prüft Inhalte, Zahlen, Logik, Sprache, Quellen, Format und Konsistenz vor Weitergabe anhand geeigneter Kontrollschritte." - }, - { - "name": "Prozess- und Standardtreue", - "weight": 1, - "description": "Kennt relevante Prozesse, Methoden, Templates und Vorgaben und wendet sie zweckmäßig sowie nachvollziehbar an." - }, - { - "name": "Reviewfähigkeit", - "weight": 1, - "description": "Bereitet Arbeitsergebnisse so vor, dass andere sie effizient prüfen können, und arbeitet Reviewhinweise sauber und vollständig ein." - }, - { - "name": "Frühzeitige Qualitätssicherung", - "weight": 1, - "description": "Plant Reviews, Abstimmungen und Prüfschritte rechtzeitig ein, statt Qualität ausschließlich am Ende herzustellen." - }, - { - "name": "Integrität und Compliance", - "weight": 1, - "description": "Handelt ehrlich und regelkonform, macht Unsicherheiten oder Fehler transparent und wahrt Vertraulichkeit sowie relevante fachliche und organisatorische Vorgaben." - }, - { - "name": "Kontinuierliche Verbesserung", - "weight": 1, - "description": "Erkennt wiederkehrende Fehler oder Ineffizienzen und verbessert Vorgehen, Standards oder Hilfsmittel nachhaltig." - } - ], - "description": "Verankert Qualität als kontinuierliche Arbeitsweise und sorgt durch Standards, Reviews und kritische Prüfung dafür, dass belastbare Ergebnisse reproduzierbar entstehen." - }, - { - "name": "Drive (Extra Mile)", - "items": [ - { - "name": "Proaktive Initiative", - "weight": 1, - "description": "Erkennt Handlungsbedarf oder Chancen und wird selbstständig aktiv, ohne auf detaillierte Einzelaufträge zu warten." - }, - { - "name": "Ambitionierter Wirkungsanspruch", - "weight": 1, - "description": "Strebt nicht nur formale Erledigung, sondern ein erkennbar nützliches und überzeugendes Ergebnis an." - }, - { - "name": "Beharrlichkeit bei Hindernissen", - "weight": 1, - "description": "Verfolgt wichtige Themen trotz Rückschlägen konstruktiv weiter und sucht aktiv nach alternativen Lösungswegen." - }, - { - "name": "Mehrwert über den Auftrag hinaus", - "weight": 1, - "description": "Identifiziert sinnvolle zusätzliche Beiträge, Impulse oder wiederverwendbare Lösungen, ohne Scope, Prioritäten oder Wirtschaftlichkeit aus dem Blick zu verlieren." - }, - { - "name": "Anpassungsfähigkeit", - "weight": 1, - "description": "Bleibt bei veränderten Prioritäten, unvollständigen Informationen oder neuen Anforderungen handlungsfähig und richtet das Vorgehen neu aus." - }, - { - "name": "Konstruktive Energie unter Druck", - "weight": 1, - "description": "Bewahrt auch bei hoher Belastung Fokus, Lösungsorientierung und professionelles Verhalten." - } - ], - "description": "Zeigt wirkungsorientierte Initiative, Ausdauer und Gestaltungswillen und leistet bei relevantem Mehrwert bewusst mehr als das formal Geforderte. Bewertet wird nicht die Anzahl der Arbeitsstunden, sondern der zusätzliche Beitrag zum Ergebnis." - }, - { - "name": "Ownership", - "items": [ - { - "name": "Auftrags- und Ergebnisverständnis", - "weight": 1, - "description": "Klärt Ziel, Qualitätsmaßstab, Umfang, Rollen, Abhängigkeiten und erwartete Lieferung, bevor die Umsetzung fortschreitet." - }, - { - "name": "Eigenständige Arbeitssteuerung", - "weight": 1, - "description": "Plant, priorisiert und organisiert die eigene Arbeit nachvollziehbar und benötigt nur ein der Entwicklungsstufe angemessenes Maß an Steuerung." - }, - { - "name": "Verbindlichkeit und Zuverlässigkeit", - "weight": 1, - "description": "Hält Zusagen ein und behandelt vereinbarte Termine, Qualitätsziele und Verantwortlichkeiten verbindlich." - }, - { - "name": "Fortschritts- und Risikotransparenz", - "weight": 1, - "description": "Kommuniziert Arbeitsstand, offene Punkte, Abhängigkeiten und mögliche Abweichungen frühzeitig und konkret und vermittelt eine realistische Einschätzung der Zielerreichung." - }, - { - "name": "Stufenweises Alignment und Acceptance Management", - "weight": 1, - "description": "Validiert Annahmen, Konzepte und Zwischenergebnisse rechtzeitig mit den relevanten Kundenvertretern. Sichert ein explizites gemeinsames Verständnis beziehungsweise eine Teilfreigabe als Grundlage für die weitere Bearbeitung und dokumentiert Entscheidungen, Vorbehalte und Änderungen nachvollziehbar." - }, - { - "name": "Vorausschauendes Handeln", - "weight": 1, - "description": "Erkennt Risiken, Engpässe und Entscheidungsbedarfe früh und leitet geeignete Maßnahmen ein." - }, - { - "name": "Angemessene Entscheidung und Eskalation", - "weight": 1, - "description": "Entscheidet im eigenen Verantwortungsbereich selbstständig und eskaliert rechtzeitig mit klarer Sachlage und Lösungsvorschlägen." - }, - { - "name": "Konsequenter Abschluss", - "weight": 1, - "description": "Verfolgt offene Punkte bis zu einem belastbaren Ergebnis, sichert Übergaben und schließt Kommunikations- und Dokumentationsschleifen." - } - ], - "description": "Übernimmt End-to-End-Verantwortung für übertragene Aufgaben und angestrebte Ergebnisse, steuert die eigene Arbeit aktiv und schafft jederzeit Transparenz über Fortschritt, Risiken und Handlungsbedarf." - }, - { - "name": "Coachability", - "items": [ - { - "name": "Aktives Einholen von Feedback", - "weight": 1, - "description": "Fragt gezielt und rechtzeitig nach Rückmeldung zu Wirkung, Vorgehen und Ergebnis, statt nur auf formale Feedbacktermine zu warten." - }, - { - "name": "Offene Feedbackannahme", - "weight": 1, - "description": "Hört Feedback aufmerksam an, bleibt sachlich und vermeidet vorschnelle Rechtfertigung oder Abwehr." - }, - { - "name": "Verständnisklärung", - "weight": 1, - "description": "Fragt bei unklarer Rückmeldung nach konkreten Situationen, Erwartungen und beobachtbaren Alternativen." - }, - { - "name": "Übersetzung in Entwicklungsmaßnahmen", - "weight": 1, - "description": "Leitet aus Feedback konkrete, realistische und überprüfbare Verhaltens- oder Lernschritte ab." - }, - { - "name": "Sichtbarer Praxistransfer", - "weight": 1, - "description": "Wendet vereinbarte Verbesserungen in folgenden Aufgaben erkennbar an und zeigt nachhaltigen Fortschritt." - }, - { - "name": "Selbstreflexion und Lernagilität", - "weight": 1, - "description": "Analysiert eigene Wirkung, Stärken, Fehler und Muster realistisch und passt Verhalten an neue Situationen an." - } - ], - "description": "Nutzt Feedback, Reflexion und neue Erfahrungen aktiv zur Weiterentwicklung und zeigt nachvollziehbare Verhaltensänderungen über mehrere Assignments hinweg." - }, - { - "name": "Collaboration", - "items": [ - { - "name": "Proaktive Abstimmung", - "weight": 1, - "description": "Stimmt sich rechtzeitig mit relevanten Beteiligten ab, macht Schnittstellen transparent und vermeidet Informationslücken." - }, - { - "name": "Wissens- und Ergebnisteilung", - "weight": 1, - "description": "Teilt Informationen, Zwischenergebnisse, Erfahrungen und wiederverwendbare Inhalte so, dass das Team wirksam weiterarbeiten kann." - }, - { - "name": "Unterstützungsbereitschaft", - "weight": 1, - "description": "Unterstützt andere konstruktiv und bedarfsgerecht, ohne eigene Verantwortlichkeiten oder gemeinsame Prioritäten zu vernachlässigen." - }, - { - "name": "Verlässliches Teamverhalten", - "weight": 1, - "description": "Hält Teamzusagen ein, respektiert Rollen und schafft durch professionelles Verhalten eine belastbare Arbeitsbasis." - }, - { - "name": "Konstruktiver Umgang mit Differenzen", - "weight": 1, - "description": "Spricht abweichende Sichtweisen sachlich an, hört Gegenargumente an und arbeitet auf eine tragfähige Lösung hin." - }, - { - "name": "Einbindung unterschiedlicher Perspektiven", - "weight": 1, - "description": "Bezieht relevante Erfahrungen und Meinungen aktiv ein und schafft Raum für Beteiligung unabhängig von Rolle oder Hierarchie." - }, - { - "name": "Team- und organisationsübergreifende Zusammenarbeit", - "weight": 1, - "description": "Vernetzt sich bei Bedarf über das unmittelbare Team hinaus und nutzt passende Experten, Communities oder Kontakte für den gemeinsamen Erfolg." - } - ], - "description": "Arbeitet verlässlich, respektvoll und lösungsorientiert mit anderen zusammen, stärkt den gemeinsamen Teamerfolg und nutzt unterschiedliche Perspektiven und Fähigkeiten konstruktiv." - } - ] - } - ] -} \ No newline at end of file diff --git a/src/db/seeds/index.ts b/src/db/seeds/index.ts deleted file mode 100644 index f8a5057..0000000 --- a/src/db/seeds/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { seedIfEmpty } from './assignmentTypes' -export { seedFeedbackStructureIfEmpty } from './feedbackStructure' -export { seedCriterionMappingsIfEmpty, migrateToUnifiedCriteriaIfNeeded } from './migrations' diff --git a/src/db/seeds/migrations.ts b/src/db/seeds/migrations.ts deleted file mode 100644 index ef85183..0000000 --- a/src/db/seeds/migrations.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { db } from '../schema' - -export async function seedCriterionMappingsIfEmpty() { - const count = await db.criterionCategoryMappings.count() - if (count > 0) return - - const [crits, cats] = await Promise.all([ - db.criteria.toArray(), - db.feedbackCategories.toArray(), - ]) - if (crits.length === 0 || cats.length === 0) return - - const c = (name: string) => crits.find(x => x.name === name)?.id - const f = (name: string) => cats.find(x => x.name === name)?.id - - const mappings: [string, string][] = [ - ['Klarheit & Struktur', 'Kommunikationsfähigkeit'], - ['Klarheit & Struktur', 'Qualität des Inhalts'], - ['Überzeugungskraft', 'Kommunikationsfähigkeit'], - ['Überzeugungskraft', 'Kundenmanagement'], - ['Aktives Zuhören', 'Kommunikationsfähigkeit'], - ['Umgang mit Fragen', 'Kommunikationsfähigkeit'], - ['Umgang mit Fragen', 'Kundenmanagement'], - ['Fachliche Tiefe', 'Qualität des Inhalts'], - ['Fachliche Tiefe', 'Inhaltliche Vollständigkeit'], - ['Problemlösung', 'Ergebnisverantwortung'], - ['Problemlösung', 'Arbeitsstil'], - ['Stakeholder-Verständnis', 'Kundenmanagement'], - ['Stakeholder-Verständnis', 'Persönliche Einstellung'], - ['Empathie', 'Persönliche Einstellung'], - ['Empathie', 'Kommunikationsfähigkeit'], - ['Vorbereitung', 'Professionalität'], - ['Vorbereitung', 'Lieferzeiten'], - ['Eigeninitiative', 'Commitment'], - ['Eigeninitiative', 'Persönliche Einstellung'], - ['Problemstrukturierung', 'Ergebnisverantwortung'], - ['Problemstrukturierung', 'Qualität des Inhalts'], - ['Hypothesenbildung', 'Ergebnisverantwortung'], - ['Hypothesenbildung', 'Arbeitsstil'], - ['Rechnen & Analyse', 'Qualität des Inhalts'], - ['Rechnen & Analyse', 'Inhaltliche Vollständigkeit'], - ['Zeitmanagement', 'Lieferzeiten'], - ['Zeitmanagement', 'Arbeitsstil'], - ] - - for (const [critName, catName] of mappings) { - const criterionId = c(critName) - const feedbackCategoryId = f(catName) - if (criterionId && feedbackCategoryId) { - await db.criterionCategoryMappings.add({ criterionId, feedbackCategoryId }) - } - } -} - -// Löscht nur Bewertungs-Scores (keine Textinhalte), verknüpft PhaseTemplates -// mit FeedbackCategory-IDs statt veralteten Criterion-IDs. -export async function migrateToUnifiedCriteriaIfNeeded() { - const cats = await db.feedbackCategories.toArray() - if (cats.length === 0) return - - const templates = await db.phaseTemplates.toArray() - if (templates.length === 0) return - - const catIds = new Set(cats.map(c => c.id!)) - const firstWithIds = templates.find(t => t.criteriaIds.length > 0) - if (firstWithIds && catIds.has(firstWithIds.criteriaIds[0])) return - - const cat = (name: string) => cats.find(c => c.name === name)?.id - - await db.conversationSkillScores.clear() - await db.assessments.clear() - - const genericCats = [ - cat('Kommunikationsfähigkeit'), cat('Persönliche Einstellung'), - cat('Kundenmanagement'), cat('Ergebnisverantwortung'), cat('Qualität des Inhalts'), - ].filter(Boolean) as number[] - - const caseCats = [ - cat('Kommunikationsfähigkeit'), cat('Ergebnisverantwortung'), - cat('Arbeitsstil'), cat('Qualität des Inhalts'), cat('Inhaltliche Vollständigkeit'), - ].filter(Boolean) as number[] - - const pitchCats = [ - cat('Kommunikationsfähigkeit'), cat('Persönliche Einstellung'), - cat('Kundenmanagement'), cat('Ergebnisverantwortung'), - cat('Qualität des Inhalts'), cat('Qualität der Unterlage'), - ].filter(Boolean) as number[] - - const types = await db.assignmentTypes.toArray() - for (const tmpl of templates) { - if (!tmpl.hasAssessment && !tmpl.hasConversation) { - await db.phaseTemplates.update(tmpl.id!, { criteriaIds: [] }) - continue - } - const aType = types.find(t => t.id === tmpl.assignmentTypeId) - let newIds: number[] - if (aType?.name === 'Case Interview') { - newIds = caseCats - } else if (aType?.name === 'Stakeholder Meeting / Pitch') { - newIds = pitchCats - } else { - newIds = genericCats - } - await db.phaseTemplates.update(tmpl.id!, { criteriaIds: newIds }) - } -} diff --git a/src/db/types.ts b/src/db/types.ts index 8e6a8a3..3a3db43 100644 --- a/src/db/types.ts +++ b/src/db/types.ts @@ -38,6 +38,8 @@ export interface AssignmentType { name: string defaultPhaseKeys: PhaseKey[] criteriaIds?: number[] // FeedbackCriterionItem IDs; leer = alle anzeigen + /** Anzeige-Farbe auf Dashboard-Kacheln (Hex, z.B. #0070AD), editierbar in Einstellungen → Ass.-Typen. */ + color?: string } export interface PhaseTemplate { @@ -66,11 +68,18 @@ export interface ChecklistItemDef { id?: number phaseTemplateId: number label: string - linkedCriterionItemId?: number + linkedCriterionItemId?: number | null scope: 'perInstitutee' | 'meetingWide' order: number + /** + * Wie der Checklisten-Score mit Protokoll-Notation auf dasselbe Kriterium zusammenfließt: + * equal = gleichrangig mitteln; primary = Checkliste dominiert; weighted = Checkliste ×2. + */ + scoreContribution?: ChecklistScoreContribution } +export type ChecklistScoreContribution = 'equal' | 'primary' | 'weighted' + /** * Antwort auf einen Checklisten-Punkt für dieses Meeting. `criterionItemId` überschreibt pro * Antwort individuell die Konfigurations-Vorgabe aus `ChecklistItemDef.linkedCriterionItemId` @@ -85,7 +94,9 @@ export interface ChecklistResponse { checklistItemId: number rating: RatingScore | null note: string - criterionItemId?: number + /** Gesetzt wenn im Meeting manuell zugeordnet oder explizit entfernt — sonst gilt Config-Standard. */ + criterionItemId?: number | null + criterionOverride?: boolean } // ─── Stammdaten ─────────────────────────────────────────────────────────────── @@ -101,6 +112,56 @@ export interface Consultant { groupId: number firstName: string lastName: string + /** Unternehmens-E-Mail, Pflicht und eindeutig (normalisiert klein). */ + email: string + /** Archiv — Person nicht mehr für neue Assignments vorschlagen; Historie bleibt. */ + archivedAt?: string +} + +export interface ConsultantImportRow { + email: string + firstName: string + lastName: string +} + +export interface ConsultantImportResult { + created: number + updated: number + moved: number + skipped: number + errors: string[] +} + +export interface HardDeleteConsultantResult { + emptiedAssignmentIds: number[] + feedbacksDeleted: number + assignmentsTouched: number +} + +export interface ConsultantAssignmentSummary { + assignmentId: number + title: string + assignmentNumber?: string + client: string + status: 'active' | 'done' + deletedAt?: string + archivedAt?: string + plannedStart?: string + plannedEnd?: string + createdAt: string + typeName: string + feedbackStatus: 'none' | 'draft' | 'final' + categoryRatings: Array<{ + categoryId: number + categoryName: string + rating: RatingScore | null + }> +} + +export interface ConsultantDetail { + consultant: Consultant + group: Group | undefined + assignments: ConsultantAssignmentSummary[] } // ─── Assignments ───────────────────────────────────────────────────────────── @@ -125,6 +186,10 @@ export interface Assignment { deletedAt?: string /** Archiv-Zeitpunkt — dauerhafte Aufbewahrung (spätere Auswertung/ML), unabhängig vom Papierkorb. */ archivedAt?: string + /** Geplanter Beginn (ISO-Datum YYYY-MM-DD), optional; Pflicht nur wenn AppSettings.requirePlannedDates. */ + plannedStart?: string + /** Geplantes Ende (ISO-Datum YYYY-MM-DD), optional. */ + plannedEnd?: string } // ─── Meeting-Instanzen ──────────────────────────────────────────────────────── @@ -179,6 +244,8 @@ export interface Assessment { score: RatingScore | null note: string updatedAt: string + /** Score aus Vorschlag übernommen — Hinweis, dass manuell gegengelesen werden sollte. */ + scoreNeedsReview?: boolean } /** @@ -303,8 +370,57 @@ export interface AppSettings { defaultDimensionPromptTemplate?: string /** Kategorie-Prompt Stufe A (1 Call pro Kategorie), editierbar in Config → KI-Prompts. */ defaultCategoryPromptTemplate?: string - /** Prompt-Template für „🏷 Vorschläge analysieren" (selbstlernendes Kriterien-Tagging), editierbar in Config → KI-Prompts. */ + /** Prompt-Template für „🏷 Vorschläge analysieren" (Protokoll-Freitext), editierbar in Config → KI-Prompts. */ criterionTaggingPromptTemplate?: string + /** Prompt-Template für Checklisten-Kriterium-Vorschläge (separater KI-Call), editierbar in Config → KI-Prompts. */ + checklistTaggingPromptTemplate?: string /** Farbbänder der 1–10-Skala (Defaults in constants.ts), editierbar in Config → Skala. */ ratingColorBands?: RatingColorBand[] + /** Wenn true: plannedStart/plannedEnd beim Anlegen eines Assignments Pflicht. */ + requirePlannedDates?: boolean +} + +// ─── Assignment-Übergabe (Lead → Lead, Export/Import) ───────────────────────── + +export const ASSIGNMENT_TRANSFER_KIND = 'assignment-monitor-assignment-transfer' as const + +/** JSON-Paket für die Übergabe eines einzelnen Assignments inkl. Notizen/Checklisten/Berater. */ +export interface AssignmentTransferPackage { + kind: typeof ASSIGNMENT_TRANSFER_KIND + version: 1 + exportedAt: string + source: { + assignmentId: number + assignmentNumber?: string + title: string + client: string + } + groups: Group[] + consultants: Consultant[] + assignmentType: AssignmentType + phaseTemplates: PhaseTemplate[] + checklistItemDefs: ChecklistItemDef[] + feedbackDimensions: FeedbackDimension[] + feedbackCategories: FeedbackCategory[] + feedbackCriterionItems: FeedbackCriterionItem[] + assignment: Assignment + meetingInstances: MeetingInstance[] + conversationEntries: ConversationEntry[] + conversationSkillScores: ConversationSkillScore[] + assessments: Assessment[] + meetingCategoryRatings: MeetingCategoryRating[] + checklistResponses: ChecklistResponse[] + feedbackDrafts: FeedbackDraft[] + assignmentFeedbacks: AssignmentFeedback[] + feedbackCategoryRatings: FeedbackCategoryRating[] + feedbackDimensionTexts: FeedbackDimensionText[] + feedbackCategoryTexts: FeedbackCategoryText[] +} + +export interface AssignmentImportResult { + assignmentId: number + consultantsMatched: string[] + consultantsCreated: string[] + meetings: number + checklistResponses: number } diff --git a/src/index.css b/src/index.css index b8d449d..38ac776 100644 --- a/src/index.css +++ b/src/index.css @@ -1,6 +1,44 @@ @import "tailwindcss"; +/* + * Design-Tokens (UX.1) — Capgemini-Fachtool. + * Seiten schrittweise auf bg-app / bg-surface / border-line / text-ink* umstellen. + */ @theme { --color-brand: #0070AD; --color-brand-dark: #005a8e; + --color-brand-soft: #e8f3f9; + + --color-app: #eef2f5; + --color-surface: #ffffff; + --color-line: #d8e0e8; + --color-ink: #1a2b3c; + --color-ink-muted: #5a6b7c; + --color-ink-faint: #8a9aab; + + --font-sans: "Source Sans 3", "Segoe UI", ui-sans-serif, system-ui, sans-serif; + + --radius-control: 0.5rem; + --radius-panel: 0.75rem; + + --shadow-header: 0 1px 0 rgb(0 0 0 / 0.06), 0 2px 8px rgb(0 70 120 / 0.12); + --shadow-nav: 0 -1px 0 rgb(0 0 0 / 0.06), 0 -4px 12px rgb(0 0 0 / 0.04); +} + +@layer base { + html { + font-family: var(--font-sans); + color: var(--color-ink); + -webkit-font-smoothing: antialiased; + } + + body { + margin: 0; + min-height: 100dvh; + background-color: var(--color-app); + } + + #root { + min-height: 100dvh; + } } diff --git a/src/pages/AiPromptConfig.tsx b/src/pages/AiPromptConfig.tsx index f14d655..4a39dcc 100644 --- a/src/pages/AiPromptConfig.tsx +++ b/src/pages/AiPromptConfig.tsx @@ -6,6 +6,7 @@ import { getOrSeedDefaultDimensionPromptTemplate, saveDefaultDimensionPromptTemplate, getOrSeedDefaultCategoryPromptTemplate, saveDefaultCategoryPromptTemplate, getOrSeedCriterionTaggingPromptTemplate, saveCriterionTaggingPromptTemplate, + getOrSeedChecklistTaggingPromptTemplate, saveChecklistTaggingPromptTemplate, } from '../db' import { AI_CONFIG } from '../config/constants' import { getAiSettings, saveAiSettings } from '../utils/aiClient' @@ -22,27 +23,32 @@ export default function AiPromptConfig() { const [taggingTemplate, setTaggingTemplate] = useState('') const [taggingExpanded, setTaggingExpanded] = useState(false) const [taggingSaved, setTaggingSaved] = useState(false) + const [checklistTaggingTemplate, setChecklistTaggingTemplate] = useState('') + const [checklistTaggingExpanded, setChecklistTaggingExpanded] = useState(false) + const [checklistTaggingSaved, setChecklistTaggingSaved] = useState(false) const [expanded, setExpanded] = useState>(new Set()) const [savedDimId, setSavedDimId] = useState(null) const [bulkResetMsg, setBulkResetMsg] = useState('') - const saveTimer = useRef>>(new Map()) + const saveTimer = useRef>>(new Map()) const [aiKey, setAiKey] = useState(getAiSettings().apiKey) const [aiModel, setAiModel] = useState(getAiSettings().model) const [aiSaved, setAiSaved] = useState(false) const load = async () => { - const [structure, promptRows, defTemplate, catTemplate, taggingTpl] = await Promise.all([ + const [structure, promptRows, defTemplate, catTemplate, taggingTpl, checklistTaggingTpl] = await Promise.all([ loadFeedbackStructure(), listFeedbackDimensionPrompts(), getOrSeedDefaultDimensionPromptTemplate(), getOrSeedDefaultCategoryPromptTemplate(), getOrSeedCriterionTaggingPromptTemplate(), + getOrSeedChecklistTaggingPromptTemplate(), ]) setDimensions([...structure.dimensions].sort((a, b) => a.order - b.order)) setPrompts(promptRows) setDefaultTemplate(defTemplate) setCategoryTemplate(catTemplate) setTaggingTemplate(taggingTpl) + setChecklistTaggingTemplate(checklistTaggingTpl) } useEffect(() => { load() }, []) @@ -100,6 +106,18 @@ export default function AiPromptConfig() { }, 600)) } + const resetTaggingToDefault = async () => { + const def = AI_CONFIG.defaultCriterionTaggingPromptTemplate + await saveCriterionTaggingPromptTemplate(def) + setTaggingTemplate(def) + } + + const resetChecklistTaggingToDefault = async () => { + const def = AI_CONFIG.defaultChecklistTaggingPromptTemplate + await saveChecklistTaggingPromptTemplate(def) + setChecklistTaggingTemplate(def) + } + const saveTaggingTemplate = (value: string) => { setTaggingTemplate(value) const prevTimer = saveTimer.current.get('tagging') @@ -111,6 +129,17 @@ export default function AiPromptConfig() { }, 600)) } + const saveChecklistTaggingTemplate = (value: string) => { + setChecklistTaggingTemplate(value) + const prevTimer = saveTimer.current.get('checklistTagging') + if (prevTimer) clearTimeout(prevTimer) + saveTimer.current.set('checklistTagging', setTimeout(async () => { + await saveChecklistTaggingPromptTemplate(value) + setChecklistTaggingSaved(true) + setTimeout(() => setChecklistTaggingSaved(false), 2000) + }, 600)) + } + return (
@@ -240,10 +269,11 @@ export default function AiPromptConfig() {
-

KI-Prompt: Kriterien-Zuordnungsvorschläge

+

KI-Prompts: Kriterien-Zuordnungsvorschläge

- Wird durch den „🏷 Vorschläge analysieren"-Button im Protokoll ausgelöst — ein gebündelter Call pro - Protokoll-Ansicht, nicht pro Zeile. Lernt aus bereits vergebenen Kriterium-Zuordnungen. + „🏷 Vorschläge analysieren" im Meeting löst zwei getrennte KI-Calls aus: Protokoll-Freitext + (Antwortformat ZEILE n:) und Checklistenpunkte + (PUNKT n:).

@@ -251,23 +281,28 @@ export default function AiPromptConfig() { {taggingExpanded && (
+

Freitext-Zeilen aus Gesprächsprotokoll und allgemeinen Notizen.

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