Agent skill
deployment
CI/CD pipeline verification, Docker container security, environment management, and deployment workflow
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/ops-andreibesleaga-gabbe-11
SKILL.md
Deployment Skill
Goal
Ensure software is deployed safely, securely, and repeatably. Verify CI/CD pipeline health, container security, environment configuration, and rollback readiness before any production deployment.
Steps
-
Pre-deployment checklist
[ ] All tests passing (integrity-check.skill completed) [ ] SECURITY_CHECKLIST.md completed [ ] No critical CVEs in dependencies [ ] Environment variables documented and configured [ ] Database migrations reviewed and tested [ ] Rollback plan documented [ ] Monitoring and alerting in place -
Verify CI/CD pipeline
yaml# GitHub Actions example structure to verify: jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: [install command] - run: [test command] # Must be here - run: [typecheck command] # Must be here - run: [lint command] # Must be here - run: [security scan] # Must be here build: needs: [test] # Build only after tests pass steps: - run: docker build -t app:${{ github.sha }} . - run: trivy image app:${{ github.sha }} # Container scan deploy-staging: needs: [build] environment: staging # Requires manual approval in GitHub -
Docker container security check
dockerfile# Verify Dockerfile follows security best practices: FROM node:22-alpine AS base # Use specific version (not :latest) WORKDIR /app # Security: run as non-root user RUN addgroup -S appgroup && adduser -S appuser -G appgroup # Security: copy only necessary files COPY package*.json ./ RUN npm ci --only=production # No dev dependencies in production COPY --chown=appuser:appgroup . . USER appuser # Never run as root EXPOSE 3000 CMD ["node", "dist/server.js"]bash# Scan container for vulnerabilities trivy image app:latest --severity HIGH,CRITICAL docker scout cves app:latest # Docker Scout alternative -
IaC security check (if applicable)
bash# Terraform/Kubernetes manifests checkov -d infra/ tfsec infra/terraform/ # Kubernetes kubesec scan infra/kubernetes/deployment.yaml -
Environment configuration
bash# Verify all required env vars are documented and configured # Check: .env.example has all vars without values # Check: production env vars set in GitHub Secrets / AWS SSM / Vault # Never: env vars with secrets in CI/CD config files # Never: docker-compose.yml with hardcoded production secrets -
Database migration execution (before deploying new code)
bash# Run migrations BEFORE deploying new code (backward compatible) # This ensures rollback is possible without data issues # Prisma npx prisma migrate deploy --schema=prisma/schema.prisma # Laravel php artisan migrate --force --no-interaction # Python (Alembic) uv run alembic upgrade headPython Docker Security:
dockerfileFROM python:3.12-slim-bookworm AS base WORKDIR /app # Security: non-root user RUN addgroup --system appgroup && adduser --system --group appuser # Install uv COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev COPY --chown=appuser:appgroup . . USER appuser CMD ["uv", "run", "fastapi", "run", "src/main/main.py", "--port", "8000"] -
Deploy to staging first
bash# Blue-Green or rolling deployment # Run smoke tests after staging deploy # Smoke test examples: curl -f https://staging.app.com/health || exit 1 curl -f https://staging.app.com/api/v1/ping || exit 1 -
Smoke tests after deployment
typescript// tests/smoke/health.spec.ts test('health check returns 200', async ({ request }) => { const response = await request.get('/health'); expect(response.status()).toBe(200); const body = await response.json(); expect(body.status).toBe('ok'); }); test('authentication endpoint accepts requests', async ({ request }) => { const response = await request.post('/auth/login', { data: { email: '[email protected]', password: 'wrong' } }); expect(response.status()).toBe(401); // Wrong creds — correct behavior }); -
Production deployment gate
- Requires human approval (configured in CI/CD environment protection rules)
- Tag the release:
git tag v[semver] -m "Release [version]" - Create GitHub Release with changelog
-
Post-deployment verification
bash# Verify production health curl -f https://app.com/health # Check error rates in monitoring (Sentry, Datadog, etc.) # Verify no sudden spike in error rate after deploy # Verify response times are within baseline # If error rate spikes: trigger rollback immediately -
Rollback plan
bash# Document before deploying: # 1. Previous stable version: v1.2.3 # 2. Rollback command: kubectl rollout undo deployment/app # 3. Database: were there migrations? Can they be rolled back? # 4. Cache: does rollback require cache flush? # 5. Decision maker: who approves the rollback call? # Kubernetes rollback: kubectl rollout undo deployment/app --to-revision=N # Docker Compose rollback: docker pull app:v1.2.3 docker compose up -d
Constraints
- NEVER deploy to production without first deploying and testing on staging
- NEVER skip container security scan in CI/CD pipeline
- NEVER commit secrets to CI/CD config files
- Production deployment ALWAYS requires human approval
- Always have a tested rollback plan before deploying
Output Format
Deployment checklist completion + CI/CD pipeline verification + staging test results + production deployment confirmation or rollback if issues found.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?