adding-warehouse-perso…
Sync columns from a synced data warehouse table onto PostHog person or group properties, so warehouse data becomes usable anywhere person and group properties…
Author error tracking alerts that fire when an issue is created, reopened, or starts spiking. Use when the user asks to set up error notifications, route exceptions to Slack/webhook/Linear, or evaluate which error events are worth alerting on. Covers trigger-event selection,
$ npx -y skills add PostHog/ai-plugin --skill authoring-error-tracking-alerts --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/authoring-error-tracking-alertsContext preview
The summary Claude sees to decide when to auto-load this skill.
Author error tracking alerts that fire when an issue is created, reopened, or starts spiking. Use when the user asks to set up error notifications, route exceptions to Slack/webhook/Linear, or evaluate which error events are worth alerting on. Covers trigger-event selection,
name: authoring-error-tracking-alerts description: > Author error tracking alerts that fire when an issue is created, reopened, or starts spiking. Use when the user asks to set up error notifications, route exceptions to Slack/webhook/Linear, or evaluate which error events are worth alerting on. Covers trigger-event selection, integration choice, dedup against existing alerts, and shipping with the canonical message body shape.
Authoring an error tracking alert is a _routing_ problem, not a measurement problem. The trigger events already exist and fire on real conditions in the ingestion pipeline — your job is to pick the right trigger for the user's intent, dedupe against what's already configured, and wire a destination they can actually act on.
per-issue property filter.
config endpoint and is not exposed via MCP today.
`posthog:query-error-tracking-issue` and `posthog:query-error-tracking-issue-events` instead of authoring more alerts mid-fire.
alert and is not in scope here — error tracking alerts ride the lifecycle events instead.
| Tool | Job | Where it fits | | ---------------------------------------------- | ---------------------------------------------------------------- | ---------------------------- | | `posthog:error-tracking-alerts-list` | List existing alerts; dedupe before creating. | Step 2 — dedupe. | | `posthog:integrations-list` | Find the user's Slack workspace id (filter by `kind=slack`). | Step 3 — pick channel. | | `posthog:integrations-channels-retrieve` | List Slack channels for a workspace. | Step 3 — pick channel. | | `posthog:error-tracking-alerts-create` | Create the alert (HogFunction with `type=internal_destination`). | Step 4 — ship. | | `posthog:error-tracking-alerts-partial-update` | Toggle, rename, or modify an existing alert. | When tuning, not authoring. | | `posthog:error-tracking-alerts-delete` | Soft-delete an alert. | When the user says "remove". |
There are three lifecycle events. Each has a different "noise vs urgency" trade-off — picking the wrong one is the most common cause of alert fatigue here.
| Event | Fires when | Use when | | -------------------------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | `$error_tracking_issue_created` | A brand-new issue first appears. | Small projects, or projects where every new error type is genuinely worth a look. Floods large/noisy projects. | | `$error_tracking_issue_reopened` | A previously resolved issue starts emitting again. | Catch regressions on issues someone already triaged. The safest "I want to know if this comes back" trigger. | | `$error_tracking_issue_spiking` | The spike detector flags abnormal volume on an issue. | Production projects with high baseline volume. Threshold/multiplier is shared across the project — check spike config before using. |
If the user is vague ("alert me on errors"), default to `_spiking`. It's the most signal-dense trigger and the least likely to cause alert fatigue. Confirm explicitly before proceeding.
You need three things from the user before creating anything:
pick one.
channel. If the user says "the dev channel", ask for the exact channel id or name.
Call `posthog:error-tracking-alerts-list`. Filter the response client-side by `filters.events[].id`.
already exists and ask whether they want to change anything (in which case use `error-tracking-alerts-partial-update`) or skip.
almost never wants this.
oncall webhook) is fine and sometimes intentional. Confirm.
PostHog's "alerts configured" recommendation only inspects `filters.events` — adding per-issue `filters.properties` does not affect the status the recommendations card reports.
For Slack:
1. `posthog:integrations-list` with `kind=slack` → pick the integration `id` (an integer). 2. `posthog:integrations-channels-retrieve` with
Official PostHog plugin for AI clients. Access PostHog products directly from your AI coding tool.
Repo: PostHog/ai-plugin
Sync columns from a synced data warehouse table onto PostHog person or group properties, so warehouse data becomes usable anywhere person and group properties…
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…
Analyze session replay patterns across experiment variants to understand user behavior differences. Use when the user wants to see how users interact with…
Split a completed PostHog task run into activity records — what the agent tried, whether it worked, what blocked it — and record each one through the…
Assesses what a page's heatmap is telling you and recommends concrete changes. Pulls click / rageclick / scroll-depth data for a URL, names the hot elements by…
Audit every endpoint in a PostHog project for staleness, failed materialisations, and unused materialised versions. Use when the user asks "what endpoints can…