github.com/PostHog/posthog
| Skill | Added | Review |
|---|---|---|
query-clickhouse-via-metabase .agents/skills/query-clickhouse-via-metabase/SKILL.md Run ClickHouse `system.query_log` analysis via the internal Metabase API. Use when investigating slow queries, materialization candidates, per-team query performance, ClickHouse cost or memory issues, or any system.query_log question. Covers prod-us and prod-eu, SSO-gated cookie auth via `hogli`, and ready-to-run query patterns. | 71 71 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
qa-team .agents/skills/qa-team/SKILL.md Multi-agent QA review team for code changes. This skill should be used when the user asks to "review my code", "run QA", "qa-team", "review this branch", "code review", "check my changes", or wants a comprehensive multi-perspective code review of the current branch's changes. Spawns parallel specialist agents (security, database, reliability, compatibility, data integrity, performance, frontend, copy) that independently review the diff and produce a converged report. Also includes two generalist reviewers for convergence validation. | 77 77 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
playwright-test .agents/skills/playwright-test/SKILL.md Write a playwright test, make sure it runs, and is not flaky. | 63 63 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
optimizing-clickhouse-and-hogql-queries .agents/skills/optimizing-clickhouse-and-hogql-queries/SKILL.md Workflow for optimizing ClickHouse and HogQL queries. Use when a HogQL query, query runner, insight, or report is too slow; when a hand-written ClickHouse query (via `sync_execute` or in a migration) is too slow; when ClickHouse times out or hits memory limits; when investigating a slow `system.query_log` row; or when reviewing a proposed HogQL printer change for performance. Covers extracting the ClickHouse SQL, common smells (`FROM ... FINAL`, `JSONExtract` over properties, missing skip indexes, self-joins, CTE blow-up), measuring against a real cluster, and applying the fix at the right layer (printer, query runner, or migration). Does NOT cover Postgres / Django ORM / app-database queries; those need pganalyze and the Postgres section of `query-performance-optimization.md`. | 76 76 Impact — No eval scenarios have been run Securityby Critical Do not install without reviewing Version: 6fca5f8 | |
monitoring-ingestion-pipeline .agents/skills/monitoring-ingestion-pipeline/SKILL.md Guide for using the Grafana MCP to monitor and diagnose the Node.js ingestion pipeline workers in production. Use when investigating event lag, drops, pipeline errors, person/group processing, Kafka consumer health, Redis, Postgres, ClickHouse downstream health, or any ingestion worker question. Covers prod-us and prod-eu environments. | 68 68 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
monitoring-capture-service .agents/skills/monitoring-capture-service/SKILL.md Guide for using the Grafana MCP to monitor and diagnose the capture service (rust/capture) in production. Use when investigating latency, event loss, Kafka backpressure, Redis issues, rate limiting, Envoy proxy issues, or any capture health question. Covers prod-us and prod-eu environments. | 70 70 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
modifying-taxonomic-filter .agents/skills/modifying-taxonomic-filter/SKILL.md Guides safe modification of the TaxonomicFilter — PostHog's multi-tab picker for events, actions, properties, cohorts, and more. Front-loads the empirical product reality (what users actually pick and search for) plus the three live variants (legacy-control, legacy-pill behind TAXONOMIC_FILTER_CATEGORY_DROPDOWN, and the opt-in rebuild menu behind TAXONOMIC_FILTER_MENU_REBUILD) so changes are judged against real behavior and mirrored across surfaces, not made against one arm in isolation. Use when adding features, fixing bugs, or refactoring TaxonomicFilter, the rebuild menu, or the headless filter panel. | 64 64 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
managing-github-actions-secrets .agents/skills/managing-github-actions-secrets/SKILL.md Creates and updates GitHub Actions secrets for PostHog workflows. Use when adding a new CI secret, rotating an existing secret, wiring a workflow to an API token, package registry credential, deploy key, or any value referenced via `${{ secrets.* }}` in `.github/workflows/`. | 75 75 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
manage-dashboard-widgets .agents/skills/manage-dashboard-widgets/SKILL.md Guides PostHog engineers through dashboard widget platform work — ship a new widget_type (WIDGET_REGISTRY, catalog, run_widgets, WidgetCard) or update a shipped type (config, query, layout, RBAC, tile filter bar, list footer, titleHref, throttles). Use for WidgetSpec, widget_specs/, widget-configs.zod.ts, hogli build:openapi, error_tracking_list, session_replay_list, widgetFilters, formatWidgetListCountFooter, widget_query_throttle, or WidgetCard composition. New types need widget-intake confirmation first. Not for MCP batch-add of existing types or adding tiles to a dashboard. | 79 79 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
isolating-product-facade-contracts .agents/skills/isolating-product-facade-contracts/SKILL.md Plan and execute product isolation migrations to a facade plus contract layer in PostHog, following the Visual review architecture. Use when a product still exposes internals (models/logic/views) across boundaries and needs migration toward contracts.py + facade/api.py + presentation separation, with a PR strategy that minimizes review latency and conflicts with parallel work. | 72 72 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
instrumenting-first-party-metrics .agents/skills/instrumenting-first-party-metrics/SKILL.md How to instrument PostHog's own Metrics product from PostHog-owned code — record counters, gauges, and histograms that land in posthog.metrics, the same way customers do. Use when adding application metrics in this monorepo (web, Celery, Temporal), when asked to push or ship metrics into posthog metrics, or when unsure whether the SDK in this environment supports posthog.metrics yet. Covers the environment decision (SDK-first per the public docs, OTel fallback when the SDK path is not available), the exact version gates per SDK, what is already wired internally, and how to validate metrics actually arrive. | 72 72 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
ingestion-pipeline-doctor-nodejs .agents/skills/ingestion-pipeline-doctor-nodejs/SKILL.md Ingestion pipeline architecture overview and convention reference. Use when you need a quick orientation to the pipeline framework or want to know which doctor agent to use for a specific concern. | 61 61 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
improving-drf-endpoints .agents/skills/improving-drf-endpoints/SKILL.md Use when editing, reviewing, or auditing DRF viewsets and serializers in PostHog. Triggers on files in posthog/api/, products/*/backend/api/, products/*/backend/presentation/, or any file importing rest_framework. Covers field typing, schema annotations, enum collision fixes, and OpenAPI spec quality — everything that flows downstream into generated TypeScript types and MCP tools. | 70 70 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
implementing-warehouse-sources .agents/skills/implementing-warehouse-sources/SKILL.md Implement and extend PostHog Data warehouse import sources. Use when adding a new source under products/warehouse_sources/backend/temporal/data_imports/sources, adding datasets/endpoints to an existing source, or adding incremental sync, resumable imports, webhook ingestion, pagination, credentials validation, and source tests. | 68 68 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
implementing-mcp-ui-apps .agents/skills/implementing-mcp-ui-apps/SKILL.md Guide for adding MCP UI apps — interactive visualizations that render tool results in MCP clients like Claude Desktop. Use when adding a new detail or list view for an MCP tool, creating view components in products/*/mcp/apps/, or linking tools to UI apps via YAML. | 70 70 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
implementing-mcp-tools .agents/skills/implementing-mcp-tools/SKILL.md Guide for exposing PostHog product endpoints as MCP tools. Use when creating new or updating API endpoints, adding MCP tool definitions, scaffolding YAML configs, or writing serializers with good descriptions. Covers the full pipeline from Django serializer to generated TypeScript tool handler. | 71 71 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
implementing-agent-modes .agents/skills/implementing-agent-modes/SKILL.md Guidelines to create/update a new mode for PostHog AI agent. Modes are a way to limit what tools, prompts, and prompt injections are applied and under what conditions. Achieve better results using your plan mode. | 54 54 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
hogli .agents/skills/hogli/SKILL.md PostHog developer CLI and repo tooling reference. Use when the user mentions hogli, asks about repo CLI tools, bin scripts, Makefiles, how to run/build/test/lint, or any dev environment commands. | 64 64 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
generating-clickhouse-query-performance-reports .agents/skills/generating-clickhouse-query-performance-reports/SKILL.md Produce and structure slow-query performance reports for PostHog's production ClickHouse (US and EU). Use when asked for a slow query report, query performance analysis over the last N days, per-team query cost, OOM or timeout investigation, cluster cost/memory regressions, or materialization candidates. Covers the modern `query_log_archive` source (typed `lc_*` columns, multi-day retention), how to categorize and attribute slow queries, root-cause patterns (unmaterialized JSONExtract, high-cardinality breakdowns, heavy joins), and the report structure. Runs queries via the `query-clickhouse-via-metabase` skill. | 74 74 Impact — No eval scenarios have been run Securityby Low Low-risk findings worth noting Version: 6fca5f8 | |
gating-production-deploys .agents/skills/gating-production-deploys/SKILL.md Use when adding or editing a GitHub Actions workflow that pushes a container image to a registry (ECR/ghcr/Docker Hub via build-push-action) or dispatches a production deploy (a `commit_state_update` repository_dispatch to PostHog/charts). Those run from a single canonical deploy repo, gated by the CD_DEPLOY_ENABLED variable. Does NOT apply to workflows that publish GitHub releases, npm, crates, or Homebrew — those stay on the public repo. | 74 74 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
fixing-flaky-tests .agents/skills/fixing-flaky-tests/SKILL.md Guides an agent through reproducing, root-causing, fixing, and validating flaky tests in the PostHog monorepo. Use when a test fails intermittently in CI but passes on rerun or locally, when `hogli ci:insights` or the debugging-ci-failures skill classifies a failure as a flaky test, when given a GitHub Actions URL for a flaky job, or when asked to deflake, stabilize, or fix a flaky Jest, pytest, or Playwright test. Core discipline: reproduce locally before changing anything, fix the root cause (never mask it with sleeps, retries, or bigger timeouts), and prove the fix with an N-run validation loop sized to the observed failure rate. Stabilizing is not the only valid outcome — the skill also gates whether the test should exist, so deleting a test that catches nothing real, or re-leveling one that flakes because of the level it runs at, are first-class endings. | 72 72 Impact — No eval scenarios have been run Securityby Low Low-risk findings worth noting Version: 6fca5f8 | |
extending-personhog-test-harness .agents/skills/extending-personhog-test-harness/SKILL.md When and how to add scenarios, chaos events, and invariants to the personhog e2e test harness (rust/personhog-test-harness). Use after fixing a bug or regression in the personhog leader path (leader, router, writer, replica, coordination protocol) so the fix gets a permanent regression scenario; when adding a new failure mode to test (crashes, drains, zombies, lag, failover); or when a new correctness property needs asserting during runs. Trigger terms: personhog gate, chaos scenario, test harness, leader path regression, handoff bug, eviction, writer lag, acked write. | 76 76 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
establishing-code-ownership .agents/skills/establishing-code-ownership/SKILL.md Determine which PostHog team owns a file, directory, or code path, or enumerate all code a team owns (via distributed `owners.yaml`, `products/*/product.yaml`, and `.github/CODEOWNERS`). Use when assigning a reviewer, attributing a bug or slow query to a team, routing work, scoping a team-wide audit, or answering "who owns X" / "what does team Y own". | 76 76 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
documenting-warehouse-sources .agents/skills/documenting-warehouse-sources/SKILL.md Write or update the user-facing posthog.com documentation for a PostHog Data warehouse import source. Use when adding a new source doc, fixing an inconsistent or stub source doc, or standardizing the docs at contents/docs/cdp/sources. Covers the canonical template, shared snippets, the auto-rendered <SourceParameters /> and <SourceTables /> components, frontmatter, and the docsUrl/slug rule that prevents 404s. | 70 70 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 | |
django-startup-time .agents/skills/django-startup-time/SKILL.md Keep heavy imports off the django.setup() path that every process (web, celery, temporal, migrate, shell, CI) pays for. Use when touching AppConfig.ready(), wiring signal receivers, editing the lazy API router (posthog/api/rest_router.py or its __init__.py shim), deferring a heavy import, when the startup-import-budget guard fails, or when merging master into a long-lived branch that made the router lazy. | 76 76 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Version: 6fca5f8 |