Help us improve
Share bugs, ideas, or general feedback.
From hb
Sets up or modifies CI/CD pipelines with automated quality gates (lint, types, tests, build, audit) and deployment. Includes GitHub Actions starters and platform mapping.
npx claudepluginhub helderberto/agent-skills --plugin hbHow this skill is triggered — by the user, by Claude, or both
Slash command
/hb:ci-cdThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Automate quality gates so no change reaches production without passing tests, lint, type checking, and build. CI is the enforcement mechanism for every other skill — it catches what humans and agents miss, consistently, on every change.
Automates CI/CD pipeline setup with quality gates for linting, type checking, tests, builds, security audits, and deployments using GitHub Actions. Use for new projects, adding checks, or debugging failures.
Generates CI/CD pipeline configs adapted to project stack and platform, for GitHub Actions, GitLab CI, Jenkins, etc. Automates lint, tests, build, security, and deploy stages.
Generates multi-stage CI/CD pipelines for GitHub Actions, GitLab CI, Jenkins, CircleCI covering linting, testing, image builds, scans, and gated deployments to staging/production.
Share bugs, ideas, or general feedback.
Automate quality gates so no change reaches production without passing tests, lint, type checking, and build. CI is the enforcement mechanism for every other skill — it catches what humans and agents miss, consistently, on every change.
Shift left: catch problems as early as possible. A bug caught in lint costs minutes; the same bug in production costs hours. Move checks upstream — static analysis before tests, tests before staging, staging before production.
Faster is safer: smaller batches, more frequent releases. A deployment with 3 changes is easier to debug than one with 30.
Every PR passes these gates before merge:
PR opened
│
▼
LINT eslint, prettier (or language equivalents)
│ pass
▼
TYPECHECK tsc --noEmit (or equivalent)
│ pass
▼
UNIT TESTS jest/vitest/pytest
│ pass
▼
BUILD npm run build (catches build-time errors lint misses)
│ pass
▼
INTEGRATION API + DB tests (if applicable)
│ pass
▼
E2E (opt) Playwright/Cypress (slowest, run on main paths only)
│ pass
▼
SECURITY deps-audit / npm audit
│ pass
▼
BUNDLE SIZE bundlesize check (frontend projects)
│ pass
▼
MERGE OK
Each gate is independent and parallel where possible. Fail-fast: stop the pipeline on the first failure, but report all results when running parallel jobs.
| Use case | Platform | Notes |
|---|---|---|
| Open source / personal projects | GitHub Actions | Free for public repos; fast onboarding |
| Work projects with self-hosted infra | Buildkite | Hybrid hosted/self-hosted agents; better for monorepos |
| GitLab projects | GitLab CI | Native integration with merge requests |
| Multi-cloud / vendor-neutral | CircleCI, Drone | Less common in 2026 |
This skill assumes GitHub Actions for personal projects and Buildkite for work projects. Other platforms have equivalent concepts.
For a typical Node/TS project, a single .github/workflows/ci.yml:
name: CI
on:
pull_request:
push:
branches: [main]
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.tool-versions'
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run typecheck
- run: npm test -- --coverage
- run: npm run build
- run: npm audit --audit-level=high
Match the gates to what validate-code runs locally. Parity between local and CI is the goal — fewer "works on my machine" moments.
For a work project with self-hosted agents:
steps:
- label: ":lint:"
command: npm run lint
- label: ":typescript:"
command: npm run typecheck
- label: ":test_tube:"
command: npm test -- --coverage
- label: ":hammer:"
command: npm run build
- wait
- label: ":shipit:"
branches: main
command: ./scripts/deploy.sh
Use parallel steps for lint/typecheck/tests, then wait before deploy.
Cache aggressively — caching is the cheapest CI optimization:
node_modules — keyed by package-lock.json hashactions/upload-artifact or Buildkite artifactsBad cache > no cache: validate cache keys include all inputs (lock file + Node version + OS).
| Strategy | When |
|---|---|
| Blue/green | Zero-downtime releases, easy rollback (cost: 2x infra during deploy) |
| Canary | Gradual rollout, observe metrics, abort if regression |
| Rolling | Default for most apps, slow incremental replacement |
| Feature flags | Decouple deploy from release; ship dark, enable later |
For solo / small projects: simple rolling deploy + feature flags is usually enough.
validate-code) must match CI gates — no "passes locally, fails in CI"Process:
validate-code matches CI gates)After setting up or modifying a pipeline:
validate-code skill are present in CI