Skip to content

TarunTheDev/BRDify-AI

Repository files navigation

πŸ€– BRDify β€” Multi-Agent BRD Intelligence Platform

Turn raw emails, meeting transcripts, and Slack messages into a fully structured Business Requirements Document (BRD) β€” automatically, using AI.


🧐 What is this project?

A Business Requirements Document (BRD) is a formal document that describes what a software project needs to do. Writing one usually takes days of meetings, interviews, and manual writing.

BRDify automates that entire process. You paste in your raw team communications (emails, meeting notes, Slack threads), click a button, and a multi-agent AI pipeline reads everything, extracts requirements, detects conflicts, profiles stakeholders, and hands you a publication-ready BRD β€” in seconds.

Think of it as having a senior business analyst who never sleeps and never misses a detail.


πŸ—ΊοΈ How it Works β€” The Big Picture

Your Raw Input                 AI Agent Pipeline               Outputs
──────────────                 ──────────────────               ───────
πŸ“§ Emails          ──►  [Parse]──►[Classify]──►[Extract]  ──►  πŸ“„ BRD Document
πŸ“ Meeting notes   ──►        ──►[Conflicts]──►[Score]    ──►  βš”οΈ  Conflict Log
πŸ’¬ Slack messages  ──►        ──►[Stakeholders]           ──►  πŸ‘₯ Stakeholder Map
                                                           ──►  πŸ“Š Analytics

πŸ”„ Step-by-Step Workflow

Here is exactly what happens from the moment you hit "Generate BRD" to the moment you get your document.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         USER ACTION                                  β”‚
β”‚           Paste emails / meeting notes / Slack messages              β”‚
β”‚                    + Enter Gemini API key                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      STEP 1 β€” INGESTION                             β”‚
β”‚                                                                      β”‚
β”‚  The app reads your raw text and splits it into individual           β”‚
β”‚  "source messages". Each message gets tagged with:                  β”‚
β”‚    β€’ Channel  β†’  EMAIL / MEETING / SLACK                             β”‚
β”‚    β€’ Sender   β†’  who wrote it                                        β”‚
β”‚    β€’ Is it noise?  β†’  greetings, off-topic chat filtered out         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   STEP 2 β€” AI BATCH PROCESSING                      β”‚
β”‚                                                                      β”‚
β”‚  Messages are sent in batches to Google Gemini (AI model).          β”‚
β”‚  Each batch is processed by a chain of specialist "agents":         β”‚
β”‚                                                                      β”‚
β”‚   Agent A β€” Requirement Extractor                                    β”‚
β”‚     Finds every "the system must / should / shall" statement        β”‚
β”‚     Tags each as Functional (what it does) or Non-Functional        β”‚
β”‚     (how well it does it β€” speed, security, reliability)             β”‚
β”‚                                                                      β”‚
β”‚   Agent B β€” Conflict Detector                                        β”‚
β”‚     Looks for two messages that contradict each other               β”‚
β”‚     e.g. "launch in March" vs "launch in June"                      β”‚
β”‚     Each conflict gets a severity: CRITICAL / HIGH / MEDIUM / LOW   β”‚
β”‚                                                                      β”‚
β”‚   Agent C β€” Stakeholder Profiler                                     β”‚
β”‚     Identifies every person mentioned or speaking                   β”‚
β”‚     Scores their sentiment (Positive / Neutral / Concerned / Urgent)β”‚
β”‚     Rates their influence: HIGH / MEDIUM / LOW                      β”‚
β”‚                                                                      β”‚
β”‚   Agent D β€” Risk & Quality Scorer                                    β”‚
β”‚     Calculates a 0–100 quality score for the whole BRD              β”‚
β”‚     Flags risks: unresolved conflicts, vague requirements, etc.     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    STEP 3 β€” MERGE & DEDUPLICATE                     β”‚
β”‚                                                                      β”‚
β”‚  Results from all batches are merged into one unified document.     β”‚
β”‚  Duplicate requirements are removed.                                β”‚
β”‚  Stakeholder profiles from different batches are combined.          β”‚
β”‚  The final quality score is stamped onto the document.              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      STEP 4 β€” OUTPUT VIEWS                          β”‚
β”‚                                                                      β”‚
β”‚  You now get 4 interactive tabs:                                    β”‚
β”‚                                                                      β”‚
β”‚  πŸ“„ BRD Document                                                    β”‚
β”‚     Full structured document with all sections                      β”‚
β”‚     Natural Language editor β€” type "resolve conflict C-01"          β”‚
β”‚     Export to print-ready PDF with one click                        β”‚
β”‚                                                                      β”‚
β”‚  βš”οΈ  Conflicts Panel                                                β”‚
β”‚     See every contradiction with source quotes                      β”‚
β”‚     Mark conflicts as RESOLVED or ESCALATED                         β”‚
β”‚                                                                      β”‚
β”‚  πŸ‘₯ Stakeholder Panel                                               β”‚
β”‚     See every stakeholder, their sentiment, and influence           β”‚
β”‚     Identify who needs attention                                    β”‚
β”‚                                                                      β”‚
β”‚  πŸ“Š Analytics Dashboard                                             β”‚
β”‚     Charts: requirement breakdown, risk distribution                β”‚
β”‚     Deployment confidence score                                     β”‚
β”‚     Message channel distribution                                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🧩 Main Components β€” Explained Simply

