> Analyze vcpkg Azure DevOps CI failures. Downloads logs, identifies regression root causes, generates a report by package and triplet.
npx skills add https://github.com/microsoft/vcpkg --skill analyze-ci-failures
Fetches build metadata and failure logs via Azure DevOps REST API, cross-references with baselines, produces a regression report.
| Tool | Purpose |
|------|---------|
| github-mcp-server-get_file_contents | Read baseline files |
> OUTPUT RULE: Write report.md as SOON as step-log analysis (Phase 1) completes. Do not wait for artifact downloads. You can update the file later. Your response MUST also contain the complete report content — not a summary.
> URL RULE: Your response text (not just the report file) MUST include:
> - For scheduled/manual builds: the full Azure DevOps URL https://dev.azure.com/vcpkg/public/_build/results?buildId={buildId}
> - For PR builds: both the full PR URL https://github.com/microsoft/vcpkg/pull/{prNumber} AND the Azure DevOps build URL
Before doing Azure-specific work, read .\.github\skills\shared\azure-vcpkg-ci-notes.md and follow its shared API and log-handling rules.
When you use the shared helper script, execute the .ps1 file directly by path. Do not open the script and inline its contents into a large PowerShell block.
buildId from Azure DevOps URL. For PR URLs: $prNumber = 51515
$builds = (Invoke-RestMethod "https://dev.azure.com/vcpkg/public/_apis/build/builds?reasonFilter=pullRequest&repositoryType=GitHub&repositoryId=microsoft/vcpkg&branchName=refs/pull/$prNumber/merge&api-version=7.0").value
$buildId = ($builds | Sort-Object -Property id -Descending | Select-Object -First 1).id
See references/azure-devops-api.md.
For PR inputs where you want the failed step logs immediately, you may instead use the shared helper script:
& '.\.github\skills\shared\Get-VcpkgAzureFailureLogs.ps1' -PrNumber <pr>
"*** Test Modified Ports" task and fetch its log: $logText = Invoke-RestMethod "$($task.log.url)?api-version=7.0"
$regressions = $logText -split "`n" | Where-Object { $_ -match 'REGRESSION:' }
You may also use the shared helper script directly from a build id:
& '.\.github\skills\shared\Get-VcpkgAzureFailureLogs.ps1' -BuildId <buildId>
Captures all types: BUILD_FAILED, FILE_CONFLICTS, POST_BUILD_CHECKS_FAILED, CASCADED_DUE_TO_MISSING_DEPENDENCIES. Report every REGRESSION line using the EXACT failure type keyword from the log — never paraphrase. Also capture 2-3 lines around each error for root cause context. Extract the triplet name from each failed job (e.g., from job names like x64-windows Build or from log paths) — ensure ALL triplets with failures are listed in your report.
REGRESSION: lines. Instead scan for FAIL: or failed with lines showing per-feature failures. Capture and quote verbatim:Report each feature failure individually. Dependency ports that fail get their own entry.
"Validate version files" task. If failed, scan for version database errors and quote them verbatim. Fix: vcpkg x-add-version.report.md using all step-log data. This ensures output exists even if later steps time out.Invoke-WebRequest or curl shell commands for artifact ZIPs (not web_fetch). Only download "failure logs for {triplet}" — skip "file lists". Extract into ci-failure-analysis/{scope}/logs/{triplet}/. If download fails, still create the directory with a placeholder noting the URL.stdout-{triplet}.log last lines. Classify per references/vcpkg-failure-patterns.md. Update report with additional root cause detail.ci.baseline.txt and ci.feature.baseline.txt.Format per references/report-template.md:
{buildNumber}#{prNumber}x64-windows, arm64-linux) — never "N triplets". Only include triplets that actually had failures for this specific build.BUILD_FAILED, POST_BUILD_CHECKS_FAILED, FILE_CONFLICTS, CASCADED_DUE_TO_MISSING_DEPENDENCIES — never paraphraseci-failure-analysis/
├── ci-129315/ ← scheduled build
│ ├── report.md
│ └── logs/
│ ├── x64-windows/
│ └── arm64-linux/
└── pr-51202/ ← PR build
├── report.md
└── logs/
Invoke-WebRequest or curl shell commands for ZIPs — web_fetch can't download binariesPipelineArtifact — Container API won't workFILE_CONFLICTS only appear there<= version constraints or VCPKG_BUILD_TYPE releaselogs/{triplet}/ directory with a placeholder noting the download URLComprehensive healthcare AI toolkit for developing, testing, and deploying machine learning models with clinical data. This skill should be used when working with electronic health records (EHR), clinical prediction tasks (mortality, readmission, drug recommendation), medical coding systems (ICD, NDC, ATC), physiological signals (EEG, ECG), healthcare datasets (MIMIC-III/IV, eICU, OMOP), or implementing deep learning models for healthcare applications (RETAIN, SafeDrug, Transformer, GNN).
Comprehensive healthcare AI toolkit for developing, testing, and deploying machine learning models with clinical data. This skill should be used when working with electronic health records (EHR), clinical prediction tasks (mortality, readmission, drug recommendation), medical coding systems (ICD, NDC, ATC), physiological signals (EEG, ECG), healthcare datasets (MIMIC-III/IV, eICU, OMOP), or implementing deep learning models for healthcare applications (RETAIN, SafeDrug, Transformer, GNN).
Expert performance engineer specializing in modern observability, application optimization, and scalable system performance. Masters OpenTelemetry, distributed tracing, load testing, multi-tier caching, Core Web Vitals, and performance monitoring. Handles end-to-end optimization, real user monitoring, and scalability patterns. Use PROACTIVELY for performance optimization, observability, or scalability challenges.
Master AI-powered test automation with modern frameworks, self-healing tests, and comprehensive quality engineering. Build scalable testing strategies with advanced CI/CD integration. Use PROACTIVELY for testing automation or quality assurance.
Internet Court adapter for GenLayer Intelligent Contract supervision. Use to specify agent-performance rubrics, evidence schemas, decision outputs, and ERC-7710 connector expectations, while delegating actual GenLayer contract writing, linting, testing, deployment, and CLI interaction to the official GenLayer skills at https://skills.genlayer.com/.
Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.
Build production-grade Azure Cosmos DB NoSQL services following clean code, security best practices, and TDD principles.
You are a configuration management expert specializing in validating, testing, and ensuring the correctness of application configurations. Create comprehensive validation schemas, implement configurat
Take microsoft/analyze-ci-failures from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.