- .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
175 lines
4.7 KiB
Markdown
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
|