> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Flussi di lavoro

> Automatizza attività ripetitive in Cascade con flussi di lavoro riutilizzabili definiti come file markdown. Crea flussi di lavoro per la revisione delle PR, la distribuzione, il testing e la formattazione del codice.

I flussi di lavoro consentono agli utenti di definire una serie di passaggi per guidare Cascade nello svolgimento di attività ripetitive, come distribuire un servizio o rispondere ai commenti delle PR.

Questi flussi di lavoro vengono salvati come file markdown, offrendo agli utenti e ai rispettivi team un modo semplice e ripetibile per eseguire processi chiave.

Una volta salvati, i flussi di lavoro possono essere invocati in Cascade tramite un comando slash nel formato `/[name-of-workflow]`.

<Note>
  I flussi di lavoro sono **esclusivamente manuali** — Cascade non invocherà mai automaticamente un flusso di lavoro. Se vuoi che Cascade segua una procedura autonomamente, usa invece una [Skill](/it/desktop/cascade/skills).
</Note>

<div id="how-it-works">
  ## Come funziona
</div>

Le Regole in genere forniscono ai modelli linguistici di grandi dimensioni indicazioni, mettendo a disposizione un contesto persistente e riutilizzabile a livello di prompt.

I flussi di lavoro estendono questo concetto fornendo una sequenza strutturata di passaggi o prompt a livello di traiettoria, guidando il modello attraverso una serie di attività o azioni collegate tra loro.

<Frame>
  <img style={{ maxHeight: "400px" }} src="https://mintcdn.com/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/windsurf/cascade/use-workflow-pr.png?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=92b4125d6d17f2a25ffea890592331fc" width="718" height="510" data-path="desktop/assets/windsurf/cascade/use-workflow-pr.png" />
</Frame>

Per eseguire un flusso di lavoro, gli utenti devono semplicemente invocarlo in Cascade con il comando `/[workflow-name]`.

<Tip>Puoi invocare altri flussi di lavoro dall'interno di un flusso di lavoro! <br /><br />Ad esempio, /workflow-1 può includere istruzioni come "Invoca /workflow-2" e "Invoca /workflow-3".</Tip>

Una volta invocato, Cascade elabora in sequenza ogni passaggio definito nel flusso di lavoro, eseguendo azioni o generando risposte come specificato.

<div id="how-to-create-a-workflow">
  ## Come creare un flusso di lavoro
</div>

Per iniziare a usare i flussi di lavoro, fai clic sull'icona `Customizations` nel menu laterale a scomparsa in alto a destra in Cascade, quindi vai al pannello `Workflows`. Qui puoi fare clic sul pulsante `+ Workflow` per creare un nuovo flusso di lavoro.

I flussi di lavoro vengono salvati come file Markdown nelle directory `.windsurf/workflows/` e contengono un titolo, una descrizione e una serie di passaggi con istruzioni specifiche che Cascade deve seguire.

<div id="workflow-discovery">
  ## Rilevamento dei flussi di lavoro
</div>

Devin Desktop rileva automaticamente i flussi di lavoro da più posizioni per offrire un'organizzazione flessibile:

* **Workspace corrente e sottodirectory**: tutte le directory `.windsurf/workflows/` all'interno del workspace corrente e delle relative sottodirectory
* **Struttura del repository Git**: per i repository Git, Devin Desktop cerca anche fino alla directory radice Git per individuare i flussi di lavoro nelle directory padre
* **Supporto per più workspace**: quando nella stessa workspace sono aperte più cartelle, i flussi di lavoro vengono deduplicati e visualizzati con il percorso relativo più breve

<div id="workflow-storage-locations">
  ### Percorsi di archiviazione dei flussi di lavoro
</div>

