alerting

Configure and manage cron-monitor alert delivery to Slack, email, or webhook endpoints. Use when you need to set up notifications for failed or missed cron jobs, test alert delivery, or manage existing alert configurations. Triggers include "configure alerts", "set up Slack notification", "webhook alert", "email notification", "notify on failure", or any task involving alert routing for cron jobs.

7 stars

Best use case

alerting is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Configure and manage cron-monitor alert delivery to Slack, email, or webhook endpoints. Use when you need to set up notifications for failed or missed cron jobs, test alert delivery, or manage existing alert configurations. Triggers include "configure alerts", "set up Slack notification", "webhook alert", "email notification", "notify on failure", or any task involving alert routing for cron jobs.

Teams using alerting should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/alerting/SKILL.md --create-dirs "https://raw.githubusercontent.com/heldernoid/agentic-build-templates/main/projects/developer-tools/cron-monitor/skills/alerting/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/alerting/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How alerting Compares

Feature / AgentalertingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Configure and manage cron-monitor alert delivery to Slack, email, or webhook endpoints. Use when you need to set up notifications for failed or missed cron jobs, test alert delivery, or manage existing alert configurations. Triggers include "configure alerts", "set up Slack notification", "webhook alert", "email notification", "notify on failure", or any task involving alert routing for cron jobs.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# alerting

Configure alert delivery for cron-monitor job failures and missed runs.

## When to use

- Setting up Slack notifications for job failures
- Adding webhook delivery to an incident management system
- Configuring email alerts for on-call rotation
- Testing that alert delivery is working before relying on it

## Alert Events

| Event | When it fires |
|---|---|
| `missed` | No ping received within the job's grace period after its scheduled time |
| `failure` | A ping was received with `status: "failure"` or a non-zero exit code |
| `recovery` | A success ping received after a `missed` or `failure` state |

## Create a Slack alert via API

```bash
curl -s -X POST https://monitor.example.com/api/alerts \
  -H "Authorization: Bearer cm_..." \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "slack",
    "target": "https://hooks.slack.com/services/T0.../B0.../xxxx",
    "onMissed": 1,
    "onFailure": 1,
    "onRecovery": 1,
    "cooldownMinutes": 60
  }'
```

To apply to a specific job only, include `"jobId": "<uuid>"`. Omitting `jobId` applies to all jobs.

## Create a webhook alert via API

```bash
curl -s -X POST https://monitor.example.com/api/alerts \
  -H "Authorization: Bearer cm_..." \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "webhook",
    "target": "https://api.pagerduty.com/v2/enqueue",
    "onMissed": 1,
    "onFailure": 1,
    "onRecovery": 0,
    "cooldownMinutes": 30,
    "jobId": "550e8400-e29b-41d4-a716-446655440000"
  }'
```

## Webhook payload format

POST to the target URL with JSON body and `X-CM-Signature` HMAC-SHA256 header:

```json
{
  "event": "failure",
  "job": {
    "id": "550e8400-...",
    "name": "API Sync",
    "slug": "api-sync",
    "schedule": "*/5 * * * *"
  },
  "execution": {
    "id": "7f8a9b2c-...",
    "status": "failure",
    "exitCode": 1,
    "durationMs": 410,
    "finishedAt": "2026-03-20T15:52:14Z",
    "output": "Connection timeout"
  },
  "timestamp": "2026-03-20T15:52:20Z",
  "monitorUrl": "https://monitor.example.com"
}
```

Verify the signature:

```javascript
const crypto = require('node:crypto');
const secret = 'cm_your_webhook_secret';
const signature = req.headers['x-cm-signature'];
const expected = crypto.createHmac('sha256', secret)
  .update(JSON.stringify(req.body))
  .digest('hex');
const valid = crypto.timingSafeEqual(
  Buffer.from(signature),
  Buffer.from(`sha256=${expected}`)
);
```

## Test an alert

```bash
curl -s -X POST https://monitor.example.com/api/alerts/<id>/test \
  -H "Authorization: Bearer cm_..."
# Response: { "ok": true, "channel": "slack", "deliveredAt": "2026-03-20T16:00:00Z" }
```

## List and manage alerts via API

```bash
# List all alert configs
curl -s https://monitor.example.com/api/alerts \
  -H "Authorization: Bearer cm_..."

# Update cooldown period
curl -s -X PATCH https://monitor.example.com/api/alerts/<id> \
  -H "Authorization: Bearer cm_..." \
  -H "Content-Type: application/json" \
  -d '{ "cooldownMinutes": 120 }'

# Delete
curl -s -X DELETE https://monitor.example.com/api/alerts/<id> \
  -H "Authorization: Bearer cm_..."
```

## Cooldown behavior

The `cooldownMinutes` setting prevents alert storms. Once an alert fires for a job event, the same alert type will not fire again for that job until the cooldown period passes. Recovery events always fire regardless of cooldown.

## Troubleshooting

### Alert not firing

1. Check the job status in the dashboard - alert only fires on status transitions
2. Verify the alert config applies to the correct job (or all jobs)
3. Check `onMissed`/`onFailure` flags are set to `1`
4. Check the cooldown: the same alert may be suppressed within the cooldown window

### Webhook getting 401/403

The receiving endpoint may require auth headers. Use a proxy or middleware that adds auth before forwarding to your upstream. cron-monitor does not support custom request headers on webhook delivery.

Related Skills

Skill: Uptime Monitoring

7
from heldernoid/agentic-build-templates

## Overview

Skill: Status Page

7
from heldernoid/agentic-build-templates

## Overview

Skill: unit-conversion

7
from heldernoid/agentic-build-templates

## Overview

Skill: recipe-scaler

7
from heldernoid/agentic-build-templates

## Overview

reading-list

7
from heldernoid/agentic-build-templates

Operate the reading-list API to save, manage, tag, search, and export articles.

email-digest

7
from heldernoid/agentic-build-templates

Configure, test, and troubleshoot the reading-list daily email digest delivered via nodemailer.

websocket-realtime

7
from heldernoid/agentic-build-templates

Use the WebSocket connection in poll-builder to receive live vote updates. Use when you need to stream real-time poll results, monitor a poll for new votes, or build a live dashboard. Triggers include "live results", "real-time updates", "stream votes", "watch poll", or "WebSocket".

poll-builder

7
from heldernoid/agentic-build-templates

Self-hosted poll creation tool with real-time results. Use when you need to create a poll, check vote counts, close a poll, export results, or get the shareable link for a poll. Triggers include "create poll", "vote", "poll results", "survey", "collect votes", "share poll", or any task involving polling or voting.

Skill: personal-finance

7
from heldernoid/agentic-build-templates

## Overview

Skill: csv-import

7
from heldernoid/agentic-build-templates

## Overview

Skill: Syntax Highlighting

7
from heldernoid/agentic-build-templates

## Purpose

Skill: Pastebin Core

7
from heldernoid/agentic-build-templates

## Purpose