Receber por email
← Voltar para o catálogo

runbook-generator

Generate production-grade operational runbooks from codebase analysis. Covers deployment procedures, incident response, database maintenance, scaling operations, and monitoring setup. Every step includes copy-paste commands, verification checks, rollback procedures, escalation paths, and time estimates. Use when bootstrapping ops docs, preparing for on-call, or post-incident improvements.

288estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: NOASSERTION

Como adicionar

/plugin marketplace add borghei/Claude-Skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/runbook-generator-borghei/svg)](https://www.skillteca.com.br/skills/runbook-generator-borghei)

Skills relacionadas

Ver todas de DevOps e Infra →

Alerta por categoria

Receba novas skills de DevOps e Infra toda segunda

1 email curto, só com as skills novas de DevOps e Infra. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Runbook Generator

Tier: POWERFUL Category: Engineering / SRE Maintainer: Claude Skills Team

Overview

Analyze a codebase and generate production-grade operational runbooks with copy-paste commands, verification checks after every step, rollback procedures for every destructive action, escalation paths with contact information, and time estimates for capacity planning. Detects the stack (CI/CD, database, hosting, containers) and produces runbooks tailored to the actual infrastructure. Includes staleness detection to flag runbooks when referenced config files change.

Keywords

runbook, operational procedures, incident response, deployment, rollback, database maintenance, scaling, monitoring, on-call, SRE, postmortem

Core Capabilities

1. Stack Detection

  • Identify CI/CD platform, database, hosting, and orchestration from repo files
  • Map detected stack to appropriate runbook templates
  • Extract connection strings, deployment commands, and infrastructure details

2. Runbook Types

  • Deployment: pre-checks, deploy steps, smoke tests, rollback
  • Incident response: triage, diagnose, mitigate, resolve, postmortem
  • Database maintenance: backup, migration, vacuum, reindex
  • Scaling: horizontal and vertical scaling procedures
  • Monitoring: alert setup, dashboard configuration, on-call rotation

3. Format Discipline

  • Numbered steps with copy-paste commands
  • Verification check after EVERY step
  • Time estimates for capacity planning
  • Rollback procedure for every destructive action
  • Escalation paths with decision criteria

4. Maintenance

  • Staleness detection linked to config file modification dates
  • Quarterly review cadence
  • Staging dry-run validation framework

When to Use

  • Codebase has no runbooks and you need to bootstrap them
  • Existing runbooks are outdated or incomplete
  • Onboarding a new engineer for on-call rotation
  • Preparing for an incident response drill
  • Post-incident improvement: updating runbooks with lessons learned

Stack Detection

Scan the repository before writing any runbook:

# CI/CD Platform
[ -d ".github/workflows" ] && echo "GitHub Actions"
[ -f ".gitlab-ci.yml" ]    && echo "GitLab CI"
[ -f "Jenkinsfile" ]       && echo "Jenkins"

# Database
grep -rl "postgres\|postgresql" package.json pyproject.toml 2>/dev/null && echo "PostgreSQL"
grep -rl "mysql\|mariadb" package.json 2>/dev/null && echo "MySQL"
grep -rl "mongodb\|mongoose" package.json 2>/dev/null && echo "MongoDB"

# Hosting
[ -f "vercel.json" ]       && echo "Vercel"
[ -f "fly.toml" ]          && echo "Fly.io"
[ -f "railway.toml" ]      && echo "Railway"
[ -d "terraform" ]         && echo "Terraform (custom cloud)"
[ -d "k8s" ] || [ -d "kubernetes" ] && echo "Kubernetes"
[ -f "docker-compose.yml" ] && echo "Docker Compose"

# Framework
[ -f "next.config.mjs" ] || [ -f "next.config.ts" ] && echo "Next.js"
grep -q "fastapi" requirements.txt 2>/dev/null && echo "FastAPI"
[ -f "go.mod" ] && echo "Go"

Deployment Runbook Template

# Deployment Runbook — [App Name]

**Stack:** [Framework] + [Database] + [Hosting]
**Last verified:** YYYY-MM-DD
**Owner:** [Team Name]
**Estimated total time:** 15-25 minutes

---

## Staleness Check

| Config File | Last Modified | Affects Steps |
|-------------|--------------|---------------|
| vercel.json | `git log -1 --format=%ci -- vercel.json` | Deploy, Rollback |
| db/schema.ts | `git log -1 --format=%ci -- db/schema.ts` | Migration |
| .github/workflows/deploy.yml | `git log -1 --format=%ci -- .github/workflows/deploy.yml` | CI |

If any config was modified after "Last verified" date, review affected steps.

---

## Pre-Deployment Checklist
- [ ] All PRs merged to main
- [ ] CI passing on main branch
- [ ] Database migrations tested in staging
- [ ] Rollback plan confirmed
- [ ] On-call engineer notified

## Step 1: Verify CI Status (2 min)

Check latest CI run

gh run list --branch main --limit 3

Verify specific run

gh run view <run-id>


VERIFY: Latest run shows green checkmark. If red, do not proceed.

## Step 2: Apply Database Migrations (5 min)

Staging first

DATABASE_URL=$STAGING_DB_URL pnpm db:migrate

Verify migration applied

DATABASE_URL=$STAGING_DB_URL pnpm db:migrate status


VERIFY: Output shows "All migrations applied" with today's date.

Production (only after staging verification)

DATABASE_URL=$PROD_DB_URL pnpm db:migrate


VERIFY: Same output as staging. If error, see Rollback section.

WARNING: For migrations on tables with >1M rows, schedule during low-traffic window and monitor lock wait times.

## Step 3: Deploy to Production (5 min)

Option A: Git push triggers deployment

git push origin main

Option B: Manual trigger

vercel --prod

or: fly deploy

or: kubectl apply -f k8s/deployment.yaml


VERIFY: Deployment dashboard shows new version in progress. Note the deployment URL/ID for rollback.

## Step 4: Smoke Test (5 min)

Health check

curl -sf https://myapp.com/api/health | jq .

Critical user path

curl -sf https://myapp.com/api/v1/me \ -H "Authorization: Bearer $TEST_TOKEN" | jq '.id'

Check error rate (wait 2 minutes for data)

Dashboard: [link to monitoring dashboard]


VERIFY:
- Health returns `{"status": "ok", "db": "connected"}`
- User endpoint returns a valid user ID
- Error rate < 1% on monitoring dashboard

## Step 5: Monitor (10 min)

Watch these metrics for 10 minutes after deployment:
- Error rate: < 1% (dashboard: [link])
- P95 latency: < 200ms (dashboard: [link])
- Active DB connections: < 80% of max (query below)

psql $PROD_DB_URL -c "SELECT count(*) FROM pg_stat_activity;"


VERIFY: All metrics within normal range. If any spike, proceed to Rollback.

---

## Rollback

If smoke tests fail or metrics degrade:

Instant rollback via Vercel

vercel rollback [previous-deployment-url]

or Fly.io

fly releases --app myapp fly deploy --image [previous-image]

or Kubernetes

kubectl rollout undo deployment/myapp

Database rollback (ONLY if migration was applied in this deploy)

DATABASE_URL=$PROD_DB_URL pnpm db:rollback


VERIFY: Previous version serving traffic. Run smoke tests again.

---

## Escalation

| Level | Who | When | Contact |
|-------|-----|------|---------|
| L1 | On-call engineer | First responder | PagerDuty rotation |
| L2 | Platform lead | DB issues, rollback failures | Slack: @platform-lead |
| L3 | VP Engineering | Production down > 30 min | Phone: [number] |

Incident Response Runbook Template

# Incident Response Runbook

**Severity:** P1 (down), P2 (degraded), P3 (minor)
**Estimated time:** P1: 30-60 min, P2: 1-4 hours, P3: next business day

---

## Phase 1: Triage (5 min)

### Confirm the Incident

Is the app responding?

curl -sw "%{http_code}" https://myapp.com/api/health -o /dev/null

Check for errors in recent logs

vercel logs --since=15m | grep -i "error\|exception\|5[0-9][0-9]"

or: kubectl logs -l app=myapp --since=15m | grep -i error


VERIFY: 200 = app is up. 5xx or timeout = incident confirmed.

### Declare Severity

| Condition | Severity | Action |
|-----------|----------|--------|
| Site completely unreachable | P1 | Page L2/L3 immediately |
| Partial degradation or slow | P2 | Notify team channel |
| Single feature broken | P3 | Create ticket, fix in business hours |

### Communicate

Post to incident channel (adjust for your tool)

Slack: #incidents "INCIDENT: [severity] — [brief description]. Investigating. Updates every 15 min."


## Phase 2: Diagnose (10-15 min)

### Check Recent Changes

Was something just deployed?

vercel ls --limit 5

or: kubectl rollout history deployment/myapp

Recent commits

git log --oneline -10


### Check Database

Active queries (look for long-running or blocked queries)

psql $PROD_DB_URL -c " SELECT pid, now() - query_start AS duration, state, query FROM pg_stat_activity WHERE state != 'idle' ORDER

Compartilhar X LinkedIn