| Ambito                                                     | Percorso                                                            | Note                                                                                                              |
| ---------------------------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Workspace                                                  | `.windsurf/workflows/*.md`                                          | Nel workspace corrente, in qualsiasi sottodirectory o directory padre fino alla git root. Versionato con la repo. |
| Globale                                                    | `~/.codeium/windsurf/global_workflows/*.md`                         | Disponibile in ogni workspace sul tuo computer. Non versionato.                                                   |
| Integrato                                                  | Gestito da Devin Desktop                                            | Template inclusi in Devin Desktop (ad es. `/plan`).                                                               |
| [Sistema (Enterprise)](#system-level-workflows-enterprise) | Specifico del sistema operativo (ad es. `/etc/windsurf/workflows/`) | Distribuito dall'IT, in sola lettura per gli utenti finali.                                                       |

Quando crei un nuovo flusso di lavoro tramite la UI, viene salvato nella directory `.windsurf/workflows/` del workspace corrente, non necessariamente nella git root. Per creare un flusso di lavoro globale, usa il pulsante `+ Global` nel pannello Workflows oppure crea direttamente il file in `~/.codeium/windsurf/global_workflows/`.

Ogni file di flusso di lavoro è limitato a 12000 caratteri.

<video autoPlay controls muted loop playsInline className="w-full aspect-video" src="https://mintcdn.com/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/windsurf/cascade/create-workflow.mp4?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=b0f3d54a0d24966384a91042468f72bf" data-path="desktop/assets/windsurf/cascade/create-workflow.mp4" />

<div id="generate-a-workflow-with-cascade">
  ### Genera un flusso di lavoro con Cascade
</div>

Puoi anche chiedere a Cascade di generare flussi di lavoro per te. Questo approccio funziona particolarmente bene per i flussi di lavoro che prevedono una serie di passaggi in uno specifico strumento CLI.

<video autoPlay controls muted loop playsInline className="w-full aspect-video" src="https://mintcdn.com/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/windsurf/cascade/create-workflow-with-cascade.mp4?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=f14c9012ab0e92d631b808072c439f60" data-path="desktop/assets/windsurf/cascade/create-workflow-with-cascade.mp4" />

<div id="example-workflows">
  ## Esempi di flussi di lavoro
</div>

Esistono moltissimi casi d'uso per i flussi di lavoro, ad esempio:

<Card title="/address-pr-comments">
  Questo è un flusso di lavoro che il nostro team usa internamente per gestire i commenti sulle PR:

  ```
  1. Passa al branch della PR: `gh pr checkout [id]`

  2. Recupera i commenti della PR

   bash
   gh api --paginate repos/[owner]/[repo]/pulls/[id]/comments | jq '.[] | {user: .user.login, body, path, line, original_line, created_at, in_reply_to_id, pull_request_review_id, commit_id}'

  3. Per OGNI commento, fai quanto segue. Ricorda di gestire un commento alla volta.
   a. Stampa quanto segue: "(index). Da [user] su [file]:[lines] — [body]"
   b. Analizza il file e l'intervallo di righe.
   c. Se non capisci il commento, non apportare modifiche. Chiedimi semplicemente un chiarimento, oppure chiedimi di implementarlo io stesso.
   d. Se ritieni di poter apportare la modifica, fallo PRIMA di passare al commento successivo.

  4. Dopo aver elaborato tutti i commenti, riepiloga ciò che hai fatto e indica quali commenti richiedono l'attenzione dell'UTENTE.
  ```
</Card>

<Card title="/git-workflows">
  Esegui commit usando formati predefiniti e crea pull request con titoli e descrizioni standardizzati usando i comandi CLI appropriati.
</Card>

<Card title="/dependency-management">
  Automatizza l'installazione o l'aggiornamento delle dipendenze del progetto in base a un file di configurazione (ad es. requirements.txt, package.json).
</Card>

<Card title="/code-formatting">
  Esegui automaticamente formatter del codice (come Prettier, Black) e linter (come ESLint, Flake8) al salvataggio del file o prima del commit per mantenere coerente lo stile del codice e individuare tempestivamente gli errori.
</Card>

<Card title="/run-tests-and-fix">
  Esegui o aggiungi test unitari o end-to-end e correggi automaticamente gli errori per garantire la qualità del codice prima del commit, del merge o della distribuzione.
</Card>

<Card title="/deployment">
  Automatizza i passaggi necessari per distribuire la tua applicazione in vari ambienti (sviluppo, staging, produzione), inclusi eventuali controlli prima della distribuzione o verifiche successive.
</Card>

<Card title="/security-scan">
  Integra e attiva scansioni delle vulnerabilità di sicurezza sul tuo codebase come parte della pipeline CI/CD o su richiesta.
</Card>

<div id="system-level-workflows-enterprise">
  ## Flussi di lavoro di sistema (Enterprise)
</div>

Le organizzazioni Enterprise possono distribuire flussi di lavoro di sistema disponibili globalmente in tutti i workspace e non modificabili dagli utenti finali senza autorizzazioni di amministratore. Questa soluzione è ideale per imporre processi di sviluppo a livello di organizzazione, procedure di distribuzione e flussi di lavoro di conformità.

I flussi di lavoro di sistema vengono caricati da directory specifiche del sistema operativo:

**macOS:**

```
/Library/Application Support/Windsurf/workflows/*.md
```

**Linux/WSL:**

```
/etc/windsurf/workflows/*.md
```

**Windows:**

```
C:\ProgramData\Windsurf\workflows\*.md
```

Colloca i file del flusso di lavoro (in formato `.md`) nella directory appropriata per il tuo sistema operativo. Il sistema caricherà automaticamente tutti i file `.md` presenti in queste directory.

<div id="workflow-precedence">
  ### Precedenza dei flussi di lavoro
</div>

Quando esistono flussi di lavoro con lo stesso nome a più livelli, i flussi di lavoro di sistema hanno la precedenza massima:

1. **Sistema** (priorità massima) - Flussi di lavoro a livello di organizzazione distribuiti dall'IT
2. **Workspace** - Flussi di lavoro specifici del progetto in `.windsurf/workflows/`
3. **Globale** - Flussi di lavoro definiti dall'utente in `~/.codeium/windsurf/global_workflows/`
4. **Integrati** - Flussi di lavoro predefiniti forniti da Devin Desktop

Ciò significa che, se un'organizzazione distribuisce un flusso di lavoro di sistema con un nome specifico, questo avrà la precedenza su qualsiasi flusso di lavoro del workspace, globale o integrato con lo stesso nome.

Nell'interfaccia utente di Devin Desktop, i flussi di lavoro di sistema sono contrassegnati dall'etichetta "Sistema" e non possono essere eliminati dagli utenti finali.

<Note>
  **Importante**: I flussi di lavoro di sistema devono essere gestiti dal team IT o di sicurezza. Assicurati che i team interni si occupino di distribuzione, aggiornamenti e conformità in base alle policy della tua organizzazione. A questo scopo, puoi usare strumenti e flussi di lavoro standard come Mobile Device Management (MDM) o Configuration Management.
</Note>
