You get two ways to build workflows: MCP templates for long-running, pausable processes with approval gates, or native JavaScript files in .claude/workflows/ for fan-out orchestration. The native route is more interesting. You write imperative code with agent(), parallel(), and pipeline() hooks, return structured data, and the system enforces determinism by blocking Date.now() and Math.random(). The meta export must be a pure literal so the runtime can extract it without execution. Default to pipeline over parallel to avoid unnecessary barriers. If you're doing comprehensive audits, migrations, or research where you need to spawn subagents and aggregate results in code, this is the right tool.
npx skills add https://github.com/ruvnet/ruflo --skill workflow-create