[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699SY786VKT64ZS4EN2YC5B":3,"skill-same:01M699SY786VKT64ZS4EN2YC5B":86},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M699SY786VKT64ZS4EN2YC5B","analyze-test-run",null,"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","microsoft\u002FGitHub-Copilot-for-Azure","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M699SRDDGQCK3TYBF146AE4D",264,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fanalyze-test-run\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,9],"test","analyze test run","run","analyze","test run","with","github","failure analysis","compare","triggers","root-cause","integration test","results","analysis","github actions","actions","integration","produce","issues","2026-11-10 10:12:30",false,"---\nname: analyze-test-run\ndescription: \"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\"\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.0.6\"\n---\n\n# Analyze Test Run\n\nDownloads 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.\n\n## When to Use\n\n- Summarize results of a GitHub Actions integration test run\n- Calculate skill invocation rates for the skill under test\n- For azure-deploy tests: track the full deployment chain (azure-prepare → azure-validate → azure-deploy)\n- Compare skill invocation across two runs\n- File issues for test failures with root-cause context\n\n## Input\n\n| Parameter | Required | Description |\n|-----------|----------|-------------|\n| **Run ID or URL** | Yes | GitHub Actions run ID (e.g. `22373768875`) or full URL |\n| **Comparison Run** | No | Second run ID\u002FURL for side-by-side comparison |\n\n## MCP Tools\n\nAll tools use `owner: \"microsoft\"` and `repo: \"GitHub-Copilot-for-Azure\"` as fixed parameters. `method` selects the operation within the tool.\n\n| Tool | `method` | Key Parameter | Purpose |\n|------|----------|---------------|---------|\n| `actions_get` | `get_workflow_run` | `resource_id`: run ID | Fetch run status and metadata |\n| `actions_list` | `list_workflow_run_artifacts` | `resource_id`: run ID | List all artifacts for a run |\n| `actions_get` | `download_workflow_run_artifact` | `resource_id`: artifact ID | Get a temporary download URL for an artifact ZIP |\n| `get_job_logs` | — | `run_id` + `failed_only: true` | Retrieve job logs when artifact content is inaccessible |\n| `search_issues` | — | `query`: search string | Find existing open issues before creating new ones |\n| `create_issue` | — | `title`, `body`, `labels`, `assignees` | File a new GitHub issue for a test failure |\n\n## Workflow\n\n### Phase 1 — Download & Parse\n\n1. Extract the numeric run ID from the input (strip URL prefix if needed)\n2. Fetch run metadata using the MCP `actions_get` tool:\n   ```javascript\n   actions_get({ method: \"get_workflow_run\", owner: \"microsoft\", repo: \"GitHub-Copilot-for-Azure\", resource_id: \"\u003Crun-id>\" })\n   ```\n3. List artifacts using the MCP `actions_list` tool, then download each relevant artifact:\n   ```javascript\n   \u002F\u002F List artifacts\n   actions_list({ method: \"list_workflow_run_artifacts\", owner: \"microsoft\", repo: \"GitHub-Copilot-for-Azure\", resource_id: \"\u003Crun-id>\" })\n   \u002F\u002F Download individual artifacts by ID\n   actions_get({ method: \"download_workflow_run_artifact\", owner: \"microsoft\", repo: \"GitHub-Copilot-for-Azure\", resource_id: \"\u003Cartifact-id>\" })\n   ```\n   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.\n\n4. Locate these files in the downloaded artifacts:\n   - `junit.xml` — test pass\u002Ffail\u002Fskip\u002Ferror results\n   - `*-SKILL-REPORT.md` — generated skill report with per-test details\n   - `agent-metadata-*.md` files — raw agent session logs per test\n\n   > ⚠️ **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.\n\n### Phase 2 — Build Summary Report\n\nProduce a markdown report with four sections. See [report-format.md](references\u002Freport-format.md) for the exact template.\n\n**Section 1 — Test Results Overview**\n\nParse `junit.xml` to build:\n\n| Metric | Value |\n|--------|-------|\n| Total tests | count from `\u003Ctestsuites tests=…>` |\n| Executed | total − skipped |\n| Skipped | count of `\u003Cskipped\u002F>` elements |\n| Passed | executed − failures − errors |\n| Failed | count of `\u003Cfailure>` elements |\n| Test Pass Rate | passed \u002F executed as % |\n\nInclude a per-test table with name, duration (from `time` attribute, convert seconds to `Xm Ys`), and Pass\u002FFail result.\n\n**Section 2 — Skill Invocation Rate**\n\nRead the SKILL-REPORT.md \"Per-Test Case Results\" sections. For each executed test determine whether the skill under test was invoked.\n\nThe skills to track depend on which integration test suite the run belongs to:\n\n**azure-deploy integration tests** — track the full deployment chain:\n\n| Skill | How to detect |\n|-------|---------------|\n| `azure-prepare` | Mentioned as invoked in the narrative or agent-metadata |\n| `azure-validate` | Mentioned as invoked in the narrative or agent-metadata |\n| `azure-deploy` | Mentioned as invoked in the narrative or agent-metadata |\n\nBuild a per-test invocation matrix (Yes\u002FNo for each skill) and compute rates:\n\n| Skill | Invocation Rate |\n|-------|----------------|\n| azure-deploy | X% (n\u002Ftotal) |\n| azure-prepare | X% (n\u002Ftotal) |\n| azure-validate | X% (n\u002Ftotal) |\n| Full skill chain (P→V→D) | X% (n\u002Ftotal) |\n\n> 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**.\n\n**All other integration tests** — track only the skill under test:\n\n| Skill | Invocation Rate |\n|-------|----------------|\n| {skill-under-test} | X% (n\u002Ftotal) |\n\nFor 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\u002Fazure-validate\u002Fazure-deploy chain columns.\n\n**Section 3 — Report Confidence & Pass Rate**\n\nExtract from SKILL-REPORT.md:\n- Skill Invocation Success Rate (from the report's statistics section)\n- Overall Test Pass Rate (from the report's statistics section)\n- Average Confidence (from the report's statistics section)\n\n**Section 4 — Comparison** (only when a second run is provided)\n\nRepeat Phase 1–3 for the second run, then produce a side-by-side delta table. See [report-format.md](references\u002Freport-format.md) § Comparison.\n\n### Phase 3 — File Issues for Failures\n\nFor every test with a `\u003Cfailure>` element in `junit.xml`:\n\n1. Read the failure message and file:line from the XML\n2. Read the actual line of code from the test file at that location\n3. Read the `agent-metadata-*.md` for that test from the artifacts\n4. Read the corresponding section in the SKILL-REPORT.md for context on what the agent did\n5. Determine root cause category:\n   - **Skill not invoked** — agent bypassed skills and used manual commands\n   - **Deployment failure** — infrastructure or RBAC error during deployment\n   - **Timeout** — test exceeded time limit\n   - **Assertion mismatch** — expected files\u002Flinks not found\n   - **Quota exhaustion** — Azure region quota prevented deployment\n6. Search for existing open issue before creating a new one using the `search_issues` MCP tool:\n   ```javascript\n   search_issues({\n     owner: \"microsoft\", repo: \"GitHub-Copilot-for-Azure\",\n     query: \"Integration test failure: {skill} in:title is:open\"\n   })\n   ```\n   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.\n7. 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\u002FCODEOWNERS file based on which skill it is for:\n\n```javascript\ncreate_issue({\n  owner: \"microsoft\", repo: \"GitHub-Copilot-for-Azure\",\n  title: \"Integration test failure: \u003Cskill> – \u003Ckeywords> [\u003Croot-cause-category>]\",\n  labels: [\"bug\", \"integration-test\", \"test-failure\", \"\u003Cskill>\"],\n  body: \"\u003Cbody>\",\n  assignees: [\"\u003Ccodeowners>\"]\n})\n```\n\n   **Title format:** `Integration test failure: {skill} – {keywords} [{root-cause-category}]`\n   - `{keywords}`: 2-4 words from the test name — app type (function app, static web app) + IaC type (Terraform, Bicep) + trigger if relevant\n   - `{root-cause-category}`: one of the categories from step 5 in brackets\n\nIssue body template — see [issue-template.md](references\u002Fissue-template.md).\n\n> ⚠️ **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.\n> ⚠️ **Note:** Do NOT create issues for skill invocation test failures.\n\n> For azure-deploy integration tests, include an \"azure-deploy Skill Invocation\" section showing whether azure-deploy was invoked (Yes\u002FNo), 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.\n\n## Error Handling\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| `no artifacts found` | Run has no uploadable reports | Verify the run completed the \"Export report\" step |\n| `HTTP 404` on `actions_get` | Invalid run ID or no access | Check the run ID and ensure the MCP token has repo access |\n| `rate limit exceeded` | Too many GitHub API calls | Wait and retry; reduce concurrent MCP tool calls |\n| 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 |\n\n## References\n\n- [report-format.md](references\u002Freport-format.md) — Output report template\n- [issue-template.md](references\u002Fissue-template.md) — GitHub issue body template\n","# Analyze Test Run\n\nDownloads 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.\n\n## When to Use\n\n- Summarize results of a GitHub Actions integration test run\n- Calculate skill invocation rates for the skill under test\n- For azure-deploy tests: track the full deployment chain (azure-prepare → azure-validate → azure-deploy)\n- Compare skill invocation across two runs\n- File issues for test failures with root-cause context\n\n## Input\n\n| Parameter | Required | Description |\n|-----------|----------|-------------|\n| **Run ID or URL** | Yes | GitHub Actions run ID (e.g. `22373768875`) or full URL |\n| **Comparison Run** | No | Second run ID\u002FURL for side-by-side comparison |\n\n## MCP Tools\n\nAll tools use `owner: \"microsoft\"` and `repo: \"GitHub-Copilot-for-Azure\"` as fixed parameters. `method` selects the operation within the tool.\n\n| Tool | `method` | Key Parameter | Purpose |\n|------|----------|---------------|---------|\n| `actions_get` | `get_workflow_run` | `resource_id`: run ID | Fetch run status and metadata |\n| `actions_list` | `list_workflow_run_artifacts` | `resource_id`: run ID | List all artifacts for a run |\n| `actions_get` | `download_workflow_run_artifact` | `resource_id`: artifact ID | Get a temporary download URL for an artifact ZIP |\n| `get_job_logs` | — | `run_id` + `failed_only: true` | Retrieve job logs when artifact content is inaccessible |\n| `search_issues` | — | `query`: search string | Find existing open issues before creating new ones |\n| `create_issue` | — | `title`, `body`, `labels`, `assignees` | File a new GitHub issue for a test failure |\n\n## Workflow\n\n### Phase 1 — Download & Parse\n\n1. Extract the numeric run ID from the input (strip URL prefix if needed)\n2. Fetch run metadata using the MCP `actions_get` tool:\n   ```javascript\n   actions_get({ method: \"get_workflow_run\", owner: \"microsoft\", repo: \"GitHub-Copilot-for-Azure\", resource_id: \"\u003Crun-id>\" })\n   ```\n3. List artifacts using the MCP `actions_list` tool, then download each relevant artifact:\n   ```javascript\n   \u002F\u002F List artifacts\n   actions_list({ method: \"list_workflow_run_artifacts\", owner: \"microsoft\", repo: \"GitHub-Copilot-for-Azure\", resource_id: \"\u003Crun-id>\" })\n   \u002F\u002F Download individual artifacts by ID\n   actions_get({ method: \"download_workflow_run_artifact\", owner: \"microsoft\", repo: \"GitHub-Copilot-for-Azure\", resource_id: \"\u003Cartifact-id>\" })\n   ```\n   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.\n\n4. Locate these files in the downloaded artifacts:\n   - `junit.xml` — test pass\u002Ffail\u002Fskip\u002Ferror results\n   - `*-SKILL-REPORT.md` — generated skill report with per-test details\n   - `agent-metadata-*.md` files — raw agent session logs per test\n\n   > ⚠️ **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.\n\n### Phase 2 — Build Summary Report\n\nProduce a markdown report with four sections. See [report-format.md](references\u002Freport-format.md) for the exact template.\n\n**Section 1 — Test Results Overview**\n\nParse `junit.xml` to build:\n\n| Metric | Value |\n|--------|-------|\n| Total tests | count from `\u003Ctestsuites tests=…>` |\n| Executed | total − skipped |\n| Skipped | count of `\u003Cskipped\u002F>` elements |\n| Passed | executed − failures − errors |\n| Failed | count of `\u003Cfailure>` elements |\n| Test Pass Rate | passed \u002F executed as % |\n\nInclude a per-test table with name, duration (from `time` attribute, convert seconds to `Xm Ys`), and Pass\u002FFail result.\n\n**Section 2 — Skill Invocation Rate**\n\nRead the SKILL-REPORT.md \"Per-Test Case Results\" sections. For each executed test determine whether the skill under test was invoked.\n\nThe skills to track depend on which integration test suite the run belongs to:\n\n**azure-deploy integration tests** — track the full deployment chain:\n\n| Skill | How to detect |\n|-------|---------------|\n| `azure-prepare` | Mentioned as invoked in the narrative or agent-metadata |\n| `azure-validate` | Mentioned as invoked in the narrative or agent-metadata |\n| `azure-deploy` | Mentioned as invoked in the narrative or agent-metadata |\n\nBuild a per-test invocation matrix (Yes\u002FNo for each skill) and compute rates:\n\n| Skill | Invocation Rate |\n|-------|----------------|\n| azure-deploy | X% (n\u002Ftotal) |\n| azure-prepare | X% (n\u002Ftotal) |\n| azure-validate | X% (n\u002Ftotal) |\n| Full skill chain (P→V→D) | X% (n\u002Ftotal) |\n\n> 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**.\n\n**All other integration tests** — track only the skill under test:\n\n| Skill | Invocation Rate |\n|-------|----------------|\n| {skill-under-test} | X% (n\u002Ftotal) |\n\nFor 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\u002Fazure-validate\u002Fazure-deploy chain columns.\n\n**Section 3 — Report Confidence & Pass Rate**\n\nExtract from SKILL-REPORT.md:\n- Skill Invocation Success Rate (from the report's statistics section)\n- Overall Test Pass Rate (from the report's statistics section)\n- Average Confidence (from the report's statistics section)\n\n**Section 4 — Comparison** (only when a second run is provided)\n\nRepeat Phase 1–3 for the second run, then produce a side-by-side delta table. See [report-format.md](references\u002Freport-format.md) § Comparison.\n\n### Phase 3 — File Issues for Failures\n\nFor every test with a `\u003Cfailure>` element in `junit.xml`:\n\n1. Read the failure message and file:line from the XML\n2. Read the actual line of code from the test file at that location\n3. Read the `agent-metadata-*.md` for that test from the artifacts\n4. Read the corresponding section in the SKILL-REPORT.md for context on what the agent did\n5. Determine root cause category:\n   - **Skill not invoked** — agent bypassed skills and used manual commands\n   - **Deployment failure** — infrastructure or RBAC error during deployment\n   - **Timeout** — test exceeded time limit\n   - **Assertion mismatch** — expected files\u002Flinks not found\n   - **Quota exhaustion** — Azure region quota prevented deployment\n6. Search for existing open issue before creating a new one using the `search_issues` MCP tool:\n   ```javascript\n   search_issues({\n     owner: \"microsoft\", repo: \"GitHub-Copilot-for-Azure\",\n     query: \"Integration test failure: {skill} in:title is:open\"\n   })\n   ```\n   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.\n7. 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\u002FCODEOWNERS file based on which skill it is for:\n\n```javascript\ncreate_issue({\n  owner: \"microsoft\", repo: \"GitHub-Copilot-for-Azure\",\n  title: \"Integration test failure: \u003Cskill> – \u003Ckeywords> [\u003Croot-cause-category>]\",\n  labels: [\"bug\", \"integration-test\", \"test-failure\", \"\u003Cskill>\"],\n  body: \"\u003Cbody>\",\n  assignees: [\"\u003Ccodeowners>\"]\n})\n```\n\n   **Title format:** `Integration test failure: {skill} – {keywords} [{root-cause-category}]`\n   - `{keywords}`: 2-4 words from the test name — app type (function app, static web app) + IaC type (Terraform, Bicep) + trigger if relevant\n   - `{root-cause-category}`: one of the categories from step 5 in brackets\n\nIssue body template — see [issue-template.md](references\u002Fissue-template.md).\n\n> ⚠️ **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.\n> ⚠️ **Note:** Do NOT create issues for skill invocation test failures.\n\n> For azure-deploy integration tests, include an \"azure-deploy Skill Invocation\" section showing whether azure-deploy was invoked (Yes\u002FNo), 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.\n\n## Error Handling\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| `no artifacts found` | Run has no uploadable reports | Verify the run completed the \"Export report\" step |\n| `HTTP 404` on `actions_get` | Invalid run ID or no access | Check the run ID and ensure the MCP token has repo access |\n| `rate limit exceeded` | Too many GitHub API calls | Wait and retry; reduce concurrent MCP tool calls |\n| 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 |\n\n## References\n\n- [report-format.md](references\u002Freport-format.md) — Output report template\n- [issue-template.md](references\u002Fissue-template.md) — GitHub issue body template\n",{"name":5,"license":15,"metadata":51,"description":7},{"author":12,"version":52},"1.0.6","main","90929a087ad50fa0dd02fc396c9b8f721ddced08",".github\u002Fskills\u002Fanalyze-test-run",225,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-13 13:49:26",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add microsoft\u002FGitHub-Copilot-for-Azure --skill analyze-test-run",{"tool":68,"command":69},"bunx","bunx skills add microsoft\u002FGitHub-Copilot-for-Azure --skill analyze-test-run",{"tool":71,"command":72},"pnpm","pnpm dlx skills add microsoft\u002FGitHub-Copilot-for-Azure --skill analyze-test-run","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fanalyze-test-run\u002FSKILL.md",true,[76,82],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fissue-template.md","REFERENCE","参考文档",4174,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fanalyze-test-run\u002Freferences\u002Fissue-template.md",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Freport-format.md",4375,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fanalyze-test-run\u002Freferences\u002Freport-format.md",[87,112,140,165,190,212],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":46},"01M7153X40NMFY8DV2ATNDW060","azure-advisor-cost-optimization","Analyze Azure Advisor Cost\u002FIdleResources findings and prevalidate deletion safety, including Service Groups. WHEN: \"find unused Azure resources\", \"what resources am I paying for but no longer using\", \"idle-resource savings\", \"historical idle-resource savings\", \"are these idle resources safe to delete\". Generic Cost, other subcategories, and cross-category requests use azure-advisor.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure\u002Fblob\u002Fmain\u002Fplugins\u002Fazure-advisor\u002Fskills\u002Fazure-advisor-cost-optimization\u002FSKILL.md",[],[94,95,96,97,98,99,100,101,102,103,104,105,106,107,30,108,109,110,111,9],"azure advisor","Optimization","cost optimization","azure","cost","advisor","azure advisor cost optimization","resources","generic","for","deletion","unused","use","when","placeholder","delete","requests","find",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":46},"01M699ZWKYS4MRFW0KQM1FFCJK","foundry-iq","Foundry IQ knowledge bases. WHEN: make local or Blob documents searchable; create\u002Fdiagnose KBs; triage unsupported connectors or multi-source KB creation\u002Freconfiguration (even with classic-search terms); connect existing KB to agents (including multi-source KBs); create\u002Freuse a Search service; retrieve from an existing knowledge base with citations; no brand words needed. Read its procedure before query\u002Ftarget questions. NOT: other KB providers, repository-file search, classic Azure AI Search index\u002Fquery\u002Fapp work with no Foundry IQ KB or connector request, generic agent creation.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure\u002Fblob\u002Fmain\u002Fplugins\u002Ffoundry-iq-skills\u002Fskills\u002Ffoundry-iq\u002FSKILL.md",[118],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[120,121,108,122,123,9,124,125,126,127,128,102,129,130,131,132,97,133,134,135,136,137,138,107,139],"foundry","foundry iq","triage","azure ai","connectors","app","Citations","brand","kb","creation","diagnose","search","local","reuse","knowledge","foundry iq knowledge bases","connect","Existing","documents","query",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":149,"publishedAt":46},"01M699ZT26E2D0VTWFZBBGJHMG","python-appservice-deploy","Deploy Python (Flask\u002FDjango\u002FFastAPI) code to Azure App Service Linux. WHEN: \"Flask App Service\", \"Django App Service\", \"FastAPI App Service\", \"deploy Python to App Service\". DO NOT USE FOR: Container Apps, Functions, non-Python, Terraform\u002FBicep\u002FIaC, full infra — use azure-prepare.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure\u002Fblob\u002Fmain\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fpython-appservice-deploy\u002FSKILL.md",[146],{"categoryNo":147,"categoryName":148,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",[150,151,152,108,153,154,125,155,156,103,157,97,158,159,160,106,161,162,163,164,107],"python appservice deploy","deploy","python","linux","infra","do","django","azure app service","container","iac","fastapi","apps","code","functions","fastapi app",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":173,"publishedAt":46},"01M699ZR83J83TATQZKXHPXPF7","preset","Intelligently deploys Azure OpenAI models to optimal regions by analyzing capacity across all available regions. Automatically checks current region first and shows alternatives if needed. USE FOR: quick deployment, optimal region, best region, automatic region selection, fast setup, multi-region capacity check, high availability deployment, deploy to best location. DO NOT USE FOR: custom SKU selection (use customize), specific version selection (use customize), custom capacity configuration (use customize), PTU deployments (use customize).","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure\u002Fblob\u002Fmain\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fmicrosoft-foundry\u002Fmodels\u002Fdeploy-model\u002Fpreset\u002FSKILL.md",[171,172],{"categoryNo":147,"categoryName":148,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[167,151,174,9,175,176,155,177,178,103,179,180,181,97,182,183,184,106,185,186,187,188,189],"setup","capacity","customize","quick","availability","deployment","alternatives","selection","custom","deployments","high availability","version","across","check","multi","first",{"skillNo":191,"name":176,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":196,"publishedAt":46},"01M699ZPM2ZHC9VXG582DY4268","Interactive guided deployment flow for Azure OpenAI models with full customization control. Step-by-step selection of model version, SKU (GlobalStandard\u002FStandard\u002FProvisionedManaged), capacity, RAI policy (content filter), and advanced options (dynamic quota, priority processing, spillover). USE FOR: custom deployment, customize model deployment, choose version, select SKU, set capacity, configure content filter, RAI policy, deployment options, detailed deployment, advanced deployment, PTU deployment, provisioned throughput. DO NOT USE FOR: quick deployment to optimal region (use preset).","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure\u002Fblob\u002Fmain\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fmicrosoft-foundry\u002Fmodels\u002Fdeploy-model\u002Fcustomize\u002FSKILL.md",[195],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[176,167,9,175,197,198,177,199,200,201,202,203,181,204,205,206,207,208,209,210,211,155,103,179],"policy","SET","processing","advanced","model","select","choose","configure","filter","azure openai","options","flow","openai","throughput","full",{"skillNo":213,"name":175,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":217,"publishedAt":46},"01M699ZMCK9T4EM6NASDB940R7","Discovers available Azure OpenAI model capacity across regions and projects. Analyzes quota limits, compares availability, and recommends optimal deployment locations based on capacity requirements. USE FOR: find capacity, check quota, where can I deploy, capacity discovery, best region for capacity, multi-project capacity search, quota analysis, model availability, region comparison, check TPM availability. DO NOT USE FOR: actual deployment (hand off to preset or customize after discovery), quota increase requests (direct user to Azure Portal), listing existing deployments.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGitHub-Copilot-for-Azure\u002Fblob\u002Fmain\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fmicrosoft-foundry\u002Fmodels\u002Fdeploy-model\u002Fcapacity\u002FSKILL.md",[],[175,167,151,9,176,218,201,219,131,40,220,221,186,206,222,223,209,224,225,155,178,103,226,179],"projects","project","listing","hand","limits","azure portal","direct","TPM","discovery"]