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

# Flujos de trabajo

> Crea flujos de trabajo reutilizables de Cascade como archivos markdown para automatizar tareas repetitivas, como despliegues, revisiones de PR y formateo de código con comandos de barra diagonal.

Los flujos de trabajo permiten a los usuarios definir una serie de pasos para guiar a Cascade en tareas repetitivas, como desplegar un servicio o responder a comentarios en PR.

Estos flujos de trabajo se guardan como archivos markdown, lo que ofrece a los usuarios y a sus equipos una forma sencilla y repetible de ejecutar procesos clave.

Una vez guardados, los flujos de trabajo pueden invocarse en Cascade mediante un comando de barra diagonal con el formato `/[name-of-workflow]`

<div id="how-it-works">
  ## Cómo funciona
</div>

Por lo general, Rules orienta a los modelos de lenguaje mediante contexto persistente y reutilizable a nivel de prompt.

Los flujos de trabajo amplían este concepto al proporcionar una secuencia estructurada de pasos o prompts a nivel de trayectoria, guiando al modelo a través de una serie de tareas o acciones interconectadas.

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

Para ejecutar un flujo de trabajo, los usuarios solo tienen que invocarlo en Cascade con el comando `/[workflow-name]`.

<Tip>¡Puedes llamar a otros flujos de trabajo desde dentro de un flujo de trabajo! <br /><br />Por ejemplo, /workflow-1 puede incluir instrucciones como "Llama a /workflow-2" y "Llama a /workflow-3".</Tip>

Al invocarlo, Cascade procesa secuencialmente cada paso definido en el flujo de trabajo, realizando acciones o generando respuestas según se indique.

<div id="how-to-create-a-workflow">
  ## Cómo crear un flujo de trabajo
</div>

Para empezar con flujos de trabajo, haz clic en el icono `Customizations` del menú deslizante de la parte superior derecha de Cascade y, a continuación, ve al panel `Workflows`. Aquí puedes hacer clic en el botón `+ Workflow` para crear un flujo de trabajo nuevo.

Los flujos de trabajo se guardan como archivos markdown en directorios `.windsurf/workflows/` y contienen un título, una descripción y una serie de pasos con instrucciones específicas que Cascade debe seguir.

<div id="workflow-discovery">
  ## Detección de flujos de trabajo
</div>

Windsurf detecta automáticamente los flujos de trabajo en varias ubicaciones para ofrecer una organización flexible:

* **Espacio de trabajo actual y subdirectorios**: Todos los directorios `.windsurf/workflows/` dentro de tu espacio de trabajo actual y sus subdirectorios
* **Estructura del repositorio Git**: En los repositorios Git, Windsurf también busca hasta la raíz del repositorio para encontrar flujos de trabajo en directorios superiores
* **Compatibilidad con múltiples espacios de trabajo**: Cuando hay varias carpetas abiertas en el mismo espacio de trabajo, se eliminan los duplicados de los flujos de trabajo y se muestran con la ruta relativa más corta

<div id="workflow-storage-locations">
  ### Ubicaciones de almacenamiento de flujos de trabajo
</div>

Los flujos de trabajo pueden almacenarse en cualquiera de estas ubicaciones:

* `.windsurf/workflows/` en el directorio actual de tu espacio de trabajo
* `.windsurf/workflows/` en cualquier subdirectorio de tu espacio de trabajo
* `.windsurf/workflows/` en directorios superiores hasta la raíz de Git (para repositorios Git)

Cuando crees un nuevo flujo de trabajo, se guardará en el directorio `.windsurf/workflows/` de tu espacio de trabajo actual, no necesariamente en la raíz de Git.

Los archivos de flujo de trabajo están limitados a 12 000 caracteres cada uno.

<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 flujo de trabajo con Cascade
</div>

¡También puedes pedirle a Cascade que genere flujos de trabajo por ti! Esto funciona especialmente bien con flujos de trabajo que implican una serie de pasos en una herramienta de línea de comandos (CLI) concreta.

<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">
  ## Flujos de trabajo de ejemplo
</div>

Hay muchísimos casos de uso para los flujos de trabajo, como:

