Skip to main content
skill CX Codex

azure-pipelines-generator — Claude Code skill: Azure DevOps YAML

This skill writes azure-pipelines.yml for you: stages, jobs, steps and reusable templates. Useful when moving CI to Azure Pipelines or splitting a pipeline into templates.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add akin-ozer/cc-devops-skills --skill azure-pipelines-generator -a claude-code
Open on GitHub

What azure-pipelines-generator does

The skill runs on six platforms, Claude, Codex and Cursor among them. It first classifies the request: basic CI, multi-stage CI/CD, Docker, Kubernetes, template-based or a snippet. Then it collects inputs — stack, build and test commands, deploy target, environment flow, service connections, variable groups. Missing details get safe defaults: main and develop as CI branches, a pinned agent image, an immutable deploy tag $(Build.BuildId) instead of latest.

Generation follows a checklist. Secrets stay out of the YAML, task and vmImage versions are pinned, long jobs get timeoutInMinutes, deploy stages get environment and branch conditions. By default the result goes through the azure-pipelines-validator skill; if that is unavailable, there is a script fallback, validate_azure_pipelines.sh, and a manual pass over structure, task format and secret exposure. Validation is skipped only for snippets or on request.

This is not a validator. Checking an existing pipeline is the job of azure-pipelines-validator in the same repository. The final answer has to list references used and skipped, assumptions and validation status, so you will not get bare YAML back.

What it helps with

  • scaffold azure-pipelines.yml for a Node service
  • split build, test and deploy into stages with environments
  • move repeated logic into reusable templates
  • convert an existing CI flow to Azure Pipelines
  • add dependency caching and publish test results

Example prompts for the agent

  • Create azure-pipelines.yml for my Node service with tests and lint
  • Build a multi-stage Azure DevOps pipeline with staging and production
  • Generate Azure pipeline templates I can reuse across repos

How to install azure-pipelines-generator

1Skills CLI (Vercel)

npx skills add akin-ozer/cc-devops-skills --skill azure-pipelines-generator -a claude-code

2Manually: put the files in place

~/.claude/skills/azure-pipelines-generator/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/azure-pipelines-generator/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about azure-pipelines-generator

How do I install azure-pipelines-generator in Claude?

Run npx skills add akin-ozer/cc-devops-skills --skill azure-pipelines-generator -a claude-code. The skill file lands at ~/.claude/skills/azure-pipelines-generator/SKILL.md.

What does azure-pipelines-generator do?

It generates Azure DevOps YAML: stages, jobs, steps and templates. By default it validates the result and returns the pipeline together with its assumptions.

How is it different from azure-pipelines-validator?

This skill creates and rewrites pipelines, while azure-pipelines-validator only checks finished YAML. Validation-only requests are not its job.

Source text

SKILL.md · Apache-2.0
---
name: azure-pipelines-generator
description: Generate/create/scaffold azure-pipelines.yml, stages, jobs, steps, or reusable templates.
---

# Azure Pipelines Generator

Generate production-ready Azure DevOps pipeline YAML with deterministic steps, explicit fallbacks, and clear completion criteria.

## Trigger Guidance

Use this skill when the user asks to generate or redesign Azure Pipelines YAML, for example:

- "Create `azure-pipelines.yml` for my Node service."
- "Build a multi-stage Azure DevOps pipeline with staging and production."
- "Generate Azure pipeline templates for reuse across repos."
- "Convert this CI flow to Azure Pipelines."

Do not use this skill for validation-only requests. For validation-only work, use `azure-pipelines-validator`.

## Execution Model

Normative keywords:

- `MUST`: required
- `SHOULD`: default unless user asks otherwise
- `MAY`: optional

Deterministic sequence:

1. Classify request mode.
2. Capture minimum required inputs.
3. Load minimum references (progressive disclosure).
4. Generate YAML using the quality checklist.
5. Validate (validator skill, script fallback, or manual fallback).
6. Return output in the required report format.

