ワンクリックで
azure-pipelines-validator
// Validate, lint, audit, or review azure-pipelines.yml — syntax, security, best practices.
// Validate, lint, audit, or review azure-pipelines.yml — syntax, security, best practices.
Generate, create, or scaffold Ansible playbooks, roles, tasks, handlers, inventory, vars.
Validate, lint, audit, or debug Ansible playbooks, roles, inventories, FQCN, tasks.
Generate/create/scaffold azure-pipelines.yml, stages, jobs, steps, or reusable templates.
Generate/create Fluent Bit configs — INPUT, FILTER, OUTPUT, parsers, log pipeline.
Validate, lint, audit, or check Fluent Bit configs (INPUT, FILTER, OUTPUT, tag routing).
Create, generate, or scaffold .gitlab-ci.yml pipelines, stages, and jobs.
| name | azure-pipelines-validator |
| description | Validate, lint, audit, or review azure-pipelines.yml — syntax, security, best practices. |
Use this skill to validate Azure DevOps pipeline YAML (azure-pipelines.yml / azure-pipelines.yaml) with local scripts first, then escalate to docs only when local output is not enough.
Use this skill when the user asks things like:
azure-pipelines.yml."Do not use this skill for pipeline generation from scratch. Use azure-pipelines-generator for that.
Run from any directory using explicit absolute paths:
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null)"
SKILL_DIR="$REPO_ROOT/devops-skills-plugin/skills/azure-pipelines-validator"
PIPELINE_FILE="$REPO_ROOT/azure-pipelines.yml"
If REPO_ROOT is empty, stop and ask for the repository root path. Do not guess paths.
Validate one file:
bash "$SKILL_DIR/scripts/validate_azure_pipelines.sh" "$PIPELINE_FILE"
Auto-detect from current directory (up to depth 3):
bash "$SKILL_DIR/scripts/validate_azure_pipelines.sh"
If auto-detect returns multiple files, rerun with one explicit file path.
bash and python3 are available.bash "$SKILL_DIR/scripts/validate_azure_pipelines.sh" "$PIPELINE_FILE"
bash "$SKILL_DIR/scripts/validate_azure_pipelines.sh" "$PIPELINE_FILE" --syntax-only
bash "$SKILL_DIR/scripts/validate_azure_pipelines.sh" "$PIPELINE_FILE" --best-practices
bash "$SKILL_DIR/scripts/validate_azure_pipelines.sh" "$PIPELINE_FILE" --security-only
bash "$SKILL_DIR/scripts/validate_azure_pipelines.sh" "$PIPELINE_FILE" --strict
0: pass (or non-blocking checks only)1: validation failed (blocking issues)2: invalid invocation (missing/ambiguous file or bad args)Always return results in this structure:
Validation Report: <path>
Summary:
- Blocking: <count> # Syntax errors + Security critical/high
- Warning: <count> # Security medium/low + best-practice warnings
- Info: <count> # Suggestions
- Skipped: <count> # Explicitly name skipped checks
Findings:
- [Blocking][syntax][<rule-id>] line <n> - <message>
- [Blocking][security-high][<rule-id>] line <n> - <message>
- [Warning][security-medium][<rule-id>] line <n> - <message>
- [Warning][best-practice][<rule-id>] line <n> - <message>
- [Info][best-practice][<rule-id>] line <n> - <message>
Remediation:
- <short, concrete fix per finding>
Execution Notes:
- Commands run: <exact commands>
- Environment/fallback notes: <tool missing, skipped checks, offline constraints>
Run local checks first. Escalate only when at least one condition is true:
Escalation order:
mcp__context7__resolve-library-id(...)
mcp__context7__query-docs(...)
learn.microsoft.com / Microsoft Azure DevOps docs).When escalating, cite the source URL and state what local check could not answer.
Use this matrix when tools are unavailable:
Condition: yamllint unavailable.
Action: Continue with syntax/best-practice/security checks.
Report note: "YAML lint skipped because yamllint is unavailable."
Condition: python3 unavailable or venv/dependency setup fails.
Action: Mark scripted validation blocked; perform manual YAML review only if requested.
Report note: "Local scripted validation blocked by missing Python runtime/dependencies."
Condition: No network while dependencies/docs are needed.
Action: Run whatever local checks are still possible; defer doc/version verification.
Report note: "External verification deferred due offline environment."
Condition: Multiple auto-detected pipeline files.
Action: Do not pick arbitrarily; require explicit target file path.
Report note: "Validation paused until a single target file is specified."
Syntax examples:
yaml-syntaxyaml-invalid-rootinvalid-hierarchytask-invalid-formatpool-invaliddeployment-missing-strategyBest-practice examples:
missing-displaynametask-version-zerotask-missing-versionpool-latest-imagemissing-cachemissing-deployment-conditionSecurity examples:
hardcoded-passwordhardcoded-secretcurl-pipe-shelleval-commandinsecure-sslcontainer-latest-tagvariable-not-secretUse script output rule IDs directly in the report.
docs/azure-pipelines-reference.mdexamples/Quick local test:
bash "$SKILL_DIR/scripts/validate_azure_pipelines.sh" "$SKILL_DIR/examples/basic-pipeline.yml"
This skill execution is done when all conditions are true:
Blocking, Warning, Info, Skipped).