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

# 工作流程

> 创建可复用的 Cascade 工作流程 Markdown 文件，并通过斜杠命令自动执行部署、PR 审查和代码格式化等重复性任务。

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

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

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

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

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

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

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

要执行工作流程，用户只需在 Cascade 中通过 `/[workflow-name]` 命令调用即可。

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

调用后，Cascade 会依次处理工作流程中定义的每个步骤，并按要求执行操作或生成响应。

<div id="how-to-create-a-workflow">
  ## 如何创建工作流程
</div>

要开始使用工作流程，请点击 Cascade 右上角滑出菜单中的 `Customizations` 图标，然后进入 `Workflows` 面板。在这里，你可以点击 `+ Workflow` 按钮来创建一个新的工作流程。

工作流程会以 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/`
* 上级目录中的 `.windsurf/workflows/`，最远可到 git 根目录 (适用于 git 代码仓库)

创建新工作流程时，它会保存在当前工作区的 `.windsurf/workflows/` 目录中，不一定是在 git 根目录。

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

<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">
  ### 使用 Cascade 生成工作流程
</div>

你也可以让 Cascade 为你生成工作流程！对于需要在特定 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">
  ## 示例工作流程
</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">
  使用预定义格式提交 commit，并使用相应的 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">
  ## 系统级工作流程 (企业版)
</div>

企业版组织可以部署系统级工作流程，这些工作流程在所有工作区中全局可用，终端用户若无管理员权限则无法修改。这非常适合用于强制推行组织范围内的开发流程、部署步骤和合规工作流程。

系统级工作流程从操作系统对应的目录中加载：

**macOS:**

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

**Linux/WSL：**

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

**Windows：**

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

将你的工作流程文件 (`.md` 文件) 放在与你的操作系统对应的目录中。系统会自动加载这些目录中的所有 `.md` 文件。

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

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

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

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

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

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