🤖 AGENTS 5 min read

Stage zero: a product-owner agent now runs before the architect — and the one human gate moved with it

The pipeline used to start at the architect, so the first decision you approved was HOW to build. But the most expensive mistakes are made before that — in WHAT to build. So we added a product-owner agent that frames the problem, runs a 4-model idea debate, and hands the architect a validated brief. The gate moved to it.

For most of GreatCTO's life the pipeline started at the architect. You typed /start "build X", the architect drafted an ARCH doc and ADRs, and the first thing you approved was the architecture.

That always bugged me. By the time you're approving architecture, you've already answered the expensive question — should we build this at all, and what exactly? — silently, in the prompt. The architect is brilliant at HOW. Nobody owned WHAT and WHY.

So we added stage zero: a product-owner agent that runs before the architect. And we moved the single human gate to it.


What it does

product-owner is the cheapest place in the pipeline to say no. It runs four steps before a line of architecture is written:

  1. Frame the problem — restate the idea as a problem, not a solution. "I want a booking app" becomes "solo operators lose jobs because scheduling lives in their head." It locks who has the pain, what it costs them today, why now, and one measurable success metric.
  2. Diverge — generate 3–5 genuinely different bets (different user, different wedge, different scope), not cosmetic variants of one idea.
  3. Debate — the part I'm most proud of (below).
  4. Synthesize — write a brief the CTO can approve or kill in 60 seconds, and hand the architect a complete, unblockable handoff.

If the call is don't build, the pipeline stops here and writes the reason down. That's a feature, not a failure.

Top feature: a 4-model idea debate

A product owner who validates every idea is useless. To keep it honest, the brainstorming skill spins up a panel of four personas, each on a different model, debating over two rounds:

PersonaArguesModel
Visionarythe strongest case FOR — the 10x outcomeOpus
Skepticthe strongest case AGAINST — why it diesSonnet
User-Advocatethe user's honest reaction — would I pay, switch, care?Haiku
Pragmatistcost, time-to-ship, build-vs-buy, unit economicsKimi K2

Model diversity matters: different model families fail differently, so they catch different holes. Round 1 is blind and parallel; round 2 feeds each persona the others' positions and asks for a rebuttal plus the one condition that would change its mind. The product-owner (Opus) chairs — it doesn't count votes, it names the decisive consideration and preserves dissent.

The whole panel costs $0.30–0.60 per idea. That's the cheapest insurance in the pipeline: it runs before any engineering time is spent, at the stage where "no" is free and "yes" is expensive.

How it actually helps you build

We ran it for real on a test product — PatientFlow, a reminders + intake app for small medical clinics — and the debate did exactly what a good product review does:

The chair's synthesis wasn't an average. It found the one move that escaped both kill-vectors — the auto-backfill wedge scoped to appointment metadata only — and encoded the Skeptic's surviving objection as a kill criterion with a threshold ("if fewer than 3 of 10 clinics will pay ≥$200/mo standalone, stop"). That's a brief an architect can build against and a CTO can bet on.

Why we went to one gate — and why we moved it

GreatCTO's whole philosophy is one human gate: you approve the direction, the pipeline does the rest. CI and the generated tests are the quality gate; you sign the spec, not every line. More gates don't buy you more safety past a point — they buy you context-switching and rubber-stamping.

But here's the thing we got wrong at first: the gate was at the architect. So the one decision you made was "is this architecture good?" — which is answering the right question about the wrong thing. If the product is wrong, a perfect architecture just helps you build the wrong thing faster.

So we moved the gate upstream, to the product brief: gate:product. You approve WHAT and WHY before HOW. The architect now runs after your approval, on a validated brief — it never burns a cycle architecting something you'd have killed. One gate, at the only point where your judgment is irreplaceable: deciding what's worth building.

The receipt: an eval that caught its own bug

We don't ship pipeline changes on vibes. We ran the product-owner's output through an independent evaluator scored 0–100, and the first version scored 74.

It lost almost all its points in one place: the handoff. The brief was excellent, but it forgot to write mode, team-size, cost-cap, and geo into the project manifest — which means the architect's own gate would have blocked on the next step. The eval caught a real integration bug, not a style nit.

We fixed the spec (it now writes the full handoff contract and self-checks before raising the gate), re-ran the same eval, and it scored 94 — with the architect-acceptance check flipping from BLOCK to PROCEED. The agent even auto-classified the project as healthcare and set the stricter compliance fields on its own.

Wire it, guard-test it, eval it. Every new agent in GreatCTO ships with a structural test that asserts it's actually in the pipeline — because creating agents/product-owner.md isn't the same as wiring it.

Try it

npx great-cto init
/start "describe the product you want to build"

The product-owner frames it, runs the debate, and hands you a brief. Approve it once — everything after is automated, through to a shipped repo and a live URL.

It's free, MIT, and runs locally. The product-owner prompt and the brainstorming skill are on GitHub — read them, override them, fork them.