Under the hood

An interview becomes a build-ready spec.

$ 30 questions in, 14 documents out.

A guided interview collects what is in your head. Two models then draft, critique, and rewrite a full specification: PRD, architecture, data model, API, tests. This page is the machinery that does it.

2
flows shipped, engine takes more
14
documents per Vision package
3
model passes: draft, critique, polish
4
providers, tiered fallback
per call
token cost tracked
Four ways in
The interesting work is not the model call. It is getting clear requirements out of vague answers, sorting them, keeping the author's exact words where they matter, and writing documents that agree with each other. The model calls are the last step of a longer machine.
01 / Engine

An engine, not a wizard.

Product Vision and Feature Use Case are the two flows shipped today. Neither is hardcoded. A flow is a folder of JSON; the engine supplies everything else. Any interview that ends in a model-assisted deliverable fits: a research brief, an RFP response, a migration plan.

flows/<your-flow>/ defines the what
the engine supplies the how
  • Interview UI: progress, resume, skip rules, sketch upload
  • Per-question AI suggestions, rate-limited per user
  • The classifier that sorts answers into the right sections
  • The draft, critique, polish pipeline with provider fallback
  • Validation, packaging, download, email delivery
  • Credits, billing, job queue, live progress stream
Adding a flow: copy flows/_template/, edit the JSON, route users to /interview?flow=research. No engine changes. The pipeline reads the new flow's questions, documents, and acceptance criteria the same way it reads the shipped ones.

Requirements work, mapped to the engine

What the work needs

  • Elicit intent from the person who has it.
  • Sort it into goals, scope, risks, constraints.
  • Write it down, structured and complete.
  • Check it is consistent and testable.

What the engine does

  • Structured interview, with inline suggestions.
  • A classifier sorts every answer into a section.
  • Draft, critique, polish writes the documents.
  • Schema validation plus test scripts in CI.
02 / Pipeline

A strong model, checked by a different one.

Opus drafts the documents and later rewrites them. Grok critiques in between, so the final pass answers an outside reviewer instead of grading its own work.

STAGE 1

Draft

Opus 4.8
STAGE 2

Critique

Grok 4.3
STAGE 3

Polish

Opus 4.8
STAGE 4

Package

code
measured production run draft 3m 24s · critique 34s · polish 2m 29s · full package 6m 33s
Draft writes every document to its acceptance criteria. Critique reads them and grades each one against those criteria, in writing. Polish takes the draft plus the critique and rewrites the weak parts, with the interview in front of it. On a real run the draft invented market statistics, the critique flagged them as ungrounded in the interview, and the rewrite removed them. That catch is why a different model does the critique.

How a user gets there
1

Pick a flow

Sign in with Google. New users get a free credit.

2

Answer

About 30 questions across 10 sections, with suggestions and sketch upload.

3

Forge

One click queues a job. A live terminal shows each stage.

4

Download

A zip of the documents: Markdown, Mermaid diagrams, Gherkin tests.

What you get
Every document has a written acceptance bar, declared in the flow's artifacts.json. Example, the executive summary: 300 words or fewer, states the user and the pain and the outcome, ends on one product-market-fit metric. The models write to that bar, not freehand.
03 / Internals

Where a model is used, and where it is not.

The model writes. Plain code does the parts that should be exact, cheap, and testable.

The classifier (no model)

People put requirements in the wrong place. Code moves them back.

Describing a product, someone buries a risk inside "scope," or names a second user while talking about features. A parser reads every answer, classifies each bullet, and moves the misplaced ones to the right section. Verbatim-tagged lines, like the one-liner, are kept word for word. This path is pure code: cheap, instant, and unit-tested. Knowing where to keep a model out is half the job.

Try it. Raw answers on the left, sorted spec on the right.
// click "Run classifier" to route each bullet to its section
persona risk verbatim, kept exactly scope

Cost, per call

Every model call records provider, model, token counts, and cost in integer micros. That feeds an admin cost view and keeps the per-package price honest.

Evals

The classifier is pinned by test scripts that run in CI: classification, dedup, verbatim preservation, reclassification. Behavior cannot drift unnoticed.

Safety

User answers are screened for prompt-injection patterns before they reach a model. Model output is screened on the way back. On a trip, it falls back to a safe default.

Models, tiered with fallback: Opus 4.8 drafts and polishes, Grok 4.3 critiques, with Gemini 3.1 Pro and GPT-5.5 as backup tiers. Each stage retries, then drops to the next provider. Output is bounded so a slow model cannot stall the job.
04 / Architecture

Async by design, Azure-native.

A package takes minutes, too long for one request. The system runs on a durable queue, a separate worker, and infrastructure as code. Click a part to read it.

Edge and app
Async work
Models
Data
Platform and security

The job, start to finish
# user clicks Forge
POST /api/package/jobs queued, signed message
worker polls, dequeues, status running
  draft, critique, polish, zip
  stage events stream to the browser
done upload to blob, status success
# on failure
  retry under 5, then dead-letter
  worker crash, recovery re-queues, no re-charge
Production details

Security

Secrets in Key Vault behind a private endpoint. Data stores deny public access. Managed-identity roles, no connection strings in config. Signed queue messages. Non-root containers.

CI/CD

GitHub Actions to Azure over OIDC, no static creds. Trivy scan, multi-stage Docker, Prisma migrate job, container rollout.

Run and recover

App Insights and OpenTelemetry, structured logs with secret redaction, health probes, dead-letter handling, restart recovery that does not double-charge.