CI Triage
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…
Analyze a GitHub Actions integration test run and produce a skill invocation report with failure root-cause issues.
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill analyze-test-run -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/GitHub-Copilot-for-Azure analyze-test-run --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/GitHub-Copilot-for-Azure.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/analyze-test-run .claude/skills/analyze-test-run && 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 "analyze-test-run" agent skill from https://github.com/microsoft/GitHub-Copilot-for-Azure/tree/main/.github/skills/analyze-test-run into .claude/skills/analyze-test-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-test-run", 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/GitHub-Copilot-for-Azure/tree/main/.github/skills/analyze-test-runType 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/GitHub-Copilot-for-Azure --skill analyze-test-run -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/GitHub-Copilot-for-Azure analyze-test-run --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/GitHub-Copilot-for-Azure.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/analyze-test-run .agents/skills/analyze-test-run && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "analyze-test-run" agent skill from https://github.com/microsoft/GitHub-Copilot-for-Azure/tree/main/.github/skills/analyze-test-run into .agents/skills/analyze-test-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-test-run", 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/GitHub-Copilot-for-Azure --skill analyze-test-run -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/GitHub-Copilot-for-Azure analyze-test-run --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/GitHub-Copilot-for-Azure.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/analyze-test-run .cursor/skills/analyze-test-run && 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 "analyze-test-run" agent skill from https://github.com/microsoft/GitHub-Copilot-for-Azure/tree/main/.github/skills/analyze-test-run into .cursor/skills/analyze-test-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-test-run", 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/GitHub-Copilot-for-Azure.git --path .github/skills/analyze-test-run--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/GitHub-Copilot-for-Azure --skill analyze-test-run -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/GitHub-Copilot-for-Azure analyze-test-run --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/GitHub-Copilot-for-Azure.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/analyze-test-run .gemini/skills/analyze-test-run && 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 "analyze-test-run" agent skill from https://github.com/microsoft/GitHub-Copilot-for-Azure/tree/main/.github/skills/analyze-test-run into .gemini/skills/analyze-test-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-test-run", 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/GitHub-Copilot-for-Azure analyze-test-runInstalls 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/GitHub-Copilot-for-Azure --skill analyze-test-run -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/GitHub-Copilot-for-Azure.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/analyze-test-run .github/skills/analyze-test-run && 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 "analyze-test-run" agent skill from https://github.com/microsoft/GitHub-Copilot-for-Azure/tree/main/.github/skills/analyze-test-run into .github/skills/analyze-test-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-test-run", 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/GitHub-Copilot-for-Azure --skill analyze-test-run -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/GitHub-Copilot-for-Azure analyze-test-run --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/GitHub-Copilot-for-Azure.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/analyze-test-run .opencode/skills/analyze-test-run && 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 "analyze-test-run" agent skill from https://github.com/microsoft/GitHub-Copilot-for-Azure/tree/main/.github/skills/analyze-test-run into .opencode/skills/analyze-test-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-test-run", 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.
analyze-test-runAnalyze a GitHub Actions integration test run and produce a skill invocation report with failure root-cause issues.
Analyze Test Run is an agent skill from microsoft/GitHub-Copilot-for-Azure, published by the product's own GitHub organization. Analyze a GitHub Actions integration test run and produce a skill invocation report with failure root-cause issues. TRIGGERS: analyze test run, skill invocation rate, test run report, compare test runs, skill invocation summary, test failure analysis, run report, test results, action run report
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/issue-template.md` and `references/report-format.md`).
It sits in Testing & QA, covering Failing and flaky tests, Integration testing and CI/CD. It works with GitHub Actions and Microsoft Azure. The repository describes itself as: GitHub Copilot for Azure. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d8f4f4e. 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 javascript).
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.
Analyze Test Run loads about 2.5k tokens when it runs, and up to ~4.6k if it reads all its reference files. Until then it costs about 78 tokens; SKILL.md has 1,096 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/GitHub-Copilot-for-Azure at commit d8f4f4e, republished under its MIT licence (© microsoft). 1,096 words, ~2,471 tokens.
.claude/skills/analyze-test-run/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Downloads artifacts from a GitHub Actions integration test run, generates a summarized skill invocation report, and files GitHub issues for each test failure with root-cause analysis.
| Parameter | Required | Description |
|---|---|---|
| Run ID or URL | Yes | GitHub Actions run ID (e.g. 22373768875) or full URL |
| Comparison Run | No | Second run ID/URL for side-by-side comparison |
All tools use owner: "microsoft" and repo: "GitHub-Copilot-for-Azure" as fixed parameters. method selects the operation within the tool.
| Tool | method | Key Parameter | Purpose |
|---|---|---|---|
actions_get | get_workflow_run | resource_id: run ID | Fetch run status and metadata |
actions_list | list_workflow_run_artifacts | resource_id: run ID | List all artifacts for a run |
actions_get | download_workflow_run_artifact | resource_id: artifact ID | Get a temporary download URL for an artifact ZIP |
get_job_logs | — | run_id + failed_only: true | Retrieve job logs when artifact content is inaccessible |
search_issues | — | query: search string | Find existing open issues before creating new ones |
create_issue | — | title, body, labels, assignees | File a new GitHub issue for a test failure |
Extract the numeric run ID from the input (strip URL prefix if needed)
Fetch run metadata using the MCP actions_get tool:
actions_get({ method: "get_workflow_run", owner: "microsoft", repo: "GitHub-Copilot-for-Azure", resource_id: "<run-id>" })List artifacts using the MCP actions_list tool, then download each relevant artifact:
// List artifacts
actions_list({ method: "list_workflow_run_artifacts", owner: "microsoft", repo: "GitHub-Copilot-for-Azure", resource_id: "<run-id>" })
// Download individual artifacts by ID
actions_get({ method: "download_workflow_run_artifact", owner: "microsoft", repo: "GitHub-Copilot-for-Azure", resource_id: "<artifact-id>" })The download returns a temporary URL. Fetch the ZIP archive from that URL and extract it locally. If the environment restricts outbound HTTP (e.g. AWF sandbox), record in the analysis report that artifact content was unavailable and fall back to job logs via the get_job_logs MCP tool.
Locate these files in the downloaded artifacts:
junit.xml — test pass/fail/skip/error results*-SKILL-REPORT.md — generated skill report with per-test detailsagent-metadata-*.md files — raw agent session logs per test⚠️ Note: If artifact ZIP files cannot be downloaded due to network restrictions, or if downloaded files cannot be extracted, use the
get_job_logsMCP tool to identify test failures and produce a best-effort analysis from whatever data is accessible.
Produce a markdown report with four sections. See report-format.md for the exact template.
Section 1 — Test Results Overview
Parse junit.xml to build:
| Metric | Value |
|---|---|
| Total tests | count from <testsuites tests=…> |
| Executed | total − skipped |
| Skipped | count of <skipped/> elements |
| Passed | executed − failures − errors |
| Failed | count of <failure> elements |
| Test Pass Rate | passed / executed as % |
Include a per-test table with name, duration (from time attribute, convert seconds to Xm Ys), and Pass/Fail result.
Section 2 — Skill Invocation Rate
Read the SKILL-REPORT.md "Per-Test Case Results" sections. For each executed test determine whether the skill under test was invoked.
The skills to track depend on which integration test suite the run belongs to:
azure-deploy integration tests — track the full deployment chain:
| Skill | How to detect |
|---|---|
azure-prepare | Mentioned as invoked in the narrative or agent-metadata |
azure-validate | Mentioned as invoked in the narrative or agent-metadata |
azure-deploy | Mentioned as invoked in the narrative or agent-metadata |
Build a per-test invocation matrix (Yes/No for each skill) and compute rates:
| Skill | Invocation Rate |
|---|---|
| azure-deploy | X% (n/total) |
| azure-prepare | X% (n/total) |
| azure-validate | X% (n/total) |
| Full skill chain (P→V→D) | X% (n/total) |
The azure-deploy integration tests exercise the full deployment workflow where the agent is expected to invoke azure-prepare, azure-validate, and azure-deploy in sequence. This three-skill chain tracking is specific to azure-deploy tests only.
All other integration tests — track only the skill under test:
| Skill | Invocation Rate |
|---|---|
| {skill-under-test} | X% (n/total) |
For non-deploy tests (e.g. azure-prepare, azure-ai, azure-kusto), only track whether the primary skill under test was invoked. Do not include azure-prepare/azure-validate/azure-deploy chain columns.
Section 3 — Report Confidence & Pass Rate
Extract from SKILL-REPORT.md:
Section 4 — Comparison (only when a second run is provided)
Repeat Phase 1–3 for the second run, then produce a side-by-side delta table. See report-format.md § Comparison.
For every test with a <failure> element in junit.xml:
agent-metadata-*.md for that test from the artifactssearch_issues MCP tool:search_issues({
owner: "microsoft", repo: "GitHub-Copilot-for-Azure",
query: "Integration test failure: {skill} in:title is:open"
})create_issue MCP tool, assign the label with the name of the skill, and assign it to the code owners listed in .github/CODEOWNERS file based on which skill it is for:create_issue({
owner: "microsoft", repo: "GitHub-Copilot-for-Azure",
title: "Integration test failure: <skill> – <keywords> [<root-cause-category>]",
labels: ["bug", "integration-test", "test-failure", "<skill>"],
body: "<body>",
assignees: ["<codeowners>"]
}) Title format: Integration test failure: {skill} – {keywords} [{root-cause-category}]
{keywords}: 2-4 words from the test name — app type (function app, static web app) + IaC type (Terraform, Bicep) + trigger if relevant{root-cause-category}: one of the categories from step 5 in bracketsIssue body template — see issue-template.md.
⚠️ Note: Do NOT include the Error Details (JUnit XML) or Agent Metadata sections in the issue body. Keep issues concise with the diagnosis, prompt context, skill report context, and environment sections only. ⚠️ Note: Do NOT create issues for skill invocation test failures.
For azure-deploy integration tests, include an "azure-deploy Skill Invocation" section showing whether azure-deploy was invoked (Yes/No), with a note that the full chain is azure-prepare → azure-validate → azure-deploy. For all other integration tests, include a "{skill} Skill Invocation" section showing only whether the primary skill under test was invoked.
| Error | Cause | Fix |
|---|---|---|
no artifacts found | Run has no uploadable reports | Verify the run completed the "Export report" step |
HTTP 404 on actions_get | Invalid run ID or no access | Check the run ID and ensure the MCP token has repo access |
rate limit exceeded | Too many GitHub API calls | Wait and retry; reduce concurrent MCP tool calls |
| Artifact ZIP download blocked | AWF sandbox restricts outbound HTTP to blob storage | Use get_job_logs MCP tool to get failure details from job logs; produce best-effort analysis from metadata |
© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in .github/skills/analyze-test-run of microsoft/GitHub-Copilot-for-Azure.
Open the folder on GitHubat commit d8f4f4e
Analyze Test Run 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 |
|---|---|---|---|---|---|---|
| Analyze Test Run this skillmicrosoft/GitHub-Copilot-for-Azure | 255 | — | ~2.5k | Automated safety check: Pass | MIT | |
| CI Triagecanton-network/splice | 118 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| GreptimeDB Fuzz CI Failure InvestigationGreptimeTeam/greptimedb | 6.7k | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| CI Failure Triage and RepairChachamaru127/claude-code-harness | 3.2k | 1 repos | ~1.1k | Automated safety check: Notes | MIT | |
| Megatron-LM CI Failure TriageNVIDIA/Megatron-LM | 18k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| CI Fixwarpdotdev/oz-skills | 825 | — | ~790 | Automated safety check: Pass | MIT |
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…
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.
Chachamaru127/claude-code-harness
Diagnoses failing CI pipelines and tests, deciding first whether the test or the implementation is at fault, and hands hard cases to a dedicated fixer subagent.
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.
warpdotdev/oz-skills
Diagnose and fix GitHub Actions CI failures. An agent skill from warpdotdev/oz-skills.
dotnet/maui
Adds dotnet/maui-specific context for investigating failing PR checks and broken nightly builds: pipelines, Helix logs, binlogs and merge-readiness verdicts.
microsoft/GitHub-Copilot-for-Azure
Discovers available Azure OpenAI model capacity across regions and projects.
microsoft/GitHub-Copilot-for-Azure
Unified Azure OpenAI model deployment skill with intelligent intent-based routing.
microsoft/GitHub-Copilot-for-Azure
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant)…
microsoft/GitHub-Copilot-for-Azure
Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end.
microsoft/GitHub-Copilot-for-Azure
Azure Storage Services including Blob Storage, File Shares, Queue Storage, Table Storage, and Data Lake.
microsoft/GitHub-Copilot-for-Azure
Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage.
Works with
Categories
Analyze a GitHub Actions integration test run and produce a skill invocation report with failure root-cause issues. Analyze Test Run is an agent skill from microsoft/GitHub-Copilot-for-Azure, published by the product's own GitHub organization. Analyze a GitHub Actions integration test run and produce a skill invocation report with failure root-cause issues.
Analyze Test Run fits situations like: tasks that involve Failing and flaky tests; tasks that involve Integration testing; tasks that involve CI/CD.
Run `npx skills add microsoft/GitHub-Copilot-for-Azure --skill analyze-test-run -a claude-code`. Or copy the skill folder (.github/skills/analyze-test-run in microsoft/GitHub-Copilot-for-Azure) into .claude/skills/analyze-test-run in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/GitHub-Copilot-for-Azure --skill analyze-test-run -a codex`. Or copy the skill folder (.github/skills/analyze-test-run in microsoft/GitHub-Copilot-for-Azure) into .agents/skills/analyze-test-run 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/GitHub-Copilot-for-Azure --skill analyze-test-run -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/analyze-test-run, .gemini/skills/analyze-test-run, .github/skills/analyze-test-run and .opencode/skills/analyze-test-run in your project.
SKILL.md names no scripts, command-line tools or credentials: Analyze Test Run 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.
Analyze Test Run is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Analyze Test Run: CI Triage (canton-network/splice, 118 stars), GreptimeDB Fuzz CI Failure Investigation (GreptimeTeam/greptimedb, 6.7k stars), CI Failure Triage and Repair (Chachamaru127/claude-code-harness, 3.2k stars) and Megatron-LM CI Failure Triage (NVIDIA/Megatron-LM, 18k 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/GitHub-Copilot-for-Azure, which has 255 GitHub stars. The repository holds 56 skills in this directory. The repository was last updated on October 7, 2026.
Source: microsoft/GitHub-Copilot-for-Azure on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.