Files
meldestelle/docs/04_Agents/Roadmaps/Rulebook_Roadmap.md
T

97 lines
5.6 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] — 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 „OEPSMitgliedsnummer“
- [x] **FEI-ID**
- [x] Gültiges Format definieren (numerisch 78 stellig + LegacyCode `NNNAA NN`)
- [x] Pflichtregel national/international festhalten (Turnierkategorieabhängig)
- [x] Ungültige Beispiele dokumentieren
- Ergebnis: siehe `docs/03_Domain/02_Reference/Validierungsregeln.md` Abschnitt „FEIID“
- BackendLookup: `GET /api/fei/resolve/{id}` (MasterdataSCS), MappingQuelle `data/fei-id-mapping.json` — dokumentiert in Validierungsregeln 2.9
- [x] **Lizenzklassen (R1R4, RD1RD3, LZF)**
- [x] Vollständige Liste aller gültigen Lizenzklassen
- [x] Erste LizenzZuordnungstabellen (Springen + Dressur) als DRAFT mit ParagraphenPlatzhaltern
- Ergebnis: siehe `docs/03_Domain/02_Reference/Validierungsregeln.md` Abschnitt „Lizenzklassen“
- [x] **Altersklassen Pferd**
- [x] Mindestalter je Disziplin/Klasse als DRAFTTabellen (Ö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 (PlatzhalterParagraphen nachtragen)
- [x] Ergebnis dokumentiert in `docs/03_Domain/02_Reference/TURNIER_KLASSEN.md`
- [x] ParagraphenPins ergänzt (Springen § 231, Dressur § 103, CCN Kap. §§3xx) und einheitliche LabelKonventionen definiert ("ohne Lizenz", "mit Lizenz", "R2 und höher"; Keys: `LZF_ONLY`, `R1_PLUS`, `R1_ONLY`, `R2_PLUS`).
- [x] Optionale Jugend-/Jahrgangsteilungen als RegelModell (RegulationasData) 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 MasterdataSCS
- [ ] Spezifikation aus Sprint A-1 an 👷 Backend übergeben (Lizenz-/Altersmatrix als RegulationasData)
- [ ] 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 |