From 45-Minute Customer Discovery Calls to Executable Engineering Issues in 60 Seconds.
Product Managers and technical founders spend 8–12 hours a week transcribing user interviews, manually extracting pain points, cross-referencing timestamps, and writing PRDs and Linear tickets.
Generic LLMs produce vague summaries ("The customer wants speed"). SpecForge is an open-source autonomous discovery-to-spec engine that runs a 3-stage agentic pipeline to produce:
- Verbatim Timestamped Customer Insights & JTBD Matrix
- Master Technical PRD (Data Models, API Contracts, Edge Cases, SLAs)
- Executable User Stories (Gherkin
Given-When-Thenformat with story points) - 1-Click Sync to Linear & GitHub Issues with citation backlinks directly to the user's voice
- 1-Click Export Actions in PRD Studio (Download PRD
.mdwith Mermaid diagrams & Copy Jira/Notion User Stories) - 3-Scenario Discovery Switcher (Instant testing of B2B Billing, AI Search Latency & Rate Limits, and Mobile Checkout Drop-off)
[ Audio / Video / VTT ] ──► [ Ingestion & Diarization Layer ]
│
▼
┌──────────────────────────────────────────┐
│ SpecForge Multi-Agent Pipeline │
└──────────────────────────────────────────┘
│
┌──────────────────────────────────────┼──────────────────────────────────────┐
│ │ │
▼ ▼ ▼
[ Agent 1: Insight Extractor ] [ Agent 2: Systems Architect ] [ Agent 3: Story & QA Agent ]
- Speaker diarization - Data models & ERDs - Gherkin test cases
- JTBD & pain urgency - Edge cases & latency budgets - Story point estimation
- Verbatim timestamp citations - API contracts & endpoints - Linear / GitHub payload
│ │ │
└──────────────────────────────────────┼──────────────────────────────────────┘
│
▼
[ SpecForge Dual-Pane Studio ]
(Transcript with Citation Pins ◄──► Live PRD Editor)
│
▼
[ 1-Click Sync: Linear API / GitHub Issues ]
SpecForge comes pre-loaded with 3 realistic, production-grade discovery interviews accessible via the 1-click Scenario Switcher in the top navigation bar:
| Scenario | Domain & Badge | Customer Profile | Pain Point & Architecture Solution |
|---|---|---|---|
| B2B Billing Reconciliation | Fintech / B2B |
Marcus Vance Head of Finance @ ScalePay |
Webhook timeouts silently failing during billing runs, causing 2h manual CSV cross-checks and duplicate dunning notices. Solved via idempotent webhook buffer, Redis worker queue, and automated dunning pause. |
| AI Search Latency & Rate Limits | AI Infrastructure |
Elena Rostova VP of Engineering @ QueryCraft |
RAG query latency spiking to 4.8s p95 during peak hours due to upstream LLM 429 rate limit spikes. Solved via L1 Redis semantic vector cache, multi-model circuit breaker, and instant BM25 lexical fallback. |
| Mobile Checkout Drop-off | Mobile E-Commerce |
Priya Sharma Head of Product @ CartSwift |
42% iOS mobile cart drop-off from 7-field address forms and Apple Pay token expiry during synchronous tax recalculation. Solved via 1-tap express Apple/Google Pay sheet and sub-200ms async tax engine. |
Switching scenarios immediately updates customer voice evidence, verbatim interview turns, JTBD matrices, technical architecture PRDs, and Gherkin engineering stories.
SpecForge makes it effortless to transition from discovery synthesis to engineering execution with 1-click export actions in the PRD Studio:
- Download PRD (.md):
- Exports the complete Master Technical PRD with all functional requirements, data schemas, operational SLAs, and embedded Mermaid.js sequence diagrams.
- Generates a clean markdown file (e.g.
specforge-prd-billing-reconciliation.md,specforge-prd-ai-search-resilience.md,specforge-prd-mobile-checkout.md) for version-controlled documentation in GitHub/GitLab.
- Copy Jira User Stories:
- Formats all engineering issues into clean, universal Markdown tailored for direct copy-pasting into Jira Cloud / Jira Server and Notion.
- Preserves issue keys (
[SPEC-101]), Fibonacci story points, priorities, formatted Gherkin BDD acceptance criteria (Scenario,Given,When,Then), and customer evidence quotes with timestamp backlinks.
Open the deployed static studio directly in your browser: https://1997agarwal.github.io/SpecForge
# Clone the repository
git clone https://github.com/1997agarwal/SpecForge.git
cd SpecForge
# Install dependencies
npm install
# Start both frontend & backend concurrently
npm run devOpen http://localhost:5173 to access the Discovery Studio.
# Run discovery analysis directly from your terminal
npx specforge scan ./interviews/customer_call_01.vtt \
--output ./docs/PRD.md \
--sync linear \
--team ENG| Agent | Mission | Output Format |
|---|---|---|
| Agent 1: Insight Extractor | Parses raw conversation turns, identifies speaker intent, extracts JTBD, and anchors every pain point to an exact [mm:ss] timestamp. |
Structured JSON with urgency scores (1–5) and verbatim quotes. |
| Agent 2: Systems Architect | Translates customer problems into technical system requirements, relational database schemas (SQLite/Postgres), and API contracts. | Master Technical PRD in Markdown with Mermaid.js ER diagrams. |
| Agent 3: Story Generator | Converts specifications into atomic engineering tickets formatted in Gherkin BDD (Given-When-Then) syntax. |
Linear and GitHub-ready issue payloads with citation backlinks. |
SpecForge/
├── AGENTS.md # Agent constitution & execution protocol
├── CLAUDE.md # CLI commands and code-style guide
├── ROADMAP.md # Living status of all phases
├── CONTRIBUTING.md # Contribution guidelines
├── LICENSE # MIT License
├── README.md # Master documentation
├── bin/
│ └── cli.mjs # Executable binary for npx specforge
├── server/
│ ├── index.ts # Node.js API server (Port 4100)
│ ├── agents/
│ │ ├── insightExtractor.ts # Agent 1: JTBD & Timestamps
│ │ ├── architectAgent.ts # Agent 2: Technical Specs
│ │ └── storyGenerator.ts # Agent 3: Gherkin Stories
│ ├── db/
│ │ ├── database.ts # better-sqlite3 database instance
│ │ └── schema.ts # Relational database schema
│ └── services/
│ ├── linearSync.ts # Linear GraphQL API sync
│ └── transcription.ts # VTT / Audio parser
└── src/ # React 18 Dual-Pane Studio
├── App.tsx # Studio orchestrator
├── components/
│ ├── AudioTranscriptViewer.tsx # Transcript with citation pins
│ ├── PRDViewer.tsx # Markdown PRD preview
│ ├── IssueManager.tsx # Gherkin story inspector
│ └── LinearSyncModal.tsx # Export modal
└── data/
└── mockDiscovery.ts # Sample interview data
Every Linear issue generated by SpecForge preserves the link back to the customer's exact voice:
Customer Voice: "We waste 2 hours every Monday manually exporting CSVs to Zapier because the webhooks time out."
— Interview 04, John Doe @ 14:22
Harshit Agarwal
AI Product Manager & 0-to-1 Systems Builder
- GitHub: @1997agarwal
- LinkedIn: 1997agarwal
- X (Twitter): @1997agarwal
This project is licensed under the MIT License.