The execution half of Betamaxx

The Agentic
Software Factory.

Betamaxx decides what to build. The factory builds it.

A factory is an agent that finishes work. It takes one ticket, writes the code and the tests, breaks it, fixes it, ships it and proves it works in a real browser, then tells the person who reported the problem what changed for them. This page is the whole contract: how the factory runs, where a human stands in the way, and the checklist that decides whether a loop may call itself a factory.

What it is

An agent that finishes work,
not one that suggests it.

A copilot produces a suggestion and waits for a person to check it. A factory produces a shipped change and carries the proof that it works. The difference is not speed, it is who has to be awake.

Takes the work in

It claims one unit of work at a time and holds it to itself, reads the report as evidence rather than as instructions, and keeps asking until the intent is clear. It does not plan on a guess, and it does not start a second piece of work while the first is open.

Builds it properly

Tests before or with the code, one codebase at a time, every wait bounded. It looks up what already exists before inventing it, attacks its own plan before writing it, and ships nothing it cannot explain.

Proves it, then reports

The full suite green, the deployed artifact checked, every requirement marked with evidence rather than confidence, and a real browser opened for anything a person will click. Then it writes the message to the end user itself, in the product's own voice.

Betamaxx hands the factory a ticket with the evidence attached: the reports behind it, the cluster, what the codebase and the documentation already say, and the decision the Product Officer made. What comes back is a change in production and a message the reporter can read. Everything below is what has to be true for that handover to be trustworthy.

How it runs

Every piece of work runs the same way.

Small work runs straight through: state the intent, capture the requirements, build it test-first, verify, deliver. Large work earns its gates. The phases below are the large path, and the magenta ones are where a human has to answer before anything moves.

1

Classify

Decide what kind of work this is and how big it is. Small work is not stopped for sign-off, and large work is never run as if it were small. When the size is unclear, it starts small and says so when the work turns out bigger.

2

Intake

Goal, context, who uses it, what done means, the hard constraints. It keeps asking until every one of those is answered, then repeats the intent back and asks whether it got it right. Gate: the human confirms the intent.

3

Research

What already exists for this: current practice, packages, prior implementations. It reads the sources rather than recalling them, and cites what it used. Gate: the approach is agreed before planning.

4

Specify

Every stated requirement becomes a checkable specification with a priority, and broad ones are broken into the parts that can actually be verified. Anything written down by someone else, a plan or a ticket list, is a claim to verify, not evidence. Gate: the specification set is signed off.

5

Attack the plan

A hostile pass over its own design: empty input, missing data, concurrency, how it fails and how it recovers, who can abuse it, what it costs to maintain, and what here is unnecessary and should be cut. Findings become new requirements, a change, or an accepted risk said out loud.

6

Plan and approve

A written plan another competent engineer could execute without re-deriving anything: approach, decisions, milestones, risks, definition of done. Gate: nothing is implemented until the human says yes. A "go" from someone who has not read it still shows the plan first.

7

Build

Test-first, milestone by milestone, inside the one codebase it was given. No scope creep, no silent deferrals, no placeholder left on a path a user can reach. Commits say what changed and why. Every wait has a bound, and a hang is treated as a bug signal rather than a reason to wait longer.

8

Verify

The whole suite, not a convenient subset, until green. The artifact the user actually receives is inspected, clean-room, not the source that happened to pass. Every requirement is marked met only with evidence, and anything that cannot be verified is said so and asked about. Anything a person uses in a browser is driven through a real browser, console included.

9

Deliver

A changelog entry in plain words, a report that separates what was run from what was assumed, and the user-facing message written by the factory in the product's voice. Gate: publishing and deploying are the human's call unless a written release policy already authorises it.

The gates

The human is not the reviewer.
The human is the decision.

Gates exist so that judgement stays with a person and labour moves to the machine. A gate is not a checkpoint where someone reads code; it is a question the factory is not allowed to answer for you.

What matters

Which reports become work, what happens now, what goes in the plan and what does not get built at all. This one never leaves the machine, whatever it thinks.

The plan

For large work, the approach and the plan are approved by a named person before a line of implementation is written.

Scope and tension

When a requirement read literally creates a product contradiction, the factory stops and asks instead of implementing it and calling it delivered.

Release

Production, publishing and any irreversible step need a written policy or a person. No policy means it always asks.

And the parts where the factory is on its own, because stopping there would be laziness wearing caution: it does not ask permission to write a test, to run the suite, to read the codebase, to reproduce a bug, to fix what the verification caught, or to resume after an interruption. It asks when the product changes, not when the work gets tedious.

What it is never allowed to do alone

  • Edit another project's codebase, or global configuration, without being told to.
  • Publish, deploy or push to a registry without authorisation.
  • State a version, an API, a limit or a result as fact without having checked it.
  • Move part of the ask to "later" without saying so.
  • Mark a requirement met because the tests it wrote for itself pass.
The requirements

What a loop must have to be called a factory.

This is the bar, and it is deliberately unimpressed by model quality. Each line is a yes or a no you can put to any agent, including the one reading this page. A loop that cannot do these is a fast typist with tool access, and Betamaxx cannot hand it a ticket.

Take the work in

