Il tuo primo progetto

Guida passo passo per creare il tuo primo progetto CodeCourier, configurare le impostazioni, impostare contesti e asset, aggiungere membri del team, configurare personas ed eseguire un workflow end-to-end.

12 min letto
first-projecttutorialproject-setup

Questa guida ti accompagna nella creazione di un progetto CodeCourier completamente configurato, da zero. Alla fine avrai un progetto con chiavi API, contesti, asset, session configuration, membri del team, personas, un workflow e un run completato con learning estratti. Ogni sezione si basa sulla precedente, quindi seguile nell’ordine.

Creare il progetto

1

Vai alla creazione del progetto

Dopo l’accesso, arrivi alla schermata di selezione del progetto. Se sei già all’interno di un progetto, clicca sul nome del tuo progetto nell’header della sidebar per tornare al selettore di progetto. Clicca su New Project.

2

Inserisci i dettagli del progetto

Fornisci le seguenti informazioni:

  • Nome del progetto- Un nome leggibile per il tuo progetto, ad es., “E-commerce Backend” o “Design System”
  • URL del repository GitHub - (Opzionale) L’URL HTTPS del repository su cui vuoi che gli agenti lavorino, ad es., https://github.com/your-org/your-repo. Questo abilita la creazione automatica dei branch e la generazione di PR.

Lo slug del progetto viene generato automaticamente dal nome. Ad esempio, “E-commerce Backend” diventa e-commerce-backend. Questo slug viene usato in tutti gli URL del progetto.

3

Conferma la creazione

Clicca su Create Project. CodeCourier crea il record del progetto, ti imposta come owner, inizializza le impostazioni del progetto con i valori predefiniti e ti reindirizza al dashboard del progetto. Il dashboard mostra inizialmente contatori azzerati per sandbox, run, workflow e membri.

Configurare le impostazioni del progetto

Vai in Project Settings (icona della chiave inglese nella sidebar). La pagina delle impostazioni è organizzata in diverse schede.

Chiavi API

La scheda API Keys è il punto in cui configuri le credenziali dei servizi esterni di cui il tuo progetto ha bisogno. Aggiungi chiavi per ogni provider:

  • E2B - Obbligatorio per il provisioning delle sandbox. Ottienila dal tuo dashboard E2B.
  • Anthropic - Obbligatorio se usi Claude Code come strumento CLI. È la chiave API Anthropic standard.
  • Anthropic Token - Un token alternativo in stile OAuth per l’accesso all’API Anthropic.
  • OpenRouter - Obbligatorio se usi OpenRouter per il routing dei modelli e l’accesso a più provider tramite un’unica chiave.
  • OpenAI - Obbligatorio se usi strumenti CLI alimentati da OpenAI come Codex.
  • GitHub - Obbligatorio per la creazione dei branch e la generazione di PR. Usa un personal access token con lo scope repo.

Chiavi a livello di progetto

Le chiavi API sono configurate per progetto, non globalmente. Se crei più progetti, ognuno ha bisogno della propria configurazione di chiavi. Questo garantisce l’isolamento tra i progetti e consente a membri diversi del team di contribuire chiavi a progetti diversi.

Impostazioni generali

La scheda delle impostazioni generali ti permette di configurare i comportamenti predefiniti:

  • System prompt della sandbox- Testo aggiunto a ogni prompt di agente in questo progetto. Usalo per convenzioni a livello di progetto come “Usa sempre la modalità strict di TypeScript” o “Segui il nostro formato di messaggio di commit”.
  • CLAUDE.md - Contenuto markdown scritto come file CLAUDE.md nella sandbox. Viene letto automaticamente da Claude Code e funge da istruzioni persistenti per ogni sessione.

Variabili d’ambiente

Definisci variabili d’ambiente iniettate in ogni sandbox del progetto. Ogni variabile ha una chiave, un valore e un flag secret. Le variabili secret vengono mascherate nell’interfaccia e trattate con particolare cura durante la trasmissione.

