github.com/PostHog/posthog
Skill | Added | Review |
|---|---|---|
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. | 72 72 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
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. | 73 73 Impact — No eval scenarios have been run Securityby Low Low-risk findings worth noting Reviewed: Version: d1dd198 | |
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. | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
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. | 77 77 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
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. | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
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". | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
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. | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
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. | 70 70 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
django-migrations .agents/skills/django-migrations/SKILL.md Django migration patterns and safety workflow for PostHog. Use when creating, adjusting, or reviewing Django/Postgres migrations, including non-blocking index/constraint changes, multi-phase schema changes, data backfills, migration conflict rebasing, and product model moves that require SeparateDatabaseAndState. Also use for any deletion or removal of a model, table, column, product, or app — including deleting migration files or retiring a feature — even when no migration is written. | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
depot-github-runners .agents/skills/depot-github-runners/SKILL.md Configures Depot-managed GitHub Actions runners as a drop-in replacement for GitHub-hosted runners. Use when setting up or migrating GitHub Actions workflows to use Depot runners, choosing runner sizes (CPU/RAM), configuring runs-on labels, setting up ARM or Windows or macOS runners, troubleshooting GitHub Actions runner issues, configuring egress filtering, using Depot Cache with GitHub Actions, or running Dagger/Dependabot on Depot runners. Also use when the user mentions depot-ubuntu, depot-windows, depot-macos runner labels, or asks about faster/cheaper GitHub Actions runners. | 76 76 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
depot-container-builds .agents/skills/depot-container-builds/SKILL.md Configures and runs Depot remote container builds using `depot build` and `depot bake`. Use when building Docker images, creating Dockerfiles with Depot, pushing images to registries, building multi-platform/multi-arch images (linux/amd64, linux/arm64), debugging container build failures, optimizing Dockerfile layer caching, using docker-bake.hcl or docker-compose builds, or migrating from `docker build` / `docker buildx build` to Depot. Also use when the user mentions depot build, depot bake, container builds, image builds, or asks about Depot's build cache, build parallelism, or ephemeral registry. | 76 76 Impact — No eval scenarios have been run Securityby High Do not use without reviewing Reviewed: Version: d1dd198 | |
debugging-local-task-agent-runs .agents/skills/debugging-local-task-agent-runs/SKILL.md Debug the output of local PostHog task runs — the wizard cloud-run path that executes inside a Docker sandbox under the local Temporal `process-task` workflow (the wizard that integrates PostHog, then the coding agent that commits and opens the PR). Use when a local run looks stuck, failed, or silent, or when you need to read the wizard or agent logs. Covers the `.env.local` keys + `ai_features` intent required for cloud runs locally, finding the task UUID (docker ps, temporal CLI, Temporal UI at localhost:8081), tailing live logs inside the sandbox container (`/tmp/posthog-wizard.log`, `/tmp/agent-server.log`), and reading the durable per-run console log from object storage after the sandbox is torn down. Trigger terms: task-sandbox, run_wizard, agent-server, process-task, SANDBOX_PROVIDER, LLM_GATEWAY, cloud_run, posthog-wizard.log. | 75 75 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
debugging-ci-failures .agents/skills/debugging-ci-failures/SKILL.md Debugs failing GitHub Actions CI runs for PostHog PRs, commits, and branches, and answers broad CI-health questions ("is CI red?", "is master green today?", "what's broken right now?"). Use when the user asks why CI is red, asks for the current CI or master status, or mentions a failing check, GitHub Actions run, Depot runner, workflow, job, shard, flaky test, lint failure, typecheck failure, snapshot diff, migration check, generated types drift, or skills build failure. Start with the `hogli ci:insights` digest (aggregated cross-run CI intelligence), then guides read-only inspection, failure classification, smallest local reproduction with hogli, and safe reporting without rerunning CI or posting to GitHub. | 77 77 Impact — No eval scenarios have been run Securityby Low Low-risk findings worth noting Reviewed: Version: d1dd198 | |
clickhouse-migrations .agents/skills/clickhouse-migrations/SKILL.md ClickHouse migration patterns and rules. Use when creating or modifying ClickHouse migrations. | 68 68 Impact — No eval scenarios have been run Securityby High Do not use without reviewing Reviewed: Version: d1dd198 | |
building-product-empty-states .agents/skills/building-product-empty-states/SKILL.md Guide for adding a product setup empty state — the skippable first-run screen a product scene shows until real data arrives, built on the shared ProductEmptyState component. Use when adding an empty state or first-run/setup screen to a product scene, declaring `emptyState` on a `SceneExport`, writing a product setup-status detection logic, building an animated example-data preview widget, or migrating away from the deprecated `ProductIntroduction` component. Covers the `productSetupStatusLogic` single-layer contract, real-data detection rules, local-only skip semantics, wizard commands, and design tokens. | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
authoring-ci-workflows .agents/skills/authoring-ci-workflows/SKILL.md Use when adding or editing a GitHub Actions workflow, composite action, or reusable workflow under `.github/` — new CI jobs, triggers, matrices, checkout/clone tuning, action pinning, GitHub App token auth, concurrency groups, `timeout-minutes`, `paths` filters, caching, or runner choice. Covers PostHog's workflow-authoring conventions and the reasons behind them: the 500-runs/10s dispatch cap, shallow vs full clone, per-SHA push concurrency, dedicated App-token rate-limit buckets, and fork-safe secrets on a public repo. Points to the linters (`bin/hogli lint:workflows`, actionlint) that enforce the mechanical rules, and to the narrower skills for production deploys, secrets, and Depot runners. Not for debugging red CI (use debugging-ci-failures) or wiring a new secret end to end (use managing-github-actions-secrets). | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: d1dd198 | |
analyzing-insights-across-teams .agents/skills/analyzing-insights-across-teams/SKILL.md Analyze PostHog insights, dashboards, or teams beyond the current project by querying the prod Postgres replicas synced into the dogfood data warehouse (US project 2, "PostHog App + Website"). Use when asked to analyze insights across all teams or projects, another team's insights, or fleet-wide insight/dashboard usage — cases where `system.insights` only returns the current project's rows and the agent would otherwise report the data as inaccessible. Covers the synced table names for US and EU and the column-verification workflow. | 80 80 Impact — No eval scenarios have been run Securityby Low Low-risk findings worth noting Reviewed: Version: d1dd198 | |
analyzing-experiment-query-performance .agents/skills/analyzing-experiment-query-performance/SKILL.md Pull and interpret production experiment query-performance data from the staff-only `/api/debug_ch_queries` endpoints backing the `/instance/query_performance` scene: slowest experiment queries, precompute read/build health, and preaggregation cache footprint. Covers prod-US and prod-EU via a `query_performance:read` personal API key, all query params, and response field semantics (exception codes, exposure paths, precompute skip reasons, job states). Use when investigating slow or failing experiment queries, precompute regressions, 307/159/241 errors, preaggregation table growth, or when asked how experiment query performance or the precompute rollout is doing in production. | 80 80 Impact — No eval scenarios have been run Securityby Low Low-risk findings worth noting Reviewed: Version: d1dd198 | |
adopting-generated-api-types .agents/skills/adopting-generated-api-types/SKILL.md Use when migrating frontend code from manual API client calls (`api.get`, `api.create`, `api.surveys.get`, `api.dashboards.list`, `new ApiRequest()`) and handwritten TypeScript interfaces to generated API functions and types. Triggers on files importing from `lib/api`, files with `api.get<`, `api.create<`, `api.<entity>.<method>`, manual interface definitions that duplicate backend serializers, or any frontend file that constructs API URLs by hand. Covers the full replacement workflow — finding the generated equivalent, swapping imports, adapting call sites, and removing dead manual types. | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: 22b655e | |
adding-project-secret-api-key-auth .agents/skills/adding-project-secret-api-key-auth/SKILL.md How to gate a PostHog API endpoint with project secret API key (PSAK) auth — a project-scoped, user-less service credential. Use when adding PSAK support to a viewset action, allowing a new scope for PSAKs, handling synthetic users (ProjectSecretAPIKeyUser), or choosing PSAK-aware rate throttles. Trigger terms: PSAK, ProjectSecretAPIKey, project secret API key, phs_ token, service auth, programmatic endpoint auth. | 80 80 Impact — No eval scenarios have been run Securityby High Do not use without reviewing Reviewed: Version: 22b655e | |
adding-product-alerting .agents/skills/adding-product-alerting/SKILL.md Recommended repo-engineering guide when adding alerting to a PostHog product or extending the shared alerts platform. Routes lifecycle state machines, AlertPolicy, destinations, HogFunction dispatch, email, fixed-cadence and calendar scheduling, insight evaluation, the AlertWizard, and shared alert editor components. Use for product alert implementations, shared destination types, lifecycle or scheduling options, advanced alert settings, and platform alert infrastructure. Not for configuring alerts in an existing product. | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: 22b655e | |
adding-personhog-rpc .agents/skills/adding-personhog-rpc/SKILL.md Guide for adding a new RPC to personhog-replica and personhog-router. Covers eligibility checks, proto definition, code generation for Python and Node.js clients, Rust implementation (storage trait, postgres queries, service handler, router wiring), and index compatibility validation. Use when adding a new gRPC endpoint to personhog, migrating a Django ORM query to personhog, or extending the personhog service API. | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: 22b655e | |
adding-mcp-store-servers .agents/skills/adding-mcp-store-servers/SKILL.md Add a third-party MCP server (Linear, Notion, GitHub, ...) to the PostHog MCP store catalog. Use when asked to "add X to the MCP store", expand the MCP server marketplace, or fix a broken catalog entry. Covers finding the vendor's remote MCP endpoint, probing it (handshake, OAuth discovery, DCR), authoring the catalog entry in products/mcp_store/backend/catalog.py, verification tiers, and the operator handoff for servers without Dynamic Client Registration. | 80 80 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: 22b655e | |
adding-ingestion-warnings .agents/skills/adding-ingestion-warnings/SKILL.md How to add a new ingestion warning type to the event ingestion pipeline. Use when emitting a new warning from nodejs ingestion code (emitIngestionWarning, captureIngestionWarning, pipeline `warnings` arrays, `drop()` with warnings), when adding a warning type, category, or severity, or when a typecheck error says a string is not assignable to IngestionWarningType. Covers the INGESTION_WARNING_TYPES registry (the single source of truth for type, category, and severity), the details-key conventions that ClickHouse v2 materializes into columns, debouncing, and the downstream surfaces to keep in sync (v1 UI map, resolving-ingestion-warnings skill, docs, v2 API). | 76 76 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: 22b655e | |
adding-inbox-sources .agents/skills/adding-inbox-sources/SKILL.md Add a new warehouse-backed source to the PostHog Desktop Self-driving Inbox (the feature that ships GitHub, Linear, Zendesk, pganalyze, Jira). A source syncs one warehouse table (issues/tickets/conversations) and a cloud "signals scout" watches it and emits findings. Use when asked to "add a new inbox/self-driving source", "wire up <Jira/GitLab/Sentry/Intercom/Freshdesk/Front/Gorgias/etc> as a signal source", or to extend the source-toggle grid. Covers all three surfaces (posthog/posthog scout emitter + posthog/code UI wiring + the context-mill self-driving wizard skill that offers the source in `npx @posthog/wizard self-driving`), the deploy ordering between them, and created_via attribution. | 72 72 Impact — No eval scenarios have been run Securityby Passed No findings from the security scan Reviewed: Version: 22b655e |