{
  "overview": "AGENA è una **piattaforma AI agentica** che genera autonomamente codice, crea pull request e gestisce il flusso di lavoro dello sviluppo software. È progettata per team di sviluppo che vogliono accelerare le consegne senza sacrificare la qualità del codice.\n\n### Cosa Fa AGENA\n- **Prende un'attività** dal tuo backlog (Azure DevOps, Jira o creata manualmente)\n- **Esegue una pipeline di agenti AI**: PM → Developer → Reviewer → Finalizer\n- **Genera codice di produzione**, crea un branch, esegue il commit e apre una PR\n- **Revisiona il proprio output** con un agente Reviewer dedicato prima dell'invio\n- **Notifica il tuo team** tramite Slack, Teams o Telegram\n- **Impara dalla tua codebase** utilizzando la memoria vettoriale per una generazione contestualizzata\n\n### Concetti Chiave\n| Concetto | Descrizione |\n|----------|-------------|\n| **Task** | Un elemento di lavoro importato da Jira/Azure DevOps o creato manualmente. Contiene titolo, descrizione, criteri di accettazione e contesto. |\n| **Agent** | Un ruolo AI (PM, Developer, Reviewer, QA, Finalizer) con il proprio modello LLM, prompt di sistema e comportamento. Configurabile per organizzazione. |\n| **Flow** | Una pipeline di automazione visuale (stile n8n) che collega agenti, condizioni, chiamate HTTP e integrazioni in flussi di lavoro personalizzati. |\n| **Pixel Agent** | Lo spazio di lavoro animato che mostra gli agenti come personaggi pixel che lavorano sulle attività in tempo reale. |\n| **Organization** | Uno spazio di lavoro multi-tenant. Ogni organizzazione ha le proprie integrazioni, membri del team, attività e fatturazione. |\n| **Repo Mapping** | Collega un repository GitHub/Azure DevOps alla tua organizzazione in modo che AGENA sappia dove creare branch e PR. |\n| **Playbook** | Regole e convenzioni di codifica a livello di organizzazione. Gli agenti fanno riferimento al playbook durante la generazione del codice. |\n| **Sprint** | Sprint attivo da Azure DevOps o Jira. Le attività possono essere importate dallo sprint e monitorate sulla sprint board. |\n\n### Come Funziona — End to End\n1. Crei un'attività (manualmente, da Jira/Azure, o tramite ChatOps: \\",
  "signup": "### Creazione del Tuo Account\n\n1. Vai su [agena.dev/signup](${SITE}/signup)\n2. Inserisci la tua email e password\n3. Verrai assegnato automaticamente a una nuova organizzazione\n4. Completa la procedura guidata di onboarding per configurare la tua prima integrazione\n\n### Dopo la Registrazione\n- Sei il **proprietario** della tua organizzazione\n- Invita i membri del team da **Dashboard → Team**\n- Configura le integrazioni da **Dashboard → Integrations**",
  "quickstart-saas": "### Utilizzo di AGENA SaaS (agena.dev)\n\n**Passo 1 — Registrati** su [agena.dev/signup](${SITE}/signup)\n\n**Passo 2 — Configura le Integrazioni** (Dashboard → Integrations)\n- **Scheda AI**: Aggiungi la tua chiave API OpenAI (obbligatoria) e opzionalmente Gemini\n- **Scheda Task**: Collega GitHub (per la creazione delle PR) e opzionalmente Azure DevOps / Jira\n\n**Passo 3 — Mappa un Repository** (Dashboard → Mappings)\n- Seleziona il tuo owner e repository GitHub\n- Questo indica ad AGENA dove creare branch e PR\n\n**Passo 4 — Imposta lo Sprint Attivo** (Dashboard → Profile)\n- Seleziona il tuo progetto, team e sprint Azure/Jira\n- Lo sprint attivo viene rilevato automaticamente\n\n**Passo 5 — Crea la Tua Prima Attività**\n- Vai su **Dashboard → Tasks** → Create Task\n- Inserisci un titolo e una descrizione (sii specifico su ciò che desideri)\n- Clicca **Assign to AI** — AGENA la metterà in coda, eseguirà la pipeline e creerà una PR\n\n**Passo 6 — Monitora i Progressi**\n- Osserva lo stato dell'attività nella lista delle attività o nella vista **Office**\n- Al completamento, vedrai il link alla PR",
  "quickstart-selfhost": "### Deployment Self-Hosted\n\n#### Prerequisiti\n- Docker & Docker Compose\n- Un server con almeno 4GB di RAM\n- Dominio con SSL (per le callback dei webhook)\n\n#### Installazione\n\n\\",
  "office": "### Office — Spazio di Lavoro Pixel Agent\n\nL'**Office** è lo spazio di lavoro visuale di AGENA dove i tuoi agenti AI appaiono come personaggi pixel animati. Ogni agente ha una scrivania, si muove e mostra visivamente su cosa sta lavorando.\n\n#### Cosa Vedi\n- **Personaggi Agente** — Ogni ruolo AI (PM, Developer, Reviewer, ecc.) è un personaggio pixel alla propria scrivania\n- **Indicatori di Attività** — Gli agenti si illuminano o si animano quando stanno elaborando attivamente un'attività\n- **Barra di Avanzamento Attività** — Progresso della pipeline in tempo reale: fetch → analyze → generate → review → finalize\n- **Contatore Coda** — Mostra quante attività sono in attesa nella coda\n- **Completamenti Recenti** — Accesso rapido alle attività completate di recente e ai relativi link delle PR\n\n#### Elementi Interattivi\n- **Clicca su un agente** per vedere la sua attività corrente e lo stato\n- **Passa il mouse sulle scrivanie** per informazioni rapide sull'agente\n- Pulsante **Create Task** per la creazione rapida di attività senza uscire dalla vista Office\n- Il layout dell'ufficio si aggiorna in tempo reale tramite WebSocket — non è necessario aggiornare la pagina\n\n#### Quando Usare Office\nL'Office è ideale per:\n- Monitorare il lavoro degli agenti attivi in tempo reale\n- Modalità demo/presentazione per mostrare AGENA agli stakeholder\n- Panoramica rapida dello stato della tua forza lavoro AI\n\n#### Navigazione\nDashboard → Office (primo elemento nella sezione Workspace della barra laterale)",
  "tasks": "### Attività\n\nL'hub di gestione delle attività per tutti i tuoi elementi di lavoro generati dall'AI.\n\n#### Creazione Attività\n1. **Manuale**: Clicca \"Create Task\" → inserisci titolo + descrizione → Assign to AI\n2. **Importa da Azure DevOps**: Seleziona progetto/team/sprint → Import\n3. **Importa da Jira**: Seleziona progetto/board/sprint → Import\n4. **ChatOps**: Invia \\",
  "sprints": "### Sprint Board\n\nBoard in stile Kanban che mostra tutte le attività nel tuo sprint attivo, raggruppate per stato.\n\n#### Configurazione\n1. Vai su **Dashboard → Profile**\n2. Seleziona il tuo progetto, team e sprint Azure DevOps o Jira\n3. La sprint board carica automaticamente gli elementi di lavoro dallo sprint selezionato\n\n#### Funzionalità\n- **Drag-and-drop** per il cambio di stato delle attività\n- **Importa tutti gli elementi dello sprint** con un solo clic\n- **Assign to AI** direttamente dalla board\n- **Filtra** per stato, assegnatario o tipo di elemento di lavoro\n- **Aggiornamenti in tempo reale** tramite WebSocket",
  "sprint-performance": "### Prestazioni Sprint\n\nDashboard analitica per la velocity dello sprint e l'efficacia degli agenti AI.\n\n#### Metriche\n- **Tasso di completamento** — Percentuale di attività completate rispetto al totale\n- **Tasso di successo AI** — Frequenza con cui la pipeline AI ha successo senza errori\n- **Tempo medio di ciclo** — Dalla creazione dell'attività al merge della PR\n- **Efficienza token** — Costo per attività completata con successo\n- **Tasso di merge PR** — Quante PR generate dall'AI vengono mergiate",
  "refinement": "### Refinement\n\nStrumento di refinement dello sprint potenziato dall'AI che analizza gli elementi del backlog e suggerisce story point.\n\n#### Come Funziona\n1. Seleziona la tua sorgente (Azure DevOps o Jira)\n2. Seleziona progetto → team/board → sprint\n3. Clicca **Load Items** — mostra tutti gli elementi non stimati\n4. Seleziona gli elementi da analizzare → Clicca **Run Refinement**\n5. L'AI analizza ogni elemento e fornisce:\n   - **Story point suggeriti** con punteggio di confidenza\n   - **Riepilogo** di cosa comporta l'elemento\n   - **Ambiguità** e **Domande** da chiarire\n   - Indicatore **Pronto per la pianificazione**\n\n#### Writeback\nDopo aver revisionato i suggerimenti, clicca **Write Back** per aggiornare gli story point direttamente in Azure DevOps o Jira.",
  "agents": "### Agenti AI\n\nConfigura gli agenti AI che alimentano la tua pipeline.\n\n#### Ruoli Agente Predefiniti\n| Ruolo | Descrizione |\n|-------|-------------|\n| **PM** | Analizza i requisiti, raccoglie il contesto, crea un piano di implementazione |\n| **Developer** | Genera codice di produzione basato sul piano |\n| **Reviewer** | Revisiona il codice per qualità, sicurezza e best practice |\n| **QA** | Testa e valida il codice generato |\n| **Finalizer** | Crea branch, esegue commit e apre pull request |\n\n#### Configurazione Per Agente\n- **Provider**: OpenAI o Gemini\n- **Modello**: gpt-5, gpt-4o, gemini-2.5-pro, ecc.\n- **Abilitato/Disabilitato**: Attiva o disattiva ogni agente\n- **Create PR**: Se l'esecuzione di questo agente deve creare una PR\n\n#### Modelli Agente Personalizzati\nOgni agente può utilizzare un modello diverso. Ad esempio:\n- PM: gpt-4o-mini (veloce, economico per l'analisi)\n- Developer: gpt-5 (migliore qualità per la generazione di codice)\n- Reviewer: gpt-4o (buon equilibrio per la revisione)",
  "prompt-studio": "### Prompt Studio\n\nModifica e gestisci i prompt di sistema utilizzati da ogni agente AI. Tutti i prompt sono salvati nel database e possono essere modificati a runtime senza ridistribuire.\n\n#### Funzionalità\n- **Modifica in tempo reale** — Le modifiche hanno effetto immediato\n- **Cronologia versioni** — Visualizza quando i prompt sono stati modificati l'ultima volta\n- **Prompt per agente** — Ogni ruolo agente ha il proprio template di prompt\n- **Interpolazione variabili** — Usa \\",
  "flows": "### Flow Builder\n\nCostruttore di automazione visuale per creare flussi di lavoro AI personalizzati (stile n8n).\n\n#### Tipi di Nodo\n| Nodo | Descrizione |\n|------|-------------|\n| **Trigger** | Punto di ingresso del flow |\n| **Agent** | Analisi/generazione potenziata da LLM (selezione modello, provider, prompt) |\n| **Azure DevOps** | Crea branch, crea PR, completa PR, abbandona PR |\n| **GitHub** | Crea branch, crea PR, merge PR |\n| **HTTP** | Chiamate API REST con autenticazione (bearer, API key, basic) |\n| **Condition** | Logica di ramificazione (eq, neq, contains, regex, ecc.) |\n| **Notify** | Notifiche webhook, Slack o email |\n| **Azure Update** | Aggiorna lo stato dell'elemento di lavoro + aggiungi commento |\n\n#### Comunicazione tra Nodi\nI nodi passano dati tramite \\",
  "templates": "### Template\n\nTemplate riutilizzabili per attività e flow per pattern di sviluppo comuni.\n\n#### Utilizzo\n- Sfoglia i template predefiniti per attività comuni (bug fix, feature, refactor)\n- Crea i tuoi template a partire da configurazioni di attività riuscite\n- Applica i template durante la creazione di nuove attività per precompilare descrizione, contesto e impostazioni",
  "dora": "### Metriche DORA\n\nDashboard delle metriche DevOps Research and Assessment (DORA).\n\n#### Viste Disponibili\n- **Overview** — Riepilogo DORA di alto livello\n- **Project** — Metriche di consegna per progetto\n- **Development** — Velocità del codice, frequenza dei commit, throughput delle PR\n- **Quality** — Tempo di revisione del codice, densità dei difetti, copertura dei test\n- **Bugs** — Tracciamento bug, tempo di risoluzione, distribuzione della severità\n- **Team** — Prestazioni per sviluppatore e bilanciamento del carico di lavoro\n\n#### Metriche Monitorate\n- **Frequenza di Deployment** — Con quale frequenza il codice viene distribuito\n- **Lead Time per le Modifiche** — Tempo dal commit alla produzione\n- **Tasso di Fallimento delle Modifiche** — Percentuale di deployment che causano errori\n- **Tempo Medio di Ripristino** — Quanto rapidamente vengono risolti i problemi",
  "integrations": "### Configurazione Integrazioni\n\nConfigura i servizi esterni in **Dashboard → Integrations**.\n\n#### Scheda AI\n- **OpenAI** — Chiave API + URL base (obbligatorio per la generazione di codice)\n- **Gemini** — Chiave API Google AI (provider di fallback opzionale)\n- **Playbook** — Regole e convenzioni di codifica a livello di organizzazione. Gli agenti AI fanno riferimento a queste regole durante la generazione del codice.\n\n#### Scheda Task\n- **GitHub** — Owner + Personal Access Token (PAT) con \\",
  "repo-mapping": "### Mappatura Repository\n\nLa mappatura dei repository indica ad AGENA con quale codebase lavorare per ogni attività. Senza una mappatura, AGENA non sa dove creare branch e PR.\n\n#### Configurazione\n1. Vai su **Dashboard → Mappings**\n2. Clicca **Add Mapping**\n3. Configura i seguenti campi:\n\n| Campo | Descrizione | Esempio |\n|-------|-------------|---------|\n| **Provider** | GitHub o Azure DevOps | GitHub |\n| **Owner** | Organizzazione/utente GitHub o progetto Azure | \\",
  "team-management": "### Team e Permessi\n\nGestisci i membri del team della tua organizzazione e i relativi livelli di accesso.\n\n#### Ruoli\n| Ruolo | Permessi |\n|-------|----------|\n| **Owner** | Accesso completo, fatturazione, eliminazione organizzazione |\n| **Admin** | Gestione team, integrazioni, impostazioni |\n| **Member** | Creazione attività, visualizzazione risultati, utilizzo agenti |\n| **Viewer** | Accesso in sola lettura ad attività e dashboard |\n\n#### Invito Membri\n1. Vai su **Dashboard → Team**\n2. Clicca **Invite** → inserisci l'indirizzo email\n3. Seleziona il ruolo da assegnare\n4. L'invitato riceve un'email con un link di registrazione/adesione\n\n#### Permessi\nPermessi granulari disponibili in **Dashboard → Permissions**:\n- \\",
  "profile-settings": "### Profilo e Preferenze\n\nConfigura le tue preferenze personali dello spazio di lavoro in **Dashboard → Profile**.\n\n#### Selezione Sprint Attivo\n- **Azure DevOps**: Seleziona Progetto → Team → Sprint (sprint attivo rilevato automaticamente)\n- **Jira**: Seleziona Progetto → Board → Sprint (sprint attivo rilevato automaticamente)\n\n#### Preferenze Spazio di Lavoro\n- **Notifiche Email / Web Push / In-app** — Attiva/disattiva per canale\n- **Email riepilogativa giornaliera** — Ricevi un digest giornaliero dell'attività delle attività\n- **Auto-assegnazione nuove attività** — Metti automaticamente in coda le attività importate per l'AI\n- **Creazione PR predefinita** — Se le attività AI devono creare PR per impostazione predefinita\n- **Provider e modello preferiti** — Modello AI predefinito per le nuove attività\n\n#### Pattern di Denominazione Branch\nScegli tra preset o definisci un pattern personalizzato:\n- \\",
  "chatops": "### ChatOps — Teams / Slack / Telegram\n\nControlla AGENA direttamente dalla tua piattaforma di chat.\n\n#### Comandi Disponibili\n| Comando | Descrizione |\n|---------|-------------|\n| \\",
  "pipeline": "### Pipeline Agenti AI\n\nAGENA utilizza un sistema di orchestrazione a due livelli:\n\n#### CrewAI — Ruoli degli Agenti\nOgni agente ha un ruolo specifico, un modello e un prompt di sistema:\n- **Agente PM**: Analizza l'attività, raccoglie il contesto della codebase, crea un piano di implementazione dettagliato\n- **Agente Developer**: Genera codice di produzione seguendo il piano e le convenzioni del repository\n- **Agente Reviewer**: Revisiona il codice generato per bug, problemi di sicurezza e best practice\n- **Agente Finalizer**: Crea un branch git, esegue il commit del codice e apre una pull request\n\n#### LangGraph — Pipeline di Esecuzione\n\\",
  "services": "### Architettura dei Servizi\n\nAGENA è un monorepo con 6 pacchetti Python installabili tramite pip:\n\n| Pacchetto | Descrizione |\n|-----------|-------------|\n| \\",
  "selfhost-deploy": "### Deployment Self-Hosted\n\n#### Servizi Docker Compose\n\\",
  "admin-panel": "### Pannello Admin della Piattaforma\n\nIl pannello admin è l'interfaccia super-admin per la gestione dell'intera piattaforma AGENA in tutte le organizzazioni. È accessibile da **Dashboard → Admin**.\n\n#### Chi Può Accedere\nSolo gli utenti con \\",
  "admin-orgs": "### Gestione Organizzazioni\n\n#### Visualizzazione Organizzazioni\nNaviga su **Admin → Organizations** per vedere tutte le organizzazioni registrate.\n\nOgni scheda organizzazione mostra:\n- **Nome dell'organizzazione** e ID\n- **Conteggio membri** — Quanti utenti appartengono a questa organizzazione\n- **Conteggio attività** — Totale attività create da questa organizzazione\n- **Data di creazione** — Quando l'organizzazione è stata registrata\n- **Proprietario** — Email del proprietario dell'organizzazione\n\n#### Multi-Tenancy\nAGENA è completamente multi-tenant. Ogni organizzazione è completamente isolata:\n- **Dati separati** — Attività, flow, agenti, integrazioni sono limitati all'organizzazione\n- **Fatturazione separata** — Ogni organizzazione ha il proprio piano di abbonamento\n- **Integrazioni separate** — Ogni organizzazione collega i propri GitHub, Jira, Slack, ecc.\n- **Nessuna visibilità tra organizzazioni** — Gli utenti dell'Organizzazione A non possono vedere nulla dell'Organizzazione B\n\n#### Attività Admin Comuni\n- **Investigare problemi** — Se un utente segnala un problema, trova la sua organizzazione e controlla i log delle attività\n- **Monitorare la crescita** — Traccia le nuove registrazioni e il conteggio dei tenant attivi\n- **Identificare abusi** — Individua organizzazioni con conteggi di attività o utilizzo API insolitamente elevati",
  "admin-users": "### Gestione Utenti\n\n#### Visualizzazione Utenti\nNaviga su **Admin → Users** per vedere tutti gli utenti registrati sull'intera piattaforma.\n\nOgni voce utente mostra:\n- **Nome completo** e indirizzo email\n- **Organizzazione** di appartenenza\n- **Ruolo** all'interno della propria organizzazione (owner, admin, member, viewer)\n- **Flag admin piattaforma** — Se dispone dell'accesso admin alla piattaforma\n- **Ultimo accesso** — Quando ha effettuato l'ultima autenticazione\n\n#### Ciclo di Vita dell'Utente\n1. L'utente si registra su \\",
  "auth-api": "### API di Autenticazione\n\n\\",
  "tasks-api": "### API Attività\n\n\\",
  "flows-api": "### API Flow\n\n\\",
  "integrations-api": "### API Integrazioni\n\n\\",
  "sdk-install": "### Installazione\n\nInstalla l'SDK AGENA tramite npm:\n\n\\`\\`\\`bash\nnpm install @agena/sdk\n\\`\\`\\`\n\nOppure con yarn:\n\n\\`\\`\\`bash\nyarn add @agena/sdk\n\\`\\`\\`\n\n#### Requisiti\n- Node.js 18+ o qualsiasi ambiente con supporto `fetch`\n- Un account AGENA con un token API\n\n#### Ottenere il Token API\n1. Accedi alla tua dashboard AGENA\n2. Vai su **Profilo e Preferenze**\n3. Copia il tuo token API\n\nOppure usa l'SDK per effettuare il login programmaticamente:\n\n\\`\\`\\`typescript\nconst { access_token } = await AgenaClient.auth.login(\n  'https://api.agena.dev',\n  'you@email.com',\n  'your-password'\n);\n\\`\\`\\`",
  "sdk-quickstart": "### Avvio Rapido\n\n\\`\\`\\`typescript\nimport { AgenaClient } from '@agena/sdk';\n\n// Inizializzare il client\nconst agena = new AgenaClient({\n  apiKey: 'your-token-here',\n});\n\n// Creare un'attività — gli agenti AI genereranno codice e apriranno una PR\nconst task = await agena.tasks.create({\n  title: 'Add user avatar upload',\n  description: 'Allow users to upload and crop a profile avatar image',\n});\n\nconsole.log('Task created:', task.id, task.status);\n\n// Verificare periodicamente il completamento\nconst interval = setInterval(async () => {\n  const updated = await agena.tasks.get(task.id);\n  console.log('Status:', updated.status);\n\n  if (updated.status === 'completed') {\n    console.log('PR ready:', updated.pr_url);\n    clearInterval(interval);\n  }\n}, 5000);\n\\`\\`\\`\n\n#### Eseguire un Flow\n\n\\`\\`\\`typescript\n// Eseguire un flow di automazione visuale\nconst run = await agena.flows.run({ flow_id: 1 });\n\n// Verificare il risultato\nconst result = await agena.flows.getRun(run.id);\nconsole.log('Steps:', result.steps.map(s => s.status));\n\\`\\`\\`\n\n#### Monitorare gli Agenti\n\n\\`\\`\\`typescript\n// Osservare gli agenti AI lavorare in tempo reale\nconst live = await agena.agents.liveStatus(task.id);\nlive.agents.forEach(agent => {\n  console.log(agent.role, '→', agent.status);\n});\n// PM → completed\n// Developer → running\n// Reviewer → pending\n\\`\\`\\`",
  "multi-repo": "### Orchestrazione Multi-Repository\n\nAGENA supporta l'**orchestrazione multi-repo** — un singolo task può puntare a più repository contemporaneamente. Invece di creare task separati per ogni repo, descrivi la modifica una volta e AGENA esegue pipeline di agenti indipendenti per ogni repository, producendo pull request separate.\n\n#### Cos'è Multi-Repo?\nNei progetti reali, una singola funzionalità o correzione di bug spesso coinvolge più codebase — un'API backend, un'app frontend, una libreria condivisa o configurazione dell'infrastruttura. L'orchestrazione multi-repo ti permette di assegnare un task a tutti i repository interessati contemporaneamente.\n\n#### Come Configurarlo\n1. **Aggiungi mappature repository** — Vai su **Dashboard → Mappings** e aggiungi ogni repository con cui vuoi che AGENA lavori (GitHub o Azure DevOps).\n2. **Seleziona più repo quando crei un task** — Quando crei o assegni un task, seleziona due o più repository mappati come destinazione.\n3. **AGENA fa il resto** — Ogni repository selezionato ottiene la propria esecuzione di pipeline indipendente.\n\n#### Come Funziona\n- Ogni repository esegue la propria **pipeline completa di agenti** (PM → Developer → Reviewer → Finalizer)\n- Ogni pipeline ha un **contesto indipendente** — l'agente PM recupera la codebase specifica del repo, le convenzioni e la struttura dei file\n- Ogni repository ottiene il proprio **branch e pull request**\n- Tutte le pipeline vengono eseguite in **parallelo** per la massima velocità\n- La dashboard dei task mostra lo **stato per repo** così puoi monitorare il progresso di ogni repository indipendentemente\n\n#### Esempio di Caso d'Uso\n**Task**: *\"Aggiungere rate limiting all'endpoint di login\"*\n\n| Repository | Cosa Fa AGENA |\n|------------|----------------|\n| `backend-api` | Aggiunge middleware di rate limiting, aggiorna la route di login, aggiunge logica contatore Redis |\n| `frontend-app` | Aggiunge logica di retry con backoff esponenziale, mostra messaggio di errore rate limit agli utenti |\n| `shared-types` | Aggiunge definizione tipo `RateLimitError` ai tipi di errore condivisi |\n\nRisultato: 3 PR separati, uno per repo, tutti da un singolo task.\n\n#### Migliori Pratiche\n- **Sii specifico nella descrizione del task** — menziona quali aspetti si applicano a quali repo quando possibile\n- **Usa un playbook** — le regole di codifica a livello organizzativo aiutano gli agenti a mantenere consistenza tra i repo\n- **Revisiona i PR insieme** — poiché tutti i PR sono relativi allo stesso task, revisionali e uniscili come gruppo",
  "task-dependencies": "### Dipendenze delle Attività\n\nAGENA supporta le **dipendenze delle attività** — definisci l'ordine di esecuzione tra le attività in modo che vengano eseguite automaticamente nella sequenza corretta. Quando una dipendenza viene completata, l'attività successiva nella catena viene automaticamente accodata e avviata senza intervento manuale.\n\n#### Cosa Sono le Dipendenze delle Attività?\nNei progetti complessi, le attività hanno spesso requisiti di ordinamento naturali. Una migrazione del database deve essere completata prima dell'aggiornamento dell'API backend. L'aggiornamento del frontend dipende dalla disponibilità dei nuovi endpoint API. I test E2E dovrebbero essere eseguiti solo dopo che tutte le modifiche al codice sono state distribuite. Le dipendenze delle attività ti permettono di esprimere esplicitamente queste relazioni.\n\n#### Come Impostare le Dipendenze\n1. **Al momento della creazione** — Quando crei una nuova attività, seleziona una o più attività esistenti come dipendenze nel campo \"Dipende Da\".\n2. **Dalla pagina di dettaglio dell'attività** — Apri qualsiasi attività e aggiungi dipendenze nella sezione Dipendenze.\n3. **Dal popup di assegnazione** — Quando assegni un'attività, puoi anche impostare le sue dipendenze.\n\n#### Come Funziona\n- Il **worker verifica le dipendenze** prima di eseguire qualsiasi attività — se i bloccanti sono incompleti, l'attività rimane in stato `waiting`\n- Quando un'attività bloccante viene completata, tutte le attività dipendenti vengono **automaticamente rivalutate**\n- Le attività le cui dipendenze sono ora soddisfatte vengono **automaticamente accodate** e iniziano l'esecuzione\n- La catena di dipendenze può essere lunga quanto necessario: Attività A → Attività B → Attività C → Attività D\n- Il **rilevamento dei cicli** viene eseguito quando aggiungi una dipendenza — le catene circolari (A → B → C → A) vengono rifiutate con un messaggio di errore chiaro\n\n#### Flusso Visivo delle Dipendenze\nLa dashboard delle attività mostra una rappresentazione visiva delle catene di dipendenze:\n- **Verde** (completata) — Attività completata con successo\n- **Giallo** (in esecuzione) — Attività attualmente in fase di elaborazione dagli agenti AI\n- **Grigio** (in attesa) — Attività in attesa del completamento delle sue dipendenze\n- Le frecce tra le attività mostrano la direzione del flusso di esecuzione\n\n#### Esempio\n```\n#31 DB Migration        ✓ completata\n     ↓\n#32 Backend API Update  ✓ completata\n     ↓\n#33 Frontend Update     ⟳ in esecuzione\n     ↓\n#34 E2E Tests           ⏳ in attesa\n```\nIn questo esempio, #33 è stata auto-accodata dopo il completamento di #32. #34 verrà auto-accodata una volta che #33 sarà terminata.\n\n#### Migliori Pratiche\n- **Mantieni le catene focalizzate** — le dipendenze funzionano meglio per lavoro naturalmente sequenziale all'interno della stessa funzionalità\n- **Usa con multi-repo** — combina le dipendenze con l'orchestrazione multi-repo per flussi di lavoro complessi tra repository\n- **Controlla il flusso visivo** — usa la visualizzazione delle dipendenze per verificare l'ordine di esecuzione prima di avviare la catena",
  "sdk-reference": "### Riferimento API\n\n#### AgenaClient\n\n| Metodo | Descrizione |\n|--------|-------------|\n| `new AgenaClient({ apiKey, baseUrl?, timeout? })` | Creare un'istanza del client |\n| `AgenaClient.auth.login(baseUrl, email, password)` | Statico: effettuare il login e ottenere il token |\n\n#### Tasks\n\n| Metodo | Descrizione |\n|--------|-------------|\n| `agena.tasks.create(params)` | Creare una nuova attività AI |\n| `agena.tasks.get(id)` | Ottenere un'attività per ID |\n| `agena.tasks.list({ status?, page?, per_page? })` | Elencare le attività |\n| `agena.tasks.cancel(id)` | Annullare un'attività in esecuzione |\n| `agena.tasks.rerun(id)` | Rieseguire un'attività completata/fallita |\n\n#### Flows\n\n| Metodo | Descrizione |\n|--------|-------------|\n| `agena.flows.run({ flow_id, context? })` | Eseguire un flow |\n| `agena.flows.getRun(runId)` | Ottenere i dettagli di un'esecuzione del flow |\n| `agena.flows.listRuns()` | Elencare le esecuzioni recenti |\n| `agena.flows.listTemplates()` | Elencare i template dei flow |\n\n#### Agents\n\n| Metodo | Descrizione |\n|--------|-------------|\n| `agena.agents.run({ task_id })` | Eseguire gli agenti su un'attività |\n| `agena.agents.liveStatus(taskId)` | Ottenere lo stato in tempo reale degli agenti |\n\n#### Integrations\n\n| Metodo | Descrizione |\n|--------|-------------|\n| `agena.integrations.list()` | Elencare tutte le integrazioni |\n| `agena.integrations.get(provider)` | Ottenere un'integrazione specifica |\n| `agena.integrations.githubRepos()` | Elencare i repository GitHub |\n| `agena.integrations.githubBranches(owner, repo)` | Elencare i branch |\n\n#### Gestione degli Errori\n\nTutti i metodi lanciano `AgenaApiError` in caso di errore:\n\n\\`\\`\\`typescript\ntry {\n  await agena.tasks.get(999);\n} catch (err) {\n  if (err.name === 'AgenaApiError') {\n    console.error(err.status, err.detail);\n  }\n}\n\\`\\`\\`"
}
