mcpField
W
workflow-create

workflow-create

github.com/ruvnetエージェントワークフロー80.0k738 回インストール今日更新
リポジトリ

workflow-create について

workflow-createは、永続化されたMCPテンプレートまたはネイティブJavaScriptスクリプトでワークフローを作成するスキルです。人の承認を挟む一時停止・再開可能な処理と、構造化結果を扱うサブエージェントの並列編成に対応します。

主な機能

  1. 01MCPワークフローテンプレートの作成
  2. 02逐次・並列・条件付きステップ
  3. 03一時停止・再開と承認ゲート
  4. 04JavaScriptによるサブエージェント編成
  5. 05スキーマによるエージェント出力検証

活用シーン

  1. 01人の承認を含む再開可能な処理の構築
  2. 02複数のサブエージェントによるレビューや監査
  3. 03複数の項目を個別のステージに流す処理

MCP 対応

RufloのMCPツールを使い、テンプレートの一覧表示、ワークフロー定義の作成・管理、状態確認を行います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ruvnet/ruflo --skill workflow-create

インストール後、Claude Code で/workflow-createを入力して読み込まれたか確認します。

詳細

ワークフローの作成

目的に合った場所でワークフローを作成します。

作成場所を選ぶ

  • MCP ワークフローテンプレート — 一時停止/再開のライフサイクルを持つ永続的な定義です。長期間にわたる、人による承認が必要な、中断後に再開できるパイプラインに使用します。
  • ネイティブの .claude/workflows/*.js — サブエージェントを並行して実行する命令型のオーケストレーションスクリプトです。構造化された結果をコードで集約する、包括的な並列実行(レビュー、監査、移行、調査)に使用します。

A — MCP ワークフローテンプレート

  1. テンプレートを一覧表示 — mcp__plugin_ruflo-core_ruflo__workflow_template を呼び出して、利用可能なテンプレートを確認します
  2. ワークフローを作成 — ステップ、条件、実行順序を指定して mcp__plugin_ruflo-core_ruflo__workflow_create を呼び出します
  3. ワークフローを一覧表示 — mcp__plugin_ruflo-core_ruflo__workflow_list を呼び出して、定義済みのワークフローをすべて確認します
  4. ステータスを確認 — mcp__plugin_ruflo-core_ruflo__workflow_status を呼び出して、ワークフローを監視します
  5. クリーンアップ — mcp__plugin_ruflo-core_ruflo__workflow_delete を呼び出して、使用していないワークフローを削除します

機能:順次/並列ステップ、条件分岐、テンプレート継承、一時停止/再開に対応した承認ゲート。

B — ネイティブの .claude/workflows/*.js

.claude/workflows/ の下に .js ファイルを作成します。ファイルは純粋なリテラルの export const meta ブロックで始める必要があります。本文は次のフックが注入された非同期ラッパー内で実行されます(トップレベルの await/return が使用できます)。

フック目的
agent(prompt, opts)サブエージェントを1つ起動します。opts.schema(JSON Schema)を渡すと、検証済みの構造化出力を取得できます
parallel(thunks)バリアを使ってサンクを並行実行します。結果に対して .filter(Boolean) を適用します
pipeline(items, ...stages)各項目を個別にステージへ渡してストリーミング処理します — バリアよりこちらを優先してください
phase(title) / log(msg)進捗のグループ化/状況説明
export const meta = {
  name: 'my-workflow',                 // becomes the invocable name — must be a pure literal
  description: 'one line',
  phases: [{ title: 'Find' }, { title: 'Verify' }],
}
const SCHEMA = { type: 'object', required: ['ok'], properties: { ok: { type: 'boolean' } }, additionalProperties: false }
phase('Find')
const found = await agent('find the things', { schema: SCHEMA, agentType: 'tester' })
phase('Verify')
const checked = await parallel((found.items || []).map((it) => () =>
  agent(`verify ${it}`, { schema: SCHEMA })))
return { found, checked: checked.filter(Boolean) }

ルール:meta は純粋なリテラルにします(変数/関数呼び出し/補間は不可)。parallel より pipeline を優先してください。Date.now()/Math.random() は使用しないでください(エラーになるため、代わりにインデックスで変化を付けます)。構文を検証してください(本文は非同期ラッパー内の ESM であり、単独のモジュールではありません)。

node -e 'const fs=require("fs");let s=fs.readFileSync(".claude/workflows/my-workflow.js","utf8").replace(/^export\s+const\s+meta/m,"const meta");fs.writeFileSync("/tmp/wf.mjs","let agent,parallel,pipeline,phase,log,args,budget,workflow;async function __wf(){\n"+s+"\n}")' \
  && node --check /tmp/wf.mjs && echo OK

workflow-run スキルまたは Workflow({ name: 'my-workflow' }) で実行します。参考:.claude/workflows/plugin-contract-audit.js。ADR-0002 を参照してください。

コメント