Diagnose Gateway
openclaw/openclaw
Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.
Read this before adding, changing, or diagnosing any overlay; never edit a spec or rendered file from memory.
$ npx skills add microsoft/azurelinux --skill azldev-overlays -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/azurelinux azldev-overlays --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "azldev-overlays" agent skill from https://github.com/microsoft/azurelinux/tree/4.0/.agents/skills/azldev-overlays into .claude/skills/azldev-overlays/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azldev-overlays", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/microsoft/azurelinux/tree/4.0/.agents/skills/azldev-overlaysType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add microsoft/azurelinux --skill azldev-overlays -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/azurelinux azldev-overlays --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/azurelinux.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/azldev-overlays .agents/skills/azldev-overlays && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "azldev-overlays" agent skill from https://github.com/microsoft/azurelinux/tree/4.0/.agents/skills/azldev-overlays into .agents/skills/azldev-overlays/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azldev-overlays", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft/azurelinux --skill azldev-overlays -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/azurelinux azldev-overlays --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/azurelinux.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/azldev-overlays .cursor/skills/azldev-overlays && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "azldev-overlays" agent skill from https://github.com/microsoft/azurelinux/tree/4.0/.agents/skills/azldev-overlays into .cursor/skills/azldev-overlays/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azldev-overlays", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/microsoft/azurelinux.git --path .agents/skills/azldev-overlays--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add microsoft/azurelinux --skill azldev-overlays -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/azurelinux azldev-overlays --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/azurelinux.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/azldev-overlays .gemini/skills/azldev-overlays && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "azldev-overlays" agent skill from https://github.com/microsoft/azurelinux/tree/4.0/.agents/skills/azldev-overlays into .gemini/skills/azldev-overlays/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azldev-overlays", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install microsoft/azurelinux azldev-overlaysInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add microsoft/azurelinux --skill azldev-overlays -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/azurelinux.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/azldev-overlays .github/skills/azldev-overlays && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "azldev-overlays" agent skill from https://github.com/microsoft/azurelinux/tree/4.0/.agents/skills/azldev-overlays into .github/skills/azldev-overlays/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azldev-overlays", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft/azurelinux --skill azldev-overlays -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microsoft/azurelinux azldev-overlays --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/azurelinux.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/azldev-overlays .opencode/skills/azldev-overlays && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "azldev-overlays" agent skill from https://github.com/microsoft/azurelinux/tree/4.0/.agents/skills/azldev-overlays into .opencode/skills/azldev-overlays/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azldev-overlays", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
azldev-overlaysRead 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. 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.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 61663c0. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from microsoft/azurelinux at commit 61663c0, republished under its MIT licence (© microsoft). 1,111 words, ~2,291 tokens.
.claude/skills/azldev-overlays/SKILL.md (or your agent's skills folder).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.
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.
Add or edit the overlay in the component config.
Re-render and inspect the result:
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.
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.
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.
| Symptom | Likely cause and fix |
|---|---|
spec-add-tag: tag already exists | Upstream already has the tag. Use spec-set-tag, or spec-update-tag when its prior existence is an invariant. |
spec-search-replace: no match | Inspect the current upstream line, check TOML regex quoting, and narrow the expression to the actual section/package. |
| Section or file not found | Inspect the upstream spec/source names; upstream may have renamed or removed the target. |
| Overlay applies but output/build is wrong | Inspect diff-sources for an over-broad match, malformed replacement, or a dependency/file change the overlay omitted. |
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 edits)| Type | Use for | Required |
|---|---|---|
spec-add-tag | add a tag; fails if it already exists | tag, value |
spec-insert-tag | add a tag next to its family (e.g. after the last Source*) | tag, value |
spec-set-tag | set a tag, replacing it if present or adding it if not | tag, value |
spec-update-tag | change an existing tag; fails if it is missing | tag, value |
spec-remove-tag | delete tag instances; without value, deletes every instance | tag |
spec-prepend-lines | insert lines at the top of a section (or the whole file) | lines |
spec-append-lines | insert lines at the end of a section (or the whole file) | lines |
spec-search-replace | regex replace within a section (or the whole spec) | regex |
spec-remove-section | delete a whole section | section |
spec-remove-subpackage | delete every section of a sub-package | package |
patch-add | add a .patch file and register it in the spec | source |
patch-remove | remove a patch and its spec references | file |
.spec)| Type | Use for | Required |
|---|---|---|
file-prepend-lines | prepend lines to a file | file, lines |
file-search-replace | regex replace in a file | file, regex |
file-add | copy in a new file; fails if it already exists | file, source |
file-remove | delete a file | file |
file-rename | rename a file in place | file, replacement |
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:
[[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.
metadataGive 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.
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
Just SKILL.md in .agents/skills/azldev-overlays of microsoft/azurelinux.
Open the folder on GitHubat commit 61663c0
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Azldev Overlays this skillmicrosoft/azurelinux | 5.3k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Diagnose Gatewayopenclaw/openclaw | 392k | — | ~670 | Automated safety check: Pass | MIT | |
| Diagnosegithub/awesome-copilot | 40k | 1 repos | ~1k | Automated safety check: Pass | MIT | |
| Make Changesremix-run/remix | 33k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Orch Change Featureaffaan-m/ECC | 276k | 1 repos | ~420 | Automated safety check: Pass | MIT | |
| Change Managementsickn33/agentic-awesome-skills | 47k | 2 repos | ~3.5k | Automated safety check: Pass | MIT |
openclaw/openclaw
Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.
github/awesome-copilot
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…
remix-run/remix
Create or update Remix repo change files under packages//.changes.
affaan-m/ECC
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.
sickn33/agentic-awesome-skills
Implement change management processes. An agent skill from sickn33/agentic-awesome-skills.
pnpm/pnpm
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.
microsoft/azurelinux
Read this before adding or importing a component; follow the workflow instead of guessing.
microsoft/azurelinux
Read this before building a component or diagnosing a build failure; do not guess build flags or the inner loop.
microsoft/azurelinux
Read this before authoring, editing, or reviewing a .comp.toml file; do not work from memory.
microsoft/azurelinux
Read this before building, booting, or configuring an azldev image.
microsoft/azurelinux
Read this before testing or inspecting a built RPM; do not drive mock by hand from memory.
microsoft/azurelinux
Read this before adding or reviewing an overlay metadata table; do not guess the category or upstream status from memory.
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.
Azldev Overlays fits situations like: include overlay; spec-remove-tag; prune subpackage.
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.
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.
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.
SKILL.md names no scripts, command-line tools or credentials: Azldev Overlays is instructions for the agent only.
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.
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.
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.
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.
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.
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.