User Research Skill
Atomic Skill: Conduct comprehensive user research to inform design decisions
Purpose
This skill provides structured methodologies for understanding users through qualitative and quantitative research methods.
Skill Invocation
Skill("custom-plugin-ux-design:user-research")
Parameter Schema
Input Parameters
interface UserResearchParams {
// Required
method: "interview" | "survey" | "persona" | "journey_map" | "usability_test";
objective: string;
// Optional
participants?: {
count: number;
criteria: string[];
recruitment_source?: string;
};
timeline?: string;
deliverables?: string[];
}
Validation Rules
method:
type: enum
required: true
values: [interview, survey, persona, journey_map, usability_test]
objective:
type: string
required: true
min_length: 10
max_length: 500
participants.count:
type: number
min: 1
max: 100
default: 5
Execution Flow
USER RESEARCH EXECUTION
────────────────────────────────────────────
Step 1: VALIDATE INPUTS
├── Check method validity
├── Verify objective clarity
└── Validate participant criteria
Step 2: PLAN RESEARCH
├── Select appropriate method
├── Design research protocol
└── Prepare materials
Step 3: EXECUTE
├── Conduct research sessions
├── Collect data
└── Document observations
Step 4: ANALYZE
├── Synthesize findings
├── Identify patterns
└── Generate insights
Step 5: DELIVER
├── Create deliverables
├── Present findings
└── Recommend actions
────────────────────────────────────────────
Retry Logic
retry_config:
max_attempts: 3
backoff_type: exponential
initial_delay_ms: 1000
max_delay_ms: 10000
retryable_errors:
- PARTICIPANT_NO_SHOW
- SESSION_INTERRUPTED
- DATA_INCOMPLETE
Logging Hooks
// Execution logging
interface ResearchLog {
timestamp: string;
event: "start" | "step_complete" | "error" | "complete";
method: string;
participants_completed: number;
insights_generated: number;
duration_ms: number;
}
// Log events
onStart: log({ event: "start", method, objective });
onStepComplete: log({ event: "step_complete", step, data });
onError: log({ event: "error", error, context });
onComplete: log({ event: "complete", summary });
Learning Modules
Module 1: Interview Techniques
INTERVIEW FUNDAMENTALS
├── Semi-structured interviews
├── Open-ended questions
├── Active listening
├── Probing techniques
└── Note-taking methods
ADVANCED TECHNIQUES
├── Contextual inquiry
├── Think-aloud protocol
├── Critical incident technique
└── Laddering interviews
Module 2: Survey Design
SURVEY BEST PRACTICES
├── Question types (Likert, multiple choice, open)
├── Survey flow and logic
├── Bias prevention
├── Response rate optimization
└── Statistical validity
Module 3: Persona Creation
PERSONA FRAMEWORK
├── Research-based personas
├── Behavioral archetypes
├── Goals and motivations
├── Pain points and frustrations
├── Jobs to be done
└── Validation methods
Module 4: Journey Mapping
JOURNEY MAP COMPONENTS
├── Stages and touchpoints
├── Actions and behaviors
├── Thoughts and feelings
├── Pain points and opportunities
├── Moments of truth
└── Service blueprints
Module 5: Usability Testing
USABILITY TEST PROTOCOL
├── Task design
├── Success metrics
├── Moderation techniques
├── Observation methods
├── Analysis frameworks
└── Reporting templates
Error Handling
| Error Code |
Description |
Recovery |
UR-001 |
Invalid method |
Suggest valid methods |
UR-002 |
Insufficient participants |
Recommend recruitment strategies |
UR-003 |
Unclear objective |
Prompt for clarification |
UR-004 |
Data quality issue |
Flag and document |
UR-005 |
Analysis blocked |
Provide partial insights |
Troubleshooting
Problem: Low participant recruitment
Diagnosis:
├── Check: Screening criteria too narrow?
├── Check: Incentive sufficient?
├── Check: Recruitment channels appropriate?
└── Solution: Expand criteria or channels
Steps:
1. Review screening criteria
2. Adjust incentive structure
3. Add recruitment sources
4. Extend timeline if needed
Problem: Biased findings
Diagnosis:
├── Check: Leading questions?
├── Check: Sample representative?
├── Check: Moderator influence?
└── Solution: Audit methodology
Steps:
1. Review question wording
2. Check sample demographics
3. Use neutral facilitation
4. Triangulate with other data
Unit Test Templates
describe("UserResearchSkill", () => {
describe("parameter validation", () => {
it("should reject invalid method", () => {
expect(() => invoke({ method: "invalid" }))
.toThrow("UR-001");
});
it("should require objective", () => {
expect(() => invoke({ method: "interview" }))
.toThrow("objective is required");
});
});
describe("interview execution", () => {
it("should generate interview script", async () => {
const result = await invoke({
method: "interview",
objective: "Understand onboarding experience"
});
expect(result.deliverables).toContain("interview_script");
});
});
describe("persona creation", () => {
it("should create research-based persona", async () => {
const result = await invoke({
method: "persona",
objective: "Define primary user archetype"
});
expect(result.persona).toHaveProperty("goals");
expect(result.persona).toHaveProperty("pain_points");
});
});
});
Quality Metrics
| Metric |
Target |
Measurement |
| Sample validity |
> 80% |
Representative coverage |
| Insight actionability |
> 90% |
Stakeholder adoption |
| Finding confidence |
> 85% |
Triangulation score |
| Participant satisfaction |
> 4/5 |
Post-session rating |
Version History
| Version |
Date |
Changes |
| 1.0.0 |
2025-12-30 |
Production-grade upgrade |