Back to skills
SKILL.md
Devops Engineer
BSecurityUse when configuring, automating, deploying, and debugging devops engineer pipelines, containers, servers, and cloud infrastructure.
- 5 stars
- 0 votes
- 0 copies
- 0 views
- Added September 27, 2026
Works with
Security analysis
84/100- Exfiltrates credentials via HTTP β exact pattern from Snyk ToxicSkills study
- Installs packages at runtime which could introduce malicious dependencies
npx -y skills add Harmitx7/tribunal-kit --skill devops-engineer --agent claude-codeAre you the author of Devops Engineer?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/harmitx7-devops-engineer)---
name: devops-engineer
description: "Use when configuring, automating, deploying, and debugging devops engineer pipelines, containers, servers, and cloud infrastructure."
version: 6.0.0
last-updated: 2026-09-29
skills:
- cicd-pro
- containerization-pro
- cloud-architect
tools: Read, Grep, Glob, Bash, Edit, Write
scripts-binding:
- .agent/scripts/lint_runner.js
- .agent/scripts/verify_all.js
---
# DevOps Engineer β CI/CD & Infrastructure Mastery
## Mandatory Pre-Flight Context Inspection
Before reading, generating, or refactoring code in the `devops-engineer` domain, inspect these 5 critical parameters:
1. **System Boundaries & Dependencies**: Verify that all required dependencies exist in target package manifests and environment paths.
2. **Runtime Context & Platform Invariants**: Confirm target platform constraints (Node.js, Browser, Mobile OS, Edge runtime) before applying APIs.
3. **Execution Guardrails**: Identify potential side-effects, state mutations, and unhandled asynchronous exceptions.
4. **Validation & Type Contracts**: Validate input data schemas and strict type constraints across all module interfaces.
5. **Observability & Proof of Execution**: Ensure execution produces tangible verification signals (terminal output, tests, metrics).
## Activation Boundaries
- **Activate when:** Use when configuring, automating, deploying, and debugging devops engineer pipelines, containers, servers, and cloud infrastructure.
- **DO NOT activate when:** The task falls outside the `devops-engineer` domain or is managed by a different dedicated specialist agent.
## π Multi-Pass Execution Protocol
| Pass | Phase | Core Action | Adaptive Depth |
|:---|:---|:---|:---|
| **Pass 1** | **Understand** | Deconstruct the user's explicit objective, implicit requirements, and platform constraints. | Fast / Standard / Deep |
| **Pass 2** | **Plan** | Decompose task into smallest logical steps; map dependencies, affected files, and tool calls. | Standard / Deep |
| **Pass 3** | **Execute** | Implement solution with production-grade craft, zero placeholders, and strict typing. | All Modes |
| **Pass 4** | **Verify** | Run linters, unit tests, or compiler checks to validate structural correctness. | All Modes |
| **Pass 5** | **Attack & Falsify** | Perform adversarial search for edge-case failures, counterexamples, race conditions, and traps. | Standard / Deep |
| **Pass 6** | **Harden** | Eliminate discovered friction, optimize performance, and harden error boundaries. | Standard / Deep |
| **Pass 7** | **Quality Gate** | Enforce Verification-Before-Completion (VBC) with concrete terminal proof before finalizing. | All Modes |
---
## π οΈ Technical Architecture & Reference Recipes
---
## Docker
### Dockerfile (Production-Ready)
```dockerfile
# β
Multi-stage build β minimal final image
FROM node:22-alpine AS builder
WORKDIR /app
# Install deps first (cache layer)
COPY package.json package-lock.json ./
RUN npm ci --ignore-scripts
# Build
COPY . .
RUN npm run build
# ββββ Production stage ββββ
FROM node:22-alpine AS runner
WORKDIR /app
# Security: non-root user
RUN addgroup --system --gid 1001 appgroup && \
adduser --system --uid 1001 appuser
# Copy only production artifacts
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./
USER appuser
EXPOSE 3000
ENV NODE_ENV=production
HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
CMD wget --quiet --tries=1 --spider http://localhost:3000/health || exit 1
CMD ["node", "src/index.js"]
```
```dockerfile
# β HALLUCINATION TRAP: Common Dockerfile mistakes
# β FROM node:22 β 1GB+ image (use alpine: ~150MB)
# β RUN npm install β installs devDependencies, no lockfile
# β
RUN npm ci β deterministic, production-only
# β COPY . . β copies node_modules, .git, secrets
# β
Use .dockerignore β exclude node_modules, .env, .git
# β Running as root β security vulnerability
# β
USER appuser β non-root user
```
### .dockerignore
```
node_modules
.git
.env
.env.*
*.md
.github
coverage
dist
```
### Docker Compose
```yaml
# docker-compose.yml
services:
app:
build:
context: .
target: runner
ports:
- '3000:3000'
environment:
- DATABASE_URL=postgres://postgres:postgres@db:5432/myapp
- REDIS_URL=redis://redis:6379
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: myapp
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres']
interval: 5s
timeout: 3s
retries: 5
redis:
image: redis:7-alpine
volumes:
- redisdata:/data
volumes:
pgdata:
redisdata:
```
---
## CI/CD with GitHub Actions
### Standard Pipeline
```yaml
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true # cancel stale runs on same PR
jobs:
lint-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run typecheck
- run: npm run test -- --coverage
- uses: actions/upload-artifact@v4
if: always()
with:
name: coverage
path: coverage/
build:
runs-on: ubuntu-latest
needs: lint-and-test
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run build
deploy:
runs-on: ubuntu-latest
needs: build
if: github.ref == 'refs/heads/main'
environment: production
steps:
- uses: actions/checkout@v4
# Deploy to your platform (Vercel, Railway, Fly.io, etc.)
- run: npx vercel deploy --prod --token=${{ secrets.VERCEL_TOKEN }}
```
### Security Scanning
```yaml
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm audit --audit-level=high
- uses: github/codeql-action/analyze@v3
with:
languages: javascript-typescript
```
---
## Deployment Strategies
```
Rolling Update (default):
Old ββββββββ β ββββββββ β ββββββββ β ββββββββ
New ββββββββ β ββββββββ β ββββββββ β ββββββββ
- Gradual replacement, zero downtime
- Rollback: redeploy previous version
Blue/Green:
Blue ββββββββ (live) β ββββββββ (idle)
Green ββββββββ (staging) β ββββββββ (live)
- Instant switch via load balancer
- Instant rollback (switch back)
- Requires 2x infrastructure
Canary:
Stable ββββββββ (95%) β ββββββββ (90%) β ββββββββ (0%)
Canary ββββββββ (5%) β ββββββββ (10%) β ββββββββ (100%)
- Gradual traffic shift
- Monitor error rates/latency at each stage
- Rollback: stop canary traffic
Feature Flags:
- Deploy code, control activation separately
- Risk-free deploys β flag is off by default
- A/B testing capability
```
---
## Secrets Management
```yaml
# β NEVER:
# - Hardcode secrets in code
# - Commit .env files to git
# - Use plain text in CI/CD configs
# - Share secrets via Slack/email
# β
ALWAYS:
# GitHub Actions: Repository Secrets
# - Settings β Secrets β Actions β New repository secret
# - Reference: ${{ secrets.MY_SECRET }}
# Production: Use your platform's secret manager
# - AWS Secrets Manager / SSM Parameter Store
# - GCP Secret Manager
# - Azure Key Vault
# - Doppler / Infisical (cross-platform)
# .env management:
# .env β git-ignored, local development
# .env.example β committed, shows required keys (no values)
```
---
## Production Readiness Checklist
```
Pre-Deploy:
β‘ All tests passing (unit, integration, E2E)
β‘ Security scan clean (npm audit, CodeQL)
β‘ Build succeeds in CI (not just locally)
β‘ Database migrations tested against production-size data
β‘ Environment variables verified in target environment
β‘ Rollback plan documented
Monitoring:
β‘ Health check endpoint (/health)
β‘ Structured logging (JSON, not console.log)
β‘ Error tracking (Sentry, Datadog)
β‘ Uptime monitoring (external)
β‘ Alerting configured (PagerDuty, OpsGenie)
Performance:
β‘ Response time P95 < 500ms
β‘ Error rate < 0.1%
β‘ Database connection pooling configured
β‘ CDN for static assets
β‘ Compression enabled (gzip/brotli)
Security:
β‘ HTTPS only (HSTS enabled)
β‘ Rate limiting on all public endpoints
β‘ CORS configured (not wildcard *)
β‘ Security headers (helmet)
β‘ No secrets in code or logs
```
## π¨ Edge-Case & Failure Mode Matrix
| Scenario | Risk | Production Mitigation |
|:---|:---|:---|
| **Empty or Null Inputs** | Unhandled exception or unexpected rendering collapse | Enforce fallback guards, optional chaining, and explicit empty state handlers |
| **Network Timeout / Latency** | Hanging operations or duplicate side-effects | Implement bounded abort controllers, exponential backoff, and idempotency keys |
| **Concurrency / Race Conditions** | Stale state overwrite or inconsistent data mutations | Use atomic transactions, mutex locking, or cancel-on-resubmit controls |
| **Invalid Schema / Malformed Payload** | Downstream runtime errors or security injection | Validate boundary payloads with Zod/Pydantic schemas prior to execution |
| **Resource / Memory Saturation** | OOM errors, frame drops, or memory leaks | Clean up listeners, cancel active timers, and enforce pagination/virtualization |
## π€ LLM-Specific Traps Table
| Anti-Pattern | What AI Commonly Does Wrong | What Is Actually Correct |
|:---|:---|:---|
| **Silent Pipeline Failure** | Executing shell steps without set -euo pipefail, ignoring errors | Always initialize shell scripts with set -euo pipefail and trap handlers |
| **Unpinned Dependency Shift** | Installing packages with npm install or using :latest docker tags | Lock dependencies with npm ci / lockfiles and use immutable SHA256 image digests |
| **Leaking Build Secrets** | Passing secrets as Docker build arguments baked into image layers | Use Docker BuildKit secret mounts (--mount=type=secret) or runtime injection |
## ποΈ Tribunal Verification & Guardrails
**Active Reviewers:** `pipeline-reviewer` Β· `devops-engineer` Β· `resilience-reviewer`
**Slash Command:** `/review` or `/tribunal-full`
### π¬ Evidence Standard (Tri-State Verification)
Every finding, audit statement, or completion claim must classify its factual certainty:
- **`[OBSERVED]`**: Directly confirmed in the codebase or verified via executed terminal command.
- **`[INFERRED]`**: Logically deduced from code patterns, architectural data flow, or schema relations.
- **`[UNVERIFIED]`**: Speculative hypothesis or runtime possibility requiring active testing or measurement.
### β
Pre-Flight Self-Audit Checklist
```
β
Are strict execution modes (set -euo pipefail) active on all scripts?
β
Are container images pinned to immutable digest/SHA tags instead of "latest"?
β
Are deployment health checks, liveness probes, and rollback baselines configured?
β
Are CI secrets masked and unexposed to untrusted pull requests?
β
Did I verify environment compatibility across target runtimes?
```
### π Verification-Before-Completion (VBC) Protocol
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
- β **Forbidden:** Declaring a task complete because the output "looks correct."
- β
**Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing test suites, compiler success, or equivalent operational proof) that your output works as intended.
Attribution
Comments
Loading commentsβ¦