workflow-create について
workflow-createは、永続化されたMCPテンプレートまたはネイティブJavaScriptスクリプトでワークフローを作成するスキルです。人の承認を挟む一時停止・再開可能な処理と、構造化結果を扱うサブエージェントの並列編成に対応します。
主な機能
- 01MCPワークフローテンプレートの作成
- 02逐次・並列・条件付きステップ
- 03一時停止・再開と承認ゲート
- 04JavaScriptによるサブエージェント編成
- 05スキーマによるエージェント出力検証
活用シーン
- 01人の承認を含む再開可能な処理の構築
- 02複数のサブエージェントによるレビューや監査
- 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 ワークフローテンプレート
- テンプレートを一覧表示 —
mcp__plugin_ruflo-core_ruflo__workflow_templateを呼び出して、利用可能なテンプレートを確認します - ワークフローを作成 — ステップ、条件、実行順序を指定して
mcp__plugin_ruflo-core_ruflo__workflow_createを呼び出します - ワークフローを一覧表示 —
mcp__plugin_ruflo-core_ruflo__workflow_listを呼び出して、定義済みのワークフローをすべて確認します - ステータスを確認 —
mcp__plugin_ruflo-core_ruflo__workflow_statusを呼び出して、ワークフローを監視します - クリーンアップ —
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 を参照してください。