From devops-skills
Validates syntax, best practices, security, and local execution of .gitlab-ci.yml pipelines, stages, and jobs using dedicated scripts.
How this skill is triggered — by the user, by Claude, or both
Slash command
/devops-skills:gitlab-ci-validatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Comprehensive toolkit for validating, linting, testing, and securing `.gitlab-ci.yml` configurations.
docs/best-practices.mddocs/common-issues.mddocs/gitlab-ci-reference.mdexamples/basic-pipeline.gitlab-ci.ymlexamples/complex-workflow.gitlab-ci.ymlexamples/component-pipeline.gitlab-ci.ymlexamples/docker-build.gitlab-ci.ymlexamples/multi-stage.gitlab-ci.ymlscripts/check_best_practices.pyscripts/check_security.pyscripts/install_tools.shscripts/python_wrapper.shscripts/validate_gitlab_ci.shscripts/validate_syntax.pytests/test_validators.pyComprehensive toolkit for validating, linting, testing, and securing .gitlab-ci.yml configurations.
Use this skill when requests include intent like:
.gitlab-ci.yml"All commands below assume repository root as current working directory.
# Ensure validator scripts are executable
chmod +x devops-skills-plugin/skills/gitlab-ci-validator/scripts/*.sh \
devops-skills-plugin/skills/gitlab-ci-validator/scripts/*.py
# Required runtime
python3 --version
Use one canonical command path for orchestration:
VALIDATOR="bash devops-skills-plugin/skills/gitlab-ci-validator/scripts/validate_gitlab_ci.sh"
Optional local execution tooling (for --test-only):
bash devops-skills-plugin/skills/gitlab-ci-validator/scripts/install_tools.sh
# 1) Full validation (syntax + best practices + security)
$VALIDATOR .gitlab-ci.yml
# 2) Syntax and schema only (required first gate)
$VALIDATOR .gitlab-ci.yml --syntax-only
# 3) Best-practices only (recommended)
$VALIDATOR .gitlab-ci.yml --best-practices
# 4) Security only (required before merge)
$VALIDATOR .gitlab-ci.yml --security-only
# 5) Optional local pipeline structure test (needs gitlab-ci-local + Docker)
$VALIDATOR .gitlab-ci.yml --test-only
# 6) Strict mode (treat best-practice warnings as failure)
$VALIDATOR .gitlab-ci.yml --strict
Follow these gates in order:
2 (--syntax-only).3 (--best-practices) and apply relevant improvements.4 (--security-only) and fix all critical/high findings before merge.5 (--test-only) for local execution checks.6 (--strict) for final merge gate.Required gates: syntax + security. Recommended gate: best practices. Optional gate: local execution test.
critical: Direct credential/secret exposure or high-confidence compromise path. Block merge.high: Exploitable unsafe behavior or strong security regression. Fix before merge.medium: Security hardening gap with realistic risk. Track and fix soon.low/suggestion: Optimization or maintainability improvement.yaml-syntax, job-stage-undefined, dependencies-undefined-job): prevent pipeline parse and dependency failures.cache-missing, artifact-no-expiration, dag-optimization): reduce runtime cost and improve pipeline throughput.hardcoded-password, curl-pipe-bash, include-remote-unverified): reduce credential leaks and supply-chain risk.devops-skills-plugin/skills/gitlab-ci-validator/docs/gitlab-ci-reference.mddevops-skills-plugin/skills/gitlab-ci-validator/docs/best-practices.mddevops-skills-plugin/skills/gitlab-ci-validator/docs/common-issues.mdpython3:
PyYAML:
python_wrapper.sh auto-creates .venv and installs pyyaml when possible.pyyaml from an internal mirror, then rerun.gitlab-ci-local, node, or docker:
--test-only reports warning/failure.chmod command from the Setup section.$VALIDATOR examples/basic-pipeline.gitlab-ci.yml --syntax-only
$VALIDATOR examples/basic-pipeline.gitlab-ci.yml --security-only
$VALIDATOR .gitlab-ci.yml --strict
stages:
- validate
validate_gitlab_ci:
stage: validate
script:
- chmod +x devops-skills-plugin/skills/gitlab-ci-validator/scripts/*.sh devops-skills-plugin/skills/gitlab-ci-validator/scripts/*.py
- bash devops-skills-plugin/skills/gitlab-ci-validator/scripts/validate_gitlab_ci.sh .gitlab-ci.yml --strict
# Syntax validator (via wrapper for PyYAML fallback)
bash devops-skills-plugin/skills/gitlab-ci-validator/scripts/python_wrapper.sh \
devops-skills-plugin/skills/gitlab-ci-validator/scripts/validate_syntax.py .gitlab-ci.yml
# Best-practices validator
bash devops-skills-plugin/skills/gitlab-ci-validator/scripts/python_wrapper.sh \
devops-skills-plugin/skills/gitlab-ci-validator/scripts/check_best_practices.py .gitlab-ci.yml
# Security validator
bash devops-skills-plugin/skills/gitlab-ci-validator/scripts/python_wrapper.sh \
devops-skills-plugin/skills/gitlab-ci-validator/scripts/check_security.py .gitlab-ci.yml
name and description unchanged.chmod prerequisites appear before workflow/use examples.gitlab-ci-local or GitLab CI Lint for runtime behavior confirmation.npx claudepluginhub akin-ozer/cc-devops-skills --plugin devops-skillsGenerates production-ready GitLab CI/CD pipelines (.gitlab-ci.yml), stages, and jobs following best practices; validates syntax and compliance for builds, deploys, and scans.
Optimizes GitLab CI/CD pipelines for performance, reliability, and maintainability using DAGs, parallel jobs, templates, resource groups, retries, and protected rules.
Creates and reviews .gitlab-ci.yml files using GitLab CI best practices, DRY/SSOT patterns, runner tags, Docker images, and ArgoCD GitOps standards. Use for new pipelines, existing reviews, or optimizations.