MOBILE-001/004/005 solide umgesetzt (Kontroll-UI gilt als Vorbild-Muster), MOBILE-002 nur teilweise (Scan-Ziel ist Kontrolle statt vollständiger Akte, hängt am Digital-File-Epic), MOBILE-003 (Offline) fehlt komplett, bewusst P2/HIGH RISK. Nutzer-Vorgabe: installierte Subagenten (postgres/sql/jwt/oauth-oidc/owasp/ docker/openapi/fastapi/python-expert) in die Kachel-Umsetzung einbeziehen - zentrale Epic->Subagent-Zuordnungstabelle in 00_index.md statt Rework aller 11 Detail-Dateien. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
16 KiB
Arbeitskacheln-Backlog — KatS-/BOS-Ressourcenplattform
Master-Prompt-Ergebnis (2026-09-05), Phase 1: Epic-Übersicht, vollständige Kachel-Liste,
Abhängigkeitsgraph, Priorisierung, MVP-Abgrenzung. Details je Kachel liegen in den
epic-eigenen Dateien (01_foundation.md, 02_identity.md, ...), fortlaufend ergänzt.
Kachel-Template und Nutzer-Vorgaben zur Methodik: siehe Memory
feedback_arbeitskacheln_methodik.md.
DECISION REQUIRED
- Verhältnis zu MABEA: Dieses Backlog beschreibt großteils, was in MABEA (dieses Repo) bereits gebaut ist. Entscheidung: (a) MABEA-Code weiterverwenden, Kacheln als nachträgliche Strukturierung/Lückenfüller — nicht (b) Neustart. Begründung: vermeidet Doppelarbeit.
- Techstack: FastAPI/PostgreSQL/React-PWA beibehalten (bereits entschieden, funktioniert, self-hosted-tauglich) statt Resgrid-(.NET)/OpenFleet-(Node) Stack zu übernehmen.
- QR-Code-Inhalt-Schema: entschieden — URL-Pfad (
/akte/{ressourcentyp}/{id}), kein signierter Token, keine Volldaten im QR. - Person/Benutzer-Trennung (PERS-001/002): MABEA hat aktuell nur
Benutzer(Login=Person verschmolzen). Echte Trennung ist ein Datenmodell-Bruch — Umfang vorher separat abschätzen, bevor verbindlich eingeplant. - ✅ UNKNOWN-Readiness-Zustand (READY-002) — erledigt (2026-09-05): war offen, wurde
noch am selben Tag live gefixt. Nie kontrollierte Objekte zählen jetzt als
unbekanntstatt fälschlich als „einsatzbereit". Siehe13_readiness.md.
Subagenten je Epic
Sieben Subagenten aus dem Subagenten-Repo sind für dieses Projekt bereits installiert
(siehe Memory reference-subagents-repo), plus fastapi-expert/python-expert passend
zum Techstack. Bei der tatsächlichen UMSETZUNG einer Kachel (nicht bei der Planung hier)
sollen die folgenden Subagenten bevorzugt herangezogen werden — als Standard-Zuordnung je
Epic, einzelne Kacheln können abweichen:
| Epic | Empfohlene Subagenten |
|---|---|
| 01 Foundation | fastapi-expert, postgres-expert, jwt-expert, docker-expert, openapi-expert |
| 02 Identity | postgres-expert (Eindeutigkeits-Constraints), owasp-top10-expert (Path-Traversal bei Codes/Labels) |
| 03 Digital File | fastapi-expert (Aggregations-Endpunkt), sql-expert (Joins über viele Tabellen) |
| 04 Assets | postgres-expert, sql-expert |
| 05 Fleet | fastapi-expert |
| 06 Inventory | postgres-expert, sql-expert (Mengen-/Chargenlogik) |
| 07 Warehouse | postgres-expert (Hierarchie-Queries, Transaktionen bei Umlagerung) |
| 08 Loadout | fastapi-expert, sql-expert |
| 09 Inspections | python-expert (Berechnungslogik Intervalle/Ampel) |
| 10 Maintenance | python-expert, postgres-expert |
| 11 Defects | fastapi-expert |
| 12 Personnel | jwt-expert/oauth-oidc-expert (bei PERS-002 Auth-Bezug), owasp-top10-expert |
| 13 Readiness | python-expert (Regel-Engine-Logik) |
| 14 Documents | owasp-top10-expert (Upload-Sicherheit/MIME-Whitelist, bereits Thema bei DOC-001), fastapi-expert |
| 15 Mobile | kein Backend-Subagent zentral (Frontend/PWA-lastig) |
| 16 Operations | noch offen, erst bei Angehen des Epics zuordnen |
Wie einbeziehen: vor Implementierungsbeginn einer Kachel kurz prüfen, ob einer der zugeordneten Subagenten als Review-Instanz (nach Fertigstellung) oder als Umsetzungs- Delegation sinnvoll ist — nicht zwingend für jede einzelne Kachel, aber als Standardpfad für sicherheitskritische (owasp/jwt/oauth) und datenbanknahe (postgres/sql) Themen.
Epic-Übersicht
| Epic | Ziel | Priorität |
|---|---|---|
| 01 Foundation | Technisches Fundament (Repo/DB/Auth/API/Logging/CI) | P0 |
| 02 Identity | Objekt-ID/Inventarnummer/Seriennummer/QR/Barcode | P0 |
| 03 Digital File | Akte als Aggregations-Entität über alle Teilbereiche | P0 |
| 04 Assets | Generisches Ressourcenmodell (Kategorie/Typ/Instanz/Set) | P0 |
| 05 Fleet | Fahrzeug-Spezialfelder | P1 |
| 06 Inventory | Material (Einzelgerät/Verbrauchsmaterial/Chargen) | P1 |
| 07 Warehouse | Lagerplätze, Bestand, Bewegungen | P1 |
| 08 Loadout | Soll/Ist-Beladung, Kontrolle | P1 |
| 09 Inspections | Prüfungen generisch | P1 |
| 10 Maintenance | Wartung | P2 |
| 11 Defects | Mängel-Ticket | P1 |
| 12 Personnel | Person/Benutzer/Qualifikation | P1 |
| 13 Readiness | Zentrale Einsatzbereitschafts-Engine | P1 |
| 14 Documents | Dokumentenverwaltung | P2 |
| 15 Mobile | QR-Scan-Workflow, PWA | P1 |
| 16 Operations | Einsatzverwaltung (Ausblick) | P3 |
Vollständige Kachel-Liste
| ID | Modul | Kachel | Prio | Aufwand | Risiko | Abhängigkeiten |
|---|---|---|---|---|---|---|
| FOUND-001 | Foundation | Repo & Projektstruktur | P0 | S | LOW | — |
| FOUND-002 | Foundation | DB-Grundgerüst + Migrationen | P0 | S | LOW | FOUND-001 |
| FOUND-003 | Foundation | Authentication | P0 | M | MEDIUM | FOUND-002 |
| FOUND-004 | Foundation | Authorization-Grundgerüst | P0 | M | MEDIUM | FOUND-003 |
| FOUND-005 | Foundation | API-Grundgerüst/Konventionen | P0 | S | LOW | FOUND-002 |
| FOUND-006 | Foundation | Logging & Audit-Grundgerüst | P0 | S | LOW | FOUND-002 |
| FOUND-007 | Foundation | Konfigurationsmanagement | P0 | XS | LOW | FOUND-001 |
| FOUND-008 | Foundation | Docker/Compose-Setup | P0 | M | MEDIUM | FOUND-001 |
| FOUND-009 | Foundation | CI/CD-Grundgerüst | P0 | S | LOW | FOUND-008 |
| FOUND-010 | Foundation | Backup-Strategie | P1 | S | MEDIUM | FOUND-002 |
| FOUND-011 | Foundation | Test-Grundgerüst | P0 | M | LOW | FOUND-002 |
| FOUND-012 | Foundation | Dokumentationsgerüst | P1 | XS | LOW | FOUND-001 |
| IDENT-001 | Identity | Objekt-ID-Schema | P0 | S | LOW | FOUND-002 |
| IDENT-002 | Identity | Inventarnummer manuell | P0 | S | LOW | IDENT-001 |
| IDENT-003 | Identity | Inventarnummer-Nummernschemata | P1 | M | MEDIUM | IDENT-002 |
| IDENT-004 | Identity | Seriennummer + Eindeutigkeitsprüfung | P0 | S | LOW | IDENT-001 |
| IDENT-005 | Identity | Hersteller/Modell-Stammdaten | P1 | S | LOW | IDENT-004 |
| IDENT-006 | Identity | QR-Code-Erzeugung | P0 | S | LOW | IDENT-001 |
| IDENT-007 | Identity | QR-Code-Druck (Label) | P0 | S | LOW | IDENT-006 |
| IDENT-008 | Identity | QR-Scan → Akte öffnen | P0 | M | MEDIUM | IDENT-006, FILE-006 |
| IDENT-009 | Identity | QR-Neuvergabe & -Historie | P2 | S | LOW | IDENT-006 |
| IDENT-010 | Identity | Barcode/GTIN | P3 | S | LOW | IDENT-001 |
| FILE-001 | Digital File | Akte-Grundgerüst | P0 | M | MEDIUM | IDENT-001 |
| FILE-002 | Digital File | Akte-Stammdatenbereich | P0 | S | LOW | FILE-001 |
| FILE-003 | Digital File | Akte-Standortbereich | P0 | S | LOW | FILE-001, WH-001 |
| FILE-004 | Digital File | Akte-Verantwortlichkeit | P1 | S | LOW | FILE-001, PERS-003 |
| FILE-005 | Digital File | Akte-Historienbereich | P0 | M | MEDIUM | FILE-001, FOUND-006 |
| FILE-006 | Digital File | Akte-Übersichtsseite (UI) | P0 | M | LOW | FILE-002..005 |
| FILE-007 | Digital File | Akte-Audit-Anbindung | P1 | S | LOW | FILE-005 |
| ASSET-001 | Assets | AssetCategory | P0 | XS | LOW | FOUND-002 |
| ASSET-002 | Assets | AssetType | P0 | S | LOW | ASSET-001 |
| ASSET-003 | Assets | Asset/AssetInstance | P0 | M | MEDIUM | ASSET-002, IDENT-001/002/004 |
| ASSET-004 | Assets | Asset-Status-Modell | P0 | S | LOW | ASSET-003 |
| ASSET-005 | Assets | Asset-Suche & Liste | P1 | S | LOW | ASSET-003 |
| ASSET-006 | Assets | Asset-Bewegungshistorie | P1 | S | LOW | ASSET-003, WH-001 |
| ASSET-007 | Assets | AssetSet | P2 | M | MEDIUM | ASSET-003 |
| ASSET-008 | Assets | Consumable | P1 | M | MEDIUM | ASSET-002 |
| ASSET-009 | Assets | Nutzungszähler (Kilometer/Betriebsstunden generisch) | P1 | S | LOW | ASSET-003 |
| FLEET-001 | Fleet | Fahrzeugtypen | P1 | XS | LOW | ASSET-002 |
| FLEET-002 | Fleet | Fahrzeuge (Kennzeichen/Funkrufname) | P1 | S | LOW | ASSET-003, FLEET-001 |
| FLEET-003 | Fleet | Kilometerstand (Anwendung von ASSET-009) | P1 | XS | LOW | FLEET-002, ASSET-009 |
| FLEET-004 | Fleet | Fahrzeugstatus (5-stufig) | P1 | S | LOW | FLEET-002, READY-002 |
| FLEET-005 | Fleet | Fahrzeug-Dokumente | P2 | XS | LOW | FLEET-002, DOC-001 |
| FLEET-006 | Fleet | Fahrzeug-Einsatzhistorie (Platzhalter) | P3 | S | MEDIUM | FLEET-002, OPS-002 |
| INV-001 | Inventory | Materialarten/Kategorien | P1 | XS | LOW | ASSET-001 |
| INV-002 | Inventory | Einzelgeräte (SN-pflichtig) | P1 | S | LOW | ASSET-003, IDENT-004 |
| INV-003 | Inventory | Verbrauchsmaterial (Mengen) | P1 | S | LOW | ASSET-008 |
| INV-004 | Inventory | Chargenverwaltung | P1 | S | MEDIUM | INV-003 |
| INV-005 | Inventory | Ablaufdaten & Warnschwellen | P1 | S | LOW | INV-004 |
| INV-006 | Inventory | Mindestbestände & Fehlbestand | P1 | M | MEDIUM | INV-003, LOAD-001 |
| INV-007 | Inventory | Ausgabe/Rückgabe | P2 | M | MEDIUM | INV-003 |
| WH-001 | Warehouse | Lager-Stammdaten (Hierarchie) | P1 | S | LOW | FOUND-002 |
| WH-002 | Warehouse | Lagerplätze | P1 | S | LOW | WH-001 |
| WH-003 | Warehouse | Bestand je Lagerplatz | P1 | M | MEDIUM | WH-002, INV-003 |
| WH-004 | Warehouse | Einlagerung/Auslagerung | P1 | M | MEDIUM | WH-003 |
| WH-005 | Warehouse | Umlagerung | P1 | S | LOW | WH-004 |
| WH-006 | Warehouse | Inventur & Bestandskorrektur | P2 | M | MEDIUM | WH-003 |
| WH-007 | Warehouse | Materialbewegungsprotokoll | P1 | S | LOW | WH-004, FOUND-006 |
| LOAD-001 | Loadout | Soll-Beladung/Beladungsplan | P1 | M | MEDIUM | ASSET-003, INV-002/003 |
| LOAD-002 | Loadout | Ist-Beladung | P1 | S | LOW | LOAD-001 |
| LOAD-003 | Loadout | Abweichungserkennung | P1 | S | MEDIUM | LOAD-002 |
| LOAD-004 | Loadout | Digitale Beladungskontrolle | P1 | M | MEDIUM | LOAD-003 |
| LOAD-005 | Loadout | Kontrollhistorie | P1 | S | LOW | LOAD-004, FOUND-006 |
| LOAD-006 | Loadout | Readiness-Kopplung | P1 | S | MEDIUM | LOAD-003, READY-001 |
| INSP-001 | Inspections | Prüfarten-Stammdaten | P1 | S | LOW | ASSET-002 |
| INSP-002 | Inspections | Prüfintervalle | P1 | S | LOW | INSP-001 |
| INSP-003 | Inspections | Prüfdurchführung/-ergebnis | P1 | M | MEDIUM | INSP-002 |
| INSP-004 | Inspections | Status-Ampel (VALID/DUE_SOON/OVERDUE/FAILED) | P1 | S | LOW | INSP-003 |
| INSP-005 | Inspections | Prüfdokument-Anbindung | P2 | XS | LOW | INSP-003, DOC-001 |
| INSP-006 | Inspections | Prüftermin-Übersicht | P1 | S | LOW | INSP-004 |
| MAINT-001 | Maintenance | Wartungspläne | P2 | S | LOW | ASSET-002 |
| MAINT-002 | Maintenance | Wartungsintervalle | P2 | S | MEDIUM | MAINT-001, ASSET-009 |
| MAINT-003 | Maintenance | Wartungsauftrag | P2 | M | MEDIUM | MAINT-002 |
| MAINT-004 | Maintenance | Wartungshistorie | P2 | S | LOW | MAINT-003, FOUND-006 |
| MAINT-005 | Maintenance | Ersatzteile/Kosten | P3 | M | MEDIUM | MAINT-003 |
| MAINT-006 | Maintenance | Wartungsdokument-Anbindung | P2 | XS | LOW | MAINT-003, DOC-001 |
| DEFECT-001 | Defects | Mangelmeldung + Foto | P1 | M | LOW | ASSET-003, DOC-001 |
| DEFECT-002 | Defects | Priorität & Status-Workflow | P1 | S | LOW | DEFECT-001 |
| DEFECT-003 | Defects | Verantwortlicher & Reparaturzuordnung | P1 | S | LOW | DEFECT-002, PERS-002 |
| DEFECT-004 | Defects | Abschluss & Dokumentation | P1 | S | LOW | DEFECT-003 |
| DEFECT-005 | Defects | Readiness-Einfluss (kritisch) | P1 | S | MEDIUM | DEFECT-002, READY-001 |
| PERS-001 | Personnel | Person (fachlich) | P1 | M | HIGH | FOUND-002 |
| PERS-002 | Personnel | Benutzer (technisch, verknüpft) | P0 | M | HIGH | PERS-001, FOUND-003 |
| PERS-003 | Personnel | Einheiten/Organisationsstruktur | P1 | S | LOW | PERS-001 |
| PERS-004 | Personnel | Funktionen/Rollen im Einsatzkontext | P2 | S | LOW | PERS-003 |
| PERS-005 | Personnel | Qualifikationen/Lehrgänge | P1 | S | LOW | PERS-001 |
| PERS-006 | Personnel | Führerscheine/Berechtigungen mit Gültigkeit | P1 | M | MEDIUM | PERS-005, ASSET-002 |
| PERS-007 | Personnel | Qualifikationsablauf-Warnungen | P1 | S | LOW | PERS-006 |
| READY-001 | Readiness | Regel-Engine (Grundgerüst) | P1 | M | HIGH | ASSET-004 |
| READY-002 | Readiness | Zustände READY/LIMITED/NOT_READY/UNKNOWN | P1 | S | MEDIUM | READY-001 |
| READY-003 | Readiness | Regel-Kopplung (Prüfung/Wartung/Mangel/Beladung) | P1 | L | HIGH | READY-002, INSP-004, DEFECT-005, LOAD-006 |
| READY-004 | Readiness | Readiness-Dashboard | P1 | S | LOW | READY-003 |
| READY-005 | Readiness | Regel-Konfiguration-UI | P2 | M | MEDIUM | READY-003 |
| DOC-001 | Documents | Dokument-Grundgerüst (Upload) | P1 | M | MEDIUM | FILE-001 |
| DOC-002 | Documents | Dokumenttypen | P2 | XS | LOW | DOC-001 |
| DOC-003 | Documents | Versionierung | P2 | M | MEDIUM | DOC-001 |
| DOC-004 | Documents | Original-vs-Kopie-Kennzeichnung | P2 | S | LOW | DOC-001 |
| DOC-005 | Documents | Zugriffsrechte je Dokument | P2 | S | MEDIUM | DOC-001, FOUND-004 |
| MOBILE-001 | Mobile | PWA-Grundgerüst | P1 | M | MEDIUM | FOUND-005 |
| MOBILE-002 | Mobile | QR-Scan-Workflow (Kernablauf) | P1 | M | MEDIUM | MOBILE-001, IDENT-008 |
| MOBILE-003 | Mobile | Offline-Grundgerüst | P2 | L | HIGH | MOBILE-001 |
| MOBILE-004 | Mobile | Mobile Mangelmeldung + Foto | P1 | S | LOW | MOBILE-002, DEFECT-001 |
| MOBILE-005 | Mobile | Mobile Beladungskontrolle | P1 | S | MEDIUM | MOBILE-002, LOAD-004 |
| OPS-001 | Operations | Einsatzverwaltung (Platzhalter) | P3 | L | HIGH | FILE-001 |
| OPS-002 | Operations | Einsatzmittel-Verknüpfung | P3 | M | MEDIUM | OPS-001, ASSET-003 |
| OPS-003 | Operations | Einsatznachbereitung (Platzhalter) | P3 | L | HIGH | OPS-001 |
Abhängigkeitsgraph (Epic-Ebene)
FOUNDATION
↓
IDENTITY ──────────────┐
↓ │
DIGITAL FILE ←──────────┤ (Akte referenziert Identity direkt)
↓ │
ASSETS ←────────────────┘
↓ ↓ ↓
FLEET INVENTORY PERSONNEL
↓ ↓ │
│ WAREHOUSE │
│ ↓ │
│ LOADOUT │
↓ ↓ ↓
INSPECTIONS DEFECTS (Qualifikation → Readiness)
↓ ↓
MAINTENANCE │
↓ ↓
READINESS ←── (bündelt Inspections+Maintenance+Defects+Loadout)
↓
DOCUMENTS (läuft quer durch alle Epics ab FILE-001)
↓
MOBILE
↓
OPERATIONS (Ausblick, P3)
MVP-Abgrenzung (P0 + P1)
P0 (zwingend, Foundation): FOUND-001…011, IDENT-001/002/004/006/007/008, FILE-001/002/003/005/006, ASSET-001…004, PERS-002.
P1 (MVP-Funktionsumfang): Fleet (komplett), Inventory (komplett), Warehouse (komplett), Loadout (komplett), Inspections (komplett), Defects (komplett), Personnel (bis auf PERS-004), Readiness (bis auf READY-005), Mobile (bis auf MOBILE-003), DOC-001 (nur Grundgerüst, Rest P2).
Bewusst außerhalb MVP: Maintenance (P2, außer Kern optional), Documents-Feinschliff (Versionierung/Zugriffsrechte, P2), Operations komplett (P3).
Deckt sich das MVP praktisch mit dem, was in MABEA schon existiert — Lücken laut diesem Backlog gegenüber MABEA-Ist-Stand: PERS-001 (Person getrennt von Benutzer), AssetSet/Consumable als eigenständige Konzepte (ASSET-007/008), Readiness als konfigurierbare Regel-Engine statt fest verdrahteter Logik (READY-001/005), Wartung als eigenes Modul (MAINT-*, MABEA hat nur Prüfung, keine Wartung).
Detaillierungsstand
| Datei | Enthält Details für |
|---|---|
01_foundation.md |
FOUND-001 … FOUND-006 |
02_identity.md |
IDENT-001, 002, 004, 005 … 010 |
03_digital_file.md |
FILE-001 … FILE-007 (vollständig) |
04_assets.md |
ASSET-001 … ASSET-009 (vollständig, ASSET-009 nachträglich ergänzt) |
05_fleet.md |
FLEET-001 … FLEET-006 (vollständig) |
06_inventory.md |
INV-001 … INV-007 (vollständig) |
07_warehouse.md |
WH-001 … WH-007 (vollständig) |
08_loadout.md |
LOAD-001 … LOAD-006 (vollständig) |
09_inspections.md |
INSP-001 … INSP-006 (vollständig) |
10_maintenance.md |
MAINT-001 … MAINT-006 (vollständig) |
11_defects.md |
DEFECT-001 … DEFECT-005 (vollständig) |
12_personnel.md |
PERS-001 … PERS-007 (vollständig) |
13_readiness.md |
READY-001 … READY-005 (vollständig) |
14_documents.md |
DOC-001 … DOC-005 (vollständig) |
15_mobile.md |
MOBILE-001 … MOBILE-005 (vollständig) |
Restliche Kacheln (OPS): nur Zeile in der Tabelle oben, Details folgen nach Freigabe.