An interview becomes a build-ready spec.
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.
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.
- 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
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.
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.
Draft
Critique
Polish
Package
Pick a flow
Sign in with Google. New users get a free credit.
Answer
About 30 questions across 10 sections, with suggestions and sketch upload.
Forge
One click queues a job. A live terminal shows each stage.
Download
A zip of the documents: Markdown, Mermaid diagrams, Gherkin tests.
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.
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.
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.
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.
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
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.