From 5edd84046dfebd880ba32a696bf1018db2459cd1 Mon Sep 17 00:00:00 2001 From: Gulum Date: Mon, 22 Jun 2026 21:12:03 +0200 Subject: [PATCH] =?UTF-8?q?docs(skill):=20Triage-Subagenten=20schlie=C3=9F?= =?UTF-8?q?en=20Tickets=20terminal=20ab=20(Changelog/R=C3=BCckfrage)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Skill präzisiert: jeder bearbeitende Subagent schließt seinen Vorgang selbst ab — Rückfrage ordentlich stellen (eine konkrete Frage, einfache Sprache, Kontext → NeedsInfo) ODER nach verifiziertem + eingespieltem Fix mit verständlichem fixNote-Changelog schließen (Resolved). Abschluss-Regel ergänzt: kein Open/Answered-Ticket bleibt offen liegen — Endzustand immer NeedsInfo oder Resolved. Co-Authored-By: Claude Opus 4.8 --- .claude/skills/ticket-triage/SKILL.md | 43 ++++++++++++++++++++------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/.claude/skills/ticket-triage/SKILL.md b/.claude/skills/ticket-triage/SKILL.md index d396abe..84aa9cb 100644 --- a/.claude/skills/ticket-triage/SKILL.md +++ b/.claude/skills/ticket-triage/SKILL.md @@ -58,17 +58,27 @@ Jeder Triage-Agent: 4. liefert strukturiert (StructuredOutput-Schema): `ticketId, title, category, rootCause, recommendation, fixLayer (import-data|import-logic|backend|frontend| genetics-engine), affectedAreas[], overlapKey (Cluster-Slug), effort (S/M/L), - confidence, needsUserInfo`. + confidence, needsUserInfo`, +5. **terminale Aktion am Ticket selbst** (jeder Triage-Agent schließt seinen + Vorgang ab, lässt nichts offen liegen): braucht es Infos von der Züchterin → + **Rückfrage ordentlich stellen** (siehe 3); ist die Ursache rein eine Daten-/ + Code-Korrektur ohne Rückfrage → an den passenden Umsetzungs-Cluster (4) + übergeben (NICHT selbst querschnittlich Dateien ändern). Sammle alle Ergebnisse in **eine Datei** `docs/ticket-triage.md` (Cluster-/ Überschneidungs-Matrix + offene Rückfragen) — token-schonend per Python aus dem Workflow-Ergebnis generieren, nicht 70 KB in den Kontext laden. -### 3. Rückfragen an die Tickets hängen -Für jedes Ticket mit `needsUserInfo`: -`PUT /feedback/{id}` mit `{"question": ""}` → Status -wird automatisch `NeedsInfo`. Die Züchterin beantwortet es in der App; beim -nächsten Lauf taucht es als `Answered` auf und wird wieder aufgegriffen. +### 3. Rückfragen ordentlich stellen (durch den Triage-Agenten) +Wenn ein Ticket Infos der Züchterin braucht, hängt der Triage-Agent die Rückfrage +**direkt selbst** ans Ticket: +`PUT /feedback/{id}` mit `{"question": ""}` → Status wird `NeedsInfo`. +Anforderungen an eine gute Rückfrage: **eine konkrete Frage** (kein Sammelsurium), +in **einfacher, freundlicher Sprache** für die Züchterin (keine Code-/Fachbegriffe), +mit dem nötigen Kontext (welches Tier/welcher Wurf, was unklar ist), und mit einer +klaren Handlungsaufforderung (z. B. „Wie heißt die Mutter von X?"). Die Züchterin +beantwortet es in der App; beim nächsten Lauf erscheint es als `Answered` und wird +wieder aufgegriffen. ### 4. Umsetzen — gebündelt nach Cluster (Überschneidungen vermeiden!) Die Triage-Matrix zeigt, welche Tickets sich Dateien teilen. Bündele nach @@ -88,13 +98,24 @@ Subagenten committen NICHT und re-ingesten NICHT — das koordiniert der Haupt-L dann `POST /import/ingest-resolved` (wischt + lädt neu). Danach betroffene Tickets gegen die API verifizieren. -### 6. Ticket schließen — MIT Changelog -Beim Schließen IMMER dokumentieren, **was gefixt wurde**, in einfacher Sprache für -die Züchterin: +### 6. Ticket schließen — MIT Changelog (durch den bearbeitenden Subagenten) +Der Subagent/Cluster, der den Fix umgesetzt hat, schließt **seine** Tickets selbst +ab — aber erst **nachdem der Fix verifiziert und (bei Daten-/Import-Fixes) live +eingespielt ist** (Schritt 5), damit „erledigt" auch stimmt: `PUT /feedback/{id}` mit `{"status": "Resolved", "fixNote": ""}`. -Beispiel: „Die Mutter von Yuki wurde auf Izumi korrigiert (vorher fälschlich -Benjiro). Bitte Stammbaum neu laden." — keine Code-/Fachbegriffe. +Die `fixNote` ist ein **Changelog für die Züchterin**: einfache, freundliche +Sprache, keine Code-/Fachbegriffe, sagt was korrigiert wurde und ggf. was sie tun +soll. Beispiel: „Die Mutter von Yuki wurde auf Izumi korrigiert (vorher fälschlich +Benjiro). Bitte den Stammbaum neu laden." + +### Abschluss-Regel (wichtig) +**Kein bearbeitetes Ticket bleibt offen liegen.** Jedes `Open`/`Answered`-Ticket +endet nach einem Lauf in genau einem Endzustand: +- **`NeedsInfo`** — Rückfrage wurde ordentlich gestellt (Info fehlt), oder +- **`Resolved`** — Fix umgesetzt + verifiziert, mit `fixNote`-Changelog. +Kann ein Ticket weder gefixt noch sinnvoll erfragt werden, stelle trotzdem eine +klärende Rückfrage (NeedsInfo) statt es offen zu lassen. ## Verifikation vor „fertig" - Code-Fixes: `npx tsc --noEmit`, `npx vitest run`, betroffene `npx playwright test`,