claude-skills/engineering/workflow-builder/README.md
Claude bb9732bf10
feat(engineering): add workflow-builder skill for Claude Code workflows
New engineering/workflow-builder plugin: an intake-first skill that designs
and writes deterministic multi-agent workflow .js files for Claude Code's
Workflow tool (CLAUDE_CODE_WORKFLOWS=1, /workflows).

- Opens every session with the intake question set; when the user is vague,
  a stdlib recommendation engine infers and proposes a topology with rationale
  instead of stalling or interrogating in a loop.
- 3 stdlib Python tools: workflow_intake.py (topology + model + budget +
  rationale recommender), validate_workflow.py (.js linter enforcing
  pure-literal-meta / no-non-determinism / no-Node-APIs / parallel-thunk /
  guarded-loop rules), scaffold_workflow.py (5-topology starter generator).
- 3 references (7-8 sources each): API surface, orchestration patterns,
  decision + intake guide. 3 templates + a runnable PR-triage example.
- cs-workflow-architect agent + /cs:workflow-build command.
- Registered in marketplace.json (61 -> 62 plugins).

Conceptually inspired by Ray Amjad's claude-code-workflow-creator; all content
written fresh from the publicly-documented Workflow tool API.

Gates: description PASS, structure PASS (78 lines), review-checklist WARN
(skill vs Workflow tool terminology — official feature name), complexity 85/100.
All scripts pass --help/--sample; all shipped .js validate PASS.

https://claude.ai/code/session_01Q1kXbgMRodzhdTpgbCqVgx
2026-05-27 14:20:53 +00:00

55 lines
3.3 KiB
Markdown

# workflow-builder
Design and write deterministic multi-agent **workflow** scripts for Claude Code's Workflow tool — `.js` files in `.claude/workflows/` that fan work out to fresh-context sub-agents under plain JavaScript control flow. Only leaf `agent()` calls spend tokens, so the main session stays clean and the run is resumable.
Targets the Workflow tool introduced in Claude Code v2.1.147 (gated behind `CLAUDE_CODE_WORKFLOWS=1`, browsable via `/workflows`).
## The intake-first rule
Every workflow-creation session opens with an intake question set (what task, what unit of work, known list vs. loop, barrier vs. pipeline, structured output, depth). **When the user is vague, the skill does not stall or interrogate in a loop** — it runs a deterministic recommendation engine that infers a topology and presents it *with the reasoning* ("here's what I'd build and why"), then confirms before writing any file.
## What's in the box
| Component | Where | What it does |
|---|---|---|
| **Intake recommendation engine** | `skills/workflow-builder/scripts/workflow_intake.py` | Classifies a (vague) task → recommended topology + runner-up + per-stage model plan + budget guard + a one-line rationale per choice. |
| **Workflow validator** | `skills/workflow-builder/scripts/validate_workflow.py` | Stdlib linter for `.js` workflows: pure-literal `meta`, no `Date.now()`/`Math.random()`/argless `new Date()`, no FS/Node APIs in the orchestrator, `parallel()` thunks, guarded loops, `filter(Boolean)`, size cap. PASS / WARN / FAIL with line numbers. |
| **Scaffolder** | `skills/workflow-builder/scripts/scaffold_workflow.py` | Emits a runnable starter for any of 5 topologies (fan-out, pipeline, barrier, loop, judge-panel). |
| **3 references** | `skills/workflow-builder/references/` | API reference · orchestration patterns · decision + intake guide (7-8 sources each). |
| **Templates + example** | `skills/workflow-builder/assets/` | Fan-out / pipeline / loop starters + a complete PR-triage workflow. |
| **Persona agent** | `agents/cs-workflow-architect.md` | Design-first interrogator that refuses to write before the topology is confirmed. |
| **Slash command** | `commands/cs-workflow-build.md` | `/cs:workflow-build <task>` — runs the full intake → scaffold → validate flow. |
## Quick start
```bash
cd skills/workflow-builder
# 1. Turn a vague request into a concrete proposal
python scripts/workflow_intake.py --task "review my open PRs for bugs"
# 2. Scaffold the confirmed topology
python scripts/scaffold_workflow.py --topology pipeline --name pr-triage \
--description "Triage open PRs" > /tmp/pr-triage.js
# 3. Validate before running
python scripts/validate_workflow.py /tmp/pr-triage.js
```
All three tools run with `--sample` (no args) and `--help`.
## Running the workflows it writes
```bash
export CLAUDE_CODE_WORKFLOWS=1 # the feature is off by default
# save the .js under .claude/workflows/ , then launch + watch via /workflows
# P = pause/resume , X = skip a sub-agent ; failed agents retry automatically
```
## Attribution
Conceptually inspired by [Ray Amjad's claude-code-workflow-creator](https://github.com/ray-amjad/claude-code-workflow-creator). All content here was written for this repo against Claude Code's publicly-documented Workflow tool API; no text was copied verbatim.
## License
MIT.