<Card title="/address-pr-comments">
  Este es un flujo de trabajo que nuestro equipo usa internamente para responder a comentarios en PR:

  ```
  1. Cámbiate a la rama de la PR: `gh pr checkout [id]`

  2. Obtén los comentarios de la 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. Para CADA comentario, haz lo siguiente. Recuerda atender un comentario a la vez.
   a. Imprime lo siguiente: "(index). De [user] en [file]:[lines] — [body]"
   b. Analiza el archivo y el rango de líneas.
   c. Si no entiendes el comentario, no hagas ningún cambio. Solo pídeme una aclaración o que lo implemente yo mismo.
   d. Si crees que puedes hacer el cambio, hazlo ANTES de pasar al siguiente comentario.

  4. Cuando hayas procesado todos los comentarios, resume lo que hiciste e indica qué comentarios requieren la atención del USUARIO.
  ```
</Card>

<Card title="/git-workflows">
  Confirma usando formatos predefinidos y crea pull requests con títulos y descripciones estandarizados mediante los comandos de CLI adecuados.
</Card>

<Card title="/dependency-management">
  Automatiza la instalación o actualización de las dependencias del proyecto según un archivo de configuración (p. ej., requirements.txt, package.json).
</Card>

<Card title="/code-formatting">
  Ejecuta automáticamente formateadores de código (como Prettier, Black) y linters (como ESLint, Flake8) al guardar archivos o antes de confirmar para mantener el estilo del código y detectar errores cuanto antes.
</Card>

<Card title="/run-tests-and-fix">
  Ejecuta o agrega pruebas unitarias o integrales y corrige los errores automáticamente para garantizar la calidad del código antes de confirmar, fusionar o desplegar.
</Card>

<Card title="/deployment">
  Automatiza los pasos para desplegar tu aplicación en varios entornos (desarrollo, staging, producción), incluidas las comprobaciones previas al despliegue y las verificaciones posteriores necesarias.
</Card>

<Card title="/security-scan">
  Integra y activa análisis de vulnerabilidades de seguridad en tu base de código como parte del pipeline de CI/CD o bajo demanda.
</Card>

<div id="system-level-workflows-enterprise">
  ## Flujos de trabajo a nivel del sistema (Enterprise)
</div>

Las organizaciones Enterprise pueden implementar flujos de trabajo a nivel del sistema que están disponibles globalmente en todos los espacios de trabajo y que los usuarios finales no pueden modificar sin permisos de administrador. Esto es ideal para hacer cumplir procesos de desarrollo de toda la organización, procedimientos de despliegue y flujos de trabajo de cumplimiento normativo.

Los flujos de trabajo a nivel del sistema se cargan desde directorios específicos del sistema operativo:

**macOS:**

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

**Linux/WSL:**

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

**Windows:**

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

Coloca los archivos de flujo de trabajo (en formato `.md`) en el directorio correspondiente a tu sistema operativo. El sistema cargará automáticamente todos los archivos `.md` de esos directorios.

<div id="workflow-precedence">
  ### Precedencia de los flujos de trabajo
</div>

Cuando existen flujos de trabajo con el mismo nombre en distintos niveles, los flujos de trabajo a nivel de sistema tienen la máxima precedencia:

1. **Sistema** (máxima prioridad) - Flujos de trabajo de toda la organización desplegados por TI
2. **Espacio de trabajo** - Flujos de trabajo específicos del proyecto en `.windsurf/workflows/`
3. **Global** - Flujos de trabajo definidos por el usuario
4. **Integrados** - Flujos de trabajo predeterminados proporcionados por Windsurf

Esto significa que, si una organización despliega un flujo de trabajo a nivel de sistema con un nombre específico, anulará cualquier flujo de trabajo de espacio de trabajo, Global o Integrado con el mismo nombre.

En la UI de Cascade, los flujos de trabajo a nivel de sistema se muestran con la etiqueta "System" y los usuarios finales no pueden eliminarlos.

<Note>
  **Importante**: Los flujos de trabajo a nivel de sistema deben ser gestionados por tu equipo de TI o de seguridad. Asegúrate de que tus equipos internos se encarguen del despliegue, las actualizaciones y el cumplimiento de acuerdo con las políticas de tu organización. Para ello, puedes usar herramientas y flujos de trabajo estándar, como Mobile Device Management (MDM) o Configuration Management.
</Note>
