Work Chains

Erfahren Sie, wie Sie mehrere Issues mit Work Chains sequenziell als Batch ausführen – Ketten erstellen, suggestedPrompts für präzise Ausführung nutzen, Fortschritt verfolgen und die sequenzielle Issue-Behebung verwalten.

6 min Lesezeit
issueswork-chainsbatch-execution

Work Chains sind das Batch-Ausführungssystem von CodeCourier für Issues. Anstatt Issues einzeln auszuführen, können Sie mehrere Issues zu einer Work Chain gruppieren und sequenziell ausführen - jedes Issue wird in der vorgegebenen Reihenfolge gelöst, und das nächste beginnt erst, wenn das vorherige abgeschlossen ist. Ideal für zusammengehörige Fixes, die in einer bestimmten Reihenfolge angewendet werden sollen, etwa eine Reihe von Security-Patches oder einen koordinierten Satz Refactoring-Aufgaben.

Was sind Work Chains?

Eine Work Chain ist eine geordnete Liste von Issues, die mit einem einzelnen Workflow und einer Ausführungskonfiguration verknüpft ist. Sobald Sie eine Chain starten, verarbeitet CodeCourier jedes Issue sequenziell:

  1. Das erste Issue wird aufgegriffen und ein Workflow-Run gestartet
  2. Der Run führt in einer Sandbox Code-Änderungen aus und erstellt einen PR
  3. Nach Abschluss des Runs wird das nächste Issue der Chain bearbeitet
  4. Dies wird fortgesetzt, bis alle Issues gelöst sind oder ein Fehler auftritt

Sequenzielle Ausführung

Work Chains führen Issues nacheinander in der vorgegebenen Reihenfolge aus. Dadurch werden Code-Änderungen aus früheren Issues committet, bevor spätere beginnen - das verhindert Merge- Konflikte und sorgt dafür, dass jeder Fix auf dem vorherigen aufbaut.

Work Chains vs. Sprint Chains

Work Chains und Sprint Chains sind in CodeCourier unterschiedliche Konzepte, auch wenn sie die Idee der sequenziellen Ausführung teilen:

Work ChainsSprint Chains
EingabeIssues (entdeckt oder manuell)Workflow-Runs aus einem Sprint-Plan
Prompt-QuellesuggestedPrompt oder description jedes IssuesSprint-Level-Prompt und Planungskontext
AnwendungsfallBatch-Beheben entdeckter Bugs oder VerbesserungenAusführung eines geplanten Multi-Feature-Sprints
PR-StrategieEin PR pro IssuePro Sprint konfigurierbar

Nutzen Sie Work Chains für eine Menge abgegrenzter, unabhängig behebbarer Issues. Nutzen Sie Sprint Chains für eine geplante Abfolge von Feature-Implementierungen.

Wie Prompts ausgewählt werden

Der Prompt, der an jeden Workflow-Run einer Chain übergeben wird, wird durch das Feld suggestedPrompt des Issues bestimmt. Dieses Feld wird in der Regel vom KI-Issue-Agent während des Scannings befüllt - es enthält konkrete, zielgerichtete Fix-Anweisungen, die für genau dieses Issue formuliert sind, statt einer generischen Beschreibung.

Die Auflösungsreihenfolge ist:

  1. Ist suggestedPrompt gesetzt und nicht leer, wird er als Run-Prompt verwendet. So erhält der Workflow-Run präzise, KI-formulierte Anweisungen, die genau auf den benötigten Fix zugeschnitten sind.
  2. Ist suggestedPrompt nicht gesetzt, wird die description des Issues als Fallback verwendet.

Warum suggestedPrompt wichtig ist

