Official agent skill

Azldev Overlays

by microsoft in microsoft/azurelinux

Read this before adding, changing, or diagnosing any overlay; never edit a spec or rendered file from memory.

OfficialMITAuto-check passed

Install Azldev Overlays

skills CLI
$ npx skills add microsoft/azurelinux --skill azldev-overlays -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/azurelinux azldev-overlays --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/azurelinux.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/azldev-overlays .claude/skills/azldev-overlays && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
azldev-overlays
GitHub stars
5.3k
Token cost
~2.3k tokens
SKILL.md length
1,111 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

Read this before adding, changing, or diagnosing any overlay; never edit a spec or rendered file from memory.

  • Works in 3 steps: Add or edit the overlay in the component… → Re-render and inspect the result → Finalize the lock and changelog with the…
  • Include overlay
  • SKILL.md covers The inner loop, Diagnose common failures, Choosing an overlay type and Rules that trip people up, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Azldev Overlays is an agent skill from microsoft/azurelinux, published by the product's own GitHub organization. Read this before adding, changing, or diagnosing any overlay; never edit a spec or rendered file from memory. Explains how to modify a component's RPM spec or loose source files with azldev overlays (semantic patches applied at render time) instead of forking the spec, covering overlay types, the render-and-inspect loop, common failures, pitfalls, and metadata. Triggers include overlay, overlay failed, no match, spec-add-tag, spec-remove-tag, patch-add, fix spec, backport, disable test, prune subpackage, edit spec.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: General purpose Linux OS for Azure. The licence is MIT.

When your agent uses it

  • Include overlay
  • Spec-remove-tag
  • Prune subpackage

