Generate, create, or scaffold Ansible playbooks, roles, tasks, handlers, inventory, vars.
The English summary is being prepared. Showing the original description.
Validate, lint, audit, or review azure-pipelines.yml — syntax, security, best practices.
The English summary is being prepared. Showing the original description.
Review the instructions the agent will receive before you install.
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).No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Generate, create, or scaffold Ansible playbooks, roles, tasks, handlers, inventory, vars.
The English summary is being prepared. Showing the original description.
Validate, lint, audit, or debug Ansible playbooks, roles, inventories, FQCN, tasks.
The English summary is being prepared. Showing the original description.
Generate/create/scaffold azure-pipelines.yml, stages, jobs, steps, or reusable templates.
The English summary is being prepared. Showing the original description.
Create, generate, write, or scaffold bash/shell scripts (.sh), automation, or CLI tools.
The English summary is being prepared. Showing the original description.
Validate, lint, audit, or fix bash/shell/.sh scripts via ShellCheck.
The English summary is being prepared. Showing the original description.
Create, generate, or write Dockerfiles and multi-stage Docker images. Containerize apps.
The English summary is being prepared. Showing the original description.