posthog/verify-posthog-instrumentation
> Use this skill to verify that PostHog instrumentation is firing correctly on a website. Drives a real browser at one or more URLs, observes which PostHog events actually arrive, and reports a pass/fail summary. Use after installing the PostHog SDK on a site, after a deploy that touches tracking code, or when events appear missing in the PostHog dashboard.
npx skills add https://github.com/PostHog/posthog --skill verify-posthog-instrumentation
End-to-end check that the PostHog SDK is loaded and emitting events as expected.
This skill orchestrates the three traffic-sim tools to give a complete picture
of a site's instrumentation health.
npx @posthog/wizard to confirm the install actually works.between snippet issues, network issues, or filtering issues.
Run the check_posthog_loading MCP tool against the URLs you care about
(homepage, key product pages, login, checkout, marketing pages). It returns
which pages have PostHog initialized, the load method (head_snippet / snippet
/ array_js_only), and the init config.
Look for:
loaded: false — PostHog is missing from those pages.api_key values across pages — multiple projects in use.api_host values across pages — events going to different ingestion endpoints.Pick one URL where Step 1 confirmed PostHog is loaded. Call:
simulate_new_user — a few fresh-browser visits. Confirms $pageviewfires for first-time visitors and that an anonymous distinct_id is assigned.
simulate_returning_user — a few page views in a single session. Confirmscookies persist and $pageview keeps firing across navigations.
The tools return verified: true when at least one $pageview was captured
and there were no errors.
If Steps 1 and 2 pass but events don't show up in the PostHog UI, the issue
is downstream of the snippet:
api_host matches the project's ingestion host.A site is verified when:
check_posthog_loading reports loaded: true on every URL we expect.simulate_new_user and simulate_returning_user both return at least one$pageview event per visit, with no errors.
signup_completed) are being sent —the tool watches for any PostHog event, but you'd need to drive the actual
user flow to see custom events fire. Use it as a starting point, then add
user-flow simulation on top.
in the init config but doesn't validate the recording itself.
Take posthog/verify-posthog-instrumentation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.