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…
Imports existing RudderStack workspace resources into YAML files for git-based management. Use when importing existing RudderStack resources to CLI management and evolving them safely
Claude Code
$ npx -y skills add rudderlabs/rudder-agent-skills --skill rudder-import-and-evolve --agent claude-code
Codex
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-import-and-evolve -a codex -y
Cursor
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-import-and-evolve -a cursor -y
Gemini CLI
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-import-and-evolve -a gemini-cli -y
GitHub Copilot
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-import-and-evolve -a github-copilot -y
OpenCode
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-import-and-evolve -a opencode -y
Windsurf
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-import-and-evolve -a windsurf -y
name: rudder-import-and-evolve description: Imports existing RudderStack workspace resources into YAML files for git-based management. Use when importing existing RudderStack resources to CLI management and evolving them safely allowed-tools: "Bash(rudder-cli *), Read, Write, Edit"
This skill teaches how to **import existing RudderStack resources** into CLI management and **safely evolve** your tracking schema over time.
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ RudderStack │────▶│ Import to │────▶│ Local YAML │
│ Workspace │ │ Local Files │ │ Files │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Git Version │
│ Control │
└─────────────────┘rudder-cli auth login
This prompts for an access token; the token decides the workspace. An agent does not run it: it asks the user to export `RUDDERSTACK_ACCESS_TOKEN` in the shell that starts the agent, and never asks the user to paste a token into the chat. See `rudder-cli-setup`.
rudder-cli workspace info --json
Should show your workspace `name` and `workspaceID`.
rudder-cli import workspace
This imports:
imported/
├── data-catalog/
│ ├── events/
│ │ └── *.yaml
│ ├── properties/
│ │ └── *.yaml
│ ├── categories/
│ │ └── *.yaml
│ └── custom-types/
│ └── *.yaml
└── tracking-plans/
└── *.yamlEach file includes **import metadata**:
version: "rudder/v1"
kind: "event"
metadata:
name: "events"
import:
id: "evt_abc123xyz" # Links to workspace resource
workspace: "ws_xyz789"
spec:
name: "Product Viewed"
# ... rest of spec**Important:** The `metadata.import` section links local files to workspace resources. Don't modify these IDs.
See `references/evolution-patterns.md` for detailed patterns including:
The examples there end with `rudder-cli apply -l ./`, which waits on a confirmation prompt. An agent shows the user the `rudder-cli apply --dry-run -l ./` output first and waits for an explicit yes. Only then does it run `rudder-cli apply --confirm=false -l ./`, which applies with no prompt. Without `--confirm=false`, a non-interactive run auto-declines the prompt and applies nothing.
The CLI applies to the workspace of its token, not to the workspace a directory was imported from. The dry run names that workspace only from rudder-cli 0.28.0, on a first line `Workspace: <name> (<id>)`. In the multi-workspace examples, run `rudder-cli workspace info --json` before each dry run and check that `workspaceID` is that directory's workspace. Get that ID from the user, or from the `workspace info --json` output recorded when the directory was imported. Never take it from the `workspace_id` in a spec's `metadata.import`, because a spec copied from another directory carries that workspace's ID. If the IDs differ, stop. Changing the CLI's workspace means restarting the agent: the user exports that workspace's token as `RUDDERSTACK_ACCESS_TOKEN` and starts the agent again from that shell.
**Problem:** Someone made changes in the UI after import.
**Solution 1: Re-import (overwrites local)**
# Warning: This overwrites your local changes! rudder-cli import workspace --force
**Solution 2: Manual reconciliation**
# 1. Compare local vs workspace rudder-cli apply --dry-run -l ./ # 2. Review differences # "Updated" means local differs from workspace # Decide: use local (apply) or use workspace (re-import that file) # 3. Apply your version, only after the user says yes to the dry run rudder-cli apply --confirm=false -l ./
**Best practice:** After import, all changes go through CLI. Disable UI editing for data catalog if possible.
Import is a **one-time snapshot**. There's no `rudder-cli pull` to sync changes from workspace.
# This doesn't exist: rudder-cli pull # ❌ Not a command # Instead, re-import to get latest: rudder-cli import workspace # Overwrites local
If you copy files between workspaces, update the `metadata.import` section:
# Wrong: IDs from different workspace
metadata:
import:
id: "evt_from_other_workspace"
workspace: "ws_different"
# Right: Remove import metadata for new workspace
metadata:
name: "events"
# No import section - will create new resourceIf you import, delete some files, then apply:
# The dry run lists the deleted files' resources under "Removed resources:". # Show it to the user and wait for an explicit yes. rudder-cli apply --dry-run -l ./ # This will DELETE those resources
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.4…
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…
Creates and manages RudderStack transformations and libraries with local testing. Use when creating, editing, or managing…
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.