> ## 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 Workflows，使用斜杠命令来自动化部署、PR 审查和代码格式化等重复性任务。

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

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

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

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

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

工作流将这一概念扩展到轨迹级别，以结构化的步骤或提示序列，引导 AI 模型完成一系列相互关联的任务或操作。

<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/`
* 工作区任意子目录下的 `.windsurf/workflows/`
* 各级父目录（直至 Git 根目录，适用于 Git 仓库）下的 `.windsurf/workflows/`

当你创建新工作流时，它会保存到当前工作区的 `.windsurf/workflows/` 目录中，不一定位于 Git 根目录。

每个工作流文件上限为 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>

Workflows 有诸多用例，例如：

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

  ```
  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)。From [user] on [file]:[lines] — [body]"
   b. 分析对应文件及行范围。
   c. 如果不理解该评论，不要修改代码。只需向我请求澄清，或让我来实现。
   d. 如果确定可以修改，请在继续下一条评论之前完成修改。

  4. 处理完所有评论后，总结你所做的更改，以及哪些评论需要用户（USER）关注。
  ```
</Card>

<Card title="/git-workflows">
  使用预定义的提交格式，并通过合适的 CLI 命令创建带有标准化标题和描述的 pull request。
</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. **System**（最高优先级）- 由 IT 在整个组织范围内部署的工作流
2. **Workspace** - 位于 `.windsurf/workflows/` 中的项目级工作流
3. **Global** - 用户定义的全局工作流
4. **Built-in** - Windsurf 提供的默认内置工作流

也就是说，如果某个组织部署了一个具有特定名称的系统级工作流，它会覆盖任何具有相同名称的 Workspace、Global 或 Built-in 工作流。

在 Cascade 的 UI 中，系统级工作流会带有 "System" 标签显示，且终端用户无法删除这些工作流。

<Note>
  **Important**: 系统级工作流应由你的 IT 或安全团队进行管理。请确保你的内部团队根据组织策略负责部署、更新以及合规性管理。你可以使用诸如移动设备管理（Mobile Device Management，MDM）或配置管理等标准工具和工作流来实现这一点。
</Note>
