Source profileQuality 93/100

PostHog/skills/skills/omnibus/analyzing-experiment-session-replays/SKILL.md

analyzing-experiment-session-replays

Analyze session replay patterns across experiment variants to understand user behavior differences. Use when the user wants to see how users interact with different experiment variants, identify usability issues, compare behavior patterns between control and test groups, or get qualitative insights to complement quantitative experiment results.

Source repository stars
60
Declared platforms
0
Static risk flags
0
Last source update
2026-08-24
Source checked
2026-08-25

Decision brief

What it does: where it fits

This skill guides you through analyzing session recordings for experiment variants to understand behavioral differences between control and test groups.

Best for

  • The user asks to analyze session replays for an experiment
  • The user wants to understand how users behave differently across experiment variants
  • The user asks to compare user behavior between control and test variants

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/PostHog/skills --skill "skills/omnibus/analyzing-experiment-session-replays"
Safe inspection promptEditorial

Inspect the Agent Skill "analyzing-experiment-session-replays" from https://github.com/PostHog/skills/blob/870cdf070c94f2bf39d8b2a9d4916cfd44779cce/skills/omnibus/analyzing-experiment-session-replays/SKILL.md at commit 870cdf070c94f2bf39d8b2a9d4916cfd44779cce. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Workflow

    First, retrieve the experiment information and the feature flag variants (source of truth).

    Option A: Use the experiment-get tool if you already have the experiment ID from contextOption B: Query the experiments table via HogQL:featureflagkey: The feature flag controlling the experiment
  2. 02

    When to use this skill

    The user asks to analyze session replays for an experiment

    The user asks to analyze session replays for an experimentThe user wants to understand how users behave differently across experiment variantsThe user asks to compare user behavior between control and test variants
  3. 03

    Prerequisites

    Before analyzing session replays:

    The experiment must be launched (not in draft state)Session replay must be enabled for the projectUsers must have been exposed to the experiment variants
  4. 04

    1. Get experiment details and feature flag variants

    First, retrieve the experiment information and the feature flag variants (source of truth).

    Option A: Use the experiment-get tool if you already have the experiment ID from contextOption B: Query the experiments table via HogQL:featureflagkey: The feature flag controlling the experiment
  5. 05

    2. Build session recording filters for each variant

    For each variant in the experiment, construct recording filters that match users exposed to that variant.

    The $feature/ event property records which variant the user saw — filtering on it matches recordings containing at least one event from that variantvalue is an array of variant key strings (e.g. ["control"]); for boolean flags use ["true"] or ["false"]Avoid the type: "flag" / flagevaluatesto property filter for variant scoping — the recordings query accepts it but silently ignores it, returning unfiltered results (last verified 2026-06-10). If you want to try it anyw…

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score93/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars60SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
PostHog/skills
Skill path
skills/omnibus/analyzing-experiment-session-replays/SKILL.md
Commit
870cdf070c94f2bf39d8b2a9d4916cfd44779cce
License
MIT
Collected
2026-08-25
Default branch
main
View the original SKILL.md

Analyzing experiment session replays

This skill guides you through analyzing session recordings for experiment variants to understand behavioral differences between control and test groups.

When to use this skill

Use this skill when:

  • The user asks to analyze session replays for an experiment
  • The user wants to understand how users behave differently across experiment variants
  • The user asks to compare user behavior between control and test variants
  • The user wants qualitative insights to complement experiment metrics
  • The user asks questions like "How are users behaving in my experiment?" or "Show me session replays for variant X"

Prerequisites

Before analyzing session replays:

  1. The experiment must be launched (not in draft state)
  2. Session replay must be enabled for the project
  3. Users must have been exposed to the experiment variants
  4. The experiment must have a start date

Workflow

1. Get experiment details and feature flag variants

First, retrieve the experiment information and the feature flag variants (source of truth).

Step 1a: Get experiment metadata

You can either:

  • Option A: Use the experiment-get tool if you already have the experiment ID from context
  • Option B: Query the experiments table via HogQL:
SELECT
    e.id,
    e.name,
    f.key AS feature_flag_key,
    e.start_date,
    e.end_date
FROM system.experiments e
JOIN system.feature_flags f ON f.id = e.feature_flag_id
WHERE e.id = <experiment_id>

From the experiment data, extract:

  • feature_flag_key: The feature flag controlling the experiment
  • start_date and end_date: The experiment's time range

Step 1b: Get variants from the feature flag

IMPORTANT: Always get variants from the feature flag, NOT from experiment.parameters.feature_flag_variants. The parameters can be out of sync or deprecated. The feature flag is the source of truth.

Query the feature flag to get the current variants:

SELECT filters.multivariate.variants AS variants
FROM system.feature_flags
WHERE key = '<feature_flag_key>'

Select the variants path directly — selecting the whole filters object gets truncated in results for flags with large targeting configs. Example structure: [{"key": "control", "name": "Control", "rollout_percentage": 50}, {"key": "test", ...}]

The variant key values (e.g., "control", "test", "variant_a") are what you'll use to filter session recordings.

2. Build session recording filters for each variant

For each variant in the experiment, construct recording filters that match users exposed to that variant.

Filter structure for a variant (input to query-session-recordings-list):

{
  "date_from": "<experiment.start_date>",
  "date_to": "<experiment.end_date or current time>",
  "filter_test_accounts": true,
  "properties": [
    {
      "type": "event",
      "key": "$feature/<feature_flag_key>",
      "operator": "exact",
      "value": ["<variant_key>"]
    }
  ]
}

