0
Kai Detmers
Project index
Enterprise AI · requirements engineeringAnonymized / NDA

AI RequirementsEngineering Platform.

An enterprise platform that turns sparse customer input — notes, questionnaires and RFP material — into a traceable project specification: requirements, epics, user stories, test cases and technical specifications. The difficult part is not generating text; it is preserving structure, provenance and quality across a long-running multi-stage pipeline.

Requirements detail view with acceptance criteria, traceability links and quality signals
An anonymized demo requirement: generated content stays connected to acceptance criteria, source references and explicit quality signals instead of appearing as unqualified AI output.

What I built

How the product evolved

Process reconstruction — based on the architecture, implementation history and current system shape. It describes the design trajectory rather than claiming every decision happened in one documented meeting.

01
Start with generation.

The first useful milestone was proving that sparse input could produce structured requirements at all. At that point, output quality was still evaluated mostly by inspection.

02
Make artifact dependencies explicit.

Requirements, epics, stories and tests stopped being parallel “AI features” and became a directed pipeline. Downstream artifacts inherit context instead of independently hallucinating the same project.

03
Add provenance.

Once the output became useful enough to act on, “where did this come from?” became a product requirement. Retrieval and citations moved from enhancement to core system behavior.

04
Separate request/response UX from generation runtime.

Generation jobs can take minutes. Moving them into worker queues turned progress, retries, checkpoints and recovery into explicit product states instead of HTTP timeout edge cases.

05
Replace intuition with evaluation.

Prompt changes that looked better in one demo could regress another domain. A reference-corpus evaluation layer became necessary to make iteration measurable.

Architecture

InputNotes, questionnaire answers and uploaded documents become normalized project source material.
RetrievalHybrid keyword + vector search retrieves evidence and context for each generation stage.
QueueBullMQ coordinates long-running generation work outside the regular HTTP request lifecycle.
GenerateAzure OpenAI produces schema-constrained artifacts stage by stage.
EvaluateQuality checks, refinement and coverage expansion decide whether output is accepted, repaired or expanded.
PersistCosmos DB writes use optimistic concurrency because API and worker processes can update the same project independently.

UI / interaction rationale

AI output is inspectable, not magicalA requirement shows acceptance criteria, source relationships and quality state. The interface treats generated artifacts as work products that need evidence, not chat messages that disappear into a transcript.
Progress is a product stateLong generation runs expose stage-level progress and recovery. Users should know whether the system is retrieving, generating, refining or waiting rather than staring at one indefinite spinner.
Completeness without hiding uncertaintyThe platform may infer missing requirements, but inferred items need to be distinguishable from explicitly sourced statements. Coverage is useful only when confidence and provenance remain visible.
Document hierarchy over chat hierarchyThe primary navigation is the project specification — requirements, epics, stories and tests — because that is the durable deliverable. Conversation is a control surface for changing it, not the main information architecture.

Key engineering decisions

Challenges & lessons

Case-study boundary

This page intentionally describes the system pattern rather than exposing customer-specific data, internal names or proprietary process details. The architectural lessons are the portfolio evidence; confidential domain content is not.