Issue/46 #47

Merged
pitfriedrich merged 2 commits from issue/46 into main 2026-07-28 20:53:43 +00:00
6 changed files with 53 additions and 13 deletions
Showing only changes of commit ed399cec6c - Show all commits
+1 -1
View File
@@ -4,7 +4,7 @@ description: Wählt das nächste zu bearbeitende Gitea-Issue und gibt nur die Ke
tools: mcp__gitea__list_issues, mcp__gitea__issue_read
model: haiku
---
Finde das nächste offene Issue im Repo <owner>/<repo> mit Label `ai-ready`
Finde das nächste offene Issue im Repo pitfriedrich/chart-app mit Label `ai-ready`
und NICHT mit Label `ai-wip` oder `ai-blocked`.
Priorisiere nach `prio/high` > `prio/medium` > `prio/low`, dann nach ältestem.
+26 -11
View File
@@ -5,7 +5,8 @@ allowed-tools: >
Bash, Edit, Read, Write, Grep, Glob,
mcp__gitea__issue_read, mcp__gitea__issue_write,
mcp__gitea__label_read,
mcp__gitea__pull_request_write
mcp__gitea__pull_request_write, mcp__gitea__pull_request_read,
mcp__gitea__actions_run_read
model: opus
---
Bearbeite Gitea-Issue #$1 im aktuellen Repo. Schritt für Schritt:
@@ -18,22 +19,36 @@ Name → ID für die gesamte Bearbeitung. Verwende ausschließlich `add_labels`
Niemals `replace_labels` oder `clear_labels` benutzen — das löscht alle
übrigen Labels des Issues (z.B. `prio/*`).
0. Vorbedingungen: Wenn Issue #$1 bereits `ai-wip` oder `ai-blocked` trägt,
abbrechen (kein Doppelstart). Prüfe `git status --porcelain` — ist der
Baum nicht sauber, abbrechen statt fremde Änderungen mitzucommitten.
1. Lies Issue #$1 (Titel, Beschreibung, Kommentare) über `issue_read`.
Notiere die aktuell gesetzten Labels, damit du sie nicht verlierst.
2. Hole die Label-Liste via `label_read`. Setze Label `ai-wip`
(`add_labels`), entferne `ai-ready` (`remove_label`).
3. Analysiere das Repo und finde die Ursache. Wenn der Scope zu groß/unklar
ist (siehe CLAUDE.md), brich ab: kommentiere das Issue mit einer kurzen
Begründung, setze `ai-blocked`, und beende ohne Codeänderung.
4. Implementiere den Fix. Halte den Diff minimal und fokussiert.
5. Führe die Tests aus (`<dein Testkommando>`). Bei Rot: bis zu 2x nachbessern.
Wenn danach immer noch rot → `ai-blocked`, Issue kommentieren, abbrechen.
6. Commit mit Message: `fix: <kurze Beschreibung> (#$1)`.
7. Push den aktuellen Branch zum Remote.
8. Öffne via `pull_request_write` einen PR gegen `main` (bzw. `develop`).
Die PR-Beschreibung MUSS `Closes #$1` enthalten.
9. Kommentiere am Issue mit dem PR-Link, setze Label `ai-review`
(`add_labels`) und entferne `ai-wip` (`remove_label`).
Begründung, setze `ai-blocked`, entferne `ai-wip`, und beende ohne
Codeänderung.
4. Lege den Branch an: `git checkout main && git pull --ff-only`, dann
`git checkout -b ai/issue-$1-<kurz-slug>` (Slug aus dem Issue-Titel,
kleingeschrieben, Bindestriche statt Leerzeichen).
5. Implementiere den Fix. Halte den Diff minimal und fokussiert.
6. Führe die Tests aus (`./mvnw test`). Bei Rot: bis zu 2x nachbessern.
Wenn danach immer noch rot → `ai-blocked`, `ai-wip` entfernen, Issue
kommentieren, abbrechen. Hinweis: `e2e/*PlaywrightTest` überspringt sich
selbst per JUnit-Assumption, wenn der Browser-Download fehlschlägt —
übersprungen zählt nicht als rot und ist kein Abbruchgrund.
7. Commit mit Message: `fix: <kurze Beschreibung> (#$1)`.
8. Push den Branch zum Remote.
9. Öffne via `pull_request_write` einen PR gegen `main`. Die
PR-Beschreibung MUSS `Closes #$1` enthalten.
10. Warte den CI-Lauf des PR-Branches ab (`actions_run_read`, PR läuft
automatisch gegen `.gitea/workflows/ci.yml`).
- Grün: kommentiere am Issue mit dem PR-Link, setze Label `ai-review`
(`add_labels`), entferne `ai-wip` (`remove_label`).
- Rot: setze `ai-blocked`, entferne `ai-wip`, kommentiere das Issue mit
einem kurzen Auszug aus dem CI-Log. Kein `ai-review`.
Wenn du in einem Schritt `ai-blocked` setzt, entferne ebenfalls `ai-wip`.
Existiert ein benötigtes Label nicht im Repo, kommentiere das am Issue statt
+23
View File
@@ -0,0 +1,23 @@
---
description: Wählt das nächste ai-ready Issue und arbeitet es via /fix-issue ab.
allowed-tools: >
Bash, Edit, Read, Write, Grep, Glob,
mcp__gitea__list_issues, mcp__gitea__issue_read, mcp__gitea__issue_write,
mcp__gitea__label_read,
mcp__gitea__pull_request_write, mcp__gitea__pull_request_read,
mcp__gitea__actions_run_read
model: opus
---
Arbeitet genau EIN Issue aus der Autofix-Warteschlange ab. Kein Loop
innerhalb dieses Commands — für wiederholte Läufe die `/loop`-Skill nutzen
(z.B. `/loop 30m /work-queue`).
1. Rufe den Agenten `next-issue` auf. Er liefert entweder `ISSUE=<nr>`
oder `ISSUE=NONE`.
2. `ISSUE=NONE` → melde „Queue leer, kein `ai-ready`-Issue offen" und
beende ohne weitere Aktion.
3. `ISSUE=<nr>` → führe exakt den Ablauf aus `.claude/commands/fix-issue.md`
für Issue `<nr>` aus (Schritte 010 dort, unverändert, inklusive
Label-Regeln, Branch-Schema, Testkommando und CI-Gate). Diese Datei
beschreibt den Ablauf nicht erneut — Quelle der Wahrheit ist
`fix-issue.md`.
+1
View File
@@ -13,3 +13,4 @@ node_modules/
src/main/frontend/generated/
vite.generated.ts
/src/main/bundles/prod.bundle
/src/main/bundles/dev.bundle
+2 -1
View File
@@ -52,4 +52,5 @@ UI copy/data (chart labels, notifications) is in German.
- Bei Unklarheit / Scope > ~200 Zeilen Diff: NICHT fixen,
stattdessen Issue kommentieren ("needs human") und Label `ai-blocked` setzen.
- PR-Beschreibung MUSS `Closes #<nr>` enthalten.
- Keine Änderungen an <kritische Pfade, z.B. build config, Migrations> ohne Freigabe.
- Keine Änderungen an kritischen Pfaden ohne Freigabe: `pom.xml`, `mvnw`/`mvnw.cmd`,
`.mvn/`, `.gitea/workflows/`, `.gitignore`.
Binary file not shown.