deployment-automation · diff
v2.0.0 to v2.1.0
133 added, 328 removed. Audit A to A.
---
name: deployment-automation
description: >
- Plan and execute hosted deployment and rollout automation for web, backend, and
- fullstack systems: preview/staging/prod promotion, release verification,
- rollback planning, provider handoff, and deployment runbooks. Use when the main
- job is shipping a built artifact or service safely to an environment, choosing a
- rollout strategy, or tightening deploy/release steps around health checks and
- promotion rules. Triggers on: deployment automation, deploy pipeline, release
- rollout, staging to prod, preview environment, canary, blue-green, rollback,
- post-deploy verification, and release promotion. Route CI workflow authoring to
- `workflow-automation`, machine/runtime setup to `system-environment-setup`,
- ongoing dashboards/alerts to `monitoring-observability`, and Vercel-specific
- operations to `vercel-deploy`.
+ Plan and review release execution for web, backend, and fullstack systems:
+ preview releases, staging-to-production promotion, rollout strategy, post-deploy
+ verification, rollback response, and release-hardening checklists. Use when the
+ system can already build and the main job is shipping or recovering a release
+ safely, choosing between preview / promotion / canary / rollback paths, or
+ tightening deploy gates around health checks and sign-off. Route CI workflow
+ authoring to `workflow-automation`, machine/runtime setup to
+ `system-environment-setup`, long-lived telemetry design to
+ `monitoring-observability`, and Vercel-specific operations to `vercel-deploy`.
allowed-tools: Read Write Edit Glob Grep
compatibility: >
Best for repositories or delivery workflows where the system can already build
- and the main problem is safely promoting, deploying, verifying, or rolling back
- a release across preview, staging, and production environments.
+ and the main problem is safe release execution, promotion, verification, or
+ rollback across preview, staging, and production environments.
license: MIT
metadata:
tags: deployment, release-rollout, preview-environments, rollback, progressive-delivery, post-deploy-verification, devops
platforms: Claude, ChatGPT, Gemini, Codex
- version: "2.0.0"
- modernization: 2026-04-13
+ version: "2.1.0"
+ modernization: 2026-04-16
source: akillness/oh-my-skills
---
# Deployment Automation
- Use this skill when the main job is **getting an already-buildable system safely into an environment and proving the rollout worked**.
+ Use this skill when the job is **safe release execution after the system is already buildable**.
- `deployment-automation` is the infrastructure/dev-workflow anchor for:
- - preview, staging, and production deployment flows
- - release promotion and environment gates
+ `deployment-automation` is the repo's release-execution anchor for:
+ - preview releases and shareable review environments
+ - staging → production promotion and sign-off gates
- rollout strategy choice: replace, rolling, blue-green, canary, progressive
- - deployment preflight and post-deploy verification
- - rollback planning and bad-release containment
- - provider handoff across static hosts, container PaaS, Kubernetes, and generic CI-driven deploy paths
+ - post-deploy verification and stop conditions
+ - rollback response and bad-release containment
+ - release-hardening packets around an existing deploy path
- Read these support docs before choosing the mode or boundary:
+ Read these support docs before deciding the packet:
- [references/deployment-modes-and-boundaries.md](references/deployment-modes-and-boundaries.md)
+ - [references/release-packet-templates.md](references/release-packet-templates.md)
+ - [references/strategy-selection-and-stop-conditions.md](references/strategy-selection-and-stop-conditions.md)
- [references/rollout-and-rollback-checklist.md](references/rollout-and-rollback-checklist.md)
- [references/platform-routing-notes.md](references/platform-routing-notes.md)
## When to use this skill
- - A team needs a safe deploy/runbook path for preview, staging, or production
- - A release flow needs preflight checks, promotion gates, smoke checks, and rollback rules
- - The question is whether to use direct deploy, rolling, blue-green, canary, or progressive delivery
- - A project already has buildable artifacts, but release execution is still a mix of tribal knowledge and shell history
- - The deploy path needs clearer separation between preview deploys, staging promotion, and production rollout
- - A deployment failed and the next job is to verify, stop, or roll back rather than redesign the whole observability stack
- - The user needs a vendor-neutral release packet before using Vercel, Render, Fly.io, Kubernetes, or a CI-driven provider path
+ - A preview or branch deployment exists, but nobody agrees what it is supposed to prove before merge.
+ - A release already works mechanically, but staging/prod promotion still depends on tribal knowledge.
+ - The main decision is rollout strategy, release gates, verification depth, or rollback readiness.
+ - A deploy failed and the next job is containment, rollback, and safe recovery rather than broad platform redesign.
+ - The team needs a vendor-neutral release packet before using a platform-specific operator skill.
+ - You need to tighten an existing deploy path with preflight checks, sign-off logic, and explicit stop conditions.
## When not to use this skill
- - **The main job is authoring or refactoring GitHub Actions / GitLab / Jenkins / Buildkite workflows, task runners, or repo-local release glue** → use `workflow-automation`
- - **The main job is installing CLIs, Docker, kubectl, cloud SDKs, auth bootstrap, or making the machine runnable** → use `system-environment-setup`
- - **The main job is long-lived dashboards, alerts, traces, metrics, log pipelines, or incident telemetry architecture** → use `monitoring-observability`
- - **The main job is Vercel-specific project linking, domains, aliases, or Vercel environment settings** → use `vercel-deploy`
- - **The main job is secret rotation, IAM policy, supply-chain hardening, or compliance evidence design** → route to the relevant security skill
- - **The system cannot even build or package successfully yet** → fix build/test/setup problems before reopening deployment automation
+ - **The main job is writing or refactoring GitHub Actions / GitLab / Jenkins / Buildkite workflows** → `workflow-automation`
+ - **The main job is installing Docker, kubectl, cloud CLIs, auth bootstrap, or making the machine runnable** → `system-environment-setup`
+ - **The main job is dashboards, alerts, traces, or long-lived telemetry architecture** → `monitoring-observability`
+ - **The main job is Vercel-specific linking, domains, aliases, environment variables, or claim URLs** → `vercel-deploy`
+ - **The system cannot build, package, or run tests yet** → fix build/setup problems before reopening deployment automation
+ - **The main job is secret rotation, IAM policy, signing, or compliance architecture** → route to the relevant security skill
## Instructions
- ### Step 1: Classify the deployment job before touching commands
- Normalize the request into one primary mode.
+ ### Step 1: Freeze the release profile
+ Normalize the request before suggesting steps.
```yaml
- deployment_mode:
- primary_mode: preview-release | environment-promotion | container-paas | kubernetes-rollout | rollback-response | release-hardening
+ release_profile:
+ mode: preview-release | environment-promotion | container-paas-rollout | kubernetes-rollout | rollback-response | release-hardening
runtime_shape: static-frontend | web-app | api-service | worker-job | multi-service | unknown
artifact_shape: platform-build | image | build-output | package | unknown
target_environment: preview | staging | production | mixed | unknown
- promotion_model: direct-deploy | same-artifact-promotion | rebuild-per-env | unknown
- rollout_strategy: replace | rolling | blue-green | canary | progressive | unknown
+ promotion_model: same-artifact-promotion | rebuild-per-env | direct-deploy | unknown
+ rollout_strategy: replace | rolling | blue-green | canary | progressive | feature-flag-assisted | unknown
stateful_risk: low | medium | high | unknown
verification_depth: health-only | smoke-tests | release-checklist | automated-analysis | unknown
```
- Choose exactly one primary mode per run:
- - `preview-release` → branch/PR deploys, preview URLs, and pre-merge verification
- - `environment-promotion` → staging → production or multi-env promotion with gates
- - `container-paas` → Render/Fly/railway-style or generic image/container-based releases
- - `kubernetes-rollout` → deployments driven by Helm/Kustomize/Argo/Kubernetes rollout mechanics
- - `rollback-response` → contain a bad deploy, restore service, and document the next safe action
- - `release-hardening` → add missing preflight, approvals, smoke tests, or release packet structure around an existing deploy path
-
- ### Step 2: Confirm the real source of truth and boundary skills
- Before prescribing steps, answer these questions:
- 1. What artifact is actually being shipped: platform build, image, bundle, or unknown?
- 2. Which environment is in scope right now: preview, staging, or production?
- 3. Is the same artifact promoted across environments, or rebuilt per env?
- 4. What is the rollback method: redeploy prior artifact, traffic switchback, platform rollback, or manual recovery?
- 5. Which neighboring skill really owns the unsolved part?
-
- Quick route-out table:
-
- | If the request sounds like... | Use |
- |---|---|
- | "Set up or rewrite the deploy workflow YAML / task runner / release scripts" | `workflow-automation` |
- | "Install Docker / kubectl / cloud CLI / authenticate this machine" | `system-environment-setup` |
- | "Set up dashboards, alerts, traces, or SLOs" | `monitoring-observability` |
- | "Deploy this site/app specifically to Vercel" | `vercel-deploy` |
- | "Handle secret rotation, IAM scopes, signing, or compliance controls" | security skill |
- | "Pick rollout strategy, promotion gates, verification, and rollback plan" | `deployment-automation` |
-
- ### Step 3: Gather the smallest truthful evidence set
- Do not improvise a production release flow from vibes. Pull the minimum credible facts first:
- - current deploy target and provider/runtime
- - current build artifact or packaging output
- - environment names and promotion order
- - existing deploy command / platform action / release job
- - required secrets/config already expected by the release path
- - health endpoint, smoke checks, or verification commands
- - rollback capability and its limitations
- - whether database/schema changes are part of this release
-
- If these are incomplete, state the gaps and default to the smallest safe interpretation.
-
- ### Step 4: Choose the deployment mode packet
- Use the smallest packet that fits the job.
-
- #### A. Preview release
- Use when the main need is shareable verification before prod.
-
- Recommended skeleton:
- ```markdown
- # Preview Release Packet
-
- ## Target
- - Provider/runtime:
- - URL/output:
- - What reviewers should verify:
-
- ## Preconditions
- - Build/test status:
- - Required config present:
-
- ## Deploy steps
- 1. ...
- 2. ...
- 3. ...
-
- ## Verification
- - Smoke checks:
- - Visual / flow checks:
- - Promote or discard decision:
- ```
-
- #### B. Environment promotion
- Use when staging → production is the real job.
-
- Recommended skeleton:
- ```markdown
- # Environment Promotion Packet
-
- ## Artifact and environments
- - Artifact:
- - Promote from:
- - Promote to:
- - Promotion model:
-
- ## Gates
- - Required approvals:
- - Freeze/change-window notes:
- - Blocking risks:
-
- ## Verification
- - Before promote:
- - After promote:
-
- ## Rollback
- - Immediate rollback path:
- - Data/schema caveats:
- ```
-
- #### C. Container/PaaS rollout
- Use for managed app/container platforms.
-
- Recommended skeleton:
- ```markdown
- # Container/PaaS Rollout Packet
-
- ## Runtime
- - Image/build source:
- - Platform:
- - Release command:
-
- ## Release plan
- - Direct deploy or staged:
- - Release checks:
- - Rollback path:
-
- ## Handoffs
- - Provider-specific follow-up:
- - Adjacent skills if needed:
- ```
-
- #### D. Kubernetes rollout
- Use when rollout strategy and cluster behavior are central.
-
- Recommended skeleton:
- ```markdown
- # Kubernetes Rollout Packet
-
- ## Delivery surface
- - Manifest source:
- - Deployment/controller:
- - Strategy:
-
- ## Preflight
- - Image/tag:
- - Namespace/env:
- - Migration/secrets assumptions:
-
- ## Rollout
- - Apply/promote steps:
- - Health and readiness checks:
- - Stop conditions:
-
- ## Rollback
- - Previous ReplicaSet/version:
- - Traffic/data caveats:
- ```
+ Pick exactly one primary `mode` per run:
+ - `preview-release` — shareable verification before merge or promotion
+ - `environment-promotion` — staging → production or multi-env promotion with gates
+ - `container-paas-rollout` — managed app/container platform release planning
+ - `kubernetes-rollout` — rollout controller behavior, stop conditions, and rollback path
+ - `rollback-response` — bad deploy containment and recovery
+ - `release-hardening` — add missing preflight, approvals, or verification around an existing flow
- #### E. Rollback response
- Use when something already went wrong.
+ ### Step 2: Gather the smallest truthful evidence set
+ Do not invent a release flow from vibes. Capture the minimum real facts:
+ 1. What artifact is actually being shipped?
+ 2. Which environment is in scope right now?
+ 3. Is the same artifact promoted across environments, or rebuilt per environment?
+ 4. What is the current deploy command, provider action, or controller?
+ 5. What health checks, smoke checks, or sign-off signals already exist?
+ 6. What is the real rollback method?
+ 7. Are there schema/data changes that make rollback asymmetric?
- Recommended skeleton:
- ```markdown
- # Rollback Response Packet
+ If any answer is unknown, state it explicitly and default to the smallest safe interpretation.
- ## Failure signal
- - What failed:
- - Blast radius:
- - Confidence:
+ ### Step 3: Enforce boundaries early
+ Use these route-outs before generating a packet:
- ## Immediate containment
- 1. ...
- 2. ...
- 3. ...
+ | If the request is really about... | Route to |
+ |---|---|
+ | CI YAML, job graphs, reusable release workflows, task runners | `workflow-automation` |
+ | Docker/kubectl/cloud CLI installation, auth bootstrap, machine readiness | `system-environment-setup` |
+ | Dashboards, alerts, traces, log pipelines, SLO monitoring | `monitoring-observability` |
+ | Vercel project linking, aliases, domains, env vars, Vercel deploy mechanics | `vercel-deploy` |
+ | Secret rotation, IAM scope, signing, attestation, compliance evidence | security skill |
+ | Rollout choice, promotion gates, verification, rollback packet | `deployment-automation` |
- ## Recovery path
- - Redeploy previous artifact / switch traffic / disable flag:
- - Data/schema caveats:
+ ### Step 4: Load the right support packet instead of expanding the front door
+ After classification, use the matching reference packet:
+ - `preview-release` → `references/release-packet-templates.md#preview-release-packet`
+ - `environment-promotion` → `references/release-packet-templates.md#environment-promotion-packet`
+ - `container-paas-rollout` → `references/release-packet-templates.md#containerpaas-rollout-packet`
+ - `kubernetes-rollout` → `references/release-packet-templates.md#kubernetes-rollout-packet`
+ - `rollback-response` → `references/release-packet-templates.md#rollback-response-packet`
+ - `release-hardening` → `references/release-packet-templates.md#release-hardening-packet`
- ## Verification after recovery
- - Health:
- - Smoke:
- - Follow-up hardening:
- ```
+ Use `references/strategy-selection-and-stop-conditions.md` when choosing between replace / rolling / blue-green / canary / progressive paths.
+ Use `references/rollout-and-rollback-checklist.md` as the minimum release-safety checklist before finalizing.
- ### Step 5: Apply release-execution rules instead of generic DevOps advice
- Use these rules aggressively:
- - **Separate build from release.** The job is not done because a build passed.
- - **Separate deploy from release.** Feature flags, traffic shifts, and staged exposure are often safer than one big launch.
- - **Separate app rollback from data/schema rollback.** Never imply they are the same.
- - **Prefer the smallest rollout strategy that matches risk.** Do not prescribe canary/progressive delivery if the team lacks verification maturity.
+ ### Step 5: Apply release-execution rules
+ - **Separate build from release.** A passing build does not prove the release is safe.
+ - **Separate deploy from exposure.** Traffic shifts, promotion gates, and feature flags may matter more than the initial deploy command.
+ - **Separate app rollback from data rollback.** Never imply they are the same.
+ - **Prefer the smallest rollout strategy that matches the team’s verification maturity.**
- **Prefer same-artifact promotion when reproducibility matters.** If the system rebuilds per env, call out the risk explicitly.
- - **Treat verification as mandatory.** A deploy without health/smoke checks is not complete.
- - **Treat rollback as a real workflow, not a slogan.** Name the exact path and its caveats.
- - **Prefer existing project commands and platform entrypoints over invented shell theater.**
-
- ### Step 6: Choose the right strategy
- Use this ladder:
-
- #### Use direct replace when
- - the system is low-risk or non-critical
- - rollback is easy
- - downtime or small blast radius is acceptable
-
- #### Use rolling updates when
- - the runtime supports gradual replacement
- - health/readiness checks are credible
- - the goal is zero-downtime replacement without dual-stack complexity
-
- #### Use blue/green when
- - traffic switching between old/new versions is possible
- - fast rollback via traffic reversal matters
- - infra cost and environment duplication are acceptable
-
- #### Use canary/progressive delivery when
- - the release is high-risk
- - the team has trustworthy metrics or smoke checks
- - stop conditions and rollback ownership are explicit
-
- #### Use feature-flag-assisted release when
- - deployment and user-visible exposure should be decoupled
- - the code can ship dark before broad release
- - rollback by flag disable is safer than full app rollback
-
- ### Step 7: Keep deployment honest about adjacent concerns
- A strong deployment packet says what it does **not** own.
-
- Examples:
- - if the pain is creating the GitHub Actions job, route to `workflow-automation`
- - if the pain is missing CLIs/auth/local Docker setup, route to `system-environment-setup`
- - if the pain is lacking dashboards or alerts to verify rollout health, route to `monitoring-observability`
- - if the task is provider-specific Vercel operations, route to `vercel-deploy`
- - if the task is secrets/IAM/compliance, route to security-specific skills
-
- Mixed requests are common. Split them explicitly instead of letting one skill become “all DevOps.”
+ - **Verification is mandatory.** Health + one core flow is the minimum acceptable finish line.
+ - **Stop conditions beat optimism.** Name what should halt promotion or trigger rollback.
- ### Step 8: Produce the deployment automation packet
- Always return a packet another engineer or agent can execute or review.
+ ### Step 6: Produce a release packet, not a DevOps lecture
+ Your output should always include:
- Preferred format:
```markdown
- # Deployment Automation Packet
-
- ## Mode
- - Primary mode:
- - Why this mode fits:
-
- ## Target and artifact
- - Runtime/provider:
+ # Release Packet
+ - Mode:
+ - Runtime / provider:
+ - Artifact:
- Environment(s):
- - Artifact/build source:
- Promotion model:
+ - Rollout strategy:
## Preconditions
- - Build/test status:
- - Required config/auth already present:
- - Blocking risks:
+ - Existing deploy path:
+ - Required auth/config:
+ - Known blockers / migrations:
- ## Rollout steps
+ ## Steps
1. ...
2. ...
3. ...
## Verification
- Health checks:
- Smoke checks:
- - Manual sign-off if needed:
+ - Human/automatic sign-off:
+ - Stop conditions:
- ## Rollback
+ ## Rollback / recovery
- Immediate rollback path:
- - Data/schema caveats:
+ - What rollback does not undo:
## Handoffs
- - Route to neighboring skills:
- - Remaining risks:
+ - Adjacent skills or provider-specific follow-up:
```
- ### Step 9: Prefer hardening over platform sprawl
- When modernizing an existing deploy flow:
- - add missing preflight and verification before switching platforms
- - simplify environment naming and promotion order before adding more tools
- - make rollback explicit before adding progressive-delivery buzzwords
- - keep provider-specific steps in support docs or neighboring skills, not the core description
- - preserve transferable logic that works across frontend, backend, and fullstack release flows
+ ### Step 7: Prefer hardening over wrapper proliferation
+ If the request feels like “deployment is messy,” prefer:
+ 1. classify the release mode,
+ 2. name the current source of truth,
+ 3. add preflight / verification / rollback structure,
+ 4. route platform detail to the correct adjacent skill.
- ## Output format
- Always return a **deployment automation packet**, **rollout hardening brief**, or **rollback response packet**.
+ Do **not** respond by inventing another generic deployment wrapper, re-explaining all of Kubernetes, or absorbing CI authoring into this skill.
- Required qualities:
- - classify the deployment job before prescribing tools
- - name the runtime/provider and environment model explicitly
- - separate build, promotion, verification, and rollback
- - call out route-outs and scope boundaries
- - identify whether the same artifact is promoted or rebuilt per environment
- - treat verification and rollback as first-class, not optional notes
+ ## Output format
+ Return:
+ 1. chosen release mode,
+ 2. evidence gathered and unknowns,
+ 3. rollout strategy with rationale,
+ 4. verification plan,
+ 5. rollback or recovery plan,
+ 6. route-outs or remaining risks.
## Examples
- ### Example 1: Staging to production promotion
- **Input**
- > We can already deploy to staging, but production releases are still a manual checklist in Slack. What should we automate first?
+ ### Example 1: Preview deploy confusion
+ Input: "Every PR gets a preview URL, but reviewers keep approving broken flows. What should the deployment process actually require before merge?"
- **Good output direction**
- - mode: `environment-promotion`
- - keep existing build artifact, add explicit preflight and post-deploy verification
- - require approval + production health checks
- - name rollback path and data caveats
- - route workflow-YAML refactors to `workflow-automation`
+ Output shape: classify as `preview-release`, define what the preview proves, list smoke checks, and separate preview verification from later staging/prod promotion.
- ### Example 2: Preview env confusion
- **Input**
- > Every PR creates a preview site, but no one knows what to verify before merge.
+ ### Example 2: Staging to production promotion
+ Input: "We deploy to staging automatically, but production promotion is still a manual Slack ritual. Give us the safest release packet."
- **Good output direction**
- - mode: `preview-release`
- - define what preview proves and what still requires staging/prod verification
- - add a reviewer checklist and discard/promotion rule
- - route provider-specific details to `vercel-deploy` or the relevant platform skill
+ Output shape: classify as `environment-promotion`, name artifact and gates, require post-promote checks, and specify rollback plus schema caveats.
- ### Example 3: Failed production rollout
- **Input**
- > The new release is timing out in production. We need the safest rollback plan.
+ ### Example 3: Failed production deploy
+ Input: "The latest release is timing out in production and it also included a migration. We need the safest rollback plan."
- **Good output direction**
- - mode: `rollback-response`
- - identify failure signal and blast radius
- - contain first, then restore last known good version or traffic path
- - separate app rollback from data/schema recovery
- - include post-recovery verification and hardening follow-up
+ Output shape: classify as `rollback-response`, contain blast radius, separate app rollback from migration risk, and define post-recovery verification.
## Best practices
- 1. Prefer release-execution clarity over giant provider-specific command dumps.
- 2. Keep deployment, promotion, verification, and rollback as separate named stages.
- 3. Avoid pretending every team needs canary/progressive delivery; match strategy to verification maturity.
- 4. Treat stateful changes, migrations, and schema compatibility as explicit risk multipliers.
- 5. Route setup, CI authoring, monitoring architecture, and security governance outward instead of bloating this skill.
+ 1. Keep the front door about release decisions, not platform encyclopedias.
+ 2. Name the real artifact, environment, and rollback path before suggesting anything.
+ 3. Prefer short release packets that an operator can run under pressure.
+ 4. Route provider-specific and adjacent concerns out early.
+ 5. Treat verification and stop conditions as required output, not optional polish.
## References
- - [references/deployment-modes-and-boundaries.md](references/deployment-modes-and-boundaries.md)
- - [references/rollout-and-rollback-checklist.md](references/rollout-and-rollback-checklist.md)
- - [references/platform-routing-notes.md](references/platform-routing-notes.md)
+ - [Kubernetes Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)
+ - [Argo Rollouts](https://argo-rollouts.readthedocs.io/en/stable/concepts/)
+ - [Vercel Deployments](https://vercel.com/docs/deployments)