Skip to content

Blog

The Feature Builder checks for open bugs before it builds

The software-factory.dev build automation runs a pre-flight check first: a priority-1 or priority-2 bug nobody has picked up stops all new feature work.

Written by

Software Factory

Published: 19 June 2026 Updated: 2 min read

Before the Feature Builder writes a single line of a new feature, it checks whether the floor is broken.

That pre-flight check is the part worth walking through. The factory built in public at software-factory.dev (opens in a new tab) runs this automation, and it implements the next backlog feature end to end, but only after it has earned the right to.

When it wakes

It runs on a cron line, 0 */2 * * *, so it wakes every two hours. It also fires on a pull-request-merged event, so a fresh merge can kick off the next build, and it can be run by hand.

The pre-flight check

Once it wakes, it does not go straight to the backlog. It counts open pull requests, and if three or more are already open, it stops.

Then the check that matters. It looks for open priority-1 bugs that nobody has picked up yet, so none in progress, in review or handed to a human. If it finds any, it stops. The same check runs for priority-2 bugs.

So a high-priority bug that nobody is working on freezes all new feature work, and the builder leaves it to the Bug Fixer automation first. Once someone has picked the bug up, features move again: the check makes sure no serious bug sits without an owner, and it does not hold the line while a fix is already in progress or in review. Priority-3 bugs do not block, so the line keeps moving on small stuff, but serious breakage gets right of way.

Building, once both checks pass

Only when both checks pass does it pick the highest-priority backlog feature whose dependencies are all closed, and work it through: migration, types, data access, UI, component stories, page integration, tests, pull request.

Tests ship in the same pull request

Here is the second detail worth copying, the same instinct applied to tests. End-to-end tests are mandatory for any interactive UI, in the same pull request, never deferred. And if a change touches an existing interaction, the builder must find every affected test and update them all in that pull request. A change that leaves other tests broken is rejected.

Build order is a safety mechanism

Both rules come from one principle. Build order is a safety mechanism, not a convenience. A factory that adds features while bugs sit open is taking on debt to chase throughput. The pre-flight check trades a little speed now for a floor you can keep building on.

The automation itself: feature-builder.yaml in the factory’s repository (opens in a new tab).

What does your build pipeline check before it starts new work, and is “a serious bug nobody owns” one of the conditions that stops it?

Further reading

  1. An improvement automation needs a cap on its ambition The Product Improver in the software-factory.dev factory files at most three issues a run, and zero when it finds nothing worthwhile. 2 min read
  2. A bug-fix automation must never exit quietly The bug-fix automation in the software-factory.dev factory has two ways to end a run: it ships a fix or escalates to a human. Honest failure is a feature you have to design. 2 min read

All 18 parts

ClientsClient work

Scaling needs named owners

Coding agents scale across teams when named people own the platform, the team practice, the guardrails, and the measurement. Rollout & scale is where that ownership is built and handed to internal owners, in your stack.

Training on this topic: Agentic Software Factory: Advanced Team Training
See Rollout & scale

Want to check one team first? The self-check: twelve yes or no questions, three minutes, instant result, no account. Take the self-check