From vanguard-frontier-agentic
Designs or reviews browser-side RUM instrumentation for Core Web Vitals (LCP, INP, CLS) using web-vitals attribution build and OpenTelemetry Web, with lab-vs-field labeling, sampling/cardinality sizing, and PII controls.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vanguard-frontier-agentic:frontend-observability-rum-instrumentationThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Lab-only performance testing (Lighthouse, synthetic CI runs) systematically misses the device/network diversity of real users, and ad-hoc telemetry instrumentation routinely leaks PII into span attributes or blows up observability cost through unsampled high-cardinality export. This skill wires and reviews field RUM (web-vitals + OpenTelemetry Web) with explicit evidence labeling and privacy/co...
Lab-only performance testing (Lighthouse, synthetic CI runs) systematically misses the device/network diversity of real users, and ad-hoc telemetry instrumentation routinely leaks PII into span attributes or blows up observability cost through unsampled high-cardinality export. This skill wires and reviews field RUM (web-vitals + OpenTelemetry Web) with explicit evidence labeling and privacy/cost guardrails baked in from the start.
Use this skill when the user asks to:
core-web-vitals-triage; this skill instruments the pipeline that produces the data, it does not decompose an already-captured regression.bundle-budget-code-splitting-review or service-worker-cache-strategy-review.web-vitals and OpenTelemetry Web packages ship breaking API changes across major versions (attribution-build option shapes, sampler class names, exporter constructor options), and memorized snippets go stale. Before writing or reviewing instrumentation code:
ToolSearch with query "context7" (or "select:mcp__Context7__resolve-library-id,mcp__Context7__query-docs") to load the Context7 tools if not already loaded this session.mcp__Context7__resolve-library-id for web-vitals and/or opentelemetry-js before making any claim about their current API shape. Verified IDs as of this skill's updated date: /googlechrome/web-vitals and /open-telemetry/opentelemetry-js.mcp__Context7__query-docs for the specific mechanism in scope — e.g. "attribution build generateTarget option", "INPAttributionReportOpts durationThreshold", "WebTracerProvider spanProcessors config", "TraceIdRatioBasedSampler" — before ruling on it. Do this per review; do not reuse a prior session's memory of these APIs.updated date: the attribution build (web-vitals/attribution) accepts AttributionReportOpts (reportAllChanges, generateTarget) on onCLS/onFCP/onLCP/onTTFB, and INPAttributionReportOpts additionally exposes durationThreshold (default 40) and includeProcessedEventEntries (default true) on onINP. WebTracerProvider (from @opentelemetry/sdk-trace-web) takes a spanProcessors array in its constructor — do not tell a user to call a separate addSpanProcessor method as the primary pattern without checking the installed SDK version. TraceIdRatioBasedSampler takes a single ratio argument (0–1) and is normally wrapped in ParentBasedSampler({ root: ... }) so that downstream/parent sampling decisions are respected.official_docs / references/*.md and mark the claim documentation-based (Context7 unavailable) rather than presenting it as freshly verified.web-vitals metric field, attribution property, OpenTelemetry exporter option, or sampler class that no queried source confirms.web-vitals build (onLCP/onINP/onCLS) for production reporting; only use the /attribution build's richer diagnostic payload when actively debugging a specific regression, and only send that extra payload to a dev/debug destination, not blanket production export.reportAllChanges: true in production by default — it multiplies event volume for a debugging-only benefit.TraceIdRatioBasedSampler wrapped in ParentBasedSampler) against the stated/estimated traffic volume and the backend's cost/cardinality limits; never recommend 100% unsampled export for a high-traffic app without an explicit cost review.Load these only when needed:
onLCP/onINP/onCLS instrumentation call, choosing between standard and attribution builds, or setting generateTarget/durationThreshold/reportAllChanges.WebTracerProvider, DocumentLoadInstrumentation, FetchInstrumentation, exporter, or sampler configuration.Return, at minimum:
npx claudepluginhub raishin/vanguard-frontier-agentic --plugin vanguard-frontier-agenticImplements Real User Monitoring (RUM) to capture Core Web Vitals, page load times, and custom performance events using Google Analytics, Datadog RUM, or New Relic.
Configures and instruments OpenTelemetry in web apps for Real User Monitoring (RUM): page loads, Core Web Vitals, route changes, clicks, console output, and JS errors. Covers WebTracerProvider, browser-sdk, and span/event instrumentations.
Measures custom business metrics, collects Web Vitals, and analyzes resource/navigation timing using the browser Performance API. Builds RUM pipelines for monitoring.