What happens when you approve a requirement

One click on Approve spawns a graph of specialist agents — running in parallel where they can, waiting for each other where they can't. Here's a minute-by-minute tour of the work that happens between your approval and a running app.

The thing that most surprises PMs the first time they use AlgorithmShift isn't that it generates code. Every AI coding tool generates code now. It's the moment after you click Approve on a requirement.

One click. Five agents start moving. Three tasks run in parallel. Within a minute or two, a schema, a theme, and a layout are on screen. This is worth explaining because it's the biggest single shift from other tools — and it's entirely driven by the shape of the orchestration graph sitting underneath.

The setup

Your PM has written a prompt — say, "admins should be able to bulk-delete tickets with a 7-day recoverable trash window." The Requirements agent turned it into a structured spec with 2 entities, 2 pages, and 4 clarifying questions. The PM answered the questions. The spec is ready.

They hit Approve.

The moment of approval

What a PM sees is one thing: the status pill on the requirement flips to approved. What happens underneath is a fan-out — five tasks appear in the project tracker, already typed and wired up:

  1. Generate visual identity — routed to the Design agent.
  2. Build database schema — routed to the Schema agent.
  3. Generate app shell — routed to the Layout agent.
  4. Plan pages — routed to the page planner.
  5. Wire routing + auth — routed to the Orchestration agent.

The tasks aren't a flat list. They're a graph: some depend on others. Design and Schema don't depend on each other, so they can run immediately, in parallel. Pages depend on Schema. Wiring depends on Pages. Release depends on everything.

You could run them in serial. You wouldn't want to — you'd be sitting there watching one agent finish, clicking Run on the next. The orchestration graph means the platform takes over the sequencing.

Parallelism as a user-visible feature

Concretely, on the bulk-delete example above:

  • t=0 — you approve. 5 tasks appear.
  • t=0s to 15s — Design and Schema run simultaneously. The palette card and the DDL files land on the tracker at roughly the same time.
  • t=15s — Layout starts (it was waiting on Design's tokens).
  • t=20s — Plan-pages starts (it was waiting on the schema's entities).
  • t=35s — Plan-pages finishes and fans out again: one per-page task per route in the manifest. These run in parallel.
  • t=60s — all pages done. Integration clients emit in parallel.
  • t=75s — integrations wired. The preview sandbox is running your app.

A minute and change. A minute and change to go from "approved spec" to "running app you can click around in."

Handoffs as contracts

Each agent speaks to the next through a typed artifact, not a prompt. The design agent outputs a design token JSON; the page agent consumes that JSON. The schema agent outputs entity JSON + migration files; the page agent consumes those too. There's no chat log being replayed between stages.

This is the boring structural detail that makes the exciting UX possible. If every handoff were a chat prompt, the fifth agent would be seeing a transcript of everything the first four said — prompt bloat, slow latency, bad coherence. Typed artifacts mean each agent sees exactly what it needs, nothing else.

It also means you can swap the model behind any single agent — move the Schema agent from Haiku to Sonnet for a trickier app — and nothing else in the graph notices.

Safety: what if something fails?

The most honest question engineers ask us: "what if an agent crashes halfway through?"

The graph is designed for it.

  • Every run is claimed before it starts. The platform records "I'm going to try this" before the agent does any work. If the worker dies mid-run, the next run sees a claimed-but-not-completed task and can safely retry.
  • Every artifact the agents produce is idempotent by construction. Re-running a schema migration is a no-op. Re-running page generation regenerates to the same target filename. You don't get duplicates from retries.
  • Human-in-the-loop tasks block the graph cleanly. If a reviewer hasn't approved the design spec, the layout task sits waiting, not skipped. Approval flips it forward.
  • Failed tasks don't cascade. If the page agent fails on one route, the other four routes finish. The failed one flags for retry; everything downstream of it waits; everything parallel to it keeps going.

The net effect is: you never end up in a half-applied state, and retry is always safe. Our bar is that a PM can crash the browser mid-approval and come back an hour later to a clean, resumable state. We've tested it.

What a PM actually does during that minute

You might expect "watch the progress bars" — that's not the shape.

What happens in practice:

  1. You approve at t=0.
  2. You go back to the requirement to edit the description, or open the next requirement, or go to lunch.
  3. A Slack notification hits you when your review is needed — typically at the design phase, sometimes at schema.
  4. You click through, approve, go back to whatever.
  5. Around t=60-90s, the preview is ready. Notification fires.

The orchestration graph is explicitly designed so a PM isn't watching. Their review is scheduled when their brain is useful (design choices, schema ambiguity) — not while code is being written. The agents run without supervision; the humans review the junction points.

The full shape

For reference, here's the handoff graph every approved requirement produces:

                    ┌──→ Design ──────────────┐
  Requirements ────→│                         ├──→ Wiring ──→ Release
                    └──→ Schema ──→ Pages ────┘
  • Requirements → Design + Schema — both unblock the moment you approve.
  • Design → Layout / UI work — design tokens feed layout and per-page work.
  • Schema → Plan-pages → Pages — schema's entity manifest spawns per-page tasks in parallel.
  • Pages → Wiring — routing and auth converge after pages are in.
  • Wiring → Release — the release bundle carries everything through to notes and deploy-ready artifacts.

What this means for you

Most of our customers say that the first time they felt the product click was the first approval. Seeing five parallel progress bars light up and fold themselves into a running app is a genuinely different feel from "type a prompt and wait for one big blob of code."

If you want to see it end-to-end with your own use case in mind, book a demo. It's a 20-minute walkthrough and the first five minutes are this exact flow.

Subscribe

One post in your inbox when we ship something worth reading.

Low-frequency, no marketing spray. Product updates, engineering deep-dives, and the occasional customer story.

Or subscribe via RSS

See the full platform in action.

Bring a real requirement. Watch it become a running app you can ship.