Example prompts

  • “/azldev-overlays”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Add or edit the overlay in the component config.
  2. Re-render and inspect the result
  3. Finalize the lock and changelog with the normal end-of-work refresh (see the

What it can do on your machine

Read from SKILL.md and the folder at commit 61663c0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and toml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Azldev Overlays loads about 2.3k tokens when it runs. Until then it costs about 134 tokens; SKILL.md has 1,111 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~134
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from microsoft/azurelinux at commit 61663c0, republished under its MIT licence (© microsoft). 1,111 words, ~2,291 tokens.

Download SKILL.mdSave it as .claude/skills/azldev-overlays/SKILL.md (or your agent's skills folder).
name
azldev-overlays
description
Read this before adding, changing, or diagnosing any overlay; never edit a spec or rendered file from memory. Explains how to modify a component's RPM spec or loose source files with azldev overlays (semantic patches applied at render time) instead of forking the spec, covering overlay types, the render-and-inspect loop, common failures, pitfalls, and metadata. Triggers include overlay, overlay failed, no match, spec-add-tag, spec-remove-tag, patch-add, fix spec, backport, disable test, prune subpackage, edit spec.

Working with overlays

Overlays are semantic patches applied to a component's RPM spec and loose source files at render time. They let you make targeted changes to an upstream spec without forking it. Prefer an overlay over hand-editing a rendered spec: overlays are re-applied on every render, so a manual edit to a rendered spec is overwritten.

The inner loop

Overlays live in the component's TOML config — inline [[components.<name>.overlays]] entries, or per-file overlay documents referenced by the component's overlay-files glob. They apply in order and are non-atomic: if one fails part-way, the overlays before it stay applied.

  1. Add or edit the overlay in the component config.

  2. Re-render and inspect the result:

    sh
    azldev comp render -p <name>

    Read the rendered spec (under specs/) to confirm the change landed where you intended, and iterate until it is correct.

  3. Finalize the lock and changelog with the normal end-of-work refresh (see the azldev-update-component skill): update the lock, commit, then re-render and amend.

Config errors reference the offending overlay by its description, so give every overlay a short, specific description.

Diagnose common failures

Start with azldev comp diff-sources -p <name> to see the exact overlay effect. Use separate pre/post prep-sources directories only when you need persistent trees for deeper inspection.

SymptomLikely cause and fix
spec-add-tag: tag already existsUpstream already has the tag. Use spec-set-tag, or spec-update-tag when its prior existence is an invariant.
spec-search-replace: no matchInspect the current upstream line, check TOML regex quoting, and narrow the expression to the actual section/package.
Section or file not foundInspect the upstream spec/source names; upstream may have renamed or removed the target.
Overlay applies but output/build is wrongInspect diff-sources for an over-broad match, malformed replacement, or a dependency/file change the overlay omitted.

Choosing an overlay type

Match the change to the narrowest overlay type. Required fields are enforced when the config loads, so a missing field fails fast rather than at apply time.

Spec overlays (structured .spec edits)
TypeUse forRequired
spec-add-tagadd a tag; fails if it already existstag, value
spec-insert-tagadd a tag next to its family (e.g. after the last Source*)tag, value
spec-set-tagset a tag, replacing it if present or adding it if nottag, value
spec-update-tagchange an existing tag; fails if it is missingtag, value
spec-remove-tagdelete tag instances; without value, deletes every instancetag
spec-prepend-linesinsert lines at the top of a section (or the whole file)lines
spec-append-linesinsert lines at the end of a section (or the whole file)lines
spec-search-replaceregex replace within a section (or the whole spec)regex
spec-remove-sectiondelete a whole sectionsection
spec-remove-subpackagedelete every section of a sub-packagepackage
patch-addadd a .patch file and register it in the specsource
patch-removeremove a patch and its spec referencesfile
File overlays (loose non-spec files; never .spec)
TypeUse forRequired
file-prepend-linesprepend lines to a filefile, lines
file-search-replaceregex replace in a filefile, regex
file-addcopy in a new file; fails if it already existsfile, source
file-removedelete a filefile
file-renamerename a file in placefile, replacement
Show full SKILL.md (608 more words)Show less

Rules that trip people up

  • spec-remove-tag without value removes every instance of the named tag. To remove one dependency, set both tag and the exact value to match:

    toml
    [[components.mypackage.overlays]]
    description = "Remove an unavailable build dependency"
    type = "spec-remove-tag"
    tag = "BuildRequires"
    value = "unwanted-package"
  • section is optional only for spec-prepend-lines, spec-append-lines, and spec-search-replace (omit it to target the whole spec). It is required for spec-remove-section.

  • package needs section on the whole-file-capable overlays — a sub-package is a sub-qualifier of a section. spec-remove-subpackage is the exception: it takes package and rejects section.

  • replacement is literal — $1-style capture-group references are not expanded; omit it to delete matched text.

  • Quote regex as a TOML literal string — write regex = '\.so$', not regex = "\.so$". A basic (double-quoted) TOML string interprets backslash escapes, so \s, \., \d and friends are mangled before the regex engine ever sees them; single quotes keep the pattern verbatim.

  • Anchor regex overlays to whole lines, and prefer macro toggles. When spec-search-replace is unavoidable, anchor the full line (for example, regex = '^%setup -q$') instead of matching a fragment, and combine several near-identical patterns into one rather than stacking brittle overlays. If the upstream spec already exposes a conditional such as %if 0%{?rhel} / %if 0%{?fedora} or a definable macro, set that macro instead of rewriting the line with regex; the explicit toggle survives upstream changes more reliably.

  • spec-search-replace matches one line at a time — the pattern is applied to each spec line independently, so it can never span a newline and (?s)/DOTALL does nothing. For a multi-line change use a structured spec overlay (spec-remove-section, spec-prepend-lines/spec-append-lines, etc.). file-search-replace is different: it matches against the whole file, so multi-line patterns (and (?s)) work there.

  • file is a glob (** supported) for the multi-file file overlays; for file-add and file-rename it is a single name, and file-rename's replacement is a filename only (not a path).

  • source paths are relative to the config that declares the overlay — the overlay file when loaded via overlay-files, otherwise the component config.

  • file-add lands beside the spec, in the dist-git sources root — not inside the extracted upstream tree. Adding a file there does not make the build use it; wire it in with a SourceN tag plus %prep/%install steps, or use patch-add to change tracked sources.

  • Don't rename the Name: tag with spec-update-tag/spec-set-tag. %{name} feeds Source* URLs, %setup -n, and %files paths, so renaming it silently breaks those references. Keep the spec Name aligned with the component instead.

  • To add a real .patch file (rather than an inline edit), use patch-add; it copies the source into the component sources and registers a PatchN tag or %patchlist entry.

Document intent with metadata

Give non-trivial overlays a metadata table. It is documentation only — excluded from the component fingerprint, so editing it never invalidates the build cache — but it records why the overlay exists and when it can be dropped. Every metadata block requires category; pick the narrowest of:

upstream-backport, azl-pruning, azl-compatibility, azl-temp-workaround, azl-branding-policy, azl-disable-flaky-tests, azl-disable-unsupported-tests, azl-security-compliance, azl-release-management, azl-platform-adaptation.

It also requires upstream-status: upstreamed, upstreamable, needs-upstream-hook, inapplicable, or unknown. Add commits and bugs as { url = "https://..." } entries where they apply. commits is required for upstream-backport, whose status must be upstreamed or upstreamable. When several overlays share one provenance, put them in a per-file overlay document (overlay-files) with a single file-level [metadata].

For how to choose the right category and upstream-status, disambiguation tips, and the TOML forms, read the azldev-overlay-metadata skill.

Full reference

The tables above are the working subset. For the exhaustive field rules, metadata constraints, and the per-file overlay format, generate the machine-readable schema with azldev config generate-schema (see the ComponentOverlay definition), or read azldev's overlays configuration reference.

Generated by azldev docs agent; do not hand-edit.

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/azldev-overlays of microsoft/azurelinux.

Open the folder on GitHubat commit 61663c0

Compare with similar skills

Azldev Overlays next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Azldev Overlays compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Azldev Overlays this skillmicrosoft/azurelinux5.3k—~2.3kAutomated safety check: PassMIT
Diagnose Gatewayopenclaw/openclaw392k—~670Automated safety check: PassMIT
Diagnosegithub/awesome-copilot40k1 repos~1kAutomated safety check: PassMIT
Make Changesremix-run/remix33k—~2.4kAutomated safety check: PassMIT
Orch Change Featureaffaan-m/ECC276k1 repos~420Automated safety check: PassMIT
Change Managementsickn33/agentic-awesome-skills47k2 repos~3.5kAutomated safety check: PassMIT

Similar skills

  • Diagnose Gateway

    openclaw/openclaw

    Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.

    392k GitHub stars~670 tokensUpdated today
    Auto-check passed
  • Diagnose

    github/awesome-copilot

    Official

    Perform a systematic diagnostic scan of an AI workflow across 5 quality dimensions — prompt quality, context efficiency, tool health, architecture fitness, and safety — producing a scored report…

    40k GitHub starsUsed in 1 repo~1k tokens
    Agent WorkflowsAuto-check passed
  • Make Changes

    remix-run/remix

    Create or update Remix repo change files under packages//.changes.

    33k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Orchestrate altering an existing, working feature to new desired behavior — update its tests to the new spec, change the implementation to match, review, and gated commit.

    276k GitHub starsUsed in 1 repo~420 tokens
    Auto-check passed
  • Change Management

    sickn33/agentic-awesome-skills

    Implement change management processes. An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 2 repos~3.5k tokens
    DevOps & CloudAuto-check passed
  • Implement a pnpm feature, bug fix, or refactor by checking existing capabilities, prioritizing code reuse and deduplication, assessing architecture impact, and validating the final change.

    37k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed

More from microsoft/azurelinux

All 10 skills in this repo
  • Azldev Add Component

    microsoft/azurelinux

    Official

    Read this before adding or importing a component; follow the workflow instead of guessing.

    5.3k GitHub stars~987 tokensUpdated today
    Auto-check passed
  • Azldev Build Component

    microsoft/azurelinux

    Official

    Read this before building a component or diagnosing a build failure; do not guess build flags or the inner loop.

    5.3k GitHub stars~894 tokensUpdated today
    Auto-check passed
  • Azldev Comp Toml

    microsoft/azurelinux

    Official

    Read this before authoring, editing, or reviewing a .comp.toml file; do not work from memory.

    5.3k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Azldev Image

    microsoft/azurelinux

    Official

    Read this before building, booting, or configuring an azldev image.

    5.3k GitHub stars~966 tokensUpdated today
    Auto-check passed
  • Azldev Mock

    microsoft/azurelinux

    Official

    Read this before testing or inspecting a built RPM; do not drive mock by hand from memory.

    5.3k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Azldev Overlay Metadata

    microsoft/azurelinux

    Official

    Read this before adding or reviewing an overlay metadata table; do not guess the category or upstream status from memory.

    5.3k GitHub stars~2.6k tokensUpdated today
    Auto-check passed

Questions about Azldev Overlays

What does Azldev Overlays do?

Read this before adding, changing, or diagnosing any overlay; never edit a spec or rendered file from memory. Azldev Overlays is an agent skill from microsoft/azurelinux, published by the product's own GitHub organization. Read this before adding, changing, or diagnosing any overlay; never edit a spec or rendered file from memory.

When should I use Azldev Overlays?

Azldev Overlays fits situations like: include overlay; spec-remove-tag; prune subpackage.

How do I install Azldev Overlays in Claude Code?

Run `npx skills add microsoft/azurelinux --skill azldev-overlays -a claude-code`. Or copy the skill folder (.agents/skills/azldev-overlays in microsoft/azurelinux) into .claude/skills/azldev-overlays in your project. Claude Code loads it when a task matches its description.

How do I install Azldev Overlays in Codex?

Run `npx skills add microsoft/azurelinux --skill azldev-overlays -a codex`. Or copy the skill folder (.agents/skills/azldev-overlays in microsoft/azurelinux) into .agents/skills/azldev-overlays in your project. Codex loads it when a task matches its description.

Can I use Azldev Overlays in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/azurelinux --skill azldev-overlays -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/azldev-overlays, .gemini/skills/azldev-overlays, .github/skills/azldev-overlays and .opencode/skills/azldev-overlays in your project.

What does Azldev Overlays need to run?

SKILL.md names no scripts, command-line tools or credentials: Azldev Overlays is instructions for the agent only.

Does Azldev Overlays access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Azldev Overlays safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Azldev Overlays use?

Azldev Overlays is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Azldev Overlays use?

About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Azldev Overlays?

Skills that share tags, products or a category with Azldev Overlays: Diagnose Gateway (openclaw/openclaw, 392k stars), Diagnose (github/awesome-copilot, 40k stars), Make Changes (remix-run/remix, 33k stars) and Orch Change Feature (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Azldev Overlays?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/azurelinux, which has 5,348 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 9, 2026.

Source: microsoft/azurelinux on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.