2026-02-20 22:25:28 +01:00

6.3 KiB

name: schedule-analyzer description: Analysiert Fußball-Spielpläne (JSON) auf Fairness, Verteilung, Muster und Optimierungspotenzial. Für Heim/Auswärts-Serien, Reisebelastung, Wettbewerbsgleichheit. argument-hint: [analyse-typ] z.B. fairness, reise, muster allowed-tools: - Read - Glob - Grep - Bash - WebSearch disable-model-invocation: false

Fußball-Spielplan-Analysator

Spezialisierter Skill zur tiefgehenden Analyse von Fußball-Spielplänen. Erkennt strukturelle Probleme, Fairness-Ungleichgewichte und Optimierungspotenziale.

Wann verwenden

  • Analyse von Spielplan-JSON-Dateien auf Fairness und Verteilung
  • Erkennung von Heim/Auswärts-Serien und deren Auswirkungen
  • Bewertung von Reisebelastung und Regenerationszeiten
  • Identifikation von Scheduling-Mustern und Anomalien
  • Vergleich verschiedener Spielplan-Varianten
  • Vorbereitung von Optimierungs-Empfehlungen

JSON-Datenstruktur

Erwartetes Format der Spielplan-JSON:

[
  {
    "round": 1,
    "date": "2026-09-01",
    "kickoff_time": "15:30",
    "team_a": {
      "name": "FC Bayern München",
      "country": "GER"
    },
    "team_b": {
      "name": "Borussia Dortmund",
      "country": "GER"
    }
  }
]

Felder:

  • round: Spieltag-Nummer
  • date: Datum im ISO-Format (YYYY-MM-DD)
  • kickoff_time: Anstoßzeit (optional, kann leer sein)
  • team_a: Heimmannschaft mit name und country
  • team_b: Auswärtsmannschaft mit name und country

Analyse-Kategorien

1. Fairness-Analyse

Prüfe auf Ungleichgewichte:

  • Heim/Auswärts-Verhältnis: Jedes Team sollte gleich viele Heim- wie Auswärtsspiele haben
  • Aufeinanderfolgende Heim/Auswärts-Spiele: Serien von >2 aufeinanderfolgenden Heim- oder Auswärtsspielen sind problematisch
  • Spieltagsverteilung: Gleiche Anzahl Spiele pro Spieltag für alle Teams
  • Wochenend- vs. Wochentagsspiele: Faire Verteilung über die Saison
# Beispiel-Metriken berechnen
def analyze_home_away_balance(schedule):
    team_stats = {}
    for game in schedule:
        home = game['team_a']['name']
        away = game['team_b']['name']

        if home not in team_stats:
            team_stats[home] = {'home': 0, 'away': 0}
        if away not in team_stats:
            team_stats[away] = {'home': 0, 'away': 0}

        team_stats[home]['home'] += 1
        team_stats[away]['away'] += 1

    return team_stats

2. Serien-Erkennung

Identifiziere kritische Muster:

  • Heim-Serien: Mehr als 2 Heimspiele hintereinander
  • Auswärts-Serien: Mehr als 2 Auswärtsspiele hintereinander (besonders belastend)
  • Englische Wochen: Spiele mit <5 Tagen Abstand
  • Regenerationslücken: Zu lange Pausen (>14 Tage) zwischen Spielen
def detect_streaks(schedule, team_name):
    games = sorted([g for g in schedule
                   if g['team_a']['name'] == team_name
                   or g['team_b']['name'] == team_name],
                  key=lambda x: x['date'])

    streaks = {'home': [], 'away': []}
    current_home_streak = 0
    current_away_streak = 0

    for game in games:
        is_home = game['team_a']['name'] == team_name
        if is_home:
            current_home_streak += 1
            if current_away_streak > 0:
                streaks['away'].append(current_away_streak)
            current_away_streak = 0
        else:
            current_away_streak += 1
            if current_home_streak > 0:
                streaks['home'].append(current_home_streak)
            current_home_streak = 0

    return streaks

3. Reisebelastungs-Analyse

Für internationale Wettbewerbe oder große Ligen:

  • Gesamtreisestrecke pro Team (erfordert Geodaten)
  • Back-to-Back Auswärtsreisen: Zwei Auswärtsspiele nacheinander
  • Zeitzonen-Wechsel: Bei internationalen Spielplänen
  • Geografische Cluster: Nahe beieinander liegende Auswärtsspiele

4. Saisonverlaufs-Muster

  • Schwierigkeitsgrad-Verteilung: Top-Teams gleichmäßig über die Saison verteilt?
  • Derby-Termine: Lokale Derbys nicht zu früh/spät?
  • Saisonstart/-ende: Keine unverhältnismäßige Häufung von schweren Spielen

Ausgabeformat

Strukturiere die Analyse wie folgt:

## Spielplan-Analyse: [Dateiname]

### Übersicht
- **Anzahl Spiele**: X
- **Anzahl Teams**: Y
- **Zeitraum**: DD.MM.YYYY - DD.MM.YYYY
- **Spieltage**: Z

### Fairness-Bewertung
| Team | Heim | Auswärts | Balance |
|------|------|----------|---------|
| ...  | ...  | ...      | ...     |

### Kritische Befunde
1. **[HOCH]** Team X hat 4 Auswärtsspiele in Folge (Runde 5-8)
2. **[MITTEL]** Ungleiche Wochenendverteilung für Team Y
3. **[NIEDRIG]** ...

### Serien-Übersicht
- Längste Heim-Serie: Team A (3 Spiele, Runde 2-4)
- Längste Auswärts-Serie: Team B (4 Spiele, Runde 5-8)

### Empfehlungen
1. Tausche Spiel in Runde X mit Runde Y für Team Z
2. ...

Analyse-Workflow

  1. Datei laden: JSON-Spielplan einlesen und validieren
  2. Grundmetriken berechnen: Teams, Spiele, Zeitraum
  3. Team-basierte Analyse: Für jedes Team Heim/Auswärts-Statistiken
  4. Serien erkennen: Aufeinanderfolgende Heim/Auswärts-Spiele finden
  5. Kritische Punkte identifizieren: Verstöße gegen Fairness-Regeln
  6. Empfehlungen formulieren: Konkrete Verbesserungsvorschläge

Best Practices

Schwellenwerte

Metrik Akzeptabel Warnung Kritisch
Heim/Auswärts-Differenz 0 1 >1
Heim-Serie 2 3 >3
Auswärts-Serie 2 3 >3
Tage zwischen Spielen 5-10 3-4 / 11-14 <3 / >14

Priorisierung

  1. Hoch: Auswärts-Serien >3, extreme Ungleichgewichte
  2. Mittel: Heim-Serien >3, ungleiche Wochenendverteilung
  3. Niedrig: Kleinere Abweichungen, Optimierungspotenzial

Beispiel-Prompts

Wenn der Benutzer /schedule-analyzer aufruft:

  • "Analysiere den Spielplan auf Fairness"
  • "Zeige mir alle Teams mit Auswärts-Serien von mehr als 2 Spielen"
  • "Welches Team hat die ungünstigste Spieltagsverteilung?"
  • "Vergleiche die Reisebelastung der Top-4-Teams"
  • "Gibt es englische Wochen im Spielplan?"

Integration mit league-ai

Dieser Skill ergänzt die bestehende LLMService-Analyse durch strukturierte, regelbasierte Auswertung. Die KI-gestützte Interpretation kann auf den berechneten Metriken aufbauen.

Spielplan-Dateien befinden sich in data/schedules/.