# I built an AI tool that turns messy decks and transcripts into a discovery report

> Source: <https://dev.to/oleksandr_tytarenko/i-built-an-ai-tool-that-turns-messy-decks-and-transcripts-into-a-discovery-report-34ia>
> Published: 2026-10-19 10:37:50+00:00

Every software project starts with a discovery phase: goals, stakeholders, requirements, architecture, a rough roadmap. In practice it lives in slide decks, Google Docs and call transcripts, and someone has to turn that pile into one coherent document.

I built **[Discovery Phase AI](https://discoveryphaseai.com/?utm_source=devto&utm_medium=community&utm_campaign=launch)** to do the first draft of that work. You upload your source files, review what the model proposes, and export a report.

## 
  
  
  What it does

- Takes decks, docs, transcripts and images and drafts the discovery stages: background, executive summary, problem statement, stakeholders, goals and metrics, users and journeys, requirements, architecture, roadmap.
- Lets you review every proposal before anything is saved. Nothing the model writes is stored until you accept it.
- Keeps an "improve with AI" chat on each stage, with a quality score and suggestions anchored to the text.
- Checks the impact of a change across stages, so an edited requirement shows which goals, diagrams or milestones may now be out of date.
- Exports the report as PDF, Word, PowerPoint or Markdown, with Mermaid diagrams drawn as images.

## 
  
  
  How it's built

- 
**Backend:** Go modular monolith (chi, pgx, no ORM, hand-written SQL). Every module follows repository → service → handler, and modules never import each other's internals.
- 
**Frontend:** React + TypeScript on Vite, Tiptap for the rich-text stages, Mermaid for diagrams.
- 
**Database:** Postgres, with all state in the database so several instances can run side by side.
- 
**AI:** Claude models. The model has no tools: its output is only parsed JSON, and every record id it mentions is checked against the database before it can touch anything.

## 
  
  
  Things I learned

**Treat everything you send to the model as untrusted.** Uploaded files, other stages' text and chat history are all wrapped as untrusted data, and a suggested change can only reference records that exist in the same project.

**Make the AI output reviewable, not final.** Typed operations (add, update, remove) that the user applies one by one are much easier to trust than a rewritten document.

**Meter AI usage from day one.** Each call reserves credits before it runs and settles afterwards, so parallel requests cannot overspend.

## 
  
  
  Try it

There is a free plan, and you can open a full sample report without signing up: [example report](https://discoveryphaseai.com/example-report?utm_source=devto&utm_medium=community&utm_campaign=launch) (the project in it is invented).

I'd love to hear how you run discovery today, and what you would want a tool like this to do differently.
