Install any skill in seconds. Free to start, no credit card required.
Get Started Free →nearai/alert-triage
Turns firing Grafana alerts into a deduplicated, evidence-backed triage list by pairing each alert instance with the rule that defines it, the metric that confirms it, and any Grafana IRM incident already covering it. Separates noise from the few alerts that represent real, uncovered problems.
Passed 10 of 19 test cases with the skill, and 4 of 19 without it.
and 8 more in the full report
7 fixed4 passed either way10 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 6 test cases the skill fixed. Same model, same prompt, with and without the skill.
Grafana alert `HostUnreachable` is firing for `node-12`, causing 8 downstream `ContainerHTTPError` alerts on that host to be flagged as inhibited by Grafana alert rules. How should these 8 downstream alerts be categorized?
| Checked | Without skill | With skill |
|---|---|---|
| Categorize inhibited alerts under the Noise section. | Missed | Passed |
| State inhibition by the root alert as the specific reason for Noise classification. | Missed | Passed |
The instructions your model reads when the skill loads.
An alert firing is not an incident. A busy stack fires continuously, most of it already known, already covered, or the same underlying fault reported five ways. The work is not listing what is firing, it is deciding which of it represents a real problem nobody is already handling.
This skill does that decision, and shows the evidence behind it.
| Source | Capability | What it yields |
|---|---|---|
| Grafana | grafana.list_alerts | Alert instances currently firing, pending, silenced or inhibited, with labels |
| Grafana | grafana.list_alert_rules, grafana.get_alert_rule | The definition: the query and threshold that decided it should fire |
| Grafana | grafana.query_metrics | The underlying series, to confirm the signal is real and still true |
| Grafana | grafana.search_dashboards, grafana.get_dashboard | A dashboard link to attach as evidence |
| IRM | irm.list_incidents, irm.get_incident | Whether an incident already covers this |
| IRM | irm.get_timeline | What responders have already tried and concluded |
| IRM | irm.list_on_call | Who is on call right now, for an uncovered problem that needs one |
| IRM | irm.get_escalation_policy | The escalation steps that would run, before recommending one |
grafana.list_alerts answers "what is broken right now". grafana.get_alert_rule answers "why
does the system think so". Triage needs both: an instance without its rule is a symptom with no
threshold context, and a rule fires on a query you should be willing to re-run.
test cases passed, vs 4 / 19 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.