meldestelle/docs/04_Agents/Roadmaps/Rulebook_Roadmap.md
Stefan Mogeritsch c696b8c50e feat(db): add regulation-as-data tables for license height and horse age matrices
- Introduced `license_height_matrix` for mapping minimum license requirements to jump heights (ÖTO § 231).
- Added `horse_min_age_matrix` for defining minimum horse ages by discipline, height, or level (ÖTO § 103, FEI GR Art. 136).
- Populated both tables with ÖTO 2026 and FEI-compliant seed data.
- Updated Flyway V008 to remove incorrect `RD4` entry and annotated corrected enum references.
- Created Flyway V009 for introducing the new tables and their seeds.
- Aligned documentation, validation rules, and roadmaps for backend implementation handover.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-04-03 11:10:45 +02:00

88 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📜 [ÖTO/FEI Rulebook Expert] — Zwischenstand & Roadmap
> **Stand:** 3. April 2026 (Session 2)
> **Rolle:** Regelwerks-Wächter, Validierungs-Spezialist, Compliance (ÖTO, FEI)
---
## ✅ Erledigte Sprints
### Sprint A — Abgeschlossen
- [x] **A-1** | Validierungs-Spezifikation erstellen (v0.3 DRAFT)
- [x] Paragraphen-Pins ergänzt (Springen § 231, Dressur § 103, CCN §§ 3xx)
- [x] Einheitliche Label-Konventionen: `ohne Lizenz`, `mit Lizenz`, `R2 und höher`; Keys: `LZF_ONLY`, `R1_PLUS`,
`R1_ONLY`, `R2_PLUS`
- [x] Optionale Jugend-/Jahrgangsteilungen als Regulation-as-Data modelliert (keine systemweite Pflicht)
- [x] Abteilungs-Trennungs-Schwellenwerte dokumentiert →
`docs/03_Domain/02_Reference/OETO_Regelwerk/Abteilungs-Trennungs-Schwellenwerte.md`
- [x] Warn-Logik-Spezifikation →
`docs/03_Domain/02_Reference/OETO_Regelwerk/Warn-Logik-Spezifikation-competition-context.md`
- [x] CVN (Voltigieren): § 39 Abs. 2 als Fallback; eigene OEPS-CVN-Regeln gelten
- [x] CAN (Fahren): § 39 Abs. 2 als Fallback; § 850 Abs. 9 für F1+ Fahrertreffen
- [x] `OetoValidators` (KMP) implementiert; `OetoValidatorsTest.kt` grün
### Sprint B (Teilweise) — Abgeschlossen
- [x] **B-1** | Validierungs-Implementierung Frontend begleiten
- [x] Spezifikation v0.3 DRAFT an 🎨 Frontend übergeben
- [x] Implementierung geprüft: Live-Validierung entspricht Regelwerks-Anforderungen
- [x] Fehlermeldungs-Texte auf Korrektheit und Verständlichkeit geprüft
- [x] Session-Log → `docs/99_Journal/2026-04-03_Rulebook_B1_Validierung_Frontend.md`
---
## 🟡 Sprint B — Teilweise offen
- [ ] **B-2** | Validierungs-Implementierung Backend begleiten
- [x] FEI Legacy→Numeric Resolver implementiert (`/api/fei/resolve/{id}`) — erste Version in Masterdata-SCS
- [x] Lizenz-/Altersmatrix als Regulation-as-Data an 👷 Backend übergeben
- [x] `LizenzKlasseE`-Enum: `R4` ergänzt, `RD4`-Fehler in V008 korrigiert
- [x] Flyway V009: `license_height_matrix` + `horse_min_age_matrix` angelegt und befüllt
- [x] B-2-Übergabe-Spezifikation →
`docs/03_Domain/02_Reference/OETO_Regelwerk/B2-Backend-Uebergabe-Regulation-as-Data.md`
- [x] `Validierungsregeln.md`: `LZF``LIZENZFREI` korrigiert, Version 0.4, Verweis auf B2-Spec ergänzt
- [ ] Serverseitige Validierung prüfen: Werden alle Regeln korrekt durchgesetzt?
- [ ] Backend-Endpunkte `/api/regulation/*` implementieren (👷 Backend)
- [ ] Abweichungen Backend ↔ Frontend-Validierung dokumentieren und klären
- [ ] Lizenz×Bewerb-Tabellen (Springen + Dressur) von DRAFT auf STABLE anheben (nach Fachfreigabe)
---
## 🟠 Sprint C — Priorität 2 (nächste Woche)
- [ ] **C-1** | `AltersklasseRechner` implementieren und testen
- [ ] Altersklassen-Berechnung für Pferd (Jahrgang → Kategorie) umsetzen
- [ ] Grenzfälle: Pferd im Geburtsjahr, Jahreswechsel, Stichtag-Regeln
- [ ] Unit-Tests mit `OetoValidatorsTest.kt`-Grenzfällen als Basis
- [ ] **C-2** | Regelwerk-Enums vervollständigen
- [ ] Alle Lizenzklassen-Übergänge formal prüfen (R1→R2→R3→R4, LZF-Sonderfall)
- [ ] FEI-Kategorien-Mapping auf ÖTO-Lizenzklassen vervollständigen
- [ ] Enums in KMP-Modul `core:domain` als SSoT festlegen
- [ ] **C-3** | Compliance-Dokumentation: Series-Context vorbereiten
- [ ] Regelwerk-Grundlagen für Cups/Serien/Meisterschaften recherchieren
- [ ] Anforderungen an konfigurierbare Reglements (Phase 2+) dokumentieren
---
## 📌 Abhängigkeiten
| Meine Aufgabe | Blockiert wen |
|-------------------------|---------------------------------------------------|
| B-2 Spec an Backend | 👷 Backend: A-3 Sonderregeln, B-3 ÖTO-Validierung |
| B-1 ✅ Spec an Frontend | 🎨 Frontend: B-3 Live-Validierung |
| C-1 AltersklasseRechner | 🧐 QA: C-3 Validierungs-Tests |
---
## 💡 Empfehlungen (nach Priorität)
1. **B-2 Backend-Übergabe** — Lizenz-/Altersmatrix als Regulation-as-Data an Backend übergeben; Backend wartet auf diese
Spezifikation für A-3 und B-3.
2. **Lizenz×Bewerb DRAFT → STABLE** — Fachfreigabe einholen, damit Backend und Frontend auf stabiler Basis arbeiten
können.
3. **C-1 AltersklasseRechner** — Grenzfälle (Jahrgang, Stichtag) sind komplex und müssen vor Backend-Implementierung
spezifiziert sein.