autonomous tdd pipeline for your codebase

WHAT

bullpen takes a ticket and ships a branch. 5 AI agents work sequentially in an isolated git worktree — researching, planning, writing tests, implementing, and reviewing. The output is a single squashed commit on a feature branch, ready for a human to look at.

No magic. Just Claude Code CLI, git, and a pipeline.

THE PIPELINE

1 domain research read-only

Reads your codebase. Finds the files, patterns, and conventions relevant to the ticket.

2 planning read-only

Breaks the ticket into concrete implementation steps using what step 1 found.

3 test writing read/write

Writes failing tests first. TDD, not vibes.

4 implementation read/write

Makes the tests pass. Commits checkpoint.

5 review read-only

Reviews the actual git diff. Approves or rejects with feedback. Up to 3 retry loops.

squashed commit on feature branch

HOW IT WORKS

  ticket claimed          worker dispatches        orchestrator runs pipeline
  in browser              to orchestrator          in git worktree
 ───────────             ─────────────────        ────────────────────────
       │                        │                          │
       │  websocket             │  websocket / http        │  spawns claude
       ├───────────────────────►├─────────────────────────►│  code cli per step
       │                        │                          │
       │  progress updates      │  step callbacks          │  checkpoint commits
       │◄───────────────────────┤◄─────────────────────────┤  with [ao:step] tags
       │                        │                          │
       │  done                  │  pipeline-done           │  squash + cleanup
       │◄───────────────────────┤◄─────────────────────────┤  keep branch

ARCHITECTURE

worker

Cloudflare Durable Object. Coordinates state, routes tickets to orchestrators, handles WebSocket connections. SQLite-backed.

orchestrator

Runs on your machine. Spawns Claude Code CLI, manages git worktrees, talks to JIRA. Multiple instances across machines.

client

React + PixiJS. Gamified office visualization — watch agents sit at desks and work through your tickets in real-time.

agents

Prompt builders and tool definitions for each pipeline role. Configurable per-repo via claudefiles.

DETAILS THAT MATTER

RUN IT

# clone
git clone https://github.com/giancarlopetrini/bullpen.git
cd bullpen

# install
pnpm install

# start the orchestrator (runs on your machine)
pnpm --filter orchestrator dev

# start the client (watch agents work)
pnpm --filter client dev

Requires Claude Code CLI and a Claude API key or Max subscription.

BRING YOUR OWN LLM

The orchestrator runs locally. It spawns Claude Code CLI on your machine with your API key. bullpen doesn't proxy, meter, or touch your tokens. Your codebase never leaves your machine.

The only hosted piece is the worker — a lightweight state coordinator on Cloudflare. It sees ticket metadata and pipeline progress, not your code.