agentsclimarketplace

Nebo devops cloud

Skill lifenewjob/nebo-claude-skills-public/skills/nebo-devops-cloud

10 production-tested Claude Code skills · SEO/design/code/devops · MIT

Install
npx -y skills add lifenewjob/nebo-claude-skills-public --skill nebo-devops-cloud

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

DEVOPS-CLOUD. Triggers: docker", "kubernetes", "CI/CD", "деплой", "AWS", "nginx", "systemd", "devops", "monitoring", "Helm

SKILL.md

5.7 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it

DEVOPS-CLOUD SuperSkill

Заменяет: devops-automation, docker-best-practices, kubernetes-operations, ci-cd-pipelines, monitoring-observability, aws-cloud-patterns (6 скилов) Триггеры: "docker", "kubernetes", "CI/CD", "деплой", "AWS", "nginx", "systemd", "devops", "monitoring", "Helm" Атомов: 87

КОГДА ПРИМЕНЯТЬ

  • Настройка CI/CD pipeline (GitHub Actions, GitLab CI)
  • Docker: Dockerfile, compose, оптимизация образов
  • Kubernetes: манифесты, Helm charts, troubleshooting
  • Мониторинг: OpenTelemetry, Prometheus, Grafana
  • AWS: Lambda, ECS, DynamoDB, CDK/Terraform
  • Деплой: blue-green, canary, rolling updates

КЛЮЧЕВЫЕ ПРИНЦИПЫ

  1. Multi-stage Docker builds: deps → build → runtime. Final stage только runtime artifacts + non-root user
  2. K8s: always set resources: requests + limits на каждом контейнере, topologySpreadConstraints для HA
  3. CI/CD: concurrency + needs: cancel-in-progress: true для stale runs, needs для зависимостей между jobs
  4. Observability = traces + metrics + logs: OpenTelemetry SDK → OTLP collector → backends. Structured JSON logging
  5. AWS Lambda: init outside handler: SDK clients вне handler для переиспользования между invocations
  6. DynamoDB: access patterns first: Single-table design, composite keys (PK + SK), GSI для альтернативных запросов
  7. IaC: CDK/Terraform over console: Всё в коде, state в remote backend, plan перед apply

ПАТТЕРНЫ И ТЕХНИКИ

Docker

FROM node:22-alpine AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --only=production

FROM node:22-alpine AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:22-alpine AS runtime
WORKDIR /app
RUN addgroup -g 1001 -S app && adduser -S app -u 1001 -G app
COPY --from=deps /app/node_modules ./node_modules
COPY --from=build /app/dist ./dist
USER app
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:3000/healthz || exit 1
CMD ["node", "dist/server.js"]

Docker Compose

services:
  api:
    build: { context: ., target: runtime }
    depends_on:
      db: { condition: service_healthy }
    deploy:
      resources: { limits: { memory: 512M } }
    restart: unless-stopped

GitHub Actions

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  test:
    services:
      postgres:
        image: postgres:16
        options: --health-cmd pg_isready --health-interval 10s

Kubernetes

spec:
  containers:
    - resources:
        requests: { cpu: 100m, memory: 128Mi }
        limits: { cpu: 500m, memory: 512Mi }
      livenessProbe:
        httpGet: { path: /healthz, port: 8080 }
      readinessProbe:
        httpGet: { path: /ready, port: 8080 }
  topologySpreadConstraints:
    - maxSkew: 1
      topologyKey: kubernetes.io/hostname
      whenUnsatisfiable: DoNotSchedule

Helm Chart

chart/
  Chart.yaml      # metadata + dependencies
  values.yaml     # default values
  templates/
    deployment.yaml
    service.yaml
    ingress.yaml
    _helpers.tpl   # template helpers

OpenTelemetry

const sdk = new NodeSDK({
  serviceName: "order-service",
  traceExporter: new OTLPTraceExporter({ url: "http://collector:4318/v1/traces" }),
  metricReader: new PeriodicExportingMetricReader({
    exporter: new OTLPMetricExporter(),
    exportIntervalMillis: 15000,
  }),
  instrumentations: [new HttpInstrumentation(), new PgInstrumentation()],
});
  • Custom spans: tracer.startActiveSpan("name", async (span) => { ... span.end() })
  • Custom metrics: counter, histogram, gauge через meter.create*()

AWS Lambda + DynamoDB

// Init outside handler
const client = DynamoDBDocumentClient.from(new DynamoDBClient({}));

export const handler: APIGatewayProxyHandlerV2 = async (event) => {
  const result = await client.send(
    new GetCommand({ TableName: process.env.TABLE_NAME!, Key: { pk: id } })
  );
  return { statusCode: 200, body: JSON.stringify(result.Item) };
};

Structured Logging

logger.info("order_created", {
  orderId, customerId, amount,
  traceId: span.spanContext().traceId
});
  • Всегда JSON format, severity levels, correlation IDs
  • Никогда PII в логах без маскирования

ЧЕКЛИСТ

  • Docker: non-root user, multi-stage, .dockerignore, HEALTHCHECK
  • K8s: resource limits, probes, topology spread, secrets через SecretRef
  • CI/CD: concurrency cancellation, cache dependencies, matrix testing
  • Monitoring: traces + metrics + structured logs connected
  • Alerts: на SLO breach, не на каждую ошибку
  • IaC: remote state, план перед apply, модульная структура

ПРИМЕРЫ

Full CI/CD → Deploy pipeline

jobs:
  lint: { runs-on: ubuntu-latest, steps: [checkout, setup-node, npm ci, npm run lint] }
  test: { needs: lint, strategy: { matrix: { node: [20, 22] } } }
  build: { needs: test, steps: [docker build, docker push] }
  deploy: { needs: build, if: "github.ref == 'refs/heads/main'", environment: production }

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 2 of the 12 instructions most containers cloud skills give in ~1.5k tokens

Counted across 607 of the 657 authors here whose files we hold, read 2026-08-07

  • Run containers as a non-root userhere, and in 66 of 607, across 46 files
  • Use multi-stage buildshere, and in 53 of 607, across 44 files
  • Use Promise.all for independent operationsin 47 of 607, across 13 files
  • Import directly instead of barrel filesin 46 of 607, across 12 files
  • Use ternary instead of AND for conditionalsin 45 of 607, across 12 files
  • Use Set or Map for O(1) lookupsin 42 of 607, across 10 files
  • Create a .dockerignore filein 41 of 607, across 31 files
  • Read individual rule files for detailsin 39 of 607, across 9 files
  • Copy dependency files before source codein 36 of 607, across 23 files
  • Authenticate server actions like API routesin 35 of 607, across 7 files
  • Use next/dynamic for heavy componentsin 34 of 607, across 9 files
  • Use React.cache for per-request deduplicationin 34 of 607, across 10 files

Said here and by no other author read

  • cancel stale CI runs in progress
  • connect traces metrics and structured logs
  • store IaC state in remote backend
  • mask PII in structured logs
  • alert on SLO breaches not individual errors

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.