97 lines
5.6 KiB
Markdown
97 lines
5.6 KiB
Markdown
# 📜 [ÖTO/FEI Rulebook Expert] — Schritt-für-Schritt Roadmap
|
||
|
||
> **Stand:** 2. April 2026
|
||
> **Rolle:** Regelwerks-Wächter, Validierungs-Spezialist, ÖTO/FEI Compliance
|
||
|
||
---
|
||
|
||
## 🔴 Sprint A — Sofort (diese Woche)
|
||
|
||
- [x] **A-1** | Validierungsregeln schriftlich spezifizieren — Grundlage für alle anderen Teams
|
||
- [x] **OEPS-Mitgliedsnummer**
|
||
- [x] Gültiges Format definieren (Länge, erlaubte Zeichen, Präfixe)
|
||
- [x] Ungültige Beispiele dokumentieren
|
||
- Ergebnis: siehe `docs/03_Domain/02_Reference/Validierungsregeln.md` Abschnitt „OEPS‑Mitgliedsnummer“
|
||
- [x] **FEI-ID**
|
||
- [x] Gültiges Format definieren (numerisch 7–8 stellig + Legacy‑Code `NNNAA NN`)
|
||
- [x] Pflichtregel national/international festhalten (Turnierkategorie‑abhängig)
|
||
- [x] Ungültige Beispiele dokumentieren
|
||
- Ergebnis: siehe `docs/03_Domain/02_Reference/Validierungsregeln.md` Abschnitt „FEI‑ID“
|
||
- Backend‑Lookup: `GET /api/fei/resolve/{id}` (Masterdata‑SCS), Mapping‑Quelle `data/fei-id-mapping.json` — dokumentiert in Validierungsregeln 2.9
|
||
- [x] **Lizenzklassen (R1–R4, RD1–RD3, LZF)**
|
||
- [x] Vollständige Liste aller gültigen Lizenzklassen
|
||
- [x] Erste Lizenz‑Zuordnungstabellen (Springen + Dressur) als DRAFT mit Paragraphen‑Platzhaltern
|
||
- Ergebnis: siehe `docs/03_Domain/02_Reference/Validierungsregeln.md` Abschnitt „Lizenzklassen“
|
||
- [x] **Altersklassen Pferd**
|
||
- [x] Mindestalter je Disziplin/Klasse als DRAFT‑Tabellen (ÖTO/FEI) ergänzt
|
||
- [x] Berechnungsregel: Stichtag 1. Jänner des Geburtsjahres
|
||
- Ergebnis: siehe `docs/03_Domain/02_Reference/Validierungsregeln.md` Abschnitt „Altersklassen Pferd“
|
||
- [x] Ergebnis als Dokument `docs/03_Domain/02_Reference/Validierungsregeln.md` ablegen (Status: DRAFT v0.3)
|
||
|
||
- [x] **A-2** | Abteilungs-Zwangsteilungsregeln vollständig spezifizieren
|
||
- [x] CSN-C-NEU: Bewerb ≤95cm → `ohne Lizenz` | `mit Lizenz` (§ 231 ÖTO, Platzhalter) — spezifiziert
|
||
- [x] CSN-C-NEU: Bewerb ≥100cm → `R1` | `R2 und höher` (§ 231 ÖTO, Platzhalter) — spezifiziert
|
||
- [x] Weitere Pflicht-Teilungsregeln geprüft: CDN, CCN — derzeit keine generische Zwangsteilung wie CSN-C-NEU identifiziert (Platzhalter‑Paragraphen nachtragen)
|
||
- [x] Ergebnis dokumentiert in `docs/03_Domain/02_Reference/TURNIER_KLASSEN.md`
|
||
- [x] Paragraphen‑Pins ergänzt (Springen § 231, Dressur § 103, CCN Kap. §§3xx) und einheitliche Label‑Konventionen definiert ("ohne Lizenz", "mit Lizenz", "R2 und höher"; Keys: `LZF_ONLY`, `R1_PLUS`, `R1_ONLY`, `R2_PLUS`).
|
||
- [x] Optionale Jugend-/Jahrgangsteilungen als Regel‑Modell (Regulation‑as‑Data) ergänzt, keine systemweite Pflicht.
|
||
|
||
---
|
||
|
||
## 🟠 Sprint B — Kurzfristig (nächste Woche)
|
||
|
||
- [ ] **B-1** | Validierungs-Implementierung Frontend begleiten
|
||
- [ ] Spezifikation aus Sprint A-1 (v0.3 DRAFT) an 🎨 Frontend übergeben
|
||
- [ ] Implementierung prüfen: Entspricht die Live-Validierung den Regelwerks-Anforderungen?
|
||
- [ ] Fehlermeldungs-Texte auf Korrektheit und Verständlichkeit prüfen
|
||
|
||
- [ ] **B-2** | Validierungs-Implementierung Backend begleiten
|
||
- [x] FEI Legacy→Numeric Resolver implementiert (`/api/fei/resolve/{id}`) — erste Version in Masterdata‑SCS
|
||
- [ ] Spezifikation aus Sprint A-1 an 👷 Backend übergeben (Lizenz-/Altersmatrix als Regulation‑as‑Data)
|
||
- [ ] Serverseitige Validierung prüfen: Werden alle Regeln korrekt durchgesetzt?
|
||
- [ ] Grenzfälle definieren und an 🧐 QA weitergeben
|
||
|
||
- [ ] **B-3** | Bewerbs-Typen und Bewertungslogik dokumentieren
|
||
- [ ] Stilspringen: Berechnungsformel Grundnote − Abzüge dokumentieren (§ 204 ÖTO)
|
||
- [ ] Dressurreiterprüfung: Bewertungskriterien dokumentieren (§ 103 ÖTO)
|
||
- [ ] Reihungsregeln bei Punktgleichheit dokumentieren
|
||
- [ ] Ergebnis: `REITER_PRUEFUNGEN.md` aktualisieren / vervollständigen
|
||
|
||
---
|
||
|
||
## 🟡 Sprint C — Mittelfristig (in 2 Wochen)
|
||
|
||
- [ ] **C-1** | `AltersklasseRechner` vollständig gegen ÖTO 2026 testen
|
||
- [ ] Alle Altersklassen-Grenzen aus dem Regelwerk extrahieren
|
||
- [ ] Testfälle für Grenzjahre definieren (z.B. Pferd born Jan vs. Dez)
|
||
- [ ] Testfälle an 🧐 QA übergeben
|
||
|
||
- [ ] **C-2** | Funktionärs-Qualifikationen als Enum spezifizieren
|
||
- [ ] Alle Funktionärs-Typen auflisten (Richter, Parcourschef, Veterinär, etc.)
|
||
- [ ] Qualifikationsstufen je Typ definieren (z.B. Richter: Regional, National, International)
|
||
- [ ] Zuordnung: Welche Qualifikation ist für welche Turnierkategorie Pflicht?
|
||
- [ ] Ergebnis als Enum-Vorlage für 👷 Backend bereitstellen
|
||
|
||
- [ ] **C-3** | ZNS-Export-Compliance prüfen
|
||
- [ ] ZNS-Dateiformat auf Aktualität (ÖTO 2026) prüfen
|
||
- [ ] Prüfungsart-Codes (`DR`, `ST`, etc.) im `zns-parser` validieren
|
||
- [ ] Fehlende oder veraltete Codes identifizieren und dokumentieren
|
||
|
||
---
|
||
|
||
## ⏸️ Zurückgestellt
|
||
|
||
> ⏸️ **Nenn-Formular Validierungsregeln (Lizenz × Klasse × Alter für Web-Formular)** — Nach Web-App Besprechung
|
||
|
||
---
|
||
|
||
## 📌 Abhängigkeiten
|
||
|
||
| Meine Aufgabe | Blockiert / Ermöglicht wen |
|
||
|---------------------------------------|--------------------------------------------------|
|
||
| Validierungs-Spezifikation (A-1) v0.3 | 👷 Backend: serverseitige Validierung (Blocker) |
|
||
| Validierungs-Spezifikation (A-1) v0.3 | 🎨 Frontend: Live-Feedback in Dialogen (Blocker) |
|
||
| Validierungs-Spezifikation (A-1) v0.3 | 🧐 QA: Testfälle für Validierung |
|
||
| Abteilungs-Zwangsteilungsregeln (A-2) | 👷 Backend: `Bewerb.validate()` (Blocker) |
|
||
| Funktionärs-Qualifikationen (C-2) | 👷 Backend: Enum-Implementierung |
|