
Finding Replay for Issue
FreeQuickly find the most relevant session replay for errors.
Free · Opens the source repo
What Finding Replay for Issue does
The Finding Replay for Issue skill is designed to streamline the process of identifying the most informative session recording related to an error tracking issue. When a user encounters an error and provides an issue ID, this skill efficiently retrieves the session recordings that best illustrate the user's actions leading up to the error. This is particularly useful in environments where popular issues may have numerous linked sessions, allowing developers and designers to avoid the tedious task of sifting through potentially hundreds of recordings.
The skill operates through a structured workflow that begins with fetching details of the error tracking issue. It then queries for session IDs associated with the error, filtering and ranking these sessions based on specific criteria such as duration, activity score, and recency. This ensures that the selected recording not only captures the context of the error but also provides a meaningful narrative of user interaction prior to the incident. By focusing on sessions that are neither too short nor excessively long, the skill enhances the chances of obtaining a useful replay.
In addition to selecting the best recording, the skill can also leverage Replay Vision to provide a summarized narrative of the session. This optional feature allows users to gain insights without needing to watch the entire recording, making it easier to understand user behavior and identify issues quickly. The integration of AI summarization adds an extra layer of efficiency, particularly in high-traffic applications where quick resolutions are essential.
This skill is particularly beneficial for teams involved in product development, user experience design, and customer support, where understanding user interactions with errors can lead to improved application performance and user satisfaction. By utilizing this skill, teams can significantly reduce the time spent on error analysis and enhance their troubleshooting processes.
When to use it
Use this skill when you have an error tracking issue ID and need to identify the best session replay that shows what led to the error.
When not to use it
Avoid using this skill if there are very few linked sessions available, as it may not provide enough data for meaningful insights.
What you can build with it
Debugging User Errors
When a user reports an error, use this skill to quickly find the session replay that shows their actions leading to the issue.
Analyzing Application Crashes
For applications with frequent crashes, this skill helps identify user behavior patterns by selecting the most relevant session recordings.
Improving User Experience
Utilize this skill to gather insights from session replays, informing design decisions and enhancing overall user satisfaction.
How to install Finding Replay for Issue
View source1. Install with the skills CLI
npx skills add posthog/posthog/finding-replay-for-issue --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by posthogFinding the best replay for an error tracking issue
When a user says "show me a replay for this error" or "find a recording for issue X", the goal isn't just any linked session — it's the one that best shows what led to the error. Popular issues can have hundreds of linked sessions, and most are crash-only fragments or duplicate occurrences. This skill picks the most useful one.
Available tools
| Tool | Purpose |
|---|---|
posthog:query-error-tracking-issue | Get issue details (fingerprint, status, volume) |
posthog:execute-sql | Query exception events to find linked sessions |
posthog:query-session-recordings-list | Fetch recording metadata for candidate sessions |
posthog:session-recording-get | Get full details for the selected recording |
posthog:vision-observations-list | Check for an existing Replay Vision AI summary |
posthog:vision-scanners-list | Find summarizer scanners (scanner_type=summarizer) |
posthog:vision-scanners-scan-session | Run a summarizer scanner on the recording (optional, slow) |
Workflow
Step 1 — Get the issue details
Fetch the error tracking issue to understand what you're looking for:
posthog:query-error-tracking-issue
{
"issueId": "<issue_id>"
}
Note the issue's fingerprint, name, and description — you'll need the fingerprint
to find linked sessions.
Step 2 — Find sessions with this error
Query exception events to get session IDs where this error occurred. Order by recency and include basic context:
posthog:execute-sql
SELECT
$session_id AS session_id,
count() AS occurrences,
min(timestamp) AS first_seen,
max(timestamp) AS last_seen,
any(properties.$current_url) AS url
FROM events
WHERE event = '$exception'
AND properties.$exception_fingerprint = '<fingerprint>'
AND $session_id IS NOT NULL
AND timestamp > now() - INTERVAL 30 DAY
GROUP BY session_id
ORDER BY last_seen DESC
LIMIT 20
This gives you up to 20 candidate sessions. More candidates means better selection.
Step 3 — Rank the candidates
Fetch recording metadata for the candidate sessions to rank them:
posthog:query-session-recordings-list
{
"session_ids": ["<id1>", "<id2>", "<id3>", ...],
"date_from": "-30d"
}
Pick the best recording by filtering out bad candidates, then ranking what's left:
Filter out:
- Sessions under 10 seconds (crash-only fragments, no pre-error context)
- Sessions over 1 hour (too much data to load, error is a needle in a haystack)
Rank by:
- Sweet-spot duration — 2-15 minutes is ideal. Long enough to show the user's journey before the error, short enough to be practical to watch or summarize.
- Active time ratio — compare
active_secondstorecording_duration. A 20-minute recording with 10 seconds of activity is mostly idle tabs — the user walked away. Prefer sessions whereactive_seconds / recording_durationis above 0.3 (30%). - Activity score — higher
activity_scoremeans the user was actively interacting, not idle. More interesting to watch. - Recency — more recent sessions reflect current app behavior.
Step 4 — Present the finding
Fetch full details for the selected recording:
posthog:session-recording-get
{
"id": "<best_recording_id>"
}
Present to the user:
- The recording with a link to watch it
- Why this one — briefly explain the selection ("longest session with the error, user was browsing 3 pages before hitting it")
- Pre-error context — what pages the user visited and key actions before the exception,
derived from the events query in step 2 (the
urlandfirst_seencolumns) - Error frequency — how many times the error occurred in this session
Optional: AI summary via Replay Vision
If the user wants a narrative summary without watching, use Replay Vision — "check-then-scan", since a scanner can only observe a given session once.
-
Check for an existing summary on the selected recording:
posthog:vision-observations-list { "session_id": "<best_recording_id>" }If an observation has
scanner_snapshot.scanner_typesummarizerandstatussucceeded, readscanner_result.model_output(title,summary,intent,outcome,friction_points,keywords) — done. -
Find a summarizer scanner if none exists:
posthog:vision-scanners-list { "scanner_type": "summarizer" }One → use it. More than one → ask the user which (show name + prompt). None → offer to create one via the
creating-replay-vision-scannersskill. -
Scan the recording with the chosen scanner (async, several minutes):
posthog:vision-scanners-scan-session { "id": "<scanner_id>", "session_id": "<best_recording_id>" } -
Retrieve by polling
vision-observations-listuntilsucceeded.
Tips
- If all candidate sessions are very short (<10 seconds), the error likely crashes the page immediately. Note this — it's useful context even without a long replay.
- When the issue has very few linked sessions (<3), skip the ranking and just present what's available with a note about the small sample.
- If
$session_idis null on many exception events, session replay may not be enabled for the affected users. Mention this as a possible gap. - Replay Vision has no per-call focus parameter — a summarizer scanner's focus comes from its own prompt. For error-focused summaries, prefer (or create) a summarizer scanner whose prompt targets error/exception context rather than the whole session.
Frequently asked questions about Finding Replay for Issue
Similar skills
Agent Host Debug Logs
Analyze Agent Host debug logs for deeper insights.
Code OSS Dev - Launch + Debug
Launch and debug Code OSS with isolated profiles.
Phoenix CLI
Debug LLM applications with structured analysis tools.
Power Automate Debugging
Diagnose and fix Power Automate flow errors effectively.
Arize Trace
Inspect and export traces for LLM applications.
Runtime Behavior Probe
Investigate real runtime behavior with precision.
