# Check Issues

Prüfe offene Gitea Issues und schlage Fixes vor.

## Automatische Ausführung

Dieser Skill wird bei jeder Session automatisch ausgeführt und zeigt:
- Anzahl offener Issues
- High-Priority Issues (Bugs + Features)
- Vorschlag welches Issue als nächstes angegangen werden sollte

## Workflow

### 1. Offene Issues abrufen

```bash
curl -s -H "Authorization: token $GITEA_TOKEN" \
  "http://192.168.2.144:3000/api/v1/repos/Lars/mitai-jinkendo/issues?state=open&labels=develop" \
  | python3 -c "
import sys, json
issues = json.load(sys.stdin)
print(f'📋 {len(issues)} offene Issues in develop:\n')
for issue in issues:
    labels = {l['name'] for l in issue['labels']}
    priority = 'high' if 'high' in labels else 'low' if 'low' in labels else 'medium'
    itype = 'bug' if 'bug' in labels else 'feature' if 'feature' in labels else 'other'
    icon = '🐛' if itype == 'bug' else '✨'
    prio_icon = '🔥' if priority == 'high' else '💤' if priority == 'low' else '📌'
    print(f\"{icon} {prio_icon} Issue #{issue['number']}: {issue['title']}\")
    print(f\"   {issue['html_url']}\n\")
"
```

### 2. Issues nach Priorität sortieren

**High Priority Issues (Bugs + Features):**
- Bugs mit Label `bug` + `high`
- Features mit Label `feature` + `high`

**Low Priority:**
- Features mit Label `low`

### 3. Issue-Details anzeigen

```bash
# Für ein spezifisches Issue (z.B. #13):
curl -s -H "Authorization: token $GITEA_TOKEN" \
  http://192.168.2.144:3000/api/v1/repos/Lars/mitai-jinkendo/issues/13 \
  | jq -r '.body'
```

### 4. Fix vorschlagen

**Frage den User:**
- "Soll ich Issue #X angehen?"
- Zeige Beschreibung + betroffene Dateien
- Schätze Aufwand (Quick Win < 30min, Medium < 2h, Large > 2h)

### 5. Bei Fix: Issue referenzieren im Commit

**WICHTIG:** Verwende dieses Format für automatisches Issue-Schließen:

```bash
git commit -m "fix: resolve training type creation error (#13)

- Fixed POST endpoint validation
- Improved frontend error handling

Closes #13"
```

**Gitea Keywords die Issues automatisch schließen:**
- `Closes #123`
- `Fixes #123`
- `Resolves #123`

Das Issue wird automatisch geschlossen wenn der Commit in den main Branch gemerged wird!

### 6. Issue manuell schließen (falls nötig)

```bash
curl -X PATCH -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"state":"closed"}' \
  http://192.168.2.144:3000/api/v1/repos/Lars/mitai-jinkendo/issues/13
```

## Issue-Wartung (Standard-Task)

**WICHTIG:** Bei jeder Session Issue-Liste pflegen:

### 1. Veraltete Issues schließen

Wenn Features implementiert wurden, zugehörige Issues schließen:

```bash
# Issue schließen
curl -s -X PATCH -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"state":"closed"}' \
  "http://192.168.2.144:3000/api/v1/repos/Lars/mitai-jinkendo/issues/17" > /dev/null

# Kommentar mit Commit-Referenz hinzufügen
curl -s -X POST -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"body":"✅ Erledigt in v9d Phase 2d. Commits: 548a5a4, bf87e03"}' \
  "http://192.168.2.144:3000/api/v1/repos/Lars/mitai-jinkendo/issues/17/comments" > /dev/null
```

### 2. Duplikate entfernen

```bash
# Duplikat schließen
curl -s -X PATCH -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"state":"closed"}' \
  "http://192.168.2.144:3000/api/v1/repos/Lars/mitai-jinkendo/issues/19" > /dev/null

# Duplikat-Kommentar
curl -s -X POST -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"body":"Duplikat von #21"}' \
  "http://192.168.2.144:3000/api/v1/repos/Lars/mitai-jinkendo/issues/19/comments" > /dev/null
```

### 3. Issue-Prioritäten aktualisieren

```bash
# Label ändern (z.B. von medium zu high)
curl -s -X PUT -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"labels":[2,3,5]}' \
  "http://192.168.2.144:3000/api/v1/repos/Lars/mitai-jinkendo/issues/15/labels"
```

**Checkliste nach jeder Implementation:**
- [ ] Zugehörige Issues mit Commit-Hash kommentieren
- [ ] Issues auf `closed` setzen
- [ ] Duplikate entfernen
- [ ] Neue Issues bei Bedarf erstellen

## Automatisierung (Hook)

**Optional:** Hook in `.claude/settings.json` für Session-Start:

```json
{
  "hooks": {
    "session-start": "check-issues"
  }
}
```

→ Bei jeder neuen Session werden automatisch offene Issues geprüft.

## Issue erstellen (neue Bugs/Features)

```bash
curl -s -X POST -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "[BUG-XXX] Titel",
    "body": "Beschreibung",
    "labels": [1, 3, 5]
  }' \
  http://192.168.2.144:3000/api/v1/repos/Lars/mitai-jinkendo/issues
```

**Label-IDs:**
- 1 = bug
- 2 = feature
- 3 = high
- 4 = low
- 5 = develop
