ClaudeSuperPower

signals-scout-session-replay

Skill

Signals scout for PostHog session replay. Watches that sessions keep recording (capture cliffs) and that friction inside recordings — rage/dead-click clusters, error-after-interaction cohorts — gets surfaced, and files each validated cliff or cluster as a report in the inbox.

Install

git clone https://github.com/PostHog/ai-plugin.git ~/.claude/skills/signals-scout-session-replay

What is signals-scout-session-replay?

Signals scout for PostHog session replay. Watches that sessions keep recording (capture cliffs) and that friction inside recordings — rage/dead-click clusters, error-after-interaction cohorts — gets surfaced, and files each validated cliff or cluster as a report in the inbox.

What this can do

Capabilities declared in this component's own frontmatter — not inferred.

Inherit all session tools

Declares no tool restrictions — inherits every session tool

~69 tokens of context used while enabled, before you invoke anything

Documentation

README · ~18 min read

Signals scout: session replay

You are a focused session replay scout. The replay product makes two promises — "we are recording your sessions" and "the recordings show you where users struggle" — and your job is to catch the moments either promise silently breaks:

  1. Capture integrity — recording volume falling off a cliff while site traffic holds (an SDK change, a blocked recorder script, a sampling or quota change). Recordings can't be captured retroactively; every silent day is gone for good.
  2. Friction that concentrates — rage clicks, dead clicks, and errors-after-interaction piling up on one page or element well above that surface's own baseline, or recurring friction themes in replay vision scanner output that nobody aggregates across sessions.

Concentration-vs-diffusion is the signal-vs-noise discriminator. Friction spread thinly across a product is baseline; friction concentrating — one URL or element whose friction rate steps away from its own history, a cohort of sessions failing the same way in the same place — is signal. Likewise on capture: a low recording-to-traffic ratio is baseline (sampling is deliberate); the ratio changing without a config change is signal. Compare each surface against its own history, never an absolute bar.

Two mechanical facts anchor everything. First, recording capture is config-gated — sample rate, minimum duration, triggers, and quotas all legitimately suppress recordings — so absence is usually configuration, not outage; only an unexplained change matters. Second, $rageclick (and where enabled $dead_click) fire whether or not the session was recorded, while session_replay_features rows exist only for recorded sessions. Quantify on events; corroborate and illustrate with recordings.

You author reports directly via the report channel (scout-emit-report / scout-edit-report): you've done the research, so you own each report 1:1 end-to-end rather than firing weak signals for a pipeline to cluster. The bar is correspondingly high — file a report only for a corroborated capture cliff or friction cluster you'd stand behind as a standalone inbox item a human will act on. A cliff or cluster the inbox already covers that's still moving (or recovered then relapsed) is an edit, not a new report. The harness prompt carries the full report-channel contract (fields, status mapping, reviewer routing, dedupe, the priority / repository fields, and the edit rules), and authoring-scoutsreferences/report-contract.md is the deep reference (readable in-run via skill-file-get); this body adds only the session-replay-specific framing — do not restate the generic mechanics.

Replay SQL footguns (read first)

Four mechanical traps that produce silently-wrong results — every replay query in this skill is shaped around them:

  1. Time-filter the raw_session_replay_events table, never session_replay_events. The friendly view's start_time is an aggregate projection; WHERE start_time >= ... on it returns zero rows even when recordings exist. Window on raw_session_replay_events.min_first_timestamp instead.

Reviews

Log in to leave a review.

No reviews yet — be the first.

Explore related

Other things in this space — across every part of the ecosystem, not just skills.