operations-deployment-checklist
About operations-deployment-checklist
A skill for checking deployment readiness before releases or configuration changes. It covers configuration, Helm and Kubernetes checks, dependencies, rollback readiness, and post-deployment verification.
Key features
- 01Scan configuration changes and variable references
- 02Cross-check values and request user confirmation
- 03Check Helm and Kubernetes readiness
- 04Review dependencies, migrations, and feature flags
- 05Check rollback plans and verify after deployment
Use cases
- 01Release a service to staging or production
- 02Change Helm values or Kubernetes manifests
- 03Add environment variables, secrets, or config map entries
- 04Adjust resource, networking, or storage settings
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ xip-online-applications/ skills --skill operations-deployment-checklistAfter installing, type/operations-deployment-checklistin Claude Code to confirm it loaded.
Details
From the project READMEoperations-deployment-checklist
Run a thorough deployment checklist before any release or configuration change reaches a cluster. Verify that all environment variables, secrets, config values, and infrastructure prerequisites are accounted for.
When to use
Use this skill when:
- Deploying a new version of a service to any environment (staging, production)
- Updating Helm values, Kubernetes manifests, or deployment configurations
- Introducing a new environment variable, secret, or config map entry in application code
- Changing infrastructure resources (replicas, resource limits, ingress rules)
- Rolling back a deployment
Instructions
Step 1: Detect configuration changes
-
Scan the diff. Compare the current changes against the deployed state. Identify any new or modified:
- Environment variables (in code,
.envfiles, Helm values, ConfigMaps, or container specs) - Secrets references
- Config map entries
- Feature flags
- Service endpoints or URLs
- Resource limits (CPU, memory)
- Volume mounts or persistent storage
- Environment variables (in code,
-
Cross-reference application code. If a new
process.env.X,$_ENV['X'],os.environ['X'], or equivalent is introduced in application code, verify it has a corresponding entry in the deployment manifests. -
Report findings. List every configuration addition or change detected. For each one, state:
- Name of the variable/secret/config
- Where it is consumed (file and line)
- Where it should be defined (Helm values, ConfigMap, Secret, etc.)
- Whether a default/fallback exists in code
Step 2: Ask the user to confirm values
For every new or changed configuration value, ask the user explicitly:
-
"Has
<VARIABLE_NAME>been set in the target environment?"- If it is a secret: "Has the secret been created/updated in the cluster's secret store?"
- If it has no default: "This variable has no fallback — the application will fail without it. Please confirm it is set."
-
"Is the value correct for this environment?" (e.g., staging URL vs. production URL)
-
"Does this value differ between environments?" If yes, confirm each environment has the correct value.
Do not proceed until the user confirms all configuration values are in place.
Step 3: Verify Helm/Kubernetes readiness
-
Helm values completeness. Verify all required values in
values.yaml(or environment-specific overrides) are populated. Flag any that are empty, commented out, or set to placeholder values likeTODO,CHANGEME,<replace>. -
Image tag. Confirm the container image tag matches the intended release version. Flag if it points to
latestin production. -
Resource limits. Verify CPU and memory requests/limits are set. Flag containers without resource limits.
-
Replicas. Confirm replica count is appropriate for the target environment. Flag single-replica deployments in production without a justification.
-
Health checks. Verify liveness and readiness probes are defined. Flag any container without them.
-
Ingress/networking. If routes changed, confirm:
- DNS records exist or are planned
- TLS certificates are provisioned
- Network policies allow required traffic
-
Persistent storage. If volumes are added or resized, confirm the storage class exists and capacity is sufficient.
Step 4: Verify dependencies and ordering
-
Database migrations. If the deployment requires schema changes:
- "Have migrations been run (or will they run automatically on startup)?"
- "Are migrations backward-compatible with the currently running version?" (for zero-downtime deployments)
-
Dependent services. If the deployment depends on another service being updated first:
- "Has
<dependency>already been deployed with the required changes?" - "Is the API contract between services compatible?"
- "Has
-
Feature flags. If new functionality is behind a flag:
- "Is the flag configured in the target environment?"
- "Should it be enabled or disabled at deploy time?"
Step 5: Verify rollback readiness
-
"Can this deployment be rolled back safely?" Check for:
- Irreversible migrations
- Breaking contract changes with upstream/downstream services
- One-way data transformations
-
"Is the previous image/version still available?" Verify the prior version tag exists in the registry.
-
"Is there a runbook or known procedure for rollback?" If not, flag it as a risk.
Step 6: Final checklist confirmation
Present a summary checklist and require explicit user sign-off:
## Deployment Checklist — <service> → <environment>
### Configuration
- [ ] All new environment variables are set in the target environment
- [ ] All secrets are created/updated in the secret store
- [ ] Values are correct for this specific environment (not copied from another)
### Kubernetes/Helm
- [ ] Image tag points to the correct release version
- [ ] Resource requests and limits are defined
- [ ] Health checks (liveness + readiness) are configured
- [ ] Replica count is appropriate for the environment
- [ ] Ingress/DNS/TLS are configured (if applicable)
### Dependencies
- [ ] Database migrations are applied or will auto-run
- [ ] Dependent services are deployed and compatible
- [ ] Feature flags are configured
### Rollback
- [ ] Deployment can be rolled back without data loss
- [ ] Previous version is available in the registry
### Sign-off
- [ ] Engineer confirms: ready to deploy
Do not proceed with deployment until every applicable item is checked or explicitly marked as not applicable with a reason.
Step 7: Post-deployment verification
After the deployment is applied:
- Monitor pod status. Verify all pods reach
Runningstate and pass readiness checks. - Check logs. Look for error-level log entries in the first 2–5 minutes.
- Smoke test. If a health endpoint or basic functionality check exists, run it.
- Alert the user if anything looks abnormal, even if pods are technically running.
Principles
- Never assume configuration is correct. Always verify explicitly.
- Err on the side of blocking. A delayed deployment is better than a broken one.
- Make the invisible visible. Surface every implicit dependency and assumption.
- One environment at a time. Never deploy to multiple environments simultaneously without explicit confirmation.