Key points:

  • The $feature/<flag_key> event property records which variant the user saw — filtering on it matches recordings containing at least one event from that variant
  • value is an array of variant key strings (e.g. ["control"]); for boolean flags use ["true"] or ["false"]
  • Avoid the type: "flag" / flag_evaluates_to property filter for variant scoping — the recordings query accepts it but silently ignores it, returning unfiltered results (last verified 2026-06-10). If you want to try it anyway, verify it actually filters first: a query with a nonexistent flag key should return zero recordings
  • Set the date range to the experiment's start and end dates
  • Enable filter_test_accounts: true to exclude test users

3. Retrieve recordings for each variant

Use the query-session-recordings-list tool with the filters constructed in step 2.

Call the tool once per variant to get recordings for each group:

  • Variant "control" → recordings for control group
  • Variant "test" → recordings for test variant
  • Additional variants if the experiment has more than 2

The tool returns a list of recordings with metadata including:

  • distinct_id — the person's distinct ID
  • recording_duration, active_seconds, inactive_seconds
  • click_count, keypress_count, mouse_activity_count
  • console_log_count, console_warn_count, console_error_count
  • start_url — first page URL visited
  • start_time / end_time, activity_score

4. Compare and analyze

Compare the recordings between variants by looking for:

Quantitative patterns:

  • Session duration differences
  • Activity levels (clicks, keypresses)
  • Console error rates
  • Bounce rates

Qualitative insights:

  • User confusion or frustration indicators
  • Different navigation paths
  • Feature discovery patterns
  • Error recovery behavior

5. Present findings

Summarize the behavioral differences between variants, highlighting:

  • Total recordings per variant
  • Notable behavior patterns unique to each variant
  • Usability issues or friction points observed
  • Recommendations based on the qualitative data

Example interaction

User: "How are users behaving in my checkout experiment?"
Agent steps:
1. Query experiment details (ID: 123, feature_flag_key: "checkout-flow-test", date range: 2025-01-01 to 2025-01-31)
2. Query feature flag "checkout-flow-test" to get variants from filters.multivariate.variants
3. Extract variant keys: "control" and "new-checkout"
4. Build filters for control variant:
   - Property filter: { type: "event", key: "$feature/checkout-flow-test", operator: "exact", value: ["control"] }
   - Date range: 2025-01-01 to 2025-01-31
5. Call query-session-recordings-list with control filters → 147 recordings found
6. Build filters for new-checkout variant and call query-session-recordings-list → 152 recordings found
7. Compare patterns:
   - Control: Average 3m 45s session duration, 12% console errors
   - New-checkout: Average 2m 30s session duration, 5% console errors
8. Present findings:
   "I analyzed session replays for your checkout experiment. The new checkout flow shows:
   - 33% faster completion (2m 30s vs 3m 45s)
   - 58% fewer console errors (5% vs 12%)
   - Users in the new variant navigate directly to payment, while control users often backtrack to review cart
   - Recommendation: The new checkout flow reduces friction and errors"

Important notes

Do not make assumptions:

  • Always verify the experiment has recordings before analyzing
  • Check that the experiment is launched (has a start_date)
  • If no recordings are found, inform the user clearly

Filter construction:

  • The $feature/<flag_key> event property is how you scope recordings to a variant
  • One filter per variant — call the tool once per variant with its own filter
  • For boolean flags, use ["true"]/["false"] as the value instead of a variant key

Error handling:

  • If the experiment is in draft state, tell the user it hasn't started yet
  • If no recordings exist, suggest enabling session replay or waiting for user traffic
  • If the variant count is unexpected, double-check the experiment configuration

Related tools

  • query-session-recordings-list: Core tool for retrieving session recordings with filters
  • experiment-get: Get experiment metadata; experiment-results-get for statistical results
  • execute-sql: Query experiments table for details via HogQL

Frequently asked questions

What to verify before installation and use

What does the analyzing-experiment-session-replays source document cover?

This skill guides you through analyzing session recordings for experiment variants to understand behavioral differences between control and test groups.

How do I install analyzing-experiment-session-replays?

The source record exposes this install command: npx skills add https://github.com/PostHog/skills --skill "skills/omnibus/analyzing-experiment-session-replays". Inspect the command and pinned source before running it.

Alternatives

Compare before choosing

Computed 10024,921

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 976,837

trailofbits/skills

constant-time-testing

Constant-time testing detects timing side channels in cryptographic code. Use when auditing crypto implementations for timing vulnerabilities.

Computed 975,241

dotnet/skills

test-tagging

Analyzes test suites in any language and tags each test with standardized traits (positive, negative, critical-path, boundary, smoke, regression, integration, performance, security). Use when the user wants to categorize, audit, or label tests with traits. Works across .NET (MSTest/xUnit/NUnit/TUnit), Python (pytest), TS/JS (Jest/Vitest), Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell, and C++ — auto-editing when the framework has canonical tag syntax, otherwise report-only. Do not use for writ

Computed 97223

yonatangross/orchestkit

verify

Grade work that already exists and decide whether it can merge. Runs the project's current unit, integration, and E2E suites plus security scanning and type checking, scores every dimension 0-10, and returns a merge verdict with a VERIFIED-vs-CLAIMED evidence manifest. Writes no test files and edits no source. Use when verifying changes are ready to merge. Use /ork:cover instead when the tests still have to be written.