docs: Fehler korrigiert - Betriebsstunden fälschlich fahrzeug-only geplant
CI / backend-tests (push) Failing after 1m54s
CI / frontend-build (push) Successful in 17s

Nutzer-Fund: FLEET-003 (Kilometerstand/Betriebsstunden) war fälschlich als
fahrzeug-gebundenes Datenmodell geplant, obwohl die Ursprungs-Anforderung
explizit auch Stromerzeuger/Pumpen mit betriebsstundenabhängiger Wartung
nennt (Modul 14). Neue generische Kachel ASSET-009 (Nutzungszähler)
eingeführt, FLEET-003 zur bloßen Fahrzeug-Anwendung davon reduziert.

MABEA-Abgleich korrigiert: echte Lücke ist jetzt doppelt - kein generischer
Zähler für Nicht-Fahrzeug-Geräte UND keine Rückwärtslauf-Validierung am
bestehenden Fahrzeug-Kilometerstand.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
This commit is contained in:
2026-09-05 15:23:41 +02:00
co-authored by Claude Sonnet 5
parent c7784f0106
commit b7c7276b20
3 changed files with 71 additions and 27 deletions
+4 -3
View File
@@ -83,9 +83,10 @@ Kachel-Template und Nutzer-Vorgaben zur Methodik: siehe Memory
| 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 | Kilometer/Betriebsstunden | P1 | XS | LOW | FLEET-002 |
| 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 |
@@ -116,7 +117,7 @@ Kachel-Template und Nutzer-Vorgaben zur Methodik: siehe Memory
| 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 |
| 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 |
@@ -208,7 +209,7 @@ eigenes Modul (MAINT-\*, MABEA hat nur Prüfung, keine Wartung)**.
| `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-008 (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-004 |
+38 -1
View File
@@ -169,6 +169,39 @@ Details zu ASSET-001 … ASSET-008 (vollständig).
- **Tests:** Abgrenzungstest.
- **DoD:** Grundlage für INV-003 gelegt.
## ASSET-009 — Nutzungszähler (Kilometer/Betriebsstunden generisch)
- **Nachtrag (Nutzer-Fund):** ursprünglich fälschlich als FLEET-003 fahrzeug-gebunden
geplant. Betriebsstunden brauchen aber auch Stromerzeuger, Pumpen und andere Geräte
(explizit in der Ursprungs-Anforderung Modul 14 „Wartung": „kilometerabhängige UND
betriebsstundenabhängige Wartung" — nicht auf Fahrzeuge beschränkt). Generischer
Nutzungszähler gehört daher ins Assets-Epic, nicht ins Fleet-Epic.
- **Ziel:** Nutzungsgrad JEDES Assets erfassen, das einen Zähler hat (Kilometer ODER
Betriebsstunden ODER beides) — Basis für zähler-abhängige Wartungsintervalle (MAINT-002).
- **Beschreibung:** generisches Zählerfeld je Asset (Typ: km/Betriebsstunden/keins),
Erfassungsverlauf (nicht nur aktueller Wert, sondern Verlauf der Meldungen).
- **Benutzerwert:** Fahrzeuge (km), aber auch Stromerzeuger/Pumpen/Kompressoren
(Betriebsstunden) bekommen dieselbe Wartungslogik, ohne dass jedes Modul sein eigenes
Zählerfeld neu erfindet.
- **Abhängigkeiten:** ASSET-003
- **Datenmodell:** `asset.zaehler_typ` (enum: keiner/kilometer/betriebsstunden),
`asset.zaehlerstand` (aktuell), optional `zaehlerstand_historie`
- **Backend:** Update-Endpoint mit Plausibilitätsprüfung (nur steigend, Override nur
Administrator)
- **Frontend:** Eingabefeld bei Kontrolle/Rückkehr bzw. nach Nutzung
- **Mobile:** Eingabe im Feld
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** Stammdatenbereich
- **Rechte:** jeder Nutzer darf melden, Korrektur nur Administrator
- **Audit:** Änderung geloggt
- **Akzeptanzkriterien:** Wert kann nur steigen (Validierung gegen Rückwärtslauf, außer
Admin-Override); funktioniert gleichermaßen für ein Fahrzeug (km) und ein Gerät
(Betriebsstunden).
- **Tests:** Validierungstest je Zählertyp, Test mit einem Nicht-Fahrzeug-Asset
(z.B. Stromerzeuger).
- **DoD:** mind. ein Fahrzeug UND ein Gerät (z.B. Stromerzeuger) nutzen denselben
Mechanismus nachweisbar.
---
**MABEA-Ist-Stand-Abgleich:** ASSET-001…004 entsprechen `Bereich`/`Kategorie`,
@@ -177,4 +210,8 @@ Fahrzeug-Status als Beispiel für ASSET-004-Erweiterung. ASSET-005 (Suche/Filter
in ObjektListPage/ObjektSection. ASSET-006 (Bewegungshistorie) vorhanden als
`Lagerbewegung` (diente hier sogar als Vorbild). **ASSET-007 (AssetSet) und ASSET-008
(Consumable als eigenständiges Konzept) fehlen** — echte Lücken, wie schon in der
Gap-Analyse vorher notiert.
Gap-Analyse vorher notiert. **ASSET-009 (generischer Nutzungszähler) fehlt ebenfalls:**
MABEA hat Kilometerstand/Betriebsstunden nur an `fahrzeugdetails` (1:1 zu Objekt mit
`ist_zugfahrzeug`), Geräte wie Stromerzeuger/Pumpen (`GeraetInstanz`) haben aktuell KEIN
Betriebsstunden-Feld — echte Lücke, wenn Wartung künftig betriebsstundenabhängig geplant
werden soll (MAINT-002, Wartungs-Epic in MABEA ohnehin noch komplett offen).
+29 -23
View File
@@ -46,28 +46,30 @@ Details zu FLEET-001 … FLEET-006 (vollständig).
- **DoD:** deckt sich mit MABEA `fahrzeugdetails` (bereits umgesetzt, diente hier als
Vorbild).
## FLEET-003 — Kilometerstand/Betriebsstunden
## FLEET-003 — Kilometerstand (Fahrzeug-Anwendung von ASSET-009)
- **Ziel:** Nutzungsgrad des Fahrzeugs erfassen (Basis für km-/std-abhängige
Wartungsintervalle, MAINT-002).
- **Beschreibung:** Felder + Erfassungsverlauf (nicht nur aktueller Wert, sondern Verlauf
der Meldungen).
- **Benutzerwert:** Grundlage für Wartungsplanung.
- **Abhängigkeiten:** FLEET-002
- **Datenmodell:** `fahrzeugdetails.kilometerstand`/`betriebsstunden` (aktuell) +
optional `km_stand_historie`
- **Backend:** Update-Endpoint mit Plausibilitätsprüfung
- **Frontend:** Eingabefeld bei Kontrolle/Rückkehr
- **Korrektur (Nutzer-Fund):** ursprünglich hier fälschlich als fahrzeug-eigenes
Datenmodell geplant. Betriebsstunden brauchen auch Nicht-Fahrzeuge (Stromerzeuger,
Pumpen) — der generische Zähler-Mechanismus ist jetzt **ASSET-009**. Diese Kachel ist
nur noch die Fahrzeug-spezifische Anwendung davon (Zählertyp=kilometer, UI-Einbindung in
die Fahrzeug-Akte).
- **Ziel:** Kilometerstand des Fahrzeugs im Kontroll-/Rückkehr-Ablauf erfassbar machen.
- **Beschreibung:** Fahrzeug nutzt ASSET-009 mit `zaehler_typ=kilometer`, kein eigenes
Feld/Endpoint mehr nötig.
- **Benutzerwert:** Grundlage für kilometerabhängige Wartungsplanung (MAINT-002).
- **Abhängigkeiten:** FLEET-002, **ASSET-009**
- **Datenmodell:** keins zusätzlich (nutzt ASSET-009)
- **Backend:** keins zusätzlich
- **Frontend:** Eingabefeld bei Kontrolle/Rückkehr, eingebettet in Fahrzeug-Akte
- **Mobile:** Eingabe im Feld (nach Fahrt)
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** Stammdatenbereich
- **Rechte:** jeder Fahrzeugnutzer darf melden (breiter als reine Materialwart-Rechte),
Korrektur nur Administrator
- **Audit:** Änderung geloggt
- **Akzeptanzkriterien:** Wert kann nur steigen (Validierung gegen Rückwärtslauf, außer
Admin-Korrektur-Override).
- **Tests:** Validierungstest (Rückwärtslauf abgelehnt, Override funktioniert).
- **DoD:** funktioniert, Validierung greift nachweisbar.
- **Rechte:** wie ASSET-009
- **Audit:** wie ASSET-009
- **Akzeptanzkriterien:** Kilometerstand-Eingabe am Fahrzeug nutzt denselben validierten
Mechanismus wie ein Betriebsstunden-Gerät.
- **Tests:** Integrationstest (Fahrzeug als Anwendungsfall von ASSET-009).
- **DoD:** funktioniert, keine Fahrzeug-spezifische Sonderlogik mehr nötig.
## FLEET-004 — Fahrzeugstatus (5-stufig)
@@ -128,9 +130,13 @@ Details zu FLEET-001 … FLEET-006 (vollständig).
---
**MABEA-Ist-Stand-Abgleich:** FLEET-001005 sind praktisch 1:1 in MABEA vorhanden
**MABEA-Ist-Stand-Abgleich:** FLEET-001/002/004/005 sind praktisch 1:1 in MABEA vorhanden
(Objekttyp mit `ist_zugfahrzeug`, `fahrzeugdetails`-Tabelle, 5-stufiger `ObjektStatus`,
generisches DokumentePanel). Einzige offene Lücke: FLEET-003s Plausibilitätsprüfung
(„Kilometerstand darf nicht sinken") ist in MABEA **nicht** validiert — reiner
Zahlen-Input ohne Rückwärtslauf-Schutz. Kleine, konkrete Nachbesserung, keine neue Kachel
nötig. FLEET-006 ist in MABEA (noch) nicht relevant, da kein Operations-Epic existiert.
generisches DokumentePanel). **FLEET-003/ASSET-009 zeigen eine echte Lücke:** MABEA führt
Kilometerstand/Betriebsstunden NUR an `fahrzeugdetails` (fahrzeug-gebunden), es gibt keinen
generischen Zähler-Mechanismus für Geräte wie Stromerzeuger/Pumpen (`GeraetInstanz` hat kein
Betriebsstunden-Feld) — und selbst der Fahrzeug-Kilometerstand hat **keine
Rückwärtslauf-Validierung** (reiner Zahlen-Input). Beides zusammen: ASSET-009 wäre in MABEA
kein reiner Nachzug, sondern verlangt (a) ein neues generisches Zählerfeld an Objekt/
GeraetInstanz und (b) eine bisher fehlende Validierungsregel. FLEET-006 ist in MABEA (noch)
nicht relevant, da kein Operations-Epic existiert.