rudder-cli-setup
Installs and authenticates rudder-cli. Use when installing rudder-cli, setting up rudder cli, rudder-cli command not found, or authenticating with RudderStack
Creates and manages events, properties, categories, and custom types for instrumentation schemas. Use when creating or managing events, properties, categories, or custom types for RudderStack instrumentation
$ npx -y skills add rudderlabs/rudder-agent-skills --skill rudder-data-catalog --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/rudder-data-catalogContext preview
The summary Claude sees to decide when to auto-load this skill.
Creates and manages events, properties, categories, and custom types for instrumentation schemas. Use when creating or managing events, properties, categories, or custom types for RudderStack instrumentation
name: rudder-data-catalog description: Creates and manages events, properties, categories, and custom types for instrumentation schemas. Use when creating or managing events, properties, categories, or custom types for RudderStack instrumentation allowed-tools: "Bash(rudder-cli *), Read, Write, Edit"
This skill teaches how to create and manage the building blocks of instrumentation: **events**, **properties**, **categories**, and **custom types**.
When adding or editing catalog resources, author bottom-up (dependencies first) then validate and apply. The referencing order is strict — an event can't reference a property URN until that property exists.
digraph data_catalog_workflow {
rankdir=TB;
"1. Custom types (reusable shapes)" [shape=box];
"2. Properties (vocabulary)" [shape=box];
"3. Categories (grouping)" [shape=box];
"4. Events (reference all of the above)" [shape=box];
"rudder-cli validate -l ./" [shape=box];
"Errors?" [shape=diamond];
"Fix references / URNs / type config" [shape=box];
"rudder-cli apply --dry-run -l ./" [shape=box];
"Diff matches intent?" [shape=diamond];
"rudder-cli apply -l ./" [shape=box];
"Done" [shape=doublecircle];
"1. Custom types (reusable shapes)" -> "2. Properties (vocabulary)";
"2. Properties (vocabulary)" -> "3. Categories (grouping)";
"3. Categories (grouping)" -> "4. Events (reference all of the above)";
"4. Events (reference all of the above)" -> "rudder-cli validate -l ./";
"rudder-cli validate -l ./" -> "Errors?";
"Errors?" -> "Fix references / URNs / type config" [label="yes"];
"Fix references / URNs / type config" -> "rudder-cli validate -l ./";
"Errors?" -> "rudder-cli apply --dry-run -l ./" [label="no"];
"rudder-cli apply --dry-run -l ./" -> "Diff matches intent?";
"Diff matches intent?" -> "Fix references / URNs / type config" [label="no"];
"Diff matches intent?" -> "rudder-cli apply -l ./" [label="yes"];
"rudder-cli apply -l ./" -> "Done";
}**Why bottom-up:** properties reference custom types; events reference properties, categories, and custom types. Creating in the reverse order means every intermediate `validate` fails on missing references. For the validate → dry-run → apply details (error formats, diff reading, auth prereqs), see the `rudder-cli-workflow` skill.
| Concept | Purpose | Example | |---------|---------|---------| | **Events** | What happened | "Product Viewed", "Order Completed" | | **Properties** | Attributes of events | product_id, price, quantity | | **Categories** | Organize events | "Ecommerce", "User Lifecycle" | | **Custom Types** | Reusable validation patterns | ProductType, AddressType, Currency |
Before creating new events or properties, check what already exists to prevent duplicates and ensure consistency.
**Using Rudder CLI:**
# List existing events rudder-cli get events # List existing properties rudder-cli get properties # List custom types rudder-cli get custom-types
**Using MCP:**
Tool: list_data_catalog_events Search for events matching your proposed name Tool: list_data_catalog_properties Check if property already exists
Before proposing new resources, verify they follow conventions:
| Resource | Convention | Example | Anti-Example | |----------|------------|---------|--------------| | Events | Title Case with spaces | `Product Viewed` | `productViewed`, `product_viewed` | | Properties | snake_case | `product_id` | `productId`, `ProductId` | | Categories | kebab-case | `user-lifecycle` | `userLifecycle`, `user_lifecycle` | | Custom Types | PascalCase | `ProductType` | `product_type`, `productType` |
If proposing "Transformation Created", search for:
rudder-cli get events | grep -i transform
data-catalog/
├── events/
│ ├── ecommerce.yaml # Product Viewed, Order Completed, etc.
│ └── user-lifecycle.yaml # Signed Up, Logged In, etc.
├── properties/
│ ├── product-properties.yaml
│ ├── customer-properties.yaml
│ └── address-properties.yaml
├── categories/
│ └── categories.yaml
└── custom-types/
├── product-type.yaml
└── address-type.yamlversion: "rudder/v1"
kind: "event"
metadata:
name: "events"
spec:
name: "Product Viewed"
description: "User viewed a product detail page"
category: "urn:rudder:category/ecommerce"
rules:
- property: "urn:rudder:property/product_id"
required: true
- property: "urn:rudder:property/product_name"
required: true
- property: "urn:rudder:property/product_price"
required: true
- property: "urn:rudder:property/product_category"
- property: "urn:rudder:property/page_url"version: "rudder/v1"
kind: "property"
metadata:
name: "properties"
spec:
name: "product_id"
type: "string"
description: "Unique product identifier"
config:
minLength: 3
maxLength: 50version: "rudder/v1" kind: "category" metadata: name: "categories" spec: name: "ecommerce" description: "Events related to product discovery, cart, and purchase"
version: "rudder/v1" kind: "custom-type" metadata: name: "custom-types" spec: name: "
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, and Profiles — with the right preflight checks, commands, and recovery paths.
Installs and authenticates rudder-cli. Use when installing rudder-cli, setting up rudder cli, rudder-cli command not found, or authenticating with RudderStack
Validates, previews, and applies RudderStack resource changes via YAML specs. Use when iterating on RudderStack resources with rudder-cli - validates specs,…
Imports existing RudderStack workspace resources into YAML files for git-based management. Use when importing existing RudderStack resources to CLI management…
Creates and manages RudderStack transformations and libraries with local testing. Use when creating, editing, or managing RudderStack transformations and…
Generates type-safe SDKs (Swift/Kotlin) from tracking plans with compile-time validation. Use when generating type-safe event tracking code from tracking plans…
Derives tracking plans from existing codebase types and structures. Use when instrumenting an existing product that wasn't well-instrumented or restructuring…