mitai-jinkendo/.claude/commands/check-issues.md
Lars 7940dc7560 docs: Struktur .claude/docs versionieren, working/, Gitea-Index, Regeln
- .gitignore: .claude/docs, rules, commands tracken; settings.local weiter ignorieren
- DOCUMENTATION.md: verbindliche Ablage functional/technical/working/issues
- .claude/README.md: Agent-Einstieg; GITEA_ISSUES_INDEX aus MCP (Stand 2026-04-08)
- Arbeitspapiere von docs/ nach .claude/docs/working/ verschoben
- docs/MEMBERSHIP_SYSTEM.md als Stub; kanonisch technical/MEMBERSHIP_SYSTEM.md
- CLAUDE.md Pflichtlektüre und Links angepasst; docs/README.md vereinfacht

Made-with: Cursor
2026-04-08 13:01:49 +02:00

175 lines
4.7 KiB
Markdown

# 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