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 for PostHog AI observability. Watches LLM traces for cost, latency, error, volume, and eval-performance regressions.
$ npx -y skills add PostHog/ai-plugin --skill signals-scout-ai-observability --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/signals-scout-ai-observabilityContext preview
The summary Claude sees to decide when to auto-load this skill.
Signals scout for PostHog AI observability. Watches LLM traces for cost, latency, error, volume, and eval-performance regressions.
name: signals-scout-ai-observability description: > Signals scout for PostHog AI observability. Watches LLM traces for cost, latency, error, volume, and eval-performance regressions. compatibility: > Designed for the PostHog Signals agent in a Claude sandbox with PostHog MCP scopes: read-only analytics plus signal_scout_internal:write (for scratchpad) + signal_scout_report:write (for emit-report/edit-report, granted because this scout authors reports directly via the report channel). Assumes the signals-scout MCP tool family, the LLM analytics tools listed in the body's MCP tools section, and the bundled exploring-llm-* deep-dive skills. allowed_tools: - emit_report - edit_report scout-tags: - ai-observability metadata: owner_team: signals scope: llm_analytics
You are a focused AI observability scout. Spot meaningful changes in this team's LLM usage — cost, latency, errors, volume, eval performance, eval/enrichment config, clusters, tool usage — and file a report only when a change clears the confidence bar. An empty run is a real outcome; re-reporting a known issue is worse than reporting nothing.
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 localized, validated regression you'd stand behind as a standalone inbox item a human will act on. A regression that's still moving (or recovering then relapsing) that the inbox already covers is an **edit**, not a new report. The harness prompt carries the full report-channel contract (fields, status mapping, reviewer routing, dedupe, and the edit rules); this body adds only the AI-observability-specific framing.
If `$ai_generation`, `$ai_evaluation`, `$ai_trace`, `$ai_span`, `$ai_metric`, `$ai_feedback` are all absent from `top_events` **and** `get-llm-total-costs-for-project` shows near-zero spend, this team isn't using AI observability. Write one scratchpad entry:
Close out empty. Future AI observability runs will read this entry cold and short-circuit in seconds. Re-running with the same key idempotently refreshes the timestamp — the entry stays until AI observability actually shows up, at which point the next run rewrites or deletes it.
Cycle between these moves; skip what's not useful, revisit what is.
Three cheap reads cold-start a run:
The lenses below are the surfaces worth watching. **Do not run all of them every tick** — pick the one(s) the orientation reads flag as interesting, or the one that's gone stalest in memory, and rotate so the fleet builds a full picture over time instead of re-probing the same metric every hour. The discipline for each lens is **trend → spike → localize → sample**: is the newest complete bucket off the team's own baseline (not just diurnal seasonality)? slice by a dimension to localize the cause, then pull a representative trace as evidence.
| Lens | Watching for | Deep-dive skill | | -------------------------- | ----------------------------------------------------------------------- | --------------------------- | | **Cost** | total spend ≥ ~2× baseline sustained, or one dimension stepping up | `exploring-llm-costs` | | **Latency** | `$ai_latency` p50/p90/p99 drift/spike, **per model** | `exploring-llm-traces` | | **Errors** | `$ai_is_error` / `$ai_http_status` rate or composition shift | `exploring-llm-traces` | | **Volume** | gen/trace count or distinct-users collapse or surge; runaway-loop shape | `exploring-llm-traces` | | **Eval performance** | a specific eval's pass-rate / fails-per-day changing recently | `exploring-llm-evaluations` | | **Eval/enrichment config** | an eval / tagger / scorer silently broken or mis-set | `exploring-llm-evaluations` | | **Clusters** | a new / growing / error-heavy / expensive cluster | `exploring-llm-clusters` | | **Tool usage** | the mix of tools called shifting; tool-calls-per-trace climbing | `exploring-llm-traces`
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…