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…
Diagnoses and fixes validation errors, schema issues, and instrumentation problems. Use when debugging validation errors, schema issues, or instrumentation problems
Claude Code
$ npx -y skills add rudderlabs/rudder-agent-skills --skill rudder-instrumentation-debugging --agent claude-code
Codex
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-instrumentation-debugging -a codex -y
Cursor
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-instrumentation-debugging -a cursor -y
Gemini CLI
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-instrumentation-debugging -a gemini-cli -y
GitHub Copilot
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-instrumentation-debugging -a github-copilot -y
OpenCode
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-instrumentation-debugging -a opencode -y
Windsurf
$ npx skills add rudderlabs/rudder-agent-skills --skill rudder-instrumentation-debugging -a windsurf -y
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.
For events sent by the AI SDKs (`ai_*`, `mcp_*`), use `rudder-ai-events-verify`, which checks them against the AI events spec.
┌─────────────────┐
│ 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
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.