433 lines
20 KiB
Bash
Executable file
433 lines
20 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
echo "📦 Creating prototyping-testing..."
|
|
mkdir -p prototyping-testing/.claude-plugin
|
|
mkdir -p prototyping-testing/commands
|
|
mkdir -p prototyping-testing/skills/{prototype-strategy,test-scenario,heuristic-evaluation,a-b-test-design,user-flow-diagram,wireframe-spec,click-test-plan,accessibility-test-plan}
|
|
cat > prototyping-testing/.claude-plugin/plugin.json << 'EOF'
|
|
{
|
|
"name": "prototyping-testing",
|
|
"version": "1.0.0",
|
|
"description": "Plan and execute design validation through prototyping strategies, usability testing, heuristic evaluation, and A/B experiments.",
|
|
"author": { "name": "MC Dean", "url": "https://marieclairedean.substack.com/" },
|
|
"keywords": ["prototyping", "usability-testing", "heuristic-evaluation", "a-b-testing", "wireframes"],
|
|
"homepage": "https://github.com/Owl-Listener/designer-skills",
|
|
"license": "MIT"
|
|
}
|
|
EOF
|
|
cat > prototyping-testing/README.md << 'EOF'
|
|
# prototyping-testing
|
|
Plan and execute design validation through prototyping strategies, usability testing, heuristic evaluation, and A/B experiments.
|
|
## Skills (8)
|
|
- **prototype-strategy** — Choose the right prototyping fidelity and method for the design question.
|
|
- **test-scenario** — Write usability test scenarios with tasks, success criteria, and observation guides.
|
|
- **heuristic-evaluation** — Conduct expert heuristic evaluations using Nielsen's heuristics and domain-specific criteria.
|
|
- **a-b-test-design** — Design rigorous A/B tests with hypotheses, variants, metrics, and sample size calculations.
|
|
- **user-flow-diagram** — Create user flow diagrams showing paths, decisions, and branch logic.
|
|
- **wireframe-spec** — Specify wireframe layouts with content priority, component placement, and annotation.
|
|
- **click-test-plan** — Design click/first-click tests to evaluate navigation and information findability.
|
|
- **accessibility-test-plan** — Create accessibility testing plans covering assistive technologies and WCAG criteria.
|
|
## Commands (4)
|
|
- `/prototype-plan` — Create a prototyping and testing plan for a design initiative.
|
|
- `/evaluate` — Run a heuristic evaluation of an existing design.
|
|
- `/test-plan` — Design a complete usability testing plan.
|
|
- `/experiment` — Design an A/B experiment for a design hypothesis.
|
|
EOF
|
|
for skill in prototype-strategy test-scenario heuristic-evaluation a-b-test-design user-flow-diagram wireframe-spec click-test-plan accessibility-test-plan; do
|
|
desc=""
|
|
body=""
|
|
case $skill in
|
|
prototype-strategy)
|
|
desc="Choose the right prototyping fidelity and method for the design question."
|
|
body="# Prototype Strategy
|
|
You are an expert in choosing prototyping approaches that efficiently answer design questions.
|
|
## What You Do
|
|
You help teams choose the right fidelity, tool, and method for prototyping based on what they need to learn.
|
|
## Fidelity Spectrum
|
|
### Low Fidelity
|
|
Paper sketches, sticky notes, rough wireframes. Best for: early exploration, information architecture, flow validation. Fast to create, easy to discard.
|
|
### Medium Fidelity
|
|
Digital wireframes, clickable prototypes, gray-box layouts. Best for: interaction patterns, navigation testing, stakeholder alignment.
|
|
### High Fidelity
|
|
Pixel-perfect mockups, coded prototypes, motion prototypes. Best for: visual design validation, micro-interaction testing, developer handoff, usability testing.
|
|
## Prototyping Methods
|
|
- **Paper prototyping**: Sketch screens, manually swap on user action
|
|
- **Clickable wireframes**: Linked screens with hotspots
|
|
- **Interactive prototypes**: Stateful with real interactions
|
|
- **Coded prototypes**: HTML/CSS/JS for realistic behavior
|
|
- **Wizard of Oz**: Fake backend, real frontend
|
|
- **Video prototypes**: Walkthrough animations showing the concept
|
|
## Choosing Fidelity
|
|
- What question are you answering?
|
|
- Who is the audience (users, stakeholders, developers)?
|
|
- How much time do you have?
|
|
- How many iterations do you expect?
|
|
- What decisions will this prototype inform?
|
|
## Best Practices
|
|
- Match fidelity to the question, not the deadline
|
|
- Prototype the riskiest assumption first
|
|
- Don't over-invest before testing
|
|
- Make it clear it is a prototype (avoid polished for early feedback)
|
|
- Plan for iteration — build to throw away"
|
|
;;
|
|
test-scenario)
|
|
desc="Write usability test scenarios with tasks, success criteria, and observation guides."
|
|
body="# Test Scenario
|
|
You are an expert in writing usability test scenarios that reveal genuine user behavior.
|
|
## What You Do
|
|
You write test scenarios with realistic tasks, clear success criteria, and structured observation guides.
|
|
## Scenario Structure
|
|
### Context Setting
|
|
Brief, realistic backstory that gives the participant a reason to act without leading them.
|
|
### Task
|
|
Specific goal to accomplish. Action-oriented, not question-based. Avoids UI terminology that hints at the answer.
|
|
### Success Criteria
|
|
- Task completion (yes/no)
|
|
- Time to complete
|
|
- Number of errors or wrong paths
|
|
- Assistance requests
|
|
- Self-reported difficulty (1-5 scale)
|
|
### Observation Guide
|
|
What to watch for: hesitations, facial expressions, verbal comments, navigation choices, error recovery behavior.
|
|
## Task Types
|
|
- **Exploratory**: Find information (e.g., 'Find the return policy')
|
|
- **Specific**: Complete a goal (e.g., 'Add a blue shirt size M to your cart')
|
|
- **Comparative**: Choose between options
|
|
- **Open-ended**: Achieve a goal with multiple valid paths
|
|
## Scenario Writing Rules
|
|
- Use participant's language, not product jargon
|
|
- Give motivation, not instructions
|
|
- One goal per task
|
|
- Don't reveal the UI path in the task wording
|
|
- Include both simple and complex tasks
|
|
## Best Practices
|
|
- Pilot test your scenarios before real sessions
|
|
- Order tasks from easy to hard
|
|
- Include a warm-up task
|
|
- Prepare follow-up questions per task
|
|
- Write more scenarios than you need (allow flexibility)"
|
|
;;
|
|
heuristic-evaluation)
|
|
desc="Conduct expert heuristic evaluations using Nielsen's heuristics and domain-specific criteria."
|
|
body="# Heuristic Evaluation
|
|
You are an expert in conducting systematic heuristic evaluations of digital interfaces.
|
|
## What You Do
|
|
You evaluate interfaces against established usability heuristics to identify problems before user testing.
|
|
## Nielsen's 10 Usability Heuristics
|
|
1. **Visibility of system status** — Users know what is happening
|
|
2. **Match real world** — System speaks users' language
|
|
3. **User control and freedom** — Easy undo and exit
|
|
4. **Consistency and standards** — Follow conventions
|
|
5. **Error prevention** — Prevent problems before they occur
|
|
6. **Recognition over recall** — Make options visible
|
|
7. **Flexibility and efficiency** — Shortcuts for experts
|
|
8. **Aesthetic and minimalist design** — No irrelevant information
|
|
9. **Error recovery** — Help users recognize and recover from errors
|
|
10. **Help and documentation** — Provide assistance when needed
|
|
## Evaluation Process
|
|
1. Define scope (which screens/flows to evaluate)
|
|
2. Walk through as a new user
|
|
3. Walk through as an experienced user
|
|
4. Walk through each task flow
|
|
5. Document each issue found
|
|
6. Rate severity
|
|
7. Compile and prioritize findings
|
|
## Issue Documentation
|
|
For each issue: heuristic violated, description, location, severity (0-4), screenshot/reference, recommendation.
|
|
## Severity Scale
|
|
- 0: Not a usability problem
|
|
- 1: Cosmetic only
|
|
- 2: Minor problem
|
|
- 3: Major problem (important to fix)
|
|
- 4: Catastrophe (must fix before release)
|
|
## Best Practices
|
|
- Multiple evaluators find more issues (3-5 ideal)
|
|
- Evaluate independently before comparing
|
|
- Focus on real user tasks, not edge cases
|
|
- Don't just find problems — suggest solutions
|
|
- Combine with real user testing for complete picture"
|
|
;;
|
|
a-b-test-design)
|
|
desc="Design rigorous A/B tests with hypotheses, variants, metrics, and sample size calculations."
|
|
body="# A/B Test Design
|
|
You are an expert in designing rigorous A/B experiments that produce actionable results.
|
|
## What You Do
|
|
You design A/B tests with clear hypotheses, controlled variants, appropriate metrics, and statistical rigor.
|
|
## Test Structure
|
|
### 1. Hypothesis
|
|
Structured as: 'If we [change], then [outcome] will [improve/decrease] because [rationale].'
|
|
### 2. Variants
|
|
- Control (A): current design
|
|
- Treatment (B): proposed change
|
|
- Keep changes isolated — test one variable at a time
|
|
### 3. Primary Metric
|
|
The single most important measure of success. Must be measurable, relevant, and sensitive to the change.
|
|
### 4. Secondary Metrics
|
|
Supporting measures and guardrail metrics to detect unintended consequences.
|
|
### 5. Sample Size
|
|
Based on: minimum detectable effect, baseline conversion rate, statistical significance level (typically 95%), and power (typically 80%).
|
|
### 6. Duration
|
|
Run until sample size is reached. Account for weekly cycles (run in full weeks). Minimum 1-2 weeks typically.
|
|
## Common Pitfalls
|
|
- Peeking at results before completion
|
|
- Too many variants at once
|
|
- Metric not sensitive enough to detect change
|
|
- Sample size too small
|
|
- Not accounting for novelty effects
|
|
- Ignoring segmentation effects
|
|
## When Not to A/B Test
|
|
- Very low traffic (insufficient sample)
|
|
- Ethical concerns with withholding improvement
|
|
- Foundational changes that affect everything
|
|
- When qualitative insight is more valuable
|
|
## Best Practices
|
|
- One hypothesis per test
|
|
- Document everything before starting
|
|
- Don't stop early on positive results
|
|
- Analyze segments after overall results
|
|
- Share learnings broadly regardless of outcome"
|
|
;;
|
|
user-flow-diagram)
|
|
desc="Create user flow diagrams showing paths, decisions, and branch logic."
|
|
body="# User Flow Diagram
|
|
You are an expert in creating clear user flow diagrams that map paths through a product.
|
|
## What You Do
|
|
You create flow diagrams showing how users move through a product to accomplish goals, including decisions, branches, and error paths.
|
|
## Flow Diagram Elements
|
|
- **Entry point**: Where the user enters the flow (circle/oval)
|
|
- **Screen/page**: A view the user sees (rectangle)
|
|
- **Decision**: A branching point (diamond)
|
|
- **Action**: Something the user does (rounded rectangle)
|
|
- **System process**: Backend operation (rectangle with side bars)
|
|
- **End point**: Flow completion (circle with border)
|
|
- **Connector**: Arrow showing direction of flow
|
|
## Flow Types
|
|
- **Task flow**: Single path for a specific task (linear)
|
|
- **User flow**: Multiple paths based on user type or choice
|
|
- **Wire flow**: Flow combined with wireframe thumbnails
|
|
## Creating Effective Flows
|
|
1. Define the goal the flow accomplishes
|
|
2. Identify the entry point(s)
|
|
3. Map the happy path first
|
|
4. Add decision points and branches
|
|
5. Map error paths and recovery
|
|
6. Mark exit points
|
|
7. Note system actions happening in background
|
|
## Flow Annotations
|
|
- Screen names and key content
|
|
- Decision criteria at each branch
|
|
- Error conditions and handling
|
|
- System events and notifications
|
|
- Time delays or async processes
|
|
## Best Practices
|
|
- One flow per user goal
|
|
- Start with happy path, then add complexity
|
|
- Include error and edge case paths
|
|
- Keep flows readable (not too many branches on one diagram)
|
|
- Use consistent notation
|
|
- Label every arrow with the trigger/action"
|
|
;;
|
|
wireframe-spec)
|
|
desc="Specify wireframe layouts with content priority, component placement, and annotation."
|
|
body="# Wireframe Spec
|
|
You are an expert in creating annotated wireframe specifications.
|
|
## What You Do
|
|
You specify wireframe layouts defining content priority, component placement, behavior annotations, and responsive considerations.
|
|
## Wireframe Components
|
|
### Content Blocks
|
|
- Headers and navigation
|
|
- Hero/feature areas
|
|
- Content sections (text, media, cards)
|
|
- Forms and input areas
|
|
- Footers and secondary navigation
|
|
### Annotations
|
|
- Content priority numbers (what loads/appears first)
|
|
- Interaction notes (what happens on click/hover)
|
|
- Dynamic content indicators (personalized, data-driven)
|
|
- Responsive behavior notes
|
|
- Accessibility notes
|
|
### Content Specifications
|
|
- Heading hierarchy (H1, H2, H3)
|
|
- Approximate text length/character counts
|
|
- Image aspect ratios and sizing
|
|
- Required vs optional content
|
|
- Content source (static, CMS, API)
|
|
## Fidelity Levels
|
|
- **Sketch**: Hand-drawn boxes and labels
|
|
- **Low-fi**: Gray boxes with content labels
|
|
- **Mid-fi**: Realistic layout with placeholder content
|
|
- **Annotated**: Mid-fi plus detailed behavior specs
|
|
## Wireframe Conventions
|
|
- Use gray/black/white only (no color decisions)
|
|
- X-box for images
|
|
- Wavy lines for text blocks
|
|
- Real labels for navigation and buttons
|
|
- Consistent component representation
|
|
## Best Practices
|
|
- Focus on content hierarchy, not visual design
|
|
- Annotate behavior, not just layout
|
|
- Show multiple states (empty, loading, populated, error)
|
|
- Include responsive breakpoint versions
|
|
- Get content strategy input early"
|
|
;;
|
|
click-test-plan)
|
|
desc="Design click/first-click tests to evaluate navigation and information findability."
|
|
body="# Click Test Plan
|
|
You are an expert in designing click tests that evaluate findability and navigation clarity.
|
|
## What You Do
|
|
You design first-click and click tests that measure whether users can find information and features.
|
|
## Test Types
|
|
- **First-click test**: Where do users click first for a given task?
|
|
- **Click-path test**: Full sequence of clicks to complete a task
|
|
- **Navigation test**: Can users find items using the nav structure?
|
|
- **Five-second test**: What do users remember after 5 seconds?
|
|
## Test Plan Structure
|
|
### 1. Objective
|
|
What navigation or findability question are you answering?
|
|
### 2. Stimuli
|
|
Screen designs or prototypes to test. Identify which pages/states to show.
|
|
### 3. Tasks
|
|
Clear, goal-oriented tasks without UI hints. Example: 'Where would you click to change your email address?'
|
|
### 4. Success Criteria
|
|
- Correct first click (target area defined)
|
|
- Time to first click
|
|
- Confidence rating
|
|
- Click distribution heat map
|
|
### 5. Participants
|
|
Number needed (typically 20-50 for quantitative), recruitment criteria, any segmentation.
|
|
## Analysis
|
|
- First-click success rate (above 65% generally indicates good findability)
|
|
- Click distribution patterns
|
|
- Time analysis (hesitation indicates confusion)
|
|
- Confidence correlation with accuracy
|
|
## Best Practices
|
|
- Test one task per screen
|
|
- Define click target areas before testing
|
|
- Use realistic content, not lorem ipsum
|
|
- Don't give hints in task wording
|
|
- Compare alternative designs with same tasks"
|
|
;;
|
|
accessibility-test-plan)
|
|
desc="Create accessibility testing plans covering assistive technologies and WCAG criteria."
|
|
body="# Accessibility Test Plan
|
|
You are an expert in planning comprehensive accessibility testing.
|
|
## What You Do
|
|
You create testing plans that systematically evaluate accessibility across assistive technologies and WCAG criteria.
|
|
## Testing Layers
|
|
### 1. Automated Testing
|
|
- Axe, Lighthouse, WAVE tools
|
|
- Catches approximately 30-40% of issues
|
|
- Run on every page/state
|
|
- Integrate into CI/CD pipeline
|
|
### 2. Manual Testing
|
|
- Keyboard-only navigation
|
|
- Screen reader walkthrough
|
|
- Zoom to 200% and 400%
|
|
- High contrast mode
|
|
- Reduced motion mode
|
|
### 3. Assistive Technology Testing
|
|
- Screen readers: VoiceOver (Mac/iOS), NVDA (Windows), TalkBack (Android)
|
|
- Voice control: Voice Control (Mac/iOS), Dragon
|
|
- Switch control
|
|
- Screen magnification
|
|
### 4. User Testing with Disabilities
|
|
- Recruit participants with relevant disabilities
|
|
- Include variety (vision, motor, cognitive, hearing)
|
|
- Test with their own devices and settings
|
|
- Focus on real tasks, not compliance checkboxes
|
|
## Test Matrix
|
|
For each key user flow, test across: keyboard only, VoiceOver, NVDA, zoom 200%, high contrast, reduced motion.
|
|
## WCAG Criteria Checklist
|
|
Organize by principle (Perceivable, Operable, Understandable, Robust) and level (A, AA, AAA).
|
|
## Reporting
|
|
For each issue: description, WCAG criterion, severity, assistive tech affected, steps to reproduce, remediation.
|
|
## Best Practices
|
|
- Test early and continuously, not just before launch
|
|
- Automated testing is necessary but not sufficient
|
|
- Test with real assistive technology users
|
|
- Include accessibility in definition of done
|
|
- Prioritize by user impact, not just compliance level"
|
|
;;
|
|
esac
|
|
cat > "prototyping-testing/skills/$skill/SKILL.md" << ENDFILE
|
|
---
|
|
name: $skill
|
|
description: $desc
|
|
---
|
|
$body
|
|
ENDFILE
|
|
done
|
|
# Commands
|
|
cat > prototyping-testing/commands/prototype-plan.md << 'EOF'
|
|
---
|
|
description: Create a prototyping and testing plan for a design initiative.
|
|
argument-hint: "[feature or initiative to prototype and test]"
|
|
---
|
|
# /prototype-plan
|
|
Create a prototyping and testing plan.
|
|
## Steps
|
|
1. **Strategy** — Choose fidelity and method using `prototype-strategy` skill.
|
|
2. **Flows** — Map user flows to prototype using `user-flow-diagram` skill.
|
|
3. **Wireframes** — Specify wireframe layouts using `wireframe-spec` skill.
|
|
4. **Test scenarios** — Write usability tasks using `test-scenario` skill.
|
|
5. **Accessibility** — Plan accessibility testing using `accessibility-test-plan` skill.
|
|
6. **Timeline** — Create a prototyping and testing schedule.
|
|
## Output
|
|
Prototyping plan with fidelity rationale, user flows, wireframe specs, test scenarios, accessibility plan, and timeline.
|
|
Consider following up with `/test-plan` for detailed usability testing or `/evaluate` for expert review.
|
|
EOF
|
|
cat > prototyping-testing/commands/evaluate.md << 'EOF'
|
|
---
|
|
description: Run a heuristic evaluation of an existing design.
|
|
argument-hint: "[design, screen, or flow to evaluate]"
|
|
---
|
|
# /evaluate
|
|
Run a heuristic evaluation of a design.
|
|
## Steps
|
|
1. **Scope** — Define screens and flows to evaluate.
|
|
2. **Heuristic review** — Evaluate against Nielsen's heuristics using `heuristic-evaluation` skill.
|
|
3. **Flow analysis** — Review user flows for issues using `user-flow-diagram` skill.
|
|
4. **Accessibility check** — Evaluate accessibility using `accessibility-test-plan` skill.
|
|
5. **Severity rating** — Rate and prioritize all findings.
|
|
6. **Recommendations** — Provide specific improvement suggestions.
|
|
## Output
|
|
Evaluation report with findings per heuristic, severity ratings, accessibility issues, and prioritized recommendations.
|
|
Consider following up with `/test-plan` to validate findings with real users.
|
|
EOF
|
|
cat > prototyping-testing/commands/test-plan.md << 'EOF'
|
|
---
|
|
description: Design a complete usability testing plan.
|
|
argument-hint: "[product, feature, or prototype to test]"
|
|
---
|
|
# /test-plan
|
|
Design a complete usability testing plan.
|
|
## Steps
|
|
1. **Objectives** — Define what you need to learn.
|
|
2. **Method** — Choose testing approach using `prototype-strategy` skill.
|
|
3. **Scenarios** — Write test tasks using `test-scenario` skill.
|
|
4. **Click tests** — Design findability tests using `click-test-plan` skill.
|
|
5. **Accessibility** — Include accessibility testing using `accessibility-test-plan` skill.
|
|
6. **Logistics** — Define participants, schedule, equipment, and facilitation guide.
|
|
## Output
|
|
Testing plan with objectives, methodology, task scenarios, participant criteria, facilitation guide, and analysis framework.
|
|
Consider following up with `/evaluate` for expert review before user testing.
|
|
EOF
|
|
cat > prototyping-testing/commands/experiment.md << 'EOF'
|
|
---
|
|
description: Design an A/B experiment for a design hypothesis.
|
|
argument-hint: "[hypothesis or design change to test, e.g., 'new checkout flow will increase conversion']"
|
|
---
|
|
# /experiment
|
|
Design an A/B experiment.
|
|
## Steps
|
|
1. **Hypothesis** — Structure the hypothesis using `a-b-test-design` skill.
|
|
2. **Variants** — Define control and treatment designs.
|
|
3. **Metrics** — Define primary and guardrail metrics using `a-b-test-design` skill.
|
|
4. **Sample size** — Calculate required sample and duration using `a-b-test-design` skill.
|
|
5. **User flows** — Map variant flows using `user-flow-diagram` skill.
|
|
6. **Analysis plan** — Define how results will be analyzed and decisions made.
|
|
## Output
|
|
Experiment design document with hypothesis, variant specs, metrics, sample calculations, duration, and analysis plan.
|
|
Consider following up with `/test-plan` for qualitative testing alongside the experiment.
|
|
EOF
|
|
echo "✅ prototyping-testing complete (8 skills, 4 commands)"
|