Component File What it does
Ingestion Hub IngestionHub.tsx The input form β€” paste text, enter API key, hit Go
Agent Pipeline AgentPipeline.tsx Animated progress view of the AI agents running
Console Logs ConsoleLogs.tsx Live log output as the agents process your data
BRD Viewer BRDViewer.tsx Displays the full BRD with all sections, NL editor, PDF export
Conflict Panel ConflictPanel.tsx Shows all detected contradictions with resolution controls
Stakeholder Panel StakeholderPanel.tsx Stakeholder cards with sentiment and influence scores
Analytics Dashboard AnalyticsDashboard.tsx Charts and metrics about your BRD's quality and coverage

πŸ› οΈ Tech Stack

Layer Technology
Frontend framework React 19 + TypeScript
Build tool Vite 6
Styling Tailwind CSS + shadcn/ui components
Animations Framer Motion
AI model Google Gemini (via REST API)
Deployment Netlify (see netlify.toml)

πŸš€ Getting Started (Local)

Prerequisites

Steps

# 1. Clone the repo
git clone <your-repo-url>
cd brd-agent

# 2. Install dependencies
npm install

# 3. Start the development server
npm run dev

# 4. Open your browser at http://localhost:5173

You'll see an input form on the left. Paste your emails/meeting notes/Slack messages, enter your Gemini API key, and click Generate BRD.

πŸ’‘ No input? Click the "β–Ά Run Demo Simulation" button to see a full example BRD with sample data β€” no API key required.

Build for production

npm run build
# Output goes to /dist β€” deploy that folder anywhere

πŸ“ Project Structure

src/
β”œβ”€β”€ App.tsx                    ← Root component, holds all state
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ types.ts               ← TypeScript interfaces (BRDDocument, Requirement, etc.)
β”‚   β”œβ”€β”€ geminiService.ts       ← AI calls + batch processing + BRD merging
β”‚   β”œβ”€β”€ brdUtils.ts            ← Quality scoring, confidence scoring, validation
β”‚   β”œβ”€β”€ mockData.ts            ← Default BRD shown on first load
β”‚   └── simulationData.ts      ← Demo data used by the simulation button
└── components/
    β”œβ”€β”€ dashboard/
    β”‚   β”œβ”€β”€ BRDViewer.tsx      ← BRD document display + PDF export + NL editor
    β”‚   β”œβ”€β”€ ConflictPanel.tsx  ← Conflict list and resolution UI
    β”‚   β”œβ”€β”€ StakeholderPanel.tsx ← Stakeholder intelligence view
    β”‚   β”œβ”€β”€ AnalyticsDashboard.tsx ← Charts and metrics
    β”‚   β”œβ”€β”€ IngestionHub.tsx   ← Input form
    β”‚   β”œβ”€β”€ AgentPipeline.tsx  ← Animated agent progress
    β”‚   └── ConsoleLogs.tsx    ← Live log stream
    └── ui/                    ← Reusable UI primitives (button, badge, card, etc.)

🎯 Key Features

βœ… Natural Language BRD Editing

On the BRD tab, open the AI Edit panel and type plain English commands:

  • "Resolve conflict C-01" β†’ marks it resolved instantly
  • "Shorten the executive summary" β†’ AI rewrites it
  • "Accept all requirements" β†’ bulk status update
  • Anything else β†’ sent to Gemini AI for freeform editing

βœ… Data Validation Warnings

If the numbers don't add up (e.g. relevant + filtered β‰  total messages), a red warning banner appears at the top of the BRD β€” so you always know your data is consistent.

βœ… Live Quality Score

The quality score shown in the header badge is always computed live from the actual BRD content β€” it's never stale. Change a conflict status β†’ score updates instantly.

βœ… PDF Export

Click "Export PDF" to open a formatted, print-ready document in a new tab. It includes:

  • Document Control section with live metrics
  • Table of Contents
  • All 13 BRD sections (Executive Summary β†’ RTM)
  • Confidential footer on every page

πŸ“Š Quality Score β€” How it's Calculated

The 0–100 quality score is computed by computeQualityScore() in brdUtils.ts. It checks:

Check Points
Has at least 5 functional requirements +20
Has non-functional requirements +10
Has stakeholders identified +10
Has a timeline / milestones +10
Has an executive summary +10
Has success metrics +10
Unresolved critical conflicts βˆ’15 each
Vague or missing rationale on requirements βˆ’5 each
Low-confidence requirements βˆ’3 each

❓ FAQ

Q: Do I need to pay for the Gemini API? A: Gemini has a generous free tier. For normal BRD generation (a few hundred messages), you're very unlikely to exceed it.

Q: What if my text is in a different language? A: Gemini handles multilingual input, but the BRD output is always in English.

Q: Can I use this without an API key? A: Yes β€” click "Run Demo Simulation" on the left panel to see a fully populated BRD with sample enterprise data, no API key needed.

Q: What's the maximum input size? A: The app splits your input into batches, so there's no hard limit. Very large inputs (thousands of messages) may take longer due to API rate limits.


πŸ“„ License

MIT β€” free to use, modify, and distribute.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors