Rootly Alerts — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Rootly Alerts (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Rootly's alerting system connects monitoring tools (Datadog, PagerDuty, New Relic, Grafana, etc.) to the incident management workflow. Each integration is registered as an alert source; alerts land in Rootly tagged with a source, status, and urgency, and can be attached to incidents. Routing rules and alert groups control where alerts go and how noisy duplicates are suppressed.
PagerDuty appears here as an upstream alert source and paging target. Questions about PagerDuty's own objects are not this skill.
and escalation policies are pagerduty-incidents, pagerduty-oncall, and pagerduty-alerts. This skill only covers how a PagerDuty signal enters Rootly as an alert source and how Rootly pages back out to it.
an incident via attach_alert, lifecycle, severity, and response coordination are rootly-incidents.
datto-rmm-alerts, network alerts are auvik-alerts, EDR detections are sentinelone-alerts.
and action definitions are rootly-workflows.
An alert source (alerts_source) is a configured integration -- Datadog, PagerDuty, New Relic, Grafana, Opsgenie, CloudWatch, or a custom webhook. Each source has:
source_type -- Which integration this iswebhook_endpoint / email -- Intake mechanismalert_urgency_id -- Default urgency applied to alerts from this sourceowner_group_ids -- Team(s) responsible for this sourceAn individual alert carries:
status -- Alert statussource -- The originating sourcesummary / description -- What the alert is aboutservice_ids, group_ids, environment_ids -- What it's scoped toalert_urgency_id -- Its urgency levelnoise -- Whether the alert is flagged as noiseexternal_id / external_url -- Link back to the originating systemAlerts carry an urgency (alert_urgency) rather than a severity -- a named, ordered level (name, description, position) used to prioritize triage. This is a separate concept from an incident's severity.
An alert routing rule (alert_routing_rule) determines how incoming alerts from a given source are handled:
alerts_source_id -- Which source this rule applies tocondition_type / conditions -- What must match for the rule to firedestination -- Where the matched alert is routedenabled -- Whether the rule is activeAn alert group (alert_group) deduplicates or bundles related alerts to reduce noise:
condition_type / conditions -- What alerts belong in the grouptime_window -- The grouping windowgroup_by_alert_title, group_by_alert_urgency -- Grouping keysAn escalation policy (escalation_policy) defines who is paged and how many times an alert repeats through the chain before giving up:
repeat_count -- How many times to repeat the escalation chaingroup_ids -- Teams this policy applies toservice_ids -- Services this policy coversbusiness_hours -- Business-hours scoping for the policyEscalation levels (escalation_level) and escalation paths (escalation_path) are nested under a policy and define the actual tiers/steps of the chain.
list_alertsParameters:
filter[status] -- Filter by alert statuspage[number] / page[size] -- PaginationExample response:
{
"data": [
{
"id": "alert-789",
"type": "alerts",
"attributes": {
"summary": "High error rate on payment-service",
"source": "datadog",
"status": "triggered",
"service_ids": ["svc-001"],
"alert_urgency_id": "urgency-critical",
"external_url": "https://app.datadoghq.com/monitors/12345"
}
}
]
}get_alertParameters:
get_alert_by_short_idParameters:
create_alert
update_alertacknowledge_alert
resolve_alertParameters:
list_alerts_sourcesReturns the configured integrations (Datadog, PagerDuty, custom webhook, etc.) and their intake settings.
list_alert_routing_rulesParameters:
alerts_source_idlist_alert_groupslist_alert_urgencieslist_escalation_policieslist_alerts with filter[status]=triggeredsource and alert_urgency_idattach_alert (see incidents)acknowledge_alert once triage beginslist_escalation_policiesservice_ids) has a policyrepeat_count and business_hours for appropriatenesslist_alert_routing_rules to get all rulesalerts_source_id and destinationconditions that create noiselist_alert_groups to confirm noisy alerts are actually being deduplicatedlist_alerts_sources to verify each integration is configured and has a status of activesource to check for sources with no recent alerts (potential integration failure)webhook_endpoint connectivity for custom sourcesCause: Invalid alert ID or alert expired Solution: List recent alerts to verify the correct ID, or try get_alert_by_short_id
Cause: Multiple routing rules match the same alert with conflicting destination Solution: Review position ordering on routing rules; use more specific conditions
Cause: No responder acknowledged before the escalation chain repeated (repeat_count exhausted) Solution: Review on-call schedules and ensure coverage
service_idsalert_urgency consistently so triage prioritization is meaningfulwebhook_endpointservice_ids and environment_ids for accurate routingattach_alert) as a reliability metric~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.