CircleCI Config Validator
/install circleci-config-validator
circleci-config-validator
A pure Python 3 (stdlib + PyYAML) validator for .circleci/config.yml files covering 22 rules across 5 categories.
Commands
python3 scripts/circleci_config_validator.py \x3Ccommand> [options] FILE
| Command | Description |
|---|---|
validate |
Full validation — all 22 rules |
check |
Quick syntax + structure check only |
jobs |
List all jobs with executor type and step count |
graph |
Show workflow dependency graph as text |
Options
| Option | Description |
|---|---|
--format text|json|summary |
Output format (default: text) |
--strict |
Treat warnings as errors (exit 1) |
Rules
| ID | Category | Sev | Description |
|---|---|---|---|
| S001 | Structure | E | YAML syntax error |
| S002 | Structure | E | Missing version key |
| S003 | Structure | E | Invalid version (must be 2 or 2.1) |
| S004 | Structure | W | Missing jobs or workflows section |
| S005 | Structure | W | Unknown top-level keys |
| J001 | Jobs | E | Job missing execution environment |
| J002 | Jobs | E | Job missing steps |
| J003 | Jobs | W | Empty steps list |
| J004 | Jobs | W | Unknown step name |
| J005 | Jobs | E | run step missing command |
| W001 | Workflows | E | Workflow references undefined job |
| W002 | Workflows | E | Circular job dependency via requires |
| W003 | Workflows | E | requires references undefined job |
| W004 | Workflows | W | Empty workflow (no jobs) |
| SEC1 | Security | E | Hardcoded secret in environment variable |
| SEC2 | Security | W | setup_remote_docker without version pin |
| SEC3 | Security | W | Deprecated deploy step used |
| SEC4 | Security | I | context used without branch filters |
| B001 | Best Practices | I | Missing resource_class |
| B002 | Best Practices | I | No working_directory set |
| B003 | Best Practices | W | save_cache without matching restore_cache |
| B004 | Best Practices | W | Docker image using latest tag |
Examples
# Full validation
python3 scripts/circleci_config_validator.py validate .circleci/config.yml
# Quick syntax check
python3 scripts/circleci_config_validator.py check .circleci/config.yml
# JSON output for CI
python3 scripts/circleci_config_validator.py --format json validate .circleci/config.yml
# One-line pass/fail
python3 scripts/circleci_config_validator.py --format summary validate .circleci/config.yml
# Strict mode (warnings = errors)
python3 scripts/circleci_config_validator.py --strict validate .circleci/config.yml
# List jobs
python3 scripts/circleci_config_validator.py jobs .circleci/config.yml
# Dependency graph
python3 scripts/circleci_config_validator.py graph .circleci/config.yml
Exit Codes
0— No errors (warnings may exist)1— Errors found (or warnings in--strictmode)2— File not found or YAML parse error
Requirements
- Python 3.7+
- PyYAML (falls back to graceful error if unavailable)
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install circleci-config-validator - After installation, invoke the skill by name or use
/circleci-config-validator - Provide required inputs per the skill's parameter spec and get structured output
What is CircleCI Config Validator?
Validate .circleci/config.yml files for syntax, structure, security, and best practices. Use when validating CircleCI pipeline configuration, auditing CI/CD... It is an AI Agent Skill for Claude Code / OpenClaw, with 122 downloads so far.
How do I install CircleCI Config Validator?
Run "/install circleci-config-validator" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is CircleCI Config Validator free?
Yes, CircleCI Config Validator is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does CircleCI Config Validator support?
CircleCI Config Validator is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created CircleCI Config Validator?
It is built and maintained by charlie-morrison (@charlie-morrison); the current version is v1.0.0.