Skip to content
Back to skills

Source 9044c79ab989427b218705c5

ASecurity

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.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentsgoapi

Works with

  • api
  • mcp

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add gutsofpratik/OpenClaude-Skills --skill source-9044c79ab989427b218705c5 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Source 9044c79ab989427b218705c5?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Source 9044c79ab989427b218705c5
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gutsofpratik-source-9044c79ab989427b218705c5/badge)](https://www.skillsdirectory.com/skills/gutsofpratik-source-9044c79ab989427b218705c5)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: announce
description: 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.
argument-hint: [incident-id]
disable-model-invocation: true
allowed-tools:
  - mcp__rootly__*
---

# 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.

Files in this skill

  • PROVENANCE.json222 B
  • SKILL.md4.1 KB
  • UPSTREAM-LICENSE.txt10.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.