Esempio di variabili d'ambiente
NODE_ENV=development
DATABASE_URL=postgresql://localhost:5432/mydb  (marked as secret)
NEXT_PUBLIC_API_URL=https://api.example.com

Configurazione Git

Imposta il nome e l’e-mail dell’autore usati per i commit fatti dagli agenti all’interno delle sandbox. Questo mantiene i commit degli agenti identificabili nella tua cronologia Git:

Esempio di config git
Git Commit Name: CodeCourier Bot
Git Commit Email: bot@codecourier.dev

Impostare i contesti

I contesti sono documenti di istruzioni versionati legati a specifici tipi di sessione. Vai in Contexts a /p/[your-project]/context per gestirli.

1

Crea un contesto di sessione di issue

Clicca su New Context e seleziona il tipo di sessione issue. Scrivi il system prompt che l’agente di scan delle issue deve ricevere, includendo le priorità del tuo progetto, le aree di attenzione e qualsiasi pattern che deve cercare:

Esempio di contesto di sessione di issue
You are scanning a TypeScript/Next.js codebase for issues.
Focus on:
- Type safety violations and implicit any usage
- Missing error boundaries and unhandled promise rejections
- N+1 query patterns in data fetching
- Accessibility regressions in UI components
- Missing or inadequate test coverage

Prioritize issues that would affect production stability.
Generate specific, actionable titles and descriptions.

Salva il contesto. CodeCourier crea la versione 1 di questo documento e lo associa alle sessioni di issue del tuo progetto.

2

Crea un contesto di sessione di learning

Crea un altro contesto per il tipo di sessione learning. Questo contesto istruisce l’agente di estrazione dei learning su come identificare e categorizzare i learning dai run completati:

Esempio di contesto di sessione di learning
You are extracting learnings from an AI agent's completed coding session.
Focus on:
- Mistakes the agent made that were corrected
- Project-specific patterns or conventions that emerged
- Tool usage gotchas specific to this codebase
- Architectural decisions with rationale

Categorize each learning as: preference, pattern, gotcha, tool, or architecture.
Only extract learnings that would be actionable in future sessions.
3

Crea facoltativamente contesti per altri tipi di sessione

Ripeti per qualsiasi altro tipo di sessione che usi: merging, answering, evaluating e judging. Ogni tipo di contesto è indipendente; puoi aggiungerli man mano che introduci ogni capacità nel tuo workflow.

Versionamento dei contesti

Quando devi aggiornare un contesto, modificalo e salvalo - la versione precedente viene conservata. Questo ti permette di sperimentare con modifiche alle istruzioni senza perdere definitivamente ciò che funzionava in precedenza.

Impostare gli asset

Gli asset (skill, command e script) estendono ciò che gli agenti possono fare all’interno della sandbox. Vai nella sezione Assets delle impostazioni del tuo progetto per crearli.

1

Crea uno skill

Clicca su New Skill. Dai allo skill un nome (ad es., “Project Conventions”) e aggiungi uno o più file. Ogni file ha un nome e un contenuto:

Esempio di file skill: conventions.md
# Project Conventions

## TypeScript
- All files must use strict mode
- Never use `any` - use `unknown` and narrow it
- Prefer interface over type for object shapes

## Database (Convex)
- Never call .collect() on large tables
- Use paginate() for lists longer than 100 items
- Batch writes use ctx.scheduler.runAfter

## Testing
- All new functions need a Vitest unit test
- Integration tests go in __tests__/integration/
- Use MSW for HTTP mocking, never mock fetch directly

Salva lo skill. Ora è disponibile per essere collegato a personas e session configuration.

2

Crea command utili

Crea command per le tue operazioni di agente più comuni. Ad esempio:

  • Name: run-tests - Expression: npx vitest run --reporter=verbose
  • Name: typecheck - Expression: npx tsc --noEmit
  • Name: lint - Expression: npx eslint . --ext .ts,.tsx

I command danno agli agenti alias stabili e specifici del progetto che rimangono coerenti anche se la configurazione del tuo tooling cambia.

