rudder-ai-events-instr…
Adds RudderStack AI events code from an approved ai-events.md plan: installs @rudderstack/ai, rudderstack-ai or ai-sdk-go, wraps…
Modifies an existing RudderStack Profiles project: features, inputs, id_types, cohorts, feature views, SQL models, optimizations, macros, propensity/attribution, or incremental migration. Use when updating Profiles YAML, adding features/audiences/models or changing incremental
Claude Code
$ npx -y skills add rudderlabs/rudder-agent-skills --skill rudder-profiles-update --agent claude-code
Codex
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-profiles-update -a codex -y
Cursor
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-profiles-update -a cursor -y
Gemini CLI
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-profiles-update -a gemini-cli -y
GitHub Copilot
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-profiles-update -a github-copilot -y
OpenCode
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-profiles-update -a opencode -y
Windsurf
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-profiles-update -a windsurf -y
name: rudder-profiles-update description: "Modifies an existing RudderStack Profiles project: features, inputs, id_types, cohorts, feature views, SQL models, optimizations, macros, propensity/attribution, or incremental migration. Use when updating Profiles YAML, adding features/audiences/models or changing incremental behavior." allowed-tools: "Bash(pb *), Read, Write, Edit"
Modify an existing Profiles project carefully. Always understand the current state first, classify risk, and validate after each change.
1. **Read current state** — Read all YAML files, run `pb show models`, run `pb compile`. 2. **Fix first** — If compile already fails, fix the existing project before introducing new changes. 3. **Classify the change** — Determine risk level before making edits (see table below). 4. **Make one change at a time** — Edit, then `pb compile`. Do not batch multiple changes before validating. 5. **Offer a run** — Only after compile is green and user confirms.
| Change Type | Risk | Key Concern | |-------------|------|-------------| | Add new entity_var | Safe | Must aggregate if has `from` | | Add new input source | Safe | Verify table/columns exist via `describe_table()` | | Add new id_type | Moderate | Affects identity resolution graph | | Add feature view (`using_ids`) | Safe | Re-keys existing output; needs an id_type already on the entity | | Add entity cohort | Moderate | Filter features must exist in the parent var_group; re-run to materialize | | Add/modify sql_template model | Moderate | Pongo2 + `DeRef` dependencies; `single_sql` can't take a top-level `WITH`; materialization choice affects cost | | Add optimizations.yaml flag | Safe | Enable one at a time and confirm output is unchanged | | Modify existing entity_var | Moderate | Downstream refs may break; invalidates incremental checkpoints | | Add propensity model | Moderate | Date handling rules change completely (see below) | | Add attribution model | Moderate | Needs a separate campaign entity + campaign id_stitcher first (see below) | | Remove entity_var or input | Breaking | Must scan all refs first; warn about downstream consumers | | Change entity or id_stitcher | Breaking | Full re-run required; all checkpoints invalidated |
Before writing any change: 1. Name the risk class. 2. Name the expected blast radius. 3. Tell the user what validation will prove the change is safe.
Before writing `models/profiles-ml.yaml`, confirm all four items with the user:
1. Label definition (what binary outcome to predict). 2. Prediction window (how far ahead to predict). 3. Eligible-user filter (which users qualify for scoring). 4. Output model names.
Then:
Never use these in entity vars that feed propensity models:
Always use the conventional project-defined macros instead (confirm they exist in `models/macros.yaml` — they are NOT pb built-ins):
Why: macros expand to use the project's `end_time` so they stay anchored to each training snapshot's reference date. Direct date functions evaluate at query time and corrupt historical training data (label leak).
See `references/propensity-yaml-template.md`.
Attribution computes first-touch and last-touch credit for conversions across user→campaign journeys (`model_type: attribution`, a PyNative model in `profiles_mlcorelib`). It has real prerequisites — do not start the model until they exist:
Confirm conversions, conversion timing/value, attribution window, touchpoints, and campaign data with the user first. Note the schema is `additionalProperties: False`; `conversion_vars[*].timestamp` is a `user.Var('...')` reference (not a column); `campaign_start_date`/`campaign_end_date` are campaign entity_var names (not literals); `conversion_window` is a string like `"30d"`. See `references/attribution-yaml-template.md`.
When a transform can't be an entity_var (multi-step SQL, joins, a filtered/reshaped source), add a `sql_template` model (`single_sql`/`multi_sql`, `this.DeRef(...)`, materialization, optional `ids`/`contract`/`features`). Reference it from entity_vars with `from: models/<name>`. Keep it `run_type
A Claude Code plugin marketplace and Agent Skills collection that teaches your AI coding agent how to drive every programmatic RudderStack surface — CLI, MCP server, Terraform, Profiles, and AI events — with the right preflight checks, commands, and recovery
Adds RudderStack AI events code from an approved ai-events.md plan: installs @rudderstack/ai, rudderstack-ai or ai-sdk-go, wraps…
Onboards an app to RudderStack AI events, including moving existing RudderStack LLM, chat or agent events to them: discovers…
Verifies RudderStack AI events locally and checks a move from existing RudderStack events: validates captures against the v0.3…
Installs and authenticates rudder-cli. Use when installing rudder-cli, setting up rudder cli, rudder-cli command not found, or…
Validates, previews, and applies RudderStack resource changes via YAML specs. Use when iterating on RudderStack resources with…
Imports existing RudderStack workspace resources into YAML files for git-based management. Use when importing existing…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.