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…
Creates and manages tracking plans that validate events against schema contracts. Use when creating or managing tracking plans that define which events are allowed for a source
Claude Code
$ npx -y skills add rudderlabs/rudder-agent-skills --skill rudder-tracking-plans --agent claude-code
Codex
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-tracking-plans -a codex -y
Cursor
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-tracking-plans -a cursor -y
Gemini CLI
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-tracking-plans -a gemini-cli -y
GitHub Copilot
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-tracking-plans -a github-copilot -y
OpenCode
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-tracking-plans -a opencode -y
Windsurf
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-tracking-plans -a windsurf -y
name: rudder-tracking-plans description: Creates and manages tracking plans that validate events against schema contracts. Use when creating or managing tracking plans that define which events are allowed for a source allowed-tools: "Bash(rudder-cli *), Read, Write, Edit"
This skill teaches how to assemble events into **tracking plans** - contracts that define which events a source can send and what properties each event must have.
A tracking plan is a schema that:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Source │────▶│ Tracking Plan │────▶│ Destination │
│ (Web App SDK) │ │ (Validator) │ │ (Warehouse) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
Validates events
against schemaversion: "rudder/v1"
kind: "tracking-plan"
metadata:
name: "tracking-plans"
spec:
name: "Web App Tracking Plan"
description: "Events for the main e-commerce web application"
events:
- event: "urn:rudder:event/product-viewed"
- event: "urn:rudder:event/product-added-to-cart"
- event: "urn:rudder:event/order-completed"Override event-level rules at the tracking plan level:
version: "rudder/v1"
kind: "tracking-plan"
metadata:
name: "tracking-plans"
spec:
name: "Mobile App Tracking Plan"
description: "Events for iOS and Android apps"
events:
- event: "urn:rudder:event/product-viewed"
rules:
# Make session_id required for mobile (optional in event definition)
- property: "urn:rudder:property/session_id"
required: true
# Make device_id required for mobile attribution
- property: "urn:rudder:property/device_id"
required: true
- event: "urn:rudder:event/product-added-to-cart"
- event: "urn:rudder:event/order-completed"When the same property appears at multiple levels:
1. Tracking Plan event rules (highest priority) 2. Event-level rules (default) 3. Property definitions (validation config only)
**Example:** If `session_id` is optional in the event definition but required in the tracking plan, it's **required** for that tracking plan.
See `references/ecommerce-example.md` for a complete e-commerce example showing:
When events violate the tracking plan:
spec:
name: "Strict Tracking Plan"
governance:
# Options: block, forward, log
unplannedEvents: block # Reject events not in plan
violatingEvents: forward # Forward violations with flag| Setting | Behavior | |---------|----------| | `block` | Reject event entirely | | `forward` | Forward event with violation metadata | | `log` | Allow event, log violation for review |
tracking-plans/ ├── web-app.yaml ├── mobile-app.yaml ├── kiosk.yaml └── internal-tools.yaml
Each tracking plan in its own file for clear git history and code review.
What application/SDK will use this tracking plan?
Which events from your data catalog does this source need?
Web App needs: ✓ Product Viewed ✓ Product Added to Cart ✓ Order Completed ✗ App Opened (mobile only)
For each event, what properties should be:
version: "rudder/v1"
kind: "tracking-plan"
metadata:
name: "tracking-plans"
spec:
name: "Your Tracking Plan Name"
description: "Clear description of what source uses this"
events:
- event: "urn:rudder:event/event-name"
rules:
- property: "urn:rudder:property/property-name"
required: true# Validate rudder-cli validate -l ./ # Preview rudder-cli apply --dry-run -l ./ # Apply rudder-cli apply -l ./
After applying, connect the tracking plan to your source:
# tracking-plans/web-app-production.yaml
spec:
name: "Web App - Production"
governance:
unplannedEvents: block # Strict in production
violatingEvents: block
# tracking-plans/web-app-development.yaml
spec:
name: "Web App - Development"
governance:
unplannedEvents: log # Lenient in development
violatingEvents: forwardCreate a comprehensive event catalog, then each tracking plan includes only what it needs:
Data Catalog: 50 events defined ├── Web App Plan: 30 events ├── Mobile Plan: 25 events └── Kiosk Plan: 5 events
Start permissive, tighten over time:
# Phase 1: Log only governance: unplannedEvents: log violatingEvents: log # Phase 2: Forward violations governance: unplannedEvents: forward violatingEvents: forward # Phase 3: Block vio
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.