3

Crea facoltativamente script

Gli script sono opzionali ma utili per l’automazione prima o dopo il run. Ad esempio, uno script pre-run potrebbe clonare il repository verso uno stato noto, oppure uno script post-run potrebbe eseguire un’ultima passata di lint e committare i problemi corretti automaticamente.

Configurare le Session Configuration

Le Session Configuration ti permettono di legare contesti e asset a ogni tipo di sessione. Queste impostazioni sono accessibili da Project Settings sotto la scheda dedicata a ogni tipo di sessione: Issue Session, Learning Session, Merge Session, Answering Session, Evaluator Session e Judge Session.

1

Configura la Issue Session

Vai in Issue Session in Project Settings. Qui puoi:

  • Legare un contesto - Seleziona il contesto di issue che hai creato in precedenza. Questo documento di contesto verrà iniettato automaticamente in ogni sessione di scan delle issue.
  • Selezionare skill- Scegli quali package di skill sono disponibili nelle sessioni di issue. Il tuo skill “Project Conventions” è una buona selezione predefinita.
  • Selezionare command - Aggiungi i tuoi commandrun-tests e typecheck in modo che l’agente di scan possa validare i propri risultati.
  • Impostare il prompt della sessione di issue - Un prompt di testo libero aggiuntivo anteposto al prompt di scoperta dell’utente.
2

Configura la Learning Session

Apri la scheda di configurazione Learning Session. Lega il tuo documento di contesto di learning e seleziona eventuali skill o command rilevanti per l’estrazione dei learning. L’agente di learning userà queste risorse quando analizza le sessioni completate.

3

Configura altri tipi di sessione secondo necessità

Ripeti il processo di legame per le sessioni Merge, Answering, Evaluator e Judge man mano che adotti quelle capacità. Ogni tipo di sessione è pienamente indipendente - puoi configurarle in modo incrementale man mano che il tuo workflow matura.

Aggiungere membri del team

1

Vai ai membri

Clicca su Members nella sidebar sotto la sezione Insights. Questa pagina mostra tutti i membri attuali e gli inviti in attesa.

2

Invita un membro del team

Clicca su Invite Member. Inserisci l’indirizzo e-mail della persona che vuoi invitare e seleziona il suo ruolo:

  • Admin - Può gestire tutte le risorse e le impostazioni del progetto, invitare altri membri
  • Member - Può creare e gestire le proprie sandbox, run e workflow

L’invito viene creato immediatamente. La persona invitata vedrà un invito in attesa quando accede a CodeCourier. Una volta che accetta, il suo stato passa da “pending” a “accepted” e ottiene l’accesso a tutte le risorse del progetto in base al suo ruolo.

3

Gestisci i membri esistenti

Dalla pagina dei membri puoi cambiare il ruolo di un membro o rimuoverlo dal progetto. L’owner del progetto non può essere rimosso ma può trasferire la proprietà rendendo owner un altro membro.

Limiti dei membri

Il numero di membri del team viene tracciato nei contatori del progetto. La pagina dei membri e il dashboard mostrano entrambi il numero attuale di membri attivi e inviti in attesa.

Impostare le personas

Le personas definiscono come si comportano i tuoi agenti IA. Impostare alcune personas chiave prima di eseguire i workflow garantisce una qualità coerente. A ogni persona possono essere assegnati skill, command e script specifici tra gli asset che hai creato in precedenza.

1

Vai alle personas

Clicca su Personas nella sidebar. Questa pagina mostra tutte le personas configurate per il progetto.

2

Crea una persona designer

Clicca su New Persona e configurala:

  • Name: “Senior Developer”
  • Type: Designer
  • Model: Scegli il tuo modello preferito (ad es., claude-sonnet-4-6 per la velocità o claude-opus-4-6 per la qualità)
  • Thinking effort: Medium o High
  • Instructions:
