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
Diagnoses and fixes validation errors, schema issues, and instrumentation problems. Use when debugging validation errors, schema issues, or instrumentation problems
$ npx -y skills add rudderlabs/rudder-agent-skills --skill rudder-instrumentation-debugging --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/rudder-instrumentation-debuggingContext preview
The summary Claude sees to decide when to auto-load this skill.
Diagnoses and fixes validation errors, schema issues, and instrumentation problems. Use when debugging validation errors, schema issues, or instrumentation problems
name: rudder-instrumentation-debugging description: Diagnoses and fixes validation errors, schema issues, and instrumentation problems. Use when debugging validation errors, schema issues, or instrumentation problems allowed-tools: "Bash(rudder-cli *), Read, Write, Edit"
This skill teaches how to diagnose and fix common **validation errors**, **schema issues**, and **instrumentation problems** when working with RudderStack data catalog and tracking plans.
┌─────────────────┐
│ Error Occurs │
└────────┬────────┘
▼
┌─────────────────┐
│ Identify Type │ ← Validation? Schema? Runtime?
└────────┬────────┘
▼
┌─────────────────┐
│ Locate Source │ ← Which file? Which line?
└────────┬────────┘
▼
┌─────────────────┐
│ Understand Rule │ ← What does the validation expect?
└────────┬────────┘
▼
┌─────────────────┐
│ Fix & Validate │ ← Edit, then rudder-cli validate
└─────────────────┘Error: data-catalog/events/product-viewed.yaml:15 Referenced property 'urn:rudder:property/proudct_id' not found
**Cause:** Typo in URN or property doesn't exist.
**Fix:**
# Wrong - property: "urn:rudder:property/proudct_id" # Typo! # Right - property: "urn:rudder:property/product_id"
**Debug steps:**
# List all properties to find correct name ls data-catalog/properties/ # Search for the property grep -r "product" data-catalog/properties/
Error: Duplicate resource name 'Product Viewed' in kind 'event' - data-catalog/events/ecommerce.yaml:5 - data-catalog/events/legacy.yaml:12
**Cause:** Same event name defined in multiple files.
**Fix:** Remove duplicate or rename one:
# Find duplicates grep -r "name: \"Product Viewed\"" data-catalog/events/
Error: data-catalog/properties/price.yaml:8 Config 'minLength' is not valid for type 'number'
**Cause:** Using string config options on a number type.
**Fix:**
# Wrong
spec:
name: "price"
type: "number"
config:
minLength: 1 # String config!
# Right
spec:
name: "price"
type: "number"
config:
minimum: 0 # Number config**Config options by type:**
| Type | Valid Config | |------|--------------| | `string` | minLength, maxLength, pattern, format, enum | | `number` | minimum, maximum, exclusiveMinimum, exclusiveMaximum | | `integer` | minimum, maximum, exclusiveMinimum, exclusiveMaximum | | `array` | items, minItems, maxItems | | `object` | properties (with required flags) | | `boolean` | (none) |
Error: Circular reference detected in custom type 'RecursiveType' RecursiveType -> NestedType -> RecursiveType
**Cause:** Custom type references itself directly or indirectly.
**Fix:** Restructure to avoid circular references:
# Wrong: Circular
# RecursiveType references NestedType
# NestedType references RecursiveType
# Right: Flatten or use base types
spec:
name: "ParentType"
config:
properties:
- property: "urn:rudder:property/child_id" # Reference by ID instead
required: trueError: data-catalog/events/checkout.yaml:7 YAML syntax error: unexpected indent
**Cause:** Incorrect indentation or YAML formatting.
**Fix:** Check indentation (use 2 spaces, not tabs):
# Wrong
spec:
name: "Checkout Started"
rules: # Wrong indent!
- property: "..."
# Right
spec:
name: "Checkout Started"
rules: # Correct indent
- property: "..."Error: Invalid URN format 'property/product_id' Expected: urn:rudder:<type>/<name>
**Cause:** Missing `urn:rudder:` prefix.
**Fix:**
# Wrong - property: "property/product_id" # Right - property: "urn:rudder:property/product_id"
rudder-cli apply --dry-run -l ./
Dry Run Results: ================ New [event] Checkout Started Updated [property] product_id Updated [tracking-plan] Web App Tracking Plan Deleted [event] Legacy Event Total: 1 new, 2 updated, 1 deleted
| Status | Meaning | Action | |--------|---------|--------| | `New` | Will create in workspace | Verify it's intentional | | `Updated` | Will modify existing | Review changes | | `Deleted` | Will remove from workspace | **Check if intentional!** |
If you see unexpected `Deleted` entries:
**Cause 1:** File was accidentally removed
# Check git status git status # Restore if needed git checkout -- data-catalog/events/missing-event.yaml
**Cause 2:** File excluded from validation path
# Ensure you're validating correct directory rudder-cli apply --dry-run -l ./data-catalog/ # Might miss tracking-plans/ rudder-cli apply --dry-run -l ./ # Validates everything
**Cause 3:** Import metadata mismatch
# Check metadata.import.id matches workspace
metadata:
import:
id: "evt_abc123" # Must match workspace resource IDDry Run Results: ================ No changes detected.
If you expected changes:
# Validate single file rudder-cli validate -l ./data-catalog/events/checkout.yaml # Validate directory rudder-cli validate -l ./data-catalog/events/
rudder-cli validate -l ./ --verbose
Shows:
# Find what references a property grep -r "urn:rudder:property/product_id" data-catalog/
See `references/error-reference.md` for:
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…