# SwarmForge Predefined Workflow Configurations: Two-Pack, Four-Pack, and Six-Pack Explained

> Explore SwarmForge predefined workflow configurations like Two-Pack, Four-Pack, and Six-Pack. Discover how each offers advanced agent roles and quality gates on dedicated Git branches for efficient CI/CD.

- Repository: [Robert C. Martin/swarm-forge](https://github.com/unclebob/swarm-forge)
- Tags: deep-dive
- Published: 2026-08-11

---

**SwarmForge provides three predefined workflow configurations—Two-Pack, Four-Pack, and Six-Pack—each stored on dedicated Git branches with progressively richer agent roles and quality gates.**

The `unclebob/swarm-forge` repository implements a **branch-based workflow system** where each predefined configuration lives on its own branch. These branches contain the complete runtime environment: [`swarmforge/swarmforge.conf`](https://github.com/unclebob/swarm-forge/blob/main/swarmforge/swarmforge.conf), role-specific prompts, and any local constitution articles needed for that workflow. The `main` branch serves only as a documentary branch with shared operational scripts.

## Two-Pack: The Quick Backend Workflow

**Two-Pack** is the minimal predefined workflow configuration in SwarmForge. It deploys **two agents only** and deliberately skips Gherkin acceptance testing to maximize execution speed.

According to the source code in [`README.md`](https://github.com/unclebob/swarm-forge/blob/main/README.md) at lines 21–23, this configuration targets small tasks where fast turnaround matters more than comprehensive specification coverage. Despite its minimalism, Two-Pack still preserves backend refactoring and hardening capabilities.

```bash

# Launch the Two-Pack workflow

BRANCH=two-pack ./swarm

```

## Four-Pack: The Compact Specification Workflow

**Four-Pack** adds **Gherkin-style specification** and modest architectural planning without the full overhead of a QA pipeline. This predefined workflow configuration sits in the middle ground—more rigorous than Two-Pack but lighter than Six-Pack.

The source code at [`README.md`](https://github.com/unclebob/swarm-forge/blob/main/README.md) lines 30–32 describes this as the compact specification workflow, suitable for medium-size projects that need clear requirements documentation but don't require exhaustive quality gates.

```bash

# Launch the Four-Pack workflow

BRANCH=four-pack ./swarm

```

## Six-Pack: The Full Workflow

**Six-Pack** represents the most comprehensive predefined workflow configuration in SwarmForge. It includes **up-front QA, backend verification, detailed architectural considerations**, and complete specification coverage.

As implemented at [`README.md`](https://github.com/unclebob/swarm-forge/blob/main/README.md) lines 41–43, each major quality gate receives its own dedicated role and agent. This configuration provides the most rigorous process for large projects where thoroughness outweighs execution speed.

```bash

# Launch the Six-Pack workflow

BRANCH=six-pack ./swarm

```

## How Predefined Workflow Configurations Work Internally

Each predefined workflow configuration branch contains its own [`swarmforge/swarmforge.conf`](https://github.com/unclebob/swarm-forge/blob/main/swarmforge/swarmforge.conf) file that defines the **window/role topology** for that specific workflow. When you execute the `./swarm` wrapper, it performs two operations:

1. Copies any missing shared scripts from `main` into the selected branch
2. Launches the swarm defined by that branch's [`swarmforge.conf`](https://github.com/unclebob/swarm-forge/blob/main/swarmforge.conf)

The `BRANCH` environment variable controls which predefined workflow configuration loads. Using `main` directly for execution is **not supported**—[`README.md`](https://github.com/unclebob/swarm-forge/blob/main/README.md) line 73 explicitly documents this restriction.

**Key implementation files:**

- [`swarmforge/swarmforge.conf`](https://github.com/unclebob/swarm-forge/blob/main/swarmforge/swarmforge.conf) — Per-branch configuration defining agents and window layout
- `swarmforge/scripts/swarmforge.bb` — Wrapper script that reads configuration and launches tmux sessions
- `swarmforge/constitution/articles/workflow.prompt` — Shared constitution article; branches can override via `local-workflow.prompt`

## Managing Workflow Execution

Stopping any predefined workflow configuration requires **closing the first window listed** in the active [`swarmforge/swarmforge.conf`](https://github.com/unclebob/swarm-forge/blob/main/swarmforge/swarmforge.conf). The cleanup window automatically terminates all tmux sessions. This behavior is documented at [`README.md`](https://github.com/unclebob/swarm-forge/blob/main/README.md) lines 85–93.

## Summary

- **Three predefined workflow configurations** ship with SwarmForge: Two-Pack, Four-Pack, and Six-Pack
- **Branch-based architecture** isolates each configuration with its own [`swarmforge.conf`](https://github.com/unclebob/swarm-forge/blob/main/swarmforge.conf), prompts, and constitution articles
- **Progressive rigor**: Two-Pack (2 agents, no Gherkin) → Four-Pack (4 agents, compact spec) → Six-Pack (6 agents, full QA)
- **Launch via `BRANCH=<name> ./swarm`** — never execute directly from `main`
- **Shared scripts** from `main` copy automatically; stopping requires closing the first configuration window

## Frequently Asked Questions

### What are the predefined workflow configurations in SwarmForge?

SwarmForge provides three predefined workflow configurations: **Two-Pack** (minimal, 2 agents), **Four-Pack** (compact specification, 4 agents with Gherkin), and **Six-Pack** (full workflow, 6 agents with complete QA). Each lives on a dedicated Git branch with its own configuration.

### How do I switch between predefined workflow configurations in SwarmForge?

Set the `BRANCH` environment variable to the desired workflow name, then execute `./swarm`. For example: `BRANCH=four-pack ./swarm`. The wrapper script handles branch selection and script synchronization from `main`.

### Why does SwarmForge use branches for predefined workflow configurations?

Branches provide complete isolation of runtime environments. Each predefined workflow configuration maintains its own [`swarmforge.conf`](https://github.com/unclebob/swarm-forge/blob/main/swarmforge.conf), role prompts, and local constitution articles without interfering with other workflows. This design lets teams select rigor level by branch name alone.

### Can I run SwarmForge directly from the main branch?

No. The `main` branch contains only shared documentation and operational scripts. Execution requires selecting one of the three predefined workflow configuration branches via the `BRANCH` environment variable.