Agent skill · every-app
observability-triage
Triage OpenSEO production errors in Cloudflare Workers Observability — verified query recipes, counting gotchas, and a known-noise filter list applied automatically. Use when asked to review Cloudflare logs/observability, count OOMs or worker errors, compare error rates between periods, or investigate a prod error spike.
What it needs
About 4k tokens when loaded.
What this skill does
Observability triage Query Cloudflare Workers Observability for prod errors, count them correctly, and skip the noise that has already been investigated to a dead end. Apply the known-noise list below without re-investigating those entries. Access Resolve the account at runtime — never hardcode it: the cloudflare-api MCP server pre-binds accountId in mcpcloudflare-apiexecute, and npx wrangler whoami prints it. The workers to triage are the ones this repo deploys (see alchemy.run.ts): the main app worker plus the aux workers (audit engine, landing, self-host). Query via the cloudflare-api MCP server (mcpcloudflare-apiexecute). If its tools are absent, run its authenticate flow and give the user the URL — wrangler's OAuth token gets a 403 on the observability API (missing scope), so don't burn time on curl-with-wrangler-token. PostHog is the second error source but cannot see exceededMemory / canceled / responseStreamDisconnected outcomes — worker-outcome questions are answerable only here. Query recipes (verified shapes) POST /accounts/{accountid}/workers/observability/telemetry/query. All of these are load-bearing; the API's 400s are opaque: queryId: "adhoc" is required. Timeframe is epoch milliseconds: timeframe: { from, to }. Count invocations by outcome: The cf-worker-event filter is what makes counts mean invocations; without it you count every log line. Raw samples: view: "events", empty calculations/groupBys, small limit. Events carry $metadata (service, trigger, level, message, fingerprint, requestId) and $workers (outcome, scriptName, scriptVersion, wallTimeMs, cpuTimeMs, eventType). Error-level app logs grouped by message: filter $metadata.level eq error, groupBy $metadata.message. Verified filter operations: eq, neq. Percentiles: the API wants "median", not "p50". Filter for substrings client-side on fetched events. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills every-app/observability-triage