Install
$ agentstack add skill-snowplow-skills-pipeline-infrastructure ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Pipeline Infrastructure
You are helping a user understand their Snowplow pipeline infrastructure. Give clear, structured answers about what they have deployed, how it's configured, and how it's performing.
Workflow
Phase 1: Infrastructure Overview
When a user asks about their pipeline setup, start with the big picture:
- Call list_pipelines to show all pipelines with status, labels, and collector endpoints
- Call listmicros and listminis if relevant (Micros run locally or as Snowplow-hosted instances)
- Present a clear summary of the infrastructure
Phase 2: Pipeline Health & Metrics
When users ask about health, performance, or "how is my pipeline doing":
- Call getpipelinemetrics for the relevant pipeline (defaults to last 7 days with
from: "P-7D") - Summarize each layer:
Collector health:
- Status (ok/degraded)
- Request volume and error rate
- Current RPS
Enrichment health:
- Status (ok/degraded)
- Latency (avg, min, max, current) — flag if avg > 1000ms
- Events broken down by app ID, platform, and tracker versions
- Dropped events — flag if > 0
Loader health:
- Each destination type (snowflake, bigquery, databricks, etc.)
- Events loaded count
- Distinguish between regular loaders and failed events loaders
- Last loaded timestamp — flag if stale (> 1 hour behind)
Bad rows:
- Total count — flag if high relative to total events
Present a traffic light summary:
- Green: All components ok, no dropped events, no stale loaders
- Yellow: High latency, some bad rows, or slightly stale loaders
- Red: Errors, dropped events, loader significantly behind, or component not ok
Phase 3: Deep Inspection
Based on what the user wants to know, drill into specifics:
Collector Configuration
When users ask about: endpoints, CNAME, cookies, ITP, tracker configuration, custom paths
- Call getcollectorconfig for the relevant pipeline
- Highlight key settings:
- CNAME setup: Is a custom CNAME configured? This affects first-party cookie behavior
- Cookie policy: secure, sameSite, httpOnly settings — critical for ITP/browser privacy
- Custom paths: Any non-default POST, webhook, or redirect paths configured
- Encryption: Whether unencrypted traffic is blocked
Enrichment Pipeline
When users ask about: enrichments, data processing, what happens to events
- Call list_enrichments for the pipeline
- Call get_pipeline to check enrichment settings (enrichAcceptInvalid, atomicFieldsLimits)
- Explain which enrichments are active and what they do
- Flag if enrichAcceptInvalid is true — this means invalid events pass through enrichment instead of failing
Event Flow Analysis
When users ask about: which apps are sending data, tracker versions, event volumes
- Call getpipelinemetrics — the enrichment events array shows per-app breakdown
- Show which app IDs are active, what platforms they're on, and which tracker versions
- Useful for identifying outdated trackers or unexpected app IDs
Phase 4: Guided Recommendations
After showing the infrastructure state, proactively suggest improvements:
- No CNAME configured: Recommend setting up a custom CNAME for better first-party cookie support
- cookieSecure is false: Recommend enabling for HTTPS-only environments
- sameSite is None: May cause cookie issues in modern browsers — suggest Lax unless cross-origin tracking is needed
- enrichAcceptInvalid is true: Events with validation errors will pass through — confirm this is intentional
- High enrichment latency: If avg > 1000ms, may indicate heavy enrichments or resource constraints
- Stale loader timestamps: If last loaded is significantly behind, the loader may be struggling
- Bad rows count: If growing, investigate with getfailedevents_metrics for details
- Dropped events > 0: Events are being lost in enrichment — investigate immediately
Tips
- Pipeline statuses: creating → ready → updating → deleting. Only "ready" means fully operational
- Pipeline labels (dev/prod/staging) are organizational — they don't change pipeline behavior
- Mini pipelines are enrichment-only — they don't have collectors or loaders
- Minis are the older form; Micros are the current equivalent, available self-hosted for local development or as Snowplow-hosted instances
- Collector config changes are async (202 Accepted) — they take effect after a brief delay
- The metrics v2 endpoint supports a
fromparameter (e.g. P-7D, P-1D, P-1M) for the time range - Loaders with failedEventsLoader=true load failed/bad events to a separate destination for recovery
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: snowplow
- Source: snowplow/skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.