From sdlc-team
Audit CI/CD pipeline config (CI workflows + Dockerfiles) for security, correctness, reliability/cost, and plugin-convention issues. Use when reviewing or generating pipeline config — by the pipeline-reviewer (Phase 4) and the release-engineer (Phase 5). Prefers real linters, falls back to a checklist.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sdlc-team:cicd-pipeline-auditThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The single source of truth for *what* to check in a CI/CD pipeline and *how*. Applied by the
The single source of truth for what to check in a CI/CD pipeline and how. Applied by the
pipeline-reviewer agent (Phase 4, on pre-existing config) and the release-engineer (Phase 5, on
its own freshly-generated config).
Prefer real linters when installed; otherwise review the file(s) against the checklist below.
.github/workflows/*.yml|*.yaml): actionlint if available.Dockerfile, *.Dockerfile): hadolint if available..gitlab-ci.yml): glab ci lint / the GitLab CI lint API if available.Probe before use (e.g. command -v actionlint); if absent, fall back to the checklist — no install,
no hard dependency. Forge-aware: GitHub is the default; audit .gitlab-ci.yml only when the git
remote is a GitLab host (detect during stack-detection). See devops-gcp / release-management
for forge detection.
uses: org/action@main or @v1 instead of a pinned SHA.permissions: — default write-all; set least-privilege per job.pull_request_target running untrusted code / exposing secrets to forks.needs: graph, or jobs that never trigger.USER); unpinned/latest base image; missing WORKDIR..dockerignore; no HEALTHCHECK.timeout-minutes on jobs (a hung job runs to the runner limit).concurrency: group (redundant overlapping runs on rapid pushes).workflow_dispatch/approval).main) deploy missing the idempotent tag + Release step (see release-management).development → staging → main.Return findings as a severity-sorted list, one per line: [severity] file:loc — issue — fix.
If no pipeline config exists, say so explicitly (nothing to audit). Align severities with the other
inspectors so the orchestrator can merge into one list.
Given .github/workflows/deploy.yml:
on: { push: { branches: [main] } }
permissions: write-all
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
- run: ./deploy.sh
Findings:
workflow_dispatch/approval job.permissions: write-all — scope to least privilege (contents: read; contents: write only on the tag job).actions/checkout@main unpinned — pin to a release tag or commit SHA.timeout-minutes and no build/test gate before deploy.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub danniel-isiah-libor/claude-sdlc-team --plugin sdlc-team