Skip to main content

workflows

Author or run durable BB workflows when the user requests workflow execution or multi-agent orchestration.

Source facts

Repository
get-bb/bb
Last source activity
September 18, 2026 at 18:30
Detected SKILL.md language
English
Stars
3,989
Forks
564

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
4 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
workflows
description
Author or run durable BB workflows when the user requests workflow execution or multi-agent orchestration.
# BB workflows Use a workflow when the user explicitly asks for multi-agent orchestration. Ordinary tasks do not authorize a workflow run. A workflow puts deterministic control flow around normal BB worker threads. The script can fan out work, pipeline stages, verify results, and return structured data. Worker threads retain normal workspace tools and permissions. ## Start safely 1. Inspect the task and repository before you choose the work list. 2. Confirm the provider, model, and reasoning tuple from the live catalog. 3. Write the smallest workflow that gives the requested coverage. 4. Validate the exact source before execution. 5. Start the background run. 6. Emit the returned workflow preview directive exactly once. 7. Use compact status for progress and paged history for details. Check an explicit model selection with: ```sh bb provider list --environment "$BB_ENVIRONMENT_ID" --json bb provider models <provider-id> --environment "$BB_ENVIRONMENT_ID" --json ``` Do not guess model identifiers or partial selection tuples. ## Read only the required detail - Read references/authoring.md when you write or change workflow source, schemas, agent options, or nested workflows. - Read references/orchestration.md when you design pipelines, barriers, verification, panels, loops, or other quality controls. - Read references/runs.md when you validate, start, inspect, stop, or resume a workflow. ## Minimal source Every script starts with a literal meta object: ```js export const meta = { name: "review-change", description: "Review a change and verify the findings", phases: [{ title: "Review" }, { title: "Verify" }], }; const results = await pipeline( args.items, (item) => agent("Review " + item, { phase: "Review" }), (review, item) => agent("Verify this review for " + item + ":\n" + review, { phase: "Verify", }), ); return results; ``` Workflow source is JavaScript, not TypeScript. The script has no filesystem, shell, network, import, clock, or random access. Worker agents can use their normal tools. Use pipeline for independent multi-stage items. Use a parallel barrier only when the next stage needs all prior results. Use an agent schema when later stages need reliable structured data. A structured worker must return its value through the workflow result tool. ## Execute Validate and run with the same source selector: ```sh bb workflows validate --file .bb/workflows/review-change.js bb workflows run --file .bb/workflows/review-change.js --args '{"items":[]}' ``` The agent tool accepts script, scriptPath, or name. The CLI accepts --script, --file, or --name. After a successful agent-tool call, copy its previewDirective into the assistant response as one standalone line. Do not edit or repeat it. Use bb workflows status for compact progress. Redirect bounded history pages into BB_THREAD_STORAGE before inspection because history can contain full prompts and results. ## Quality check - The user explicitly requested workflow orchestration. - The source passes bb workflows validate. - Every explicit provider tuple exists in the live catalog. - Each phase name matches its meta entry. - Independent items use pipeline without an unnecessary barrier. - Bounded coverage logs what it omits. - Structured consumers receive schema-validated results. - The final response uses status or inspected history, not assumptions.
View on GitHub