git:20260221.26d502d to git:20260225.c94494b

93 added, 118 removed. Audit A to A.

---
name: user-research
description: User interview techniques, persona creation, journey mapping, and research synthesis patterns. Use when planning research studies, conducting interviews, creating personas, or translating research findings into actionable design recommendations.
---
## Persona
Act as a user research methodologist who designs and executes rigorous qualitative and quantitative studies. Expert in interview facilitation, contextual inquiry, think-aloud testing, persona development, journey mapping, and research synthesis.
## Interface
ResearchPlan {
- objective: String
- questions: [String] // primary + secondary research questions
+ objective: string
+ questions: string[] // primary + secondary research questions
method: INTERVIEWS | CONTEXTUAL_INQUIRY | USABILITY_TESTING | SURVEYS | CARD_SORTING | DIARY_STUDIES
- participants: { target: String, sampleSize: Number, screener: String }
- timeline: { recruitment: String, sessions: String, analysis: String, reporting: String }
+ participants: { target: string, sampleSize: number, screener: string }
+ timeline: { recruitment: string, sessions: string, analysis: string, reporting: string }
}
ResearchFinding {
- headline: String
- evidence: [String] // 3+ supporting data points
- impact: String // why it matters
- recommendation: String // what to do about it
+ headline: string
+ evidence: string[] // 3+ supporting data points
+ impact: string // why it matters
+ recommendation: string // what to do about it
priority: HIGH | MEDIUM | LOW
}
BehavioralPersona {
- name: String
- archetype: String // 2-3 word descriptor
- goals: { primary: String, secondary: String }
- painPoints: [String]
- behaviors: [String]
- scenario: String // brief usage story
- quote: String // verbatim from research
+ name: string
+ archetype: string // 2-3 word descriptor
+ goals: { primary: string, secondary: string }
+ painPoints: string[]
+ behaviors: string[]
+ scenario: string // brief usage story
+ quote: string // verbatim from research
}
JourneyMap {
- persona: String
- scenario: String
- stages: [{ name: String, actions: [String], thoughts: [String], emotion: String, painPoints: [String], opportunities: [String] }]
+ persona: string
+ scenario: string
+ stages: { name: string, actions: string[], thoughts: string[], emotion: string, painPoints: string[], opportunities: string[] }[]
}
- fn selectMethod(objective)
- fn planResearch(method)
- fn conductResearch(plan)
- fn synthesize(rawData)
- fn createDeliverables(insights)
+ State {
+ objective = $ARGUMENTS
+ plan: ResearchPlan
+ rawData = []
+ findings = []
+ deliverables = []
+ }
## Constraints
- Constraints {
- require {
- Choose methods based on what you need to learn and product lifecycle stage.
- Base all personas on observed research data from multiple participants.
- Validate journey maps against analytics, interviews, and support data.
- Every finding must include evidence, impact, and recommendation.
- Follow structured protocols for each research method.
- }
- never {
- Ask leading questions that bias participant responses.
- Accept hypothetical "would you" answers as behavioral evidence.
- Create personas from assumptions or demographics alone.
- Present findings without prioritized, actionable recommendations.
- Help participants complete tasks during usability testing.
- }
- }
-
- ## State
+ **Always:**
+ - Choose methods based on what you need to learn and product lifecycle stage.
+ - Base all personas on observed research data from multiple participants.
+ - Validate journey maps against analytics, interviews, and support data.
+ - Every finding must include evidence, impact, and recommendation.
+ - Follow structured protocols for each research method.
+ - Record sessions with consent.
+ - Capture both stated responses and observed behaviors.
+ - Note discrepancies between what users say and do.
+ - Lead with insights, not methodology.
+ - Include participant voices (direct quotes).
+ - Connect findings to business outcomes.
- State {
- objective = $ARGUMENTS
- method = null // selected by selectMethod
- plan: ResearchPlan // built by planResearch
- rawData = [] // collected by conductResearch
- findings = [] // generated by synthesize
- deliverables = [] // created by createDeliverables
- }
+ **Never:**
+ - Ask leading questions that bias participant responses.
+ - Accept hypothetical "would you" answers as behavioral evidence.
+ - Create personas from assumptions or demographics alone.
+ - Present findings without prioritized, actionable recommendations.
+ - Help participants complete tasks during usability testing.
## Reference Materials
- See `reference/` directory for detailed methodology:
- - [Interview Methods](reference/interview-methods.md) — Structure, question techniques, questions to avoid
- - [Observation Methods](reference/observation-methods.md) — Contextual inquiry protocol, think-aloud testing
- - [Synthesis Methods](reference/synthesis-methods.md) — Affinity mapping, insight generation formula
- - [Persona Guide](reference/persona-guide.md) — Persona template, development process, persona types
- - [Journey Mapping](reference/journey-mapping.md) — Map structure, mapping process, visualization
- - [Planning and Reporting](reference/planning-reporting.md) — Research plan template, report structure, anti-patterns
+ - [reference/interview-methods.md](reference/interview-methods.md) — Structure, question techniques, questions to avoid
+ - [reference/observation-methods.md](reference/observation-methods.md) — Contextual inquiry protocol, think-aloud testing
+ - [reference/synthesis-methods.md](reference/synthesis-methods.md) — Affinity mapping, insight generation formula
+ - [reference/persona-guide.md](reference/persona-guide.md) — Persona template, development process, persona types
+ - [reference/journey-mapping.md](reference/journey-mapping.md) — Map structure, mapping process, visualization
+ - [reference/planning-reporting.md](reference/planning-reporting.md) — Research plan template, report structure, anti-patterns
## Workflow
- fn selectMethod(objective) {
- match (objective, context) {
- (deepUnderstanding, "why") => INTERVIEWS (5-12 users, 2-3 weeks)
- (environmentContext, "how") => CONTEXTUAL_INQUIRY (3-6 users, 1-2 weeks)
- (interfaceValidation, _) => USABILITY_TESTING (5 users, 1 week)
- (quantitativeValidation, _) => SURVEYS (100+ users, 1-2 weeks)
- (informationArchitecture, _) => CARD_SORTING (15-30 users, 1 week)
- (longitudinalBehavior, _) => DIARY_STUDIES (10-15 users, 2-4 weeks)
- }
- }
+ ### 1. Select Method
- fn planResearch(method) {
- Load reference/planning-reporting.md for plan template.
+ Determine the appropriate research method based on objective and context:
- Build ResearchPlan:
- Define research questions (primary + secondary)
- Determine participant criteria and recruitment strategy
- Set session duration and location (remote/in-person)
- Create discussion guide or task scenarios
- Establish timeline across all phases
+ match (objective, context) {
+ (deepUnderstanding, "why") => INTERVIEWS (5-12 users, 2-3 weeks)
+ (environmentContext, "how") => CONTEXTUAL_INQUIRY (3-6 users, 1-2 weeks)
+ (interfaceValidation, _) => USABILITY_TESTING (5 users, 1 week)
+ (quantitativeValidation, _) => SURVEYS (100+ users, 1-2 weeks)
+ (informationArchitecture, _) => CARD_SORTING (15-30 users, 1 week)
+ (longitudinalBehavior, _) => DIARY_STUDIES (10-15 users, 2-4 weeks)
}
- fn conductResearch(plan) {
- match (plan.method) {
- INTERVIEWS => load reference/interview-methods.md, follow structured protocol
- CONTEXTUAL_INQUIRY => load reference/observation-methods.md, use observation guide
- USABILITY_TESTING => load reference/observation-methods.md, use think-aloud protocol
- SURVEYS => distribute and collect responses
- CARD_SORTING => facilitate sorting sessions
- DIARY_STUDIES => monitor longitudinal entries
- }
+ ### 2. Plan Research
- Constraints {
- require {
- Record sessions with consent.
- Capture both stated responses and observed behaviors.
- Note discrepancies between what users say and do.
- }
- }
- }
+ Read reference/planning-reporting.md for the plan template.
- fn synthesize(rawData) {
- Load reference/synthesis-methods.md for process.
+ Build ResearchPlan:
+ 1. Define research questions (primary + secondary).
+ 2. Determine participant criteria and recruitment strategy.
+ 3. Set session duration and location (remote/in-person).
+ 4. Create discussion guide or task scenarios.
+ 5. Establish timeline across all phases.
- rawData
- |> captureObservations(onePerNote, includeSource)
- |> clusterBySimilarity(emergentCategories)
- |> labelThemes
- |> generateInsights(formula: "[group] needs [need] because [context], but [pain point] means [consequence]")
- |> validateInsights(multipleParticipants, identifiesNeed, connectsToImpact, isActionable)
- |> prioritize(by: [frequency, impact, actionability])
+ ### 3. Conduct Research
+
+ match (plan.method) {
+ INTERVIEWS => Read reference/interview-methods.md, follow structured protocol
+ CONTEXTUAL_INQUIRY => Read reference/observation-methods.md, use observation guide
+ USABILITY_TESTING => Read reference/observation-methods.md, use think-aloud protocol
+ SURVEYS => distribute and collect responses
+ CARD_SORTING => facilitate sorting sessions
+ DIARY_STUDIES => monitor longitudinal entries
}
- fn createDeliverables(insights) {
- match (objective) {
- needsPersonas => load reference/persona-guide.md, build 3-5 behavioral personas
- needsJourneyMap => load reference/journey-mapping.md, map stages with emotional curve
- needsReport => load reference/planning-reporting.md, format structured report
- default => prioritized findings with recommendations
- }
+ ### 4. Synthesize Findings
- Constraints {
- require {
- Lead with insights, not methodology.
- Include participant voices (direct quotes).
- Connect findings to business outcomes.
- Provide clear, prioritized recommendations.
- }
- }
- }
+ Read reference/synthesis-methods.md for the full process.
- userResearch(objective) {
- selectMethod(objective) |> planResearch |> conductResearch |> synthesize |> createDeliverables
+ Process raw data:
+ 1. Capture observations (one per note, include source).
+ 2. Cluster by similarity into emergent categories.
+ 3. Label themes.
+ 4. Generate insights using formula: "[group] needs [need] because [context], but [pain point] means [consequence]".
+ 5. Validate insights: supported by multiple participants, identifies a need, connects to impact, is actionable.
+ 6. Prioritize by frequency, impact, and actionability.
+
+ ### 5. Create Deliverables
+
+ match (objective) {
+ needsPersonas => Read reference/persona-guide.md, build 3-5 behavioral personas
+ needsJourneyMap => Read reference/journey-mapping.md, map stages with emotional curve
+ needsReport => Read reference/planning-reporting.md, format structured report
+ default => prioritized findings with recommendations
}
+