Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
The English summary is being prepared. Showing the original description.
Use when an "enable observability" card asks for rum on a frontend, or web.* signals are unbound - how the developer collects Core Web Vitals and page views (web-vitals to the app's own endpoint as log lines, or Sentry / PostHog), what each event must carry, and what stays out of it
The English summary is being prepared. Showing the original description.
Review the instructions the agent will receive before you install.
What the frontend's golden signals need: Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift (judged at the 75th percentile), page views, and front-end errors. Choose one path per app; never ship two RUM SDKs.
web-vitals and report every metric once per page view:
onLCP(send); onINP(send); onCLS(send); onFCP(send); onTTFB(send); where send posts {name, value, rating, id, navigationType, page, release} with navigator.sendBeacon('/api/rum', body) (falling back to fetch(..., {keepalive: true}))./api/rum endpoint validates the body (known name, a number value, a bounded size), rate-limits by client, and writes one structured log line per event — event=web_vital name=LCP value=2310 rating=needs-improvement page=/checkout release=1.42.0 — and answers 204. Those lines are what a logs data source (Loki, Elasticsearch, the cloud's logging) reads; the web.* signals bind to them.window.addEventListener('error' | 'unhandledrejection') posting the message, stack, page and release to the same endpoint as event=frontend_error.page is the route pattern (/orders/:id), never the raw URL: ids and query strings are personal data and explode the label count.
@sentry/browser (or @sentry/react, @sentry/nextjs) with browserTracingIntegration(); release and environment set from the build, tracesSampleRate 0.1 in production. Web Vitals and errors come with it; a sentry data source reads its issues and release health.
posthog-js with capture_pageview: 'history_change' for single-page apps and capture_performance for web vitals; the project key is public, the host is the team's PostHog instance.
Acceptance criteria: "Given a visitor loads /checkout in production, then an LCP event for page /checkout with this release's version is readable from <data source> within a minute"; "Given a page throws, then a frontend_error event with its stack is recorded."
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
The English summary is being prepared. Showing the original description.
Use when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level authorization, mass assignment and tenant scoping
The English summary is being prepared. Showing the original description.
Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal
The English summary is being prepared. Showing the original description.
Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task
The English summary is being prepared. Showing the original description.
How to work a task returned with review, QA or UAT findings. Use when a task is in need_revision or PR review comments are in your context.
The English summary is being prepared. Showing the original description.
Use when the repository keeps its alerting in code, or a person asks for alerts outside TaskTrooper - PrometheusRule YAML, a Cloud Monitoring alert policy in Terraform, a Datadog monitor, each routed to TaskTrooper's alert ingest URL so it opens an incident here
The English summary is being prepared. Showing the original description.