src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-02-discovery.md
Progress: Step 2 of 13 - Next: Product Vision
Discover and classify the project - understand what type of product this is, what domain it operates in, and the project context (greenfield vs brownfield).
{communication_language}{document_output_language}documentCountsDiscover and classify the project through natural conversation:
Read the frontmatter from {outputFile} to get document counts:
briefCount - Product briefs availableresearchCount - Research documents availablebrainstormingCount - Brainstorming docs availableprojectDocsCount - Existing project documentationAnnounce your understanding:
"From step 1, I have loaded:
{{if projectDocsCount > 0}}This is a brownfield project - I'll focus on understanding what you want to add or change.{{else}}This is a greenfield project - I'll help you define the full product vision.{{/if}}"
Attempt subprocess data lookup:
Project Type Lookup: "Your task: Lookup data in ../data/project-types.csv
Search criteria:
Return format: Return ONLY the matching row as a YAML-formatted object with these fields: project_type, detection_signals
Do NOT return the entire CSV - only the matching row."
Domain Complexity Lookup: "Your task: Lookup data in ../data/domain-complexity.csv
Search criteria:
Return format: Return ONLY the matching row as a YAML-formatted object with these fields: domain, complexity, typical_concerns, compliance_requirements
Do NOT return the entire CSV - only the matching row."
Graceful degradation (if Task tool unavailable):
Start with what you know:
If the user has a product brief or project docs, acknowledge them and share your understanding. Then ask clarifying questions to deepen your understanding.
If this is a greenfield project with no docs, start with open-ended discovery:
Listen for classification signals:
As the user describes their product, match against:
Once you have enough understanding, share your classification:
"I'm hearing this as:
Does this sound right to you?"
Let the user confirm or refine your classification.
When user selects 'C', update frontmatter with classification:
classification:
projectType: {{projectType}}
domain: {{domain}}
complexity: {{complexityLevel}}
projectContext: {{greenfield|brownfield}}
Present the project classification for review, then display menu:
"Based on our conversation, I've discovered and classified your project.
Here's the classification:
Project Type: {{detectedType}} Domain: {{detectedDomain}} Complexity: {{complexityLevel}} Project Context: {{greenfield|brownfield}}
What would you like to do?"
Display: "Select: [A] Advanced Elicitation [P] Party Mode [C] Continue to Product Vision (Step 2b of 13)"
bmad-advanced-elicitation skill with the current classification, process the enhanced insights that come back, ask user if they accept the improvements, if yes update classification then redisplay menu, if no keep original classification then redisplay menubmad-party-mode skill with the current classification, process the collaborative insights, ask user if they accept the changes, if yes update classification then redisplay menu, if no keep original classification then redisplay menuONLY WHEN [C continue option] is selected and [classification saved to frontmatter], will you then read fully and follow: ./step-02b-vision.md to explore product vision.
Master Rule: This is classification and understanding only. No content generation yet. Build on what the user already has. Have natural conversations, don't follow scripts.