analyze-test-run

microsoft/github-copilot-for-azure · updated Apr 8, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/microsoft/github-copilot-for-azure --skill analyze-test-run
0 commentsdiscussion
summary

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.

skill.md

Analyze Test Run

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.

When to Use

  • Summarize results of a GitHub Actions integration test run
  • Calculate skill invocation rates for the skill under test
  • For azure-deploy tests: track the full deployment chain (azure-prepare → azure-validate → azure-deploy)
  • Compare skill invocation across two runs
  • File issues for test failures with root-cause context

Input

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

MCP Tools

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

Workflow

Phase 1 — Download & Parse

  1. Extract the numeric run ID from the input (strip URL prefix if needed)

  2. 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>" })
    
  3. 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.

  4. Locate these files in the downloaded artifacts:

    • junit.xml — test pass/fail/skip/error results
    • *-SKILL-REPORT.md — generated skill report with per-test details
    • agent-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_logs MCP tool to identify test failures and produce a best-effort analysis from whatever data is accessible.

Phase 2 — Build Summary Report

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:

  • Skill Invocation Success Rate (from the report's statistics section)
  • Overall Test Pass Rate (from the report's statistics section)
  • Average Confidence (from the report's statistics section)

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.

Phase 3 — File Issues for Failures

For every test with a <failure> element in junit.xml:

  1. Read the failure message and file:line from the XML
  2. Read the actual line of code from the test file at that location
  3. Read the agent-metadata-*.md for that test from the artifacts
  4. Read the corresponding section in the SKILL-REPORT.md for context on what the agent did
  5. Determine root cause category:
    • Skill not invoked — agent bypassed skills and used manual commands
    • Deployment failure — infrastructure or RBAC error during deployment
    • Timeout — test exceeded time limit
    • Assertion mismatch — expected files/links not found
    • Quota exhaustion — Azure region quota prevented deployment
  6. Search for existing open issue before creating a new one using the search_issues MCP tool:
    search_issues({
      owner: "microsoft", repo: "GitHub-Copilot-for-Azure",
      query: "Integration test failure: {skill} in:title is:open"
    })
    
    Match criteria: an open issue whose title and body describe a similar problem. If a match is found, skip issue creation for this failure and note the existing issue number(s) in the summary report.
  7. If no existing issue was found, create a GitHub issue using the 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 brackets

Issue 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 Handling

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

References

how to use analyze-test-run

How to use analyze-test-run on Cursor

AI-first code editor with Composer

1

Prerequisites

Before installing skills in Cursor, ensure your development environment meets these requirements:

  • Cursor installed and configured on your development machine
  • Node.js version 16.0+ with npm package manager (verify with node --version)
  • Active project directory or workspace where you want to add analyze-test-run
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/microsoft/github-copilot-for-azure --skill analyze-test-run

The skills CLI fetches analyze-test-run from GitHub repository microsoft/github-copilot-for-azure and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/analyze-test-run

Reload or restart Cursor to activate analyze-test-run. Access the skill through slash commands (e.g., /analyze-test-run) or your agent's skill management interface.

Security & Verification Notice

We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.

Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Use Cases

Task Automation & Efficiency

Automate repetitive workflows and reduce manual effort

Example

Generate reports, summarize documents, draft communications

Save 3-5 hours per week on routine tasks

Knowledge Enhancement

Learn new skills, understand complex topics, get expert guidance

Example

Explain concepts, provide examples, suggest learning resources

Accelerate learning and skill development by 2x

Quality Improvement

Enhance output quality through reviews, suggestions, and refinements

Example

Review drafts, suggest improvements, catch errors

Improve work quality by 30-40% with less effort

Implementation Guide

Prerequisites

  • Claude Desktop or compatible AI client with skill support
  • Clear understanding of task or problem to solve
  • Willingness to iterate and refine outputs

Time Estimate

15-45 minutes depending on use case complexity

Installation Steps

  1. 1.Install skill using provided installation command
  2. 2.Test with simple use case relevant to your work
  3. 3.Evaluate output quality and relevance
  4. 4.Iterate on prompts to improve results
  5. 5.Integrate into regular workflow if valuable

Common Pitfalls

  • Expecting perfect results without iteration
  • Not providing enough context in prompts
  • Using skill for tasks outside its intended scope
  • Accepting outputs without review and validation

Best Practices

✓ Do

  • +Start with clear, specific prompts
  • +Provide relevant context and constraints
  • +Review and refine all outputs before using
  • +Iterate to improve output quality
  • +Document successful prompt patterns

✗ Don't

  • Don't use without understanding skill limitations
  • Don't skip validation of outputs
  • Don't share sensitive information in prompts
  • Don't expect skill to replace human judgment

💡 Pro Tips

  • Be specific about desired format and style
  • Ask for multiple options to choose from
  • Request explanations to understand reasoning
  • Combine AI efficiency with human expertise

When to Use This

✓ Use When

Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.

✗ Avoid When

Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.

Learning Path

  1. 1Familiarize yourself with skill capabilities and limitations
  2. 2Start with low-risk, non-critical tasks
  3. 3Progress to more complex and valuable use cases
  4. 4Build expertise through regular use and experimentation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.671 reviews
  • Valentina Gonzalez· Dec 24, 2024

    analyze-test-run fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Lucas Mensah· Dec 24, 2024

    Useful defaults in analyze-test-run — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Kwame Bhatia· Dec 16, 2024

    analyze-test-run has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Shikha Mishra· Dec 12, 2024

    Solid pick for teams standardizing on skills: analyze-test-run is focused, and the summary matches what you get after install.

  • Valentina Gill· Dec 12, 2024

    We added analyze-test-run from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Henry Gill· Dec 8, 2024

    I recommend analyze-test-run for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Mia Yang· Nov 27, 2024

    Keeps context tight: analyze-test-run is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Valentina Ghosh· Nov 15, 2024

    Registry listing for analyze-test-run matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Advait Shah· Nov 15, 2024

    analyze-test-run is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Anaya Gonzalez· Nov 3, 2024

    analyze-test-run reduced setup friction for our internal harness; good balance of opinion and flexibility.

showing 1-10 of 71

1 / 8