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

# Workflows

> 使用以 markdown 文件定义的可复用工作流，在 Cascade 中将重复性任务自动化。创建用于 PR 审查、部署、测试和代码格式化的工作流。

工作流使用户能够定义一系列步骤，引导 Cascade 完成一组重复性任务，例如部署服务或响应 PR 评论。

这些工作流会保存为 markdown 文件，方便用户及其团队以简单、可重复的方式运行关键流程。

保存后，可在 Cascade 中通过格式为 `/[name-of-workflow]` 的斜杠命令调用工作流。

<Note>
  工作流**仅支持手动执行** —— Cascade 绝不会自动调用工作流。如果你希望 Cascade 自行采用某个流程，请改用 [Skill](/zh/windsurf/cascade/skills)。
</Note>

<div id="how-it-works">
  ## 工作原理
</div>

规则通常在提示层面提供持久、可复用的上下文，从而为大型语言模型提供指导。

工作流在此基础上扩展，在轨迹层面提供一组结构化的步骤或提示，引导模型完成一系列相互关联的任务或操作。

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

要执行工作流，用户只需在 Cascade 中使用 `/[workflow-name]` 命令调用它。

<Tip>你可以在一个工作流内调用其他工作流！<br /><br />例如，/workflow-1 可以包含诸如“调用 /workflow-2”和“调用 /workflow-3”的指令。</Tip>

调用后，Cascade 会按顺序处理工作流中定义的每个步骤，并按指定执行操作或生成响应。

<div id="how-to-create-a-workflow">
  ## 如何创建 Workflow
</div>

要开始使用 Workflows，点击 Cascade 右上角侧边菜单中的 `Customizations` 图标，然后进入 `Workflows` 面板。在这里，你可以点击 `+ Workflow` 按钮来创建新的 Workflow。

Workflows 会以 markdown 文件的形式保存在 `.windsurf/workflows/` 目录下，包含标题、描述，以及一系列供 Cascade 执行的具体步骤与指令。

<div id="workflow-discovery">
  ## 工作流发现
</div>

Windsurf 会从多个位置自动发现工作流，便于灵活管理：

* **当前工作区及其子目录**：当前工作区及其子目录中的所有 `.windsurf/workflows/` 目录
* **Git 仓库结构**：对于 Git 仓库，Windsurf 还会向上搜索到 Git 根目录，在父级目录中查找工作流
* **多工作区支持**：当同一工作区中打开多个文件夹时，会对工作流进行去重，并以最短的相对路径显示

<div id="workflow-storage-locations">
  ### 工作流存储位置
</div>

| 范围                                                     | 位置                                          | 说明                                                  |
| ------------------------------------------------------ | ------------------------------------------- | --------------------------------------------------- |
| 工作区                                                    | `.windsurf/workflows/*.md`                  | 位于当前工作区中的任意子目录，或从当前目录向上直到 git 根目录之间的任意父目录。会随仓库一同提交。 |
| 全局                                                     | `~/.codeium/windsurf/global_workflows/*.md` | 在你机器上的所有工作区中均可用。不会提交。                               |
| 内置                                                     | 由 Windsurf 管理                               | Windsurf 随附的模板 (例如 `/plan`) 。                       |
| [系统 (Enterprise) ](#system-level-workflows-enterprise) | 因操作系统而异 (例如 `/etc/windsurf/workflows/`)     | 由 IT 部署，终端用户仅可读取。                                   |

当你通过 UI 创建新工作流时，它会保存在当前工作区的 `.windsurf/workflows/` 目录中，不一定位于 git 根目录。要创建全局工作流，请使用工作流面板中的 `+ Global` 按钮，或直接在 `~/.codeium/windsurf/global_workflows/` 中创建文件。

每个工作流文件最多可包含 12000 个字符。

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

<div id="generate-a-workflow-with-cascade">
  ### 使用 Cascade 生成工作流
</div>

你也可以让 Cascade 为你生成工作流！这在处理依赖特定 CLI 工具的一系列步骤的工作流时尤其好用。

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

<div id="example-workflows">
  ## 示例工作流
</div>

工作流有许多用例，例如：

<Card title="/address-pr-comments">
  这是我们团队内部用于处理 PR 评论的一个工作流：

  ```
  1. 检出 PR 分支：`gh pr checkout [id]`

  2. 获取 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. 对每条评论，执行以下操作。请记住一次只处理一条评论。
   a. 打印如下内容：“(index)。来自 [user] 于 [file]:[lines] — [body]”
   b. 分析该文件及其行范围。
   c. 如果你不理解该评论，不要更改。只需向我请求澄清，或让我自行处理。
   d. 如果你认为可以修改，请在继续下一条评论之前先完成更改。

  4. 在处理完所有评论后，总结你的改动，以及哪些评论需要 USER 的关注。
  ```
</Card>

<Card title="/git-workflows">
  使用预定义格式进行提交，并通过相应的 CLI 命令创建带有标准化标题和描述的拉取请求。
</Card>

<Card title="/dependency-management">
  基于配置文件 (如 requirements.txt、package.json) 自动安装或更新项目依赖项。
</Card>

<Card title="/code-formatting">
  在保存文件时或提交前自动运行代码格式化器 (如 Prettier、Black) 和代码检查工具 (如 ESLint、Flake8) ，以保持代码风格并及早发现错误。
</Card>

<Card title="/run-tests-and-fix">
  运行或补充单元测试或端到端测试，并自动修复错误，以确保在提交、合并或部署之前的代码质量。
</Card>

<Card title="/deployment">
  将应用部署到不同环境 (开发、预发布、生产) 的步骤自动化，包括必要的部署前检查和部署后验证。
</Card>

<Card title="/security-scan">
  将安全漏洞扫描集成到代码库中，并作为 CI/CD 流水线的一部分或按需触发。
</Card>

<div id="system-level-workflows-enterprise">
  ## 系统级工作流 (Enterprise)
</div>

Enterprise 组织可以部署系统级工作流，这些工作流在所有工作区中全局可用，且终端用户在没有管理员权限的情况下无法修改。此功能非常适合用于在整个组织范围内统一执行开发流程、部署流程以及合规性工作流。

系统级工作流会从特定于操作系统的目录中加载：

**macOS：**

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

**Linux/WSL：**

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

**Windows：**

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

将 workflow 文件 (`.md` 格式) 放到适用于对应操作系统的目录中。系统会自动从这些目录中加载所有 `.md` 文件。

<div id="workflow-precedence">
  ### 工作流优先级
</div>

当同名工作流存在于多个层级时，系统级工作流具有最高优先级：

1. **系统** (最高优先级) - 由 IT 在组织范围内部署的工作流
2. **工作区** - 位于 `.windsurf/workflows/` 中的项目专用工作流
3. **全局** - 位于 `~/.codeium/windsurf/global_workflows/` 中的用户定义工作流
4. **内置** - Windsurf 提供的默认工作流

这意味着，如果某个组织部署了一个具有特定名称的系统级工作流，它将覆盖任何同名的工作区、全局或内置工作流。

在 Windsurf UI 中，系统级工作流会显示为带有 “System” 标签，且终端用户无法删除。

<Note>
  **Important**：系统级工作流应由你的 IT 或安全团队进行管理。请确保由内部团队根据组织策略负责部署、更新和合规性。你可以使用标准工具和工作流来完成这些操作，例如移动设备管理 (MDM) 或配置管理。
</Note>
