GreptimeDB Fuzz CI Failure Investigation
GreptimeTeam/greptimedb
Diagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code.
Adds dotnet/maui-specific context for investigating failing PR checks and broken nightly builds: pipelines, Helix logs, binlogs and merge-readiness verdicts.
$ npx skills add dotnet/maui --skill azdo-build-investigator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dotnet/maui azdo-build-investigator --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/dotnet/maui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/azdo-build-investigator .claude/skills/azdo-build-investigator && 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 "azdo-build-investigator" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/azdo-build-investigator into .claude/skills/azdo-build-investigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azdo-build-investigator", 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/dotnet/maui/tree/main/.github/skills/azdo-build-investigatorType 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 dotnet/maui --skill azdo-build-investigator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dotnet/maui azdo-build-investigator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/azdo-build-investigator .agents/skills/azdo-build-investigator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "azdo-build-investigator" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/azdo-build-investigator into .agents/skills/azdo-build-investigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azdo-build-investigator", 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 dotnet/maui --skill azdo-build-investigator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dotnet/maui azdo-build-investigator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/azdo-build-investigator .cursor/skills/azdo-build-investigator && 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 "azdo-build-investigator" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/azdo-build-investigator into .cursor/skills/azdo-build-investigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azdo-build-investigator", 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/dotnet/maui.git --path .github/skills/azdo-build-investigator--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 dotnet/maui --skill azdo-build-investigator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dotnet/maui azdo-build-investigator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/azdo-build-investigator .gemini/skills/azdo-build-investigator && 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 "azdo-build-investigator" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/azdo-build-investigator into .gemini/skills/azdo-build-investigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azdo-build-investigator", 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 dotnet/maui azdo-build-investigatorInstalls 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 dotnet/maui --skill azdo-build-investigator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/azdo-build-investigator .github/skills/azdo-build-investigator && 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 "azdo-build-investigator" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/azdo-build-investigator into .github/skills/azdo-build-investigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azdo-build-investigator", 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 dotnet/maui --skill azdo-build-investigator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dotnet/maui azdo-build-investigator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/azdo-build-investigator .opencode/skills/azdo-build-investigator && 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 "azdo-build-investigator" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/azdo-build-investigator into .opencode/skills/azdo-build-investigator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azdo-build-investigator", 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.
azdo-build-investigatorAdds dotnet/maui-specific context for investigating failing PR checks and broken nightly builds: pipelines, Helix logs, binlogs and merge-readiness verdicts.
This skill supports interactive answers to questions like why CI is red or whether a PR is ready to merge, for dotnet/maui pull requests and the nightly or official signed build. It sits on top of a general `ci-analysis` skill, which does the core investigation with `Get-CIStatus.ps1` and the `gh` CLI, and it supplies MAUI corrections and context. A separate automated path, triggered by a `/review tests` comment, relates failures to the PR diff and recent runs on the target branch and posts one attribution comment.
The MAUI facts live in one canonical doc, `.github/docs/maui-ci-facts.md`, which the agent reads instead of relying on memory. It covers pipeline names and definition IDs such as maui-pr (302), maui-pr-devicetests (314) and maui-pr-uitests (313), AzDO data sources, the XHarness exit-0 blind spot, Helix work items, container binlogs, test count deduplication, baseline comparison against the base branch, Gradle and Maven failure signatures, common failure patterns and the shared merge-readiness verdicts.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 54ab39e. 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.
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.
MAUI CI Investigator loads about 2k tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 848 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 dotnet/maui at commit 54ab39e, republished under its MIT licence (© dotnet). 848 words, ~1,970 tokens.
.claude/skills/azdo-build-investigator/SKILL.md (or your agent's skills folder).This skill provides MAUI-specific context for interactive CI investigation —
answering "why is CI red?" and "is this PR ready to merge?". Use it together with the
ci-analysis skill (loaded from the dotnet-dnceng@dotnet-arcade-skills plugin via
.github/copilot/settings.json).
First: invoke the
ci-analysisskill — it handles the core investigation workflow usingGet-CIStatus.ps1andghCLI (with MCP tools as optional enhancements if available). This skill provides MAUI-specific corrections and context on top of that.
For the automated path (a maintainer comments /review tests on a PR), the
review-test-failures skill relates failures to the PR diff and the latest five
completed runs per pipeline on the PR's target branch, then posts one compact attribution
comment. It does not issue merge approval. Both use the operational facts below.
All MAUI-specific facts live in .github/docs/maui-ci-facts.md — read it. It covers:
maui-pr 302, maui-pr-devicetests 314,
maui-pr-uitests 313), org/project, and investigation priority order._apis/test is
optional enrichment).mcp-binlog-tool)../eng/ingest-maven-deps.sh fix.Ready to merge / Not ready
/ Needs human investigation / Insufficient data / No failures found.Do not restate those facts from memory; change them in the canonical doc only.
The ci-analysis skill and its Get-CIStatus.ps1 script are loaded automatically from
the dotnet/arcade-skills plugin (configured in .github/copilot/settings.json via
enabledPlugins). The CLI caches scripts to
~/.copilot/installed-plugins/dotnet-arcade-skills/. No manual download is needed.
⚠️ The
ci-analysisskill's reference doc listsmaui-publicas the MAUI pipeline — this is outdated. Use the pipeline names in.github/docs/maui-ci-facts.md.
ci-analysis to gather build/test status for the PR..github/docs/maui-ci-facts.md — especially the
correct pipeline names, the XHarness exit-0 cross-check on maui-pr-devicetests, and
test-count deduplication.helix-investigation
skill.When CI hasn't run: community PRs require a maintainer to trigger builds — see the canonical doc.
When asked about the nightly build, the inflight feed, or the dogfood feed being broken or stale — e.g. "nightly is broken please fix", "the dogfood feed stopped updating", or the release-readiness ❌ staleness banner fired — the pipeline to investigate is NOT maui-pr. It's the official signed build:
| Pipeline | dotnet-maui |
| Definition ID | 1095 |
| Org / Project | dnceng / internal — requires internal access (not the anonymous dnceng-public org the PR pipelines use) |
| Defined by | eng/pipelines/ci-official.yml |
| Schedule | daily cron 0 5 * * * (05:00 UTC) on main, net*.0, and inflight/current |
| Feeds | the ci.inflight dogfood NuGet stream — the official build on inflight/current produces the "shipping next" bits that release-readiness tracks. When this build is red, that feed goes stale and the release-readiness banner turns ❌. |
Investigate (the AzDO MCP tools accept this internal pipeline — pass org: dnceng, project: internal):
azdo_builds with definitionId: 1095, branch: refs/heads/inflight/current → find the newest failed run (and confirm whether it's a one-off or a multi-day streak)azdo_search_timeline (filter failed) on that build → identifies the failing job/step + its logIdazdo_search_log on that logId → the actual errorKnown failure surface: the most common nightly break is the Pack Windows job → "Build Workloads, Sign & Publish" step (eng/pipelines/arcade/stage-pack.yml, building src/Workload/workloads.csproj). Recurring signature:
src\Workload\workloads.csproj(30,3): error MSB4019: The imported project
"...\artifacts\packages\Release\Shipping\vs-workload.props" was not foundvs-workload.props is generated by the _GenerateVSWorkloadProps target in src/Workload/Microsoft.NET.Sdk.Maui.Manifest/Microsoft.NET.Sdk.Maui.Manifest.csproj (AfterTargets="Build") during the preceding Pack, Sign step, then imported by workloads.csproj. If it's missing at import time, the manifest pack didn't stage it to ArtifactsShippingPackagesDir. Note the macOS Pack job can succeed while Pack Windows fails — a green macOS leg does NOT mean the dogfood feed is healthy.
Root cause of the Jun 2026 inflight/current outage (binlog-proven, fixed by #36089): the workload packs (Microsoft.NET.Sdk.Maui.Manifest, Microsoft.Maui.Sdk) target netstandard but are shipping packages, so they set <IsPackable>true</IsPackable> explicitly. PR #32203 ("Don't pack .NET Standard") added a blanket <IsPackable Condition="$(TargetFramework.Contains('netstandard'))">false</IsPackable> to Directory.Build.targets — which is auto-imported at the end of every project, so it overrode the packs' explicit true → IsPackable=false. With IsPackable=false, NuGet Pack no-ops; and because the "Pack, Sign" step runs -pack without -build (only the later workloads step uses -build), the Build target never ran → _GenerateVSWorkloadProps (AfterTargets="Build") never ran → vs-workload.props was never written → the line-30 import threw MSB4019. The fix guards the blanket rule with and '$(IsPackable)' == '' so explicit opt-ins survive. This regression was inflight/current-only (#32203's commit 543b1ebeb7 is not yet on main/net10.0) — so when it forward-ports, it must carry the guard or the break reappears. The general lesson when triaging this failure: confirm IsPackable actually evaluates true for the workload packs in the pack.binlog, and that the pack step's Build (hence _GenerateVSWorkloadProps) actually ran.
Distinguish from the release pipeline:
ci-official-release.ymlis used for shipping releases, not the nightly inflight dogfood build.
© dotnet, 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 .github/skills/azdo-build-investigator of dotnet/maui.
Open the folder on GitHubat commit 54ab39e
MAUI CI Investigator 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 |
|---|---|---|---|---|---|---|
| MAUI CI Investigator this skilldotnet/maui | 23k | — | ~2k | Automated safety check: Pass | MIT | |
| GreptimeDB Fuzz CI Failure InvestigationGreptimeTeam/greptimedb | 6.7k | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| Megatron-LM CI Failure TriageNVIDIA/Megatron-LM | 18k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| CI Triagecanton-network/splice | 117 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Macios CI Postmortemdotnet/macios | 2.9k | — | ~7.8k | Automated safety check: Pass | Custom licence | |
| Babysit PRZenUml/web-sequence | 150 | — | ~871 | Automated safety check: Pass | MIT |
GreptimeTeam/greptimedb
Diagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code.
NVIDIA/Megatron-LM
Investigates a failing GitHub Actions run or job for Megatron-LM, finds the root cause plus the PR and test author involved, and files a structured bug issue.
canton-network/splice
Triage a failed splice GitHub Actions job (cn-test-failures ref) into a reproducible evidence packet - fetch job log and artifact, isolate the flagged lines, check the known flake families for…
dotnet/macios
Post-mortem analysis of CI failures across recent PRs in dotnet/macios.
ZenUml/web-sequence
Monitor and diagnose GitHub Actions checks on ZenUML web-sequence PRs, fixing code-caused CI failures when appropriate.
NewFuture/DDNS
Diagnose and fix required CI failures for the current DDNS branch without weakening tests, platform coverage, caches, or repository policy.
dotnet/maui
Mines local Copilot CLI session logs for dotnet/maui to rank costly or failing runs, tag recurring failure modes, propose repo edits and emit guard evals.
dotnet/maui
Reviews the tests added in a pull request for fix coverage, quality, edge cases and test type, and recommends lighter test types where they would do.
dotnet/maui
Produces evidence-backed ship-readiness verdicts for .NET MAUI Servicing Releases and Previews, and drafts public-safe release handoff pages from the result.
dotnet/maui
Interprets pinned managed benchmark evidence for a dotnet/maui pull request and writes a narrative for the performance review workflow, without running or publishing anything.
dotnet/maui
Checks that a pull request's title and description match its implementation and reviews the code for best practices before merge, without posting anything.
dotnet/maui
Adds MAUI-specific guardrails on top of the maestro-cli skill and Maestro MCP tools for darc, BAR, and channel or feed lookups in dotnet/maui.
Categories
Adds dotnet/maui-specific context for investigating failing PR checks and broken nightly builds: pipelines, Helix logs, binlogs and merge-readiness verdicts. This skill supports interactive answers to questions like why CI is red or whether a PR is ready to merge, for dotnet/maui pull requests and the nightly or official signed build.ps1` and the `gh` CLI, and it supplies MAUI corrections and context.
MAUI CI Investigator fits situations like: finding out why checks are failing on a dotnet/maui pull request; deciding whether a MAUI PR is ready to merge; investigating a broken nightly or official signed build or a stale inflight feed; reading Helix device-test failures that exited with code 0.
Run `npx skills add dotnet/maui --skill azdo-build-investigator -a claude-code`. Or copy the skill folder (.github/skills/azdo-build-investigator in dotnet/maui) into .claude/skills/azdo-build-investigator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dotnet/maui --skill azdo-build-investigator -a codex`. Or copy the skill folder (.github/skills/azdo-build-investigator in dotnet/maui) into .agents/skills/azdo-build-investigator 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 dotnet/maui --skill azdo-build-investigator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/azdo-build-investigator, .gemini/skills/azdo-build-investigator, .github/skills/azdo-build-investigator and .opencode/skills/azdo-build-investigator in your project.
SKILL.md names no scripts, command-line tools or credentials: MAUI CI Investigator is instructions for the agent only. Our summary lists: The ci-analysis skill from the dotnet-arcade-skills plugin; The GitHub CLI (gh).
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.
MAUI CI Investigator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k 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 MAUI CI Investigator: GreptimeDB Fuzz CI Failure Investigation (GreptimeTeam/greptimedb, 6.7k stars), Megatron-LM CI Failure Triage (NVIDIA/Megatron-LM, 18k stars), CI Triage (canton-network/splice, 117 stars) and Macios CI Postmortem (dotnet/macios, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dotnet (a GitHub organization, an official publisher) maintains it in dotnet/maui, which has 23,321 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 10, 2026.
Source: dotnet/maui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.