new skills
This commit is contained in:
parent
334dd87994
commit
a87d6da87f
66
skills/create-todo/SKILL.md
Normal file
66
skills/create-todo/SKILL.md
Normal file
@ -0,0 +1,66 @@
|
||||
---
|
||||
name: create-todo
|
||||
description: Use when creating structured todo files for any project. Reads CLAUDE.md for project context, identifies affected files via codebase search, and writes todos to the todos/ folder.
|
||||
argument-hint: <description of the todo>
|
||||
allowed-tools: Read, Write, Edit, Glob, Grep
|
||||
---
|
||||
|
||||
# Create Todo
|
||||
|
||||
Creates structured todo files in the `todos/` directory of the current project.
|
||||
|
||||
## Workflow
|
||||
|
||||
### Step 1: Gather Project Context
|
||||
|
||||
1. Read the project's `CLAUDE.md` to understand tech stack, architecture, and conventions
|
||||
2. Parse the user's request to identify the affected area
|
||||
3. Use Glob/Grep to find relevant files in the codebase if affected files are not obvious
|
||||
|
||||
### Step 2: Choose Filename
|
||||
|
||||
Format: `kebab-case-description.md` in the `todos/` directory.
|
||||
|
||||
Create `todos/` if it doesn't exist.
|
||||
|
||||
### Step 3: Write Todo
|
||||
|
||||
Use this template:
|
||||
|
||||
```markdown
|
||||
# [Short, precise title]
|
||||
|
||||
**Status:** Open
|
||||
**Priority:** High | Medium | Low
|
||||
**Area:** [module/app/component name]
|
||||
|
||||
## Description
|
||||
|
||||
[What needs to be done - clear and concise]
|
||||
|
||||
## Requirements
|
||||
|
||||
1. [Concrete requirement]
|
||||
2. [Concrete requirement]
|
||||
|
||||
## Affected Files
|
||||
|
||||
- `path/to/file` - [What to change]
|
||||
|
||||
## Technical Notes
|
||||
|
||||
[Relevant patterns, reusable functions, conventions from CLAUDE.md]
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] Criterion 1
|
||||
- [ ] Criterion 2
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
1. **Be specific** - "Add column X to table Y" not "Improve table"
|
||||
2. **Name files** - Always list concrete paths from codebase search
|
||||
3. **Reference patterns** - Point to similar existing solutions found in the code
|
||||
4. **No implementation** - Describe WHAT, not HOW in detail
|
||||
5. **Use project language** - Match the language of CLAUDE.md and user request (German/English)
|
||||
209
skills/schedule-analyzer/SKILL.md
Normal file
209
skills/schedule-analyzer/SKILL.md
Normal file
@ -0,0 +1,209 @@
|
||||
---
|
||||
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:
|
||||
|
||||
```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
|
||||
|
||||
```python
|
||||
# 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
|
||||
|
||||
```python
|
||||
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:
|
||||
|
||||
```markdown
|
||||
## 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/`.
|
||||
Loading…
x
Reference in New Issue
Block a user