Deep Dive AskProduct: The Knowledge Hub That Actually Knows Your Codebase
Deep-Dive Developers ยท Product Managers

AskProduct: The Knowledge Hub That Actually Knows Your Codebase

Multi-turn conversation, relevance filtering, context from 4 VectorDB collections simultaneously โ€” AskProduct is more than a chatbot. It's your team's institutional memory.

May 8, 2026 · 9 min read · DevelopersProduct Managers
TL;DR

What Makes AskProduct Different from a Generic Chatbot?

Generic AI chatbots (GPT-4 playground, Claude.ai, etc.) have no knowledge of your specific codebase, your team's Epics, or your architectural decisions. Every answer they give is based on training data and any context you manually paste into the prompt. This makes them useful for general programming questions but unreliable for product-specific questions like "Why does the payment service use Redis for session management?" or "What Epic does the inventory webhook belong to?"

AskProduct is different because it operates on a semantic index built from your codebase, your product documentation, your Epics and Stories, and your architectural design documents. When you ask a question, the answer draws from real artifacts in your product workspace โ€” not from general knowledge. It cites the specific file, Epic, or design document it retrieved from, making every answer traceable and verifiable.

Teams using AskProduct report a 68% reduction in "who knows how X works?" Slack messages within the first month. New developers onboarding to a product can get architecture context, API contract details, and business logic explanations in seconds โ€” knowledge that previously required tracking down a senior engineer who wrote the code 3+ years ago.

How Does AskProduct Query 4 VectorDB Collections at Once?

FlowSquad maintains 4 separate VectorDB collections per product, each containing a different type of semantic content. When a user submits a question to AskProduct, FlowSquad's retrieval engine performs a parallel ANN (Approximate Nearest Neighbor) search across all four collections simultaneously, then merges and re-ranks the results before assembling the LLM prompt.

CollectionContent TypeAvg Chunks per ProductTypical Relevance Weight
codeFunction/class/module extractions (all 11 languages)12,000โ€“80,000High for technical questions
epicsEpic titles, descriptions, acceptance criteria50โ€“500High for feature/requirement questions
storiesUser stories with full text and linked Epic context200โ€“2,000Medium โ€” bridges code and requirements
documentationConfluence pages, README files, HLD/LLD documents500โ€“5,000High for architecture/process questions

The parallel retrieval is critical: a question like "What authentication mechanism does the user login flow use?" requires context from both the code collection (the actual auth implementation) and the stories collection (the acceptance criteria that defined the auth requirements). Single-collection retrieval would give an incomplete answer missing half of the picture.

What Is Multi-Turn Conversation in AskProduct?

Multi-turn conversation allows AskProduct to maintain context across a series of related questions in the same session, eliminating the need to restate background in every message. This is implemented via a conversation buffer that stores the last 10 message pairs (user question + AskProduct response), which are prepended to the LLM system prompt on each new question.

The practical effect is dramatic. A developer investigating a bug can ask "How does the checkout flow handle payment failures?" โ€” get a detailed answer with code references โ€” then immediately follow up with "Does that same flow handle Stripe webhook retries?" and AskProduct understands that "that same flow" refers to the checkout payment failure flow discussed in the previous turn. Without multi-turn memory, the developer would need to re-specify full context on every message, a pattern that frustrates users and produces worse LLM outputs from truncated context.

How Does the Relevance Filter Work?

After retrieving the top-K candidates from each VectorDB collection, AskProduct applies a cosine similarity relevance filter with a default threshold of 0.72. Any chunk scoring below this threshold is discarded, regardless of how many other chunks are available. This means the LLM may receive fewer than K chunks if the question is highly specific and only a small number of chunks are genuinely relevant โ€” rather than padding the context with low-signal material that degrades output quality.

The threshold is configurable per product (range 0.50โ€“0.95) in Product Settings โ†’ AskProduct โ†’ Relevance Threshold. Lowering the threshold returns more context (better for broad exploratory questions), while raising it enforces stricter relevance (better for precise technical questions in large, noisy codebases). FlowSquad's default of 0.72 was calibrated across 2,400 benchmark questions to minimize the hallucination rate while maintaining answer completeness above 91%.

What Questions Can AskProduct Actually Answer?

AskProduct handles three broad question categories: technical implementation questions (about code structure, algorithms, and APIs), product requirements questions (about Epic/Story intent and acceptance criteria), and architectural questions (about design decisions and component interactions). Below are representative Q&A examples from real FlowSquad deployments.

Developer
"Where is the rate limiting logic for the external API client, and what algorithm does it use?"
AskProduct
The rate limiting logic is in src/clients/api_client.py, class RateLimitedClient (line 47). It implements a token bucket algorithm using Redis as the shared counter store โ€” bucket capacity of 100 requests, refill rate of 10 req/second. This allows burst capacity while maintaining sustained rate limits across horizontally scaled instances.
๐Ÿ“Ž Sources: api_client.py:47, Story #34 "Implement distributed rate limiting", HLD v2 Section 4.2
Product Manager
"Which Epics are related to the checkout redesign, and what was the stated business goal?"
AskProduct
3 Epics are tagged to the checkout redesign initiative: Epic #12 "Streamlined Checkout UX" (goal: reduce cart abandonment by 20%), Epic #15 "Checkout Performance Optimization" (goal: reduce p95 latency below 300ms), and Epic #19 "Guest Checkout Flow" (goal: increase conversion for unauthenticated users). All three are currently in Review status.
๐Ÿ“Ž Sources: Epic #12, #15, #19 (FlowSquad Epics collection)

Frequently Asked Questions

Can AskProduct answer questions about code that hasn't been committed yet?

AskProduct answers from the indexed VectorDB state, which is updated when a re-index is triggered (manually or via Git webhook on push). Uncommitted local changes are not visible to AskProduct until they are pushed to the connected repository and FlowSquad processes the webhook event. Re-indexing a branch takes approximately 2โ€“5 minutes for most repositories.

How does AskProduct handle questions with no relevant answer in the codebase?

When no chunks exceed the relevance threshold for a query, AskProduct responds with a transparent "no relevant context found" message rather than attempting to answer from general LLM knowledge. This prevents hallucinated answers that reference non-existent files or functions โ€” a critical correctness requirement for developer trust.

Is conversation history stored persistently or only in memory?

Conversation history is persisted in the FlowSquad application database per session. Users can return to a previous conversation thread and continue where they left off, or start a new thread with a clean context. Conversation history is subject to RBAC โ€” users can only view their own conversation threads, while Product Admins can view all threads within their product for quality auditing.

Can AskProduct be used to generate documentation automatically?

Yes. AskProduct conversations can be exported as Markdown or PDF from the conversation panel. Product Admins can also trigger a "Generate README" or "Generate Module Documentation" workflow that uses AskProduct's retrieval pipeline to produce documentation stubs for each major component โ€” these are saved as drafts in the Documentation collection for human review before publishing.

Does AskProduct support uploading additional reference documents?

Yes. The Documentation VectorDB collection can be populated from multiple sources: Confluence space sync (via the Confluence integration), manual PDF/Markdown uploads from the Admin panel, and auto-generated HLD/LLD documents from FlowSquad's Design tab. All uploaded documents are chunked, embedded, and indexed using the same ONNX pipeline as source code.

Share on dev.to Share on Hashnode Share on Medium Share on LinkedIn