Monitor CI
nrwl/nx
Monitor Nx Cloud CI pipeline and handle self-healing fixes. An agent skill from nrwl/nx.
Phase 5 of LLM deployment — apply the shared optimization skillset to a Phase-4-correct decode pipeline (multi-launch merge with N-way extern rename, static weight BOs, on-device layout).
$ npx skills add Xilinx/mlir-air --skill phase-5-decode-optimization -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Xilinx/mlir-air phase-5-decode-optimization --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/Xilinx/mlir-air.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/phase-5-decode-optimization .claude/skills/phase-5-decode-optimization && 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 "phase-5-decode-optimization" agent skill from https://github.com/Xilinx/mlir-air/tree/main/.claude/skills/phase-5-decode-optimization into .claude/skills/phase-5-decode-optimization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phase-5-decode-optimization", 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/Xilinx/mlir-air/tree/main/.claude/skills/phase-5-decode-optimizationType 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 Xilinx/mlir-air --skill phase-5-decode-optimization -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Xilinx/mlir-air phase-5-decode-optimization --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Xilinx/mlir-air.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/phase-5-decode-optimization .agents/skills/phase-5-decode-optimization && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "phase-5-decode-optimization" agent skill from https://github.com/Xilinx/mlir-air/tree/main/.claude/skills/phase-5-decode-optimization into .agents/skills/phase-5-decode-optimization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phase-5-decode-optimization", 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 Xilinx/mlir-air --skill phase-5-decode-optimization -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Xilinx/mlir-air phase-5-decode-optimization --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Xilinx/mlir-air.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/phase-5-decode-optimization .cursor/skills/phase-5-decode-optimization && 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 "phase-5-decode-optimization" agent skill from https://github.com/Xilinx/mlir-air/tree/main/.claude/skills/phase-5-decode-optimization into .cursor/skills/phase-5-decode-optimization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phase-5-decode-optimization", 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/Xilinx/mlir-air.git --path .claude/skills/phase-5-decode-optimization--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 Xilinx/mlir-air --skill phase-5-decode-optimization -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Xilinx/mlir-air phase-5-decode-optimization --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Xilinx/mlir-air.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/phase-5-decode-optimization .gemini/skills/phase-5-decode-optimization && 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 "phase-5-decode-optimization" agent skill from https://github.com/Xilinx/mlir-air/tree/main/.claude/skills/phase-5-decode-optimization into .gemini/skills/phase-5-decode-optimization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phase-5-decode-optimization", 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 Xilinx/mlir-air phase-5-decode-optimizationInstalls 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 Xilinx/mlir-air --skill phase-5-decode-optimization -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Xilinx/mlir-air.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/phase-5-decode-optimization .github/skills/phase-5-decode-optimization && 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 "phase-5-decode-optimization" agent skill from https://github.com/Xilinx/mlir-air/tree/main/.claude/skills/phase-5-decode-optimization into .github/skills/phase-5-decode-optimization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phase-5-decode-optimization", 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 Xilinx/mlir-air --skill phase-5-decode-optimization -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Xilinx/mlir-air phase-5-decode-optimization --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Xilinx/mlir-air.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/phase-5-decode-optimization .opencode/skills/phase-5-decode-optimization && 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 "phase-5-decode-optimization" agent skill from https://github.com/Xilinx/mlir-air/tree/main/.claude/skills/phase-5-decode-optimization into .opencode/skills/phase-5-decode-optimization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phase-5-decode-optimization", 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.
phase-5-decode-optimizationPhase 5 of LLM deployment — apply the shared optimization skillset to a Phase-4-correct decode pipeline (multi-launch merge with N-way extern rename, static weight BOs, on-device layout).
Phase 5 Decode Optimization is an agent skill from Xilinx/mlir-air. Phase 5 of LLM deployment — apply the shared optimization skillset to a Phase-4-correct decode pipeline (multi-launch merge with N-way extern rename, static weight BOs, on-device layout). Thin orchestrator that dispatches opt-merge-multi-launch-kernels, opt-buffer-object-reuse, and opt-layout-alignment. Each step preserves correctness by re-running the Phase 3 gate — make verify (token-set vs HF bf16) is the PASS/FAIL gate; make diagnosis per-layer cosine is the informational lens used to localize a regression…
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.
It sits in DevOps & Cloud. The licence is MIT.
Read from SKILL.md and the folder at commit 6e81ce1. 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.
Shell commands in SKILL.md call:
makeFrom 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.
Phase 5 Decode Optimization loads about 2.3k tokens when it runs. Until then it costs about 146 tokens; SKILL.md has 1,032 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 Xilinx/mlir-air at commit 6e81ce1, republished under its MIT licence (© Xilinx). 1,032 words, ~2,302 tokens.
.claude/skills/phase-5-decode-optimization/SKILL.md (or your agent's skills folder).Phase 4 optimized prefill while preserving Phase 3 correctness. Phase 5
does the same for decode — but the dominant optimizations differ because
decode runs at M=1 per token, calling all N layers once per generated
token. This phase is a thin orchestrator: it dispatches the same shared
optimization skillset as Phase 4 — opt-merge-multi-launch-kernels
(ELF-merging), opt-buffer-object-reuse (host↔NPU runtime-overhead
reduction), and opt-layout-alignment (host-side layout) — each of which
owns its own recipe and failure modes. Decode amplifies the value of
static weight BOs (weights are loaded once but read on every token).
These wins are things you compose from the kernels, not behaviors
inherited from a reference; the reference's builders are worked examples.
Every optimization is an experiment: apply, re-measure, re-run Phase 3
gate; revert if correctness regresses.
For scale, the reference deployment llama3.2-1B took decode from ~500 ms/token → 92 ms/token (5.4×) by composing these optimizations — an illustrative datapoint for what they buy on one model, not a target every deployment must hit.
make verify
(the token-set gate vs HF bf16) still PASSES — this is the Phase 3
correctness gate, re-run between optimization skills. make diagnosis
per-layer cosine is NOT a gate (the verify subsystem retired
threshold-based diagnosis; compare_pair reports cosine with no
pass/fail), and note it only probes prefill — decode regressions (KV
cache, per-token BO reuse) surface in make verify's 32-token
generation, not in diagnosis. If make verify regresses to FAIL,
revert the change and document why.make profile at the same canonical prompt.<model>/docs/development_progress/phase5_decode.md: for each
optimization skill it invoked, record applied / skipped / reverted,
the latency delta, and a one-line reason.The "≥ N optimization skills applied" check is NOT a gate — some models legitimately need only merge + static weight BOs. The gate is the outcome (decode time improved + correctness preserved), not the process count.
PRIMARY:
programming_examples/llms/llama32_1b/docs/profile.md — the reference
deployment's profiling breakdown; the reference for what "good" looks likeprogramming_examples/llms/<model>/docs/development_progress/phase4_prefill.md
— Phase 4 baseline (prefill numbers + the integration path used)programming_examples/llms/llama32_1b/multi_launch_builder/o_gemv_ffn_multi.py
— decode-specific merge pattern + 2-K extern kernel rename, in codeprogramming_examples/kernel_registry/details/GEMV_bf16.md — per-kernel
constraints / placeability notes (the authority for that kernel's hard
limits): K_max=8160, combined channel reads ≤ 255, L2 cap — relevant
when GEMV K > 8160 or M is largeREFERENCE EXEMPLARS (read/mirror to compose your own decode ELFs; import directly only on a bit-for-bit kernel-sequence match):
programming_examples/llms/llama32_1b/multi_launch_builder/rms_gemv_rope_multi.py
— fused 6-launch decode ELF for RMSNorm + Q/K/V GEMV + RoPE Q/Kprogramming_examples/llms/llama32_1b/multi_launch_builder/o_gemv_ffn_multi.py
— fused 8-launch decode ELF (with 2-K extern rename for K=8192 Down)programming_examples/llms/llama32_1b/multi_launch_builder/lm_head_gemv_multi.py
— vocab-partitioned LM Head GEMV (part of the model's decode assembly,
built in Phase 3/finalize; profiled here, not a separate optimization)programming_examples/llms/llama_kernel_builder/ — the shared toolkit
every decode-ELF build uses (KernelCache, stitching, external_kernels).Capture the decode time/token before invoking any optimization skill — this is the number every skill must beat:
cd programming_examples/llms/<model>
flock -x -w 1800 /tmp/mlir-air-npu.lock make profileRecord: ms/token + per-layer + LM head time breakdown (where the budget goes today) as the baseline. These numbers gate every optimization below.
decode draws on the same shared optimization skillset; the dominant patterns differ because decode runs at M=1 per token, calling all N layers per token.
| Optimization skill | When it applies to decode | What it does (decode flavor) |
|---|---|---|
opt-merge-multi-launch-kernels | almost always | stitch decode kernel groups (GEMV instead of GEMM) into fused ELFs (10 launches/layer/token → 2–3). Build the model's multi_launch_builder/ (kernel-first) or reuse llama's fused decode ELFs (bit-for-bit inheritance — the verdict made in phase-2-single-block-validation Step 1). Decode specifics handled by the skill: N-way extern kernel rename when multiple GEMV K values co-link in one ELF (2-K for llama: mv.o K=2048 + mv_k8192.o; add a 3rd renamed .o when n_heads·head_dim ≠ emb_dim), and K-split (down_k_split) for K > 8160 (details/GEMV_bf16.md). |
opt-buffer-object-reuse | always — biggest decode win | static weight BOs: weights allocated once, bo.map() zero-copy, static_input_indices skips re-write on every token. With 16+ layers × ~7 weights × 100 tokens, this is the dominant pre-optimization decode host cost. |
opt-layout-alignment | usually N/A | only if decode introduced a transpose Phase 4 didn't already fix. |
Each skill owns its recipe + success self-check + failure modes. The LM Head GEMV (vocab-partitioned) is part of the model's decode assembly built in Phase 3/finalize, profiled here — not a separate optimization skill.
After every applied (or attempted) optimization skill, re-run the gate:
flock -x -w 1800 /tmp/mlir-air-npu.lock make verify # GATE: token-set, exit 1 on FAILmake verify PASS is the correctness gate (its 32-token generation is
what catches decode-only bugs — KV cache, per-token static-BO reuse). If
it regresses to FAIL, revert the change and document why. diagnosis only
probes prefill, so it cannot localize a decode regression — bisect by
reverting optimization skills instead.
| Symptom | Likely cause | Where to look |
|---|---|---|
| Multi-launch merge compile fails (BD exhaustion, channel routing, herd shape conflict, bare-herd, DMA stride, IR/compile blowup) | BD/placeability limit or wrong stitching boundary | Invoke debug-multi-launch-merge — it discriminates the 6 known compile blockers |
| Extern kernel rename collision (link error, symbol redefined) | Two .o files exporting same symbol | Check -D mapping uniqueness; each .o must export distinct <group>_matvec_* names |
'aiex.npu.push_queue' op Repeat count exceeds [0:255] (opt-merge-multi-launch-kernels) | GEMV K > 8160, or combined channel reads > 255 (see details/GEMV_bf16.md) | For K > 8160 → set k_split / down_k_split; for large M → set tile_m == m_input and grow tile_m × herd_m |
L2 capacity exceeded (matvec.py builder assert) | GEMV staged buffer K × herd_m × tile_m × 2 > 512 KiB (see details/GEMV_bf16.md) | Reduce tile_m (e.g., 8 → 2 for K=8192) |
| Output corruption after static weight BO conversion (correct first call, NaN/garbage on subsequent) | Per-layer BO key collision OR static_input_indices wrong | Invoke debug-bo-corruption |
| Cosine drops after an optimization skill | the skill has a layout/type assumption this model violates | Revert the change; check the assumption (e.g., decode already seq-first, weights already pre-transposed) |
ms/token unchanged after opt-merge-multi-launch-kernels | Per-call XRT overhead dominates; fusion alone insufficient | opt-buffer-object-reuse (static weight BOs) is likely the missing piece — apply it next |
For any failure not in the table, invoke superpowers:systematic-debugging.
On Phase 5 PASS:
<model>/docs/development_progress/phase5_decode.md: per-skill
table with applied / skipped / reverted, latency delta, reason<model>/TODO.md: mark Phase 5, append final ms/token + speedup
vs Phase 4 baselineopt-merge-multi-launch-kernels), surface to Phase 6 for potential
promotion to a shared location if a second deployment validates the
same pattern© Xilinx, 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 .claude/skills/phase-5-decode-optimization of Xilinx/mlir-air.
Open the folder on GitHubat commit 6e81ce1
Phase 5 Decode Optimization 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 |
|---|---|---|---|---|---|---|
| Phase 5 Decode Optimization this skillXilinx/mlir-air | 150 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Monitor CInrwl/nx | 29k | 6 repos | ~4.7k | Automated safety check: Pass | MIT | |
| Terraform and OpenTofu Guideagentscope-ai/QwenPaw | 35k | 6 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Vercel Optimize Auditvercel-labs/agent-skills | 32k | 9 repos | ~4.3k | Automated safety check: Pass | None | |
| Openclaw Live Updateropenclaw/openclaw | 392k | — | ~3.7k | Automated safety check: Pass | MIT | |
| Analyze GitHub Action Logswithastro/astro | 63k | 1 repos | ~1.3k | Automated safety check: Pass | Custom licence |
nrwl/nx
Monitor Nx Cloud CI pipeline and handle self-healing fixes. An agent skill from nrwl/nx.
agentscope-ai/QwenPaw
Guidance for writing and testing Terraform and OpenTofu code: module structure, naming, test approaches, CI/CD workflows, state handling and security scanning.
vercel-labs/agent-skills
Runs a metrics-first audit of a deployed Vercel project, gating investigations on real signals to produce ranked, citation-backed cost and performance recommendations.
openclaw/openclaw
Maintain the canonical live OpenClaw main checkout, macOS LaunchAgent-managed Gateway, local macOS app, exact-head main CI, and recurring full release validation.
withastro/astro
Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.
kubesphere/kubesphere
Creates and queries KubeSphere users, workspaces and projects and assigns built-in roles, defaulting to least privilege and never deleting anything.
Xilinx/mlir-air
A skill your agent uses when an NPU kernel passes its standalone shape test but produces NaN, garbage, or stale values when invoked as part of a larger pipeline.
Xilinx/mlir-air
A skill your agent uses when NPU FlashAttention hangs (ERTCMDSTATETIMEOUT) or produces NaN at headdim ≥ 128.
Xilinx/mlir-air
A skill your agent uses when stitching kernels into a multi-launch ELF and the AIE compiler rejects the merged module (BD exhaustion, channel routing, herd shape conflict, IR validation error, DMA…
Xilinx/mlir-air
Entry point for deploying a new decoder-only LLM on AMD NPU2.
Xilinx/mlir-air
Optimization skill — reuse NPU BufferObjects across calls instead of re-allocating/re-writing them.
Xilinx/mlir-air
Optimization skill — choose activation layouts so consecutive kernels hand off on-device without a host-side transpose.
Categories
Phase 5 of LLM deployment — apply the shared optimization skillset to a Phase-4-correct decode pipeline (multi-launch merge with N-way extern rename, static weight BOs, on-device layout). Phase 5 Decode Optimization is an agent skill from Xilinx/mlir-air. Phase 5 of LLM deployment — apply the shared optimization skillset to a Phase-4-correct decode pipeline (multi-launch merge with N-way extern rename, static weight BOs, on-device layout).
Phase 5 Decode Optimization fits situations like: devOps & Cloud work in your project.
Run `npx skills add Xilinx/mlir-air --skill phase-5-decode-optimization -a claude-code`. Or copy the skill folder (.claude/skills/phase-5-decode-optimization in Xilinx/mlir-air) into .claude/skills/phase-5-decode-optimization in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Xilinx/mlir-air --skill phase-5-decode-optimization -a codex`. Or copy the skill folder (.claude/skills/phase-5-decode-optimization in Xilinx/mlir-air) into .agents/skills/phase-5-decode-optimization 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 Xilinx/mlir-air --skill phase-5-decode-optimization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/phase-5-decode-optimization, .gemini/skills/phase-5-decode-optimization, .github/skills/phase-5-decode-optimization and .opencode/skills/phase-5-decode-optimization in your project.
Going by SKILL.md and its folder, Phase 5 Decode Optimization needs the command-line tools its instructions call (make).
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.
Phase 5 Decode Optimization 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 Phase 5 Decode Optimization: Monitor CI (nrwl/nx, 29k stars), Terraform and OpenTofu Guide (agentscope-ai/QwenPaw, 35k stars), Vercel Optimize Audit (vercel-labs/agent-skills, 32k stars) and Openclaw Live Updater (openclaw/openclaw, 392k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Xilinx (a GitHub organization) maintains it in Xilinx/mlir-air, which has 150 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 8, 2026.
Source: Xilinx/mlir-air on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.