Claude
Skills
Sign in
Back

announce

Included with Lifetime
$97 forever

Draft a stakeholder-facing status update for an active incident, then post it after explicit confirmation. Useful for incident commanders pushing public-status-page or internal updates without opening the Rootly UI. Write action - never posts without confirming.

Design

What this skill does


# Incident Announcement

You are helping the user (often the incident commander) post a stakeholder-facing update on an incident. **Write action — explicit confirmation required.**

## Workflow

### 1. Resolve the incident

`$ARGUMENTS` should contain an incident reference (UUID, `INC-XXXX`, or sequential number).

- If empty: call `mcp__rootly__listIncidents` with `filter_status="started"`, `page_size=10`, and `sort="-started_at"` and ask the user which incident to announce.
- Otherwise call `mcp__rootly__getIncident` with the incident reference exactly as provided. The MCP server accepts UUIDs plus sequential forms like `4460`, `#4460`, and `INC-4460`.

Once resolved, use the returned incident record for the full context.

### 2. Identify the publication target

Inspect the incident record for:
- An attached status page (often `status_page_id` or similar field)
- Public-facing flag (`is_public` / `private`)

If the incident has a status page attached:
- Call `mcp__rootly__getStatusPage` for the page details (name, URL).
- Call `mcp__rootly__listStatusPageTemplates` to surface preset update templates.

If no status page is attached, fall back to posting an **incident event** that surfaces in Rootly's internal stream — call `mcp__rootly__createIncidentEvent` instead. Make the distinction clear to the user.

### 3. Draft the update

Compose a 2–4 sentence update with this structure:

```
[Status verb: "Investigating" / "Identified" / "Monitoring" / "Resolved"] — [one-sentence summary of customer impact].
[Optional: what we know about the cause, briefly.]
[Optional: what we're doing about it.]
[Next update: in [duration] / when status changes.]
```

Keep it stakeholder-grade: no Rootly internal IDs, no engineer names, no jargon.

### 4. Show the draft

```
**Incident**: [INC-XXXX] [title] — [severity], [status]
**Posting to**: [Status page name + URL] | [Internal incident stream if no status page]
**Visibility**: [Public / Internal]

**Draft update:**

> [the drafted message]

Confirm to post this update? (yes / edit / no)
```

### 5. Handle the user's reply

- **`yes`** → call the appropriate tool:
  - Status page update path: post via the status-page-specific MCP tool if one is exposed; otherwise create an incident event with the text and rely on Rootly's status-page integration to syndicate it. Prefer `mcp__rootly__createIncidentEvent` with a clear `event_type` if a dedicated tool isn't available.
  - Internal-only path: call `mcp__rootly__createIncidentEvent` with this shape:

```json
{
  "incident_id": "[resolved incident UUID]",
  "data": {
    "type": "incident_events",
    "attributes": {
      "event": "[drafted message]",
      "visibility": "internal"
    }
  }
}
```
- **`edit`** → ask the user for revisions. Re-show the draft. Re-confirm.
- **`no`** or anything else → acknowledge, do not post.

### 6. After posting

```
✅ Update posted.
- [Status page URL if applicable]
- [Event ID]

Reminder: this skill posts a single update. For ongoing communication, post follow-ups every [interval based on severity] or when status changes.
```

### 7. Guidelines

- **Never** post without explicit `yes`. Stakeholder updates are visible and hard to retract.
- **Severity-aware tone**:
  - SEV0/SEV1 → calm, factual, frequent updates expected.
  - SEV2 → succinct, focused on impact.
  - SEV3+ → minimal, often only at status changes.
- **Resolved updates**: if the incident status is `resolved` or `closed`, default the verb to "Resolved" and include a one-line root-cause summary if available.
- **Edit loops**: don't infinitely revise. After two edit rounds, ask the user to type the exact text they want.
- If the user has no permission to post on the status page (API returns 403), surface the error clearly. Don't try to escalate.

Related in Design