Context
Every studio writes estimates from briefs that are incomplete, and every LLM will happily write a confident estimate from an incomplete brief. The output reads well but cannot be traced to anything the client actually asked for, and it quietly commits the team to scope nobody agreed on.
We wanted the speed of a model with the discipline of a pre-sales process: clarification before scope, scope before estimate, approval before baseline — and an artefact trail that survives contact with a procurement department.
What we built
The application takes a brief (pasted text, PDF, Word document, image or URL) through a governed pipeline: project understanding, clarifications, scope control, solution breakdown, estimate, visual package, proposal, client approval, baseline and backlog handoff.
- Traceable scoping graph — the engagement is modelled as a requirement graph (facts, questions, requirements, scope items, estimate items, backlog items, user stories, QA cases, approval gates) instead of free text, so every client artefact can be traced to approved scope.
- Autopilot with candidate ensembling — each phase runs one to three model candidates and a selector keeps the best-calibrated candidate with the clearest trace, with rejected candidates surfaced as warnings and deterministic fallbacks per phase.
- Four-mode quality gate — deterministic rule checks and an AI gate reviewer combine into selectable strictness modes for each estimate, from hard-blocking rigour to AI judgement, instead of one hard-coded policy.
- Client-safe rendering — internal trace codes and process jargon are stripped from every client-facing render, and the PDF is generated from the same React document the team previews.
- Sandboxed model providers — models run as read-only, schema-constrained CLI subprocesses behind one provider interface with timeouts and kill escalation, so swapping models requires no changes at the application layer.
- Real-provider eval harness — a dedicated CLI replays sample briefs through the whole pipeline and scores the generated documents, because unit and end-to-end tests prove the plumbing works, never that an estimate is good.
Stack
Next.js and TypeScript with server components and route handlers, Postgres with Prisma, Better Auth, next-intl for English and Romanian, Zod-validated document schemas, Playwright for server-side PDF plus DOCX and CSV exports, Mermaid diagrams, generated wireframes and interactive HTML prototypes. Tested with Vitest, Playwright end-to-end using a deterministic fake provider, and the eval harness above.
Status
Internal product, used in our own pre-sales process. A walkthrough using a real brief is available on request.