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…
Change the sync configuration of an existing data warehouse schema — switch sync_type, pick a different incremental_field, set primary_key_columns, choose cdc_table_mode, or change sync_frequency. Use when the user asks "switch my orders table from full refresh to incremental",
$ npx -y skills add PostHog/ai-plugin --skill tuning-incremental-sync-config --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/tuning-incremental-sync-configContext preview
The summary Claude sees to decide when to auto-load this skill.
Change the sync configuration of an existing data warehouse schema — switch sync_type, pick a different incremental_field, set primary_key_columns, choose cdc_table_mode, or change sync_frequency. Use when the user asks "switch my orders table from full refresh to incremental",
name: tuning-incremental-sync-config description: > Change the sync configuration of an existing data warehouse schema — switch sync_type, pick a different incremental_field, set primary_key_columns, choose cdc_table_mode, or change sync_frequency. Use when the user asks "switch my orders table from full refresh to incremental", "this table is syncing too slowly / too frequently", "I need to pick a different incremental column", "set up CDC for this Postgres table", or when diagnosis of a failing sync pointed to an incremental-field or PK misconfiguration.
A sync's configuration lives on the `ExternalDataSchema` and can be changed any time via `external-data-schemas-partial-update`. Most changes are non-destructive (take effect on the next sync), but a few (switching sync_type, changing primary keys) require careful handling to avoid corrupting the synced data.
If the user is setting up a brand-new source, use `setting-up-a-data-warehouse-source` instead — configuration is chosen at creation time there.
| Tool | Purpose | | ------------------------------------------------------ | ------------------------------------------------------------------------- | | `external-data-schemas-retrieve` | Current sync_type, incremental_field, PKs, sync_frequency | | `external-data-schemas-incremental-fields-create` | Refresh candidate incremental fields from the live source | | `external-data-schemas-partial-update` | Apply the config change | | `external-data-schemas-reload` | Trigger a sync with the new config | | `external-data-schemas-resync` | Wipe and re-import from scratch when the change invalidates existing data | | `external-data-schemas-delete-data` | Drop the synced table while keeping the schema entry | | `external-data-sources-check-cdc-prerequisites-create` | Pre-flight Postgres CDC (only when switching to/from CDC) | | `external-data-sources-webhook-info-retrieve` | Current webhook state (when switching to/from sync_type=webhook) | | `external-data-sources-create-webhook-create` | Register a webhook after switching a schema to sync_type=webhook | | `external-data-sources-update-webhook-inputs-create` | Rotate a webhook signing secret | | `external-data-sources-delete-webhook-create` | Unregister webhook when switching schemas off sync_type=webhook |
From the partial-update endpoint:
| Field | Values | Notes | | ------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | | `sync_type` | `full_refresh`, `incremental`, `append`, `cdc`, `webhook` | Source must support the target type — check via incremental-fields | | `incremental_field` | Column name from the source | Must appear in `incremental_fields` list for the schema | | `incremental_field_type` | `datetime`, `date`, `timestamp`, `integer`, `numeric`, `objectid` | Must match the column's real type | | `primary_key_columns` | Array of column names | Required for CDC. Used for upsert dedup on incremental | | `cdc_table_mode` | `consolidated`, `cdc_only`, `both` | Only meaningful when sync_type=cdc | | `sync_frequency` | `1min`, `5min`, `15min`, `30min`, `1hour`, `6hour`, `12hour`, `24hour`, `7day`, `30day`, `never` | Applies to all non-CDC types | | `sync_time_of_day` | `HH:MM:SS` | When sync_frequency is daily/weekly-scale | | `should_sync` | `true` / `false` | Pause the schema without deleting it |
Always start with `external-data-schemas-retrieve({id})`. Understanding the current state prevents mistakes like "fixing" an incremental_field that's actually correct.
Note:
Call `external-data-schemas-incremental-fields-create({id})`. Even though the operation name says
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…