
Deployment Documentation
- 406 installs
- 305 repo stars
- Updated March 4, 2026
- aj-geddes/useful-ai-prompts
deployment-documentation is a Claude Code skill that generates deployment runbooks with prerequisites, environment variables, staged rollout steps, rollback procedures, and post-deploy verification checks for developers
About
deployment-documentation is an agent skill from aj-geddes/useful-ai-prompts that structures CI/CD and infrastructure release docs from bundled reference guides and templates. The SKILL.md workflow walks through prerequisites, environment URLs, deployment methods (manual, automated, blue-green, canary), and operational guardrails, while four reference files cover GitHub Actions workflows, Dockerfiles, docker-compose.yml, and Kubernetes deployment manifests. A config-starter.yaml template and validate-config.sh script help validate configuration before docs land in the repo. Reach for deployment-documentation when a service ships to dev, staging, and production but lacks a written runbook covering secrets, health checks, rollback, and emergency procedures.
- Environment variable catalogs
- Rollback procedures
- Pre and post deploy checks
- Staging versus production steps
Deployment Documentation by the numbers
- 406 all-time installs (skills.sh)
- Ranked #407 of 1,879 Documentation skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill deployment-documentationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 406 |
|---|---|
| repo stars | ★ 305 |
| Last updated | March 4, 2026 |
| Repository | aj-geddes/useful-ai-prompts ↗ |
How do you document production deployment and rollback procedures?
Author deployment runbooks with prerequisites, env vars, staged rollout steps, rollback procedures, and post-deploy verification checks.
Who is it for?
Backend and platform engineers documenting first production releases for containerized services with GitHub Actions CI/CD.
Skip if: Developers who only need application README setup instructions without infrastructure, rollout, or rollback procedures.
When should I use this skill?
A repository lacks deployment runbooks or needs staged rollout, rollback, and post-deploy verification documentation before a production release.
What you get
Deployment guide markdown, CI/CD workflow documentation, Docker and Kubernetes manifest references, rollback runbooks, and post-deploy verification checklists.
- Deployment runbook markdown
- CI/CD pipeline documentation
- Rollback and post-deploy verification checklists
By the numbers
- Includes 4 reference guides for GitHub Actions, Dockerfile, docker-compose.yml, and Kubernetes deployment manifests
- Ships 1 config-starter.yaml template and 1 validate-config.sh validation script
- Documents 10 deployment best-practice checks in SKILL.md DO guidance
Files
Deployment Documentation
Table of Contents
Overview
Create comprehensive deployment documentation covering infrastructure setup, CI/CD pipelines, deployment procedures, and rollback strategies.
When to Use
- Deployment guides
- Infrastructure documentation
- CI/CD pipeline setup
- Configuration management
- Container orchestration
- Cloud infrastructure docs
- Release procedures
- Rollback procedures
Quick Start
Minimal working example:
````markdown
Deployment Guide
Overview
This document describes the deployment process for [Application Name].
Deployment Methods:
- Manual deployment (emergency only)
- Automated CI/CD (preferred)
- Blue-green deployment
- Canary deployment
Environments:
- Development: https://dev.example.com
- Staging: https://staging.example.com
- Production: https://example.com
---
Prerequisites
Required Tools
// ... (see reference guides for full implementation)
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [GitHub Actions Workflow](references/github-actions-workflow.md) | GitHub Actions Workflow |
| [Dockerfile](references/dockerfile.md) | Dockerfile |
| [docker-compose.yml](references/docker-composeyml.md) | docker-compose.yml |
| [Deployment Manifest](references/deployment-manifest.md) | Deployment Manifest |
## Best Practices
### ✅ DO
- Use infrastructure as code
- Implement CI/CD pipelines
- Use container orchestration
- Implement health checks
- Use rolling deployments
- Have rollback procedures
- Monitor deployments
- Document emergency procedures
- Use secrets management
- Implement blue-green or canary deployments
### ❌ DON'T
- Deploy directly to production
- Skip testing before deploy
- Forget to backup before migrations
- Deploy without rollback plan
- Skip monitoring after deployment
- Hardcode credentials
- Deploy during peak hours (unless necessary)
Deployment Manifest
Deployment Manifest
# k8s/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
namespace: production
labels:
app: app
version: v1
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: app
template:
metadata:
labels:
app: app
version: v1
spec:
containers:
- name: app
image: your-registry/app:latest
imagePullPolicy: Always
ports:
- containerPort: 3000
name: http
env:
- name: NODE_ENV
value: "production"
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: app-secrets
key: database-url
- name: REDIS_URL
valueFrom:
secretKeyRef:
name: app-secrets
key: redis-url
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 1000m
memory: 1Gi
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 3
readinessProbe:
httpGet:
path: /ready
port: 3000
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 2
---
apiVersion: v1
kind: Service
metadata:
name: app
namespace: production
spec:
selector:
app: app
ports:
- port: 80
targetPort: 3000
type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app
namespace: production
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
tls:
- hosts:
- example.com
secretName: app-tls
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app
port:
number: 80---
docker-compose.yml
docker-compose.yml
version: "3.8"
services:
app:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- DATABASE_URL=postgresql://postgres:password@db:5432/app
- REDIS_URL=redis://redis:6379
depends_on:
- db
- redis
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "healthcheck.js"]
interval: 30s
timeout: 3s
retries: 3
db:
image: postgres:14-alpine
environment:
- POSTGRES_DB=app
- POSTGRES_PASSWORD=password
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
restart: unless-stopped
volumes:
postgres_data:
redis_data:---
Dockerfile
Dockerfile
# Multi-stage build for optimization
FROM node:18-alpine AS builder
WORKDIR /app
# Copy package files
COPY package*.json ./
# Install dependencies
RUN npm ci --only=production
# Copy source code
COPY . .
# Build application
RUN npm run build
# Production stage
FROM node:18-alpine
# Security: Run as non-root user
RUN addgroup -g 1001 -S nodejs && \
adduser -S nodejs -u 1001
WORKDIR /app
# Copy built application from builder
COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules
COPY --from=builder --chown=nodejs:nodejs /app/dist ./dist
COPY --from=builder --chown=nodejs:nodejs /app/package*.json ./
# Switch to non-root user
USER nodejs
# Expose port
EXPOSE 3000
# Health check
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD node healthcheck.js
# Start application
CMD ["node", "dist/server.js"]GitHub Actions Workflow
GitHub Actions Workflow
# .github/workflows/deploy.yml
name: Deploy to Production
on:
push:
branches: [main]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "18"
- run: npm ci
- run: npm test
- run: npm run lint
build:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Login to Amazon ECR
uses: aws-actions/amazon-ecr-login@v1
- name: Build and push Docker image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t $ECR_REGISTRY/app:$IMAGE_TAG .
docker push $ECR_REGISTRY/app:$IMAGE_TAG
docker tag $ECR_REGISTRY/app:$IMAGE_TAG $ECR_REGISTRY/app:latest
docker push $ECR_REGISTRY/app:latest
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Configure kubectl
uses: azure/k8s-set-context@v3
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBECONFIG }}
- name: Deploy to Kubernetes
env:
IMAGE_TAG: ${{ github.sha }}
run: |
kubectl set image deployment/app \
app=your-registry/app:$IMAGE_TAG \
-n production
kubectl rollout status deployment/app -n production
- name: Notify Datadog
run: |
curl -X POST "https://api.datadoghq.com/api/v1/events" \
-H "DD-API-KEY: ${{ secrets.DATADOG_API_KEY }}" \
-d '{
"title": "Deployment to Production",
"text": "Deployed version ${{ github.sha }}",
"tags": ["environment:production", "service:app"]
}'
- name: Notify Slack
if: always()
uses: slackapi/slack-github-action@v1
with:
payload: |
{
"text": "Deployment ${{ job.status }}: ${{ github.sha }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}---
#!/bin/bash
# validate-config.sh - Validate infrastructure configuration
# Usage: ./validate-config.sh <config_file>
set -euo pipefail
CONFIG_FILE="${{1:?Usage: $0 <config_file>}}"
echo "Validating: $CONFIG_FILE"
# TODO: Add configuration validation logic
# - Check required fields
# - Validate syntax (YAML/JSON/HCL)
# - Verify referenced resources exist
# - Check for security best practices
echo "Validation complete."
# Infrastructure Configuration Starter
# TODO: Customize for your infrastructure setup
#
# Usage: Copy this file and modify for your environment
# --- Environment Configuration ---
environment: production
region: us-east-1
# --- Resource Definitions ---
# TODO: Add resource definitions specific to this skill's domain
# --- Security Settings ---
# TODO: Add security configuration
# --- Monitoring ---
# TODO: Add monitoring/alerting configuration
Related skills
How it compares
Choose deployment-documentation over generic documentation skills when the deliverable must cover CI/CD workflows, container manifests, staged rollouts, and rollback—not only API or README prose.
FAQ
What does deployment-documentation generate?
deployment-documentation generates deployment guides covering infrastructure setup, CI/CD pipelines, staged rollout steps, rollback procedures, and post-deploy verification. Output draws on four bundled reference guides for GitHub Actions, Docker, docker-compose, and Kubernetes m
Which deployment patterns does deployment-documentation cover?
deployment-documentation documents manual emergency deploys, automated CI/CD releases, blue-green deployments, canary rollouts, and rolling updates. SKILL.md also prescribes health checks, secrets management, monitoring, and explicit rollback plans for each environment.
What files ship with deployment-documentation?
deployment-documentation bundles four reference markdown guides, one config-starter.yaml template, and one validate-config.sh script alongside SKILL.md. Agents use these assets to produce structured runbooks developers can commit to a repository.