
signoz-investigating-alerts
Diagnose why a SigNoz alert fired by correlating the alert's own signal with neighbor signals (error rate, latency, throughput, CPU/memory), traces, and logs around the fire window, and rank likely causes. Make sure to use this skill whenever the user asks "why did this alert fire", "what caused alert X", "investigate this alert", "RCA for the alert that paged me", "what's wrong with [service]" in the context of a recent fire, or otherwise asks for a root-cause analysis of a firing or recently-fired alert. Read-only; does not modify any alert or notification.
- Installs
- 349
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/signoz/agent-skills --skill signoz-investigating-alerts- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads signoz-investigating-alerts automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Alert Investigate
Diagnose why a SigNoz alert fired. The skill correlates the alert's own
signal with neighbor signals around the fire window, and surfaces a
ranked list of likely causes with supporting evidence. It is the
companion to signoz-explaining-alerts: explain decodes the rule
statically; investigate diagnoses a specific incident.
Prerequisites
This skill calls SigNoz MCP server tools heavily (signoz_get_alert,
signoz_get_alert_history, signoz_execute_builder_query,
signoz_query_metrics, signoz_search_traces, signoz_search_logs,
signoz_get_trace_details, etc.). Before running the workflow,
confirm the signoz_* tools are available. If they are not, the
SigNoz MCP server is not installed or configured; run signoz-mcp-setup first
to initialize or repair the MCP connection.
When to use
Use this skill when the user wants to:
- Understand why a specific alert fired.
- Find the root cause of a recent incident triggered by an alert.
- Correlate the alert's signal with related metrics, traces, and logs.
- Distinguish "real signal" fires from flapping or threshold-mistuning.
Do NOT use when the user wants to:
- Understand what an alert is configured to monitor →
signoz-explaining-alerts. - Create a new alert →
signoz-creating-alerts. - Modify an alert (raise threshold, add hysteresis) → call
signoz_update_alertdirectly. - Run a free-form ad-hoc investigation without an alert as the anchor →
signoz-generating-queries.
Required inputs
| Input | Required | Source if missing |
|---|---|---|
| Alert identifier (rule ID or name) | yes | $ARGUMENTS[0] or recent context |
| Time window | no | default to most recent fire from signoz_get_alert_history |
If the alert name is fuzzy, this skill is best-effort (read-only):
- Call
signoz_list_alert_rules, paginate, fuzzy-match the name. - State the interpretation: "Investigating fire of 'High Error Rate - Checkout' (id 42) at 14:32 UTC. If you meant a different alert or fire, tell me."
- Proceed.
If the complete history (every page fetched, no failed call) has no firing transition in the queried lookback window, stop: there is no fire window to investigate. Respond with:
"No firing events were returned for alert '[name]' in the last 7d, so there is no fire window to investigate. Use
signoz-explaining-alertsto walk through the rule, or check whether the alert is enabled."
Never shorten this to "has not fired": retention or a rule recreated under a new
ID can empty a complete history. If a history call fails or pagination stops
early, say the history could not be fully read. Report firing history, current
state, disabled, and delivery (no alert tool returns it) as separate facts.
Workflow
The investigation runs in three tiers with strict early-stop gates. Tier 1 always runs. Tier 2 runs only if tier 1 confirms a real fire. Tier 3 runs only if tier 2 surfaces correlated anomalies. Skipping the gates produces hundreds of unnecessary trace/log queries on quiet alerts.
Step 1: Resolve alert + fire window (Tier 0)
- Resolve the alert id via
signoz_list_alert_rules(paginated) if not given. - Call
signoz_get_alertfor the full rule config, needed to know what query, threshold, and resource scope the alert evaluated. - First call
signoz_get_alert_historywithtimeRange: "7d"andorder: "desc"; omitstateso the timeline includes firing and inactive transitions. Continue only whendata.nextCursorexists (the completeness note also reportshasMore: true). Pass it ascursor, replacetimeRangewith the note's resolved absolutestartandend, and preserve the same state/filter (including omission) and order. Stop whennextCursoris absent / the note reportshasMore: false; never useoffsetor page fullness. If a later intentional state filter means "resolved" / "recovered", useinactive. The enum isinactive|pending|recovering|firing|nodata|disabled;recoveringis a transient keep-firing state, not resolution. Pattern analysis needs the complete transition set. Rows are emitted per label-groupfingerprint; do not interleave them. From the response:- Build rule-wide incident windows from distinct rows where
overallStateChanged: true: anoverallState: "firing"transition opens an incident; the nextoverallState: "inactive"closes it. Deduplicate matching timestamps and sort byunixMilliascending before pairing. Default to the most recent incident unless$ARGUMENTS[1]selects another. - Partition affected series by
fingerprintand retain each row's labels. Use onlystateChanged: truerows to decide when that group fired and resolved, and which group should scope Tier 1–3 queries. - Note the fire pattern from rule-wide transitions or one named fingerprint:
one-off→ single fire with a long quiet period before/after.sustained→ fires that stayed firing for ≥ 1 evaluation cycle.flapping→ ≥ 3 fires within a 1h window, alternating fire/resolve.recurring→ fires at regular intervals (cron-like, e.g., every hour).
- Never infer flapping from different fingerprints. The pattern guides tiers 2/3.
- Build rule-wide incident windows from distinct rows where
Step 2: Tier 1 (what fired and how hard)
This tier always runs. It establishes the fire is real (vs. transient threshold tickle or flap) and quantifies the magnitude.
- Re-run the alert's primary query over a window centered on the fire
start:
[fire_start - 30m, fire_start + 30m].- Use
signoz_execute_builder_queryfor the alert's stored builder, formula, PromQL, or ClickHouse query envelope. - Reproduce the stored query as stored. If the rule carries
limitandorderon a grouped query, keep them for this run: only the top-N series they select (ranked over the whole window) were evaluated, so the reproduction must see the same subset. Record the cap as a finding: a breaching group outside the top N was never evaluated, and abelowrule ordered descending can exclude every breaching series. The remediation is to update the rule withoutlimit/orderunless top-N alerting was the intent. - If the stored queries carry no bounds, the alert evaluated every
series, but
signoz_execute_builder_querystill applies its own displaylimit. To check a specific fingerprint from Step 1, add its labels to the filter instead of raising the limit; to rank groups, use v5order(__result descfor metrics/formulas, primary aggregation desc for logs/traces), never dashboardorderBy, and say when exactlylimitgroups came back.
- Use
- Compute:
- Peak value during the fire window.
- Threshold breach magnitude:
(peak - threshold) / threshold * 100for "above" alerts, inverted for "below". - Fire duration: the rule's overall firing→inactive interval, or the selected fingerprint's interval for a group-scoped investigation. Say which.
- Pre-fire baseline: average value in the 30m before fire start.
- Early-stop gate: if the breach magnitude is < 10% over the threshold AND the fire duration is < 1 evaluation window, classify as "marginal fire"; the alert may be too sensitive. Skip tiers 2 and 3 and go to Step 5 with a single hypothesis: "threshold may be too tight, recommend tuning."
Step 3: Tier 2 (neighbor signals vs baseline)
Run only if Tier 1 confirms a real breach. Pull related signals for the same resource scope as the alert and compare the fire window to a baseline window.
-
Pick a baseline window. Use the same hour, previous day (
fire_start - 24h, fire_start - 24h + fire_duration). If the alert fired during a known-anomalous time (deploy, weekly job), note it in the output but still proceed. -
Look up neighbor signals for the alert's resource type. See
references/neighbor-signals.mdfor the lookup table. Common cases:- Service-level alert (
service.name = X): pull error rate, p95/p99 latency, request throughput, dependency error rates if trace data is available. - Host / VM alert (
host.name = X): CPU, memory, disk I/O, network I/O. - K8s pod / namespace alert: pod restarts, container CPU/memory limits, node pressure, recent rollouts.
- Service-level alert (
-
For each neighbor signal:
- Query both windows (fire + baseline) via
signoz_execute_builder_queryorsignoz_query_metrics. - Compute the delta (% change in fire window vs baseline).
- Rank by absolute delta.
- Query both windows (fire + baseline) via
-
Early-stop gate: if no neighbor signal shows ≥ 25% deviation from baseline, classify as "isolated fire: the alert's own signal moved but nothing else did." This is unusual and worth surfacing. Skip Tier 3 and go to Step 5 with hypotheses focused on the alert's own query (likely causes: data source change, instrumentation change, downstream silent failure that only shows in this metric).
Step 4: Tier 3 (traces and logs at the fire window)
Run only if Tier 2 found correlated neighbor anomalies. Drill into specific failing operations.
-
Traces (if the alert is service-scoped and traces are available):
- Call
signoz_search_tracesfor the fire window with filter:service.name = <scope>ANDhas_error = true. Cap at top 20. - Group by
nameandstatus_message. Surface the sample's top 3 with one trace ID each; do not call a 20-row sample count full-window frequency. - Optionally call
signoz_get_trace_detailsfor span attributes. Pass the search row'strace_idastraceIdplus the same absolute fire-windowstartandend; otherwise the 6h default misses older incidents.
- Call
-
Logs for the fire window:
- Call
signoz_search_logswith filter:<scope_filter>ANDseverity_text IN ('ERROR', 'FATAL'). Cap at top 20 most recent. - Group by
bodypattern (orexception.typeif present). Surface the top 3 distinct messages with their counts in the sample.
- Call
-
Cross-reference: do the traces and logs point at the same downstream service, dependency, or code path? If so, that becomes the leading hypothesis.
See references/baseline-comparison.md for query templates that pair
fire-window and baseline-window calls cleanly.
Step 5: Build the structured output
Use this exact section order. Lead with a TL;DR, because engineers under pressure scan the top first and stop reading once they have what they need. Every claim cites the MCP query that produced it, with no generic "check logs / verify connectivity" filler.
1. TL;DR: one or two sentences, no more. Leading hypothesis, overall confidence, blast radius, and the single most useful next action. Example:
"checkoutservice error rate hit 12.4% (threshold 5%) for 8m at 14:32 UTC; most likely cause is payments-api timing out (high confidence). Open trace
7af3a09b…to see the failing call."
2. What fired
The alert (id, name), the fire window (absolute UTC + relative),
peak magnitude ("error rate hit 12.4% vs. 5% threshold, 148% over"),
fire duration, and the fire pattern (one-off / sustained /
flapping / recurring / marginal).
3. Investigation trail A scannable list of what was checked, with ✅ for confirmed signals and ❌ for ruled out, each followed by a one-line finding; a query that failed or timed out is "not checked", with the error. The point is that the reader can see what work the AI did and what it found. Example:
- ✅ Tier 1: peak error rate 12.4%, fire was real (not marginal).
- ✅ Tier 2: payments error rate +8900%, p99 +1180%; downstream cascade.
- ❌ CPU / memory pressure: flat through the fire window.
- ✅ Tier 3: 30 error traces all hit payments-api, same message.
4. Likely causes (ranked, max 3) Each cause has three parts:
- Hypothesis: one sentence, specific. Bad: "service is unhealthy". Good: "checkout is timing out on calls to payments-api".
- Evidence: the supporting numbers from tiers 1/2/3, with the underlying query inline so the user can re-run it. State the neighbor signal, the delta vs baseline, the trace/log pattern that supports it.
- Confidence:
highrequires ≥2 of: temporal precedence, topology / dependency edge, shared service or entity, correlated metric/log/trace evidence, recent deploy or config change.mediumis one tier's evidence with at least one of those signals.lowis a single signal moved with no corroboration; in that case label it a "co-occurring signal," not a cause.
If only Tier 1 ran (marginal fire / no neighbor anomalies), output
fewer hypotheses with low confidence and explicitly call out the
limitation.
5. Ruled out Short but explicit. List candidates the evidence eliminated and the one-line reason why. Skip the section if there's nothing meaningful to rule out, but if you considered something and dropped it, say so here so the user doesn't waste time re-checking it.
6. Suggested next steps Action items the user can take. Be concrete and use SigNoz-native handles so the user can act immediately:
- Specific trace, dashboard, or alert to open
(e.g., "open trace
7af3a09b…in the SigNoz UI"). - Specific query to run with
signoz-generating-queries: paste the exact filter and time window. - "Tune this alert" if the fire was marginal: name the field
(
matchType,target,recoveryTarget) and the change to make viasignoz_update_alert. - "Open an incident" or "page the owning team" if the cause is cross-service.
Mirroring as navigation chips. Mirror up to 3 of these "Suggested next steps" as host follow-up intents: the most actionable, alert-scoped ones. Keep the rest in the report prose so the user has the full picture. The chip surface is capped; the prose is not.
Out of scope (v1)
- Deployment / config-change correlation: SigNoz MCP does not expose a deployments tool; do not fabricate one. If the user mentions a recent deploy, surface it as context but don't claim it caused the fire without the signal evidence.
- Cross-service blast-radius walking: investigating downstream callers of the alert's service. Out of scope to keep context bounded.
- Long-horizon historical baselines: Tier 2 compares to one
prior-day window, not to weekly/monthly seasonality. If the user
says "is this normal for a Friday afternoon", suggest an anomaly
alert (
signoz-creating-alertswithanomaly_rule).
Guardrails
- Three-tier early-stop is mandatory. Skipping the gates pulls hundreds of traces/logs on quiet alerts and explodes context. The gates are not optional optimizations.
- Anchor every claim to an MCP query result. No speculation. If evidence is missing, lower confidence and say so.
- A failed or partial read rules nothing out. An errored or timed-out query is "not checked". Capped trace or log samples support claims only about their rows; "none", "all", or a total for the window needs a complete result.
- Show the supporting query with each hypothesis so the user can reproduce and dig deeper.
- Keep it short and evidence-backed. TL;DR is one or two sentences max; the full report is a triage card, not a postmortem. Engineers under pressure should be able to skim the top and act. Every section earns its place by adding evidence the user couldn't already see in the alert payload.
- Correlation ≠ causation. Label something a cause only when at least two of the following converge: temporal precedence (signal moved before symptom), topology / dependency edge, shared service or entity, correlated metric/log/trace evidence, or a recent deploy/config change. A single time-aligned anomaly is a "co-occurring signal," not a cause; say so explicitly.
- Don't restate the alert or recommend the obvious. "Check logs", "verify connectivity", "investigate dashboards": the reader of this output already knows they need to. Replace generic suggestions with specific queries, traces, or filters they can run immediately.
- No fabricated identifiers. Trace IDs, span names, alert rule IDs, channel names, deploy IDs: every identifier in the output must come from a real MCP response. Don't invent placeholders that look plausible.
- Report uncertainty honestly. If no hypothesis reaches medium confidence, the answer is "No clear root cause found; here's what we checked and what's ruled out." Do not promote a low-confidence guess to the leading hypothesis just to sound useful. False positives waste active incident time more than false negatives.
- Prefer resource-attribute filters in every drill-down query. This is the SigNoz MCP guideline and it directly affects query speed at scale.
- Do not modify any alert. Investigate is read-only. If the user
says "and tighten this alert", surface that as a next-step
recommendation; do not call
signoz_update_alert. - Stay in scope. Static rule explanation belongs to
signoz-explaining-alerts. Cause analysis without an alert anchor belongs tosignoz-generating-queries. - Time zones. Always state fire windows in UTC alongside relative time ("14:32 UTC, 2h ago") so autonomous and interactive consumers agree on the window.
Examples
User: "Why did the checkout error rate alert fire?"
Agent:
-
Resolves alert: "High Error Rate - Checkout" (id 42).
-
signoz_get_alert_history→ most recent fire 2h ago at 14:32 UTC, sustained for 8m, single fire (not flapping). -
Tier 1: re-runs error-rate formula over
[14:02, 15:02]. Peak error rate 12.4% (vs 5% threshold, 148% over). Pre-fire baseline 0.3%. Real fire, not marginal. -
Tier 2: pulls neighbor signals for
service.name = checkout:- p99 latency: 4.1s vs 320ms baseline (+1180%).
- Throughput: -42% (drop).
- Downstream
paymentserror rate: 18% vs 0.2% baseline (+8900%). - CPU/memory: flat (no resource pressure).
-
Tier 3: traces for
service.name = checkout, has_error = truein the fire window: top operationPOST /checkout/submit, top error message "context deadline exceeded calling payments-api". All 20 sampled error traces hit the same downstream URL; 17 of 20 sampled error logs read "payments client timeout". -
Output:
TL;DR: checkoutservice error rate hit 12.4% (threshold 5%) for 8m at 14:32 UTC. Most likely cause: payments-api timing out (high confidence; converging trace + log + neighbor evidence). Open trace
7af3a09b…to see the failing call.- What fired: alert 42 fired 2h ago at 14:32 UTC, sustained 8m. Error rate peaked at 12.4% (148% over threshold).
- Investigation trail:
- ✅ Tier 1: peak 12.4% vs 5% threshold, pre-fire baseline 0.3%. Real fire.
- ✅ Tier 2: payments error rate +8900%, p99 latency +1180%, throughput −42%.
- ❌ CPU / memory pressure on checkout: flat.
- ✅ Tier 3: all 20 sampled error traces hit payments-api with
context deadline exceeded; 17 of 20 sampled logs are timeouts.
- Likely causes (high confidence): payments service errors cascading into checkout. Evidence converges across topology (checkout → payments edge), temporal precedence (payments errors lead checkout p99), and shared entity (every sampled error trace targets the payments-api URL).
- Ruled out: checkout-side resource pressure (CPU/memory flat); upstream traffic spike (throughput dropped, didn't spike).
- Next steps: open trace
7af3a09b…in the SigNoz UI; if payments has its own alert, runsignoz-explaining-alertson it, otherwisesignoz-generating-queriesfor payments error rate over the last 4h.
User: "Investigate the flapping CPU alert on prod-api-3"
Agent:
-
Resolves alert (id 88, host.name = prod-api-3).
-
History: 7 fires in last 1h, alternating fire/resolve every 8-12 minutes: a flapping pattern.
-
Tier 1: peak 84% (threshold 80%, only 5% over). Each fire lasted 2-4 minutes. Marginal: the value hovered near threshold.
matchType = at_least_oncemade each blip trigger. -
Early-stop kicks in. Skip tiers 2/3.
-
Output:
TL;DR: alert 88 has been flapping on
prod-api-3: 7 fires in the last 1h, each 2–4m, all within 5% of the 80% threshold. No clear root cause; this is threshold tuning, not an incident. SwitchmatchTypetoon_averageor add hysteresis to stop the noise.- What fired: alert 88, host
prod-api-3, fire patternflapping. 7 fires in the last 1h, each 2–4m. Peak 84% (5% over the 80% threshold). - Investigation trail:
- ✅ Tier 1: every fire was within 5% of threshold; duration short; baseline already at 70–75%. Marginal fire; early-stop triggered, Tier 2/3 skipped.
- Likely causes (low / co-occurring signal only): threshold
tuned too tight or
matchTypeis too sensitive. Evidence: every fire was within 5% of threshold; baseline already runs at 70–75%. Not promoted to a "cause": single signal, no corroboration. - Ruled out: real CPU saturation incident (peaks too small and short-lived; baseline already near threshold).
- Next steps: change
matchTypetoon_average(smooths transient spikes) OR raise threshold to 85% with hysteresis (recoveryTarget: 75). Usesignoz_update_alertto apply.
- What fired: alert 88, host
User: "RCA for the log volume alert that fired last night"
Agent:
-
Resolves alert: "Error Log Volume Spike" (id 14, no service filter; groupBy
service.name). -
History: fired at 03:12 UTC, sustained 22m, broke down by service in the alert annotations:
service.name = inventorywas the firing series. -
Tier 1: re-runs log count for inventory in fire window. Peak 3,400 errors/min vs 1,000/min threshold (240% over). Pre-fire baseline 12/min. Real, large fire.
-
Tier 2: neighbor signals for
service.name = inventory:- Request error rate: +600%.
- p99 latency: +30% (mild).
- CPU: -80% (collapsed). Memory: -60%.
- Pod restarts (k8s): 4 in fire window.
-
Tier 3: logs for inventory in fire window. Top message in the 20-row sample: "OOMKilled restarting" (14 of 20). Top trace error: graceful-shutdown exceptions.
-
Output:
TL;DR: log volume alert 14 fired at 03:12 UTC for
service.name = inventory, sustained 22m at 240% over threshold. Most likely cause: inventory pods OOM-killed and restarted 4 times (high confidence). Check container memory limits for the inventory deployment.- What fired: alert 14 fired at 03:12 UTC for service
inventory, sustained 22m, 240% over threshold. - Investigation trail:
- ✅ Tier 1: peak 3,400 errors/min vs 1,000/min threshold; pre-fire baseline 12/min. Real fire.
- ✅ Tier 2: request error rate +600%; CPU/memory collapsed (−80%/−60%); 4 pod restarts in window.
- ❌ p99 latency: only +30%, not a latency-driven incident.
- ✅ Tier 3: top sampled log message "OOMKilled restarting" (14 of 20); top trace error: graceful-shutdown exceptions.
- Likely causes (high confidence): inventory pods OOM-killed
and restarted 4 times during the window. Evidence converges
across topology (single service), temporal precedence (memory
fell to zero before error spike), shared entity (all log lines
from
service.name = inventory), and a single coherent pattern (OOM → restart → graceful-shutdown noise). - Ruled out: upstream traffic surge (throughput unchanged). Not ruled out: request-path failures (6 of 20 sampled logs are not restarts); count restart vs all error logs to separate them.
- Next steps: check container memory limits for inventory pods; review recent deploys; consider whether the alert should exclude restart-related error patterns or whether the underlying OOM is the real concern.
- What fired: alert 14 fired at 03:12 UTC for service
Additional resources
references/neighbor-signals.md: lookup table mapping resource type (service / host / k8s) to the neighbor signals to pull in Tier 2.references/baseline-comparison.md: query templates that pair fire-window and baseline-window calls cleanly, including how to formatsignoz_execute_builder_queryfor both.signoz-explaining-alertsskill: to decode the rule before investigating, if the user is unfamiliar with what the alert monitors.signoz-generating-queriesskill: for ad-hoc follow-up queries on the same resource scope.
FAQ
What does the signoz-investigating-alerts skill do?
Diagnose why a SigNoz alert fired by correlating the alert's own signal with neighbor signals (error rate, latency, throughput, CPU/memory), traces, and logs around the fire window, and rank likely causes. Make sure to use this skill whenever the user asks "why did this alert fire", "what caused alert X", "investigate this alert", "RCA for the alert that paged me", "what's wrong with [service]" in the context of a recent fire, or otherwise asks for a root-cause analysis of a firing or recently-fired alert. Read-only; does not modify any alert or notification.
How do I install signoz-investigating-alerts?
Run npx skills add https://github.com/signoz/agent-skills --skill signoz-investigating-alerts in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/signoz-investigating-alerts/ (personal) or .claude/skills/signoz-investigating-alerts/ (project).
Which AI agents can use signoz-investigating-alerts?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is signoz-investigating-alerts safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains signoz-investigating-alerts?
It is published by signoz in signoz/agent-skills, and it is an official skill from the maker of the technology it covers. It has 349 recorded installs.
More from signoz/agent-skills
signoz-searching-docs
signoz/agent-skills
Look up information in SigNoz documentation. Make sure to use this skill whenever the user asks "how do I", "where in the docs", "what does the docs say about", "find docs for", or otherwise needs reference material on SigNoz instrumentation, OpenTelemetry setup, self-hosted deployment, API endpoints, auth headers, or troubleshooting steps, even if they don't say the word "docs" explicitly. Docs lookup only; for actions inside SigNoz, the agent will pick the matching signoz- action skill.
signoz-creating-dashboards
signoz/agent-skills
Create a new SigNoz dashboard from a natural-language intent: import a curated template (PostgreSQL, Redis, JVM, k8s, hostmetrics, APM, LLM, etc.) when one fits, or build a custom dashboard from scratch with metric / trace / log panels. Make sure to use this skill whenever the user says "create a dashboard for…", "set up monitoring for…", "build me a dashboard…", "I need observability for…", "import a dashboard template", or asks to track / visualize a service, database, cluster, or AI/LLM platform, even if they don't explicitly say "dashboard". Also use it when someone wants to "monitor", "watch", or "see metrics for" a technology and the natural answer is a dashboard.
signoz-generating-queries
signoz/agent-skills
Generate, write, or run an ad-hoc query against SigNoz observability data (metrics, logs, or traces) without wrapping it in a dashboard panel or alert. Make sure to use this skill whenever the user asks "show me error rates", "query logs for timeout errors", "what's the p99 latency for the cart service", "how many requests hit the payment endpoint", "find slow traces", "errors in the last hour", or otherwise asks an exploratory question that needs live observability data, even if they don't say "query" or "search" explicitly.
signoz-writing-clickhouse-queries
signoz/agent-skills
Open the skill to read its SKILL.md instructions.
signoz-explaining-dashboards
signoz/agent-skills
Explain what an existing SigNoz dashboard shows in plain operational language: the panels, queries, variables, and what to watch for on each. Make sure to use this skill whenever the user asks "explain this dashboard", "what does my [X] dashboard show", "walk me through the panels", "what should I watch for on this dashboard", or "help me understand this dashboard", or otherwise asks for an interpretation of a dashboard's contents, even if they don't say "explain" explicitly. Also use it when someone is onboarding to a service and wants to understand what its existing observability looks like.
signoz-modifying-dashboards
signoz/agent-skills
Modify an existing SigNoz dashboard: add or remove panels, edit a panel's query, threshold, or unit, rename the dashboard, change a panel type (graph ↔ table ↔ value), rearrange the layout, add or edit variables, or update tags. Make sure to use this skill whenever the user says "add a panel to my dashboard", "change the query on this panel", "remove the latency widget", "rename my dashboard", "update the filters", "rearrange the layout", "add a variable", "change panel type from graph to table", or otherwise asks to change something on a dashboard that already exists, even if they don't say "modify" or "edit" explicitly.
Popular ai & agents skills
google-agents-cli-publish
google/agents-cli
This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).
google-agents-cli-eval
google/agents-cli
This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).
skill-creator
anthropics/skills
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
codex-pet
prime-skills/runcomfy-agent-skills
Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.
full-output-enforcement
leonxlnx/taste-skill
Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
executing-plans
obra/superpowers
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available