Esempio di istruzioni per designer
You are a senior full-stack developer. Follow these principles:
- Write clean, well-documented TypeScript code
- Prefer composition over inheritance
- Write tests for all new functions
- Use existing project patterns and conventions
- Keep changes focused and minimal
  • Skills: Seleziona il tuo skill “Project Conventions” e qualsiasi altro skill rilevante
  • Commands: Abilita run-tests, typecheck e lint
  • Learnings: Abilita per includere i learning del progetto nel contesto
3

Crea una persona checker

Crea una seconda persona per la code review:

  • Name: “Code Reviewer”
  • Type: Checker
  • Model: Usa un modello potente per la review ( claude-opus-4-6 consigliato)
  • Thinking effort: High
  • Instructions:
Esempio di istruzioni per checker
You are a thorough code reviewer. Evaluate the changes against:
- Correctness: Does the code do what was asked?
- Type safety: Are there any TypeScript errors or any-typed values?
- Edge cases: Are error states and boundary conditions handled?
- Testing: Are tests present and meaningful?
- Style: Does the code follow project conventions?

Return pass: true only if ALL criteria are met.
If rejecting, provide specific, actionable feedback.
4

Crea facoltativamente personas specializzate

Valuta la creazione di personas aggiuntive per ruoli specifici:

  • Investigator - Per task di ricerca che esplorano le codebase prima di apportare modifiche
  • Planner - Per sessioni di issue e analisi della codebase con principi architetturali specifici
  • Reviewer - Focalizzata su leggibilità, manutenibilità e accuratezza della code review
  • Deep-dive - Per task di analisi approfondita che richiedono ragionamento esteso

Creare una sandbox

Anche se i workflow creano sandbox automaticamente, puoi anche creare sandbox autonome per l’esplorazione interattiva.

1

Crea una sandbox autonoma

Vai in Sandboxes nella sidebar e clicca su New Sandbox. Configura il sandbox template, il timeout e le risorse. Dagli un nome descrittivo come “Explore codebase” e fornisci un prompt iniziale.

Le sandbox autonome sono utili per task una tantum: indagare un bug, prototipare una soluzione o testare una modifica di configurazione prima di codificarla in un workflow.

2

Interagisci con la sandbox

Una volta che la sandbox è in esecuzione, puoi vedere lo stream di messaggi dell’agente in tempo reale. La pagina di dettaglio mostra l’intera cronologia della conversazione, lo stato della sandbox e qualsiasi stato di PR o di estrazione dei learning.

Eseguire un workflow end-to-end

1

Crea un workflow usando le tue personas

Vai in Workflows e crea un nuovo workflow Persona Pipeline:

  • Name: “Full Review Pipeline”
  • Type: Persona Pipeline
  • Steps: Aggiungi la tua persona “Senior Developer” come primo step, poi la tua persona “Code Reviewer” come secondo step. Configura facoltativamente un loop tra loro con un numero massimo di iterazioni.
  • Template: Seleziona il sandbox template corrispondente alla tua preferenza di strumento CLI
  • Timeout: 30 minuti per step
2

Avvia un run

Clicca su Run sul tuo nuovo workflow. Inserisci un prompt che descriva la feature o il fix che vuoi:

Esempio di prompt
Add a reusable DateRangePicker component to
components/ui/date-range-picker.tsx. It should:

1. Accept startDate, endDate, and onChange props
2. Use the existing react-day-picker dependency
3. Support both controlled and uncontrolled modes
4. Include proper TypeScript types
5. Follow the existing shadcn/ui component patterns
6. Add a Storybook story file

Specifica un nome di branch (ad es., feat/date-range-picker) e conferma l’URL del repository GitHub se necessario. Clicca su Start Run.

3

Monitora e rivedi

Osserva l’avanzamento del run dalla pagina di dettaglio del run:

  1. La persona designer riceve il tuo prompt, esplora il repository e implementa la feature
  2. La persona checker revisiona l’implementazione rispetto ai tuoi criteri e approva o fornisce feedback
  3. In caso di rifiuto, il designer itera con il feedback fino all’approvazione o al raggiungimento del numero massimo di iterazioni
  4. I punteggi di qualità vengono registrati per ogni step - puoi vedere i punteggi di correttezza, type safety, stile del codice, copertura dei test e completezza nei dettagli dello step
  5. Al completamento, CodeCourier crea una PR sul branch specificato

