replay-ux-audit
Finds and analyzes Amplitude Session Replays to surface UX friction patterns across multiple sessions. Produces a ranked friction map showing where users struggle, hesitate, or abandon. Use when a PM or designer asks "where's the friction", "what's confusing users", "UX issues on this page", "why is this flow clunky", "audit the user experience", or wants qualitative evidence of usability problems in a specific feature or flow.
What this skill does
# Replay UX Audit Watch 5-10 session replays for a specific feature, page, or flow, then synthesize patterns into a ranked friction map. This skill turns hours of manual replay watching into a structured UX report grounded in real user behavior. --- ## CRITICAL: Tool Reference **Primary tools:** - **`Amplitude:get_session_replays`** — Find sessions matching event filters, user properties, or time windows. Use this to target sessions for a specific feature or flow. - **`Amplitude:get_session_replay_events`** — Decode a replay into an interaction timeline: navigations, clicks, inputs, scrolls. This is what you "watch." **Supporting tools:** - **`Amplitude:get_events`** — Discover valid event names. Never guess event names. - **`Amplitude:get_event_properties`** — Discover properties for filtering (page path, feature area, etc.). - **`Amplitude:query_chart`** — Pull quantitative context (funnel conversion rates, feature adoption) to anchor the qualitative replay findings. - **`Amplitude:get_feedback_insights`** / **`Amplitude:get_feedback_mentions`** — Cross-reference replay friction with customer feedback themes. --- ## Instructions ### Step 1: Define the Audit Scope Determine what to audit from the user's request: - **Page or URL pattern**: A specific page (e.g., /settings, /checkout) - **Feature or flow**: A multi-step process (e.g., onboarding, report creation) - **Event-based**: Sessions containing a specific event (e.g., "Export Clicked") - **Broad**: "Audit the whole product" — narrow this down. Ask: "Which area would you like me to start with?" Suggest 2-3 areas based on high-traffic pages or known problem areas if you can identify them. Also determine: - **Time window**: Default to last 14 days unless specified. - **User segment** (optional): Specific plan, platform, cohort, or user type. ### Step 2: Get Context and Discover Events 1. Call `Amplitude:get_context`. If multiple projects, ask which to audit. 2. Call `Amplitude:get_events` to find events related to the target area. Look for: - Page view or navigation events for the target area - Key interaction events (clicks, form submissions) within the flow - Error or failure events that may indicate friction 3. If the user mentioned a flow or funnel, identify the key step events so you can filter sessions that attempted the flow. ### Step 3: Gather Quantitative Baseline (Optional but Recommended) Before watching replays, establish context with 1-2 chart queries. Budget: 2 calls max. - If auditing a **funnel**: Use `Amplitude:query_chart` to get the current conversion rate and identify the worst drop-off step. This tells you where to focus your replay attention. - If auditing a **page**: Query the page's traffic volume and any error rates to understand scale. - If auditing a **feature**: Query adoption/usage frequency to understand how many users interact with it. This quantitative baseline makes your qualitative findings more actionable — "40% of users drop off at step 3, and here's what we see them doing" is stronger than "users seem confused at step 3." ### Step 4: Find Target Sessions Use `Amplitude:get_session_replays` to find 8-12 sessions (request `limit: 12` to allow for some sessions with missing replay data). **Filter strategy by audit type:** - **Page audit**: Filter by event on that page (use page path property if available). - **Flow audit**: Filter by the entry event of the flow. Optionally add a second filter for sessions that did NOT complete the flow (to focus on drop-offs). - **Feature audit**: Filter by the feature's key interaction event. - **Segment comparison**: Run two searches — one for each segment — to compare behavior. If the user specified a segment (plan type, platform, etc.), add user property filters. ### Step 5: Watch Sessions — Extract Interaction Timelines For each session, call `Amplitude:get_session_replay_events` with `event_limit: 300`. **Budget: 5-8 sessions.** Skip sessions that return empty or minimal data. **While analyzing each session, track these friction signals:** | Signal | What to look for in the timeline | |---|---| | **Rage clicks** | 3+ clicks on the same coordinates within a short time span | | **Hesitation** | Long pauses (>10 seconds) between navigation and first interaction on a page | | **Back-and-forth** | Navigating to a page, then back, then forward again | | **Abandoned inputs** | Starting to type in a field, then navigating away without submitting | | **Excessive scrolling** | Large scroll deltas suggesting the user is searching for something | | **Dead-end navigation** | Visiting a page and immediately leaving (bounce within seconds) | | **Repeat attempts** | Performing the same action multiple times (re-submitting a form, re-clicking a button) | For each session, write a brief summary: - Pages visited in the target area - Key actions taken - Friction signals observed (with timestamps) - Whether the user completed their apparent goal ### Step 6: Synthesize Friction Patterns This is the core analytical step. Aggregate findings across all watched sessions. 1. **Group friction signals by location.** Cluster observations by the page or step where they occurred. 2. **Count frequency.** How many of the watched sessions showed this friction? Express as "seen in X of Y sessions." 3. **Assess severity.** Use this rubric: | Severity | Criteria | |---|---| | **Critical** | Blocks task completion. User gives up or encounters an error. Seen in 50%+ of sessions. | | **High** | Causes significant confusion or delay. User eventually succeeds but with visible struggle. Seen in 30%+ of sessions. | | **Medium** | Causes minor hesitation or suboptimal paths. User recovers quickly. Seen in 20%+ of sessions. | | **Low** | Cosmetic or minor annoyance. Seen in <20% of sessions or only in edge cases. | 4. **Identify root cause hypotheses.** For each friction pattern, hypothesize why it happens: - Unclear UI labeling or hierarchy - Missing feedback after an action (loading state, confirmation) - Unexpected behavior (click does nothing, page doesn't respond) - Information not where users expect it (excessive scrolling/searching) - Error state without clear recovery path - Too many steps or cognitive load 5. **Cross-reference with feedback** (if available). Call `Amplitude:get_feedback_insights` with keywords from your friction findings. If users are complaining about the same thing you're seeing in replays, that's high-confidence signal. ### Step 7: Present the UX Audit Structure the output as a friction map that a PM or designer can act on. **Required sections:** 1. **Audit Summary** (3-4 sentences): What was audited, how many sessions were watched, the single biggest finding, and overall UX health assessment. Written as a narrative you could paste into a design review doc. 2. **Scope & Methodology**: - Feature/flow/page audited - Time window - Sessions analyzed: N (with replay links) - User segment (if filtered) - Quantitative baseline (if gathered in Step 3) 3. **Friction Map** — Ranked by severity, then frequency: For each friction point: ``` ### [Friction Point Title — action-oriented, ≤10 words] **Severity:** [Critical/High/Medium/Low] | **Frequency:** Seen in X of Y sessions **What happens:** Describe the user behavior observed — what they do, where they hesitate, what goes wrong. Be specific about the page and interaction. **Likely cause:** Your hypothesis for why this friction exists. **Evidence:** - Session replay links showing this pattern - Quantitative data (if available): conversion rate at this step, error rate, etc. - Customer feedback quotes (if found) **Suggested fix:** One concrete, actionable recommendation. ``` 4. **Positive Patterns** (1-2 items): What's working well. Which parts of the experience were smooth across sessions. This provides balance and highlights what to preserve. 5. **Recommended Next Steps** (3-5 numbered items): Start each with
Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.