Issues, die von einer Issue Session entdeckt werden, tragen einen suggestedPrompt, den derselbe KI-Agent geschrieben hat, der das Problem identifiziert hat - er weiß genau, was zu beheben ist und wie. Deshalb liefern KI-entdeckte Issues in einer Work Chain tendenziell qualitativ hochwertigere Workflow-Runs als manuell erstellte Issues mit nur einer description. Wenn Sie Issues manuell für Work Chains anlegen, nehmen Sie sich Zeit, einen präzisen suggestedPrompt zu formulieren.

Eine Work Chain erstellen

So erstellen Sie eine Work Chain auf der Issues-Seite:

  1. Wählen Sie die einzubeziehenden Issues über die Checkboxen in der Issue-Liste aus.
  2. Klicken Sie auf die Schaltfläche Work Chain erstellen.
  3. Konfigurieren Sie die Chain-Einstellungen:
    • Workflow - Wählen Sie den Workflow-Blueprint für alle Issues der Chain
    • GitHub-Repository-URL (optional) - Ziel-Repository für PRs
    • Branch-Name (optional) - Basis-Branch für die Arbeit
  4. Bestätigen Sie die Erstellung der Chain. Den Issues werden ein workChainId und ein workChainOrder zugewiesen, die ihre Position in der Sequenz widerspiegeln.

Reihenfolge der Issues ist wichtig

Ordnen Sie Issues in der Reihenfolge an, in der sie behoben werden sollen. Wenn Issue B von Änderungen aus Issue A abhängt, muss Issue A in der Chain zuerst kommen. Sie können Issues während der Chain-Erstellung umsortieren.

Wie die Ausführung funktioniert

Sobald eine Work Chain gestartet wurde, folgt die Ausführung für jedes Issue diesem Muster:

  1. Der suggestedPrompt des Issues (oder die description, falls kein Prompt gesetzt ist) wird als Run-Prompt verwendet.
  2. Ein Workflow-Run wird mit dem konfigurierten Workflow, GitHub-URL und Branch der Chain gestartet.
  3. Das Issue wird mit dem Run verknüpft und sein Status wechselt zu running.
  4. Sobald der Run abgeschlossen ist, wird der Issue-Status auf completed oder failed gesetzt.
  5. Bei Erfolg geht die Chain zum nächsten Issue über. Bei Fehlschlag pausiert die Chain zur Überprüfung.

Status-Tracking der Chain

Work Chains haben einen eigenen Lebenszyklusstatus:

StatusBeschreibung
pendingDie Chain wurde erstellt, die Ausführung hat aber noch nicht begonnen.
runningEines der Issues der Chain wird gerade verarbeitet.
completedAlle Issues der Chain wurden erfolgreich behoben.
failedEin Issue in der Chain ist fehlgeschlagen. Die Chain ist beim fehlgeschlagenen Issue pausiert.
cancelledDie Chain wurde manuell vom Benutzer abgebrochen.

Felder einer Work Chain

FeldTypBeschreibung
titlestringAnzeigename der Work Chain
descriptionstring (optional)Beschreibung des Zwecks der Chain
issueIdsArray von IDsGeordnete Liste der Issues in der Chain
workflowIdIDDer für alle Runs verwendete Workflow-Blueprint
githubRepoUrlstring (optional)Ziel-GitHub-Repository-URL
branchNamestring (optional)Basis-Branch für Code-Änderungen
statusenumAktueller Chain-Status: pending, running, completed, failed, cancelled

Fortschritt der Chain überwachen

Der Fortschritt einer Work Chain wird in Echtzeit auf der Issues-Seite angezeigt. Sie sehen:

  • Den Gesamtstatus und den Fortschritt in Prozent
  • Welches Issue gerade bearbeitet wird
  • Individuelle Issue-Status innerhalb der Chain
  • Links zu den für jedes Issue erstellten Workflow-Runs
  • Aus abgeschlossenen Issues erzeugte Pull Requests

Schlägt ein Issue in der Chain fehl, können Sie den Fehler prüfen, den Suggested Prompt des Issues anpassen und die Chain ab dem fehlgeschlagenen Issue erneut starten.

Nächste Schritte