CtrlK
BlogDocsLog inGet started
Tessl Logo

session-replay

Reads Mixpanel session replay recordings with the mixpanel_headless library. It fetches a user's sessions, turns them into action timelines and pandas DataFrames, and explains what happened on screen. Use when the user asks what a specific user did on screen, in a recording, or click by click; asks about rage clicks, dead clicks, rage taps, dead taps, error sessions, long pauses, or action timelines; wants to correlate a tracked event with on-screen behavior; gives a distinct_id or a replay ID and asks what happened in the session; or asks about iOS, Android, React Native, or Flutter recordings, screens, or taps. Do not use for aggregate analytics questions such as trends, funnels, retention, or segment counts (use mixpanelyst), or for building or editing dashboards (use dashboard-expert).

76

Quality

96%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

92%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly effective skill body: executable code throughout, a gated workflow with error recovery, non-obvious gotchas (unit mismatches, join defaults, credential handling), and a well-signaled one-level-deep reference for mobile recordings. The only weakness is minor duplication and a few trimmable sentences that cost tokens without adding guidance.

Suggestions

State the (×N) first-timestamp-only caveat once (in "Read a web timeline") and drop the duplicate bullet from "Gotchas", keeping only the pointer to actions_df/rage_clicks()/rage_taps().

Merge "A denial of some other command does not mean Bash is blocked. Still try the bare `mp --version`." into the preceding fallback step, since it restates guidance the numbered list already implies.

DimensionReasoningScore

Conciseness

The body is dense and nearly every sentence carries non-obvious, library-specific knowledge (unit mismatches, fetch limits, credential masking, join defaults). It falls short of 5 due to minor duplication and padding: the (×N) first-timestamp-only caveat is stated twice verbatim ("Gotchas" and "Read a web timeline"), and a few sentences (e.g. "A denial of some other command does not mean Bash is blocked") restate what a prior sentence implies. Not 3: the over-explanation is minor and localized, not a pattern.

4 / 5

Actionability

Fully executable, copy-paste-ready code with real method calls, parameter names, and expected outputs (e.g. `ws.replays_for_user("user-42", from_date=..., to_date=...)`, `print(bundle.top_clicks(10))`), plus exact CLI commands and self-documentation lookups (`mp help Workspace.replays_for_user`). The examples cover the common cases: fetch by user, by replay ID, correlate events, aggregate. Not 4: no gaps in concrete guidance.

5 / 5

Workflow Clarity

The numbered Workflow gives a clear sequence with explicit gates (check `replay.capture` before reading any timeline; read aggregates before timelines) and fallback branching (no distinct_id → find candidate users via mixpanelyst first), and the "Run code" section contains a full error-recovery loop (interpreter path fails → ask user to run setup → bare `mp --version` probe → version check before trusting lookups). Not 4: checkpoints and recovery paths are explicit, not implicit.

5 / 5

Progressive Disclosure

The SKILL.md is a working overview of the common web path, with exactly one clearly signaled, condition-gated, one-level-deep reference ([references/mobile.md](references/mobile.md), a real 128-line file) that is pointed to in two places (workflow step 2 and the closing section), plus an external tutorial via a single WebFetch URL. Mobile-specific detail is correctly split out. Not 4: the split and navigation are clean, with no inlined content that belongs in the reference.

5 / 5

Total

19

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete capabilities, exhaustive natural trigger terms, explicit what/when guidance, and negative scope that routes adjacent use cases to sibling skills, all in third person. Dense but every clause earns its place.

DimensionReasoningScore

Specificity

"Fetches a user's sessions, turns them into action timelines and pandas DataFrames, and explains what happened on screen" lists multiple specific concrete actions (fetch, timeline construction, DataFrame projection, on-screen explanation) with comprehensive coverage of the skill's surface. It does not fall to 4 because no meaningful capability gap exists: even event correlation is named.

5 / 5

Completeness

It explicitly answers both what ("Reads Mixpanel session replay recordings with the mixpanel_headless library…") and when ("Use when the user asks what a specific user did…"), with concrete trigger phrases and a complementary negative-scope clause ("Do not use for aggregate analytics…"). Not 4: the when-clause is fully explicit, not just present.

5 / 5

Trigger Term Quality

Natural user phrasing is covered comprehensively with synonyms and variants: "what a specific user did on screen, in a recording, or click by click", "rage clicks, dead clicks, rage taps, dead taps, error sessions, long pauses", plus identifiers ("distinct_id or a replay ID") and platform names ("iOS, Android, React Native, or Flutter"). Not 4: essentially no common variation is missing.

5 / 5

Distinctiveness Conflict Risk

A clear niche (individual session replay analysis) with distinct triggers, and explicit conflict-avoidance routing to adjacent skills: "use mixpanelyst" for aggregate analytics and "use dashboard-expert" for dashboards. Not 4: the negative triggers remove even the minor overlap risk with the closest neighboring skills.

5 / 5

Total

20

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

Total

15

/

16

Passed

Repository
mixpanel/mixpanel-headless
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.