Work Chain

Scopri come eseguire in batch più issue in sequenza usando le work chain - crea catene, usa i suggestedPrompt per un'esecuzione precisa, traccia il progresso e gestisci la risoluzione sequenziale delle issue.

6 min letto
issueswork-chainsbatch-execution

Le work chain sono il sistema di esecuzione batch di CodeCourier per le issue. Invece di eseguire le issue una alla volta, puoi raggruppare più issue in una work chain ed eseguirle in sequenza - ogni issue viene risolta in ordine, e la successiva inizia solo dopo il completamento della precedente. Questo è ideale per correzioni correlate che devono essere applicate in una sequenza specifica, come una serie di patch di sicurezza o un insieme coordinato di task di refactoring.

Cosa sono le Work Chain?

Una work chain è un elenco ordinato di issue collegato a un singolo workflow e a una configurazione di esecuzione. Quando avvii una catena, CodeCourier elabora ogni issue in sequenza:

  1. La prima issue viene presa in carico e viene avviato un workflow run
  2. Il run viene eseguito in una sandbox, applicando modifiche al codice e creando una PR
  3. Una volta completato il run, viene elaborata la issue successiva della catena
  4. Questo continua finché tutte le issue non sono risolte o si verifica un errore

Esecuzione sequenziale

Le work chain eseguono le issue una alla volta, in ordine. Questo garantisce che le modifiche al codice delle issue precedenti vengano committate prima che inizino quelle successive, prevenendo conflitti di merge e garantendo che ogni correzione si basi sulla precedente.

Work Chain vs. Sprint Chain

Le work chain e le sprint chain sono concetti distinti in CodeCourier, sebbene condividano l’idea di esecuzione sequenziale:

Work ChainSprint Chain
InputIssue (scoperte o manuali)Workflow run da un piano di sprint
Fonte del promptIl suggestedPrompt o la description di ogni issuePrompt a livello di sprint e contesto di pianificazione
Caso d’usoCorrezione in batch di bug o miglioramenti scopertiEsecuzione di uno sprint pianificato multi-feature
Strategia PRUna PR per issueConfigurabile per sprint

Usa le work chain quando hai un insieme di issue distinte, risolvibili indipendentemente. Usa le sprint chain quando hai una sequenza pianificata di build di feature.

Come vengono selezionati i prompt

Il prompt passato a ogni workflow run in una catena è determinato dal campo suggestedPromptdella issue. Questo campo è tipicamente popolato dall’Issue Agent IA durante la scansione - contiene istruzioni di correzione specifiche e mirate scritte per quella esatta issue, anziché una descrizione generica.

L’ordine di risoluzione è il seguente:

  1. Se suggestedPromptè impostato e non vuoto, viene usato come prompt del run. Questo dà al workflow run istruzioni precise, elaborate dall’IA, su misura per la correzione specifica richiesta.
  2. Se suggestedPrompt non è impostato, la description della issue viene usata come fallback.

Perché suggestedPrompt è importante

Le issue scoperte da una Issue Session portano un suggestedPromptscritto dallo stesso agente IA che ha identificato il problema - sa esattamente cosa va corretto e come. Questo è il motivo per cui le issue scoperte dall’IA in una work chain tendono a produrre workflow run di qualità superiore rispetto alle issue create manualmente con solo una description. Quando crei issue manualmente per l’uso in work chain, prenditi il tempo per scrivere un suggestedPrompt preciso.

Creare una Work Chain

Per creare una work chain dalla pagina Issue:

  1. Seleziona le issue che vuoi includere usando le checkbox nell’elenco delle issue.
  2. Clicca sul pulsante Crea Work Chain.
  3. Configura le impostazioni della catena:
    • Workflow - Seleziona il blueprint di workflow per tutte le issue della catena
    • URL repository GitHub (opzionale) - Repository di destinazione per le PR
    • Nome branch (opzionale) - Branch di base per il lavoro
  4. Invia per creare la catena. Alle issue vengono assegnati un workChainId e un workChainOrder che riflettono la loro posizione nella sequenza.

L'ordine delle issue è importante

Disponi le issue nell’ordine in cui vuoi che vengano risolte. Se la issue B dipende da modifiche della issue A, assicurati che la issue A venga prima nella catena. Puoi riordinare le issue durante la creazione della catena.

Come funziona l’esecuzione

Una volta avviata una work chain, l’esecuzione segue questo schema per ogni issue:

  1. Il suggestedPrompt della issue (o la description se non è impostato alcun prompt) viene usato come prompt del run.
  2. Viene avviato un workflow run usando il workflow, l’URL GitHub e il branch configurati della catena.
  3. La issue viene collegata al run e il suo stato passa a running.
  4. Quando il run si completa, lo stato della issue viene aggiornato a completed o failed.
  5. Se il run ha avuto successo, la catena avanza alla issue successiva. Se è fallito, la catena si mette in pausa per la revisione.

Tracciamento dello stato della catena

Le work chain hanno un proprio stato di ciclo di vita:

StatoDescrizione
pendingLa catena è stata creata ma l’esecuzione non è ancora iniziata.
runningUna delle issue della catena è attualmente in elaborazione.
completedTutte le issue della catena sono state risolte con successo.
failedUna issue della catena è fallita. La catena è in pausa alla issue fallita.
cancelledLa catena è stata annullata manualmente dall’utente.

Campi di una Work Chain

CampoTipoDescrizione
titlestringNome visualizzato della work chain
descriptionstring (opzionale)Descrizione dello scopo della catena
issueIdsarray di IDElenco ordinato delle issue nella catena
workflowIdIDIl blueprint di workflow usato per tutti i run
githubRepoUrlstring (opzionale)URL del repository GitHub di destinazione
branchNamestring (opzionale)Branch di base per le modifiche al codice
statusenumStato attuale della catena: pending, running, completed, failed, cancelled

Monitorare il progresso della catena

Il progresso della work chain viene mostrato in tempo reale nella pagina Issue. Puoi vedere:

  • Lo stato complessivo della catena e la percentuale di completamento
  • Quale issue è attualmente in elaborazione
  • Gli stati individuali delle issue all’interno della catena
  • I link ai workflow run creati per ogni issue
  • Le pull request generate dalle issue completate

Se una issue nella catena fallisce, puoi esaminare l’errore, modificare il prompt suggerito della issue e riprovare la catena a partire dalla issue fallita.

Prossimi passi