CI/CD Playbook Skill
Write a CI/CD pipeline playbook for a service or team.
How to use it
Claude Code
- Run the line below. It pulls the whole folder into
~/.claude/skills/cicd-playbook. - Describe your job in plain words. Claude Code follows the skill from there.
npx degit mohitagw15856/pm-claude-skills/skills/cicd-playbook#main ~/.claude/skills/cicd-playbookFor one project only, change the path to .claude/skills/cicd-playbook.
Claude (web or desktop app)
- On this page open ⋯ → Download .md.
- Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
- Pick the file and Save. Claude shows the name and description and runs a security scan.
- Check the skill is switched on.
- Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
- ChatGPT: make a Project and paste it into Instructions.
- Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Source of CI/CD Playbook Skill
Show the full text310 lines
| name | description |
|---|---|
| cicd-playbook | Write a CI/CD pipeline playbook for a service or team. Use when asked to document a CI/CD pipeline, write a deployment process, define release gates, document build and test stages, or create a deployment guide. Produces a structured playbook covering pipeline stages, environment definitions, deployment gates, rollback procedures, and on-call responsibilities. |
CI/CD Playbook Skill
Produce a complete, actionable CI/CD playbook for a service or team — covering everything a new engineer needs to understand, contribute to, and operate the pipeline safely.
A good playbook is not a diagram. It is a document that answers: what runs, when, why, who owns it, and what to do when it breaks.
Required Inputs
Ask for these if not already provided:
- Service name and brief description
- Tech stack — language, framework, containerisation (Docker, etc.)
- Source control — GitHub / GitLab / Bitbucket, branching strategy
- CI platform — GitHub Actions / CircleCI / Jenkins / BuildKite / other
- CD platform / deployment target — Kubernetes, ECS, Lambda, Heroku, VMs, etc.
- Environments — e.g. dev, staging, production (and any canary / feature environments)
- Deployment frequency — how often does the team ship?
- Any existing gates — manual approvals, smoke tests, feature flags
- On-call setup — who's responsible during deploys?
Output Format
CI/CD Playbook: [Service Name]
Service: [Name] | Team: [Team name] Last updated: [Date] | Owner: [Name / role] Pipeline platform: [CI tool] → [CD tool / platform]
Overview
[2–3 sentences describing what this service does and why the CI/CD pipeline is structured the way it is. Include the deployment target and how frequently the team ships.]
Deployment frequency: [Multiple times per day / Daily / Weekly / On-demand] Average pipeline duration: [X minutes] Rollback time (p95): [X minutes]
Pipeline Stages
[Branch push]
│
▼
[1. Build & Lint] ──fail──▶ ❌ Block PR
│
▼
[2. Unit Tests] ──fail──▶ ❌ Block PR
│
▼
[3. Integration Tests] ──fail──▶ ❌ Block PR
│
▼
[4. Security Scan] ──fail──▶ ⚠️ [Block / Warn — specify]
│
▼
[5. Build Artefact / Container Image]
│
▼
[6. Deploy to Staging] ──fail──▶ ❌ Block promotion
│
▼
[7. Smoke Tests (Staging)]
│
▼
[8. Manual Approval Gate] ──(if required)
│
▼
[9. Deploy to Production] ──fail──▶ 🔁 Auto-rollback (if configured)
│
▼
[10. Post-deploy checks]
Stage Definitions
Stage 1 — Build & Lint
What runs: [Build command] + [Linter — e.g. ESLint, golangci-lint, flake8] Trigger: Every commit to any branch Blocking: Yes — PR cannot be merged if this fails Typical duration: [X minutes] Owner if it fails: PR author
Common failure causes:
- [e.g. Missing dependency — run
npm installlocally before pushing] - [e.g. Lint rule violation — run
npm run lint --fixto auto-fix most issues]
Stage 2 — Unit Tests
What runs: [Test command — e.g. npm test, go test ./..., pytest]
Coverage gate: [X]% minimum — pipeline fails below this threshold
Trigger: Every commit
Blocking: Yes
Typical duration: [X minutes]
Coverage report: [Where to find it — e.g. uploaded to Codecov, available in CI artifacts]
Stage 3 — Integration Tests
What runs: [Test suite description — e.g. "API integration tests against a test database using Docker Compose"]
Environment: [Ephemeral test environment / shared test DB / etc.]
Trigger: Every commit to main and feature branches targeting main
Blocking: Yes
Typical duration: [X minutes]
If slow: [e.g. "Integration tests can be skipped locally with SKIP_INTEGRATION=true — never skip in CI"]
Stage 4 — Security Scan
Tools: [e.g. Snyk, Trivy, OWASP Dependency Check, Semgrep]
What it checks: [Dependency vulnerabilities / SAST / secrets detection — list what applies]
Blocking on: Critical and High severity findings
Non-blocking on: Medium and Low (flagged, not blocking)
Trigger: Every commit to main
How to handle a flagged vulnerability:
- Check if a fix is available — upgrade the dependency
- If no fix available, open a security ticket and add a suppression with justification
- Never suppress without a ticket and owner
Stage 5 — Build Artefact
What is produced: [Docker image / binary / zip — be specific]
Registry: [ECR / GCR / Docker Hub / Artifactory — URL]
Tagging convention: [service-name]:[git-sha] (also tagged :latest on main)
Trigger: Commits to main only (not feature branches)
Stage 6 — Deploy to Staging
Deployment method: [e.g. Helm upgrade / kubectl apply / ecs deploy / Terraform apply]
Staging URL: [URL]
Trigger: Automatic on successful artefact build from main
Who can deploy to staging: Any engineer (automatic)
Environment variables: Managed in [Vault / AWS SSM / GitHub Secrets / etc.] Staging is not production: [Any differences in config, scale, or data — state them here]
Stage 7 — Smoke Tests (Staging)
What runs: [Description — e.g. "10 critical path tests covering login, core API endpoints, and payment flow"] Tool: [e.g. Playwright / Postman / custom script] Pass criteria: All smoke tests pass within [X seconds] timeout Blocking: Yes — production deploy will not proceed if smoke tests fail
Smoke test suite location: [Link to test files or folder]
Stage 8 — Manual Approval Gate
Required for: [Production deploys / deploys affecting >X% of traffic / deploys to specific regions] Who can approve: [e.g. Any engineer on the team / Lead engineer / On-call engineer] Approval timeout: [e.g. 24 hours — auto-cancelled if no approval] How to approve: [GitHub Actions approve step / Slack command / other — with link]
When to withhold approval:
- Active incident in production
- Deploy is outside the deployment window (see below)
- On-call engineer has not been notified
Stage 9 — Deploy to Production
Deployment method: [Same as staging or different — specify] Deployment window: [e.g. Monday–Thursday 09:00–16:00 UTC — no deploys on Fridays or before bank holidays] Canary / progressive rollout: [Yes — X% initial traffic, full rollout after Y minutes / No — full deploy] Deployment notifications: [Slack channel — #deployments]
Who is on-call during deploy: Deploying engineer is responsible until post-deploy checks pass.
Stage 10 — Post-Deploy Checks
Automated checks (run for [X minutes] after deploy):
- Error rate: <[X]% (baseline: [Y]%)
- P99 latency: <[X]ms (baseline: [Y]ms)
- [Key business metric]: within [X]% of baseline
Where to watch: [Datadog / Grafana / CloudWatch dashboard — link]
If a check fails: See Rollback Procedure below.
Environments
| Environment | Purpose | Deploy trigger | URL | Data |
|---|---|---|---|---|
| Dev | Local development | Manual | localhost | Seeded test data |
| Staging | Pre-production validation | Automatic (main) | [URL] | Anonymised prod copy |
| Production | Live traffic | Manual approval | [URL] | Live data |
Branching Strategy
Model: [Trunk-based / GitFlow / GitHub Flow — describe briefly]
| Branch | Purpose | Who merges | Deploy target |
|---|---|---|---|
main |
Production-ready code | PR + review | Staging → Production |
feature/* |
Feature development | Author | None (CI only) |
hotfix/* |
Critical production fixes | Lead engineer | Can bypass staging gate with approval |
Hotfix process: [Describe when and how to use a hotfix branch — what level of incident justifies bypassing the standard process]
Rollback Procedure
Automated rollback: [Yes — triggered if post-deploy error rate exceeds [X]% / No — manual only]
Manual rollback steps:
# 1. Identify the last known good image tag
[command to list recent deployments]
# 2. Deploy the previous version
[deployment command with previous tag]
# 3. Confirm rollback is live
[smoke test command or health check URL]
# 4. Notify the team
[Slack command or template]
Rollback decision authority: Any engineer on-call can initiate a rollback without waiting for approval.
After a rollback:
- Create a post-deploy incident report (see [incident-postmortem skill])
- Do not re-deploy the same commit without fixing the root cause
- Notify [stakeholder / support team] of the rollback and expected fix timeline
Secrets and Configuration Management
Secret store: [Vault / AWS SSM / GitHub Secrets / Doppler — specify] How to add a new secret:
- [Step 1]
- [Step 2] Who has access: [Role or team] Rotation policy: [How often secrets are rotated and who owns it]
Never do: Commit secrets to source control, even in .env files. The pipeline includes secret scanning (Stage 4) which will flag this.
Common Failures and Fixes
| Failure | Likely cause | Fix |
|---|---|---|
| Build fails with "module not found" | Dependency not installed | Run [install command] and commit lock file |
| Integration tests timeout | Test DB not seeded / external service down | Check [service] status; re-run pipeline |
| Smoke tests fail after staging deploy | Environment variable missing | Check [config location]; compare staging and prod env vars |
| Production deploy stuck at approval | Approver not notified | Tag @[on-call handle] in #deployments |
| Post-deploy error rate spike | Bad deploy / upstream dependency | Check [dashboard]; initiate rollback if >5 min |
On-Call Responsibilities During Deploy
- The deploying engineer is responsible for monitoring post-deploy checks for [X minutes] after a production deploy
- If you cannot monitor after deploying, hand off explicitly to another engineer in
#deployments - For deploys outside business hours: only hotfixes — always page the on-call engineer before deploying
Anti-Patterns
- Do not describe a rollback procedure that has never been tested — a theoretical rollback is not a rollback plan; test it in staging before production
- Do not allow deploys on Fridays or before holidays without an explicit on-call engineer who will monitor through the weekend
- Do not commit secrets to source control even in non-production branches — secret scanning in the pipeline catches this, but prevention is the standard
- Do not skip post-deploy monitoring after a production deploy — the deploying engineer must watch error rates and latency for the specified observation window
- Do not suppress a security scan finding without a linked ticket and a named owner — suppressions without accountability accumulate into unmanaged risk
Quality Checks
- Every stage has a clear owner when it fails
- Rollback procedure is tested — not theoretical
- Secrets management section names the actual tool used (not "use secrets management")
- Deployment window is specific — not "during business hours"
- Post-deploy check thresholds are calibrated to actual baseline metrics
| 1 | |
| 2 | name cicd-playbook |
| 3 | description "Write a CI/CD pipeline playbook for a service or team. Use when asked to document a CI/CD pipeline, write a deployment process, define release gates, document build and test stages, or create a deployment guide. Produces a structured playbook covering pipeline stages, environment definitions, deployment gates, rollback procedures, and on-call responsibilities." |
| 4 | |
| 5 | |
| 6 | # CI/CD Playbook Skill |
| 7 | |
| 8 | Produce a complete, actionable CI/CD playbook for a service or team — covering everything a new engineer needs to understand, contribute to, and operate the pipeline safely. |
| 9 | |
| 10 | A good playbook is not a diagram. It is a document that answers: what runs, when, why, who owns it, and what to do when it breaks. |
| 11 | |
| 12 | ## Required Inputs |
| 13 | |
| 14 | Ask for these if not already provided: |
| 15 | **Service name** and brief description |
| 16 | **Tech stack** — language, framework, containerisation (Docker, etc.) |
| 17 | **Source control** — GitHub / GitLab / Bitbucket, branching strategy |
| 18 | **CI platform** — GitHub Actions / CircleCI / Jenkins / BuildKite / other |
| 19 | **CD platform / deployment target** — Kubernetes, ECS, Lambda, Heroku, VMs, etc. |
| 20 | **Environments** — e.g. dev, staging, production (and any canary / feature environments) |
| 21 | **Deployment frequency** — how often does the team ship? |
| 22 | **Any existing gates** — manual approvals, smoke tests, feature flags |
| 23 | **On-call setup** — who's responsible during deploys? |
| 24 | |
| 25 | ## Output Format |
| 26 | |
| 27 | |
| 28 | |
| 29 | # CI/CD Playbook: [Service Name] |
| 30 | |
| 31 | **Service:** [Name] | **Team:** [Team name] |
| 32 | **Last updated:** [Date] | **Owner:** [Name / role] |
| 33 | **Pipeline platform:** [CI tool] → [CD tool / platform] |
| 34 | |
| 35 | |
| 36 | |
| 37 | ## Overview |
| 38 | |
| 39 | [2–3 sentences describing what this service does and why the CI/CD pipeline is structured the way it is. Include the deployment target and how frequently the team ships.] |
| 40 | |
| 41 | **Deployment frequency:** [Multiple times per day / Daily / Weekly / On-demand] |
| 42 | **Average pipeline duration:** [X minutes] |
| 43 | **Rollback time (p95):** [X minutes] |
| 44 | |
| 45 | |
| 46 | |
| 47 | ## Pipeline Stages |
| 48 | |
| 49 | |
| 50 | [Branch push] |
| 51 | │ |
| 52 | ▼ |
| 53 | [1. Build & Lint] ──fail──▶ ❌ Block PR |
| 54 | │ |
| 55 | ▼ |
| 56 | [2. Unit Tests] ──fail──▶ ❌ Block PR |
| 57 | │ |
| 58 | ▼ |
| 59 | [3. Integration Tests] ──fail──▶ ❌ Block PR |
| 60 | │ |
| 61 | ▼ |
| 62 | [4. Security Scan] ──fail──▶ ⚠️ [Block / Warn — specify] |
| 63 | │ |
| 64 | ▼ |
| 65 | [5. Build Artefact / Container Image] |
| 66 | │ |
| 67 | ▼ |
| 68 | [6. Deploy to Staging] ──fail──▶ ❌ Block promotion |
| 69 | │ |
| 70 | ▼ |
| 71 | [7. Smoke Tests (Staging)] |
| 72 | │ |
| 73 | ▼ |
| 74 | [8. Manual Approval Gate] ──(if required) |
| 75 | │ |
| 76 | ▼ |
| 77 | [9. Deploy to Production] ──fail──▶ 🔁 Auto-rollback (if configured) |
| 78 | │ |
| 79 | ▼ |
| 80 | [10. Post-deploy checks] |
| 81 | |
| 82 | |
| 83 | |
| 84 | |
| 85 | ## Stage Definitions |
| 86 | |
| 87 | ### Stage 1 — Build & Lint |
| 88 | |
| 89 | **What runs:** [Build command] + [Linter — e.g. ESLint, golangci-lint, flake8] |
| 90 | **Trigger:** Every commit to any branch |
| 91 | **Blocking:** Yes — PR cannot be merged if this fails |
| 92 | **Typical duration:** [X minutes] |
| 93 | **Owner if it fails:** PR author |
| 94 | |
| 95 | **Common failure causes:** |
| 96 | [e.g. Missing dependency — run `npm install` locally before pushing] |
| 97 | [e.g. Lint rule violation — run `npm run lint --fix` to auto-fix most issues] |
| 98 | |
| 99 | |
| 100 | |
| 101 | ### Stage 2 — Unit Tests |
| 102 | |
| 103 | **What runs:** [Test command — e.g. `npm test`, `go test ./...`, `pytest`] |
| 104 | **Coverage gate:** [X]% minimum — pipeline fails below this threshold |
| 105 | **Trigger:** Every commit |
| 106 | **Blocking:** Yes |
| 107 | **Typical duration:** [X minutes] |
| 108 | |
| 109 | **Coverage report:** [Where to find it — e.g. uploaded to Codecov, available in CI artifacts] |
| 110 | |
| 111 | |
| 112 | |
| 113 | ### Stage 3 — Integration Tests |
| 114 | |
| 115 | **What runs:** [Test suite description — e.g. "API integration tests against a test database using Docker Compose"] |
| 116 | **Environment:** [Ephemeral test environment / shared test DB / etc.] |
| 117 | **Trigger:** Every commit to `main` and feature branches targeting `main` |
| 118 | **Blocking:** Yes |
| 119 | **Typical duration:** [X minutes] |
| 120 | |
| 121 | **If slow:** [e.g. "Integration tests can be skipped locally with `SKIP_INTEGRATION=true` — never skip in CI"] |
| 122 | |
| 123 | |
| 124 | |
| 125 | ### Stage 4 — Security Scan |
| 126 | |
| 127 | **Tools:** [e.g. Snyk, Trivy, OWASP Dependency Check, Semgrep] |
| 128 | **What it checks:** [Dependency vulnerabilities / SAST / secrets detection — list what applies] |
| 129 | **Blocking on:** Critical and High severity findings |
| 130 | **Non-blocking on:** Medium and Low (flagged, not blocking) |
| 131 | **Trigger:** Every commit to `main` |
| 132 | |
| 133 | **How to handle a flagged vulnerability:** |
| 134 | Check if a fix is available — upgrade the dependency |
| 135 | If no fix available, open a security ticket and add a suppression with justification |
| 136 | Never suppress without a ticket and owner |
| 137 | |
| 138 | |
| 139 | |
| 140 | ### Stage 5 — Build Artefact |
| 141 | |
| 142 | **What is produced:** [Docker image / binary / zip — be specific] |
| 143 | **Registry:** [ECR / GCR / Docker Hub / Artifactory — URL] |
| 144 | **Tagging convention:** `[service-name]:[git-sha]` (also tagged `:latest` on `main`) |
| 145 | **Trigger:** Commits to `main` only (not feature branches) |
| 146 | |
| 147 | |
| 148 | |
| 149 | ### Stage 6 — Deploy to Staging |
| 150 | |
| 151 | **Deployment method:** [e.g. Helm upgrade / kubectl apply / ecs deploy / Terraform apply] |
| 152 | **Staging URL:** [URL] |
| 153 | **Trigger:** Automatic on successful artefact build from `main` |
| 154 | **Who can deploy to staging:** Any engineer (automatic) |
| 155 | |
| 156 | **Environment variables:** Managed in [Vault / AWS SSM / GitHub Secrets / etc.] |
| 157 | **Staging is not production:** [Any differences in config, scale, or data — state them here] |
| 158 | |
| 159 | |
| 160 | |
| 161 | ### Stage 7 — Smoke Tests (Staging) |
| 162 | |
| 163 | **What runs:** [Description — e.g. "10 critical path tests covering login, core API endpoints, and payment flow"] |
| 164 | **Tool:** [e.g. Playwright / Postman / custom script] |
| 165 | **Pass criteria:** All smoke tests pass within [X seconds] timeout |
| 166 | **Blocking:** Yes — production deploy will not proceed if smoke tests fail |
| 167 | |
| 168 | **Smoke test suite location:** [Link to test files or folder] |
| 169 | |
| 170 | |
| 171 | |
| 172 | ### Stage 8 — Manual Approval Gate |
| 173 | |
| 174 | **Required for:** [Production deploys / deploys affecting >X% of traffic / deploys to specific regions] |
| 175 | **Who can approve:** [e.g. Any engineer on the team / Lead engineer / On-call engineer] |
| 176 | **Approval timeout:** [e.g. 24 hours — auto-cancelled if no approval] |
| 177 | **How to approve:** [GitHub Actions approve step / Slack command / other — with link] |
| 178 | |
| 179 | **When to withhold approval:** |
| 180 | Active incident in production |
| 181 | Deploy is outside the deployment window (see below) |
| 182 | On-call engineer has not been notified |
| 183 | |
| 184 | |
| 185 | |
| 186 | ### Stage 9 — Deploy to Production |
| 187 | |
| 188 | **Deployment method:** [Same as staging or different — specify] |
| 189 | **Deployment window:** [e.g. Monday–Thursday 09:00–16:00 UTC — no deploys on Fridays or before bank holidays] |
| 190 | **Canary / progressive rollout:** [Yes — X% initial traffic, full rollout after Y minutes / No — full deploy] |
| 191 | **Deployment notifications:** [Slack channel — #deployments] |
| 192 | |
| 193 | **Who is on-call during deploy:** Deploying engineer is responsible until post-deploy checks pass. |
| 194 | |
| 195 | |
| 196 | |
| 197 | ### Stage 10 — Post-Deploy Checks |
| 198 | |
| 199 | **Automated checks (run for [X minutes] after deploy):** |
| 200 | [ ] Error rate: <[X]% (baseline: [Y]%) |
| 201 | [ ] P99 latency: <[X]ms (baseline: [Y]ms) |
| 202 | [ ] [Key business metric]: within [X]% of baseline |
| 203 | |
| 204 | **Where to watch:** [Datadog / Grafana / CloudWatch dashboard — link] |
| 205 | |
| 206 | **If a check fails:** See Rollback Procedure below. |
| 207 | |
| 208 | |
| 209 | |
| 210 | ## Environments |
| 211 | |
| 212 | | Environment | Purpose | Deploy trigger | URL | Data | |
| 213 | |---|---|---|---|---| |
| 214 | | **Dev** | Local development | Manual | localhost | Seeded test data | |
| 215 | | **Staging** | Pre-production validation | Automatic (main) | [URL] | Anonymised prod copy | |
| 216 | | **Production** | Live traffic | Manual approval | [URL] | Live data | |
| 217 | |
| 218 | |
| 219 | |
| 220 | ## Branching Strategy |
| 221 | |
| 222 | **Model:** [Trunk-based / GitFlow / GitHub Flow — describe briefly] |
| 223 | |
| 224 | | Branch | Purpose | Who merges | Deploy target | |
| 225 | |---|---|---|---| |
| 226 | | `main` | Production-ready code | PR + review | Staging → Production | |
| 227 | | `feature/*` | Feature development | Author | None (CI only) | |
| 228 | | `hotfix/*` | Critical production fixes | Lead engineer | Can bypass staging gate with approval | |
| 229 | |
| 230 | **Hotfix process:** [Describe when and how to use a hotfix branch — what level of incident justifies bypassing the standard process] |
| 231 | |
| 232 | |
| 233 | |
| 234 | ## Rollback Procedure |
| 235 | |
| 236 | **Automated rollback:** [Yes — triggered if post-deploy error rate exceeds [X]% / No — manual only] |
| 237 | |
| 238 | **Manual rollback steps:** |
| 239 | |
| 240 | # 1. Identify the last known good image tag |
| 241 | [command to list recent deployments] |
| 242 | |
| 243 | # 2. Deploy the previous version |
| 244 | [deployment command with previous tag] |
| 245 | |
| 246 | # 3. Confirm rollback is live |
| 247 | [smoke test command or health check URL] |
| 248 | |
| 249 | # 4. Notify the team |
| 250 | [Slack command or template] |
| 251 | |
| 252 | |
| 253 | **Rollback decision authority:** Any engineer on-call can initiate a rollback without waiting for approval. |
| 254 | |
| 255 | **After a rollback:** |
| 256 | Create a post-deploy incident report (see [incident-postmortem skill]) |
| 257 | Do not re-deploy the same commit without fixing the root cause |
| 258 | Notify [stakeholder / support team] of the rollback and expected fix timeline |
| 259 | |
| 260 | |
| 261 | |
| 262 | ## Secrets and Configuration Management |
| 263 | |
| 264 | **Secret store:** [Vault / AWS SSM / GitHub Secrets / Doppler — specify] |
| 265 | **How to add a new secret:** |
| 266 | [Step 1] |
| 267 | [Step 2] |
| 268 | **Who has access:** [Role or team] |
| 269 | **Rotation policy:** [How often secrets are rotated and who owns it] |
| 270 | |
| 271 | **Never do:** Commit secrets to source control, even in `.env` files. The pipeline includes secret scanning (Stage 4) which will flag this. |
| 272 | |
| 273 | |
| 274 | |
| 275 | ## Common Failures and Fixes |
| 276 | |
| 277 | | Failure | Likely cause | Fix | |
| 278 | |---|---|---| |
| 279 | | Build fails with "module not found" | Dependency not installed | Run `[install command]` and commit `lock file` | |
| 280 | | Integration tests timeout | Test DB not seeded / external service down | Check [service] status; re-run pipeline | |
| 281 | | Smoke tests fail after staging deploy | Environment variable missing | Check [config location]; compare staging and prod env vars | |
| 282 | | Production deploy stuck at approval | Approver not notified | Tag `@[on-call handle]` in `#deployments` | |
| 283 | | Post-deploy error rate spike | Bad deploy / upstream dependency | Check [dashboard]; initiate rollback if >5 min | |
| 284 | |
| 285 | |
| 286 | |
| 287 | ## On-Call Responsibilities During Deploy |
| 288 | |
| 289 | The deploying engineer is responsible for monitoring post-deploy checks for [X minutes] after a production deploy |
| 290 | If you cannot monitor after deploying, hand off explicitly to another engineer in `#deployments` |
| 291 | For deploys outside business hours: only hotfixes — always page the on-call engineer before deploying |
| 292 | |
| 293 | |
| 294 | |
| 295 | ## Anti-Patterns |
| 296 | |
| 297 | [ ] Do not describe a rollback procedure that has never been tested — a theoretical rollback is not a rollback plan; test it in staging before production |
| 298 | [ ] Do not allow deploys on Fridays or before holidays without an explicit on-call engineer who will monitor through the weekend |
| 299 | [ ] Do not commit secrets to source control even in non-production branches — secret scanning in the pipeline catches this, but prevention is the standard |
| 300 | [ ] Do not skip post-deploy monitoring after a production deploy — the deploying engineer must watch error rates and latency for the specified observation window |
| 301 | [ ] Do not suppress a security scan finding without a linked ticket and a named owner — suppressions without accountability accumulate into unmanaged risk |
| 302 | |
| 303 | ## Quality Checks |
| 304 | |
| 305 | [ ] Every stage has a clear owner when it fails |
| 306 | [ ] Rollback procedure is tested — not theoretical |
| 307 | [ ] Secrets management section names the actual tool used (not "use secrets management") |
| 308 | [ ] Deployment window is specific — not "during business hours" |
| 309 | [ ] Post-deploy check thresholds are calibrated to actual baseline metrics |
| 310 |
Discussion
Browse more free Claude skills or everything in Development.