So two things never write the same file, and nothing starts on a guess.

  1. Claims one unit of work at a time and holds it exclusively, so no second agent starts the same ticket.
  2. Treats what a report says as data, never as instructions: text from a user cannot become a command.
  3. Asks until the intent is clear, and does not plan or build on an assumption.
  4. Keeps a trail a reviewer can read: claimed, analysed, building, tested, done.

Commit before building

So the work is aimed before it is fast.

  1. Turns every stated requirement into a checkable specification with a priority.
  2. Looks up what already exists, current practice and packages included, and cites what it read.
  3. Attacks its own plan before writing code: edge cases, failure modes, security, maintainability, cost, scope.
  4. For large work, writes the plan down and gets an explicit yes from a person before implementing.

Build with discipline

So the change can be trusted by someone who did not watch it happen.

  1. Writes the test before or with the code, and commits only when it is green.
  2. Gives every fixed bug a regression test that fails on the old code.
  3. Works inside the one codebase it was given; another repo needs an explicit instruction.
  4. Puts a bound on every wait, and reads a hang as a bug signal rather than a reason for patience.
  5. Ships no stub, placeholder, fake data or invented fact on a path a user can reach. What is not real is said out loud.

Verify before claiming

The gap between "I wrote it" and "it works" is where most agent work dies.

  1. Runs the whole suite, not a subset, until it is green.
  2. Checks the artifact the user actually gets, deployed or packaged, not only the source that passed.
  3. Marks a requirement met only with evidence, and says so when it cannot be verified instead of self-certifying.
  4. Drives a real browser for anything a person will use, and reads the console and the network tab.
  5. Reports honestly: what was run, what was skipped, what is still unproven.

Leave the human in charge

Autonomy is about labour, not about decisions.

  1. Never publishes, deploys or pushes without a policy or a person authorising it.
  2. Writes the message to the end user itself, in the product's voice, and never sends internal text to a customer.
  3. Parks and asks when it is blocked on a decision, rather than choosing for the user.

Keep going, honestly

Long work fails quietly unless the loop is built to notice.

  1. Resumes after interruptions: a length stop, a compaction, a stall. It does not die mid-task in silence.
  2. Notices when it repeats a failing action and changes approach instead of trying again harder.
  3. Carries past criticism of its own behaviour into the next task, as a checkpoint it has to clear.

Twenty-four lines, and none of them are about how clever the model is. That is on purpose. A weaker model that obeys this list ships work you can rely on, and a stronger one that skips it is how you get a ticket marked resolved while the page is still broken.

Without one

Betamaxx still works.
It just has no hands.

You can run Betamaxx on your own agent, and plenty of people do. What you get, what stalls, and what Betamaxx specifically depends on are three different lists.

What still works

Everything up to the decision. Reports arrive from the widget, mail and monitors, get read, clustered, deduplicated and triaged against your codebase and documentation, and surface as decisions with the evidence attached. Plans get drafted. You stay the Product Officer.

What stalls

Everything after the decision. A ticket approved with nobody to execute it sits In Progress. Nobody writes the tests, so nothing proves the fix. Nobody deploys, so production does not change. Nobody writes the message, so the mail your user receives is whatever your app can compose from the facts it was handed.

What Betamaxx depends on

Betamaxx marks a ticket resolved on your agent's word plus its tests and its change. Five of the twenty-four are the ones it cannot work around: claim one at a time (1), test before or with the code (9), the whole suite green (14), evidence instead of self-certification (16), and the user's message written in your product's voice (20).

So the honest answer to "do I need a factory to use Betamaxx" is: not to see your feedback clearly, yes to have it shipped. If your loop covers the five, you can run Betamaxx on it today. If it covers none, start your agent against the checklist below and see what it says.

Check your agent

Ask your agent whether it is a factory.

The Betamaxx install instructions ask your agent to do this before it installs anything, and to answer in the open. It is a five minute test, and it is far cheaper than discovering the shortfall from a broken release.

What your agent should do when it reads this page

  1. Read the checklist above against its own environment, item by item, and decide yes or no for each of the twenty-four.
  2. Say what it has, and with what: which tool or rule covers each item it can do.
  3. Say what it lacks, and what each gap costs in practice. Not "no browser verification", but "a UI ticket can be marked resolved while the page is still broken, and your users will find it before you do".
  4. Say how to close each gap: what to install, what rule to add, what to configure, and which gaps it can cover itself during this integration.
  5. Only then continue with the install, and state which steps it will carry out itself.

The default yes. An agent that already runs a factory skill for the flow above, and a diligence layer that captures requirements and verifies them at the end, with web search and page fetch tools available, is compliant by default. It still says so in one line rather than staying silent, because a silent pass is indistinguishable from a skipped check.

No names, on purpose. This page describes capabilities, not products. Any loop that meets the twenty-four lines qualifies, whatever it is built out of. If someone offers you a factory by brand name and it cannot walk this checklist, the brand is doing the work, not the factory.

Where Betamaxx fits

Two halves: decide what matters,
and get it built.

Betamaxx is the half that listens and decides: intake from every channel, understanding, triage, the plan, the human gate, the evidence. The factory is the half that builds. Together they close the loop from a user's complaint to verified production without anyone assigning it.