skills/ci-cd/SKILL.md
Set up or modify CI/CD pipelines for automated quality gates and deployment. Use when scaffolding a new project's pipeline, adding checks (lint, types, tests, build, audit), configuring deployment, or debugging CI failures. Don't use for local pre-commit hooks (use `setup-pre-commit`) or for one-off script runs.
npx skillsauth add helderberto/skills ci-cdInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 CItesting
Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
documentation
Compact the current conversation into a handoff doc so a fresh agent can continue the work. Use when user asks to "handoff", "/handoff", "hand this off", or wants to end a session mid-task. Don't use for summarising completed work, writing PRDs/plans/ADRs, or committing changes.
development
Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill, or asks "make a skill for X".
development
Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.