| name | binlog-analysis |
| description | Triage a build / compile / restore / WarnAsError failure from its MSBuild binary log. Fetches the binlog (a local build's, or a failed dotnet/fsharp Azure DevOps PR build's published artifact) and analyzes it live via the `binlog-mcp` MCP server — structured errors, root-cause diagnosis, and an MSBuild perf X-ray. NOT for test failures or CheckCodeFormatting: a build binlog has no errors there. |
Binlog Analysis (via the binlog-mcp MCP server)
Boil a failed build down to root causes. This skill does two small things and
delegates the heavy lifting to an MCP server:
- Fetch the build's
*.binlog — from your local build, or from a failed
fsharp-ci Azure DevOps PR build (downloads the published artifact).
- Hand the path to the
binlog-mcp MCP server (Microsoft.AITools.BinlogMcp),
which queries the binlog live (≈38 tools): structured errors, categorized root
causes, and an MSBuild X-ray (target/task/analyzer timings, incrementality,
double-writes, …).
Because the analysis lives in the MCP server, this skill stays tiny — and gets
better automatically as that server gains features.
When to use
- A local build (with
-bl) or a failed fsharp-ci PR build broke and you need
to know why — compile / restore / analyzer / WarnAsError errors, or build
perf.
When NOT to use
- Test failures or CheckCodeFormatting. The build binlog has no errors in
that case:
binlog_overview will show the build succeeded / 0 errors — stop and
use pr-build-status / flaky-test-detector instead.
Step 1 — get the binlog path
# Local: newest *.binlog under <repo>/artifacts/log (build first, e.g. ./build.sh --binaryLog)
pwsh .github/skills/binlog-analysis/scripts/Get-Binlog.ps1
# Local: a specific file, directory, or glob
pwsh .github/skills/binlog-analysis/scripts/Get-Binlog.ps1 -BinlogPath artifacts/log/Debug/Build.binlog
# Azure DevOps: latest FAILED fsharp-ci build for a PR (downloads + keeps the binlog)
pwsh .github/skills/binlog-analysis/scripts/Get-Binlog.ps1 -PrNumber 19941
# Azure DevOps: explicit build id; -AllLegs for every leg; -Json for a path list
pwsh .github/skills/binlog-analysis/scripts/Get-Binlog.ps1 -BuildId 1462217 -Json