checking-member-access
Explains what a member or a role can do in a PostHog project, using the access control MCP tools. Use when the user asks what someone can see or edit, who can…
Create PostHog error tracking suppression rules to drop high-volume, low-value errors at ingestion. Use when the user asks "stop capturing this error", "drop browser extension errors", "ignore ResizeObserver loops", "suppress bot-driven errors", or wants to reduce ingestion cost
$ npx -y skills add posthog/posthog --skill suppressing-noisy-errors --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/suppressing-noisy-errorsContext preview
The summary Claude sees to decide when to auto-load this skill.
Create PostHog error tracking suppression rules to drop high-volume, low-value errors at ingestion. Use when the user asks "stop capturing this error", "drop browser extension errors", "ignore ResizeObserver loops", "suppress bot-driven errors", or wants to reduce ingestion cost
name: suppressing-noisy-errors description: > Create PostHog error tracking suppression rules to drop high-volume, low-value errors at ingestion. Use when the user asks "stop capturing this error", "drop browser extension errors", "ignore ResizeObserver loops", "suppress bot-driven errors", or wants to reduce ingestion cost from noisy unactionable errors. Identifies suppression candidates, scopes the filter tightly, decides between full suppression and sampling, and confirms the rule before creating it. Suppressed errors are dropped permanently — this skill defaults to caution.
Suppression is destructive in spirit: matching events are dropped at ingestion and never become issues. The wrong rule silently throws away real bugs. This skill exists to make sure suppression is applied only to patterns that are genuinely unactionable, with filters narrow enough to avoid swallowing unrelated errors.
Suppression is the right tool when an error is:
blockers, network beacons firing after navigation. You can't fix it because you didn't write it.
`Script error.`, `Non-Error promise rejection captured` with empty payloads.
crawler user agents.
`sampling_rate` instead of full suppression so you keep visibility without paying full cost.
Suppression is **not** the right tool when:
use issue status `archived` or `resolved` instead so it surfaces if it returns.
status, or use notification rules.
(`grouping-noisy-errors`).
| Tool | Purpose | | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | `posthog:query-error-tracking-issues-list` | Find suppression candidates by volume and impact; dry-run a candidate filter via `filterGroup` | | `posthog:query-error-tracking-issue-events` | Inspect sampled `$exception` events to confirm the pattern | | `posthog:execute-sql` | Fallback dry-run for filters that need OR groups or operators outside the `filterGroup` allowed list | | `posthog:error-tracking-suppression-rules-list` | Check existing suppression rules | | `posthog:error-tracking-suppression-rules-create` | Create the suppression rule | | `posthog:error-tracking-issues-partial-update` | Hide past data via issue status without dropping events at ingestion |
High occurrences with low distinct users is the strongest noise signal — one user (or one bot) producing many events.
posthog:query-error-tracking-issues-list
{
"status": "active",
"orderBy": "occurrences",
"orderDirection": "DESC",
"dateRange": { "date_from": "-7d" },
"limit": 30,
"volumeResolution": 0
}Look for:
bot or extension loop)
`Script error.`, extension namespaces (`chrome-extension://`, `moz-extension://`, `safari-extension://`)
For each candidate, pull a sample of `$exception` events and check that the pattern matches what you intend to suppress:
posthog:query-error-tracking-issue-events
{
"issueId": "<candidate_issue_id>",
"limit": 10,
"include": ["exception", "stacktrace", "environment", "navigation"]
}`onlyAppFrames` defaults to `true`, but for noise investigation you usually want the third-party frames visible — pass `onlyAppFrames: false` so extension URLs and vendor domains show up in the stack.
Confirm:
the noise
the type
If any sample doesn't match, narrow the filter or skip the candidate.
Suppression rules are configured with the same filter shape as grouping rules. The `error-tracking-suppression-rules-create` tool description warns explicitly: do **not** create match-all rules and do **not** create overly broad rules. Match on the most specific property combination you can:
| Noise pattern | Recommended filter | | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | | Chrome extension errors | `$exception_sources icontains "chrome-extension://"` | | Firefox extension errors | `$exception_sources icontains "moz-extension://"`
:hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session replay, flags, experiments, error tracking, logs, and more – capture all the context agents need to diagnose problems, uncover opportunities, and ship fixes. Steer it all from Slack, web, desktop, or the MCP.
Repo: posthog/posthog
Explains what a member or a role can do in a PostHog project, using the access control MCP tools. Use when the user asks what someone can see or edit, who can…
Analyze the most expensive users in AI observability and explain why they cost so much. Use when the user asks about top spenders, expensive users, per-user…
Author continuously-running online evaluations in PostHog AI observability, grounded in real failure modes you've identified. Use when the user wants…
Find where an AI/LLM application is failing in production and surface the failure patterns, working from real traces. Use when someone wants to understand…
Investigate AI observability clusters — understand usage patterns in AI/LLM traffic, compare cluster behavior, compute cost/latency metrics, and drill into…
Investigate LLM spend in PostHog — total cost over time, cost by model, provider, user, trace, or custom dimension, token and cache-hit economics, and cost…