CI/CD Playbook Skill

Write a CI/CD pipeline playbook for a service or team.

CI/CD Playbook Skill — The Skill Playground: pick the Executive Update skill, fill in a few notes, hit run, and watch a structured executive… (from the mohitagw15856/pm-claude-skills README)

From the mohitagw15856/pm-claude-skills README — shows the whole collection, not only this skill. · view on GitHub

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/cicd-playbook.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit mohitagw15856/pm-claude-skills/skills/cicd-playbook#main ~/.claude/skills/cicd-playbook

For one project only, change the path to .claude/skills/cicd-playbook.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. 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.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of CI/CD Playbook Skill

Show the full text310 lines
namedescription
cicd-playbookWrite 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 install locally before pushing]
  • [e.g. Lint rule violation — run npm run lint --fix to 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:

  1. Check if a fix is available — upgrade the dependency
  2. If no fix available, open a security ticket and add a suppression with justification
  3. 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:

  1. Create a post-deploy incident report (see [incident-postmortem skill])
  2. Do not re-deploy the same commit without fixing the root cause
  3. 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:

  1. [Step 1]
  2. [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---
2name: cicd-playbook
3description: "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 
8Produce 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 
10A 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 
14Ask 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:**
1341. Check if a fix is available — upgrade the dependency
1352. If no fix available, open a security ticket and add a suppression with justification
1363. 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```bash
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:**
2561. Create a post-deploy incident report (see [incident-postmortem skill])
2572. Do not re-deploy the same commit without fixing the root cause
2583. 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:**
2661. [Step 1]
2672. [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

Alternatives

Also in CI/CD & releasesSee all 533 in Development →