Files
Chris Sells d2f87d50de docs(pipeline): pin the CLI docs to the released bd; repair main's broken CLI reference (#4876)
* docs(pipeline): pin the generated CLI docs to the released bd; repair main's CLI reference

The #4874 squash-merge raced the docs-autofix bot: the bot had pushed a
regeneration from main's source onto the PR branch, so the squash landed a
contradictory mix — the release-aligned hand-written docs plus a CLI
reference re-documenting unreleased commands and flags, with docs.json
referencing four pages (heartbeat, migrate-personal, reclaim, unclaim)
whose files do not exist. That broken nav fails the docsync guard on main
and on every branch cut from it. This restores the intended end state of
#4874 and lands the pin that prevents the race from recurring.

- Regenerate the CLI reference from a bd built from the v1.1.0 tag (CI's
  canonical pure-Go build), removing the unreleased commands/flags and
  fixing the dangling nav entries.
- docs/cli-docs.pin names the release tag; scripts/resolve-docs-bd.sh
  builds and caches a canonical pure-Go bd from that tag, fetching the tag
  first in shallow CI checkouts.
- generate-cli-docs.sh, check-doc-flags.sh, and check-cli-docs-drift.sh
  resolve bd through the pin and ignore a supplied binary while pinned
  (BD_DOCS_IGNORE_PIN=1 bypasses), so the drift gates and the autofix bot
  now enforce docs-match-release instead of docs-match-main.
- tools/docsmint detects the pre-overhaul Docusaurus staging layout that
  bd <= v1.1.0 emits and converts it to the generic form before its normal
  Mintlify transform (tested); removable once the pin reaches a release
  whose emitter writes build/cli-docs.
- check-doc-flags.sh: run without timeout(1) on macOS instead of failing
  Check 4.
- Decision record: engdocs/decisions/2026-07-17-docs-release-pin.md; the
  beads-docs skill §8 updated to match.

* lint: annotate gosec G705 false positive in the docsmint legacy bridge

Same class as the existing nav-splice annotation: a developer tool writing
repo Markdown, not a web-output sink.
2026-07-17 18:03:28 -07:00

3.1 KiB

title, description
title description
bd swarm Swarm management commands for coordinating parallel work on epics.

{/* AUTO-GENERATED: do not edit manually */}

Generated from bd help --doc swarm.

Swarm management commands for coordinating parallel work on epics.

A swarm is a structured body of work defined by an epic and its children, with dependencies forming a DAG (directed acyclic graph) of work.

bd swarm [flags]

bd swarm create

Create a swarm molecule to orchestrate parallel work on an epic.

The swarm molecule:

  • Links to the epic it orchestrates
  • Has mol_type=swarm for discovery
  • Specifies a coordinator (optional)
  • Can be picked up by any coordinator agent

If given a single issue (not an epic), it will be auto-wrapped:

  • Creates an epic with that issue as its only child
  • Then creates the swarm molecule for that epic

Examples: bd swarm create bd-epic-123 # Create swarm for epic bd swarm create bd-epic-123 --coordinator=observer/ # With specific coordinator bd swarm create bd-task-456 # Auto-wrap single issue

bd swarm create [epic-id] [flags]

Flags:

      --coordinator string   Coordinator address (e.g., my-project/witness)
      --force                Create new swarm even if one already exists

bd swarm list

List all swarm molecules with their status.

Shows each swarm molecule with:

  • Progress (completed/total issues)
  • Active workers
  • Epic ID and title

Examples: bd swarm list # List all swarms bd swarm list --json # Machine-readable output

bd swarm list [flags]

bd swarm status

Show the current status of a swarm, computed from beads.

Accepts either:

  • An epic ID (shows status for that epic's children)
  • A swarm molecule ID (follows the link to find the epic)

Displays issues grouped by state:

  • Completed: Closed issues
  • Active: Issues currently in_progress (with assignee)
  • Ready: Open issues with all dependencies satisfied
  • Blocked: Open issues waiting on dependencies

The status is COMPUTED from beads, not stored separately. If beads changes, status changes.

Examples: bd swarm status gt-epic-123 # Show swarm status by epic bd swarm status gt-swarm-456 # Show status via swarm molecule bd swarm status gt-epic-123 --json # Machine-readable output

bd swarm status [epic-or-swarm-id] [flags]

bd swarm validate

Validate an epic's structure to ensure it's ready for swarm execution.

Checks for:

  • Correct dependency direction (requirement-based, not temporal)
  • Orphaned issues (roots with no dependents)
  • Missing dependencies (leaves that should depend on something)
  • Cycles (impossible to resolve)
  • Disconnected subgraphs

Reports:

  • Ready fronts (waves of parallel work)
  • Estimated worker-sessions
  • Maximum parallelism
  • Warnings for potential issues

Examples: bd swarm validate gt-epic-123 # Validate epic structure bd swarm validate gt-epic-123 --verbose # Include detailed issue graph

bd swarm validate [epic-id] [flags]

Flags:

      --verbose   Include detailed issue graph in output