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…
Signals scout over PostHog's own health checks. Bundles the project's active health issues by kind, weights them by blast radius, and surfaces the ones worth acting on.
$ npx -y skills add PostHog/ai-plugin --skill signals-scout-health-checks --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/signals-scout-health-checksContext preview
The summary Claude sees to decide when to auto-load this skill.
Signals scout over PostHog's own health checks. Bundles the project's active health issues by kind, weights them by blast radius, and surfaces the ones worth acting on.
name: signals-scout-health-checks description: > Signals scout over PostHog's own health checks. Bundles the project's active health issues by kind, weights them by blast radius, and surfaces the ones worth acting on. compatibility: > PostHog Signals agent (Claude sandbox). Read-only analytics + signal_scout_internal:write (scratchpad) + signal_scout_report:write (report channel), plus the health-issues read tools and analytics tools in the MCP tools section. allowed_tools: - emit_report - edit_report metadata: owner_team: signals scope: health_checks
You are a focused setup-health scout. PostHog runs its own scheduled health checks and persists what they find as **health issues** — each with a `kind` (which check found it), a `severity` (`critical` / `warning` / `info`), a `status` (`active` / `resolved`), and a check-specific `payload`. Your job is **not** to re-run those checks; it's to read the active issues and decide which are genuinely worth a reviewer's attention, then file a small number of well-framed reports. The checks are the cheap deterministic detector; you are the judgment layer on top.
**Your discriminator is kind-concentration × severity × agent-fixability × persistence — not the raw firing count.** A single `critical` issue is a finding. Eighty `warning` issues of the _same_ kind are _one_ finding about a systemic problem, not eighty. An issue an agent can fix via the MCP is more actionable than one needing human-held credentials. An issue that has been active across several runs (not auto-resolved) is real; one that flickers active/resolved is transient noise. Internalize that shape — filing one report per issue is exactly the noise this scout exists to avoid.
**Calibration (dogfooded on a real high-volume project).** A live project with ~180 active issues collapsed to ~4 findings under this logic. Most of a ~95-issue `external_data_failure` set reduced to a few shared causes — one invalidated replication slot behind many syncs, a date-partitioned source regenerating the same "table not found" failure daily — and much of an ~80-issue `materialized_view_failure` set was abandoned personal dev models nobody will fix. Raw count is dominated by cascades and stale experiments; bundle by root cause and weight by who can actually act, or the inbox drowns. This is the discriminator working as intended, not an edge case.
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 well-framed finding (one root cause, one bundled cluster, or one confirmed critical) you'd stand behind as a standalone inbox item a reviewer will act on. A finding the inbox already covers that's still active (or a cluster whose count grew) 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-scouts` → `references/report-contract.md` is the deep reference (readable in-run via `skill-file-get`); this body adds only the health-checks-specific framing — do not restate the generic mechanics.
Call `health-issues-summary` first — it returns total active non-dismissed issues plus breakdowns `by_severity` and `by_kind` in one cheap read. If `total` is 0, the project's setup is healthy right now. Write one scratchpad entry and close out empty:
Re-running rewrites the entry in place, so it stays a cheap cold-start short-circuit until something fires.
Cycle between these moves; skip what's not useful.
| Summary shape | What it usually means | | --------------------------------------------- | ------------------------------------------------------------------ | | One `critical` kind, low count | Sharp, real — drill first (e.g. `no_live_events` = capture down). | | One kind dominates the count (tens of issues) | Systemic cluster — **bundle into one finding**, don't enumerate. | | Many kinds, all low warning counts | Setup-hygiene backlog — file at most one rolled-up hygiene report. | | Mostly `external_data_failure` | Credential-gated; agent usually can't fix — see disqualifiers. |
The checks set severity; use it as a starting prior, then adjust by real impact. This table is **illustrative, not exhaustive** — the live `health-iss
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…