10 KiB
Domain Slices Backlog
Stand: 2026-03-31
Dieses Backlog gruppiert die offenen Arbeiten nach fachlichen/domänischen Blöcken statt nach Dateien. Die Schätzungen sind Restaufwand auf Basis des aktuellen Worktrees und können sich nach Befund leicht ändern.
Aktuell geschnittene Domänenslices: 7
Grobe Gesamtdauer über alle noch offenen Slices: 28-45h
Statuslegende
in_progress: wird aktiv bearbeitetready: fachlich geschnitten, kann als nächster Block umgesetzt werdenblocked: fachlich bekannt, aber aktuell von anderem Slice abhängigdone: abgeschlossen und validiert
Offene Slices
| # | Slice | Status | Restaufwand | Kernziel |
|---|---|---|---|---|
| 1 | Timeline Interaction, Overlays, Hover, SSE-State | in_progress | 6-10h | Stabile Timeline ohne Render-/Overlay-/Drag-Artefakte, auch bei View-Wechseln und Live-Updates |
| 2 | Holiday/Vacation Correctness and Explainability | ready | 4-6h | Feiertage und Urlaube konsistent in Timeline, Chargeability, Forecasts, Assistant und UI-Erklärungen |
| 3 | Assistant Parity, Policy Auto-Exposure, Advanced Queries | ready | 5-8h | Assistant kennt und nutzt denselben Berechtigungs- und Datenraum wie der Nutzer, inkl. komplexer Queries |
| 4 | Reports, Templates/Blueprints, Export Completeness | ready | 4-6h | Report Builder mit speicherbaren Vorlagen und vollständigen Exportgrößen wie SAH und Bezugsfaktoren |
| 5 | Notifications, Tasks, Broadcasts, Reminder Reliability | ready | 3-5h | Robuste Inbox-/Broadcast-/Reminder-Flows ohne leere Fanout- oder Persistenzkanten |
| 6 | Dashboard, Widgets, Explainability, First-Load Stability | ready | 4-6h | Dashboard zuverlässig ladbar, Widgets kompakt, nachvollziehbar und per Detail-Toggle kontrollierbar |
| 7 | DB Safety, Env Loading, Migration/Seed Discipline, Naming Cleanup | ready | 2-4h | Keine Raw-Prisma/Env-Fallen, kein versehentliches Seeding, keine operativen planarchy-Reste |
Umsetzungshinweise
- Slice 1 ist der größte technische Risikoblock und beeinflusst direkt wahrnehmbare UX.
- Slice 2 und 3 hängen fachlich teilweise zusammen, können nach Slice 1 parallelisiert werden.
- Slice 4 profitiert von Slice 2, weil Feiertags-/Urlaubslogik als Export- und Reportgröße sichtbar werden muss.
- Slice 7 bleibt als Guardrail-Block parallel im Hintergrund wichtig, sollte aber keine Produktarbeit blockieren.
Abhaklog
- Assistant-Testlandschaft entlang echter Domänengrenzen weiter zerlegt und vollständig grün validiert
- Slice 1: Timeline Interaction, Overlays, Hover, SSE-State
Fortschritt:
Live
cellWidthRefstatt stale Snapshot im Drag-Pfad verdrahtet. Projekt-Drag zentralisiert finalisiert, sodass MouseUp/Canvas-Up nicht mehr parallel mutieren.document-Listener für Projekt-Drag, Allocation-Drag und Multi-Select werden beim Unmount sauber entfernt. Timeline-Popovers schließen bei Scroll/Resize nicht mehr sofort, sondern bleiben stabil sichtbar. - Slice 2: Holiday/Vacation Correctness and Explainability
- Slice 3: Assistant Parity, Policy Auto-Exposure, Advanced Queries
- Slice 4: Reports, Templates/Blueprints, Export Completeness
- Slice 5: Notifications, Tasks, Broadcasts, Reminder Reliability
- Slice 6: Dashboard, Widgets, Explainability, First-Load Stability
- Slice 7: DB Safety, Env Loading, Migration/Seed Discipline, Naming Cleanup
API Router Slice Inventory
Diese Liste ist die vollständige Arbeitsinventur für den aktuellen Architektur-Track
packages/api/src/router.
Ziel ist nicht eine inhaltliche Neuschreibung, sondern dünne Top-Level-Router:
Zod/Input, Permission-Wiring und Orchestrierung wandern in gezielte *-procedure-support.ts
oder benachbarte Support-Module, Verhalten und öffentliche Contracts bleiben stabil.
Status
done: bereits sauber extrahiert oder als dünner Kompositionsrouter erreichtready_now: sinnvoller nächster Slice ohne bekannte Blockerlater: fachlich sinnvoll, aber größer oder stärker querliegendmonitor: aktuell dünn genug; nur anfassen, wenn dort neue Logik wächstexcluded_for_now: bewusst aus dem aktuellen Batch ausgenommen
Vollständige Router-Liste
| Router | Status | Priorität | Sinnvolle Slices |
|---|---|---|---|
allocation.ts |
done | - | Aggregator bereits dünn; nur Support-Module weiter pflegen |
assistant.ts |
later | 3 | Chat loop, confirmation flow, insight generation, response shaping |
audit-log.ts |
monitor | 4 | Optional: list/detail reads und filter-building trennen, falls Auth/Wiring wächst |
blueprint.ts |
ready_now | 2 | summary/list reads, identifier reads, CRUD, role-preset mutation, global-field procedures |
calculation-rules.ts |
monitor | 4 | Aktuell klein; nur bei zusätzlicher Write-/Audit-Logik extrahieren |
chargeability-report.ts |
excluded_for_now | - | Bewusst zurückgestellt; erst nach Freigabe des geblockten Bereichs |
client.ts |
ready_now | 2 | list/tree reads, identifier reads, CRUD/deactivate, sort-order batch mutation |
comment.ts |
done | - | Bereits in comment-procedure-support.ts ausgelagert |
computation-graph.ts |
monitor | 4 | Bereits Kompositionsrouter; nur bei zusätzlicher Orchestrierung weiter schneiden |
country.ts |
ready_now | 2 | list/identifier reads, country CRUD, metro-city CRUD |
dashboard.ts |
excluded_for_now | - | Bewusst zurückgestellt; hoher Querschnitt und paralleler Scope |
dispo.ts |
ready_now | 2 | workbook input schemas, staging/validation, staged-read procedures, resolve/commit/cancel mutations |
effort-rule.ts |
ready_now | 1 | list/detail reads, CRUD/default toggle, preview, apply-rules mutation |
entitlement.ts |
excluded_for_now | - | Bewusst zurückgestellt; größerer Fachblock |
estimate.ts |
later | 3 | commercial reads, demand line writes, phasing, version workflow, aggregate read models |
experience-multiplier.ts |
ready_now | 1 | list/detail reads, CRUD/default toggle, preview, apply-rules mutation |
holiday-calendar.ts |
ready_now | 2 | calendar CRUD, entry CRUD; catalog/resolution reads sind schon separat |
import-export.ts |
ready_now | 3 | export reads, import preview/validation, file-bound orchestration |
insights.ts |
ready_now | 3 | anomaly/summary reads, cached narrative read, AI narrative mutation |
management-level.ts |
ready_now | 1 | group reads/writes, level writes/delete, audit helper extraction |
notification.ts |
excluded_for_now | - | Bewusst zurückgestellt; zu groß für den aktuellen Batch |
org-unit.ts |
ready_now | 3 | list/tree reads, identifier reads, CRUD/deactivate |
project.ts |
monitor | 4 | Bereits stark komponiert; optional nur list und getById separat ziehen |
rate-card.ts |
ready_now | 1 | list/detail/match reads, card CRUD, line CRUD, replace-lines/batch operations |
report.ts |
done | - | Bereits in report-template-procedure-support.ts ausgelagert |
resource.ts |
monitor | 4 | Top-Level dünn; tieferliegende Shared-Read-Module sind separat zu betrachten |
role.ts |
done | - | Bereits in role-procedure-support.ts ausgelagert |
scenario.ts |
done | - | Bereits in scenario-procedure-support.ts ausgelagert |
settings.ts |
done | - | Bereits in settings-procedure-support.ts ausgelagert |
staffing.ts |
done | - | Aggregator bereits dünn |
system-role-config.ts |
monitor | 4 | Klein genug; nur bei wachsender Audit-/Validation-Logik schneiden |
timeline.ts |
done | - | Bereits auf dünnen Aggregator umgestellt |
user.ts |
excluded_for_now | - | Bewusst zurückgestellt; hoher Querschnitt und paralleler Scope |
utilization-category.ts |
monitor | 4 | Klein genug; nur bei zusätzlicher Komplexität schneiden |
vacation.ts |
done | - | Bereits auf dünnen Aggregator umgestellt |
webhook.ts |
monitor | 4 | Noch tragbar; optional später read/write separation |
Empfohlene Reihenfolge
rate-card.tseffort-rule.tsexperience-multiplier.tsmanagement-level.tsblueprint.tsclient.tscountry.tsholiday-calendar.tsdispo.tsinsights.tsimport-export.tsorg-unit.ts
Phase 2: Tieferliegende Hotspots Hinter Bereits Dünnen Routern
Diese Slices betreffen nicht mehr primär den Top-Level-Router, sondern große Read-/Procedure-Module im selben Architektur-Track. Sie sind sinnvoll, sobald der aktuelle Router-Arbeitsvorrat abgearbeitet ist.
| Slice | Priorität | Betroffene Module | Ziel |
|---|---|---|---|
| Allocation Mutation Decomposition | 1 | allocation-assignment-procedures.ts |
Assignment-Transaktionen, Audit, Events, Webhooks und Budget-Folgelogik weiter trennen |
| Vacation Read Separation | 1 | vacation-read.ts, vacation-management-procedures.ts |
Ownership, Anonymisierung, Holiday-Preview und Query-Varianten sauberer schneiden |
| Estimate Write Router Slimming | 1 | estimate.ts plus benachbarte Estimate-Module |
Write-Orchestrierung, version workflow und error translation aus dem Router ziehen |
| Staffing Read Pipeline Split | 1 | staffing-suggestions-read.ts, staffing-capacity-read.ts, staffing-best-project-resource.ts |
gemeinsame Load-/Ranking-/Response-Pipeline extrahieren |
| Report Engine by Execution Mode | 2 | report-query-engine.ts, report-query-config.ts |
generische Reports, resource_month-Sonderfall und Exportpfade klar trennen |
| Computation Graph Read Model Split | 2 | computation-graph-resource.ts, computation-graph-project.ts |
Snapshot-Building, Forecasting und Graph-Assembly entkoppeln |
Explizit Ausgeschlossen Im Aktuellen Batch
packages/api/src/router/assistant-tools.tspackages/api/src/router/assistant-tools/*packages/api/src/router/chargeability-report.tspackages/api/src/router/dashboard.tspackages/api/src/router/entitlement.tspackages/api/src/router/notification.tspackages/api/src/router/resource-read-shared.tspackages/api/src/router/resource-summary-read.tspackages/api/src/router/user.tspackages/api/src/__tests__/timeline-router.test.tspackages/api/src/__tests__/vacation-router.test.ts
Bereits Erledigte Router-Slices In Dieser Serie
timeline: read schemas, holiday/project/allocation/shift support extrahiertvacation: create procedures extrahiertcomment: comment procedures extrahiertscenario: scenario procedures extrahiertreport: report template procedures extrahiertrole: role write procedures extrahiertsettings: settings procedures extrahiert