> ## 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

> Crea flussi di lavoro riutilizzabili di Cascade in file markdown per automatizzare attività ripetitive come distribuzioni, revisioni delle pull request e formattazione del codice con comandi slash.

I flussi di lavoro consentono agli utenti di definire una serie di passaggi per guidare Cascade nell'esecuzione 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 loro 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]`

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

In genere, le Regole forniscono ai modelli linguistici di grandi dimensioni indicazioni tramite 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 interconnesse.

<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 con i flussi di lavoro, fai clic sull'icona `Customizations` nel menu laterale a scomparsa in alto a destra di 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 da seguire per Cascade.

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

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

* **Workspace corrente e relative sottodirectory**: tutte le directory `.windsurf/workflows/` all'interno della workspace corrente e delle relative sottodirectory
* **Struttura del repository Git**: per i repository Git, Windsurf risale anche fino alla directory radice del repository per trovare i flussi di lavoro nelle directory padre
* **Supporto per più workspace**: quando sono aperte più cartelle nella stessa workspace, 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>

I flussi di lavoro possono essere archiviati in una qualsiasi di queste posizioni:

* `.windsurf/workflows/` nella directory del workspace corrente
* `.windsurf/workflows/` in qualsiasi sottodirectory del workspace
* `.windsurf/workflows/` nelle directory principali fino alla root di git (per i repository git)

Quando crei un nuovo flusso di lavoro, questo verrà salvato nella directory `.windsurf/workflows/` del workspace corrente, non necessariamente nella root di git.

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">
  ### Crea un flusso di lavoro con Cascade
</div>

Puoi anche chiedere a Cascade di creare flussi di lavoro per te. 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">
  ## Flussi di lavoro di esempio
</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 della 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 CIASCUN commento, procedi come segue. Ricorda di affrontare 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. Limitati a chiedermi un chiarimento oppure chiedimi di implementarlo io.
   d. Se ritieni di poter apportare la modifica, falla PRIMA di passare al commento successivo.

  4. Una volta elaborati tutti i commenti, riepiloga cosa hai fatto e quali commenti richiedono l'attenzione dell'UTENTE.
  ```
</Card>

<Card title="/git-workflows">
  Esegui il 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 di codice (come Prettier, Black) e linter (come ESLint, Flake8) al salvataggio del file o prima del commit per mantenere lo stile del codice e individuare gli errori tempestivamente.
</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), incluse eventuali verifiche necessarie prima o dopo la distribuzione.
</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 a livello di sistema (Enterprise)
</div>

Le organizzazioni Enterprise possono distribuire flussi di lavoro a livello di sistema, disponibili a livello globale in tutti i workspace, che gli utenti finali non possono modificare senza le autorizzazioni di amministratore. Questa soluzione è ideale per far rispettare processi di sviluppo validi per tutta l'organizzazione, procedure di distribuzione e flussi di lavoro di conformità.

I flussi di lavoro a livello 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 (come file `.md`) nella directory appropriata per il sistema operativo in uso. Il sistema caricherà automaticamente tutti i file `.md` da queste directory.

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

Quando esistono flussi di lavoro con lo stesso nome a più livelli, quelli a livello di sistema hanno la precedenza assoluta:

1. **Sistema** (priorità massima) - Flussi di lavoro estesi all'intera organizzazione distribuiti dall'IT
2. **Workspace** - Flussi di lavoro specifici del progetto in `.windsurf/workflows/`
3. **Globale** - Flussi di lavoro definiti dall'utente
4. **Integrati** - Flussi di lavoro predefiniti forniti da Windsurf

Ciò significa che, se un'organizzazione distribuisce un flusso di lavoro a livello di sistema con un nome specifico, questo farà override di qualsiasi flusso di lavoro del workspace, globale o integrato con lo stesso nome.

Nella UI di Cascade, i flussi di lavoro a livello di sistema sono contrassegnati con l'etichetta "System" e non possono essere eliminati dagli utenti.

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