Eseguire una sessione di issue con Answering

Le sessioni di issue possono far emergere domande e ipotesi che necessitano di risoluzione prima dell’implementazione. Ecco come usare la funzionalità Answering Session:

1

Avvia una sessione di issue

Vai in Issues nella sidebar e clicca su New Issue Session. Seleziona il branch che vuoi analizzare e fornisci un prompt di scoperta (o affidati al documento di contesto che hai configurato in precedenza). Avvia la sessione.

La sessione userà il contesto e gli asset di Issue Session che hai configurato in Project Settings. Al completamento, vedrai una lista di issue generate con titoli, descrizioni e priorità.

2

Rivedi le domande e avvia una Answering Session

Alcune issue possono presentare domande aperte o ipotesi non risolte - ad esempio, “Questo cache miss è accettabile, o dovremmo pre-riscaldare la cache?” Quando vedi tali domande collegate a una issue, clicca su Start Answering Session.

L’Answering Session crea una sandbox usando il tuo contesto di Answering Session configurato. L’agente riceve le domande aperte e le elabora, producendo risposte strutturate che vengono ricollegate alla issue. Queste risposte vengono poi passate al run di implementazione, così la persona designer non deve tirare a indovinare.

3

Esegui le issue

Con le domande risolte, clicca su Run su una issue (o seleziona più issue e crea una work chain). Il run di implementazione riceve il prompt suggerito della issue più eventuali risposte dall’Answering Session.

Visualizzare risultati e learning

Pull request

Dopo il completamento del run, controlla la pagina di dettaglio del run per lo stato della PR. Se il run era configurato per creare una PR, vedrai l’URL della PR che collega direttamente a GitHub. Lo stato della PR viene tracciato in tempo reale: creating, created, merged o failed. I risultati dei check CI appariranno nel pannello CI Checks man mano che la tua pipeline gira sul branch della PR.

Punteggi di qualità

Ogni run step completato mostra i suoi punteggi di qualità. Vai nella lista degli step del run e clicca su qualsiasi step per vedere il dettaglio di correttezza, type safety, stile del codice, copertura dei test, completezza e il punteggio composito. Il punteggio di qualità complessivo del run è visibile nella card di riepilogo del run.

Estrazione dei learning

Se l’estrazione dei learning è abilitata (configurata in Project Settings e tramite la configurazione della Learning Session), CodeCourier esegue uno step post-completamento che analizza la sessione dell’agente usando il documento di contesto di learning ed estrae learning strutturati. Vai in Learnings nella sidebar per vedere i record appena estratti.

Rivedi ogni learning in attesa:

  • Approva i learning che catturano genuina conoscenza del progetto - verranno compilati e iniettati nelle sessioni future
  • Rifiuta i learning errati, troppo generici o non applicabili

Utilizzo e costi

Vai in Usage nella sezione insights per un dettaglio dei costi. I record di utilizzo tracciano il consumo di token, la durata delle sandbox e i costi per servizio (Claude Code, E2B, Trigger.dev) fino al singolo run step. La pagina di analytics fornisce grafici e trend nel tempo.

Dashboard

Torna al Dashboard per vedere i contatori del progetto aggiornati. Il dashboard mostra il totale delle sandbox, le sandbox attive, il totale dei run, i run completati e falliti, il totale dei workflow, i membri del team e gli inviti in attesa. Le statistiche giornaliere tracciano le sandbox create, i run creati e completati, le iterazioni e i workflow creati.

Prossimi passi

Ora hai un progetto completamente configurato con contesti, asset, session configuration, personas e un workflow completo end-to-end. Ecco i prossimi passi consigliati per approfondire il tuo utilizzo: