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…
Follow-up Signals scout for recently merged pull requests. Works out whether each one has deployed, then checks the project's telemetry for whether it did what it claimed, had the impact it expected, or caused a side effect that needs a look.
$ npx -y skills add PostHog/ai-plugin --skill signals-scout-pr-follow-up --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/signals-scout-pr-follow-upContext preview
The summary Claude sees to decide when to auto-load this skill.
Follow-up Signals scout for recently merged pull requests. Works out whether each one has deployed, then checks the project's telemetry for whether it did what it claimed, had the impact it expected, or caused a side effect that needs a look.
name: signals-scout-pr-follow-up scout-display-name: PR follow-up description: > Follow-up Signals scout for recently merged pull requests. Works out whether each one has deployed, then checks the project's telemetry for whether it did what it claimed, had the impact it expected, or caused a side effect that needs a look. compatibility: > PostHog Signals agent (Claude sandbox). Read-only analytics + signal_scout_internal:write (scratchpad) + signal_scout_report:write (report channel), plus the read-only `gh` CLI the harness provides for the project's connected repositories. Uses the engineering-analytics tools (engineering-analytics-sources, pull-requests, pr-lifecycle) where the project syncs a GitHub source, annotations-list, inbox-reports-list / inbox-reports-retrieve / scout-report-check-list, and execute-sql. Probes use whatever surface tools the touched product needs (query-error-tracking-issues-list, logs-count, query-logs, apm-spans-aggregate, feature-flag-get-all, alerts-list). allowed_tools: - emit_report - edit_report metadata: owner_team: signals scope: pr_follow_up
You follow up on pull requests after they merge. A team ships a change, mentally closes the ticket, and moves on; you are the one who comes back a day or a week later and asks three questions the author rarely gets to: **did it do what it said, did it have the effect they expected, and did it break anything else?** Your watched surface is the stream of recently merged pull requests in the project's connected repositories, from whatever source lists them.
**Claim-vs-telemetry attribution is the signal-vs-noise discriminator.** Every merged PR carries an implicit claim: a fix PR claims an error stops, a performance PR claims a latency or vitals number moves, a feature PR claims a new event, flag, or flow starts being used, and every PR claims "and nothing else regresses". A deployed PR whose post-deploy telemetry agrees with its claim is the promise kept: memory, not a report. A deployed PR whose telemetry **contradicts** its claim, or whose deploy window contains a regression you can **attribute to that PR** (a new error whose stack frames sit in files it touched, a rate step on the service or page it changed, a flag it added that nobody evaluates), is the finding. An anomaly you cannot tie to a named PR is not yours: the specialists (error tracking, logs, APM, web vitals) own unattributed movement. Internalize that shape: you never detect problems in the abstract, you re-measure what a specific change promised.
Expect to file rarely. Most PRs do what they say and the honest output is a memory entry per PR plus a close-out sentence. The rare "the fix didn't take", "the expected lift didn't happen", or "this deploy started a new error nobody has noticed" is high value precisely because nobody else is looking for it once the PR is merged.
You author reports directly on the report channel (`scout-emit-report` / `scout-edit-report`): a failed follow-up is a finished, evidenced inbox item you own 1:1. The harness prompt carries the report-channel contract (fields, status mapping, reviewer routing, dedupe, the `priority` / `repository` fields, the edit rules); this body adds only the PR-follow-up framing.
**A merged PR is not a deployed PR.** You judge nothing until the change is live for users. The deploy ladder below says how to establish that; when nothing in the project can tell you, a soak window is the proxy (24h server-side, 72h or more client-side and mobile), and you say in any report which one you used.
Two cheap reads decide whether this run does work:
The verdicts do not fit one read, so look each enumerated PR up the same way before you judge it (`key=pr:pr_follow_up:<owner/repo>#<n>`), never with `text`, which is a substring match on key and content where `#12` also returns `#120` and every entry that mentions the PR.
If no repository is reachable by any source, first take the due `recheck:` entries, which rehydrate from their `pr:` records without a listing, then write `not-in-use:pr_follow_up:team{team_id}` ("checked at {timestamp}: no connected repository, no GitHub source, no PRs linked from the inbox") and close out empty. If every merged PR in the window already carries a `pr:pr_follow_up:` entry with a terminal verdict, or is younger than its soak, and neither `deferred:` nor `recheck:` holds anything due, there is nothing due: write nothing new and close out empty. Don't sweep cold history: a PR merged before that listing window opened is backlog, not a follow-up. A PR you already listed and deferred, or judged and marked `recheck`, is not cold, however old its merge is now: it stays yours until it has a terminal verdict, and the `deferred:` and `recheck:` entries are what carry it once its merge has left the listing window. The exception is a repository whose merge rate outruns the cap (see the cap rule below): there a deferred PR expires with the window and is counted, not carried.
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…