From errandd
Explicitly escalate a Datadog On-Call page (or proactively page on-call) when an automated first-responder cannot safely resolve an alert. Bumps an existing page to the next escalation tier, or creates a new page targeting the on-call team, so a human is engaged now instead of waiting for the next timed tier. Use when an agent gives up, is unsure, or the fix did not recover the monitor. Trigger phrases include "escalate the page", "escalate to on-call", "page a human", "notify on-call", "hand off to on-call", "I can't fix this alert", "escalate the incident".
How this skill is triggered — by the user, by Claude, or both
Slash command
/errandd:datadog-escalate-pageThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Explicitly engage a **human** when the automated first responder (L1) cannot
Explicitly engage a human when the automated first responder (L1) cannot safely resolve the alert. Don't just stop and wait for the timed 2nd tier — act, with context, so on-call gets a head start.
datadog-recheck-recovery).page_id (UUID) if a Datadog On-Call page already exists for this alert —
it's in the webhook payload. If absent, you'll create one.DD_ONCALL_TEAM),
or a specific user_id.DD_SITE (e.g. us3.datadoghq.com; API base https://api.$DD_SITE),
DD_API_KEY, DD_APP_KEY.Bodyless POST; returns 202 Accepted. Keeps one page thread and its ack state.
curl -sf -X POST \
-H "DD-API-KEY: $DD_API_KEY" -H "DD-APPLICATION-KEY: $DD_APP_KEY" \
"https://api.$DD_SITE/api/v2/on-call/pages/$PAGE_ID/escalate"
Use when L1 decides to page before the timed human tier would fire. target,
title, urgency are required; urgency: high actually pages the rotation.
curl -sf -X POST \
-H "DD-API-KEY: $DD_API_KEY" -H "DD-APPLICATION-KEY: $DD_APP_KEY" \
-H "Content-Type: application/json" \
"https://api.$DD_SITE/api/v2/on-call/pages" \
-d @- <<JSON
{ "data": { "type": "pages", "attributes": {
"title": "L1 could not resolve: $ALERT_TITLE",
"urgency": "high",
"target": { "type": "team_handle", "identifier": "$DD_ONCALL_TEAM" },
"description": "Automated first-responder could not recover this alert.\nMonitor: https://app.$DD_SITE/monitors/$MONITOR_ID\nService: $SERVICE ($NAMESPACE)\nTried: $WHAT_WAS_TRIED\nState: $CURRENT_STATE\nWhy escalating: $REASON",
"tags": ["source:errandd","escalation:oncall","monitor_id:$MONITOR_ID","service:$SERVICE"]
} } }
JSON
target.type may be team_handle, team_id, or user_id. The response data.id
is the new page_id — record it.
If On-Call isn't in use, post a Datadog event whose text @-mentions the
on-call handle (mentions are parsed from the body, not the title):
curl -sf -X POST \
-H "DD-API-KEY: $DD_API_KEY" -H "DD-APPLICATION-KEY: $DD_APP_KEY" \
-H "Content-Type: application/json" \
"https://api.$DD_SITE/api/v1/events" \
-d "{\"title\":\"🚨 Escalation: $ALERT_TITLE\",\"text\":\"$DD_ONCALL_HANDLE L1 could not recover. Monitor: https://app.$DD_SITE/monitors/$MONITOR_ID • Tried: $WHAT_WAS_TRIED • Why: $REASON\",\"alert_type\":\"error\",\"tags\":[\"source:errandd\",\"escalation:oncall\"]}"
Host note: On-Call is served on the standard
api.$DD_SITEhost. Some orgs use a regional On-Call cell host (*.oncall.datadoghq.com); ifapi.$DD_SITEreturns 404 for/api/v2/on-call/*, retry against the cell host fromDD_ONCALL_HOST.
page_id / event id and stop trying to fix unless you have a
genuinely safe, high-confidence action.npx claudepluginhub northisup/errandd --plugin erranddGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Resolves in-progress git merge or rebase conflicts by analyzing history, understanding intent, and preserving both changes where possible. Runs automated checks after resolution.