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

# ワークフロー

> デプロイ、PRレビュー、コード整形などの反復的なタスクをスラッシュコマンドで自動化するための、再利用可能な Cascade ワークフローを Markdown ファイルとして作成します。

ワークフローを利用すると、サービスのデプロイや PR コメントへの対応など、反復的なタスクの流れを Cascade に実行させるための一連のステップを定義できます。

これらのワークフローは Markdown ファイルとして保存されるため、ユーザーやチームは重要なプロセスを簡単に繰り返し実行できます。

保存したワークフローは、`/[name-of-workflow]` 形式のスラッシュコマンドで Cascade から呼び出せます。

<div id="how-it-works">
  ## 仕組み
</div>

ルールは通常、プロンプトレベルで永続的かつ再利用可能な前提情報を与えることで、大規模言語モデルに指針を与えます。

ワークフローはこの考え方をさらに発展させ、実行フローのレベルで構造化された一連のステップやプロンプトを与えることで、相互に関連する複数のタスクやアクションを順に進められるようモデルを導きます。

<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` ボタンをクリックすると、新しい ワークフロー を作成できます。

ワークフロー は `.windsurf/workflows/` ディレクトリ内の Markdown ファイルとして保存され、タイトル、説明、そして Cascade が従うための具体的な指示を含む一連の手順で構成されます。

<div id="workflow-discovery">
  ## ワークフローの検出
</div>

Windsurf は、柔軟に整理できるよう、複数の場所からワークフローを自動的に検出します。

* **現在のワークスペースとそのサブディレクトリ**: 現在のワークスペースとその配下のサブディレクトリ内にある、すべての `.windsurf/workflows/` ディレクトリ
* **Git リポジトリの構造**: Git リポジトリでは、親ディレクトリ内のワークフローを見つけるため、Git のルートディレクトリまでさかのぼって検索します
* **複数ワークスペースのサポート**: 同じワークスペースで複数のフォルダを開いている場合、ワークフローは重複を排除したうえで、最短の相対パスで表示されます

<div id="workflow-storage-locations">
  ### ワークフローの保存場所
</div>

ワークフローは、以下のいずれの場所にも保存できます。

* 現在のワークスペースディレクトリ内の `.windsurf/workflows/`
* ワークスペース内の任意のサブディレクトリ内の `.windsurf/workflows/`
* 親ディレクトリ内の `.windsurf/workflows/` (Git リポジトリの場合は Git ルートまで)

新しいワークフローを作成すると、必ずしも Git ルートではなく、現在のワークスペースの `.windsurf/workflows/` ディレクトリに保存されます。

各ワークフローファイルは最大 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. 各コメントについて、次の手順を行います。必ず一度に 1 件ずつ対応してください。
   a. 次の形式で出力します: "(index). [file]:[lines] の [user] からのコメント — [body]"
   b. ファイルと該当する行範囲を分析します。
   c. コメントの意図がわからない場合は、変更を加えないでください。私に確認を求めるか、私に実装を依頼してください。
   d. 変更できると判断した場合は、次のコメントに進む前にその変更を行ってください。

  4. すべてのコメントを処理したら、実施した内容と、ユーザーの対応が必要なコメントを要約してください。
  ```
</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 組織では、すべてのワークスペースで共通して利用でき、管理者権限がないエンドユーザーは変更できないシステムレベルのワークフローをデプロイできます。これは、組織全体の開発プロセス、デプロイ手順、コンプライアンスのワークフローを徹底するのに適しています。

システムレベルのワークフローは、OS ごとのディレクトリから読み込まれます。

**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. **System**  (最優先) - IT によって組織全体に展開されるワークフロー
2. **Workspace** - `.windsurf/workflows/` 内のプロジェクト固有のワークフロー
3. **Global** - ユーザー定義のワークフロー
4. **Built-in** - Windsurf によって提供されるデフォルトのワークフロー

つまり、組織が特定の名前のシステムレベルのワークフローを展開すると、同じ名前の Workspace、Global、Built-in の各ワークフローよりも優先されます。

Cascade UI では、システムレベルのワークフローは "System" ラベル付きで表示され、エンドユーザーが削除することはできません。

<Note>
  **重要**: システムレベルのワークフローは、IT またはセキュリティチームが管理してください。展開、更新、コンプライアンス対応は、組織のポリシーに従って社内チームが行うようにしてください。その際は、モバイルデバイス管理 (MDM) や構成管理などの標準的なツールやワークフローを利用できます。
</Note>
