Skip to content
Back to skills

Ops Alert Audit

ASecurity

Audit a service's alerts from an export — firings and actionable ratio per alert over the period, computed — and decide for each whether to keep, tune, demote to a ticket or delete, flagging pages with no runbook and pages per shift over the target. Use when on-call is noisy and the team wants fewer, better alerts. Not for designing alerting from scratch; see /ops-alerting.

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentspythonbash

Security analysis

A100/100

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

Scanned November 7, 2026

npx -y skills add bromso/singularskills --skill ops-alert-audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ops Alert Audit?

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

Security grade badge for Ops Alert Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bromso-ops-alert-audit/badge)](https://www.skillsdirectory.com/skills/bromso-ops-alert-audit)

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: ops-alert-audit
description: Audit a service's alerts from an export — firings and actionable ratio per alert over the period, computed — and decide for each whether to keep, tune, demote to a ticket or delete, flagging pages with no runbook and pages per shift over the target. Use when on-call is noisy and the team wants fewer, better alerts. Not for designing alerting from scratch; see /ops-alerting.
metadata:
  argument-hint: "<alerts file> [project]"
---

# Alert audit

Find out which alerts in "$ARGUMENTS" earn their place, as `references/slos-and-alerting.md` describes.

**Compute with code.** Perform every calculation (totals, balances, ratios, variances, projections) with a script — Bash, Python or a spreadsheet formula written to a file — and include the computation alongside the result. Never do arithmetic mentally.

## Prerequisites

The export: one row per alert firing with the alert name, the time it fired, whether it was acknowledged, and what action was taken (or none), over a period of about 90 days if available. When `$ARGUMENTS` or the request names a project, use that name as `<project>` whether or not its folder exists yet in `.singularskills/ops/` (create it when you write). With no project named: with exactly one folder there, use it; with several, ask which; with no folder at all, ask for a project name. Read `.singularskills/ops/<project>/04-runbooks.md` and `05-on-call.md` when they exist.

Append this line to `.singularskills/log.jsonl` before you write the audit (create the folder and file if missing): `{"ts":"<ISO timestamp>","skill":"ops-alert-audit","workflow":"ops","phase":null,"project":"<project>","event":"started","artifact":"alerts/<date>-<slug>.md","note":""}`, where `<date>` is today as `YYYY-MM-DD` and `<slug>` is two to four words naming the topic, never a person.

## Process

1. **Compute per alert** with a script written to `.singularskills/ops/<project>/` and included beside the result: firings, the share that led to an action (the actionable ratio), firings outside working hours, and time to acknowledge. Scripts read the user's files where they keep them and write results under `.singularskills/`.

2. **Compute the load:** pages per on-call shift, against the target of no more than 2–3 actionable pages per 12-hour shift (`target`).

3. **Decide each alert:**
   - **keep** — actionable ratio of 80% or more, and it pages for a user-facing symptom
   - **tune** — real but noisy: change the threshold, the window or move it to a burn-rate alert
   - **demote** — never urgent: make it a ticket
   - **delete** — not acted on in the period
   with the reason and the numbers behind it.

4. **Flag pages with no runbook,** and alerts named by a resource ("CPU high") instead of what users see.

5. **Write the audit** to `.singularskills/ops/<project>/alerts/<date>-<slug>.md` with sections **Period**, **Per alert** (a table: alert, firings, actionable ratio, after hours, decision, reason), **Load**, **Missing runbooks** and **Changes**.

## Output

The audit written to `.singularskills/ops/<project>/alerts/<date>-<slug>.md`. Present the pages per shift against the target, then the alerts to delete or demote.

After you have written the audit, append the `started` line of Prerequisites to `.singularskills/log.jsonl` with `"event":"finished"`: `{"ts":"<ISO timestamp>","skill":"ops-alert-audit","workflow":"ops","phase":null,"project":"<project>","event":"finished","artifact":"alerts/<date>-<slug>.md","note":""}`.

The audit opens with this frontmatter (`agent` is the agent you run in, or `unknown`; this utility has no gate, so `phase` is `null` and `gate` is `none`):

```yaml
---
skill: ops-alert-audit
workflow: ops
phase: null
project: <project>
started: <ISO timestamp>
finished: <ISO timestamp>
agent: <the agent you run in, or "unknown">
gate: none
---
```

The audit ends with `## Decisions` and `## Open questions`, in this shape:

```markdown
## Decisions
- <what was chosen> — <why> — <what was rejected>

## Open questions
- <what a reviewer must settle>
```

Files in this skill

  • SKILL.md4 KB
  • references/slos-and-alerting.md4.7 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.