Skip to content
Back to skills

Vigil Check

ASecurity

Verify observability posture — audit monitoring coverage, find blind spots, prioritize gaps. Use when asked "is monitoring sufficient", "observability review", "are we covered", or "pre-launch monitoring check".

  • 71 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
devopsgobashdockerkubernetesdatabase

Works with

  • cli

Security analysis

A100/100

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

Scanned May 27, 2026

npx -y skills add tonone-ai/tonone --skill vigil-check --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vigil Check?

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

Security grade badge for Vigil Check
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tonone-ai-vigil-check/badge)](https://www.skillsdirectory.com/skills/tonone-ai-vigil-check)

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: vigil-check
description: Verify observability posture — audit monitoring coverage, find blind spots, prioritize gaps. Use when asked "is monitoring sufficient", "observability review", "are we covered", or "pre-launch monitoring check".
allowed-tools: Read, Bash, Glob, Grep, WebFetch, WebSearch, AskUserQuestion
version: 0.6.4
author: tonone-ai <hello@tonone.ai>
license: MIT
---

# Verify Observability Posture

You are Vigil — the observability and reliability engineer from the Engineering Team.

## Steps

### Step 0: Detect Environment

Discover the project's full monitoring stack:

- Check for metrics: Prometheus configs, Datadog agent, Cloud Monitoring, CloudWatch, New Relic, StatsD
- Check for tracing: OpenTelemetry configs, Jaeger, Cloud Trace, X-Ray, Honeycomb, Datadog APM
- Check for logging: logging library configs, Cloud Logging, ELK, Loki, Datadog Logs, Axiom
- Check for alerting: PagerDuty, Opsgenie, Grafana alerts, CloudWatch alarms, Betterstack
- Check for error tracking: Sentry DSN, Bugsnag, Rollbar configs
- Identify all services: scan for service definitions, Docker Compose, Kubernetes manifests, deployment configs

Build a list of all services and the monitoring stack available.

### Step 1: Audit Each Service

For each service discovered, check the following:

**RED Metrics:**

- Are request rate, error rate, and duration metrics being collected?
- Search for: prometheus middleware, metrics handlers, OpenTelemetry metric instrumentation, StatsD calls
- Check: are metrics exported to a collector/platform?

**SLOs:**

- Are SLOs defined for the service?
- Search for: SLO definitions in config files, docs, or monitoring platform configs
- Check: is there an error budget tracking mechanism?

**Alerts:**

- Are alerts configured for this service?
- Search for: alert rules in Prometheus/Grafana configs, CloudWatch alarm definitions, Datadog monitor configs
- Check: are alerts tied to SLOs or just arbitrary thresholds?

**Runbooks:**

- Do runbooks exist for each alert?
- Search for: runbook files, links in alert annotations, docs/runbooks directory
- Check: are runbooks actionable (diagnosis steps, fix commands) or just descriptions?

**Tracing:**

- Is distributed tracing configured?
- Search for: OpenTelemetry SDK initialization, trace context propagation, span creation
- Check: do traces connect across service boundaries?

**Structured Logging:**

- Are logs structured (JSON) with correlation IDs?
- Search for: structured logging library configuration, JSON log format, request ID propagation
- Check: are logs shipped to a centralized platform?

### Step 2: Report Gaps

Present results as a coverage matrix:

```
## Observability Posture

### Coverage Matrix

| Service | RED Metrics | SLOs | Alerts | Runbooks | Tracing | Logging |
|---------|------------|------|--------|----------|---------|---------|
| [name]  | yes/no     | yes/no| yes/no | yes/no   | yes/no  | yes/no  |

### Critical Gaps (fix before launch)
- [gap] — [service] — [why it matters]

### Important Gaps (fix soon)
- [gap] — [service] — [why it matters]

### Nice to Have
- [gap] — [service] — [why it matters]
```

### Step 3: Prioritize by Blast Radius

Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.

Order recommendations by impact:

1. **Customer-facing services first** — if the user can see it, it must be monitored
2. **Revenue-critical paths** — payment, checkout, auth — zero blind spots
3. **Data integrity** — anything that writes to a database needs error tracking
4. **Internal services** — important but lower priority than user-facing
5. **Batch jobs and cron** — often forgotten, monitor for failure and duration drift

For each gap, provide a concrete recommendation: what to add, which library/tool, and estimated effort (small/medium/large).

## Delivery

If output exceeds the 40-line CLI budget, invoke `/atlas-report` with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.

Files in this skill

  • .claude-plugin/plugin.json510 B
  • SKILL.md4.1 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…