Panoramica delle Issue
Scopri come le Issue di CodeCourier ti aiutano a scoprire, tracciare e risolvere i problemi della tua codebase con sessioni di scansione basate su IA, answering session ed esecuzione batch tramite work chain.
Le Issue sono il sistema di CodeCourier per scoprire, tracciare e risolvere i problemi nella tua codebase. Che venga identificata da una sessione di scansione basata su IA o creata manualmente, ogni issue rappresenta un’unità di lavoro distinta - un bug da correggere, un miglioramento da apportare o un task da completare. Le issue possono essere eseguite singolarmente tramite workflow run oppure raggruppate in work chain per una risoluzione sequenziale.
Cosa sono le Issue?
Una issue è un record strutturato che cattura un problema o un task insieme a un contesto sufficiente perché un agente IA possa risolverlo. Ogni issue include un titolo, una descrizione, un livello di priorità e un suggestedPrompt opzionale che fornisce istruzioni specifiche per un agente IA. Le issue possono avere due origini:
- AI Discovery - Una issue session scansiona la tua codebase usando un agente IA in una sandbox cloud ed estrae automaticamente un elenco di issue.
- Creazione manuale- Crei le issue direttamente tramite l’interfaccia, specificando titolo, descrizione, priorità e istruzioni di correzione opzionali.
Ciclo di vita di una issue
Ogni issue attraversa un ciclo di vita semplice e lineare, tracciato in tempo reale:
| Stato | Descrizione |
|---|---|
new | La issue è stata creata (manualmente o estratta da una session) ed è pronta per essere lavorata. |
running | È stato avviato un workflow run per risolvere questa issue. La issue è collegata al run attivo. |
completed | Il run collegato è terminato con successo. La issue è risolta. |
failed | Il run collegato è fallito o non è stato trovato. La issue potrebbe richiedere attenzione manuale o un nuovo tentativo. |
Sincronizzazione automatica dello stato
Come le Issue si relazionano con gli altri concetti
Le issue si trovano all’intersezione di diversi sistemi di CodeCourier:
- Run- Quando esegui una issue, viene creato un workflow run collegato ad essa. Il run svolge il lavoro effettivo (modifiche al codice, creazione di PR) all’interno di una sandbox E2B.
- Workflow- Selezioni quale blueprint di workflow usare quando esegui una issue. Il workflow definisce la pipeline di agenti multi-step (ad esempio, Designer → Checker).
- Persona- Le persona configurate nel workflow determinano il comportamento dell’agente IA e il system prompt durante la risoluzione della issue.
- Work Chain- Più issue possono essere raggruppate in una work chain per un’esecuzione batch sequenziale, simile a una pipeline CI di correzioni.
- Issue Session - Sessioni di scansione basate su IA che analizzano la tua codebase e producono automaticamente un elenco di issue.
- Answering Session- Dopo il completamento di una Issue Session, una Answering Session risolve le domande e le assunzioni generate durante la scansione, raffinandole in un contesto utilizzabile prima che inizi l’implementazione.
Il flusso di scoperta e risoluzione delle Issue
Il ciclo di vita completo, dalla scoperta alla risoluzione, segue questo schema:
- Issue Session - Un agente IA Planner scansiona la tua codebase e genera un elenco strutturato di issue, insieme a domande e assunzioni su requisiti, scope e architettura.
- Answering Session- Un Answering Agent esamina le domande e le assunzioni generate, le raffina e produce risposte approvate che fungono da contesto per l’implementazione. Esamini ogni assunzione e la approvi, la rifiuti o la correggi.
- Risoluzione della issue- Le singole issue vengono eseguite tramite pipeline di workflow, usando le assunzioni approvate come contesto aggiuntivo. Le issue possono anche essere raggruppate in una work chain per un’esecuzione automatizzata sequenziale.
Saltare la Answering Session
Quando usare le Issue rispetto ai Workflow
| Usa le Issue quando... | Usa i Workflow direttamente quando... |
|---|---|
| Vuoi che l’IA scopra i problemi nella tua codebase | Sai già esattamente cosa costruire |
| Hai più bug o task distinti da risolvere | Hai un singolo task ben definito |
| Vuoi eseguire correzioni in batch, in sequenza | Vuoi un run singolo con un prompt specifico |
| Vuoi tracciare lo stato di risoluzione per ogni problema | Devi tracciare solo un singolo run |
| Vuoi raffinare i requisiti prima dell’implementazione | I requisiti sono già completamente specificati |
Funzionalità chiave
- Scoperta basata su IA- Le issue session usano una sandbox cloud per scansionare l’intera codebase e far emergere bug, vulnerabilità di sicurezza, problemi di performance e opportunità di miglioramento.
- Answering Session- Un flusso strutturato di domande e risposte guidato dall’IA che risolve domande e convalida assunzioni provenienti dalle issue scanning session prima che inizi qualsiasi implementazione, garantendo che l’IA disponga del contesto giusto per produrre correzioni accurate.
- Organizzazione basata sulla priorità - Ogni issue ha un livello di priorità (low, medium, high, critical) così puoi concentrarti su ciò che conta di più.
- Prompt suggeriti - Ogni issue può avere un
suggestedPromptgenerato dall’IA con istruzioni di correzione specifiche, passato direttamente al workflow run quando la issue viene eseguita. - Esecuzione tramite Work Chain - Raggruppa le issue ed eseguile in sequenza, con ogni issue risolta in ordine prima che inizi la successiva.
- Creazione automatica di PR - Quando un run di issue si completa, viene creata una pull request sul repository GitHub configurato.
- Tracciamento in tempo reale - Gli stati delle issue si aggiornano in tempo reale tramite query reattive, così vedi sempre lo stato attuale di ogni issue.
- Tracciamento del progresso di session - Le issue session tracciano il progresso tramite i contatori
currentIterationemaxIterations, dandoti visibilità su quanto l’agente è avanzato nel processo di scansione.
Campi dati di una issue
| Campo | Tipo | Descrizione |
|---|---|---|
title | string (obbligatorio) | Breve riepilogo della issue |
description | string (obbligatorio) | Spiegazione dettagliata del problema o del task |
status | enum | Stato attuale del ciclo di vita: new, running, completed, failed |
priority | enum | Livello di importanza: low, medium, high, critical |
suggestedPrompt | string (opzionale) | Istruzioni di correzione generate dall’IA o fornite dall’utente, usate come prompt del run quando questa issue viene eseguita |
runId | ID (opzionale) | Riferimento al workflow run collegato |
sessionId | ID (opzionale) | Riferimento alla issue session che ha scoperto questa issue |
workChainId | ID (opzionale) | Riferimento alla work chain a cui appartiene questa issue |
workChainOrder | number (opzionale) | Posizione di questa issue all’interno della sua work chain |