If a step cannot run due to environment limits, use the fallback in that step and continue.

## 1) Classify Request Mode

Choose exactly one primary mode:

- **Basic CI:** build/test/lint for one stack.
- **Multi-stage CI/CD:** build -> test -> deploy with environment tracking.
- **Docker:** image build/push and optional deploy.
- **Kubernetes:** image build/push plus Kubernetes deployment.
- **Language-specific:** .NET, Node.js, Python, Go, Java focused.
- **Template-based:** reusable templates plus thin root pipeline.
- **Snippet-only:** partial YAML requested, not full pipeline.

Mode-to-example mapping:

- Basic CI -> `examples/basic-ci.yml`
- Multi-stage CI/CD -> `examples/multi-stage-cicd.yml`
- .NET -> `examples/dotnet-cicd.yml`
- Python -> `examples/python-cicd.yml`
- Go -> `examples/go-cicd.yml`
- Kubernetes -> `examples/kubernetes-deploy.yml`
- Template-based -> `examples/template-usage.yml` + `examples/templates/*.yml`

## 2) Capture Required Inputs

Collect these before generation:

- App stack and package manager
- Build/test commands and report expectations
- Deployment target (none, Azure service, Docker registry, Kubernetes)
- Environment flow (dev/staging/prod) and branch gates
- Service connections, variable groups, secret handling
- Template requirement (yes/no)

Safe defaults when missing:

- CI branches: `main`, `develop`
- Production deploy branch: `main` only
- Agent image: pinned image (for example `ubuntu-22.04`)
- Deploy image tag: immutable (`$(Build.BuildId)`), never deploy `latest`

If key details are missing, state assumptions explicitly in final output.

## 3) Load References (Progressive Disclosure)

Read local references first.

Always read:

- `docs/yaml-schema.md`
- `docs/best-practices.md`

Read conditionally:

- `docs/tasks-reference.md` when selecting tasks/inputs
- `docs/templates-guide.md` only for template-based mode

Then read only the closest example(s) from the mode mapping above.

Fallback behavior for missing references:

- Missing example: use nearest mode example and note substitution.
- Missing doc section: continue with known conventions and mark uncertainty.
- Snippet-only request: read only the minimum needed for safe output.

The final response MUST include:

- `References used`
- `References skipped or missing`
- `Impact`

## 4) External Docs Escalation (Only When Needed)

Escalate beyond local docs only when:

- required task info is not in local docs
- task version compatibility is unclear
- troubleshooting a task-specific failure

Use this order:

1. Context7 (`mcp__context7__resolve-library-id` -> `mcp__context7__query-docs`)
2. Official docs search (Microsoft Learn first)

If network/tools are unavailable, proceed with best-known local guidance and add a residual-risk note.

## 5) Pipeline Generation Checklist

Apply all items below unless user asks for a narrow snippet.

Security:

- Never hardcode secrets.
- Use service connections and variable groups/secrets.
- Use immutable deploy image tags.

Versioning:

- Pin `vmImage` to explicit version, not `*-latest`.
- Pin task major versions (`Task@N`).
- `@0` is allowed only when that task uses major `0`.

Reliability:

- Use explicit `dependsOn`.
- Add `timeoutInMinutes` for long-running jobs.
- Use branch-gated deployment `condition` rules.
- Use deployment jobs with `environment` for deploy stages.

Performance:

- Use `Cache@2` where it improves dependency install time.
- Use shallow checkout when full history is not required.
- Publish only required artifacts.

Testing/observability:

- Run lint/tests in CI.
- Publish test results with `condition: succeededOrFailed()`.
- Publish coverage when available.

Maintainability:

- Add `displayName` for stages/jobs/key steps.
- Use templates when logic repeats.
- Add short comments only for non-obvious logic.

## 6) Validation Workflow

Default path (MUST for full pipeline generation):

