Multi-phase agent orchestration system. Bootstraps .claude/workflows/ in any project. Commands: init (bootstrap), run (execute), list (show workflows), create (new from template), plan (build plan). Use when: "init workflows", "run workflow X", "list workflows", "create workflow".
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-workflow-plugin:workflowThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Portable multi-phase agent orchestration. Bootstraps `.claude/workflows/` in any project.
Portable multi-phase agent orchestration. Bootstraps .claude/workflows/ in any project.
Two kinds. Skill actions (init, run, create) are orchestrated by Claude.
CLI subcommands are run via bun run .claude/workflows/cli.ts <subcommand>:
| CLI subcommand | Purpose |
|---|---|
list | List discoverable workflows |
plan <name> '<args>' | Build plan as JSON |
show <name> '<args>' | Build plan in readable form |
validate <name> '<args>' | Validate args against args_schema |
meta <name> | Print workflow metadata |
init — Bootstrap workflow system in current projectRun: bun run <skill-dir>/skills/workflow/scripts/init.ts
This generates in the current project:
.claude/workflows/
├── cli.ts # bun run .claude/workflows/cli.ts <command>
├── src/ # Runtime (symlinked to plugin)
│ ├── types.ts
│ ├── runtime.ts
│ └── validator.ts
├── templates/ # Starter workflows (copied, user can customize)
└── README.md
Non-destructive: existing files are NEVER overwritten.
run <workflow> [args] — Execute a workflowbun run .claude/workflows/cli.ts show <name> '<args-json>'Adversarial verify — for verified-swarm/survey-round, a Verify phase runs
several independent voters per item. Run that item's Fix agent only if the
majority rejected it; skip the rest. This catches agents that suppress errors
instead of fixing them.
Convergence loop — survey-round is the plan for one round only. The
static-plan runtime cannot express a round-loop, so drive it yourself: run the
round, read the Survey agent's remaining, and repeat until remaining == 0 or a
MAX_ROUNDS cap. The orchestrate skill describes the full loop.
Agent invocation:
Agent({
description: "<label>",
prompt: "<prompt>\n\nIMPORTANT: Return ONLY valid JSON matching this schema:\n<schema>\n\nNo markdown fences, no commentary, only the JSON object.",
})
list — List workflowsbun run .claude/workflows/cli.ts list
plan <workflow> [args] — Build plan without executingbun run .claude/workflows/cli.ts show <name> '<args-json>'bun run .claude/workflows/cli.ts plan <name> '<args-json>'create <name> [template] — Create new workflow from templatesingle-agent — one agent, schema-validated outputmulti-stage — implement → verify → fix pipelineparallel-swarm — N agents in parallel + aggregateverified-swarm — parallel implement + 3-vote adversarial verify + conditional fixsurvey-round — one round of a convergence loop (survey → fix → verify)<skill-dir>/skills/workflow/templates/<template>.workflow.ts to .claude/workflows/<name>.workflow.ts../src/types.ts → ./src/types.ts (templates live one dir deeper than root workflows)The skill directory is wherever this plugin is installed. Check:
~/.claude/plugins/claude-workflow-plugin/skills/workflow/Use ${CLAUDE_SKILL_DIR} environment variable if available, or ask the user.
import type { WorkflowMeta, WorkflowContext } from "./src/types.ts";
export const meta: WorkflowMeta = { name, description, phases, args_schema? };
export function execute(ctx: WorkflowContext): Record<string, unknown> { ... }
Runtime API in ctx:
ctx.agent(prompt, { label, phase, schema }) — register agentctx.pipeline(items, stage) — parallel stagectx.multiPipeline(items, ...stages) — multi-stagectx.phase(title) — mark phasectx.log(msg) — structured logctx.validate(value, schema) — JSON Schema validationnpx claudepluginhub xirothedev/claude-workflow-plugin --plugin claude-workflow-pluginGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.