1. Generate or update YAML.
2. Validate with `azure-pipelines-validator`.
3. Fix findings.
4. Re-run validation until no blocking issues remain.

Script fallback if validator skill is unavailable but local validator scripts exist:

```bash
bash devops-skills-plugin/skills/azure-pipelines-validator/scripts/validate_azure_pipelines.sh <pipeline-file>
```

Manual fallback when neither skill nor script can run:

1. YAML structure/indentation sanity
2. Hierarchy sanity (`stages -> jobs -> steps`)
3. Task format sanity (`Task@Major`)
4. Secret exposure scan (no plaintext credentials/tokens)
5. Deployment safety scan (environment usage, immutable deploy tags)

When fallback is used, final response MUST include:

- `Validation status: Manual fallback`
- `Checks performed`
- `Residual risk`

Validation MAY be skipped only for:

- snippet-only YAML
- documentation-only examples
- explicit user request to skip validation

## 7) Output Contract

Final response MUST include:

1. Pipeline YAML (or template set)
2. Required setup:
   - service connections
   - variable groups/secrets
   - environments and approvals/checks
3. Validation result:
   - validator status, script status, or manual fallback status
4. Assumptions
5. References used/skipped and impact
6. Optional next improvements

## 8) Canonical Example Flows

### Example A: Full multi-stage generation

1. Select mode: Multi-stage CI/CD.
2. Capture stack/deploy/service-connection inputs.
3. Read `docs/yaml-schema.md`, `docs/best-practices.md`, and `examples/multi-stage-cicd.yml`.
4. Add requested customizations (stages, branch gates, environments, tasks).
5. Validate with `azure-pipelines-validator`; fix and re-run.
6. Return YAML + setup + validation + assumptions + references.

### Example B: Quick snippet generation

1. Select mode: Snippet-only.
2. Read only the minimum required reference section.
3. Generate focused YAML snippet with safe defaults.
4. Skip full validation and state `Validation status: Skipped (snippet-only)`.
5. Return snippet + assumptions + references.

## 9) Definition of Done

The execution is complete only when all applicable checks pass:

- Request mode is explicitly chosen.
- Assumptions are explicit for missing inputs.
- YAML follows checklist requirements (security, versioning, reliability, performance, maintainability).
- Validation path is documented (validator, script fallback, or manual fallback).
- Final response follows the output contract, including references and impact.

© akin-ozer · Apache-2.0 · akin-ozer/cc-devops-skills

Similar skills

All skills for DevOps and infrastructure →

From the same set29

helm-validator Runs a Helm chart through ten stages: structure, lint, template rendering, YAML, schemas, CRDs and security. You get a severity report and proposed patches. CX Codex +1 671installs bash-script-generator A skill that turns a task into a working bash script: captures requirements, writes the code, then validates it. CX Codex +1 670installs jenkinsfile-validator Validates Jenkins declarative and scripted pipelines, inspects shared Groovy libraries, and catches hardcoded secrets locally before committing. CX Codex +1 660installs k8s-yaml-generator A skill that writes Kubernetes manifests for Deployments, Services, ConfigMaps, Ingresses, StatefulSets and CRDs, then validates the output. CX Codex +1 651installs gitlab-ci-generator Generates and extends .gitlab-ci.yml files: stages, jobs, templates. Useful when a pipeline has to be written from scratch or grown. CX Codex +1 645installs github-actions-generator This skill scaffolds GitHub Actions workflows, custom actions and reusable pipelines from a plain request. Handy when you need working .github/workflows files without hand-picking action versions. CX Codex +1 643installs terraform-validator Runs terraform fmt, validate, tflint and checkov over your .tf files, then writes a report with the findings. CX Codex +1 640installs github-actions-validator Validates GitHub Actions workflows with actionlint and runs them locally using act. Catches runner typos, expression bugs, and outdated action versions before you push. CX Codex +1 638installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor